diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fc08356ce..8928a9161 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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) diff --git a/src/gui/properties/CMakeLists.txt b/src/gui/properties/CMakeLists.txt index b5c134951..52ddbea2e 100644 --- a/src/gui/properties/CMakeLists.txt +++ b/src/gui/properties/CMakeLists.txt @@ -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) diff --git a/src/gui/properties/speedwidget.cpp b/src/gui/properties/speedwidget.cpp index c0e63347f..1d4f71b16 100644 --- a/src/gui/properties/speedwidget.cpp +++ b/src/gui/properties/speedwidget.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include @@ -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) 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(); } diff --git a/src/gui/properties/speedwidget.h b/src/gui/properties/speedwidget.h index c4d366819..222f802ba 100644 --- a/src/gui/properties/speedwidget.h +++ b/src/gui/properties/speedwidget.h @@ -31,7 +31,6 @@ #include #include -#include #include "speedplotview.h" @@ -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: QMenu *m_graphsMenu; QList m_graphsMenuActions; QSignalMapper *m_graphsSignalMapper; - - QFuture m_updateFuture; - bool m_isUpdating; }; #endif // SPEEDWIDGET_H diff --git a/src/src.pro b/src/src.pro index 17be690e0..f74974c6c 100644 --- a/src/src.pro +++ b/src/src.pro @@ -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