Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:pascom
qtcreator
003-todo_filepath-4.14.2.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 003-todo_filepath-4.14.2.patch of Package qtcreator
diff -uprN qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todoitemsmodel.cpp qt-creator-opensource-src-4.14.2/src/plugins/todo/todoitemsmodel.cpp --- qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todoitemsmodel.cpp 2021-03-19 10:58:49.000000000 +0100 +++ qt-creator-opensource-src-4.14.2/src/plugins/todo/todoitemsmodel.cpp 2021-04-04 08:36:22.320009635 +0200 @@ -31,6 +31,9 @@ #include <utils/theme/theme.h> +#include <projectexplorer/project.h> +#include <coreplugin/documentmanager.h> + #include <QIcon> using namespace Utils; @@ -44,6 +47,28 @@ TodoItemsModel::TodoItemsModel(QObject * { } +void TodoItemsModel::startupProjectChanged(ProjectExplorer::Project *project) +{ + if(project) + m_projectDir = QDir(project->projectDirectory().toString()); + + m_defaultProjectsDir = QDir(Core::DocumentManager::useProjectsDirectory() + ? Core::DocumentManager::projectsDirectory().toString() + : QString()).canonicalPath(); +} + +QString TodoItemsModel::stripProjectPath(const QString& filename) const +{ + QString relativePath = m_projectDir.relativeFilePath(filename); + + if(relativePath.startsWith(QString::fromUtf8(".."))) + relativePath = QString::fromUtf8("~/") + m_defaultProjectsDir.relativeFilePath(filename); + if(relativePath.startsWith(QString::fromUtf8("~/.."))) + relativePath = filename; + + return relativePath; +} + void TodoItemsModel::setTodoItemsList(QList<TodoItem> *list) { m_todoItemsList = list; @@ -85,6 +110,7 @@ QVariant TodoItemsModel::data(const QMod case Constants::OUTPUT_COLUMN_TEXT: switch (role) { + case Qt::ToolTipRole: case Qt::DisplayRole: return item.text; case Qt::DecorationRole: @@ -94,11 +120,13 @@ QVariant TodoItemsModel::data(const QMod case Constants::OUTPUT_COLUMN_FILE: if (role == Qt::DisplayRole) + return stripProjectPath(item.file.toUserOutput()); + if (role == Qt::ToolTipRole) return item.file.toUserOutput(); break; case Constants::OUTPUT_COLUMN_LINE: - if (role == Qt::DisplayRole) + if ((role == Qt::DisplayRole) || (role == Qt::ToolTipRole)) return item.line; break; } diff -uprN qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todoitemsmodel.h qt-creator-opensource-src-4.14.2/src/plugins/todo/todoitemsmodel.h --- qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todoitemsmodel.h 2021-03-19 10:58:49.000000000 +0100 +++ qt-creator-opensource-src-4.14.2/src/plugins/todo/todoitemsmodel.h 2021-04-04 08:36:22.320009635 +0200 @@ -30,6 +30,11 @@ #include <QAbstractTableModel> #include <QList> +#include <QDir> + +namespace ProjectExplorer { + class Project; +} namespace Todo { namespace Internal { @@ -51,10 +56,19 @@ public: void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override; void todoItemsListUpdated(); +public slots: + // Needed to keep track of the active project root and of the default project dir : + void startupProjectChanged(ProjectExplorer::Project* project); + private: + // Wipe the project root (or the defaults document dir) of the filename : + QString stripProjectPath(const QString& filename) const; + QList<TodoItem> *m_todoItemsList = nullptr; Constants::OutputColumnIndex m_currentSortColumn; Qt::SortOrder m_currentSortOrder = Qt::AscendingOrder; + QDir m_projectDir, // This is the root path of the active project. + m_defaultProjectsDir; // This is the defaut path for Qt projects. }; } diff -uprN qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todoitemsprovider.cpp qt-creator-opensource-src-4.14.2/src/plugins/todo/todoitemsprovider.cpp --- qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todoitemsprovider.cpp 2021-03-19 10:58:49.000000000 +0100 +++ qt-creator-opensource-src-4.14.2/src/plugins/todo/todoitemsprovider.cpp 2021-04-04 08:36:22.320009635 +0200 @@ -230,6 +230,9 @@ void TodoItemsProvider::setupItemsModel( { m_itemsModel = new TodoItemsModel(this); m_itemsModel->setTodoItemsList(&m_itemsList); + + connect(SessionManager::instance(), SIGNAL(startupProjectChanged(ProjectExplorer::Project*)), + m_itemsModel, SLOT(startupProjectChanged(ProjectExplorer::Project*))); } } diff -uprN qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todooutputpane.cpp qt-creator-opensource-src-4.14.2/src/plugins/todo/todooutputpane.cpp --- qt-creator-opensource-src-4.14.2-orig/src/plugins/todo/todooutputpane.cpp 2021-03-19 10:58:49.000000000 +0100 +++ qt-creator-opensource-src-4.14.2/src/plugins/todo/todooutputpane.cpp 2021-04-04 08:38:10.022588366 +0200 @@ -170,9 +170,9 @@ void TodoOutputPane::todoTreeViewClicked int row = index.row(); TodoItem item; - item.text = index.sibling(row, Constants::OUTPUT_COLUMN_TEXT).data().toString(); - item.file = Utils::FilePath::fromUserInput(index.sibling(row, Constants::OUTPUT_COLUMN_FILE).data().toString()); - item.line = index.sibling(row, Constants::OUTPUT_COLUMN_LINE).data().toInt(); + item.text = index.sibling(row, Constants::OUTPUT_COLUMN_TEXT).data(Qt::ToolTipRole).toString(); + item.file = Utils::FilePath::fromUserInput(index.sibling(row, Constants::OUTPUT_COLUMN_FILE).data(Qt::ToolTipRole).toString()); + item.line = index.sibling(row, Constants::OUTPUT_COLUMN_LINE).data(Qt::ToolTipRole).toInt(); item.color = index.data(Qt::ForegroundRole).value<QColor>(); item.iconType = static_cast<IconType>(index.sibling(row, Constants::OUTPUT_COLUMN_TEXT) .data(Qt::UserRole).toInt());
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor