Make automatic updates cancelable by the user

This commit is contained in:
Luis Ángel San Martín 2023-08-23 21:50:21 +02:00
parent b709e000cf
commit 8e2910607d
7 changed files with 18 additions and 4 deletions

View File

@ -15,6 +15,8 @@ public:
void init(); void init();
void updateLibraries(); void updateLibraries();
public slots:
void stop(); void stop();
void cancel(); void cancel();

View File

@ -513,6 +513,8 @@ void LibraryWindow::setupCoordinators()
connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, this, &LibraryWindow::reloadCurrentLibrary); connect(librariesUpdateCoordinator, &LibrariesUpdateCoordinator::updateEnded, this, &LibraryWindow::reloadCurrentLibrary);
librariesUpdateCoordinator->init(); librariesUpdateCoordinator->init();
connect(sideBar->librariesTitle, &YACReaderTitledToolBar::cancelOperationRequested, librariesUpdateCoordinator, &LibrariesUpdateCoordinator::cancel);
} }
void LibraryWindow::createActions() void LibraryWindow::createActions()

View File

@ -278,7 +278,7 @@ QWidget *OptionsDialog::createLibrariesTab()
librariesBoxLayout->addWidget(updateLibrariesAtCertainTimeCheck); librariesBoxLayout->addWidget(updateLibrariesAtCertainTimeCheck);
librariesBoxLayout->addLayout(updateLibrariesAtCertainTimeLayout); 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")); auto librariesBox = new QGroupBox(tr("Libraries"));
librariesBox->setLayout(librariesBoxLayout); librariesBox->setLayout(librariesBoxLayout);

View File

@ -63,6 +63,12 @@ BusyIndicator::IndicatorStyle BusyIndicator::indicatorStyle() const
return m_style; return m_style;
} }
void BusyIndicator::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event);
emit clicked();
}
QPixmap BusyIndicator::generatePixmap(int side) QPixmap BusyIndicator::generatePixmap(int side)
{ {
QPixmap pixmap(QSize(side, side)); QPixmap pixmap(QSize(side, side));

View File

@ -22,15 +22,17 @@ public:
explicit BusyIndicator(QWidget *parent = 0, int size = 30); explicit BusyIndicator(QWidget *parent = 0, int size = 30);
void paintEvent(QPaintEvent *); void paintEvent(QPaintEvent *) override;
QSize minimumSizeHint() const; QSize minimumSizeHint() const override;
QSize sizeHint() const; QSize sizeHint() const override;
void setIndicatorStyle(IndicatorStyle); void setIndicatorStyle(IndicatorStyle);
void setColor(QColor color); void setColor(QColor color);
IndicatorStyle indicatorStyle() const; IndicatorStyle indicatorStyle() const;
void mouseReleaseEvent(QMouseEvent *event) override;
signals: signals:
void clicked();
private slots: private slots:
void rotate(); void rotate();

View File

@ -71,6 +71,7 @@ YACReaderTitledToolBar::YACReaderTitledToolBar(const QString &title, QWidget *pa
nameLabel = new DropShadowLabel(this); nameLabel = new DropShadowLabel(this);
busyIndicator = new BusyIndicator(this, 12); busyIndicator = new BusyIndicator(this, 12);
connect(busyIndicator, &BusyIndicator::clicked, this, &YACReaderTitledToolBar::cancelOperationRequested);
busyIndicator->setIndicatorStyle(BusyIndicator::StyleArc); busyIndicator->setIndicatorStyle(BusyIndicator::StyleArc);
#ifdef Y_MAC_UI #ifdef Y_MAC_UI
busyIndicator->setColor(QColor("#808080")); busyIndicator->setColor(QColor("#808080"));

View File

@ -34,6 +34,7 @@ public:
explicit YACReaderTitledToolBar(const QString &title, QWidget *parent = 0); explicit YACReaderTitledToolBar(const QString &title, QWidget *parent = 0);
signals: signals:
void cancelOperationRequested();
public slots: public slots:
void addAction(QAction *action); void addAction(QAction *action);