diff --git a/CMakeLists.txt b/CMakeLists.txt index 346f887..ebaaae2 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 723db97..a4290c4 100644 --- a/data/ui/moderator_action_dialog.ui +++ b/data/ui/moderator_action_dialog.ui @@ -19,20 +19,10 @@ 6 - - - - true - + + - Permanent - - - - - - - Duration + Action @@ -43,15 +33,22 @@ - - + + - Action + Duration - - + + + + Minute(s) + + + + + true @@ -59,11 +56,31 @@ Hour(s) - 1 + 0 876000 + + 0 + + + + + + + Day(s) + + + + + + + true + + + Permanent + @@ -116,7 +133,7 @@ li.checked::marker { content: "\2612"; } permanent clicked(bool) - duration + duration_hh setDisabled(bool) diff --git a/src/animationlayer.cpp b/src/animationlayer.cpp index a1084ed..7ffe1d7 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 dd5821d..da7c1e2 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 f0d3d81..e9477e0 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 server_list; - QHash asset_lookup_cache; - QHash dir_listing_cache; - QSet dir_listing_exist_cache; + QHash asset_lookup_cache; + QHash dir_listing_cache; + QSet 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 11b99cc..a39840f 100644 --- a/src/widgets/moderator_dialog.cpp +++ b/src/widgets/moderator_dialog.cpp @@ -9,6 +9,7 @@ #include #include #include +#include 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::days(ui_duration_dd->value())).count(); + duration = duration + std::chrono::duration_cast(std::chrono::hours(ui_duration_hh->value())).count(); + duration = duration + std::chrono::duration_cast(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 648f979..558080f 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;