From d9aada29009c66c6d146d88b20ab43f967653566 Mon Sep 17 00:00:00 2001 From: Salanto <62221668+Salanto@users.noreply.github.com> Date: Thu, 11 Jul 2024 15:52:34 +0200 Subject: Add Courtroom position restore --- src/courtroom.cpp | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'src/courtroom.cpp') diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 75f45570..1a7c7618 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -7,14 +7,12 @@ // #define DEBUG_TRANSITION Courtroom::Courtroom(AOApplication *p_ao_app) - : QMainWindow() + : QMainWindow(), + ao_app{p_ao_app} { - ao_app = p_ao_app; - - this->setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint); + setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint); ao_app->initBASS(); - keepalive_timer = new QTimer(this); keepalive_timer->start(45000); @@ -1372,6 +1370,14 @@ void Courtroom::done_received() show(); + if (Options::getInstance().restoreWindowPositionEnabled()) { + auto maybe_point = Options::getInstance().windowPosition("courtroom"); + if (maybe_point.has_value()) { + qDebug() << maybe_point.value(); + QMainWindow::move(maybe_point.value()); + } + } + ui_spectator->show(); } @@ -1907,6 +1913,13 @@ void Courtroom::set_judge_buttons() show_judge_controls(ao_app->get_pos_is_judge(current_or_default_side())); } +void Courtroom::closeEvent(QCloseEvent *event) +{ + Options::getInstance().setWindowPosition("courtroom", pos()); + qDebug() << pos(); + QMainWindow::closeEvent(event); +} + void Courtroom::on_chat_return_pressed() { if (is_muted) @@ -5191,7 +5204,7 @@ void Courtroom::on_pos_dropdown_context_menu_requested(const QPoint &pos) QMenu *menu = new QMenu(ui_iniswap_dropdown); menu->setAttribute(Qt::WA_DeleteOnClose); - menu->addAction(QString("Open background " + current_background), this, [=] { + menu->addAction(QString("Open background " + current_background), this, [=, this] { QString p_path = ao_app->get_real_path(VPath("background/" + current_background + "/")); if (!dir_exists(p_path)) { @@ -5303,7 +5316,7 @@ void Courtroom::on_iniswap_context_menu_requested(const QPoint &pos) } menu->addSeparator(); - menu->addAction(QString("Open character folder " + current_char), this, [=] { + menu->addAction(QString("Open character folder " + current_char), this, [=, this] { QString p_path = ao_app->get_real_path(VPath("characters/" + current_char + "/")); if (!dir_exists(p_path)) { @@ -6127,7 +6140,7 @@ void Courtroom::on_text_color_context_menu_requested(const QPoint &pos) QMenu *menu = new QMenu(this); menu->setAttribute(Qt::WA_DeleteOnClose); - menu->addAction(QString("Open currently used chat_config.ini"), this, [=] { + menu->addAction(QString("Open currently used chat_config.ini"), this, [=, this] { QString p_path = ao_app->get_asset("chat_config.ini", Options::getInstance().theme(), Options::getInstance().subTheme(), ao_app->default_theme, ao_app->get_chat(current_char)); if (!file_exists(p_path)) { -- cgit From 9002d1201de55fd13c3853fece80fec25765b8dd Mon Sep 17 00:00:00 2001 From: Salanto <62221668+Salanto@users.noreply.github.com> Date: Thu, 11 Jul 2024 18:00:59 +0200 Subject: *blood sacrifice for clang* --- src/courtroom.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'src/courtroom.cpp') diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 1a7c7618..06161796 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -7,8 +7,8 @@ // #define DEBUG_TRANSITION Courtroom::Courtroom(AOApplication *p_ao_app) - : QMainWindow(), - ao_app{p_ao_app} + : QMainWindow() + , ao_app{p_ao_app} { setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint); @@ -1370,12 +1370,14 @@ void Courtroom::done_received() show(); - if (Options::getInstance().restoreWindowPositionEnabled()) { - auto maybe_point = Options::getInstance().windowPosition("courtroom"); - if (maybe_point.has_value()) { - qDebug() << maybe_point.value(); - QMainWindow::move(maybe_point.value()); - } + if (Options::getInstance().restoreWindowPositionEnabled()) + { + auto maybe_point = Options::getInstance().windowPosition("courtroom"); + if (maybe_point.has_value()) + { + qDebug() << maybe_point.value(); + QMainWindow::move(maybe_point.value()); + } } ui_spectator->show(); @@ -1915,9 +1917,9 @@ void Courtroom::set_judge_buttons() void Courtroom::closeEvent(QCloseEvent *event) { - Options::getInstance().setWindowPosition("courtroom", pos()); - qDebug() << pos(); - QMainWindow::closeEvent(event); + Options::getInstance().setWindowPosition("courtroom", pos()); + qDebug() << pos(); + QMainWindow::closeEvent(event); } void Courtroom::on_chat_return_pressed() -- cgit From 8fac2ada62a5256bb0ba563d3e696762cf861a7d Mon Sep 17 00:00:00 2001 From: Salanto <62221668+Salanto@users.noreply.github.com> Date: Fri, 12 Jul 2024 00:06:21 +0200 Subject: Harden screen position check against missing monitors --- src/courtroom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/courtroom.cpp') diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 45fb7d61..39d6ff9e 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1373,7 +1373,7 @@ void Courtroom::done_received() if (Options::getInstance().restoreWindowPositionEnabled()) { auto maybe_point = Options::getInstance().windowPosition("courtroom"); - if (maybe_point.has_value()) + if (maybe_point.has_value() && ao_app->pointExistsOnScreen(maybe_point.value())) { qDebug() << maybe_point.value(); QMainWindow::move(maybe_point.value()); -- cgit From e34b2534edc6513cc57bb71875be4d48e74c73a7 Mon Sep 17 00:00:00 2001 From: Salanto <62221668+Salanto@users.noreply.github.com> Date: Fri, 12 Jul 2024 13:23:40 +0200 Subject: Restore position in AOApplication --- src/courtroom.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src/courtroom.cpp') 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); } -- cgit