forked from qt-creator/qt-creator
TaskWindow: Save filter settings as part of a session
Change-Id: I530b655404541c9a9afaa1e87f2b39c867c93e37 Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
This commit is contained in:
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include "itaskhandler.h"
|
#include "itaskhandler.h"
|
||||||
#include "projectexplorerconstants.h"
|
#include "projectexplorerconstants.h"
|
||||||
|
#include "session.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "taskhub.h"
|
#include "taskhub.h"
|
||||||
#include "taskmodel.h"
|
#include "taskmodel.h"
|
||||||
@@ -42,6 +43,7 @@
|
|||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <coreplugin/icontext.h>
|
#include <coreplugin/icontext.h>
|
||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
|
#include <utils/algorithm.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/itemviews.h>
|
#include <utils/itemviews.h>
|
||||||
|
|
||||||
@@ -54,6 +56,8 @@
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
const int ELLIPSIS_GRADIENT_WIDTH = 16;
|
const int ELLIPSIS_GRADIENT_WIDTH = 16;
|
||||||
|
const char SESSION_FILTER_CATEGORIES[] = "TaskWindow.Categories";
|
||||||
|
const char SESSION_FILTER_WARNINGS[] = "TaskWindow.IncludeWarnings";
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
@@ -303,6 +307,10 @@ TaskWindow::TaskWindow() : d(new TaskWindowPrivate)
|
|||||||
[this]() { emit setBadgeNumber(d->m_filter->rowCount()); });
|
[this]() { emit setBadgeNumber(d->m_filter->rowCount()); });
|
||||||
connect(d->m_filter, &TaskFilterModel::modelReset,
|
connect(d->m_filter, &TaskFilterModel::modelReset,
|
||||||
[this]() { emit setBadgeNumber(d->m_filter->rowCount()); });
|
[this]() { emit setBadgeNumber(d->m_filter->rowCount()); });
|
||||||
|
|
||||||
|
SessionManager *session = SessionManager::instance();
|
||||||
|
connect(session, &SessionManager::aboutToSaveSession, this, &TaskWindow::saveSettings);
|
||||||
|
connect(session, &SessionManager::sessionLoaded, this, &TaskWindow::loadSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskWindow::~TaskWindow()
|
TaskWindow::~TaskWindow()
|
||||||
@@ -398,6 +406,30 @@ void TaskWindow::currentChanged(const QModelIndex &index)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TaskWindow::saveSettings()
|
||||||
|
{
|
||||||
|
QStringList categories = Utils::transform(d->m_filter->filteredCategories(), &Core::Id::toString);
|
||||||
|
SessionManager::setValue(QLatin1String(SESSION_FILTER_CATEGORIES), categories);
|
||||||
|
SessionManager::setValue(QLatin1String(SESSION_FILTER_WARNINGS), d->m_filter->filterIncludesWarnings());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskWindow::loadSettings()
|
||||||
|
{
|
||||||
|
QVariant value = SessionManager::value(QLatin1String(SESSION_FILTER_CATEGORIES));
|
||||||
|
if (value.isValid()) {
|
||||||
|
QList<Core::Id> categories
|
||||||
|
= Utils::transform(value.toStringList(), &Core::Id::fromString);
|
||||||
|
d->m_filter->setFilteredCategories(categories);
|
||||||
|
}
|
||||||
|
value = SessionManager::value(QLatin1String(SESSION_FILTER_WARNINGS));
|
||||||
|
if (value.isValid()) {
|
||||||
|
bool includeWarnings = value.toBool();
|
||||||
|
d->m_filter->setFilterIncludesWarnings(includeWarnings);
|
||||||
|
d->m_filter->setFilterIncludesUnknowns(includeWarnings);
|
||||||
|
d->m_filterWarningsButton->setDown(d->m_filter->filterIncludesWarnings());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TaskWindow::visibilityChanged(bool visible)
|
void TaskWindow::visibilityChanged(bool visible)
|
||||||
{
|
{
|
||||||
if (visible)
|
if (visible)
|
||||||
|
@@ -96,6 +96,8 @@ private slots:
|
|||||||
void clearTasks(Core::Id categoryId);
|
void clearTasks(Core::Id categoryId);
|
||||||
void setCategoryVisibility(Core::Id categoryId, bool visible);
|
void setCategoryVisibility(Core::Id categoryId, bool visible);
|
||||||
void currentChanged(const QModelIndex &index);
|
void currentChanged(const QModelIndex &index);
|
||||||
|
void saveSettings();
|
||||||
|
void loadSettings();
|
||||||
|
|
||||||
void triggerDefaultHandler(const QModelIndex &index);
|
void triggerDefaultHandler(const QModelIndex &index);
|
||||||
void actionTriggered();
|
void actionTriggered();
|
||||||
|
Reference in New Issue
Block a user