aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalanto <62221668+Salanto@users.noreply.github.com>2024-07-12 13:23:40 +0200
committerSalanto <62221668+Salanto@users.noreply.github.com>2024-07-12 13:23:40 +0200
commite34b2534edc6513cc57bb71875be4d48e74c73a7 (patch)
tree5051cb89b0f994fa44136ee6f9402d1846d9d1e6
parent8fac2ada62a5256bb0ba563d3e696762cf861a7d (diff)
Restore position in AOApplication
-rw-r--r--src/aoapplication.cpp36
-rw-r--r--src/aoapplication.h1
-rw-r--r--src/courtroom.cpp14
-rw-r--r--src/lobby.cpp3
4 files changed, 25 insertions, 29 deletions
diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp
index 686c88c0..2ee66219 100644
--- a/src/aoapplication.cpp
+++ b/src/aoapplication.cpp
@@ -51,18 +51,7 @@ void AOApplication::construct_lobby()
w_lobby = new Lobby(this, net_manager);
- auto point = Options::getInstance().windowPosition("lobby");
- if (!Options::getInstance().restoreWindowPositionEnabled() || !point.has_value() || !pointExistsOnScreen(point.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());
- }
+ centerOrMoveWidgetOnPrimaryScreen(w_lobby);
if (Options::getInstance().discordEnabled())
{
@@ -104,10 +93,7 @@ void AOApplication::construct_courtroom()
w_courtroom = new Courtroom(this);
- QRect geometry = QGuiApplication::primaryScreen()->geometry();
- int x = (geometry.width() - w_courtroom->width()) / 2;
- int y = (geometry.height() - w_courtroom->height()) / 2;
- w_courtroom->move(x, y);
+ centerOrMoveWidgetOnPrimaryScreen(w_courtroom);
if (demo_server != nullptr)
{
@@ -245,6 +231,24 @@ bool AOApplication::pointExistsOnScreen(QPoint point)
return false;
}
+void AOApplication::centerOrMoveWidgetOnPrimaryScreen(QWidget *widget)
+{
+ auto point = Options::getInstance().windowPosition(widget->objectName());
+ qDebug() << widget->objectName();
+ qDebug() << point.has_value();
+ if (!Options::getInstance().restoreWindowPositionEnabled() || !point.has_value() || !pointExistsOnScreen(point.value()))
+ {
+ QRect geometry = QGuiApplication::primaryScreen()->geometry();
+ int x = (geometry.width() - widget->width()) / 2;
+ int y = (geometry.height() - widget->height()) / 2;
+ widget->move(x, y);
+ }
+ else
+ {
+ widget->move(point->x(), point->y());
+ }
+}
+
#if (defined(_WIN32) || defined(_WIN64))
void AOApplication::load_bass_plugins()
{
diff --git a/src/aoapplication.h b/src/aoapplication.h
index 998f3499..beec23b4 100644
--- a/src/aoapplication.h
+++ b/src/aoapplication.h
@@ -326,6 +326,7 @@ public:
QString log_filename;
bool pointExistsOnScreen(QPoint point);
+ void centerOrMoveWidgetOnPrimaryScreen(QWidget *widget);
void initBASS();
static void load_bass_plugins();
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index 39d6ff9e..9d3240c0 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -11,6 +11,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app)
, ao_app{p_ao_app}
{
setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
+ setObjectName("courtroom");
ao_app->initBASS();
keepalive_timer = new QTimer(this);
@@ -1370,16 +1371,6 @@ void Courtroom::done_received()
show();
- if (Options::getInstance().restoreWindowPositionEnabled())
- {
- auto maybe_point = Options::getInstance().windowPosition("courtroom");
- if (maybe_point.has_value() && ao_app->pointExistsOnScreen(maybe_point.value()))
- {
- qDebug() << maybe_point.value();
- QMainWindow::move(maybe_point.value());
- }
- }
-
ui_spectator->show();
}
@@ -1917,8 +1908,7 @@ void Courtroom::set_judge_buttons()
void Courtroom::closeEvent(QCloseEvent *event)
{
- Options::getInstance().setWindowPosition("courtroom", pos());
- qDebug() << pos();
+ Options::getInstance().setWindowPosition(objectName(), pos());
QMainWindow::closeEvent(event);
}
diff --git a/src/lobby.cpp b/src/lobby.cpp
index f4da9d54..1f37f4bc 100644
--- a/src/lobby.cpp
+++ b/src/lobby.cpp
@@ -16,6 +16,7 @@ Lobby::Lobby(AOApplication *p_ao_app, NetworkManager *p_net_manager)
, net_manager{p_net_manager}
{
reloadUi();
+ setObjectName("lobby");
}
void Lobby::on_tab_changed(int index)
@@ -83,7 +84,7 @@ int Lobby::pageSelected()
void Lobby::closeEvent(QCloseEvent *event)
{
- Options::getInstance().setWindowPosition("lobby", pos());
+ Options::getInstance().setWindowPosition(objectName(), pos());
QMainWindow::closeEvent(event);
}