Core: NewDialog: remember category & platform choice persistently

Change-Id: I80256a787c3a17ff9faaa46bbcef51035a7530a4
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Martin Kampas
2015-11-16 10:40:40 +01:00
committed by Martin Kampas
parent d5decff558
commit 87f6b92e34
2 changed files with 15 additions and 10 deletions

View File

@@ -51,6 +51,8 @@ Q_DECLARE_METATYPE(Core::IWizardFactory*)
namespace { namespace {
const int ICON_SIZE = 22; const int ICON_SIZE = 22;
const char LAST_CATEGORY_KEY[] = "Core/NewDialog/LastCategory";
const char LAST_PLATFORM_KEY[] = "Core/NewDialog/LastPlatform";
class WizardFactoryContainer class WizardFactoryContainer
{ {
@@ -188,8 +190,6 @@ using namespace Core;
using namespace Core::Internal; using namespace Core::Internal;
bool NewDialog::m_isRunning = false; bool NewDialog::m_isRunning = false;
QString NewDialog::m_lastCategory = QString();
QString NewDialog::m_lastPlatform = QString();
NewDialog::NewDialog(QWidget *parent) : NewDialog::NewDialog(QWidget *parent) :
QDialog(parent), QDialog(parent),
@@ -302,12 +302,18 @@ void NewDialog::showDialog()
{ {
QModelIndex idx; QModelIndex idx;
if (!m_lastPlatform.isEmpty()) QString lastPlatform = ICore::settings()->value(QLatin1String(LAST_PLATFORM_KEY)).toString();
m_ui->comboBox->setCurrentIndex(m_ui->comboBox->findData(m_lastPlatform)); QString lastCategory = ICore::settings()->value(QLatin1String(LAST_CATEGORY_KEY)).toString();
if (!m_lastCategory.isEmpty()) if (!lastPlatform.isEmpty()) {
int index = m_ui->comboBox->findData(lastPlatform);
if (index != -1)
m_ui->comboBox->setCurrentIndex(index);
}
if (!lastCategory.isEmpty())
foreach (QStandardItem* item, m_categoryItems) { foreach (QStandardItem* item, m_categoryItems) {
if (item->data(Qt::UserRole) == m_lastCategory) if (item->data(Qt::UserRole) == lastCategory)
idx = m_twoLevelProxyModel->mapToSource(m_model->indexFromItem(item)); idx = m_twoLevelProxyModel->mapToSource(m_model->indexFromItem(item));
} }
if (!idx.isValid()) if (!idx.isValid())
@@ -449,8 +455,9 @@ void NewDialog::saveState()
QModelIndex idx = m_ui->templateCategoryView->currentIndex(); QModelIndex idx = m_ui->templateCategoryView->currentIndex();
QStandardItem *currentItem = m_model->itemFromIndex(m_twoLevelProxyModel->mapToSource(idx)); QStandardItem *currentItem = m_model->itemFromIndex(m_twoLevelProxyModel->mapToSource(idx));
if (currentItem) if (currentItem)
m_lastCategory = currentItem->data(Qt::UserRole).toString(); ICore::settings()->setValue(QLatin1String(LAST_CATEGORY_KEY),
m_lastPlatform = m_ui->comboBox->currentData().toString(); currentItem->data(Qt::UserRole));
ICore::settings()->setValue(QLatin1String(LAST_PLATFORM_KEY), m_ui->comboBox->currentData());
} }
void NewDialog::accept() void NewDialog::accept()

View File

@@ -85,8 +85,6 @@ private:
void addItem(QStandardItem *topLevelCategoryItem, IWizardFactory *factory); void addItem(QStandardItem *topLevelCategoryItem, IWizardFactory *factory);
void saveState(); void saveState();
static QString m_lastCategory;
static QString m_lastPlatform;
static bool m_isRunning; static bool m_isRunning;
Ui::NewDialog *m_ui; Ui::NewDialog *m_ui;