Implement instance sorting options.
This commit is contained in:
		@@ -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()
 | 
			
		||||
 
 | 
			
		||||
@@ -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());
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user