summaryrefslogtreecommitdiff
path: root/src/plugins/tasklist
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2015-12-06 15:03:58 +0200
committerOrgad Shaneh <orgads@gmail.com>2015-12-08 09:53:07 +0000
commit90ab6e9b949a7162f4786dff2258bbd92df5a2d3 (patch)
tree1979233d25154e5c08b52359a1c57023dc9e0627 /src/plugins/tasklist
parent6412cda77fd48bc36339acc2b670727fc0dd40df (diff)
downloadqt-creator-90ab6e9b949a7162f4786dff2258bbd92df5a2d3.tar.gz
TaskList: Make relative paths relative to the tasks file
... instead of relative to the project directory. This is much more intuitive. Change-Id: I2e8224fe998f7b762425a26970d5de85909a5d47 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/tasklist')
-rw-r--r--src/plugins/tasklist/taskfile.cpp12
-rw-r--r--src/plugins/tasklist/taskfile.h7
-rw-r--r--src/plugins/tasklist/tasklistplugin.cpp37
-rw-r--r--src/plugins/tasklist/tasklistplugin.h5
4 files changed, 16 insertions, 45 deletions
diff --git a/src/plugins/tasklist/taskfile.cpp b/src/plugins/tasklist/taskfile.cpp
index e094515a27..e09a5859e0 100644
--- a/src/plugins/tasklist/taskfile.cpp
+++ b/src/plugins/tasklist/taskfile.cpp
@@ -97,15 +97,5 @@ bool TaskFile::reload(QString *errorString, ReloadFlag flag, ChangeType type)
bool TaskFile::load(QString *errorString, const Utils::FileName &fileName)
{
setFilePath(fileName);
- return TaskListPlugin::loadFile(errorString, m_baseDir, fileName);
-}
-
-Utils::FileName TaskFile::baseDir() const
-{
- return m_baseDir;
-}
-
-void TaskFile::setBaseDir(const Utils::FileName &base)
-{
- m_baseDir = base;
+ return TaskListPlugin::loadFile(errorString, fileName);
}
diff --git a/src/plugins/tasklist/taskfile.h b/src/plugins/tasklist/taskfile.h
index 41ffab83b4..d562646be1 100644
--- a/src/plugins/tasklist/taskfile.h
+++ b/src/plugins/tasklist/taskfile.h
@@ -32,7 +32,6 @@
#define TASKFILE_H
#include <coreplugin/idocument.h>
-#include <utils/fileutils.h>
namespace ProjectExplorer { class Project; }
@@ -56,12 +55,6 @@ public:
bool reload(QString *errorString, ReloadFlag flag, ChangeType type) override;
bool load(QString *errorString, const Utils::FileName &fileName);
-
- Utils::FileName baseDir() const;
- void setBaseDir(const Utils::FileName &base);
-
-private:
- Utils::FileName m_baseDir;
};
} // namespace Internal
diff --git a/src/plugins/tasklist/tasklistplugin.cpp b/src/plugins/tasklist/tasklistplugin.cpp
index b71c5be618..90c6134d6e 100644
--- a/src/plugins/tasklist/tasklistplugin.cpp
+++ b/src/plugins/tasklist/tasklistplugin.cpp
@@ -37,8 +37,6 @@
#include <coreplugin/icore.h>
#include <coreplugin/idocumentfactory.h>
#include <coreplugin/documentmanager.h>
-#include <projectexplorer/projecttree.h>
-#include <projectexplorer/project.h>
#include <projectexplorer/session.h>
#include <projectexplorer/task.h>
#include <projectexplorer/taskhub.h>
@@ -54,7 +52,6 @@ using namespace ProjectExplorer;
using namespace Utils;
static const char SESSION_FILE_KEY[] = "TaskList.File";
-static const char SESSION_BASE_KEY[] = "TaskList.BaseDir";
namespace TaskList {
namespace Internal {
@@ -109,7 +106,7 @@ static QString unescape(const QString &input)
return result;
}
-static bool parseTaskFile(QString *errorString, const FileName &base, const FileName &name)
+static bool parseTaskFile(QString *errorString, const FileName &name)
{
QFile tf(name.toString());
if (!tf.open(QIODevice::ReadOnly)) {
@@ -118,6 +115,7 @@ static bool parseTaskFile(QString *errorString, const FileName &base, const File
return false;
}
+ const FileName parentDir = name.parentDir();
while (!tf.atEnd()) {
QStringList chunks = parseRawLine(tf.readLine());
if (chunks.isEmpty())
@@ -149,8 +147,8 @@ static bool parseTaskFile(QString *errorString, const FileName &base, const File
if (!file.isEmpty()) {
file = QDir::fromNativeSeparators(file);
QFileInfo fi(file);
- if (fi.isRelative() && !base.isEmpty())
- file = FileName(base).appendPath(file).toString();
+ if (fi.isRelative())
+ file = FileName(parentDir).appendPath(file).toString();
}
description = unescape(description);
@@ -164,7 +162,7 @@ static bool parseTaskFile(QString *errorString, const FileName &base, const File
// TaskListPlugin
// --------------------------------------------------------------------------
-IDocument *TaskListPlugin::openTasks(const FileName &base, const FileName &fileName)
+IDocument *TaskListPlugin::openTasks(const FileName &fileName)
{
foreach (TaskFile *doc, m_openFiles) {
if (doc->filePath() == fileName)
@@ -172,7 +170,6 @@ IDocument *TaskListPlugin::openTasks(const FileName &base, const FileName &fileN
}
auto file = new TaskFile(this);
- file->setBaseDir(base);
QString errorString;
if (!file->load(&errorString, fileName)) {
@@ -206,10 +203,8 @@ bool TaskListPlugin::initialize(const QStringList &arguments, QString *errorMess
m_fileFactory = new IDocumentFactory;
m_fileFactory->addMimeType(QLatin1String("text/x-tasklist"));
- m_fileFactory->setOpener([this](const QString &fileName) -> IDocument * {
- Project *project = ProjectTree::currentProject();
- return this->openTasks(project ? project->projectDirectory() : FileName(),
- FileName::fromString(fileName));
+ m_fileFactory->setOpener([this](const QString &fileName) {
+ return openTasks(FileName::fromString(fileName));
});
addAutoReleasedObject(m_fileFactory);
@@ -221,25 +216,21 @@ bool TaskListPlugin::initialize(const QStringList &arguments, QString *errorMess
return true;
}
-bool TaskListPlugin::loadFile(QString *errorString, const FileName &context,
- const FileName &fileName)
+bool TaskListPlugin::loadFile(QString *errorString, const FileName &fileName)
{
clearTasks();
- bool result = parseTaskFile(errorString, context, fileName);
- if (result) {
- SessionManager::setValue(QLatin1String(SESSION_BASE_KEY), context.toString());
+ bool result = parseTaskFile(errorString, fileName);
+ if (result)
SessionManager::setValue(QLatin1String(SESSION_FILE_KEY), fileName.toString());
- } else {
+ else
stopMonitoring();
- }
return result;
}
void TaskListPlugin::stopMonitoring()
{
- SessionManager::setValue(QLatin1String(SESSION_BASE_KEY), QString());
SessionManager::setValue(QLatin1String(SESSION_FILE_KEY), QString());
foreach (TaskFile *document, m_instance->m_openFiles)
@@ -256,10 +247,8 @@ void TaskListPlugin::loadDataFromSession()
{
const FileName fileName = FileName::fromString(
SessionManager::value(QLatin1String(SESSION_FILE_KEY)).toString());
- if (fileName.isEmpty())
- return;
- openTasks(FileName::fromString(
- SessionManager::value(QLatin1String(SESSION_BASE_KEY)).toString()), fileName);
+ if (!fileName.isEmpty())
+ openTasks(fileName);
}
} // namespace Internal
diff --git a/src/plugins/tasklist/tasklistplugin.h b/src/plugins/tasklist/tasklistplugin.h
index e241a3827e..b71d61e182 100644
--- a/src/plugins/tasklist/tasklistplugin.h
+++ b/src/plugins/tasklist/tasklistplugin.h
@@ -52,13 +52,12 @@ public:
bool initialize(const QStringList &arguments, QString *errorMessage);
void extensionsInitialized() {}
- static bool loadFile(QString *errorString, const Utils::FileName &context,
- const Utils::FileName &fileName);
+ static bool loadFile(QString *errorString, const Utils::FileName &fileName);
static void stopMonitoring();
static void clearTasks();
- Core::IDocument *openTasks(const Utils::FileName &base, const Utils::FileName &fileName);
+ Core::IDocument *openTasks(const Utils::FileName &fileName);
public slots:
void loadDataFromSession();