Skip to content

Commit 725dbff

Browse files
committed
feat: Add network profiler view in debug tools.
1 parent 2a646f4 commit 725dbff

8 files changed

Lines changed: 147 additions & 9 deletions

File tree

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ qt6_wrap_ui(
196196
src/mainwindow.ui
197197
src/widget/about/aboutfriendform.ui
198198
src/widget/form/debug/debuglog.ui
199+
src/widget/form/debug/debugnetprof.ui
199200
src/widget/form/debug/debugobjecttree.ui
200201
src/widget/form/loadhistorydialog.ui
201202
src/widget/form/profileform.ui
@@ -503,6 +504,8 @@ set(${PROJECT_NAME}_SOURCES
503504
src/widget/form/chatform.h
504505
src/widget/form/debug/debuglog.cpp
505506
src/widget/form/debug/debuglog.h
507+
src/widget/form/debug/debugnetprof.cpp
508+
src/widget/form/debug/debugnetprof.h
506509
src/widget/form/debug/debugobjecttree.cpp
507510
src/widget/form/debug/debugobjecttree.h
508511
src/widget/form/debugwidget.cpp

src/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ qt_moc(
7979
"widget/form/conferenceinviteform.h",
8080
"widget/form/conferenceinvitewidget.h",
8181
"widget/form/debug/debuglog.h",
82+
"widget/form/debug/debugnetprof.h",
8283
"widget/form/debug/debugobjecttree.h",
8384
"widget/form/debugwidget.h",
8485
"widget/form/filesform.h",

src/widget/form/debug/debuglog.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,10 @@
99
#include "src/model/debug/debuglogmodel.h"
1010
#include "src/persistence/paths.h"
1111
#include "src/widget/style.h"
12-
#include "src/widget/tool/recursivesignalblocker.h"
1312
#include "src/widget/translator.h"
1413

15-
#include <tox/tox.h>
16-
17-
#include <QDebug>
18-
#include <QDesktopServices>
1914
#include <QFile>
2015
#include <QMetaEnum>
21-
#include <QPushButton>
2216
#include <QTimer>
2317

2418
#include <memory>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/* SPDX-License-Identifier: GPL-3.0-or-later
2+
* Copyright © 2014-2019 by The qTox Project Contributors
3+
* Copyright © 2024 The TokTok team.
4+
*/
5+
6+
#include "debugnetprof.h"
7+
#include "ui_debugnetprof.h"
8+
9+
#include "src/model/debug/debuglogmodel.h"
10+
#include "src/persistence/paths.h"
11+
#include "src/widget/style.h"
12+
#include "src/widget/translator.h"
13+
14+
#include <tox/tox.h>
15+
16+
#include <QTimer>
17+
18+
#include <memory>
19+
20+
DebugNetProfForm::DebugNetProfForm(Style& style, QWidget* parent)
21+
: GenericForm{QPixmap(":/img/settings/general.png"), style, parent}
22+
, ui_{std::make_unique<Ui::DebugNetProf>()}
23+
, reloadTimer_{new QTimer(this)}
24+
{
25+
ui_->setupUi(this);
26+
27+
// Reload logs every 5 seconds
28+
reloadTimer_->start(5000);
29+
30+
Translator::registerHandler([this] { retranslateUi(); }, this);
31+
}
32+
33+
DebugNetProfForm::~DebugNetProfForm()
34+
{
35+
Translator::unregister(this);
36+
}
37+
38+
/**
39+
* @brief Retranslate all elements in the form.
40+
*/
41+
void DebugNetProfForm::retranslateUi()
42+
{
43+
ui_->retranslateUi(this);
44+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/* SPDX-License-Identifier: GPL-3.0-or-later
2+
* Copyright © 2024 The TokTok team.
3+
*/
4+
5+
#pragma once
6+
7+
#include "src/widget/form/settings/genericsettings.h"
8+
9+
#include <memory>
10+
11+
class Paths;
12+
class QTimer;
13+
class Style;
14+
15+
namespace Ui {
16+
class DebugNetProf;
17+
}
18+
19+
class DebugNetProfForm final : public GenericForm
20+
{
21+
Q_OBJECT
22+
public:
23+
DebugNetProfForm(Style& style, QWidget* parent);
24+
~DebugNetProfForm() override;
25+
QString getFormName() final
26+
{
27+
return tr("Network Profiler");
28+
}
29+
30+
private:
31+
void retranslateUi();
32+
33+
private:
34+
std::unique_ptr<Ui::DebugNetProf> ui_;
35+
QTimer* reloadTimer_;
36+
};
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>DebugNetProf</class>
4+
<widget class="QWidget" name="DebugNetProf">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>530</width>
10+
<height>553</height>
11+
</rect>
12+
</property>
13+
<property name="sizePolicy">
14+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
15+
<horstretch>0</horstretch>
16+
<verstretch>0</verstretch>
17+
</sizepolicy>
18+
</property>
19+
<property name="windowTitle">
20+
<string notr="true">Form</string>
21+
</property>
22+
<layout class="QVBoxLayout" name="verticalLayout">
23+
<item>
24+
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0">
25+
<item>
26+
<widget class="QGroupBox" name="netProfGroup">
27+
<property name="sizePolicy">
28+
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
29+
<horstretch>0</horstretch>
30+
<verstretch>1</verstretch>
31+
</sizepolicy>
32+
</property>
33+
<property name="title">
34+
<string>Network Profile</string>
35+
</property>
36+
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,0">
37+
<item>
38+
<layout class="QHBoxLayout" name="horizontalLayout">
39+
<item>
40+
<widget class="QCheckBox" name="cbAutoReload">
41+
<property name="text">
42+
<string>Auto-reload</string>
43+
</property>
44+
</widget>
45+
</item>
46+
</layout>
47+
</item>
48+
<item>
49+
<widget class="QTableView" name="netProf"/>
50+
</item>
51+
</layout>
52+
</widget>
53+
</item>
54+
</layout>
55+
</item>
56+
</layout>
57+
</widget>
58+
<resources/>
59+
<connections/>
60+
</ui>

src/widget/form/debugwidget.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#include "src/widget/contentlayout.h"
88
#include "src/widget/form/debug/debuglog.h"
9+
#include "src/widget/form/debug/debugnetprof.h"
910
#include "src/widget/form/debug/debugobjecttree.h"
1011
#include "src/widget/translator.h"
1112
#include "src/widget/widget.h"
@@ -15,8 +16,6 @@
1516
#include <QVBoxLayout>
1617
#include <QWindow>
1718

18-
#include <memory>
19-
2019
DebugWidget::DebugWidget(Paths& paths, Style& style, Widget* parent)
2120
: QWidget(parent, Qt::Window)
2221
{
@@ -31,6 +30,7 @@ DebugWidget::DebugWidget(Paths& paths, Style& style, Widget* parent)
3130
dbgForms = {
3231
new DebugLogForm(paths, style, this),
3332
new DebugObjectTree(style, this),
33+
new DebugNetProfForm(style, this),
3434
};
3535

3636
for (auto* dbgForm : dbgForms)

src/widget/form/debugwidget.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ private slots:
3636
private:
3737
QVBoxLayout* bodyLayout;
3838
QTabWidget* debugWidgets;
39-
std::array<GenericForm*, 2> dbgForms;
39+
std::array<GenericForm*, 3> dbgForms;
4040
int currentIndex;
4141
};

0 commit comments

Comments
 (0)