From bbfdbe78d556566c01d5c1a778b1f2b01d7aa86c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Sun, 2 Feb 2025 08:44:41 +0100 Subject: [PATCH] Don't allow top-level folder widget to be hidden anymore. --- .../src/client/ui/widgets/general/display/banner_widget.cpp | 4 +++- .../src/client/ui/widgets/general/display/banner_widget.h | 5 +++++ .../visual_deck_storage_folder_display_widget.cpp | 6 ++++-- .../visual_deck_storage_folder_display_widget.h | 3 ++- .../visual_deck_storage/visual_deck_storage_widget.cpp | 4 ++-- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/general/display/banner_widget.cpp b/cockatrice/src/client/ui/widgets/general/display/banner_widget.cpp index e8d0d86ec..f64810a21 100644 --- a/cockatrice/src/client/ui/widgets/general/display/banner_widget.cpp +++ b/cockatrice/src/client/ui/widgets/general/display/banner_widget.cpp @@ -27,7 +27,9 @@ BannerWidget::BannerWidget(QWidget *parent, const QString &text, Qt::Orientation void BannerWidget::mousePressEvent(QMouseEvent *event) { QWidget::mousePressEvent(event); - emit buddyVisibilityChanged(); + if (clickable) { + emit buddyVisibilityChanged(); + } } void BannerWidget::setText(const QString &text) const diff --git a/cockatrice/src/client/ui/widgets/general/display/banner_widget.h b/cockatrice/src/client/ui/widgets/general/display/banner_widget.h index b9997b8f5..e09784be8 100644 --- a/cockatrice/src/client/ui/widgets/general/display/banner_widget.h +++ b/cockatrice/src/client/ui/widgets/general/display/banner_widget.h @@ -23,6 +23,10 @@ public: { return bannerLabel->text(); } + void setClickable(bool _clickable) + { + clickable = _clickable; + } protected: void paintEvent(QPaintEvent *event) override; @@ -32,6 +36,7 @@ private: Qt::Orientation gradientOrientation; int transparency; // Transparency percentage for the gradient QWidget *buddy; + bool clickable = true; signals: void buddyVisibilityChanged(); private slots: diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp index 945c7ffaa..e068a9286 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp @@ -9,13 +9,15 @@ VisualDeckStorageFolderDisplayWidget::VisualDeckStorageFolderDisplayWidget( QWidget *parent, VisualDeckStorageWidget *_visualDeckStorageWidget, - QString _filePath) + QString _filePath, + bool canBeHidden) : QWidget(parent), visualDeckStorageWidget(_visualDeckStorageWidget), filePath(_filePath) { layout = new QVBoxLayout(this); setLayout(layout); header = new BannerWidget(this, ""); + header->setClickable(canBeHidden); layout->addWidget(header); container = new QWidget(this); @@ -123,7 +125,7 @@ bool VisualDeckStorageFolderDisplayWidget::checkVisibility() void VisualDeckStorageFolderDisplayWidget::createWidgetsForFolders() { for (const QString &dir : getAllSubFolders()) { - auto *display = new VisualDeckStorageFolderDisplayWidget(this, visualDeckStorageWidget, dir); + auto *display = new VisualDeckStorageFolderDisplayWidget(this, visualDeckStorageWidget, dir, true); containerLayout->addWidget(display); } } diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h index 200006769..32fc484d8 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h @@ -14,7 +14,8 @@ class VisualDeckStorageFolderDisplayWidget : public QWidget public: VisualDeckStorageFolderDisplayWidget(QWidget *parent, VisualDeckStorageWidget *_visualDeckStorageWidget, - QString _filePath); + QString _filePath, + bool canBeHidden); void refreshUi(); void createWidgetsForFiles(); void createWidgetsForFolders(); 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 c1f00d5cd..626d2c126 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 @@ -43,7 +43,7 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - folderWidget = new VisualDeckStorageFolderDisplayWidget(this, this, SettingsCache::instance().getDeckPath()); + folderWidget = new VisualDeckStorageFolderDisplayWidget(this, this, SettingsCache::instance().getDeckPath(), false); scrollArea->setWidget(folderWidget); scrollArea->setWidgetResizable(true); @@ -92,7 +92,7 @@ void VisualDeckStorageWidget::deckPreviewDoubleClickedEvent(QMouseEvent *event, void VisualDeckStorageWidget::refreshBannerCards() { - folderWidget = new VisualDeckStorageFolderDisplayWidget(this, this, SettingsCache::instance().getDeckPath()); + folderWidget = new VisualDeckStorageFolderDisplayWidget(this, this, SettingsCache::instance().getDeckPath(), false); scrollArea->setWidget(folderWidget); }