diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2010-08-27 16:26:16 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2010-08-27 17:25:25 +0200 |
commit | 1320da6784f1bfdb6c52abc7a0ffd516cf0fbf0d (patch) | |
tree | 5b27dae1caba3fa69cfa5f7205a874323f634d21 /src/plugins/tasklist/taskfilefactory.cpp | |
parent | 7b5b60ff8ae47c275740a425408952ca6a8382fd (diff) | |
download | qt-creator-1320da6784f1bfdb6c52abc7a0ffd516cf0fbf0d.tar.gz |
Improve TaskList plugin
* Automatically reload task lists.
* Add task handler to stop the reloading
* Add some really simple API for other plugins to use.
Diffstat (limited to 'src/plugins/tasklist/taskfilefactory.cpp')
-rw-r--r-- | src/plugins/tasklist/taskfilefactory.cpp | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/src/plugins/tasklist/taskfilefactory.cpp b/src/plugins/tasklist/taskfilefactory.cpp index 8665afd8b0..fc43880071 100644 --- a/src/plugins/tasklist/taskfilefactory.cpp +++ b/src/plugins/tasklist/taskfilefactory.cpp @@ -29,13 +29,20 @@ #include "taskfilefactory.h" -#include "tasklistmanager.h" +#include "taskfile.h" + +#include <projectexplorer/projectexplorer.h> +#include <coreplugin/icore.h> +#include <coreplugin/filemanager.h> using namespace TaskList::Internal; -TaskFileFactory::TaskFileFactory(TaskListManager *manager) : - Core::IFileFactory(0), - m_manager(manager), +// -------------------------------------------------------------------------- +// TaskFileFactory +// -------------------------------------------------------------------------- + +TaskFileFactory::TaskFileFactory(QObject * parent) : + Core::IFileFactory(parent), m_mimeTypes(QStringList() << QLatin1String("text/x-tasklist")) { } @@ -59,7 +66,32 @@ QString TaskFileFactory::displayName() const Core::IFile *TaskFileFactory::open(const QString &fileName) { - Core::IFile *file = 0; - m_manager->setTaskFile(fileName); + ProjectExplorer::Project * context = + ProjectExplorer::ProjectExplorerPlugin::instance()->currentProject(); + return open(context, fileName); +} + +Core::IFile *TaskFileFactory::open(ProjectExplorer::Project *context, const QString &fileName) +{ + TaskFile *file = new TaskFile(this); + file->setContext(context); + + if (!file->open(fileName)) { + delete file; + return 0; + } + + m_openFiles.append(file); + + // Register with filemanager: + Core::ICore::instance()->fileManager()->addFile(file); + return file; } + +void TaskFileFactory::closeAllFiles() +{ + foreach(Core::IFile *file, m_openFiles) + file->deleteLater(); + m_openFiles.clear(); +} |