aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/aoapplication.cpp16
-rw-r--r--src/lobby.cpp13
-rw-r--r--src/lobby.h3
3 files changed, 24 insertions, 8 deletions
diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp
index 7a8e4ea3..6a0600a0 100644
--- a/src/aoapplication.cpp
+++ b/src/aoapplication.cpp
@@ -54,10 +54,18 @@ void AOApplication::construct_lobby()
w_lobby = new Lobby(this, net_manager);
- QRect geometry = QGuiApplication::primaryScreen()->geometry();
- int x = (geometry.width() - w_lobby->width()) / 2;
- int y = (geometry.height() - w_lobby->height()) / 2;
- w_lobby->move(x, y);
+ auto point = Options::getInstance().windowPosition("lobby");
+ if (!Options::getInstance().restoreWindowPositionEnabled() || !point.has_value())
+ {
+ QRect geometry = QGuiApplication::primaryScreen()->geometry();
+ int x = (geometry.width() - w_lobby->width()) / 2;
+ int y = (geometry.height() - w_lobby->height()) / 2;
+ w_lobby->move(x, y);
+ }
+ else
+ {
+ w_lobby->move(point->x(), point->y());
+ }
if (Options::getInstance().discordEnabled())
{
diff --git a/src/lobby.cpp b/src/lobby.cpp
index 78797c02..22a3a5b3 100644
--- a/src/lobby.cpp
+++ b/src/lobby.cpp
@@ -11,11 +11,10 @@
#include <QUiLoader>
Lobby::Lobby(AOApplication *p_ao_app, NetworkManager *p_net_manager)
- : QMainWindow()
+ : QMainWindow{}
+ , ao_app{p_ao_app}
+ , net_manager{p_net_manager}
{
- ao_app = p_ao_app;
- net_manager = p_net_manager;
-
reloadUi();
}
@@ -82,6 +81,12 @@ int Lobby::pageSelected()
return current_page;
}
+void Lobby::closeEvent(QCloseEvent *event)
+{
+ Options::getInstance().setWindowPosition("lobby", pos());
+ QMainWindow::closeEvent(event);
+}
+
void Lobby::reset_selection()
{
last_index = -1;
diff --git a/src/lobby.h b/src/lobby.h
index 4b4d6240..8b894f4c 100644
--- a/src/lobby.h
+++ b/src/lobby.h
@@ -31,6 +31,9 @@ public:
int get_selected_server();
int pageSelected();
+protected:
+ void closeEvent(QCloseEvent *event) override;
+
private:
AOApplication *ao_app;
NetworkManager *net_manager;