ENH: Replace Advanced checkbox and group option in menu with a combo box to

choose view type.
This commit is contained in:
Clinton Stimpson 2008-07-05 13:25:04 -04:00
parent 65ad7ba830
commit f729538aaa
3 changed files with 43 additions and 17 deletions

View File

@ -78,9 +78,11 @@ CMakeSetupDialog::CMakeSetupDialog()
this->AddEntry->setEnabled(false);
bool groupView = settings.value("GroupView", false).toBool();
this->CacheValues->cacheModel()->setViewType(groupView ?
QCMakeCacheModel::GroupView : QCMakeCacheModel::FlatView);
this->CacheValues->setRootIsDecorated(groupView);
if(groupView)
{
this->setViewType(2);
this->ViewType->setCurrentIndex(2);
}
QMenu* FileMenu = this->menuBar()->addMenu(tr("&File"));
this->ReloadCacheAction = FileMenu->addAction(tr("&Reload Cache"));
@ -118,11 +120,6 @@ CMakeSetupDialog::CMakeSetupDialog()
this, SLOT(setDebugOutput(bool)));
OptionsMenu->addSeparator();
QAction* groupAction = OptionsMenu->addAction(tr("&Group Entries"));
groupAction->setCheckable(true);
groupAction->setChecked(this->CacheValues->cacheModel()->viewType() == QCMakeCacheModel::GroupView);
QObject::connect(groupAction, SIGNAL(toggled(bool)),
this, SLOT(toggleGroupView(bool)));
QAction* expandAction = OptionsMenu->addAction(tr("&Expand Grouped Entries"));
QObject::connect(expandAction, SIGNAL(triggered(bool)),
this->CacheValues, SLOT(expandAll()));
@ -214,8 +211,8 @@ void CMakeSetupDialog::initialize()
SIGNAL(outputMessage(QString)),
this, SLOT(message(QString)));
QObject::connect(this->Advanced, SIGNAL(clicked(bool)),
this->CacheValues, SLOT(setShowAdvanced(bool)));
QObject::connect(this->ViewType, SIGNAL(currentIndexChanged(int)),
this, SLOT(setViewType(int)));
QObject::connect(this->Search, SIGNAL(textChanged(QString)),
this->CacheValues, SLOT(setSearchFilter(QString)));
@ -931,13 +928,30 @@ void CMakeSetupDialog::setDebugOutput(bool flag)
"setDebugOutput", Qt::QueuedConnection, Q_ARG(bool, flag));
}
void CMakeSetupDialog::toggleGroupView(bool f)
void CMakeSetupDialog::setViewType(int v)
{
this->CacheValues->cacheModel()->setViewType(f ? QCMakeCacheModel::GroupView : QCMakeCacheModel::FlatView);
this->CacheValues->setRootIsDecorated(f);
if(v == 0) // simple view
{
this->CacheValues->cacheModel()->setViewType(QCMakeCacheModel::FlatView);
this->CacheValues->setRootIsDecorated(false);
this->CacheValues->setShowAdvanced(false);
}
else if(v == 1) // advanced view
{
this->CacheValues->cacheModel()->setViewType(QCMakeCacheModel::FlatView);
this->CacheValues->setRootIsDecorated(false);
this->CacheValues->setShowAdvanced(true);
}
else if(v == 2) // grouped view
{
this->CacheValues->cacheModel()->setViewType(QCMakeCacheModel::GroupView);
this->CacheValues->setRootIsDecorated(true);
this->CacheValues->setShowAdvanced(true);
}
QSettings settings;
settings.beginGroup("Settings/StartPath");
settings.setValue("GroupView", this->CacheValues->cacheModel()->viewType() == QCMakeCacheModel::GroupView);
settings.setValue("GroupView", v == 2);
}

View File

@ -75,7 +75,7 @@ protected slots:
void addCacheEntry();
void startSearch();
void setDebugOutput(bool);
void toggleGroupView(bool);
void setViewType(int);
protected:

View File

@ -127,10 +127,22 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="Advanced" >
<widget class="QComboBox" name="ViewType" >
<item>
<property name="text" >
<string>Show Ad&amp;vanced Entries</string>
<string>Simple View</string>
</property>
</item>
<item>
<property name="text" >
<string>Advanced View</string>
</property>
</item>
<item>
<property name="text" >
<string>Grouped View</string>
</property>
</item>
</widget>
</item>
<item>