diff --git a/include/options.h b/include/options.h
index 4727b0842..e5811c461 100644
--- a/include/options.h
+++ b/include/options.h
@@ -259,6 +259,9 @@ class Options {
bool evidenceDoubleClickEdit() const;
void setEvidenceDoubleClickEdit(bool value);
+ bool saveWindowPositionEdit() const;
+ void setSaveWindowPositionEdit(bool value);
+
// Supplies an alternative masterserver URL
QString alternativeMasterserver() const;
void setAlternativeMasterserver(QString value);
diff --git a/include/widgets/aooptionsdialog.h b/include/widgets/aooptionsdialog.h
index dcc66c1aa..eaf6bb0ac 100644
--- a/include/widgets/aooptionsdialog.h
+++ b/include/widgets/aooptionsdialog.h
@@ -50,6 +50,7 @@ class AOOptionsDialog : public QDialog {
QPushButton *ui_theme_reload_button;
QPushButton *ui_theme_folder_button;
QCheckBox *ui_evidence_double_click_cb;
+ QCheckBox *ui_set_save_window_position_cb;
QCheckBox *ui_animated_theme_cb;
QSpinBox *ui_stay_time_spinbox;
QCheckBox *ui_instant_objection_cb;
diff --git a/resource/ui/options_dialog.ui b/resource/ui/options_dialog.ui
index 26cfa93cc..7f811585a 100644
--- a/resource/ui/options_dialog.ui
+++ b/resource/ui/options_dialog.ui
@@ -39,93 +39,102 @@
0
- 0
+ -480
394
- 826
+ 798
- -
-
-
-
-
-
-
- -
-
+
-
+
- Stop music when double-clicking a category. If this is disabled, use the right-click context menu to stop music.
+ Sets the theme used in-game. If the new theme changes the lobby's look as well, you'll need to reload the Lobby for the changes to take effect, such as by joining a server and leaving it.
- Stop Music w/ Category:
+ Theme:
- -
-
+
-
+
+
+ -
+
+
+ Sets a 'subtheme', which will stack on top of the current theme and replace anything it can. Keep it at 'server' to let the server decide. Keep it at 'default' to keep it unchanging.
+
-
+ Subtheme:
- -
-
+
-
+
- -
-
+
-
+
- Sets the default scaling method, if there is not one already defined specifically for the character.
+ Refresh the theme and update all of the ui elements to match.
- Scaling:
+ Reload Theme
- -
-
+
-
+
- Turn this on to allow characters to define their own custom chat box designs.
+ Open the theme folder of the currently selected theme.
- Custom Chatboxes:
+ Open Theme Folder
- -
-
+
-
+
- Allows screen effects. Disable this if you have concerns or issues with photosensitivity and/or seizures.
+ If ticked, themes will be allowed to have animated elements.
- Allow Effects:
+ Animated Theme:
- -
-
+
-
+
- -
-
-
- Open the theme folder of the currently selected theme.
+
-
+
+
+ QFrame::HLine
-
- Open Theme Folder
+
+ QFrame::Sunken
- -
-
+
-
+
- Overrides the base URL to retrieve server information from.
+ Minimum amount of time (in miliseconds) an IC message must stay on screen before the next IC message is shown, acting as a 'queue'. Set to 0 to disable this behavior.
- Alternate Server List:
+ Text Stay Time:
+
+
+
+ -
+
+
+ ms
+
+
+ 10000
@@ -136,75 +145,30 @@
- -
-
-
- ms
-
-
- 500
+
-
+
+
+
- -
-
+
-
+
- Sets the theme used in-game. If the new theme changes the lobby's look as well, you'll need to reload the Lobby for the changes to take effect, such as by joining a server and leaving it.
+ Amount of time (in miliseconds) spent on each letter when the in-character text is being displayed.
- Theme:
+ Text crawl:
- -
-
-
-
-
- en
-
-
- -
-
- de
-
-
- -
-
- es
-
-
- -
-
- pt
-
-
- -
-
- pl
-
-
- -
-
- jp
-
-
- -
-
- ru
-
-
-
-
- -
-
-
- -
-
-
- Send screen-shaking, flashes and sounds as defined in the char.ini over the network. Only works for servers that support this functionality.
+
-
+
+
+ ms
-
- Network Frame Effects:
+
+ 500
@@ -228,41 +192,45 @@
- -
-
-
- If ticked, themes will be allowed to have animated elements.
+
-
+
+
+ QFrame::HLine
-
- Animated Theme:
+
+ QFrame::Sunken
- -
-
+
-
+
- Amount of time (in miliseconds) spent on each letter when the in-character text is being displayed.
+ Your OOC name will be automatically set to this value when you join a server.
- Text crawl:
+ Default username:
- -
-
+
-
+
+
+ 30
+
+
+
+ -
+
- Refresh the theme and update all of the ui elements to match.
+ Gives the default value for the in-game 'Custom shownames' tickbox, which in turn determines whether the client should display custom in-character names.
- Reload Theme
+ Custom shownames:
- -
-
-
- -
-
+
-
+
@@ -278,111 +246,152 @@
- -
-
-
-
+
-
+
+
+ -
+
+
+ QFrame::HLine
+
+
+ QFrame::Sunken
- -
-
-
- -
-
+
-
+
- Turn this on to allow characters to define their own stickers (unique images that show up over the chatbox - like avatars or shownames).
+ Overrides the base URL to retrieve server information from.
- Stickers:
+ Alternate Server List:
- -
-
+
-
+
+
+ -
+
- Turn this on to prevent preanimation checkbox from clearing after playing the emote.
+ Allows others on Discord to see what server you are in, what character are you playing, and how long you have been playing for.
- Sticky Preanims:
+ Discord:
- -
-
-
- ms
-
-
- 10000
+
-
+
+
+
- -
-
+
-
+
- Gives the default value for the in-game 'Custom shownames' tickbox, which in turn determines whether the client should display custom in-character names.
+ Sets the language if you don't want to use your system language.
- Custom shownames:
+ Language:
- -
-
+
-
+
+
-
+
+ en
+
+
+ -
+
+ de
+
+
+ -
+
+ es
+
+
+ -
+
+ pt
+
+
+ -
+
+ pl
+
+
+ -
+
+ jp
+
+
+ -
+
+ ru
+
+
+
+
+ -
+
- Turn this on to prevent the effects dropdown from clearing the effect after playing it.
+ Sets the default scaling method, if there is not one already defined specifically for the character.
- Sticky Effects:
+ Scaling:
- -
-
-
-
-
-
+
-
+
- -
-
+
-
+
- Minimum amount of time (in miliseconds) an IC message must stay on screen before the next IC message is shown, acting as a 'queue'. Set to 0 to disable this behavior.
+ Allows screenshaking. Disable this if you have concerns or issues with photosensitivity and/or seizures.
- Text Stay Time:
+ Allow Screenshake:
- -
-
-
- Sets the language if you don't want to use your system language.
-
+
-
+
- Language:
+
- -
-
+
-
+
+
+ Allows screen effects. Disable this if you have concerns or issues with photosensitivity and/or seizures.
+
-
+ Allow Effects:
- -
-
+
-
+
- -
-
+
-
+
+
+ Send screen-shaking, flashes and sounds as defined in the char.ini over the network. Only works for servers that support this functionality.
+
-
+ Network Frame Effects:
@@ -393,13 +402,20 @@
- -
-
+
-
+
- If the SFX dropdown has an SFX selected, send the custom SFX alongside the message even if Preanim is OFF.
+ Use the markup colors in the server IC chatlog.
- Always Send SFX:
+ Colors in IC Log:
+
+
+
+ -
+
+
+
@@ -413,116 +429,127 @@
- -
-
+
-
+
- -
-
+
-
+
- Your OOC name will be automatically set to this value when you join a server.
+ Turn this on to prevent the effects dropdown from clearing the effect after playing it.
- Default username:
+ Sticky Effects:
- -
-
+
-
+
+
+
+
+
+
+ -
+
- Allows screenshaking. Disable this if you have concerns or issues with photosensitivity and/or seizures.
+ Turn this on to prevent preanimation checkbox from clearing after playing the emote.
- Allow Screenshake:
+ Sticky Preanims:
- -
-
+
-
+
- -
-
+
-
+
- Allows others on Discord to see what server you are in, what character are you playing, and how long you have been playing for.
+ Turn this on to allow characters to define their own custom chat box designs.
- Discord:
+ Custom Chatboxes:
- -
-
-
- Use the markup colors in the server IC chatlog.
-
+
-
+
- Colors in IC Log:
+
- -
-
+
-
+
- Sets a 'subtheme', which will stack on top of the current theme and replace anything it can. Keep it at 'server' to let the server decide. Keep it at 'default' to keep it unchanging.
+ Turn this on to allow characters to define their own stickers (unique images that show up over the chatbox - like avatars or shownames).
- Subtheme:
+ Stickers:
- -
-
+
-
+
- -
-
+
-
+
+
+ Whether or not to resume playing animations from where they left off. Turning off might reduce lag.
+
-
+ Continuous Playback:
- -
-
+
-
+
- -
-
-
- -
-
-
- QFrame::HLine
+
-
+
+
+ Stop music when double-clicking a category. If this is disabled, use the right-click context menu to stop music.
-
- QFrame::Sunken
+
+ Stop Music w/ Category:
- -
-
-
- QFrame::HLine
+
-
+
+
+
-
- QFrame::Sunken
+
+
+ -
+
+
+ If the SFX dropdown has an SFX selected, send the custom SFX alongside the message even if Preanim is OFF.
+
+
+ Always Send SFX:
- -
-
+
-
+
@@ -538,16 +565,6 @@
- -
-
-
- QFrame::HLine
-
-
- QFrame::Sunken
-
-
-
-
@@ -555,20 +572,20 @@
- -
-
-
- Whether or not to resume playing animations from where they left off. Turning off might reduce lag.
-
+
-
+
- Continuous Playback:
+
- -
-
-
- 30
+
-
+
+
+ If checked, window will go to the same position on the screen when you re-open the game.
+
+
+ Save Window Position:
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index f6c5b0fcf..d301e792c 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -1308,7 +1308,10 @@ void Courtroom::done_received()
set_mute_list();
set_pair_list();
- move(Options::getInstance().getWindowPosition());
+ if (Options::getInstance().saveWindowPositionEdit()) {
+ move(Options::getInstance().getWindowPosition());
+ }
+
show();
diff --git a/src/options.cpp b/src/options.cpp
index fe4ed4b07..9b96f522e 100644
--- a/src/options.cpp
+++ b/src/options.cpp
@@ -539,6 +539,16 @@ void Options::setEvidenceDoubleClickEdit(bool value)
config.setValue("evidence_double_click", value);
}
+bool Options::saveWindowPositionEdit() const
+{
+ return config.value("save_window_position", true).toBool();
+}
+
+void Options::setSaveWindowPositionEdit(bool value)
+{
+ config.setValue("save_window_position", value);
+}
+
QString Options::alternativeMasterserver() const
{
return config.value("master", "").toString();
diff --git a/src/widgets/aooptionsdialog.cpp b/src/widgets/aooptionsdialog.cpp
index 6f121b3b8..a25f7cff7 100644
--- a/src/widgets/aooptionsdialog.cpp
+++ b/src/widgets/aooptionsdialog.cpp
@@ -362,6 +362,7 @@ void AOOptionsDialog::setupUI()
FROM_UI(QCheckBox, category_stop_cb)
FROM_UI(QCheckBox, sfx_on_idle_cb)
FROM_UI(QCheckBox, evidence_double_click_cb)
+ FROM_UI(QCheckBox, set_save_window_position_cb)
registerOption("animated_theme_cb",
&Options::animatedThemeEnabled,
@@ -436,6 +437,10 @@ void AOOptionsDialog::setupUI()
registerOption("evidence_double_click_cb",
&Options::evidenceDoubleClickEdit,
&Options::setEvidenceDoubleClickEdit);
+ registerOption("save_window_position_cb",
+ &Options::saveWindowPositionEdit,
+ &Options::setSaveWindowPositionEdit);
+
// Callwords tab. This could just be a QLineEdit, but no, we decided to allow
// people to put a billion entries in.