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 updateLibraries();
public slots:
void stop();
void cancel();

View File

@ -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()

View File

@ -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);

View File

@ -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));

View File

@ -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();

View File

@ -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"));

View File

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