Implement instance sorting options.

This commit is contained in:
Petr Mrázek
2013-11-04 00:11:20 +01:00
parent 4466929074
commit d6e4fb2971
5 changed files with 52 additions and 9 deletions

View File

@@ -129,8 +129,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
view->installEventFilter(this);
proxymodel = new InstanceProxyModel(this);
proxymodel->setSortRole(KCategorizedSortFilterProxyModel::CategorySortRole);
proxymodel->setFilterRole(KCategorizedSortFilterProxyModel::CategorySortRole);
// proxymodel->setSortRole(KCategorizedSortFilterProxyModel::CategorySortRole);
//proxymodel->setFilterRole(KCategorizedSortFilterProxyModel::CategorySortRole);
// proxymodel->setDynamicSortFilter ( true );
// FIXME: instList should be global-ish, or at least not tied to the main window...
@@ -420,6 +420,9 @@ void MainWindow::on_actionSettings_triggered()
{
SettingsDialog dialog(this);
dialog.exec();
//FIXME: quick HACK to make this work. improve, optimize.
proxymodel->invalidate();
proxymodel->sort(0);
}
void MainWindow::on_actionReportBug_triggered()

View File

@@ -33,6 +33,8 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::Se
{
MultiMCPlatform::fixWM_CLASS(this);
ui->setupUi(this);
ui->sortingModeGroup->setId(ui->sortByNameBtn, Sort_Name);
ui->sortingModeGroup->setId(ui->sortLastLaunchedBtn, Sort_LastLaunch);
loadSettings(MMC->settings().get());
updateCheckboxStuff();
@@ -165,6 +167,20 @@ void SettingsDialog::applySettings(SettingsObject *s)
// Custom Commands
s->set("PreLaunchCommand", ui->preLaunchCmdTextBox->text());
s->set("PostExitCommand", ui->postExitCmdTextBox->text());
auto sortMode = (InstSortMode) ui->sortingModeGroup->checkedId();
switch(sortMode)
{
case Sort_LastLaunch:
s->set("InstSortMode", "LastLaunch");
break;
case Sort_Name:
default:
s->set("InstSortMode", "Name");
break;
}
s->set("PostExitCommand", ui->postExitCmdTextBox->text());
}
void SettingsDialog::loadSettings(SettingsObject *s)
@@ -195,6 +211,17 @@ void SettingsDialog::loadSettings(SettingsObject *s)
ui->maxMemSpinBox->setValue(s->get("MaxMemAlloc").toInt());
ui->permGenSpinBox->setValue(s->get("PermGen").toInt());
QString sortMode = s->get("InstSortMode").toString();
if(sortMode == "LastLaunch")
{
ui->sortLastLaunchedBtn->setChecked(true);
}
else
{
ui->sortByNameBtn->setChecked(true);
}
// Java Settings
ui->javaPathTextBox->setText(s->get("JavaPath").toString());
ui->jvmArgsTextBox->setText(s->get("JvmArgs").toString());