mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-18 16:32:16 -07:00
Add a new settings button and settings popup, move the folder visibility checkbox there and the ability to hide tags.
This commit is contained in:
parent
04dc843c4e
commit
f72900fac7
14 changed files with 230 additions and 4 deletions
|
|
@ -113,6 +113,8 @@ set(cockatrice_SOURCES
|
||||||
src/client/ui/widgets/printing_selector/printing_selector_view_options_toolbar_widget.cpp
|
src/client/ui/widgets/printing_selector/printing_selector_view_options_toolbar_widget.cpp
|
||||||
src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.cpp
|
src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.cpp
|
||||||
src/client/ui/widgets/printing_selector/set_name_and_collectors_number_display_widget.cpp
|
src/client/ui/widgets/printing_selector/set_name_and_collectors_number_display_widget.cpp
|
||||||
|
src/client/ui/widgets/quick_settings/settings_button_widget.cpp
|
||||||
|
src/client/ui/widgets/quick_settings/settings_popup_widget.cpp
|
||||||
src/client/network/release_channel.cpp
|
src/client/network/release_channel.cpp
|
||||||
src/client/network/client_update_checker.cpp
|
src/client/network/client_update_checker.cpp
|
||||||
src/server/remote/remote_client.cpp
|
src/server/remote/remote_client.cpp
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
<file>resources/icons/arrow_top_green.svg</file>
|
<file>resources/icons/arrow_top_green.svg</file>
|
||||||
<file>resources/icons/arrow_up_green.svg</file>
|
<file>resources/icons/arrow_up_green.svg</file>
|
||||||
<file>resources/icons/clearsearch.svg</file>
|
<file>resources/icons/clearsearch.svg</file>
|
||||||
|
<file>resources/icons/cogwheel.svg</file>
|
||||||
<file>resources/icons/conceded.svg</file>
|
<file>resources/icons/conceded.svg</file>
|
||||||
<file>resources/icons/decrement.svg</file>
|
<file>resources/icons/decrement.svg</file>
|
||||||
<file>resources/icons/delete.svg</file>
|
<file>resources/icons/delete.svg</file>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
#include "settings_button_widget.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QMouseEvent>
|
||||||
|
#include <QScreen>
|
||||||
|
|
||||||
|
SettingsButtonWidget::SettingsButtonWidget(QWidget *parent)
|
||||||
|
: QWidget(parent), button(new QToolButton(this)), popup(new SettingsPopupWidget(this))
|
||||||
|
{
|
||||||
|
|
||||||
|
button->setIcon(QPixmap("theme:icons/cogwheel"));
|
||||||
|
button->setCheckable(true);
|
||||||
|
button->setFixedSize(32, 32);
|
||||||
|
connect(button, &QToolButton::clicked, this, &SettingsButtonWidget::togglePopup);
|
||||||
|
connect(popup, &SettingsPopupWidget::aboutToClose, this, &SettingsButtonWidget::onPopupClosed);
|
||||||
|
|
||||||
|
layout = new QHBoxLayout(this);
|
||||||
|
layout->addWidget(button);
|
||||||
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
setLayout(layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsButtonWidget::addSettingsWidget(QWidget *toAdd) const
|
||||||
|
{
|
||||||
|
popup->addSettingsWidget(toAdd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsButtonWidget::togglePopup()
|
||||||
|
{
|
||||||
|
if (popup->isVisible()) {
|
||||||
|
popup->close();
|
||||||
|
} else {
|
||||||
|
// Get button position
|
||||||
|
QPoint buttonGlobalPos = button->mapToGlobal(QPoint(0, button->height()));
|
||||||
|
QSize popupSize = popup->size();
|
||||||
|
|
||||||
|
// Get screen geometry
|
||||||
|
QScreen *screen = QApplication::screenAt(buttonGlobalPos);
|
||||||
|
QRect screenGeom = screen ? screen->availableGeometry() : QApplication::primaryScreen()->availableGeometry();
|
||||||
|
|
||||||
|
int x = buttonGlobalPos.x();
|
||||||
|
int y = buttonGlobalPos.y();
|
||||||
|
|
||||||
|
// Adjust X position if popup overflows the right side of the screen
|
||||||
|
if (x + popupSize.width() > screenGeom.right()) {
|
||||||
|
x = buttonGlobalPos.x() - popupSize.width() + button->width(); // Move left
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adjust Y position if popup overflows the bottom of the screen
|
||||||
|
if (y + popupSize.height() > screenGeom.bottom()) {
|
||||||
|
y = buttonGlobalPos.y() - popupSize.height() - button->height(); // Move up
|
||||||
|
}
|
||||||
|
|
||||||
|
popup->move(x, y);
|
||||||
|
popup->show();
|
||||||
|
popup->setFocus();
|
||||||
|
button->setChecked(true); // Ensure button is checked when popup is visible
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsButtonWidget::onPopupClosed() const
|
||||||
|
{
|
||||||
|
button->setChecked(false); // Ensure button unchecks when popup closes
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsButtonWidget::mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
if (popup->isVisible() && !popup->geometry().contains(event->globalPosition().toPoint())) {
|
||||||
|
popup->close();
|
||||||
|
}
|
||||||
|
QWidget::mousePressEvent(event);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
#ifndef SETTINGS_BUTTON_WIDGET_H
|
||||||
|
#define SETTINGS_BUTTON_WIDGET_H
|
||||||
|
|
||||||
|
#include "settings_popup_widget.h"
|
||||||
|
|
||||||
|
#include <QToolButton>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class SettingsButtonWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit SettingsButtonWidget(QWidget *parent = nullptr);
|
||||||
|
void addSettingsWidget(QWidget *toAdd) const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void mousePressEvent(QMouseEvent *event) override;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void togglePopup();
|
||||||
|
void onPopupClosed() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QHBoxLayout *layout;
|
||||||
|
QToolButton *button;
|
||||||
|
SettingsPopupWidget *popup;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SETTINGS_BUTTON_WIDGET_H
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
#include "settings_popup_widget.h"
|
||||||
|
|
||||||
|
#include <QFocusEvent>
|
||||||
|
|
||||||
|
SettingsPopupWidget::SettingsPopupWidget(QWidget *parent) : QWidget(parent, Qt::Popup | Qt::FramelessWindowHint)
|
||||||
|
{
|
||||||
|
layout = new QVBoxLayout(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsPopupWidget::addSettingsWidget(QWidget *toAdd) const
|
||||||
|
{
|
||||||
|
layout->addWidget(toAdd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsPopupWidget::focusOutEvent(QFocusEvent *event)
|
||||||
|
{
|
||||||
|
close();
|
||||||
|
QWidget::focusOutEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsPopupWidget::closeEvent(QCloseEvent *event)
|
||||||
|
{
|
||||||
|
emit aboutToClose();
|
||||||
|
QWidget::closeEvent(event);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
#ifndef SETTINGS_POPUP_WIDGET_H
|
||||||
|
#define SETTINGS_POPUP_WIDGET_H
|
||||||
|
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class SettingsPopupWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit SettingsPopupWidget(QWidget *parent = nullptr);
|
||||||
|
void addSettingsWidget(QWidget *toAdd) const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void aboutToClose();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void focusOutEvent(QFocusEvent *event) override;
|
||||||
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
|
||||||
|
QVBoxLayout *layout;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SETTINGSPOPUP_H
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include "deck_preview_widget.h"
|
#include "deck_preview_widget.h"
|
||||||
|
|
||||||
#include "../../../../../game/cards/card_database_manager.h"
|
#include "../../../../../game/cards/card_database_manager.h"
|
||||||
|
#include "../../../../../settings/cache_settings.h"
|
||||||
#include "../../cards/deck_preview_card_picture_widget.h"
|
#include "../../cards/deck_preview_card_picture_widget.h"
|
||||||
#include "deck_preview_deck_tags_display_widget.h"
|
#include "deck_preview_deck_tags_display_widget.h"
|
||||||
|
|
||||||
|
|
@ -51,6 +52,7 @@ void DeckPreviewWidget::initializeUi(const bool deckLoadSuccess)
|
||||||
|
|
||||||
colorIdentityWidget = new DeckPreviewColorIdentityWidget(this, getColorIdentity());
|
colorIdentityWidget = new DeckPreviewColorIdentityWidget(this, getColorIdentity());
|
||||||
deckTagsDisplayWidget = new DeckPreviewDeckTagsDisplayWidget(this, deckLoader);
|
deckTagsDisplayWidget = new DeckPreviewDeckTagsDisplayWidget(this, deckLoader);
|
||||||
|
updateTagsVisibility(SettingsCache::instance().getVisualDeckStorageShowTags());
|
||||||
|
|
||||||
layout->addWidget(colorIdentityWidget);
|
layout->addWidget(colorIdentityWidget);
|
||||||
layout->addWidget(deckTagsDisplayWidget);
|
layout->addWidget(deckTagsDisplayWidget);
|
||||||
|
|
@ -72,6 +74,15 @@ bool DeckPreviewWidget::checkVisibility() const
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeckPreviewWidget::updateTagsVisibility(bool visible)
|
||||||
|
{
|
||||||
|
if (visible) {
|
||||||
|
deckTagsDisplayWidget->setVisible(true);
|
||||||
|
} else {
|
||||||
|
deckTagsDisplayWidget->setHidden(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QString DeckPreviewWidget::getColorIdentity()
|
QString DeckPreviewWidget::getColorIdentity()
|
||||||
{
|
{
|
||||||
QStringList cardList = deckLoader->getCardList();
|
QStringList cardList = deckLoader->getCardList();
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ public slots:
|
||||||
void imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance);
|
void imageDoubleClickedEvent(QMouseEvent *event, DeckPreviewCardPictureWidget *instance);
|
||||||
void initializeUi(bool deckLoadSuccess);
|
void initializeUi(bool deckLoadSuccess);
|
||||||
void updateVisibility();
|
void updateVisibility();
|
||||||
|
void updateTagsVisibility(bool visible);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DECK_PREVIEW_WIDGET_H
|
#endif // DECK_PREVIEW_WIDGET_H
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@ VisualDeckStorageFolderDisplayWidget::VisualDeckStorageFolderDisplayWidget(
|
||||||
&VisualDeckStorageFolderDisplayWidget::updateVisibility);
|
&VisualDeckStorageFolderDisplayWidget::updateVisibility);
|
||||||
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::searchFilterUpdated, this,
|
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::searchFilterUpdated, this,
|
||||||
&VisualDeckStorageFolderDisplayWidget::updateVisibility);
|
&VisualDeckStorageFolderDisplayWidget::updateVisibility);
|
||||||
|
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::updateTagsVisibility, this,
|
||||||
|
&VisualDeckStorageFolderDisplayWidget::updateTagVisibility);
|
||||||
|
|
||||||
createWidgetsForFiles();
|
createWidgetsForFiles();
|
||||||
createWidgetsForFolders();
|
createWidgetsForFolders();
|
||||||
|
|
@ -93,6 +95,8 @@ void VisualDeckStorageFolderDisplayWidget::createWidgetsForFiles()
|
||||||
&VisualDeckStorageWidget::deckPreviewDoubleClickedEvent);
|
&VisualDeckStorageWidget::deckPreviewDoubleClickedEvent);
|
||||||
connect(visualDeckStorageWidget->cardSizeWidget->getSlider(), &QSlider::valueChanged,
|
connect(visualDeckStorageWidget->cardSizeWidget->getSlider(), &QSlider::valueChanged,
|
||||||
display->bannerCardDisplayWidget, &CardInfoPictureWidget::setScaleFactor);
|
display->bannerCardDisplayWidget, &CardInfoPictureWidget::setScaleFactor);
|
||||||
|
connect(this, &VisualDeckStorageFolderDisplayWidget::tagsVisibilityChanged, display,
|
||||||
|
&DeckPreviewWidget::updateTagsVisibility);
|
||||||
display->bannerCardDisplayWidget->setScaleFactor(visualDeckStorageWidget->cardSizeWidget->getSlider()->value());
|
display->bannerCardDisplayWidget->setScaleFactor(visualDeckStorageWidget->cardSizeWidget->getSlider()->value());
|
||||||
allDecks.append(display);
|
allDecks.append(display);
|
||||||
}
|
}
|
||||||
|
|
@ -161,6 +165,8 @@ void VisualDeckStorageFolderDisplayWidget::createWidgetsForFolders()
|
||||||
|
|
||||||
for (const QString &dir : getAllSubFolders(filePath)) {
|
for (const QString &dir : getAllSubFolders(filePath)) {
|
||||||
auto *display = new VisualDeckStorageFolderDisplayWidget(this, visualDeckStorageWidget, dir, true, showFolders);
|
auto *display = new VisualDeckStorageFolderDisplayWidget(this, visualDeckStorageWidget, dir, true, showFolders);
|
||||||
|
connect(this, &VisualDeckStorageFolderDisplayWidget::tagsVisibilityChanged, display,
|
||||||
|
&VisualDeckStorageFolderDisplayWidget::updateTagVisibility);
|
||||||
containerLayout->addWidget(display);
|
containerLayout->addWidget(display);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -180,6 +186,11 @@ void VisualDeckStorageFolderDisplayWidget::updateShowFolders(bool enabled)
|
||||||
header->setHidden(!showFolders);
|
header->setHidden(!showFolders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VisualDeckStorageFolderDisplayWidget::updateTagVisibility(bool visible)
|
||||||
|
{
|
||||||
|
emit tagsVisibilityChanged(visible);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recursively gets all DeckPreviewWidgets in this folder and its subfolders
|
* Recursively gets all DeckPreviewWidgets in this folder and its subfolders
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,14 @@ public:
|
||||||
return flowWidget;
|
return flowWidget;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void tagsVisibilityChanged(bool visible);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void updateVisibility();
|
void updateVisibility();
|
||||||
bool checkVisibility();
|
bool checkVisibility();
|
||||||
void updateShowFolders(bool enabled);
|
void updateShowFolders(bool enabled);
|
||||||
|
void updateTagVisibility(bool visible);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool showFolders;
|
bool showFolders;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "../../../../game/cards/card_database_manager.h"
|
#include "../../../../game/cards/card_database_manager.h"
|
||||||
#include "../../../../settings/cache_settings.h"
|
#include "../../../../settings/cache_settings.h"
|
||||||
|
#include "../quick_settings/settings_button_widget.h"
|
||||||
#include "deck_preview/deck_preview_widget.h"
|
#include "deck_preview/deck_preview_widget.h"
|
||||||
#include "visual_deck_storage_folder_display_widget.h"
|
#include "visual_deck_storage_folder_display_widget.h"
|
||||||
#include "visual_deck_storage_search_widget.h"
|
#include "visual_deck_storage_search_widget.h"
|
||||||
|
|
@ -38,13 +39,24 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare
|
||||||
connect(showFoldersCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(),
|
connect(showFoldersCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(),
|
||||||
&SettingsCache::setVisualDeckStorageShowFolders);
|
&SettingsCache::setVisualDeckStorageShowFolders);
|
||||||
|
|
||||||
|
tagsVisibilityCheckBox = new QCheckBox(this);
|
||||||
|
tagsVisibilityCheckBox->setChecked(SettingsCache::instance().getVisualDeckStorageShowTags());
|
||||||
|
connect(tagsVisibilityCheckBox, &QCheckBox::QT_STATE_CHANGED, this, &VisualDeckStorageWidget::updateTagsVisibility);
|
||||||
|
connect(tagsVisibilityCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(),
|
||||||
|
&SettingsCache::setVisualDeckStorageShowTags);
|
||||||
|
|
||||||
|
quickSettingsWidget = new SettingsButtonWidget(this);
|
||||||
|
quickSettingsWidget->addSettingsWidget(showFoldersCheckBox);
|
||||||
|
quickSettingsWidget->addSettingsWidget(tagsVisibilityCheckBox);
|
||||||
|
|
||||||
searchAndSortLayout->addWidget(deckPreviewColorIdentityFilterWidget);
|
searchAndSortLayout->addWidget(deckPreviewColorIdentityFilterWidget);
|
||||||
searchAndSortLayout->addWidget(sortWidget);
|
searchAndSortLayout->addWidget(sortWidget);
|
||||||
searchAndSortLayout->addWidget(searchWidget);
|
searchAndSortLayout->addWidget(searchWidget);
|
||||||
searchAndSortLayout->addWidget(showFoldersCheckBox);
|
searchAndSortLayout->addWidget(quickSettingsWidget);
|
||||||
|
|
||||||
// tag filter box
|
// tag filter box
|
||||||
tagFilterWidget = new VisualDeckStorageTagFilterWidget(this);
|
tagFilterWidget = new VisualDeckStorageTagFilterWidget(this);
|
||||||
|
updateTagsVisibility(SettingsCache::instance().getVisualDeckStorageShowTags());
|
||||||
|
|
||||||
// card size slider
|
// card size slider
|
||||||
cardSizeWidget = new CardSizeWidget(this, nullptr, SettingsCache::instance().getVisualDeckStorageCardSize());
|
cardSizeWidget = new CardSizeWidget(this, nullptr, SettingsCache::instance().getVisualDeckStorageCardSize());
|
||||||
|
|
@ -101,6 +113,7 @@ void VisualDeckStorageWidget::retranslateUi()
|
||||||
databaseLoadIndicator->setText(tr("Loading database ..."));
|
databaseLoadIndicator->setText(tr("Loading database ..."));
|
||||||
|
|
||||||
showFoldersCheckBox->setText(tr("Show Folders"));
|
showFoldersCheckBox->setText(tr("Show Folders"));
|
||||||
|
tagsVisibilityCheckBox->setText(tr("Show Tags"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualDeckStorageWidget::deckPreviewClickedEvent(QMouseEvent *event, DeckPreviewWidget *instance)
|
void VisualDeckStorageWidget::deckPreviewClickedEvent(QMouseEvent *event, DeckPreviewWidget *instance)
|
||||||
|
|
@ -118,6 +131,8 @@ void VisualDeckStorageWidget::createRootFolderWidget()
|
||||||
{
|
{
|
||||||
folderWidget = new VisualDeckStorageFolderDisplayWidget(this, this, SettingsCache::instance().getDeckPath(), false,
|
folderWidget = new VisualDeckStorageFolderDisplayWidget(this, this, SettingsCache::instance().getDeckPath(), false,
|
||||||
showFoldersCheckBox->isChecked());
|
showFoldersCheckBox->isChecked());
|
||||||
|
connect(this, &VisualDeckStorageWidget::tagsVisibilityChanged, folderWidget,
|
||||||
|
&VisualDeckStorageFolderDisplayWidget::updateTagVisibility);
|
||||||
|
|
||||||
scrollArea->setWidget(folderWidget);
|
scrollArea->setWidget(folderWidget);
|
||||||
scrollArea->widget()->setMaximumWidth(scrollArea->viewport()->width());
|
scrollArea->widget()->setMaximumWidth(scrollArea->viewport()->width());
|
||||||
|
|
@ -167,3 +182,14 @@ void VisualDeckStorageWidget::updateSearchFilter()
|
||||||
}
|
}
|
||||||
emit searchFilterUpdated();
|
emit searchFilterUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VisualDeckStorageWidget::updateTagsVisibility(const bool visible)
|
||||||
|
{
|
||||||
|
if (visible) {
|
||||||
|
tagFilterWidget->setVisible(true);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
tagFilterWidget->setHidden(true);
|
||||||
|
}
|
||||||
|
emit tagsVisibilityChanged(visible);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "../../../../deck/deck_list_model.h"
|
#include "../../../../deck/deck_list_model.h"
|
||||||
#include "../../../ui/widgets/general/layout_containers/flow_widget.h"
|
#include "../../../ui/widgets/general/layout_containers/flow_widget.h"
|
||||||
#include "../cards/card_size_widget.h"
|
#include "../cards/card_size_widget.h"
|
||||||
|
#include "../quick_settings/settings_button_widget.h"
|
||||||
#include "deck_preview/deck_preview_color_identity_filter_widget.h"
|
#include "deck_preview/deck_preview_color_identity_filter_widget.h"
|
||||||
#include "deck_preview/deck_preview_widget.h"
|
#include "deck_preview/deck_preview_widget.h"
|
||||||
#include "visual_deck_storage_folder_display_widget.h"
|
#include "visual_deck_storage_folder_display_widget.h"
|
||||||
|
|
@ -24,8 +25,8 @@ class VisualDeckStorageWidget final : public QWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit VisualDeckStorageWidget(QWidget *parent);
|
explicit VisualDeckStorageWidget(QWidget *parent);
|
||||||
|
|
||||||
void retranslateUi();
|
void retranslateUi();
|
||||||
|
|
||||||
CardSizeWidget *cardSizeWidget;
|
CardSizeWidget *cardSizeWidget;
|
||||||
VisualDeckStorageTagFilterWidget *tagFilterWidget;
|
VisualDeckStorageTagFilterWidget *tagFilterWidget;
|
||||||
|
|
||||||
|
|
@ -37,6 +38,7 @@ public slots:
|
||||||
void updateTagFilter();
|
void updateTagFilter();
|
||||||
void updateColorFilter();
|
void updateColorFilter();
|
||||||
void updateSearchFilter();
|
void updateSearchFilter();
|
||||||
|
void updateTagsVisibility(bool visible);
|
||||||
void updateSortOrder();
|
void updateSortOrder();
|
||||||
void resizeEvent(QResizeEvent *event) override;
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
void showEvent(QShowEvent *event) override;
|
void showEvent(QShowEvent *event) override;
|
||||||
|
|
@ -49,6 +51,7 @@ signals:
|
||||||
void tagFilterUpdated();
|
void tagFilterUpdated();
|
||||||
void colorFilterUpdated();
|
void colorFilterUpdated();
|
||||||
void searchFilterUpdated();
|
void searchFilterUpdated();
|
||||||
|
void tagsVisibilityChanged(bool visible);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVBoxLayout *layout;
|
QVBoxLayout *layout;
|
||||||
|
|
@ -58,9 +61,9 @@ private:
|
||||||
VisualDeckStorageSortWidget *sortWidget;
|
VisualDeckStorageSortWidget *sortWidget;
|
||||||
VisualDeckStorageSearchWidget *searchWidget;
|
VisualDeckStorageSearchWidget *searchWidget;
|
||||||
DeckPreviewColorIdentityFilterWidget *deckPreviewColorIdentityFilterWidget;
|
DeckPreviewColorIdentityFilterWidget *deckPreviewColorIdentityFilterWidget;
|
||||||
|
SettingsButtonWidget *quickSettingsWidget;
|
||||||
QCheckBox *showFoldersCheckBox;
|
QCheckBox *showFoldersCheckBox;
|
||||||
|
QCheckBox *tagsVisibilityCheckBox;
|
||||||
QScrollArea *scrollArea;
|
QScrollArea *scrollArea;
|
||||||
VisualDeckStorageFolderDisplayWidget *folderWidget;
|
VisualDeckStorageFolderDisplayWidget *folderWidget;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -267,6 +267,7 @@ SettingsCache::SettingsCache()
|
||||||
visualDeckStorageCardSize = settings->value("cards/visualdeckstoragecardsize", 100).toInt();
|
visualDeckStorageCardSize = settings->value("cards/visualdeckstoragecardsize", 100).toInt();
|
||||||
visualDeckStorageSortingOrder = settings->value("interface/visualdeckstoragesortingorder", 0).toInt();
|
visualDeckStorageSortingOrder = settings->value("interface/visualdeckstoragesortingorder", 0).toInt();
|
||||||
visualDeckStorageShowFolders = settings->value("interface/visualdeckstorageshowfolders", true).toBool();
|
visualDeckStorageShowFolders = settings->value("interface/visualdeckstorageshowfolders", true).toBool();
|
||||||
|
visualDeckStorageShowTags = settings->value("interface/visualdeckstorageshowtags", true).toBool();
|
||||||
visualDeckStorageDrawUnusedColorIdentities =
|
visualDeckStorageDrawUnusedColorIdentities =
|
||||||
settings->value("interface/visualdeckstoragedrawunusedcoloridentities", true).toBool();
|
settings->value("interface/visualdeckstoragedrawunusedcoloridentities", true).toBool();
|
||||||
visualDeckStorageUnusedColorIdentitiesOpacity =
|
visualDeckStorageUnusedColorIdentitiesOpacity =
|
||||||
|
|
@ -685,6 +686,12 @@ void SettingsCache::setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T value)
|
||||||
settings->setValue("interface/visualdeckstorageshowfolders", visualDeckStorageShowFolders);
|
settings->setValue("interface/visualdeckstorageshowfolders", visualDeckStorageShowFolders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsCache::setVisualDeckStorageShowTags(QT_STATE_CHANGED_T _showTags)
|
||||||
|
{
|
||||||
|
visualDeckStorageShowTags = _showTags;
|
||||||
|
settings->setValue("interface/visualdeckstorageshowtags", visualDeckStorageShowTags);
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsCache::setVisualDeckStorageCardSize(int _visualDeckStorageCardSize)
|
void SettingsCache::setVisualDeckStorageCardSize(int _visualDeckStorageCardSize)
|
||||||
{
|
{
|
||||||
visualDeckStorageCardSize = _visualDeckStorageCardSize;
|
visualDeckStorageCardSize = _visualDeckStorageCardSize;
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,7 @@ private:
|
||||||
bool printingSelectorNavigationButtonsVisible;
|
bool printingSelectorNavigationButtonsVisible;
|
||||||
int visualDeckStorageSortingOrder;
|
int visualDeckStorageSortingOrder;
|
||||||
bool visualDeckStorageShowFolders;
|
bool visualDeckStorageShowFolders;
|
||||||
|
bool visualDeckStorageShowTags;
|
||||||
int visualDeckStorageCardSize;
|
int visualDeckStorageCardSize;
|
||||||
bool visualDeckStorageDrawUnusedColorIdentities;
|
bool visualDeckStorageDrawUnusedColorIdentities;
|
||||||
int visualDeckStorageUnusedColorIdentitiesOpacity;
|
int visualDeckStorageUnusedColorIdentitiesOpacity;
|
||||||
|
|
@ -421,6 +422,10 @@ public:
|
||||||
{
|
{
|
||||||
return visualDeckStorageShowFolders;
|
return visualDeckStorageShowFolders;
|
||||||
}
|
}
|
||||||
|
bool getVisualDeckStorageShowTags() const
|
||||||
|
{
|
||||||
|
return visualDeckStorageShowTags;
|
||||||
|
}
|
||||||
int getVisualDeckStorageCardSize() const
|
int getVisualDeckStorageCardSize() const
|
||||||
{
|
{
|
||||||
return visualDeckStorageCardSize;
|
return visualDeckStorageCardSize;
|
||||||
|
|
@ -767,6 +772,7 @@ public slots:
|
||||||
void setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T _navigationButtonsVisible);
|
void setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T _navigationButtonsVisible);
|
||||||
void setVisualDeckStorageSortingOrder(int _visualDeckStorageSortingOrder);
|
void setVisualDeckStorageSortingOrder(int _visualDeckStorageSortingOrder);
|
||||||
void setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T value);
|
void setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T value);
|
||||||
|
void setVisualDeckStorageShowTags(QT_STATE_CHANGED_T _showTags);
|
||||||
void setVisualDeckStorageCardSize(int _visualDeckStorageCardSize);
|
void setVisualDeckStorageCardSize(int _visualDeckStorageCardSize);
|
||||||
void setVisualDeckStorageDrawUnusedColorIdentities(QT_STATE_CHANGED_T _visualDeckStorageDrawUnusedColorIdentities);
|
void setVisualDeckStorageDrawUnusedColorIdentities(QT_STATE_CHANGED_T _visualDeckStorageDrawUnusedColorIdentities);
|
||||||
void setVisualDeckStorageUnusedColorIdentitiesOpacity(int _visualDeckStorageUnusedColorIdentitiesOpacity);
|
void setVisualDeckStorageUnusedColorIdentitiesOpacity(int _visualDeckStorageUnusedColorIdentitiesOpacity);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue