diff options
| author | Salanto <62221668+Salanto@users.noreply.github.com> | 2024-07-31 11:55:25 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-31 11:55:25 +0200 |
| commit | 4d1b0517e3d5704b26df7d8a9a492d182d36ea4b (patch) | |
| tree | 3c88dca3a7a4591e59cf36b8faa60cff9569995f | |
| parent | e82726ba5b4a2faf8caea747789d71f1e717f7f8 (diff) | |
V2.11.0 rc1 fixes (#1029)
* Use unix timestamp to transmit ban duration
* Cleanup compiler warning due to narrowing conversion
* Fix preanim not being visible
This is apparently not a feature we want from WebAO :^)
* Bump to RC2
* Use std::chrono instead
* Remove random include and debug call
| -rw-r--r-- | CMakeLists.txt | 6 | ||||
| -rw-r--r-- | data/ui/moderator_action_dialog.ui | 57 | ||||
| -rw-r--r-- | src/animationlayer.cpp | 1 | ||||
| -rw-r--r-- | src/aoapplication.cpp | 2 | ||||
| -rw-r--r-- | src/aoapplication.h | 8 | ||||
| -rw-r--r-- | src/widgets/moderator_dialog.cpp | 14 | ||||
| -rw-r--r-- | src/widgets/moderator_dialog.h | 4 |
7 files changed, 60 insertions, 32 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 346f8874..ebaaae25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,10 +14,10 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) option(AO_BUILD_TESTS "Build test programs" ON) option(AO_ENABLE_DISCORD_RPC "Enable Discord Rich Presence" ON) -find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) -find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Network Widgets Concurrent WebSockets UiTools) +find_package(QT NAMES Qt6) +find_package(Qt6 REQUIRED COMPONENTS Core Gui Network Widgets Concurrent WebSockets UiTools) -add_executable(Attorney_Online +qt_add_executable(Attorney_Online src/aoapplication.cpp src/aoapplication.h src/aoblipplayer.cpp diff --git a/data/ui/moderator_action_dialog.ui b/data/ui/moderator_action_dialog.ui index 723db979..a4290c44 100644 --- a/data/ui/moderator_action_dialog.ui +++ b/data/ui/moderator_action_dialog.ui @@ -19,20 +19,10 @@ <property name="horizontalSpacing"> <number>6</number> </property> - <item row="1" column="3"> - <widget class="QCheckBox" name="permanent"> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Permanent</string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="duration_label"> + <item row="0" column="0"> + <widget class="QLabel" name="action_label"> <property name="text"> - <string>Duration</string> + <string>Action</string> </property> </widget> </item> @@ -43,15 +33,22 @@ </property> </widget> </item> - <item row="0" column="0"> - <widget class="QLabel" name="action_label"> + <item row="1" column="0"> + <widget class="QLabel" name="duration_label"> <property name="text"> - <string>Action</string> + <string>Duration</string> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QSpinBox" name="duration_mm"> + <property name="suffix"> + <string> Minute(s)</string> </property> </widget> </item> - <item row="1" column="1" colspan="2"> - <widget class="QSpinBox" name="duration"> + <item row="1" column="2"> + <widget class="QSpinBox" name="duration_hh"> <property name="enabled"> <bool>true</bool> </property> @@ -59,11 +56,31 @@ <string> Hour(s)</string> </property> <property name="minimum"> - <number>1</number> + <number>0</number> </property> <property name="maximum"> <number>876000</number> </property> + <property name="value"> + <number>0</number> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QSpinBox" name="duration_dd"> + <property name="suffix"> + <string> Day(s)</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QCheckBox" name="permanent"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>Permanent</string> + </property> </widget> </item> </layout> @@ -116,7 +133,7 @@ li.checked::marker { content: "\2612"; } <connection> <sender>permanent</sender> <signal>clicked(bool)</signal> - <receiver>duration</receiver> + <receiver>duration_hh</receiver> <slot>setDisabled(bool)</slot> <hints> <hint type="sourcelabel"> diff --git a/src/animationlayer.cpp b/src/animationlayer.cpp index a1084eda..7ffe1d7f 100644 --- a/src/animationlayer.cpp +++ b/src/animationlayer.cpp @@ -65,6 +65,7 @@ void AnimationLayer::startPlayback() } resetData(); m_processing = true; + setVisible(true); Q_EMIT startedPlayback(); frameTicker(); } diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp index dd5821db..da7c1e2b 100644 --- a/src/aoapplication.cpp +++ b/src/aoapplication.cpp @@ -119,7 +119,7 @@ void AOApplication::destruct_courtroom() QString AOApplication::get_version_string() { - return QString::number(RELEASE) + "." + QString::number(MAJOR_VERSION) + "." + QString::number(MINOR_VERSION) + " RC1"; + return QString::number(RELEASE) + "." + QString::number(MAJOR_VERSION) + "." + QString::number(MINOR_VERSION) + " RC2"; } QString AOApplication::find_image(QStringList p_list) diff --git a/src/aoapplication.h b/src/aoapplication.h index f0d3d81c..e9477e0c 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 uint qHash(const VPath &key, uint seed = qGlobalQHashSeed()) +inline size_t qHash(const VPath &key, uint seed = qGlobalQHashSeed()) { return qHash(key.toQString(), seed); } @@ -338,9 +338,9 @@ public: private: QVector<ServerInfo> server_list; - QHash<uint, QString> asset_lookup_cache; - QHash<uint, QString> dir_listing_cache; - QSet<uint> dir_listing_exist_cache; + QHash<size_t, QString> asset_lookup_cache; + QHash<size_t, QString> dir_listing_cache; + QSet<size_t> dir_listing_exist_cache; public Q_SLOTS: void server_connected(); diff --git a/src/widgets/moderator_dialog.cpp b/src/widgets/moderator_dialog.cpp index 11b99ccf..a39840fe 100644 --- a/src/widgets/moderator_dialog.cpp +++ b/src/widgets/moderator_dialog.cpp @@ -9,6 +9,7 @@ #include <QMessageBox> #include <QUiLoader> #include <QVBoxLayout> +#include <chrono> const QString ModeratorDialog::UI_FILE_PATH = "moderator_action_dialog.ui"; @@ -31,7 +32,9 @@ ModeratorDialog::ModeratorDialog(int clientId, bool ban, AOApplication *ao_app, layout->addWidget(ui_widget); FROM_UI(QComboBox, action); - FROM_UI(QSpinBox, duration); + FROM_UI(QSpinBox, duration_mm); + FROM_UI(QSpinBox, duration_hh); + FROM_UI(QSpinBox, duration_dd); FROM_UI(QLabel, duration_label); FROM_UI(QCheckBox, permanent); FROM_UI(QTextEdit, details); @@ -46,7 +49,9 @@ ModeratorDialog::ModeratorDialog(int clientId, bool ban, AOApplication *ao_app, ui_action->addItem(tr("Kick")); } - ui_duration->setVisible(m_ban); + ui_duration_mm->setVisible(m_ban); + ui_duration_hh->setVisible(m_ban); + ui_duration_dd->setVisible(m_ban); ui_duration_label->setVisible(m_ban); ui_permanent->setVisible(m_ban); @@ -87,7 +92,10 @@ void ModeratorDialog::onAcceptedClicked() } else { - arglist.append(QString::number(ui_duration->value())); + qint64 duration = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::days(ui_duration_dd->value())).count(); + duration = duration + std::chrono::duration_cast<std::chrono::seconds>(std::chrono::hours(ui_duration_hh->value())).count(); + duration = duration + std::chrono::duration_cast<std::chrono::seconds>(std::chrono::minutes(ui_duration_mm->value())).count(); + arglist.append(QString::number(duration)); } } else diff --git a/src/widgets/moderator_dialog.h b/src/widgets/moderator_dialog.h index 648f979d..558080f0 100644 --- a/src/widgets/moderator_dialog.h +++ b/src/widgets/moderator_dialog.h @@ -27,7 +27,9 @@ private: QWidget *ui_widget; QComboBox *ui_action; - QSpinBox *ui_duration; + QSpinBox *ui_duration_mm; + QSpinBox *ui_duration_hh; + QSpinBox *ui_duration_dd; QLabel *ui_duration_label; QCheckBox *ui_permanent; QTextEdit *ui_details; |
