Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e34b253

Browse files
committed
Restore position in AOApplication
1 parent 8fac2ad commit e34b253

4 files changed

Lines changed: 25 additions & 29 deletions

File tree

src/aoapplication.cpp

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,7 @@ void AOApplication::construct_lobby()
5151

5252
w_lobby = new Lobby(this, net_manager);
5353

54-
auto point = Options::getInstance().windowPosition("lobby");
55-
if (!Options::getInstance().restoreWindowPositionEnabled() || !point.has_value() || !pointExistsOnScreen(point.value()))
56-
{
57-
QRect geometry = QGuiApplication::primaryScreen()->geometry();
58-
int x = (geometry.width() - w_lobby->width()) / 2;
59-
int y = (geometry.height() - w_lobby->height()) / 2;
60-
w_lobby->move(x, y);
61-
}
62-
else
63-
{
64-
w_lobby->move(point->x(), point->y());
65-
}
54+
centerOrMoveWidgetOnPrimaryScreen(w_lobby);
6655

6756
if (Options::getInstance().discordEnabled())
6857
{
@@ -104,10 +93,7 @@ void AOApplication::construct_courtroom()
10493

10594
w_courtroom = new Courtroom(this);
10695

107-
QRect geometry = QGuiApplication::primaryScreen()->geometry();
108-
int x = (geometry.width() - w_courtroom->width()) / 2;
109-
int y = (geometry.height() - w_courtroom->height()) / 2;
110-
w_courtroom->move(x, y);
96+
centerOrMoveWidgetOnPrimaryScreen(w_courtroom);
11197

11298
if (demo_server != nullptr)
11399
{
@@ -245,6 +231,24 @@ bool AOApplication::pointExistsOnScreen(QPoint point)
245231
return false;
246232
}
247233

234+
void AOApplication::centerOrMoveWidgetOnPrimaryScreen(QWidget *widget)
235+
{
236+
auto point = Options::getInstance().windowPosition(widget->objectName());
237+
qDebug() << widget->objectName();
238+
qDebug() << point.has_value();
239+
if (!Options::getInstance().restoreWindowPositionEnabled() || !point.has_value() || !pointExistsOnScreen(point.value()))
240+
{
241+
QRect geometry = QGuiApplication::primaryScreen()->geometry();
242+
int x = (geometry.width() - widget->width()) / 2;
243+
int y = (geometry.height() - widget->height()) / 2;
244+
widget->move(x, y);
245+
}
246+
else
247+
{
248+
widget->move(point->x(), point->y());
249+
}
250+
}
251+
248252
#if (defined(_WIN32) || defined(_WIN64))
249253
void AOApplication::load_bass_plugins()
250254
{

src/aoapplication.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ class AOApplication : public QObject
326326
QString log_filename;
327327

328328
bool pointExistsOnScreen(QPoint point);
329+
void centerOrMoveWidgetOnPrimaryScreen(QWidget *widget);
329330

330331
void initBASS();
331332
static void load_bass_plugins();

src/courtroom.cpp

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app)
1111
, ao_app{p_ao_app}
1212
{
1313
setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
14+
setObjectName("courtroom");
1415

1516
ao_app->initBASS();
1617
keepalive_timer = new QTimer(this);
@@ -1370,16 +1371,6 @@ void Courtroom::done_received()
13701371

13711372
show();
13721373

1373-
if (Options::getInstance().restoreWindowPositionEnabled())
1374-
{
1375-
auto maybe_point = Options::getInstance().windowPosition("courtroom");
1376-
if (maybe_point.has_value() && ao_app->pointExistsOnScreen(maybe_point.value()))
1377-
{
1378-
qDebug() << maybe_point.value();
1379-
QMainWindow::move(maybe_point.value());
1380-
}
1381-
}
1382-
13831374
ui_spectator->show();
13841375
}
13851376

@@ -1917,8 +1908,7 @@ void Courtroom::set_judge_buttons()
19171908

19181909
void Courtroom::closeEvent(QCloseEvent *event)
19191910
{
1920-
Options::getInstance().setWindowPosition("courtroom", pos());
1921-
qDebug() << pos();
1911+
Options::getInstance().setWindowPosition(objectName(), pos());
19221912
QMainWindow::closeEvent(event);
19231913
}
19241914

src/lobby.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Lobby::Lobby(AOApplication *p_ao_app, NetworkManager *p_net_manager)
1616
, net_manager{p_net_manager}
1717
{
1818
reloadUi();
19+
setObjectName("lobby");
1920
}
2021

2122
void Lobby::on_tab_changed(int index)
@@ -83,7 +84,7 @@ int Lobby::pageSelected()
8384

8485
void Lobby::closeEvent(QCloseEvent *event)
8586
{
86-
Options::getInstance().setWindowPosition("lobby", pos());
87+
Options::getInstance().setWindowPosition(objectName(), pos());
8788
QMainWindow::closeEvent(event);
8889
}
8990

0 commit comments

Comments
 (0)