summaryrefslogtreecommitdiff
path: root/src/plugins/tasklist/taskfilefactory.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2010-08-27 16:26:16 +0200
committerTobias Hunger <tobias.hunger@nokia.com>2010-08-27 17:25:25 +0200
commit1320da6784f1bfdb6c52abc7a0ffd516cf0fbf0d (patch)
tree5b27dae1caba3fa69cfa5f7205a874323f634d21 /src/plugins/tasklist/taskfilefactory.cpp
parent7b5b60ff8ae47c275740a425408952ca6a8382fd (diff)
downloadqt-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.cpp44
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();
+}