From 4dae73c848bba1e44abf5a37d41034ded25cf28a Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 01:45:28 -0600 Subject: [PATCH 01/13] use std::as_const instead of qAsConst --- src/animationlayer.cpp | 8 ++++---- src/animationloader.cpp | 2 +- src/aopacket.cpp | 2 +- src/aoutils.cpp | 2 +- src/charselect.cpp | 2 +- src/courtroom.cpp | 14 +++++++------- src/demoserver.cpp | 2 +- src/emotes.cpp | 2 +- src/evidence.cpp | 6 +++--- src/lobby.cpp | 2 +- src/options.cpp | 6 +++--- src/text_file_functions.cpp | 2 +- src/widgets/aooptionsdialog.cpp | 10 +++++----- src/widgets/playerlistwidget.cpp | 6 +++--- 14 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/animationlayer.cpp b/src/animationlayer.cpp index 7ffe1d7..771904b 100644 --- a/src/animationlayer.cpp +++ b/src/animationlayer.cpp @@ -435,7 +435,7 @@ void CharacterAnimationLayer::loadCharacterEmote(QString character, QString file QVector path_list; QVector prefixed_emote_list; - for (const QString &prefix : qAsConst(prefixes)) + for (const QString &prefix : std::as_const(prefixes)) { path_list << ao_app->get_character_path(character, prefix + m_emote); prefixed_emote_list << prefix + m_emote; @@ -479,13 +479,13 @@ void CharacterAnimationLayer::setFrameEffects(QStringList data) const EffectType effect_type = EFFECT_TYPE_LIST.at(i); QStringList emotes = data.at(i).split("^"); - for (const QString &emote : qAsConst(emotes)) + for (const QString &emote : std::as_const(emotes)) { QStringList emote_effects = emote.split("|"); const QString emote_name = emote_effects.takeFirst(); - for (const QString &raw_effect : qAsConst(emote_effects)) + for (const QString &raw_effect : std::as_const(emote_effects)) { QStringList frame_data = raw_effect.split("="); @@ -553,7 +553,7 @@ void CharacterAnimationLayer::notifyFrameEffect(int frameNumber) auto it = m_effects.constFind(frameNumber); if (it != m_effects.constEnd()) { - for (const FrameEffect &effect : qAsConst(*it)) + for (const FrameEffect &effect : std::as_const(*it)) { if (effect.emote_name == m_resolved_emote) { diff --git a/src/animationloader.cpp b/src/animationloader.cpp index 5f57cbe..074c1a9 100644 --- a/src/animationloader.cpp +++ b/src/animationloader.cpp @@ -72,7 +72,7 @@ AnimationFrame AnimationLoader::frame(int frameNumber) m_task_signal.wait(&m_task_lock); } - AnimationFrame frame = qAsConst(m_frames)[frameNumber]; + AnimationFrame frame = std::as_const(m_frames)[frameNumber]; m_task_lock.unlock(); return frame; diff --git a/src/aopacket.cpp b/src/aopacket.cpp index cb924cb..2789679 100644 --- a/src/aopacket.cpp +++ b/src/aopacket.cpp @@ -37,7 +37,7 @@ QString AOPacket::toString(bool ensureEncoded) QString message = m_header; if (!m_content.isEmpty()) { - for (QString item : qAsConst(m_content)) + for (QString item : std::as_const(m_content)) { if (ensureEncoded) { diff --git a/src/aoutils.cpp b/src/aoutils.cpp index dd88a0a..47aa1ca 100644 --- a/src/aoutils.cpp +++ b/src/aoutils.cpp @@ -57,7 +57,7 @@ void AOUtils::migrateEffects(QSettings &p_effects_ini) } int i = 0; - for (const QString &i_effect_key : qAsConst(l_key_list)) + for (const QString &i_effect_key : std::as_const(l_key_list)) { p_effects_ini.beginGroup(QString::number(i++)); p_effects_ini.setValue("name", i_effect_key); diff --git a/src/charselect.cpp b/src/charselect.cpp index d36220a..ea1b566 100644 --- a/src/charselect.cpp +++ b/src/charselect.cpp @@ -116,7 +116,7 @@ void Courtroom::set_char_select_page() ui_char_select_left->hide(); ui_char_select_right->hide(); - for (AOCharButton *i_button : qAsConst(ui_char_button_list)) + for (AOCharButton *i_button : std::as_const(ui_char_button_list)) { i_button->hide(); i_button->move(0, 0); diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 349e5a5..ac89a6b 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -704,7 +704,7 @@ void Courtroom::set_mute_list() QStringList sorted_mute_list; - for (const CharacterSlot &i_char : qAsConst(char_list)) + for (const CharacterSlot &i_char : std::as_const(char_list)) { sorted_mute_list.append(i_char.name); } @@ -722,7 +722,7 @@ void Courtroom::set_pair_list() { QStringList sorted_pair_list; - for (const CharacterSlot &i_char : qAsConst(char_list)) + for (const CharacterSlot &i_char : std::as_const(char_list)) { sorted_pair_list.append(i_char.name); } @@ -3084,7 +3084,7 @@ void Courtroom::do_transition(QString p_desk_mod, QString oldPosId, QString newP void Courtroom::post_transition_cleanup() { - for (kal::CharacterAnimationLayer *layer : qAsConst(ui_vp_char_list)) + for (kal::CharacterAnimationLayer *layer : std::as_const(ui_vp_char_list)) { bool is_visible = layer->isVisible(); layer->stopPlayback(); @@ -3368,7 +3368,7 @@ void Courtroom::handle_callwords() // No more file IO on every message. QStringList call_words = Options::getInstance().callwords(); // Loop through each word in the call words list - for (const QString &word : qAsConst(call_words)) + for (const QString &word : std::as_const(call_words)) { // If our message contains that specific call word if (f_message.contains(word, Qt::CaseInsensitive)) @@ -5392,7 +5392,7 @@ void Courtroom::set_sfx_dropdown() sound_list += ao_app->get_list_file(VPath("soundlist.ini")); QStringList display_sounds; - for (const QString &sound : qAsConst(sound_list)) + for (const QString &sound : std::as_const(sound_list)) { QStringList unpacked = sound.split("="); QString display = unpacked[0].trimmed(); @@ -5694,7 +5694,7 @@ void Courtroom::on_pair_list_clicked(QModelIndex p_index) // Redo the character list. QStringList sorted_pair_list; - for (const CharacterSlot &i_char : qAsConst(char_list)) + for (const CharacterSlot &i_char : std::as_const(char_list)) { sorted_pair_list.append(i_char.name); } @@ -5862,7 +5862,7 @@ void Courtroom::music_stop(bool no_effects) if (!music_list.contains(fake_song)) { // Loop through our music list - for (const QString &song : qAsConst(music_list)) + for (const QString &song : std::as_const(music_list)) { // Pick first song that does not contain a file extension if (!song.contains('.')) diff --git a/src/demoserver.cpp b/src/demoserver.cpp index 93eaad5..c8c8c8b 100644 --- a/src/demoserver.cpp +++ b/src/demoserver.cpp @@ -361,7 +361,7 @@ void DemoServer::load_demo(QString filename) out.setCodec("UTF-8"); #endif out << p_demo_data.dequeue(); - for (const QString &line : qAsConst(p_demo_data)) + for (const QString &line : std::as_const(p_demo_data)) { out << "\n" << line; } diff --git a/src/emotes.cpp b/src/emotes.cpp index c120d59..952b192 100644 --- a/src/emotes.cpp +++ b/src/emotes.cpp @@ -110,7 +110,7 @@ void Courtroom::set_emote_page() ui_emote_left->hide(); ui_emote_right->hide(); - for (AOEmoteButton *i_button : qAsConst(ui_emote_list)) + for (AOEmoteButton *i_button : std::as_const(ui_emote_list)) { i_button->hide(); } diff --git a/src/evidence.cpp b/src/evidence.cpp index 322970f..aab7c8c 100644 --- a/src/evidence.cpp +++ b/src/evidence.cpp @@ -305,7 +305,7 @@ void Courtroom::set_evidence_page() ui_evidence_left->hide(); ui_evidence_right->hide(); - for (AOEvidenceButton *i_button : qAsConst(ui_evidence_list)) + for (AOEvidenceButton *i_button : std::as_const(ui_evidence_list)) { i_button->hide(); } @@ -481,7 +481,7 @@ void Courtroom::on_evidence_clicked(int p_id) } ui_evidence_name->setText(local_evidence_list.at(f_real_id).name); - for (AOEvidenceButton *i_button : qAsConst(ui_evidence_list)) + for (AOEvidenceButton *i_button : std::as_const(ui_evidence_list)) { i_button->setSelected(false); } @@ -508,7 +508,7 @@ void Courtroom::on_evidence_double_clicked(int p_id) } } - for (AOEvidenceButton *i_button : qAsConst(ui_evidence_list)) + for (AOEvidenceButton *i_button : std::as_const(ui_evidence_list)) { i_button->setSelected(false); } diff --git a/src/lobby.cpp b/src/lobby.cpp index f19845f..202cab7 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -466,7 +466,7 @@ void Lobby::list_servers() ui_serverlist_search->setText(""); int i = 0; - for (const ServerInfo &i_server : qAsConst(ao_app->get_server_list())) + for (const ServerInfo &i_server : std::as_const(ao_app->get_server_list())) { QTreeWidgetItem *treeItem = new QTreeWidgetItem(ui_serverlist_tree); treeItem->setData(0, Qt::DisplayRole, i); diff --git a/src/options.cpp b/src/options.cpp index f312bc5..2e1fbe9 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -660,7 +660,7 @@ QVector Options::favorites() auto grouplist = favorite.childGroups(); { // remove all negative and non-numbers auto filtered_grouplist = grouplist; - for (const QString &group : qAsConst(grouplist)) + for (const QString &group : std::as_const(grouplist)) { bool ok = false; const int l_num = group.toInt(&ok); @@ -674,7 +674,7 @@ QVector Options::favorites() grouplist = std::move(filtered_grouplist); } - for (const QString &group : qAsConst(grouplist)) + for (const QString &group : std::as_const(grouplist)) { ServerInfo f_server; favorite.beginGroup(group); @@ -763,7 +763,7 @@ QString Options::getUIAsset(QString f_asset_name) l_paths.prepend(":/base/themes/" + theme() + "/" + subTheme() + "/" + f_asset_name); } - for (const QString &l_path : qAsConst(l_paths)) + for (const QString &l_path : std::as_const(l_paths)) { if (QFile::exists(l_path)) { diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp index 0b077b6..1988482 100644 --- a/src/text_file_functions.cpp +++ b/src/text_file_functions.cpp @@ -811,7 +811,7 @@ QStringList AOApplication::get_effects(QString p_char) std::sort(l_group_list.begin(), l_group_list.end(), [](const QString &lhs, const QString &rhs) { return lhs.toInt() < rhs.toInt(); }); - for (const QString &i_group : qAsConst(l_group_list)) + for (const QString &i_group : std::as_const(l_group_list)) { const QString l_key = i_group + "/name"; if (!l_effects_ini.contains(l_key)) diff --git a/src/widgets/aooptionsdialog.cpp b/src/widgets/aooptionsdialog.cpp index 4ff9dc1..57ea7d5 100644 --- a/src/widgets/aooptionsdialog.cpp +++ b/src/widgets/aooptionsdialog.cpp @@ -194,7 +194,7 @@ void AOOptionsDialog::updateValues() l_sorting.setNumericMode(true); std::sort(l_themes.begin(), l_themes.end(), l_sorting); - for (const QString &l_theme : qAsConst(l_themes)) + for (const QString &l_theme : std::as_const(l_themes)) { if (!themes.contains(l_theme)) { @@ -205,7 +205,7 @@ void AOOptionsDialog::updateValues() } QStringList l_subthemes = QDir(ao_app->get_real_path(ao_app->get_theme_path(""))).entryList(QDir::Dirs | QDir::NoDotAndDotDot); - for (const QString &l_subtheme : qAsConst(l_subthemes)) + for (const QString &l_subtheme : std::as_const(l_subthemes)) { if (l_subtheme.toLower() != "server" && l_subtheme.toLower() != "default" && l_subtheme.toLower() != "effects" && l_subtheme.toLower() != "misc") { @@ -221,7 +221,7 @@ void AOOptionsDialog::updateValues() ui_privacy_policy->setHtml(document); }); - for (const OptionEntry &entry : qAsConst(optionEntries)) + for (const OptionEntry &entry : std::as_const(optionEntries)) { entry.load(); } @@ -230,7 +230,7 @@ void AOOptionsDialog::updateValues() void AOOptionsDialog::savePressed() { bool l_reload_theme_required = (ui_theme_combobox->currentText() != Options::getInstance().theme()) || (ui_theme_scaling_factor_sb->value() != Options::getInstance().themeScalingFactor()); - for (const OptionEntry &entry : qAsConst(optionEntries)) + for (const OptionEntry &entry : std::as_const(optionEntries)) { entry.save(); } @@ -281,7 +281,7 @@ void AOOptionsDialog::themeChanged(int i) QStringList l_subthemes = QDir(ao_app->get_real_path(ao_app->get_theme_path("", ui_theme_combobox->itemText(i)))).entryList(QDir::Dirs | QDir::NoDotAndDotDot); - for (const QString &l_subthemes : qAsConst(l_subthemes)) + for (const QString &l_subthemes : std::as_const(l_subthemes)) { if (l_subthemes.toLower() != "server" && l_subthemes.toLower() != "default" && l_subthemes.toLower() != "effects" && l_subthemes.toLower() != "misc") { diff --git a/src/widgets/playerlistwidget.cpp b/src/widgets/playerlistwidget.cpp index 7691378..7c7fa6f 100644 --- a/src/widgets/playerlistwidget.cpp +++ b/src/widgets/playerlistwidget.cpp @@ -72,7 +72,7 @@ void PlayerListWidget::updatePlayer(const PlayerUpdate &update) void PlayerListWidget::reloadPlayers() { - for (const PlayerData &player : qAsConst(m_player_map)) + for (const PlayerData &player : std::as_const(m_player_map)) { updatePlayer(player.id, false); } @@ -81,7 +81,7 @@ void PlayerListWidget::reloadPlayers() void PlayerListWidget::setAuthenticated(bool f_state) { m_is_authenticated = f_state; - for (const PlayerData &data : qAsConst(m_player_map)) + for (const PlayerData &data : std::as_const(m_player_map)) { updatePlayer(data.id, false); filterPlayerList(); @@ -150,7 +150,7 @@ void PlayerListWidget::removePlayer(int playerId) void PlayerListWidget::filterPlayerList() { int area_id = m_player_map.value(ao_app->client_id).area_id; - for (QListWidgetItem *item : qAsConst(m_item_map)) + for (QListWidgetItem *item : std::as_const(m_item_map)) { if (!item) { From ca660cc439bdde765cdf2cfcdaacbaf41d86f719 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 01:54:56 -0600 Subject: [PATCH 02/13] make range-for const --- src/aoapplication.h | 2 +- src/scrolltext.h | 13 +++++++++---- src/text_file_functions.cpp | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/aoapplication.h b/src/aoapplication.h index 6022ca1..1386ff1 100644 --- a/src/aoapplication.h +++ b/src/aoapplication.h @@ -43,7 +43,7 @@ public: inline VPath operator+(const VPath &str) const { return VPath(this->toQString() + str.toQString()); } }; -inline size_t qHash(const VPath &key, uint seed = qGlobalQHashSeed()) +inline size_t qHash(const VPath &key, uint seed = QHashSeed::globalSeed()) { return qHash(key.toQString(), seed); } diff --git a/src/scrolltext.h b/src/scrolltext.h index 4571e25..83b65aa 100644 --- a/src/scrolltext.h +++ b/src/scrolltext.h @@ -10,17 +10,22 @@ class ScrollText : public QWidget { Q_OBJECT - Q_PROPERTY(QString text READ text WRITE setText) - Q_PROPERTY(QString separator READ separator WRITE setSeparator) + Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) + Q_PROPERTY(QString separator READ separator WRITE setSeparator NOTIFY separatorChanged) public: explicit ScrollText(QWidget *parent = nullptr); -public Q_SLOTS: QString text() const; + QString separator() const; + +signals: + void textChanged(QString newText); + void separatorChanged(QString newSeparator); + +public Q_SLOTS: void setText(QString text); - QString separator() const; void setSeparator(QString separator); protected: diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp index 1988482..91660c9 100644 --- a/src/text_file_functions.cpp +++ b/src/text_file_functions.cpp @@ -144,7 +144,7 @@ QMultiMap AOApplication::load_demo_logs_list() const l_demo_folder.setFilter(QDir::Files); l_demo_folder.setNameFilters(QStringList() << "*.demo"); - for (QString l_demo_name : l_demo_folder.entryList()) + for (const QString &l_demo_name : l_demo_folder.entryList()) { l_demo_logs.insert(l_demo_folder_name, l_demo_name); } From 9d88356c0f53873bc740fc05a1af5c49577f039a Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:02:16 -0600 Subject: [PATCH 03/13] clazy cleanup --- src/packet_distribution.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 6cf5c74..9016244 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -66,7 +66,7 @@ void AOApplication::server_packet_received(AOPacket packet) client_id = content.at(0).toInt(); m_serverdata.set_server_software(content.at(1)); - net_manager->server_connected(true); + emit net_manager->server_connected(true); QStringList f_contents = {"AO2", get_version_string()}; send_server_packet(AOPacket("ID", f_contents)); @@ -161,10 +161,11 @@ void AOApplication::server_packet_received(AOPacket packet) // Remove any characters not accepted in folder names for the server_name // here + static QRegularExpression illegal_filename_chars("[\\\\/:*?\"<>|\']"); if (Options::getInstance().logToDemoFileEnabled() && server_name != "Demo playback") { - this->log_filename = QDateTime::currentDateTime().toUTC().toString("'logs/" + server_name.remove(QRegularExpression("[\\\\/:*?\"<>|\']")) + "/'yyyy-MM-dd hh-mm-ss t'.log'"); - this->write_to_file("Joined server " + server_name + " hosted on address " + server_address + " on " + QDateTime::currentDateTime().toUTC().toString(), log_filename, true); + this->log_filename = QDateTime::currentDateTimeUtc().toString("'logs/" + server_name.remove(illegal_filename_chars) + "/'yyyy-MM-dd hh-mm-ss t'.log'"); + this->write_to_file("Joined server " + server_name + " hosted on address " + server_address + " on " + QDateTime::currentDateTimeUtc().toString(), log_filename, true); } else { @@ -426,7 +427,7 @@ void AOApplication::server_packet_received(AOPacket packet) { QVector f_evi_list; - for (QString f_string : packet.content()) + for (const QString &f_string : packet.content()) { QStringList sub_contents = f_string.split("&"); if (sub_contents.size() < 3) @@ -714,7 +715,6 @@ void AOApplication::server_packet_received(AOPacket packet) void AOApplication::send_server_packet(AOPacket p_packet) { - QString f_packet = p_packet.toString(); #ifdef DEBUG_NETWORK qDebug() << "S:" << p_packet.to_string(); #endif From 896afaef16cbf42eb662eab899d09daa61821688 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:06:02 -0600 Subject: [PATCH 04/13] use multi-arg --- src/network/serverinfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/serverinfo.cpp b/src/network/serverinfo.cpp index 1762866..b34a5b3 100644 --- a/src/network/serverinfo.cpp +++ b/src/network/serverinfo.cpp @@ -2,5 +2,5 @@ QString ServerInfo::toString() const { - return QString("%1 (%2:%3)").arg(name.isEmpty() ? QStringLiteral("Unnamed Server") : name).arg(address).arg(port); + return QString("%1 (%2:%3)").arg((name.isEmpty() ? QStringLiteral("Unnamed Server") : name), address, QString::number(port)); } From f352579a3972b423ca7e199fef5c10206ca3a099 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:11:31 -0600 Subject: [PATCH 05/13] use a static QRegularExpression object --- src/lobby.cpp | 5 +++-- src/lobby.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lobby.cpp b/src/lobby.cpp index 202cab7..9a6d802 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -20,6 +20,7 @@ Lobby::Lobby(AOApplication *p_ao_app, NetworkManager *p_net_manager) { reloadUi(); setObjectName("lobby"); + regexp_links = QRegularExpression("\\b(https?://\\S+\\.\\S+)\\b"); } void Lobby::on_tab_changed(int index) @@ -567,7 +568,7 @@ void Lobby::check_for_updates() { ui_game_version_lbl->setText(tr("Version: %1 [OUTDATED]").arg(current_version.toString())); setWindowTitle(tr("[Your client is outdated]")); - const QString download_url = QString("https://github.com/AttorneyOnline/AO2-Client/releases/latest").replace(QRegularExpression("\\b(https?://\\S+\\.\\S+)\\b"), "\\1"); + const QString download_url = QString("https://github.com/AttorneyOnline/AO2-Client/releases/latest").replace(regexp_links, "\\1"); const QString message = QString("Your client is outdated!
Your Version: %1
Current Version: %2
Download the latest version at
%3").arg(current_version.toString(), master_version.toString(), download_url); QMessageBox::warning(this, "Your client is outdated!", message); } @@ -583,7 +584,7 @@ void Lobby::set_player_count(int players_online, int max_players) void Lobby::set_server_description(const QString &server_description) { ui_server_description_text->clear(); - QString result = server_description.toHtmlEscaped().replace("\n", "
").replace(QRegularExpression("\\b(https?://\\S+\\.\\S+)\\b"), "\\1"); + QString result = server_description.toHtmlEscaped().replace("\n", "
").replace(regexp_links, "\\1"); ui_server_description_text->insertHtml(result); } diff --git a/src/lobby.h b/src/lobby.h index 8b894f4..347d406 100644 --- a/src/lobby.h +++ b/src/lobby.h @@ -91,6 +91,8 @@ private: // Optional Widget QTextBrowser *ui_game_changelog_text; + static QRegularExpression regexp_links; + void loadUI(); void reloadUi(); From 15899e329ad717bfa9e492b7c85c615c75fe56a7 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:12:04 -0600 Subject: [PATCH 06/13] remove unused string --- src/emotes.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/emotes.cpp b/src/emotes.cpp index 952b192..9746abc 100644 --- a/src/emotes.cpp +++ b/src/emotes.cpp @@ -265,7 +265,6 @@ void Courtroom::show_emote_menu(const QPoint &pos) emote_preview->updateViewportGeometry(); update_emote_preview(); })); - QString prefix; QString f_pre = ao_app->get_pre_emote(current_char, emote_num); if (!f_pre.isEmpty() && f_pre != "-") { From 23467ce54d8cb17232c8361ab9fbb615f102f096 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:13:46 -0600 Subject: [PATCH 07/13] unused macro --- src/demoserver.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/demoserver.cpp b/src/demoserver.cpp index c8c8c8b..dace861 100644 --- a/src/demoserver.cpp +++ b/src/demoserver.cpp @@ -442,6 +442,7 @@ void DemoServer::playback() } // Take the first arg as the command QString command = f_contents.takeFirst(); + Q_UNUSED(command); // this seems load-bearing. TODO: this should not be load-bearing int duration = 0; if (!f_contents.isEmpty()) { From 501f2a9dd029519af9d4ad7e298785b5575a1584 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:16:10 -0600 Subject: [PATCH 08/13] fix static regexps --- src/lobby.cpp | 4 +++- src/lobby.h | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lobby.cpp b/src/lobby.cpp index 9a6d802..5e98b75 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -20,7 +20,6 @@ Lobby::Lobby(AOApplication *p_ao_app, NetworkManager *p_net_manager) { reloadUi(); setObjectName("lobby"); - regexp_links = QRegularExpression("\\b(https?://\\S+\\.\\S+)\\b"); } void Lobby::on_tab_changed(int index) @@ -564,6 +563,8 @@ void Lobby::check_for_updates() QVersionNumber current_version = QVersionNumber::fromString(ao_app->get_version_string()); QVersionNumber master_version = QVersionNumber::fromString(version); + static QRegularExpression regexp_links("\\b(https?://\\S+\\.\\S+)\\b"); + if (current_version < master_version) { ui_game_version_lbl->setText(tr("Version: %1 [OUTDATED]").arg(current_version.toString())); @@ -584,6 +585,7 @@ void Lobby::set_player_count(int players_online, int max_players) void Lobby::set_server_description(const QString &server_description) { ui_server_description_text->clear(); + static QRegularExpression regexp_links("\\b(https?://\\S+\\.\\S+)\\b"); QString result = server_description.toHtmlEscaped().replace("\n", "
").replace(regexp_links, "\\1"); ui_server_description_text->insertHtml(result); } diff --git a/src/lobby.h b/src/lobby.h index 347d406..8b894f4 100644 --- a/src/lobby.h +++ b/src/lobby.h @@ -91,8 +91,6 @@ private: // Optional Widget QTextBrowser *ui_game_changelog_text; - static QRegularExpression regexp_links; - void loadUI(); void reloadUi(); From 0bd3ddf7f0a18dda9d02ae3f8d2e9807c3329df8 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:17:51 -0600 Subject: [PATCH 09/13] make regular expression object static --- src/aoutils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aoutils.cpp b/src/aoutils.cpp index 47aa1ca..f384b81 100644 --- a/src/aoutils.cpp +++ b/src/aoutils.cpp @@ -46,7 +46,7 @@ void AOUtils::migrateEffects(QSettings &p_effects_ini) // realization_scaling - This would not be appended to the key_list as it matches scaling property. // realization_alt - This would be appened as it contains an underscore, but not a property. // hearts - This would be appended as it does not contain a property - const QRegularExpression l_regex(QStringLiteral("(\\w+)_(%1)$").arg(l_property_list.join("|"))); + static QRegularExpression l_regex(QStringLiteral("(\\w+)_(%1)$").arg(l_property_list.join("|"))); for (auto i = l_effect_map.begin(); i != l_effect_map.end(); i++) { if (l_regex.match(i.key()).hasMatch()) From a7d292b8b673bce4a8471f6e916b44e6fdb64c97 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:19:46 -0600 Subject: [PATCH 10/13] avoid detaching temporary container --- src/charselect.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/charselect.cpp b/src/charselect.cpp index ea1b566..040bfd0 100644 --- a/src/charselect.cpp +++ b/src/charselect.cpp @@ -352,7 +352,7 @@ void Courtroom::filter_character_list() for (int i = 0; i < char_list.size(); i++) { AOCharButton *current_char = ui_char_button_list.at(i); - QTreeWidgetItem *current_char_list_item = ui_char_list->findItems(QString::number(i), Qt::MatchExactly | Qt::MatchRecursive, 1)[0]; + QTreeWidgetItem *current_char_list_item = ui_char_list->findItems(QString::number(i), Qt::MatchExactly | Qt::MatchRecursive, 1).at(0); // It seems passwording characters is unimplemented yet? // Until then, this will stay here, I suppose. From dc50839ef1b2bc266072d94c65608d511d44efc2 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:20:19 -0600 Subject: [PATCH 11/13] avoid detaching temporary container --- src/aotextboxwidgets.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aotextboxwidgets.cpp b/src/aotextboxwidgets.cpp index c39b26f..fd770e5 100644 --- a/src/aotextboxwidgets.cpp +++ b/src/aotextboxwidgets.cpp @@ -90,7 +90,7 @@ void AOChatboxLabel::paintEvent(QPaintEvent *event) if (alignment() & Qt::AlignLeft) { - x = rect.left() + l_indent - std::min(metrics.leftBearing(text()[0]), 0); + x = rect.left() + l_indent - std::min(metrics.leftBearing(text().at(0)), 0); } else if (alignment() & Qt::AlignRight) { From dd378d1040aef7f3e2205c8b05100a5cf7dd0743 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:25:35 -0600 Subject: [PATCH 12/13] clazy cleanup --- src/courtroom.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index ac89a6b..839d185 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1407,7 +1407,7 @@ void Courtroom::set_background(QString p_background, bool display) // Populate the dropdown list with all pos that exist on this bg QStringList pos_list = {}; - for (const QString &key : default_pos.keys()) + for (const QString &key : default_pos) { if (file_exists(ao_app->get_image_suffix(ao_app->get_background_path(default_pos[key]))) || // if we have 2.8-style positions, e.g. def.png, wit.webp, hld.apng file_exists(ao_app->get_image_suffix(ao_app->get_background_path(key)))) @@ -3729,7 +3729,8 @@ QString Courtroom::filter_ic_text(QString p_text, bool html, int target_pos, int // white-space: pre; stylesheet tag, but for whataver reason it doesn't work // no matter where I try it. If somoene else can get that piece of HTML // memery to work, please do. - p_text_escaped.replace(QRegularExpression("^\\s|(?<=\\s)\\s"), " "); + static QRegularExpression whitespace("^\\s|(?<=\\s)\\s"); + p_text_escaped.replace(whitespace, " "); if (!align.isEmpty()) { p_text_escaped.append(""); @@ -5079,9 +5080,10 @@ void Courtroom::on_ooc_return_pressed() casefile.setValue("doc", ""); casefile.setValue("status", command[2]); casefile.sync(); + static QRegularExpression owner_regexp("..."); for (int i = 0; i < local_evidence_list.size(); i++) { - QString clean_evidence_dsc = local_evidence_list[i].description.replace(QRegularExpression("..."), ""); + QString clean_evidence_dsc = local_evidence_list[i].description.replace(owner_regexp, ""); clean_evidence_dsc = clean_evidence_dsc.replace(clean_evidence_dsc.lastIndexOf(">"), 1, ""); casefile.beginGroup(QString::number(i)); casefile.sync(); @@ -5750,19 +5752,19 @@ void Courtroom::on_music_list_context_menu_requested(const QPoint &pos) menu->addSeparator(); menu->addAction(new QAction(tr("Fade Out Previous"), this)); - menu->actions().back()->setCheckable(true); - menu->actions().back()->setChecked(music_flags & FADE_OUT); - connect(menu->actions().back(), &QAction::toggled, this, &Courtroom::music_fade_out); + menu->actions().constLast()->setCheckable(true); + menu->actions().constLast()->setChecked(music_flags & FADE_OUT); + connect(menu->actions().constLast(), &QAction::toggled, this, &Courtroom::music_fade_out); menu->addAction(new QAction(tr("Fade In"), this)); - menu->actions().back()->setCheckable(true); - menu->actions().back()->setChecked(music_flags & FADE_IN); - connect(menu->actions().back(), &QAction::toggled, this, &Courtroom::music_fade_in); + menu->actions().constLast()->setCheckable(true); + menu->actions().constLast()->setChecked(music_flags & FADE_IN); + connect(menu->actions().constLast(), &QAction::toggled, this, &Courtroom::music_fade_in); menu->addAction(new QAction(tr("Synchronize"), this)); - menu->actions().back()->setCheckable(true); - menu->actions().back()->setChecked(music_flags & SYNC_POS); - connect(menu->actions().back(), &QAction::toggled, this, &Courtroom::music_synchronize); + menu->actions().constLast()->setCheckable(true); + menu->actions().constLast()->setChecked(music_flags & SYNC_POS); + connect(menu->actions().constLast(), &QAction::toggled, this, &Courtroom::music_synchronize); menu->addSeparator(); menu->addAction(QString("Open base music folder"), this, [=] { From 2389ecfa976d53a355b1fd25ed6e2ed46aa20825 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 11 Jan 2025 02:27:35 -0600 Subject: [PATCH 13/13] avoid loop container detach --- src/courtroom.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 839d185..e1246bb 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1407,7 +1407,7 @@ void Courtroom::set_background(QString p_background, bool display) // Populate the dropdown list with all pos that exist on this bg QStringList pos_list = {}; - for (const QString &key : default_pos) + for (const QString &key : std::as_const(default_pos)) { if (file_exists(ao_app->get_image_suffix(ao_app->get_background_path(default_pos[key]))) || // if we have 2.8-style positions, e.g. def.png, wit.webp, hld.apng file_exists(ao_app->get_image_suffix(ao_app->get_background_path(key))))