Implemented settings dialog.
This commit is contained in:
parent
8926b24226
commit
a25bedd770
@ -104,7 +104,6 @@ data/appsettings.cpp
|
|||||||
data/inifile.cpp
|
data/inifile.cpp
|
||||||
data/instancebase.cpp
|
data/instancebase.cpp
|
||||||
data/instancemodel.cpp
|
data/instancemodel.cpp
|
||||||
data/settingsbase.cpp
|
|
||||||
data/stdinstance.cpp
|
data/stdinstance.cpp
|
||||||
|
|
||||||
gui/mainwindow.cpp
|
gui/mainwindow.cpp
|
||||||
@ -126,9 +125,9 @@ data/appsettings.h
|
|||||||
data/inifile.h
|
data/inifile.h
|
||||||
data/instancebase.h
|
data/instancebase.h
|
||||||
data/instancemodel.h
|
data/instancemodel.h
|
||||||
data/settingsbase.h
|
|
||||||
data/stdinstance.h
|
data/stdinstance.h
|
||||||
|
|
||||||
|
util/apputils.h
|
||||||
util/pathutils.h
|
util/pathutils.h
|
||||||
|
|
||||||
multimc_pragma.h
|
multimc_pragma.h
|
||||||
|
@ -21,8 +21,7 @@ SOURCES += main.cpp\
|
|||||||
data/inifile.cpp \
|
data/inifile.cpp \
|
||||||
gui/settingsdialog.cpp \
|
gui/settingsdialog.cpp \
|
||||||
gui/modeditwindow.cpp \
|
gui/modeditwindow.cpp \
|
||||||
data/appsettings.cpp \
|
util/appsettings.cpp
|
||||||
data/settingsbase.cpp
|
|
||||||
|
|
||||||
HEADERS += gui/mainwindow.h \
|
HEADERS += gui/mainwindow.h \
|
||||||
data/instancebase.h \
|
data/instancebase.h \
|
||||||
@ -32,10 +31,8 @@ HEADERS += gui/mainwindow.h \
|
|||||||
data/inifile.h \
|
data/inifile.h \
|
||||||
gui/settingsdialog.h \
|
gui/settingsdialog.h \
|
||||||
gui/modeditwindow.h \
|
gui/modeditwindow.h \
|
||||||
data/appsettings.h \
|
util/apputils.h \
|
||||||
data/settingsbase.h \
|
util/appsettings.h
|
||||||
util/settingsmacros.h \
|
|
||||||
util/settingsmacrosundef.h
|
|
||||||
|
|
||||||
FORMS += gui/mainwindow.ui \
|
FORMS += gui/mainwindow.ui \
|
||||||
gui/settingsdialog.ui \
|
gui/settingsdialog.ui \
|
||||||
|
@ -15,8 +15,26 @@
|
|||||||
|
|
||||||
#include "appsettings.h"
|
#include "appsettings.h"
|
||||||
|
|
||||||
AppSettings::AppSettings(QString fileName) :
|
AppSettings* settings;
|
||||||
SettingsBase(fileName)
|
|
||||||
|
SettingsBase::SettingsBase(QObject *parent) :
|
||||||
|
QObject(parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AppSettings::AppSettings(QObject *parent) :
|
||||||
|
SettingsBase(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant AppSettings::getValue(const QString& name, QVariant defVal) const
|
||||||
|
{
|
||||||
|
return config.value(name, defVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AppSettings::setValue(const QString& name, QVariant val)
|
||||||
|
{
|
||||||
|
config.setValue(name, val);
|
||||||
|
}
|
||||||
|
@ -16,12 +16,97 @@
|
|||||||
#ifndef APPSETTINGS_H
|
#ifndef APPSETTINGS_H
|
||||||
#define APPSETTINGS_H
|
#define APPSETTINGS_H
|
||||||
|
|
||||||
#include "settingsbase.h"
|
#include <QObject>
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QColor>
|
||||||
|
|
||||||
|
#include "util/apputils.h"
|
||||||
|
#include "util/osutils.h"
|
||||||
|
|
||||||
|
#if WINDOWS
|
||||||
|
#define JPATHKEY "JavaPathWindows"
|
||||||
|
#elif OSX
|
||||||
|
#define JPATHKEY "JavaPathOSX"
|
||||||
|
#else
|
||||||
|
#define JPATHKEY "JavaPathLinux"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DEFINE_SETTING_ADVANCED(funcName, name, valType, defVal) \
|
||||||
|
virtual valType get ## funcName() const { return getValue(name, defVal).value<valType>(); } \
|
||||||
|
virtual void set ## funcName(valType value) { setValue(name, value); }
|
||||||
|
|
||||||
|
#define DEFINE_SETTING(name, valType, defVal) \
|
||||||
|
DEFINE_SETTING_ADVANCED(name, STR_VAL(name), valType, defVal)
|
||||||
|
|
||||||
|
#define DEFINE_OVERRIDE_SETTING(overrideName) \
|
||||||
|
|
||||||
|
|
||||||
|
class SettingsBase : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit SettingsBase(QObject *parent = 0);
|
||||||
|
|
||||||
|
// Updates
|
||||||
|
DEFINE_SETTING(UseDevBuilds, bool, false)
|
||||||
|
DEFINE_SETTING(AutoUpdate, bool, true)
|
||||||
|
|
||||||
|
// Folders
|
||||||
|
DEFINE_SETTING(InstanceDir, QString, "instances")
|
||||||
|
DEFINE_SETTING(CentralModsDir, QString, "mods")
|
||||||
|
DEFINE_SETTING(LWJGLDir, QString, "lwjgl")
|
||||||
|
|
||||||
|
// Console
|
||||||
|
DEFINE_SETTING(ShowConsole, bool, true)
|
||||||
|
DEFINE_SETTING(AutoCloseConsole, bool, true)
|
||||||
|
|
||||||
|
// Console Colors
|
||||||
|
DEFINE_SETTING(SysMessageColor, QColor, QColor(Qt::blue))
|
||||||
|
DEFINE_SETTING(StdOutColor, QColor, QColor(Qt::black))
|
||||||
|
DEFINE_SETTING(StdErrColor, QColor, QColor(Qt::red))
|
||||||
|
|
||||||
|
// Window Size
|
||||||
|
DEFINE_SETTING(LaunchCompatMode, bool, false)
|
||||||
|
DEFINE_SETTING(LaunchMaximized, bool, false)
|
||||||
|
DEFINE_SETTING(MinecraftWinWidth, int, 854)
|
||||||
|
DEFINE_SETTING(MinecraftWinHeight, int, 480)
|
||||||
|
|
||||||
|
// Auto login
|
||||||
|
DEFINE_SETTING(AutoLogin, bool, false)
|
||||||
|
|
||||||
|
// Memory
|
||||||
|
DEFINE_SETTING(MinMemAlloc, int, 512)
|
||||||
|
DEFINE_SETTING(MaxMemAlloc, int, 1024)
|
||||||
|
|
||||||
|
// Java Settings
|
||||||
|
DEFINE_SETTING_ADVANCED(JavaPath, JPATHKEY, QString, "java")
|
||||||
|
DEFINE_SETTING(JvmArgs, QString, "")
|
||||||
|
|
||||||
|
// Custom Commands
|
||||||
|
DEFINE_SETTING(PreLaunchCommand, QString, "")
|
||||||
|
DEFINE_SETTING(PostExitCommand, QString, "")
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual QVariant getValue(const QString& name, QVariant defVal = QVariant()) const = 0;
|
||||||
|
virtual void setValue(const QString& name, QVariant val) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
class AppSettings : public SettingsBase
|
class AppSettings : public SettingsBase
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
AppSettings(QString fileName);
|
explicit AppSettings(QObject *parent = 0);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual QVariant getValue(const QString &name, QVariant defVal = QVariant()) const;
|
||||||
|
virtual void setValue(const QString& name, QVariant val);
|
||||||
|
|
||||||
|
QSettings config;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#undef DEFINE_SETTING_ADVANCED
|
||||||
|
#undef DEFINE_SETTING
|
||||||
|
|
||||||
|
extern AppSettings* settings;
|
||||||
|
|
||||||
#endif // APPSETTINGS_H
|
#endif // APPSETTINGS_H
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
/* Copyright 2013 MultiMC Contributors
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SETTINGSBASE_H
|
|
||||||
#define SETTINGSBASE_H
|
|
||||||
|
|
||||||
#include <QSettings>
|
|
||||||
|
|
||||||
#include "settingsmacros.h"
|
|
||||||
|
|
||||||
class SettingsBase : public QSettings
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
SettingsBase(QString fileName);
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "settingsmacrosundef.h"
|
|
||||||
|
|
||||||
#endif // SETTINGSBASE_H
|
|
@ -15,8 +15,8 @@
|
|||||||
|
|
||||||
#include "stdinstance.h"
|
#include "stdinstance.h"
|
||||||
|
|
||||||
StdInstance::StdInstance(QString rootDir) :
|
StdInstance::StdInstance(QString rootDir, QObject* parent) :
|
||||||
InstanceBase(rootDir)
|
InstanceBase(rootDir, parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
class StdInstance : public InstanceBase
|
class StdInstance : public InstanceBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit StdInstance(QString rootDir);
|
explicit StdInstance(QString rootDir, QObject *parent = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // STDINSTANCE_H
|
#endif // STDINSTANCE_H
|
||||||
|
@ -16,13 +16,19 @@
|
|||||||
#include "settingsdialog.h"
|
#include "settingsdialog.h"
|
||||||
#include "ui_settingsdialog.h"
|
#include "ui_settingsdialog.h"
|
||||||
|
|
||||||
|
#include "data/appsettings.h"
|
||||||
|
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
SettingsDialog::SettingsDialog(QWidget *parent) :
|
SettingsDialog::SettingsDialog(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::SettingsDialog)
|
ui(new Ui::SettingsDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
loadSettings(settings);
|
||||||
|
updateCheckboxStuff();
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsDialog::~SettingsDialog()
|
SettingsDialog::~SettingsDialog()
|
||||||
@ -32,9 +38,9 @@ SettingsDialog::~SettingsDialog()
|
|||||||
|
|
||||||
void SettingsDialog::updateCheckboxStuff()
|
void SettingsDialog::updateCheckboxStuff()
|
||||||
{
|
{
|
||||||
ui->minMemSpinBox->setEnabled(!(ui->compatModeCheckBox->isChecked() ||
|
ui->windowWidthSpinBox->setEnabled(!(ui->compatModeCheckBox->isChecked() ||
|
||||||
ui->maximizedCheckBox->isChecked()));
|
ui->maximizedCheckBox->isChecked()));
|
||||||
ui->maxMemSpinBox->setEnabled(!(ui->compatModeCheckBox->isChecked() ||
|
ui->windowHeightSpinBox->setEnabled(!(ui->compatModeCheckBox->isChecked() ||
|
||||||
ui->maximizedCheckBox->isChecked()));
|
ui->maximizedCheckBox->isChecked()));
|
||||||
|
|
||||||
ui->maximizedCheckBox->setEnabled(!ui->compatModeCheckBox->isChecked());
|
ui->maximizedCheckBox->setEnabled(!ui->compatModeCheckBox->isChecked());
|
||||||
@ -75,3 +81,101 @@ void SettingsDialog::on_maximizedCheckBox_clicked(bool checked)
|
|||||||
Q_UNUSED(checked);
|
Q_UNUSED(checked);
|
||||||
updateCheckboxStuff();
|
updateCheckboxStuff();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsDialog::on_buttonBox_accepted()
|
||||||
|
{
|
||||||
|
applySettings(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsDialog::applySettings(SettingsBase *s)
|
||||||
|
{
|
||||||
|
// Special cases
|
||||||
|
|
||||||
|
// Warn about dev builds.
|
||||||
|
if (!ui->devBuildsCheckBox->isChecked())
|
||||||
|
{
|
||||||
|
s->setUseDevBuilds(false);
|
||||||
|
}
|
||||||
|
else if (!s->getUseDevBuilds())
|
||||||
|
{
|
||||||
|
int response = QMessageBox::question(this, "Development builds",
|
||||||
|
"Development builds contain experimental features "
|
||||||
|
"and may be unstable. Are you sure you want to enable them?");
|
||||||
|
if (response == QMessageBox::Yes)
|
||||||
|
{
|
||||||
|
s->setUseDevBuilds(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Updates
|
||||||
|
s->setAutoUpdate(ui->autoUpdateCheckBox->isChecked());
|
||||||
|
|
||||||
|
// Folders
|
||||||
|
// TODO: Offer to move instances to new instance folder.
|
||||||
|
s->setInstanceDir(ui->instDirTextBox->text());
|
||||||
|
s->setCentralModsDir(ui->modsDirTextBox->text());
|
||||||
|
s->setLWJGLDir(ui->lwjglDirTextBox->text());
|
||||||
|
|
||||||
|
// Console
|
||||||
|
s->setShowConsole(ui->showConsoleCheck->isChecked());
|
||||||
|
s->setAutoCloseConsole(ui->autoCloseConsoleCheck->isChecked());
|
||||||
|
|
||||||
|
// Window Size
|
||||||
|
s->setLaunchCompatMode(ui->compatModeCheckBox->isChecked());
|
||||||
|
s->setLaunchMaximized(ui->maximizedCheckBox->isChecked());
|
||||||
|
s->setMinecraftWinWidth(ui->windowWidthSpinBox->value());
|
||||||
|
s->setMinecraftWinHeight(ui->windowHeightSpinBox->value());
|
||||||
|
|
||||||
|
// Auto Login
|
||||||
|
s->setAutoLogin(ui->autoLoginCheckBox->isChecked());
|
||||||
|
|
||||||
|
// Memory
|
||||||
|
s->setMinMemAlloc(ui->minMemSpinBox->value());
|
||||||
|
s->setMaxMemAlloc(ui->maxMemSpinBox->value());
|
||||||
|
|
||||||
|
// Java Settings
|
||||||
|
s->setJavaPath(ui->javaPathTextBox->text());
|
||||||
|
s->setJvmArgs(ui->jvmArgsTextBox->text());
|
||||||
|
|
||||||
|
// Custom Commands
|
||||||
|
s->setPreLaunchCommand(ui->preLaunchCmdTextBox->text());
|
||||||
|
s->setPostExitCommand(ui->postExitCmdTextBox->text());
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsDialog::loadSettings(SettingsBase *s)
|
||||||
|
{
|
||||||
|
// Updates
|
||||||
|
ui->autoUpdateCheckBox->setChecked(s->getAutoUpdate());
|
||||||
|
ui->devBuildsCheckBox->setChecked(s->getUseDevBuilds());
|
||||||
|
|
||||||
|
// Folders
|
||||||
|
ui->instDirTextBox->setText(s->getInstanceDir());
|
||||||
|
ui->modsDirTextBox->setText(s->getCentralModsDir());
|
||||||
|
ui->lwjglDirTextBox->setText(s->getLWJGLDir());
|
||||||
|
|
||||||
|
// Console
|
||||||
|
ui->showConsoleCheck->setChecked(s->getShowConsole());
|
||||||
|
ui->autoCloseConsoleCheck->setChecked(s->getAutoCloseConsole());
|
||||||
|
|
||||||
|
// Window Size
|
||||||
|
ui->compatModeCheckBox->setChecked(s->getLaunchCompatMode());
|
||||||
|
ui->maximizedCheckBox->setChecked(s->getLaunchMaximized());
|
||||||
|
ui->windowWidthSpinBox->setValue(s->getMinecraftWinWidth());
|
||||||
|
ui->windowHeightSpinBox->setValue(s->getMinecraftWinHeight());
|
||||||
|
|
||||||
|
// Auto Login
|
||||||
|
ui->autoLoginCheckBox->setChecked(s->getAutoLogin());
|
||||||
|
|
||||||
|
// Memory
|
||||||
|
ui->minMemSpinBox->setValue(s->getMinMemAlloc());
|
||||||
|
ui->maxMemSpinBox->setValue(s->getMaxMemAlloc());
|
||||||
|
|
||||||
|
// Java Settings
|
||||||
|
ui->javaPathTextBox->setText(s->getJavaPath());
|
||||||
|
ui->jvmArgsTextBox->setText(s->getJvmArgs());
|
||||||
|
|
||||||
|
// Custom Commands
|
||||||
|
ui->preLaunchCmdTextBox->setText(s->getPreLaunchCommand());
|
||||||
|
ui->postExitCmdTextBox->setText(s->getPostExitCommand());
|
||||||
|
}
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
|
class SettingsBase;
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class SettingsDialog;
|
class SettingsDialog;
|
||||||
}
|
}
|
||||||
@ -32,6 +34,9 @@ public:
|
|||||||
|
|
||||||
void updateCheckboxStuff();
|
void updateCheckboxStuff();
|
||||||
|
|
||||||
|
void applySettings(SettingsBase* s);
|
||||||
|
void loadSettings(SettingsBase* s);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_instDirBrowseBtn_clicked();
|
void on_instDirBrowseBtn_clicked();
|
||||||
|
|
||||||
@ -43,6 +48,8 @@ private slots:
|
|||||||
|
|
||||||
void on_maximizedCheckBox_clicked(bool checked);
|
void on_maximizedCheckBox_clicked(bool checked);
|
||||||
|
|
||||||
|
void on_buttonBox_accepted();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::SettingsDialog *ui;
|
Ui::SettingsDialog *ui;
|
||||||
};
|
};
|
||||||
|
@ -158,88 +158,6 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="consoleTab">
|
|
||||||
<attribute name="title">
|
|
||||||
<string>Console</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="consoleSettingsBox">
|
|
||||||
<property name="title">
|
|
||||||
<string>Console Settings</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="showConsoleCheck">
|
|
||||||
<property name="text">
|
|
||||||
<string>Show console while the game is running?</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="autoCloseConsoleCheck">
|
|
||||||
<property name="text">
|
|
||||||
<string>Automatically close console when the game quits?</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="consoleColorsBox">
|
|
||||||
<property name="title">
|
|
||||||
<string>Instance Console Colors</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="labelSysMessageColor">
|
|
||||||
<property name="text">
|
|
||||||
<string>System message color:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLineEdit" name="sysMsgColorTextBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="labelOutputMsgColor">
|
|
||||||
<property name="text">
|
|
||||||
<string>Output message color:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLineEdit" name="outMsgColorTextBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="labelErrorMessageColor">
|
|
||||||
<property name="text">
|
|
||||||
<string>Error message color:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLineEdit" name="errMsgColorTextBox"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="consoleVerticalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="minecraftTab">
|
<widget class="QWidget" name="minecraftTab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Minecraft</string>
|
<string>Minecraft</string>
|
||||||
@ -315,10 +233,33 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="consoleSettingsBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Console Settings</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="showConsoleCheck">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show console while the game is running?</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="autoCloseConsoleCheck">
|
||||||
|
<property name="text">
|
||||||
|
<string>Automatically close console when the game quits?</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="autoLoginCheckBox">
|
<widget class="QCheckBox" name="autoLoginCheckBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Login automatically when an instance launches?</string>
|
<string>Login automatically when an instance icon is double clicked?</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
7
main.cpp
7
main.cpp
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
/* Copyright 2013 MultiMC Contributors
|
/* Copyright 2013 MultiMC Contributors
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -16,10 +17,16 @@
|
|||||||
#include "gui/mainwindow.h"
|
#include "gui/mainwindow.h"
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
|
||||||
|
#include "data/appsettings.h"
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
|
app.setOrganizationName("Forkk");
|
||||||
|
app.setApplicationName("MultiMC 5");
|
||||||
|
|
||||||
|
settings = new AppSettings(&app);
|
||||||
|
|
||||||
MainWindow mainWin;
|
MainWindow mainWin;
|
||||||
mainWin.show();
|
mainWin.show();
|
||||||
|
@ -13,10 +13,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "settingsbase.h"
|
#ifndef APPUTILS_H
|
||||||
|
#define APPUTILS_H
|
||||||
|
|
||||||
SettingsBase::SettingsBase(QString fileName) :
|
#define STR_VAL(val) # val
|
||||||
QSettings(fileName, QSettings::IniFormat)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
#endif // APPUTILS_H
|
@ -13,14 +13,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SETTINGSMACROSUNDEF_H
|
#ifndef OSUTILS_H
|
||||||
#define SETTINGSMACROSUNDEF_H
|
#define OSUTILS_H
|
||||||
|
|
||||||
#undef DEFINE_SETTING
|
#if defined _WIN32 | defined _WIN64
|
||||||
#undef DEFINE_SETTING_STR
|
#define WINDOWS 1
|
||||||
#undef DEFINE_SETTING_BOOL
|
#elif __APPLE__ & __MACH__
|
||||||
#undef DEFINE_SETTING_INT
|
#define OSX 1
|
||||||
|
#elif __linux__
|
||||||
|
#define LINUX 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#undef STR_VAL
|
#endif // OSUTILS_H
|
||||||
|
|
||||||
#endif // SETTINGSMACROSUNDEF_H
|
|
@ -1,35 +0,0 @@
|
|||||||
/* Copyright 2013 MultiMC Contributors
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SETTINGSMACROS_H
|
|
||||||
#define SETTINGSMACROS_H
|
|
||||||
|
|
||||||
#define STR_VAL(val) # val
|
|
||||||
|
|
||||||
#define DEFINE_SETTING(funcName, name, defVal, typeName, toFunc) \
|
|
||||||
virtual typeName Get ## funcName() const { return value(name). ## toFunc(); } \
|
|
||||||
virtual void Set ## funcName(typeName value) { setValue(name, value); } \
|
|
||||||
virtual void Reset ## funcName() {
|
|
||||||
|
|
||||||
#define DEFINE_SETTING_STR(name, defVal) \
|
|
||||||
DEFINE_SETTING(name, STR_VAL(name), defVal, QString, toString)
|
|
||||||
|
|
||||||
#define DEFINE_SETTING_BOOL(name, defVal) \
|
|
||||||
DEFINE_SETTING(name, STR_VAL(name), defVal, bool, toBool)
|
|
||||||
|
|
||||||
#define DEFINE_SETTING_INT(name, defVal) \
|
|
||||||
DEFINE_SETTING(name, STR_VAL(name), defVal, int, toInt)
|
|
||||||
|
|
||||||
#endif // SETTINGSMACROS_H
|
|
Loading…
Reference in New Issue
Block a user