summaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-07-16 00:30:32 +0200
committerPetr Mrázek <peterix@gmail.com>2013-07-16 00:30:32 +0200
commite2ee6d6d254285284f07b07cb60409fbda0bf7ad (patch)
tree30810ad496b34ae949aba3a72efb0a0363e8b718 /gui
parentb5450042b5f9ddaad7585f644591b7d009aeb5cb (diff)
downloadMultiMC-e2ee6d6d254285284f07b07cb60409fbda0bf7ad.tar
MultiMC-e2ee6d6d254285284f07b07cb60409fbda0bf7ad.tar.gz
MultiMC-e2ee6d6d254285284f07b07cb60409fbda0bf7ad.tar.lz
MultiMC-e2ee6d6d254285284f07b07cb60409fbda0bf7ad.tar.xz
MultiMC-e2ee6d6d254285284f07b07cb60409fbda0bf7ad.zip
Finalize the instance settings dialog, add setting reset mechanism
Diffstat (limited to 'gui')
-rw-r--r--gui/instancesettings.cpp209
-rw-r--r--gui/instancesettings.h19
-rw-r--r--gui/instancesettings.ui35
-rw-r--r--gui/mainwindow.cpp22
4 files changed, 191 insertions, 94 deletions
diff --git a/gui/instancesettings.cpp b/gui/instancesettings.cpp
index d0e02b8e..eea61ce8 100644
--- a/gui/instancesettings.cpp
+++ b/gui/instancesettings.cpp
@@ -20,90 +20,161 @@
#include "instancesettings.h"
#include "ui_instancesettings.h"
-InstanceSettings::InstanceSettings(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::InstanceSettings)
+InstanceSettings::InstanceSettings( SettingsObject * obj, QWidget *parent) :
+ m_obj(obj),
+ QDialog(parent),
+ ui(new Ui::InstanceSettings)
{
- ui->setupUi(this);
+ ui->setupUi(this);
+ loadSettings();
}
InstanceSettings::~InstanceSettings()
{
- delete ui;
+ delete ui;
}
void InstanceSettings::on_customCommandsGroupBox_toggled(bool state)
{
- ui->labelCustomCmdsDescription->setEnabled(state);
+ ui->labelCustomCmdsDescription->setEnabled(state);
}
-
-void InstanceSettings::applySettings(SettingsObject *s)
+void InstanceSettings::on_buttonBox_accepted()
{
+ applySettings();
+ accept();
+}
- // Console
- s->set("ShowConsole", ui->showConsoleCheck->isChecked());
- s->set("AutoCloseConsole", ui->autoCloseConsoleCheck->isChecked());
- s->set("OverrideConsole", ui->consoleSettingsBox->isChecked());
-
- // Window Size
- s->set("LaunchCompatMode", ui->compatModeCheckBox->isChecked());
- s->set("LaunchMaximized", ui->maximizedCheckBox->isChecked());
- s->set("MinecraftWinWidth", ui->windowWidthSpinBox->value());
- s->set("MinecraftWinHeight", ui->windowHeightSpinBox->value());
- s->set("OverrideWindow", ui->windowSizeGroupBox->isChecked());
-
- // Auto Login
- s->set("AutoLogin", ui->autoLoginChecBox->isChecked());
- s->set("OverrideLogin", ui->accountSettingsGroupBox->isChecked());
-
- // Memory
- s->set("MinMemAlloc", ui->minMemSpinBox->value());
- s->set("MaxMemAlloc", ui->maxMemSpinBox->value());
- s->set("OverrideMemory", ui->memoryGroupBox->isChecked());
-
- // Java Settings
- s->set("JavaPath", ui->javaPathTextBox->text());
- s->set("JvmArgs", ui->jvmArgsTextBox->text());
- s->set("OverrideJava", ui->javaSettingsGroupBox->isChecked());
-
- // Custom Commands
- s->set("PreLaunchCommand", ui->preLaunchCmdTextBox->text());
- s->set("PostExitCommand", ui->postExitCmdTextBox->text());
- s->set("OverrideCommands", ui->customCommandsGroupBox->isChecked());
+void InstanceSettings::on_buttonBox_rejected()
+{
+ reject();
}
-void InstanceSettings::loadSettings(SettingsObject *s)
+
+void InstanceSettings::applySettings()
{
+ // Console
+ bool console = ui->consoleSettingsBox->isChecked();
+ m_obj->set("OverrideConsole", console);
+ if(console)
+ {
+ m_obj->set("ShowConsole", ui->showConsoleCheck->isChecked());
+ m_obj->set("AutoCloseConsole", ui->autoCloseConsoleCheck->isChecked());
+ }
+ else
+ {
+ m_obj->reset("ShowConsole");
+ m_obj->reset("AutoCloseConsole");
+ }
+
+ // Window Size
+ bool window = ui->windowSizeGroupBox->isChecked();
+ m_obj->set("OverrideWindow", window);
+ if(window)
+ {
+ m_obj->set("LaunchCompatMode", ui->compatModeCheckBox->isChecked());
+ m_obj->set("LaunchMaximized", ui->maximizedCheckBox->isChecked());
+ m_obj->set("MinecraftWinWidth", ui->windowWidthSpinBox->value());
+ m_obj->set("MinecraftWinHeight", ui->windowHeightSpinBox->value());
+ }
+ else
+ {
+ m_obj->reset("LaunchCompatMode");
+ m_obj->reset("LaunchMaximized");
+ m_obj->reset("MinecraftWinWidth");
+ m_obj->reset("MinecraftWinHeight");
+ }
+
+
+ // Auto Login
+ bool login = ui->accountSettingsGroupBox->isChecked();
+ m_obj->set("OverrideLogin", login);
+ if(login)
+ {
+ m_obj->set("AutoLogin", ui->autoLoginChecBox->isChecked());
+ }
+ else
+ {
+ m_obj->reset("AutoLogin");
+ }
+
+
+ // Memory
+ bool memory = ui->memoryGroupBox->isChecked();
+ m_obj->set("OverrideMemory", memory);
+ if(memory)
+ {
+ m_obj->set("MinMemAlloc", ui->minMemSpinBox->value());
+ m_obj->set("MaxMemAlloc", ui->maxMemSpinBox->value());
+ }
+ else
+ {
+ m_obj->reset("MinMemAlloc");
+ m_obj->reset("MaxMemAlloc");
+ }
+
+
+ // Java Settings
+ bool java = ui->javaSettingsGroupBox->isChecked();
+ m_obj->set("OverrideJava", java);
+ if(java)
+ {
+ m_obj->set("JavaPath", ui->javaPathTextBox->text());
+ m_obj->set("JvmArgs", ui->jvmArgsTextBox->text());
+ }
+ else
+ {
+ m_obj->reset("JavaPath");
+ m_obj->reset("JvmArgs");
+ }
+
+
+ // Custom Commands
+ bool custcmd = ui->customCommandsGroupBox->isChecked();
+ m_obj->set("OverrideCommands", custcmd);
+ if(custcmd)
+ {
+ m_obj->set("PreLaunchCommand", ui->preLaunchCmdTextBox->text());
+ m_obj->set("PostExitCommand", ui->postExitCmdTextBox->text());
+ }
+ else
+ {
+ m_obj->reset("PreLaunchCommand");
+ m_obj->reset("PostExitCommand");
+ }
+
+}
- // Console
- ui->showConsoleCheck->setChecked(s->get("ShowConsole").toBool());
- ui->autoCloseConsoleCheck->setChecked(s->get("AutoCloseConsole").toBool());
- ui->consoleSettingsBox->setChecked(s->get("OverrideConsole").toBool());
-
- // Window Size
- ui->compatModeCheckBox->setChecked(s->get("LaunchCompatMode").toBool());
- ui->maximizedCheckBox->setChecked(s->get("LaunchMaximized").toBool());
- ui->windowWidthSpinBox->setValue(s->get("MinecraftWinWidth").toInt());
- ui->windowHeightSpinBox->setValue(s->get("MinecraftWinHeight").toInt());
- ui->windowSizeGroupBox->setChecked(s->get("OverrideWindow").toBool());
-
- // Auto Login
- ui->autoLoginChecBox->setChecked(s->get("AutoLogin").toBool());
- ui->accountSettingsGroupBox->setChecked(s->get("OverrideLogin").toBool());
-
- // Memory
- ui->minMemSpinBox->setValue(s->get("MinMemAlloc").toInt());
- ui->maxMemSpinBox->setValue(s->get("MaxMemAlloc").toInt());
- ui->memoryGroupBox->setChecked(s->get("OverrideMemory").toBool());
-
- // Java Settings
- ui->javaPathTextBox->setText(s->get("JavaPath").toString());
- ui->jvmArgsTextBox->setText(s->get("JvmArgs").toString());
- ui->javaSettingsGroupBox->setChecked(s->get("OverrideJava").toBool());
-
- // Custom Commands
- ui->preLaunchCmdTextBox->setText(s->get("PreLaunchCommand").toString());
- ui->postExitCmdTextBox->setText(s->get("PostExitCommand").toString());
- ui->customCommandsGroupBox->setChecked(s->get("OverrideCommands").toBool());
+void InstanceSettings::loadSettings()
+{
+ // Console
+ ui->showConsoleCheck->setChecked(m_obj->get("ShowConsole").toBool());
+ ui->autoCloseConsoleCheck->setChecked(m_obj->get("AutoCloseConsole").toBool());
+ ui->consoleSettingsBox->setChecked(m_obj->get("OverrideConsole").toBool());
+
+ // Window Size
+ ui->compatModeCheckBox->setChecked(m_obj->get("LaunchCompatMode").toBool());
+ ui->maximizedCheckBox->setChecked(m_obj->get("LaunchMaximized").toBool());
+ ui->windowWidthSpinBox->setValue(m_obj->get("MinecraftWinWidth").toInt());
+ ui->windowHeightSpinBox->setValue(m_obj->get("MinecraftWinHeight").toInt());
+ ui->windowSizeGroupBox->setChecked(m_obj->get("OverrideWindow").toBool());
+
+ // Auto Login
+ ui->autoLoginChecBox->setChecked(m_obj->get("AutoLogin").toBool());
+ ui->accountSettingsGroupBox->setChecked(m_obj->get("OverrideLogin").toBool());
+
+ // Memory
+ ui->minMemSpinBox->setValue(m_obj->get("MinMemAlloc").toInt());
+ ui->maxMemSpinBox->setValue(m_obj->get("MaxMemAlloc").toInt());
+ ui->memoryGroupBox->setChecked(m_obj->get("OverrideMemory").toBool());
+
+ // Java Settings
+ ui->javaPathTextBox->setText(m_obj->get("JavaPath").toString());
+ ui->jvmArgsTextBox->setText(m_obj->get("JvmArgs").toString());
+ ui->javaSettingsGroupBox->setChecked(m_obj->get("OverrideJava").toBool());
+
+ // Custom Commands
+ ui->preLaunchCmdTextBox->setText(m_obj->get("PreLaunchCommand").toString());
+ ui->postExitCmdTextBox->setText(m_obj->get("PostExitCommand").toString());
+ ui->customCommandsGroupBox->setChecked(m_obj->get("OverrideCommands").toBool());
}
diff --git a/gui/instancesettings.h b/gui/instancesettings.h
index abd63199..afbd0c16 100644
--- a/gui/instancesettings.h
+++ b/gui/instancesettings.h
@@ -10,22 +10,25 @@ class InstanceSettings;
class InstanceSettings : public QDialog
{
- Q_OBJECT
+ Q_OBJECT
public:
- explicit InstanceSettings(QWidget *parent = 0);
- ~InstanceSettings();
+ explicit InstanceSettings(SettingsObject *s, QWidget *parent = 0);
+ ~InstanceSettings();
- void updateCheckboxStuff();
+ void updateCheckboxStuff();
- void applySettings(SettingsObject *s);
- void loadSettings(SettingsObject* s);
+ void applySettings();
+ void loadSettings();
private slots:
- void on_customCommandsGroupBox_toggled(bool arg1);
+ void on_customCommandsGroupBox_toggled(bool arg1);
+ void on_buttonBox_accepted();
+ void on_buttonBox_rejected();
private:
- Ui::InstanceSettings *ui;
+ Ui::InstanceSettings *ui;
+ SettingsObject * m_obj;
};
#endif // INSTANCESETTINGS_H
diff --git a/gui/instancesettings.ui b/gui/instancesettings.ui
index 187275de..16e64100 100644
--- a/gui/instancesettings.ui
+++ b/gui/instancesettings.ui
@@ -162,7 +162,7 @@
<item>
<widget class="QCheckBox" name="autoLoginChecBox">
<property name="enabled">
- <bool>true</bool>
+ <bool>false</bool>
</property>
<property name="text">
<string>Login automatically when an instance icon is double clicked?</string>
@@ -319,6 +319,9 @@
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="preLaunchCmdTextBox"/>
+ </item>
<item row="1" column="0">
<widget class="QLabel" name="labelPostExitCmd">
<property name="text">
@@ -333,9 +336,6 @@
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QLineEdit" name="preLaunchCmdTextBox"/>
- </item>
<item row="1" column="1">
<widget class="QLineEdit" name="postExitCmdTextBox"/>
</item>
@@ -362,6 +362,9 @@
<property name="wordWrap">
<bool>true</bool>
</property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+ </property>
</widget>
</item>
</layout>
@@ -384,6 +387,30 @@
</property>
</widget>
</widget>
+ <tabstops>
+ <tabstop>settingsTabs</tabstop>
+ <tabstop>windowSizeGroupBox</tabstop>
+ <tabstop>compatModeCheckBox</tabstop>
+ <tabstop>maximizedCheckBox</tabstop>
+ <tabstop>windowWidthSpinBox</tabstop>
+ <tabstop>windowHeightSpinBox</tabstop>
+ <tabstop>consoleSettingsBox</tabstop>
+ <tabstop>showConsoleCheck</tabstop>
+ <tabstop>autoCloseConsoleCheck</tabstop>
+ <tabstop>accountSettingsGroupBox</tabstop>
+ <tabstop>autoLoginChecBox</tabstop>
+ <tabstop>memoryGroupBox</tabstop>
+ <tabstop>minMemSpinBox</tabstop>
+ <tabstop>maxMemSpinBox</tabstop>
+ <tabstop>javaSettingsGroupBox</tabstop>
+ <tabstop>javaPathTextBox</tabstop>
+ <tabstop>pushButton</tabstop>
+ <tabstop>jvmArgsTextBox</tabstop>
+ <tabstop>customCommandsGroupBox</tabstop>
+ <tabstop>preLaunchCmdTextBox</tabstop>
+ <tabstop>postExitCmdTextBox</tabstop>
+ <tabstop>buttonBox</tabstop>
+ </tabstops>
<resources/>
<connections/>
</ui>
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index 4326431e..4bf38424 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -560,19 +560,15 @@ void MainWindow::on_actionChangeInstLWJGLVersion_triggered()
void MainWindow::on_actionInstanceSettings_triggered()
{
- if (view->selectionModel()->selectedIndexes().count() < 1)
- return;
-
- Instance *inst = selectedInstance();
- SettingsObject *s;
- s = &inst->settings();
- InstanceSettings *settings = new InstanceSettings (this);
- settings->setWindowTitle(QString("Instance settings"));
- settings->loadSettings(s);
- if (settings->exec()) {
- settings->applySettings(s);
- }
- delete settings;
+ if (view->selectionModel()->selectedIndexes().count() < 1)
+ return;
+
+ Instance *inst = selectedInstance();
+ SettingsObject *s;
+ s = &inst->settings();
+ InstanceSettings settings(s, this);
+ settings.setWindowTitle(QString("Instance settings"));
+ settings.exec();
}
void MainWindow::instanceChanged(QModelIndex idx) {