Skip to content

Commit 4d1b051

Browse files
authored
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
1 parent e82726b commit 4d1b051

7 files changed

Lines changed: 60 additions & 32 deletions

File tree

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
1414
option(AO_BUILD_TESTS "Build test programs" ON)
1515
option(AO_ENABLE_DISCORD_RPC "Enable Discord Rich Presence" ON)
1616

17-
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
18-
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Network Widgets Concurrent WebSockets UiTools)
17+
find_package(QT NAMES Qt6)
18+
find_package(Qt6 REQUIRED COMPONENTS Core Gui Network Widgets Concurrent WebSockets UiTools)
1919

20-
add_executable(Attorney_Online
20+
qt_add_executable(Attorney_Online
2121
src/aoapplication.cpp
2222
src/aoapplication.h
2323
src/aoblipplayer.cpp

data/ui/moderator_action_dialog.ui

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,10 @@
1919
<property name="horizontalSpacing">
2020
<number>6</number>
2121
</property>
22-
<item row="1" column="3">
23-
<widget class="QCheckBox" name="permanent">
24-
<property name="enabled">
25-
<bool>true</bool>
26-
</property>
27-
<property name="text">
28-
<string>Permanent</string>
29-
</property>
30-
</widget>
31-
</item>
32-
<item row="1" column="0">
33-
<widget class="QLabel" name="duration_label">
22+
<item row="0" column="0">
23+
<widget class="QLabel" name="action_label">
3424
<property name="text">
35-
<string>Duration</string>
25+
<string>Action</string>
3626
</property>
3727
</widget>
3828
</item>
@@ -43,27 +33,54 @@
4333
</property>
4434
</widget>
4535
</item>
46-
<item row="0" column="0">
47-
<widget class="QLabel" name="action_label">
36+
<item row="1" column="0">
37+
<widget class="QLabel" name="duration_label">
4838
<property name="text">
49-
<string>Action</string>
39+
<string>Duration</string>
40+
</property>
41+
</widget>
42+
</item>
43+
<item row="1" column="3">
44+
<widget class="QSpinBox" name="duration_mm">
45+
<property name="suffix">
46+
<string> Minute(s)</string>
5047
</property>
5148
</widget>
5249
</item>
53-
<item row="1" column="1" colspan="2">
54-
<widget class="QSpinBox" name="duration">
50+
<item row="1" column="2">
51+
<widget class="QSpinBox" name="duration_hh">
5552
<property name="enabled">
5653
<bool>true</bool>
5754
</property>
5855
<property name="suffix">
5956
<string> Hour(s)</string>
6057
</property>
6158
<property name="minimum">
62-
<number>1</number>
59+
<number>0</number>
6360
</property>
6461
<property name="maximum">
6562
<number>876000</number>
6663
</property>
64+
<property name="value">
65+
<number>0</number>
66+
</property>
67+
</widget>
68+
</item>
69+
<item row="1" column="1">
70+
<widget class="QSpinBox" name="duration_dd">
71+
<property name="suffix">
72+
<string> Day(s)</string>
73+
</property>
74+
</widget>
75+
</item>
76+
<item row="2" column="1">
77+
<widget class="QCheckBox" name="permanent">
78+
<property name="enabled">
79+
<bool>true</bool>
80+
</property>
81+
<property name="text">
82+
<string>Permanent</string>
83+
</property>
6784
</widget>
6885
</item>
6986
</layout>
@@ -116,7 +133,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
116133
<connection>
117134
<sender>permanent</sender>
118135
<signal>clicked(bool)</signal>
119-
<receiver>duration</receiver>
136+
<receiver>duration_hh</receiver>
120137
<slot>setDisabled(bool)</slot>
121138
<hints>
122139
<hint type="sourcelabel">

src/animationlayer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ void AnimationLayer::startPlayback()
6565
}
6666
resetData();
6767
m_processing = true;
68+
setVisible(true);
6869
Q_EMIT startedPlayback();
6970
frameTicker();
7071
}

src/aoapplication.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ void AOApplication::destruct_courtroom()
119119

120120
QString AOApplication::get_version_string()
121121
{
122-
return QString::number(RELEASE) + "." + QString::number(MAJOR_VERSION) + "." + QString::number(MINOR_VERSION) + " RC1";
122+
return QString::number(RELEASE) + "." + QString::number(MAJOR_VERSION) + "." + QString::number(MINOR_VERSION) + " RC2";
123123
}
124124

125125
QString AOApplication::find_image(QStringList p_list)

src/aoapplication.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class VPath : QString
4343
inline VPath operator+(const VPath &str) const { return VPath(this->toQString() + str.toQString()); }
4444
};
4545

46-
inline uint qHash(const VPath &key, uint seed = qGlobalQHashSeed())
46+
inline size_t qHash(const VPath &key, uint seed = qGlobalQHashSeed())
4747
{
4848
return qHash(key.toQString(), seed);
4949
}
@@ -338,9 +338,9 @@ class AOApplication : public QObject
338338

339339
private:
340340
QVector<ServerInfo> server_list;
341-
QHash<uint, QString> asset_lookup_cache;
342-
QHash<uint, QString> dir_listing_cache;
343-
QSet<uint> dir_listing_exist_cache;
341+
QHash<size_t, QString> asset_lookup_cache;
342+
QHash<size_t, QString> dir_listing_cache;
343+
QSet<size_t> dir_listing_exist_cache;
344344

345345
public Q_SLOTS:
346346
void server_connected();

src/widgets/moderator_dialog.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <QMessageBox>
1010
#include <QUiLoader>
1111
#include <QVBoxLayout>
12+
#include <chrono>
1213

1314
const QString ModeratorDialog::UI_FILE_PATH = "moderator_action_dialog.ui";
1415

@@ -31,7 +32,9 @@ ModeratorDialog::ModeratorDialog(int clientId, bool ban, AOApplication *ao_app,
3132
layout->addWidget(ui_widget);
3233

3334
FROM_UI(QComboBox, action);
34-
FROM_UI(QSpinBox, duration);
35+
FROM_UI(QSpinBox, duration_mm);
36+
FROM_UI(QSpinBox, duration_hh);
37+
FROM_UI(QSpinBox, duration_dd);
3538
FROM_UI(QLabel, duration_label);
3639
FROM_UI(QCheckBox, permanent);
3740
FROM_UI(QTextEdit, details);
@@ -46,7 +49,9 @@ ModeratorDialog::ModeratorDialog(int clientId, bool ban, AOApplication *ao_app,
4649
ui_action->addItem(tr("Kick"));
4750
}
4851

49-
ui_duration->setVisible(m_ban);
52+
ui_duration_mm->setVisible(m_ban);
53+
ui_duration_hh->setVisible(m_ban);
54+
ui_duration_dd->setVisible(m_ban);
5055
ui_duration_label->setVisible(m_ban);
5156
ui_permanent->setVisible(m_ban);
5257

@@ -87,7 +92,10 @@ void ModeratorDialog::onAcceptedClicked()
8792
}
8893
else
8994
{
90-
arglist.append(QString::number(ui_duration->value()));
95+
qint64 duration = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::days(ui_duration_dd->value())).count();
96+
duration = duration + std::chrono::duration_cast<std::chrono::seconds>(std::chrono::hours(ui_duration_hh->value())).count();
97+
duration = duration + std::chrono::duration_cast<std::chrono::seconds>(std::chrono::minutes(ui_duration_mm->value())).count();
98+
arglist.append(QString::number(duration));
9199
}
92100
}
93101
else

src/widgets/moderator_dialog.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ class ModeratorDialog : public QWidget
2727

2828
QWidget *ui_widget;
2929
QComboBox *ui_action;
30-
QSpinBox *ui_duration;
30+
QSpinBox *ui_duration_mm;
31+
QSpinBox *ui_duration_hh;
32+
QSpinBox *ui_duration_dd;
3133
QLabel *ui_duration_label;
3234
QCheckBox *ui_permanent;
3335
QTextEdit *ui_details;

0 commit comments

Comments
 (0)