diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 228a76f..e4589b4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,7 +80,7 @@ jobs: - name: Build run: | - cmake . + cmake . -D CMAKE_BUILD_TYPE=Release cmake --build . --config Release - name: Deploy Windows diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp index 6a0600a..9abc958 100644 --- a/src/aoapplication.cpp +++ b/src/aoapplication.cpp @@ -16,8 +16,8 @@ void message_handler(QtMsgType type, const QMessageLogContext &context, const QS original_message_handler(type, context, msg); } -AOApplication::AOApplication(int &argc, char **argv) - : QApplication(argc, argv) +AOApplication::AOApplication(QObject *parent) + : QObject(parent) { net_manager = new NetworkManager(this); discord = new AttorneyOnline::Discord(); @@ -26,9 +26,6 @@ AOApplication::AOApplication(int &argc, char **argv) message_handler_context = this; original_message_handler = qInstallMessageHandler(message_handler); - - setApplicationVersion(get_version_string()); - setApplicationDisplayName(tr("Attorney Online %1").arg(applicationVersion())); } AOApplication::~AOApplication() diff --git a/src/aoapplication.h b/src/aoapplication.h index 5d20d96..b5d7fb5 100644 --- a/src/aoapplication.h +++ b/src/aoapplication.h @@ -9,13 +9,13 @@ #include -#include #include #include #include #include #include #include +#include #include #include #include @@ -48,12 +48,12 @@ inline uint qHash(const VPath &key, uint seed = qGlobalQHashSeed()) return qHash(key.toQString(), seed); } -class AOApplication : public QApplication +class AOApplication : public QObject { Q_OBJECT public: - AOApplication(int &argc, char **argv); + AOApplication(QObject *parent = nullptr); ~AOApplication(); NetworkManager *net_manager; diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 0616179..45fb7d6 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1180,7 +1180,7 @@ void Courtroom::set_fonts(QString p_char) QFont new_font = ao_app->default_font; int new_font_size = new_font.pointSize() * Options::getInstance().themeScalingFactor(); new_font.setPointSize(new_font_size); - ao_app->setFont(new_font); + QApplication::setFont(new_font); set_font(ui_vp_showname, "", "showname", p_char); set_font(ui_vp_message, "", "message", p_char); @@ -3369,7 +3369,7 @@ void Courtroom::handle_callwords() // Play the call word sfx on the modcall_player sound container modcall_player->findAndPlaySfx(ao_app->get_court_sfx("word_call")); // Make the window flash - ao_app->alert(this); + QApplication::alert(this); // Break the loop so we don't spam sound effects break; } @@ -4905,7 +4905,7 @@ void Courtroom::mod_called(QString p_ip) if (!ui_guard->isChecked()) { modcall_player->findAndPlaySfx(ao_app->get_court_sfx("mod_call")); - ao_app->alert(this); + QApplication::alert(this); } } @@ -6615,7 +6615,7 @@ void Courtroom::truncate_label_text(QWidget *p_widget, QString p_identifier) return; } - int checkbox_width = AOApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth) + AOApplication::style()->pixelMetric(QStyle::PM_CheckBoxLabelSpacing); + int checkbox_width = QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth) + QApplication::style()->pixelMetric(QStyle::PM_CheckBoxLabelSpacing); int label_theme_width = (p_label != nullptr ? design_ini_result.width : (design_ini_result.width - checkbox_width)); int label_px_width = p_widget->fontMetrics().boundingRect(label_text_tr).width(); // pixel width of our translated text diff --git a/src/lobby.cpp b/src/lobby.cpp index 22a3a5b..f4da9d5 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -100,7 +100,7 @@ void Lobby::reset_selection() void Lobby::loadUI() { - this->setWindowTitle(tr("Attorney Online %1").arg(ao_app->applicationVersion())); + this->setWindowTitle(tr("Attorney Online %1").arg(QApplication::applicationVersion())); this->setWindowIcon(QIcon(":/logo.png")); this->setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint)); diff --git a/src/main.cpp b/src/main.cpp index 0cf0ad0..cb9e138 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,7 +19,7 @@ int main(int argc, char *argv[]) qRegisterMetaType(); - AOApplication main_app(argc, argv); + QApplication app(argc, argv); #ifdef ANDROID if (QtAndroid::checkPermission("android.permission.READ_EXTERNAL_STORAGE") == QtAndroid::PermissionResult::Denied) @@ -28,15 +28,19 @@ int main(int argc, char *argv[]) } #endif + AOApplication main_app; + app.setApplicationVersion(AOApplication::get_version_string()); + app.setApplicationDisplayName(QObject::tr("Attorney Online %1").arg(app.applicationVersion())); + QResource::registerResource(main_app.get_asset("themes/" + Options::getInstance().theme() + ".rcc")); - QFont main_font = main_app.font(); + QFont main_font = app.font(); main_app.default_font = main_font; QFont new_font = main_font; int new_font_size = main_app.default_font.pointSize() * Options::getInstance().themeScalingFactor(); new_font.setPointSize(new_font_size); - main_app.setFont(new_font); + app.setFont(new_font); QFontDatabase fontDatabase; QDirIterator it(get_base_path() + "fonts", QDirIterator::Subdirectories); @@ -67,16 +71,17 @@ int main(int argc, char *argv[]) QTranslator qtTranslator; qtTranslator.load("qt_" + p_language, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); - main_app.installTranslator(&qtTranslator); + app.installTranslator(&qtTranslator); QTranslator appTranslator; qDebug() << ":/data/translations/ao_" + p_language; appTranslator.load("ao_" + p_language, ":/data/translations/"); - main_app.installTranslator(&appTranslator); + app.installTranslator(&appTranslator); main_app.construct_lobby(); main_app.net_manager->get_server_list(); main_app.net_manager->send_heartbeat(); main_app.w_lobby->show(); - return main_app.exec(); + + return app.exec(); }