aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/projecttreewidget.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-10-22 13:42:21 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-10-22 13:42:03 +0000
commitb8657ac73930bc729d601366b047528847413f9e (patch)
tree46587b67656471d0d89c09c944c823ef56d8d7cb /src/plugins/projectexplorer/projecttreewidget.cpp
parentd485f9f359f752f0e18a8b6befa1e874a3d87d00 (diff)
Project Tree: Allow to hide disabled files
Project manager plugins can mark files as disabled, typically meaning they are not part of the project in the current build configuration. Let's allow users to hide such files altogether. Fixes: QTCREATORBUG-22821 Change-Id: Ie92d523d1f895bee8076de1d7eea1d7a739fe11f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/projecttreewidget.cpp')
-rw-r--r--src/plugins/projectexplorer/projecttreewidget.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index f18b21a9be..8f4d5adef7 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -257,6 +257,12 @@ ProjectTreeWidget::ProjectTreeWidget(QWidget *parent) : QWidget(parent)
connect(m_filterGeneratedFilesAction, &QAction::toggled,
this, &ProjectTreeWidget::setGeneratedFilesFilter);
+ m_filterDisabledFilesAction = new QAction(tr("Hide Disabled Files"), this);
+ m_filterDisabledFilesAction->setCheckable(true);
+ m_filterDisabledFilesAction->setChecked(false);
+ connect(m_filterDisabledFilesAction, &QAction::toggled,
+ this, &ProjectTreeWidget::setDisabledFilesFilter);
+
const char focusActionId[] = "ProjectExplorer.FocusDocumentInProjectTree";
if (!ActionManager::command(focusActionId)) {
auto focusDocumentInProjectTree = new QAction(tr("Focus Document in Project Tree"), this);
@@ -560,6 +566,12 @@ void ProjectTreeWidget::setGeneratedFilesFilter(bool filter)
m_filterGeneratedFilesAction->setChecked(filter);
}
+void ProjectTreeWidget::setDisabledFilesFilter(bool filter)
+{
+ m_model->setDisabledFilesFilterEnabled(filter);
+ m_filterDisabledFilesAction->setChecked(filter);
+}
+
void ProjectTreeWidget::setTrimEmptyDirectories(bool filter)
{
m_model->setTrimEmptyDirectories(filter);
@@ -571,6 +583,11 @@ bool ProjectTreeWidget::generatedFilesFilter()
return m_model->generatedFilesFilterEnabled();
}
+bool ProjectTreeWidget::disabledFilesFilter()
+{
+ return m_model->disabledFilesFilterEnabled();
+}
+
bool ProjectTreeWidget::trimEmptyDirectoriesFilter()
{
return m_model->trimEmptyDirectoriesEnabled();
@@ -604,6 +621,7 @@ NavigationView ProjectTreeWidgetFactory::createWidget()
auto filterMenu = new QMenu(filter);
filterMenu->addAction(ptw->m_filterProjectsAction);
filterMenu->addAction(ptw->m_filterGeneratedFilesAction);
+ filterMenu->addAction(ptw->m_filterDisabledFilesAction);
filterMenu->addAction(ptw->m_trimEmptyDirectoriesAction);
filter->setMenu(filterMenu);
@@ -618,6 +636,7 @@ void ProjectTreeWidgetFactory::saveSettings(QSettings *settings, int position, Q
const QString baseKey = QLatin1String("ProjectTreeWidget.") + QString::number(position);
settings->setValue(baseKey + QLatin1String(".ProjectFilter"), ptw->projectFilter());
settings->setValue(baseKey + QLatin1String(".GeneratedFilter"), ptw->generatedFilesFilter());
+ settings->setValue(baseKey + ".DisabledFilesFilter", ptw->disabledFilesFilter());
settings->setValue(baseKey + QLatin1String(".TrimEmptyDirsFilter"), ptw->trimEmptyDirectoriesFilter());
settings->setValue(baseKey + QLatin1String(".SyncWithEditor"), ptw->autoSynchronization());
}
@@ -629,6 +648,7 @@ void ProjectTreeWidgetFactory::restoreSettings(QSettings *settings, int position
const QString baseKey = QLatin1String("ProjectTreeWidget.") + QString::number(position);
ptw->setProjectFilter(settings->value(baseKey + QLatin1String(".ProjectFilter"), false).toBool());
ptw->setGeneratedFilesFilter(settings->value(baseKey + QLatin1String(".GeneratedFilter"), true).toBool());
+ ptw->setDisabledFilesFilter(settings->value(baseKey + ".DisabledFilesFilter", false).toBool());
ptw->setTrimEmptyDirectories(settings->value(baseKey + QLatin1String(".TrimEmptyDirsFilter"), true).toBool());
ptw->setAutoSynchronization(settings->value(baseKey + QLatin1String(".SyncWithEditor"), true).toBool());
}