diff --git a/YACReaderLibrary/libraries_update_coordinator.h b/YACReaderLibrary/libraries_update_coordinator.h index 205f8a89..3daa4975 100644 --- a/YACReaderLibrary/libraries_update_coordinator.h +++ b/YACReaderLibrary/libraries_update_coordinator.h @@ -15,6 +15,8 @@ public: void init(); void updateLibraries(); + +public slots: void stop(); void cancel(); diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 09434508..b79b5ba9 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -513,6 +513,8 @@ void LibraryWindow::setupCoordinators() connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, this, &LibraryWindow::reloadCurrentLibrary); librariesUpdateCoordinator->init(); + + connect(sideBar->librariesTitle, &YACReaderTitledToolBar::cancelOperationRequested, librariesUpdateCoordinator, &LibrariesUpdateCoordinator::cancel); } void LibraryWindow::createActions() diff --git a/YACReaderLibrary/options_dialog.cpp b/YACReaderLibrary/options_dialog.cpp index 52a3337c..8275ea48 100644 --- a/YACReaderLibrary/options_dialog.cpp +++ b/YACReaderLibrary/options_dialog.cpp @@ -278,7 +278,7 @@ QWidget *OptionsDialog::createLibrariesTab() librariesBoxLayout->addWidget(updateLibrariesAtCertainTimeCheck); librariesBoxLayout->addLayout(updateLibrariesAtCertainTimeLayout); - librariesBoxLayout->addWidget(new QLabel(tr("WARNING! During library updates writes to the database are disabled!\nDon't schedule updates while you may be using the app actively."))); + librariesBoxLayout->addWidget(new QLabel(tr("WARNING! During library updates writes to the database are disabled!\nDon't schedule updates while you may be using the app actively.\nTo stop an automatic update tap on the loading indicator next to the Libraries title."))); auto librariesBox = new QGroupBox(tr("Libraries")); librariesBox->setLayout(librariesBoxLayout); diff --git a/custom_widgets/yacreader_busy_widget.cpp b/custom_widgets/yacreader_busy_widget.cpp index a4cb77f4..6fd5ed23 100644 --- a/custom_widgets/yacreader_busy_widget.cpp +++ b/custom_widgets/yacreader_busy_widget.cpp @@ -63,6 +63,12 @@ BusyIndicator::IndicatorStyle BusyIndicator::indicatorStyle() const return m_style; } +void BusyIndicator::mouseReleaseEvent(QMouseEvent *event) +{ + Q_UNUSED(event); + emit clicked(); +} + QPixmap BusyIndicator::generatePixmap(int side) { QPixmap pixmap(QSize(side, side)); diff --git a/custom_widgets/yacreader_busy_widget.h b/custom_widgets/yacreader_busy_widget.h index 83a32c27..35c90f4b 100644 --- a/custom_widgets/yacreader_busy_widget.h +++ b/custom_widgets/yacreader_busy_widget.h @@ -22,15 +22,17 @@ public: explicit BusyIndicator(QWidget *parent = 0, int size = 30); - void paintEvent(QPaintEvent *); - QSize minimumSizeHint() const; - QSize sizeHint() const; + void paintEvent(QPaintEvent *) override; + QSize minimumSizeHint() const override; + QSize sizeHint() const override; void setIndicatorStyle(IndicatorStyle); void setColor(QColor color); IndicatorStyle indicatorStyle() const; + void mouseReleaseEvent(QMouseEvent *event) override; signals: + void clicked(); private slots: void rotate(); diff --git a/custom_widgets/yacreader_titled_toolbar.cpp b/custom_widgets/yacreader_titled_toolbar.cpp index e2c71304..51a955d5 100644 --- a/custom_widgets/yacreader_titled_toolbar.cpp +++ b/custom_widgets/yacreader_titled_toolbar.cpp @@ -71,6 +71,7 @@ YACReaderTitledToolBar::YACReaderTitledToolBar(const QString &title, QWidget *pa nameLabel = new DropShadowLabel(this); busyIndicator = new BusyIndicator(this, 12); + connect(busyIndicator, &BusyIndicator::clicked, this, &YACReaderTitledToolBar::cancelOperationRequested); busyIndicator->setIndicatorStyle(BusyIndicator::StyleArc); #ifdef Y_MAC_UI busyIndicator->setColor(QColor("#808080")); diff --git a/custom_widgets/yacreader_titled_toolbar.h b/custom_widgets/yacreader_titled_toolbar.h index 701e2154..de1386aa 100644 --- a/custom_widgets/yacreader_titled_toolbar.h +++ b/custom_widgets/yacreader_titled_toolbar.h @@ -34,6 +34,7 @@ public: explicit YACReaderTitledToolBar(const QString &title, QWidget *parent = 0); signals: + void cancelOperationRequested(); public slots: void addAction(QAction *action);