forked from qt-creator/qt-creator
SettingsDialog: Add Sort Categories check box
Change-Id: I06c343ecb8df1d9badb2f760045a71c9344ed820 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QCheckBox>
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
#include <QEventLoop>
|
#include <QEventLoop>
|
||||||
@@ -41,6 +42,7 @@ const int kMaxMinimumWidth = 250;
|
|||||||
const int kMaxMinimumHeight = 250;
|
const int kMaxMinimumHeight = 250;
|
||||||
|
|
||||||
static const char pageKeyC[] = "General/LastPreferencePage";
|
static const char pageKeyC[] = "General/LastPreferencePage";
|
||||||
|
static const char sortKeyC[] = "General/SortCategories";
|
||||||
const int categoryIconSize = 24;
|
const int categoryIconSize = 24;
|
||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
@@ -441,6 +443,7 @@ private:
|
|||||||
Id m_currentPage;
|
Id m_currentPage;
|
||||||
QStackedLayout *m_stackedLayout;
|
QStackedLayout *m_stackedLayout;
|
||||||
Utils::FancyLineEdit *m_filterLineEdit;
|
Utils::FancyLineEdit *m_filterLineEdit;
|
||||||
|
QCheckBox *m_sortCheckBox;
|
||||||
QListView *m_categoryList;
|
QListView *m_categoryList;
|
||||||
QLabel *m_headerLabel;
|
QLabel *m_headerLabel;
|
||||||
std::vector<QEventLoop *> m_eventLoops;
|
std::vector<QEventLoop *> m_eventLoops;
|
||||||
@@ -456,6 +459,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
|
|||||||
m_pages(sortedOptionsPages()),
|
m_pages(sortedOptionsPages()),
|
||||||
m_stackedLayout(new QStackedLayout),
|
m_stackedLayout(new QStackedLayout),
|
||||||
m_filterLineEdit(new Utils::FancyLineEdit),
|
m_filterLineEdit(new Utils::FancyLineEdit),
|
||||||
|
m_sortCheckBox(new QCheckBox(Tr::tr("Sort Categories"))),
|
||||||
m_categoryList(new CategoryListView),
|
m_categoryList(new CategoryListView),
|
||||||
m_headerLabel(new QLabel)
|
m_headerLabel(new QLabel)
|
||||||
{
|
{
|
||||||
@@ -473,6 +477,12 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
|
|||||||
m_categoryList->setSelectionMode(QAbstractItemView::SingleSelection);
|
m_categoryList->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||||
m_categoryList->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
m_categoryList->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
|
||||||
|
|
||||||
|
connect(m_sortCheckBox, &QAbstractButton::toggled, this, [this](bool checked) {
|
||||||
|
m_proxyModel.sort(checked ? 0 : -1);
|
||||||
|
});
|
||||||
|
QSettings *settings = ICore::settings();
|
||||||
|
m_sortCheckBox->setChecked(settings->value(QLatin1String(sortKeyC), false).toBool());
|
||||||
|
|
||||||
connect(m_categoryList->selectionModel(), &QItemSelectionModel::currentRowChanged,
|
connect(m_categoryList->selectionModel(), &QItemSelectionModel::currentRowChanged,
|
||||||
this, &SettingsDialog::currentChanged);
|
this, &SettingsDialog::currentChanged);
|
||||||
|
|
||||||
@@ -581,8 +591,9 @@ void SettingsDialog::createGui()
|
|||||||
mainGridLayout->addWidget(m_filterLineEdit, 0, 0, 1, 1);
|
mainGridLayout->addWidget(m_filterLineEdit, 0, 0, 1, 1);
|
||||||
mainGridLayout->addLayout(headerHLayout, 0, 1, 1, 1);
|
mainGridLayout->addLayout(headerHLayout, 0, 1, 1, 1);
|
||||||
mainGridLayout->addWidget(m_categoryList, 1, 0, 1, 1);
|
mainGridLayout->addWidget(m_categoryList, 1, 0, 1, 1);
|
||||||
mainGridLayout->addLayout(m_stackedLayout, 1, 1, 1, 1);
|
mainGridLayout->addWidget(m_sortCheckBox, 2, 0, 1, 1);
|
||||||
mainGridLayout->addWidget(buttonBox, 2, 0, 1, 2);
|
mainGridLayout->addLayout(m_stackedLayout, 1, 1, 2, 1);
|
||||||
|
mainGridLayout->addWidget(buttonBox, 3, 0, 1, 2);
|
||||||
mainGridLayout->setColumnStretch(1, 4);
|
mainGridLayout->setColumnStretch(1, 4);
|
||||||
setLayout(mainGridLayout);
|
setLayout(mainGridLayout);
|
||||||
|
|
||||||
@@ -733,6 +744,7 @@ void SettingsDialog::done(int val)
|
|||||||
{
|
{
|
||||||
QSettings *settings = ICore::settings();
|
QSettings *settings = ICore::settings();
|
||||||
settings->setValue(QLatin1String(pageKeyC), m_currentPage.toSetting());
|
settings->setValue(QLatin1String(pageKeyC), m_currentPage.toSetting());
|
||||||
|
settings->setValue(QLatin1String(sortKeyC), m_sortCheckBox->isChecked());
|
||||||
|
|
||||||
ICore::saveSettings(ICore::SettingsDialogDone); // save all settings
|
ICore::saveSettings(ICore::SettingsDialogDone); // save all settings
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user