From a15175eb3ff8759265894af6d695160d4fb563fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Tue, 11 Feb 2025 16:42:46 +0100 Subject: [PATCH] Add a button for manual reloading. --- cockatrice/cockatrice.qrc | 1 + cockatrice/resources/icons/reload.svg | 7 ++++++ .../visual_deck_storage_widget.cpp | 24 +++++++++++-------- .../visual_deck_storage_widget.h | 2 ++ 4 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 cockatrice/resources/icons/reload.svg diff --git a/cockatrice/cockatrice.qrc b/cockatrice/cockatrice.qrc index 05846bbb7..7b42f69ca 100644 --- a/cockatrice/cockatrice.qrc +++ b/cockatrice/cockatrice.qrc @@ -25,6 +25,7 @@ resources/icons/pencil.svg resources/icons/player.svg resources/icons/ready_start.svg + resources/icons/reload.svg resources/icons/remove_row.svg resources/icons/scales.svg resources/icons/search.svg diff --git a/cockatrice/resources/icons/reload.svg b/cockatrice/resources/icons/reload.svg new file mode 100644 index 000000000..102995876 --- /dev/null +++ b/cockatrice/resources/icons/reload.svg @@ -0,0 +1,7 @@ + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + \ No newline at end of file diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp index 1a86113ed..f0dd2eb9e 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp @@ -36,6 +36,11 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare sortWidget = new VisualDeckStorageSortWidget(this); searchWidget = new VisualDeckStorageSearchWidget(this); + refreshButton = new QToolButton(this); + refreshButton->setIcon(QPixmap("theme:icons/reload")); + refreshButton->setFixedSize(32, 32); + connect(refreshButton, &QPushButton::clicked, this, &VisualDeckStorageWidget::refreshIfPossible); + showFoldersCheckBox = new QCheckBox(this); showFoldersCheckBox->setChecked(SettingsCache::instance().getVisualDeckStorageShowFolders()); connect(showFoldersCheckBox, &QCheckBox::QT_STATE_CHANGED, this, &VisualDeckStorageWidget::updateShowFolders); @@ -73,6 +78,7 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare searchAndSortLayout->addWidget(deckPreviewColorIdentityFilterWidget); searchAndSortLayout->addWidget(sortWidget); searchAndSortLayout->addWidget(searchWidget); + searchAndSortLayout->addWidget(refreshButton); searchAndSortLayout->addWidget(quickSettingsWidget); // tag filter box @@ -109,17 +115,15 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare addRecursiveWatch(watcher, SettingsCache::instance().getDeckPath()); // Signals for changes - connect(&watcher, &QFileSystemWatcher::fileChanged, [this] { - if (scrollArea->widget() != databaseLoadIndicator) { - createRootFolderWidget(); - } - }); + connect(&watcher, &QFileSystemWatcher::fileChanged, this, &VisualDeckStorageWidget::refreshIfPossible); + connect(&watcher, &QFileSystemWatcher::directoryChanged, this, &VisualDeckStorageWidget::refreshIfPossible); +} - connect(&watcher, &QFileSystemWatcher::directoryChanged, [this] { - if (scrollArea->widget() != databaseLoadIndicator) { - createRootFolderWidget(); - } - }); +void VisualDeckStorageWidget::refreshIfPossible() +{ + if (scrollArea->widget() != databaseLoadIndicator) { + createRootFolderWidget(); + } } void VisualDeckStorageWidget::addRecursiveWatch(QFileSystemWatcher &watcher, const QString &dirPath) diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h index 62822d5f6..554b1c36c 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h @@ -26,6 +26,7 @@ class VisualDeckStorageWidget final : public QWidget Q_OBJECT public: explicit VisualDeckStorageWidget(QWidget *parent); + void refreshIfPossible(); void addRecursiveWatch(QFileSystemWatcher &watcher, const QString &dirPath); void retranslateUi(); @@ -63,6 +64,7 @@ private: VisualDeckStorageSortWidget *sortWidget; VisualDeckStorageSearchWidget *searchWidget; DeckPreviewColorIdentityFilterWidget *deckPreviewColorIdentityFilterWidget; + QToolButton *refreshButton; SettingsButtonWidget *quickSettingsWidget; QCheckBox *showFoldersCheckBox; QCheckBox *drawUnusedColorIdentitiesCheckBox;