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 @@
+
+
+
\ 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;