Browse Source

Merge pull request #7529 from dzmat/speedwidget_qtconcurrent_removal

Excess QtConcurrent usage removal
adaptive-webui-19844
Vladimir Golovnev 7 years ago committed by GitHub
parent
commit
c72fb92318
  1. 2
      src/CMakeLists.txt
  2. 2
      src/gui/properties/CMakeLists.txt
  3. 53
      src/gui/properties/speedwidget.cpp
  4. 7
      src/gui/properties/speedwidget.h
  5. 2
      src/src.pro

2
src/CMakeLists.txt

@ -13,7 +13,7 @@ find_package(LibtorrentRasterbar REQUIRED) @@ -13,7 +13,7 @@ find_package(LibtorrentRasterbar REQUIRED)
# Qt
list(APPEND QBT_QT_COMPONENTS Core Network Xml)
if (GUI)
list (APPEND QBT_QT_COMPONENTS Concurrent Gui Svg Widgets)
list (APPEND QBT_QT_COMPONENTS Gui Svg Widgets)
if (WIN32)
list (APPEND QBT_QT_COMPONENTS WinExtras)
endif(WIN32)

2
src/gui/properties/CMakeLists.txt

@ -44,4 +44,4 @@ speedplotview.cpp @@ -44,4 +44,4 @@ speedplotview.cpp
add_library(qbt_properties STATIC ${QBT_PROPERTIES_HEADERS} ${QBT_PROPERTIES_SOURCES} ${QBT_PROPERTIES_FORMS})
target_link_libraries(qbt_properties qbt_base)
target_link_libraries(qbt_properties Qt5::Widgets Qt5::Concurrent)
target_link_libraries(qbt_properties Qt5::Widgets)

53
src/gui/properties/speedwidget.cpp

@ -34,6 +34,7 @@ @@ -34,6 +34,7 @@
#include <QMenu>
#include <QSignalMapper>
#include <QThread>
#include <QTimer>
#include <libtorrent/session_status.hpp>
@ -116,8 +117,9 @@ SpeedWidget::SpeedWidget(PropertiesWidget *parent) @@ -116,8 +117,9 @@ SpeedWidget::SpeedWidget(PropertiesWidget *parent)
loadSettings();
m_isUpdating = true;
m_updateFuture = QtConcurrent::run(this, &SpeedWidget::update);
QTimer *localUpdateTimer = new QTimer(this);
connect(localUpdateTimer, &QTimer::timeout, this, &SpeedWidget::update);
localUpdateTimer->start(1000);
m_plot->show();
}
@ -125,43 +127,28 @@ SpeedWidget::SpeedWidget(PropertiesWidget *parent) @@ -125,43 +127,28 @@ SpeedWidget::SpeedWidget(PropertiesWidget *parent)
SpeedWidget::~SpeedWidget()
{
qDebug("SpeedWidget::~SpeedWidget() ENTER");
m_isUpdating = false;
m_updateFuture.waitForFinished();
saveSettings();
qDebug("SpeedWidget::~SpeedWidget() EXIT");
}
void SpeedWidget::update()
{
while (m_isUpdating) {
const BitTorrent::SessionStatus &btStatus = BitTorrent::Session::instance()->status();
SpeedPlotView::PointData point;
point.x = QDateTime::currentDateTime().toTime_t();
point.y[SpeedPlotView::UP] = btStatus.uploadRate;
point.y[SpeedPlotView::DOWN] = btStatus.downloadRate;
point.y[SpeedPlotView::PAYLOAD_UP] = btStatus.payloadUploadRate;
point.y[SpeedPlotView::PAYLOAD_DOWN] = btStatus.payloadDownloadRate;
point.y[SpeedPlotView::OVERHEAD_UP] = btStatus.ipOverheadUploadRate;
point.y[SpeedPlotView::OVERHEAD_DOWN] = btStatus.ipOverheadDownloadRate;
point.y[SpeedPlotView::DHT_UP] = btStatus.dhtUploadRate;
point.y[SpeedPlotView::DHT_DOWN] = btStatus.dhtDownloadRate;
point.y[SpeedPlotView::TRACKER_UP] = btStatus.trackerUploadRate;
point.y[SpeedPlotView::TRACKER_DOWN] = btStatus.trackerDownloadRate;
m_plot->pushPoint(point);
QMetaObject::invokeMethod(this, "graphUpdate", Qt::QueuedConnection);
QThread::msleep(1000);
}
}
void SpeedWidget::graphUpdate()
{
const BitTorrent::SessionStatus &btStatus = BitTorrent::Session::instance()->status();
SpeedPlotView::PointData point;
point.x = QDateTime::currentDateTime().toTime_t();
point.y[SpeedPlotView::UP] = btStatus.uploadRate;
point.y[SpeedPlotView::DOWN] = btStatus.downloadRate;
point.y[SpeedPlotView::PAYLOAD_UP] = btStatus.payloadUploadRate;
point.y[SpeedPlotView::PAYLOAD_DOWN] = btStatus.payloadDownloadRate;
point.y[SpeedPlotView::OVERHEAD_UP] = btStatus.ipOverheadUploadRate;
point.y[SpeedPlotView::OVERHEAD_DOWN] = btStatus.ipOverheadDownloadRate;
point.y[SpeedPlotView::DHT_UP] = btStatus.dhtUploadRate;
point.y[SpeedPlotView::DHT_DOWN] = btStatus.dhtDownloadRate;
point.y[SpeedPlotView::TRACKER_UP] = btStatus.trackerUploadRate;
point.y[SpeedPlotView::TRACKER_DOWN] = btStatus.trackerDownloadRate;
m_plot->pushPoint(point);
m_plot->replot();
}

7
src/gui/properties/speedwidget.h

@ -31,7 +31,6 @@ @@ -31,7 +31,6 @@
#include <QWidget>
#include <QComboBox>
#include <QtConcurrentRun>
#include "speedplotview.h"
@ -64,12 +63,11 @@ public: @@ -64,12 +63,11 @@ public:
private slots:
void onPeriodChange(int period);
void onGraphChange(int id);
void update();
private:
void update();
void loadSettings();
void saveSettings() const;
Q_INVOKABLE void graphUpdate();
QVBoxLayout *m_layout;
QHBoxLayout *m_hlayout;
@ -81,9 +79,6 @@ private: @@ -81,9 +79,6 @@ private:
QMenu *m_graphsMenu;
QList<QAction *> m_graphsMenuActions;
QSignalMapper *m_graphsSignalMapper;
QFuture<void> m_updateFuture;
bool m_isUpdating;
};
#endif // SPEEDWIDGET_H

2
src/src.pro

@ -19,7 +19,7 @@ nogui { @@ -19,7 +19,7 @@ nogui {
DEFINES += DISABLE_GUI
} else {
TARGET = qbittorrent
QT += xml concurrent svg widgets
QT += xml svg widgets
CONFIG(static) {
DEFINES += QBT_STATIC_QT

Loading…
Cancel
Save