Skip to content

Commit

Permalink
feat: add new setting to control monitoring when a source has no resu…
Browse files Browse the repository at this point in the history
…lts (fix #2918)
  • Loading branch information
Bionus committed Feb 27, 2023
1 parent 5896437 commit 057b472
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 4 deletions.
2 changes: 2 additions & 0 deletions src/gui/src/settings/options-window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ OptionsWindow::OptionsWindow(Profile *profile, ThemeLoader *themeLoader, QWidget
// Monitoring
settings->beginGroup("Monitoring");
ui->spinMonitoringStartupDelay->setValue(settings->value("startupDelay", 0).toInt());
ui->checkMonitoringEmptySources->setChecked(settings->value("emptySources", false).toBool());
ui->checkMonitoringEnableTray->setChecked(settings->value("enableTray", false).toBool());
ui->checkMonitoringMinimizeToTray->setChecked(settings->value("minimizeToTray", false).toBool());
ui->checkMonitoringCloseToTray->setChecked(settings->value("closeToTray", false).toBool());
Expand Down Expand Up @@ -1141,6 +1142,7 @@ void OptionsWindow::save()
// Monitoring
settings->beginGroup("Monitoring");
settings->setValue("startupDelay", ui->spinMonitoringStartupDelay->value());
settings->setValue("emptySources", ui->checkMonitoringEmptySources->isChecked());
settings->setValue("enableTray", ui->checkMonitoringEnableTray->isChecked());
settings->setValue("minimizeToTray", ui->checkMonitoringMinimizeToTray->isChecked());
settings->setValue("closeToTray", ui->checkMonitoringCloseToTray->isChecked());
Expand Down
13 changes: 10 additions & 3 deletions src/gui/src/settings/options-window.ui
Original file line number Diff line number Diff line change
Expand Up @@ -1152,8 +1152,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>473</width>
<height>466</height>
<width>100</width>
<height>30</height>
</rect>
</property>
<layout class="QVBoxLayout" name="scrollAreaWidgetLayout">
Expand Down Expand Up @@ -5064,7 +5064,7 @@
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<item row="2" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Tray icon</string>
Expand Down Expand Up @@ -5100,6 +5100,13 @@
</layout>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="checkMonitoringEmptySources">
<property name="text">
<string>Add sources with no results to monitoring</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageProxy">
Expand Down
13 changes: 13 additions & 0 deletions src/gui/src/tabs/search-tab.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1201,6 +1201,19 @@ void SearchTab::openSourcesWindow()
adv->show();
}

QList<Site*> SearchTab::sourcesWithResults(bool eager)
{
if (m_images.isEmpty() && !eager) {
return m_selectedSources;
}

QSet<Site*> ret;
for (const auto &img : qAsConst(m_images)) {
ret.insert(img->parentSite());
}
return ret.values();
}

void SearchTab::pruneSources()
{
if (m_images.isEmpty()) {
Expand Down
1 change: 1 addition & 0 deletions src/gui/src/tabs/search-tab.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ class SearchTab : public QWidget
FixedSizeGridLayout *createImagesLayout(QSettings *settings);
virtual void thumbnailContextMenu(QMenu *menu, const QSharedPointer<Image> &img);
QList<QSharedPointer<Page>> getPagesToDownload();
QList<Site*> sourcesWithResults(bool eager = false);

protected slots:
void contextSaveSelected();
Expand Down
3 changes: 2 additions & 1 deletion src/gui/src/tabs/tag-tab.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,8 @@ void TagTab::monitor()

const QStringList tags = search.split(" ", Qt::SkipEmptyParts);
const bool notify = m_settings->value("Monitoring/enableTray", false).toBool();
Monitor monitor(loadSites(), 24 * 60 * 60, QDateTime::currentDateTimeUtc(), QDateTime::currentDateTimeUtc(), true, QString(), QString(), 0, true, tags, postFilter(), notify);
QList<Site*> sites = m_settings->value("Monitoring/emptySources", false).toBool() ? loadSites() : sourcesWithResults();
Monitor monitor(sites, 24 * 60 * 60, QDateTime::currentDateTimeUtc(), QDateTime::currentDateTimeUtc(), true, QString(), QString(), 0, true, tags, postFilter(), notify);
m_profile->monitorManager()->add(monitor);
}

Expand Down

0 comments on commit 057b472

Please sign in to comment.