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
This commit is contained in:
Salanto 2024-07-31 11:55:25 +02:00 committed by GitHub
parent e82726ba5b
commit 4d1b0517e3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 60 additions and 32 deletions

View File

@ -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

View File

@ -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>
<item row="0" column="0">
<widget class="QLabel" name="action_label">
<property name="text">
<string>Permanent</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="duration_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="1" colspan="2">
<widget class="QSpinBox" name="duration">
<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="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: &quot;\2612&quot;; }
<connection>
<sender>permanent</sender>
<signal>clicked(bool)</signal>
<receiver>duration</receiver>
<receiver>duration_hh</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">

View File

@ -65,6 +65,7 @@ void AnimationLayer::startPlayback()
}
resetData();
m_processing = true;
setVisible(true);
Q_EMIT startedPlayback();
frameTicker();
}

View File

@ -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)

View File

@ -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();

View File

@ -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

View File

@ -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;