diff options
Diffstat (limited to 'src/plugins/projectexplorer')
-rw-r--r-- | src/plugins/projectexplorer/foldernavigationwidget.cpp | 11 | ||||
-rw-r--r-- | src/plugins/projectexplorer/foldernavigationwidget.h | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/session.cpp | 9 |
3 files changed, 17 insertions, 5 deletions
diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp index f981545c69..3ba8fecce1 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.cpp +++ b/src/plugins/projectexplorer/foldernavigationwidget.cpp @@ -25,6 +25,7 @@ #include "foldernavigationwidget.h" #include "projectexplorer.h" +#include "projectexplorericons.h" #include <coreplugin/actionmanager/command.h> #include <coreplugin/documentmanager.h> @@ -199,6 +200,7 @@ void FolderNavigationWidget::insertRootDirectory( m_rootSelector->setItemData(index, directory.id, ID_ROLE); m_rootSelector->setItemData(index, directory.sortValue, SORT_ROLE); m_rootSelector->setItemData(index, directory.path.toUserOutput(), Qt::ToolTipRole); + m_rootSelector->setItemIcon(index, directory.icon); if (m_rootSelector->currentIndex() == previousIndex) m_rootSelector->setCurrentIndex(index); if (previousIndex < m_rootSelector->count()) @@ -378,11 +380,13 @@ FolderNavigationWidgetFactory::FolderNavigationWidgetFactory() insertRootDirectory({QLatin1String("A.Computer"), 0 /*sortValue*/, FolderNavigationWidget::tr("Computer"), - Utils::FileName()}); + Utils::FileName(), + Icons::DESKTOP_DEVICE_SMALL.icon()}); insertRootDirectory({QLatin1String("A.Home"), 10 /*sortValue*/, FolderNavigationWidget::tr("Home"), - Utils::FileName::fromString(QDir::homePath())}); + Utils::FileName::fromString(QDir::homePath()), + Utils::Icons::HOME.icon()}); updateProjectsDirectoryRoot(); connect(Core::DocumentManager::instance(), &Core::DocumentManager::projectsDirectoryChanged, @@ -465,7 +469,8 @@ void FolderNavigationWidgetFactory::updateProjectsDirectoryRoot() insertRootDirectory({QLatin1String(PROJECTSDIRECTORYROOT_ID), 20 /*sortValue*/, FolderNavigationWidget::tr("Projects"), - Core::DocumentManager::projectsDirectory()}); + Core::DocumentManager::projectsDirectory(), + Utils::Icons::PROJECT.icon()}); } } // namespace Internal diff --git a/src/plugins/projectexplorer/foldernavigationwidget.h b/src/plugins/projectexplorer/foldernavigationwidget.h index 11e2bbc9ec..55bbf44a27 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.h +++ b/src/plugins/projectexplorer/foldernavigationwidget.h @@ -28,6 +28,7 @@ #include <coreplugin/inavigationwidgetfactory.h> #include <utils/fileutils.h> +#include <QIcon> #include <QWidget> namespace Core { class IEditor; } @@ -56,6 +57,7 @@ public: int sortValue; QString displayName; Utils::FileName path; + QIcon icon; }; FolderNavigationWidgetFactory(); diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index e66e8e7d8b..b5fddb74ce 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -394,14 +394,19 @@ void SessionManager::addProject(Project *pro) emit m_instance->projectAdded(pro); const auto updateFolderNavigation = [pro] { + const QIcon icon = pro->rootProjectNode() ? pro->rootProjectNode()->icon() : QIcon(); FolderNavigationWidgetFactory::insertRootDirectory({projectFolderId(pro), PROJECT_SORT_VALUE, pro->displayName(), - pro->projectFilePath().parentDir()}); + pro->projectFilePath().parentDir(), + icon}); }; updateFolderNavigation(); configureEditors(pro); - connect(pro, &Project::fileListChanged, [pro](){ configureEditors(pro); }); + connect(pro, &Project::fileListChanged, [pro, updateFolderNavigation]() { + configureEditors(pro); + updateFolderNavigation(); // update icon + }); connect(pro, &Project::displayNameChanged, pro, updateFolderNavigation); } |