mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-08 17:13:57 -07:00
[VDD] Reorder quick filters
Took 1 hour 10 minutes Took 5 seconds Took 49 seconds
This commit is contained in:
parent
ed1115f4c0
commit
50a0a8b075
11 changed files with 229 additions and 137 deletions
|
|
@ -317,6 +317,8 @@ set(cockatrice_SOURCES
|
|||
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_bracket_navigation_widget.h
|
||||
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_budget_navigation_widget.cpp
|
||||
src/interface/widgets/tabs/api/edhrec/display/commander/edhrec_commander_api_response_budget_navigation_widget.h
|
||||
src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.cpp
|
||||
src/interface/widgets/visual_database_display/visual_database_display_filter_toolbar_widget.h
|
||||
)
|
||||
|
||||
add_subdirectory(sounds)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
SettingsButtonWidget::SettingsButtonWidget(QWidget *parent)
|
||||
: QWidget(parent), button(new QToolButton(this)), popup(new SettingsPopupWidget(nullptr))
|
||||
{
|
||||
|
||||
button->setIcon(QPixmap("theme:icons/cogwheel"));
|
||||
button->setCheckable(true);
|
||||
button->setFixedSize(32, 32);
|
||||
|
|
@ -36,6 +35,21 @@ void SettingsButtonWidget::setButtonIcon(QPixmap iconMap)
|
|||
button->setIcon(iconMap);
|
||||
}
|
||||
|
||||
void SettingsButtonWidget::setButtonText(const QString &buttonText)
|
||||
{
|
||||
// 🔓 unlock size constraints
|
||||
button->setMinimumSize(QSize());
|
||||
button->setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
|
||||
|
||||
button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
||||
button->setText(buttonText);
|
||||
|
||||
button->setFixedHeight(32);
|
||||
button->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
|
||||
|
||||
button->setMinimumWidth(button->sizeHint().width());
|
||||
}
|
||||
|
||||
void SettingsButtonWidget::togglePopup()
|
||||
{
|
||||
if (popup->isVisible()) {
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public:
|
|||
void addSettingsWidget(QWidget *toAdd) const;
|
||||
void removeSettingsWidget(QWidget *toRemove) const;
|
||||
void setButtonIcon(QPixmap iconMap);
|
||||
void setButtonText(const QString &buttonText);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event) override;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,130 @@
|
|||
#include "visual_database_display_filter_toolbar_widget.h"
|
||||
|
||||
#include "visual_database_display_widget.h"
|
||||
|
||||
VisualDatabaseDisplayFilterToolbarWidget::VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *_parent)
|
||||
: QWidget(_parent), visualDatabaseDisplay(_parent)
|
||||
{
|
||||
filterContainerLayout = new QHBoxLayout(this);
|
||||
setLayout(filterContainerLayout);
|
||||
filterContainerLayout->setAlignment(Qt::AlignLeft);
|
||||
|
||||
setMaximumHeight(80);
|
||||
|
||||
connect(this, &VisualDatabaseDisplayFilterToolbarWidget::searchModelChanged, visualDatabaseDisplay,
|
||||
&VisualDatabaseDisplayWidget::onSearchModelChanged);
|
||||
|
||||
filterByLabel = new QLabel(this);
|
||||
|
||||
sortByLabel = new QLabel(this);
|
||||
sortColumnCombo = new QComboBox(this);
|
||||
sortColumnCombo->setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy::AdjustToContents);
|
||||
sortOrderCombo = new QComboBox(this);
|
||||
sortOrderCombo->setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy::AdjustToContents);
|
||||
|
||||
sortOrderCombo->addItem("Ascending", Qt::AscendingOrder);
|
||||
sortOrderCombo->addItem("Descending", Qt::DescendingOrder);
|
||||
sortOrderCombo->view()->setMinimumWidth(sortOrderCombo->view()->sizeHintForColumn(0));
|
||||
sortOrderCombo->adjustSize();
|
||||
|
||||
// Populate columns dynamically from the model
|
||||
for (int i = 0; i < visualDatabaseDisplay->getDatabaseDisplayModel()->columnCount(); ++i) {
|
||||
QString header = visualDatabaseDisplay->getDatabaseDisplayModel()->headerData(i, Qt::Horizontal).toString();
|
||||
sortColumnCombo->addItem(header, i);
|
||||
}
|
||||
|
||||
sortColumnCombo->view()->setMinimumWidth(sortColumnCombo->view()->sizeHintForColumn(0));
|
||||
sortColumnCombo->adjustSize();
|
||||
|
||||
connect(sortColumnCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this]() {
|
||||
int column = sortColumnCombo->currentData().toInt();
|
||||
Qt::SortOrder order = static_cast<Qt::SortOrder>(sortOrderCombo->currentData().toInt());
|
||||
visualDatabaseDisplay->getDatabaseView()->sortByColumn(column, order);
|
||||
|
||||
emit searchModelChanged();
|
||||
});
|
||||
|
||||
connect(sortOrderCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this]() {
|
||||
int column = sortColumnCombo->currentData().toInt();
|
||||
Qt::SortOrder order = static_cast<Qt::SortOrder>(sortOrderCombo->currentData().toInt());
|
||||
visualDatabaseDisplay->getDatabaseView()->sortByColumn(column, order);
|
||||
|
||||
emit searchModelChanged();
|
||||
});
|
||||
|
||||
quickFilterSaveLoadWidget = new SettingsButtonWidget(this);
|
||||
quickFilterSaveLoadWidget->setButtonIcon(QPixmap("theme:icons/lock"));
|
||||
quickFilterSaveLoadWidget->setButtonText("Save/Load");
|
||||
|
||||
quickFilterNameWidget = new SettingsButtonWidget(this);
|
||||
quickFilterNameWidget->setButtonIcon(QPixmap("theme:icons/rename"));
|
||||
quickFilterNameWidget->setButtonText("Name");
|
||||
|
||||
quickFilterMainTypeWidget = new SettingsButtonWidget(this);
|
||||
quickFilterMainTypeWidget->setButtonIcon(QPixmap("theme:icons/player"));
|
||||
quickFilterMainTypeWidget->setButtonText("Main Type");
|
||||
|
||||
quickFilterSubTypeWidget = new SettingsButtonWidget(this);
|
||||
quickFilterSubTypeWidget->setButtonIcon(QPixmap("theme:icons/player"));
|
||||
quickFilterSubTypeWidget->setButtonText("Sub Type");
|
||||
|
||||
quickFilterSetWidget = new SettingsButtonWidget(this);
|
||||
quickFilterSetWidget->setButtonIcon(QPixmap("theme:icons/scales"));
|
||||
quickFilterSetWidget->setButtonText("Sets");
|
||||
|
||||
quickFilterFormatLegalityWidget = new SettingsButtonWidget(this);
|
||||
quickFilterFormatLegalityWidget->setButtonIcon(QPixmap("theme:icons/player"));
|
||||
quickFilterFormatLegalityWidget->setButtonText("Formats");
|
||||
|
||||
retranslateUi();
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayFilterToolbarWidget::initialize()
|
||||
{
|
||||
sortByLabel->setVisible(true);
|
||||
filterByLabel->setVisible(true);
|
||||
|
||||
quickFilterSaveLoadWidget->setVisible(true);
|
||||
quickFilterNameWidget->setVisible(true);
|
||||
quickFilterSubTypeWidget->setVisible(true);
|
||||
quickFilterSetWidget->setVisible(true);
|
||||
|
||||
auto filterModel = visualDatabaseDisplay->filterModel;
|
||||
|
||||
saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel);
|
||||
nameFilterWidget =
|
||||
new VisualDatabaseDisplayNameFilterWidget(this, visualDatabaseDisplay->getDeckEditor(), filterModel);
|
||||
mainTypeFilterWidget = new VisualDatabaseDisplayMainTypeFilterWidget(this, filterModel);
|
||||
formatLegalityWidget = new VisualDatabaseDisplayFormatLegalityFilterWidget(this, filterModel);
|
||||
subTypeFilterWidget = new VisualDatabaseDisplaySubTypeFilterWidget(this, filterModel);
|
||||
setFilterWidget = new VisualDatabaseDisplaySetFilterWidget(this, filterModel);
|
||||
|
||||
quickFilterSaveLoadWidget->addSettingsWidget(saveLoadWidget);
|
||||
quickFilterNameWidget->addSettingsWidget(nameFilterWidget);
|
||||
quickFilterMainTypeWidget->addSettingsWidget(mainTypeFilterWidget);
|
||||
quickFilterSubTypeWidget->addSettingsWidget(subTypeFilterWidget);
|
||||
quickFilterSetWidget->addSettingsWidget(setFilterWidget);
|
||||
quickFilterFormatLegalityWidget->addSettingsWidget(formatLegalityWidget);
|
||||
|
||||
filterContainerLayout->addWidget(sortByLabel);
|
||||
filterContainerLayout->addWidget(sortColumnCombo);
|
||||
filterContainerLayout->addWidget(sortOrderCombo);
|
||||
filterContainerLayout->addWidget(filterByLabel);
|
||||
filterContainerLayout->addWidget(quickFilterSaveLoadWidget);
|
||||
filterContainerLayout->addWidget(quickFilterNameWidget);
|
||||
filterContainerLayout->addWidget(quickFilterMainTypeWidget);
|
||||
filterContainerLayout->addWidget(quickFilterSubTypeWidget);
|
||||
filterContainerLayout->addWidget(quickFilterSetWidget);
|
||||
filterContainerLayout->addWidget(quickFilterFormatLegalityWidget);
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayFilterToolbarWidget::retranslateUi()
|
||||
{
|
||||
sortByLabel->setText(tr("Sort by:"));
|
||||
filterByLabel->setText(tr("Filter by:"));
|
||||
|
||||
quickFilterSaveLoadWidget->setToolTip(tr("Save and load filters"));
|
||||
quickFilterNameWidget->setToolTip(tr("Filter by exact card name"));
|
||||
quickFilterSubTypeWidget->setToolTip(tr("Filter by card sub-type"));
|
||||
quickFilterSetWidget->setToolTip(tr("Filter by set"));
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
#ifndef COCKATRICE_VISUAL_DATABASE_DISPLAY_FILTER_TOOLBAR_WIDGET_H
|
||||
#define COCKATRICE_VISUAL_DATABASE_DISPLAY_FILTER_TOOLBAR_WIDGET_H
|
||||
|
||||
#include "visual_database_display_filter_save_load_widget.h"
|
||||
#include "visual_database_display_format_legality_filter_widget.h"
|
||||
#include "visual_database_display_main_type_filter_widget.h"
|
||||
#include "visual_database_display_name_filter_widget.h"
|
||||
#include "visual_database_display_set_filter_widget.h"
|
||||
#include "visual_database_display_sub_type_filter_widget.h"
|
||||
|
||||
class VisualDatabaseDisplayWidget;
|
||||
|
||||
class VisualDatabaseDisplayFilterToolbarWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
signals:
|
||||
void searchModelChanged();
|
||||
|
||||
public:
|
||||
explicit VisualDatabaseDisplayFilterToolbarWidget(VisualDatabaseDisplayWidget *parent);
|
||||
void initialize();
|
||||
void retranslateUi();
|
||||
|
||||
private:
|
||||
VisualDatabaseDisplayWidget *visualDatabaseDisplay;
|
||||
|
||||
QLabel *sortByLabel;
|
||||
QComboBox *sortColumnCombo, *sortOrderCombo;
|
||||
|
||||
QLabel *filterByLabel;
|
||||
|
||||
QHBoxLayout *filterContainerLayout;
|
||||
SettingsButtonWidget *quickFilterSaveLoadWidget;
|
||||
VisualDatabaseDisplayFilterSaveLoadWidget *saveLoadWidget;
|
||||
SettingsButtonWidget *quickFilterNameWidget;
|
||||
VisualDatabaseDisplayNameFilterWidget *nameFilterWidget;
|
||||
SettingsButtonWidget *quickFilterMainTypeWidget;
|
||||
VisualDatabaseDisplayMainTypeFilterWidget *mainTypeFilterWidget;
|
||||
SettingsButtonWidget *quickFilterSubTypeWidget;
|
||||
VisualDatabaseDisplaySubTypeFilterWidget *subTypeFilterWidget;
|
||||
SettingsButtonWidget *quickFilterSetWidget;
|
||||
VisualDatabaseDisplaySetFilterWidget *setFilterWidget;
|
||||
SettingsButtonWidget *quickFilterFormatLegalityWidget;
|
||||
VisualDatabaseDisplayFormatLegalityFilterWidget *formatLegalityWidget;
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_VISUAL_DATABASE_DISPLAY_FILTER_TOOLBAR_WIDGET_H
|
||||
|
|
@ -14,11 +14,10 @@ VisualDatabaseDisplayFormatLegalityFilterWidget::VisualDatabaseDisplayFormatLega
|
|||
: QWidget(parent), filterModel(_filterModel)
|
||||
{
|
||||
allFormatsWithCount = CardDatabaseManager::query()->getAllFormatsWithCount();
|
||||
setMinimumWidth(300);
|
||||
setMaximumHeight(300);
|
||||
|
||||
setMaximumHeight(75);
|
||||
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
|
||||
|
||||
layout = new QHBoxLayout(this);
|
||||
layout = new QVBoxLayout(this);
|
||||
setLayout(layout);
|
||||
layout->setContentsMargins(0, 1, 0, 1);
|
||||
layout->setSpacing(1);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ private:
|
|||
FilterTreeModel *filterModel;
|
||||
QMap<QString, int> allFormatsWithCount;
|
||||
QSpinBox *spinBox;
|
||||
QHBoxLayout *layout;
|
||||
QVBoxLayout *layout;
|
||||
FlowWidget *flowWidget;
|
||||
QPushButton *toggleButton; // Mode switch button
|
||||
|
||||
|
|
|
|||
|
|
@ -12,13 +12,12 @@ VisualDatabaseDisplayMainTypeFilterWidget::VisualDatabaseDisplayMainTypeFilterWi
|
|||
FilterTreeModel *_filterModel)
|
||||
: QWidget(parent), filterModel(_filterModel)
|
||||
{
|
||||
allMainCardTypesWithCount = CardDatabaseManager::query()->getAllMainCardTypesWithCount();
|
||||
// Get all main card types with their count
|
||||
allMainCardTypesWithCount = CardDatabaseManager::query()->getAllMainCardTypesWithCount();
|
||||
setMinimumWidth(300);
|
||||
setMaximumHeight(200);
|
||||
|
||||
setMaximumHeight(75);
|
||||
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
|
||||
|
||||
layout = new QHBoxLayout(this);
|
||||
layout = new QVBoxLayout(this);
|
||||
setLayout(layout);
|
||||
layout->setContentsMargins(0, 1, 0, 1);
|
||||
layout->setSpacing(1);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ private:
|
|||
FilterTreeModel *filterModel;
|
||||
QMap<QString, int> allMainCardTypesWithCount;
|
||||
QSpinBox *spinBox;
|
||||
QHBoxLayout *layout;
|
||||
QVBoxLayout *layout;
|
||||
FlowWidget *flowWidget;
|
||||
QPushButton *toggleButton; // Mode switch button
|
||||
|
||||
|
|
|
|||
|
|
@ -101,49 +101,9 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
|
|||
|
||||
searchEdit->setTreeView(databaseView);
|
||||
|
||||
sortByLabel = new QLabel(this);
|
||||
sortColumnCombo = new QComboBox(this);
|
||||
sortColumnCombo->setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy::AdjustToContents);
|
||||
sortOrderCombo = new QComboBox(this);
|
||||
sortOrderCombo->setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy::AdjustToContents);
|
||||
|
||||
sortOrderCombo->addItem("Ascending", Qt::AscendingOrder);
|
||||
sortOrderCombo->addItem("Descending", Qt::DescendingOrder);
|
||||
sortOrderCombo->view()->setMinimumWidth(sortOrderCombo->view()->sizeHintForColumn(0));
|
||||
sortOrderCombo->adjustSize();
|
||||
|
||||
// Populate columns dynamically from the model
|
||||
for (int i = 0; i < databaseDisplayModel->columnCount(); ++i) {
|
||||
QString header = databaseDisplayModel->headerData(i, Qt::Horizontal).toString();
|
||||
sortColumnCombo->addItem(header, i);
|
||||
}
|
||||
|
||||
sortColumnCombo->view()->setMinimumWidth(sortColumnCombo->view()->sizeHintForColumn(0));
|
||||
sortColumnCombo->adjustSize();
|
||||
|
||||
connect(sortColumnCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this]() {
|
||||
int column = sortColumnCombo->currentData().toInt();
|
||||
Qt::SortOrder order = static_cast<Qt::SortOrder>(sortOrderCombo->currentData().toInt());
|
||||
databaseView->sortByColumn(column, order);
|
||||
|
||||
searchModelChanged();
|
||||
});
|
||||
|
||||
connect(sortOrderCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this]() {
|
||||
int column = sortColumnCombo->currentData().toInt();
|
||||
Qt::SortOrder order = static_cast<Qt::SortOrder>(sortOrderCombo->currentData().toInt());
|
||||
databaseView->sortByColumn(column, order);
|
||||
|
||||
searchModelChanged();
|
||||
});
|
||||
|
||||
colorFilterWidget = new VisualDatabaseDisplayColorFilterWidget(this, filterModel);
|
||||
|
||||
filterContainer = new QWidget(this);
|
||||
filterContainerLayout = new QHBoxLayout(filterContainer);
|
||||
filterContainer->setLayout(filterContainerLayout);
|
||||
|
||||
filterByLabel = new QLabel(this);
|
||||
filterContainer = new VisualDatabaseDisplayFilterToolbarWidget(this);
|
||||
|
||||
clearFilterWidget = new QToolButton();
|
||||
clearFilterWidget->setFixedSize(32, 32);
|
||||
|
|
@ -158,20 +118,6 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
|
|||
emit filterModel->layoutChanged();
|
||||
});
|
||||
|
||||
quickFilterSaveLoadWidget = new SettingsButtonWidget(this);
|
||||
quickFilterSaveLoadWidget->setButtonIcon(QPixmap("theme:icons/lock"));
|
||||
|
||||
quickFilterNameWidget = new SettingsButtonWidget(this);
|
||||
quickFilterNameWidget->setButtonIcon(QPixmap("theme:icons/rename"));
|
||||
|
||||
quickFilterSubTypeWidget = new SettingsButtonWidget(this);
|
||||
quickFilterSubTypeWidget->setButtonIcon(QPixmap("theme:icons/player"));
|
||||
|
||||
quickFilterSetWidget = new SettingsButtonWidget(this);
|
||||
quickFilterSetWidget->setButtonIcon(QPixmap("theme:icons/scales"));
|
||||
|
||||
filterContainer->setMaximumHeight(80);
|
||||
|
||||
databaseLoadIndicator = new QLabel(this);
|
||||
databaseLoadIndicator->setAlignment(Qt::AlignCenter);
|
||||
|
||||
|
|
@ -180,12 +126,7 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
|
|||
if (CardDatabaseManager::getInstance()->getLoadStatus() != LoadStatus::Ok) {
|
||||
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this,
|
||||
&VisualDatabaseDisplayWidget::initialize);
|
||||
sortByLabel->setVisible(false);
|
||||
filterByLabel->setVisible(false);
|
||||
quickFilterSaveLoadWidget->setVisible(false);
|
||||
quickFilterNameWidget->setVisible(false);
|
||||
quickFilterSubTypeWidget->setVisible(false);
|
||||
quickFilterSetWidget->setVisible(false);
|
||||
filterContainer->setVisible(false);
|
||||
} else {
|
||||
initialize();
|
||||
databaseLoadIndicator->setVisible(false);
|
||||
|
|
@ -198,35 +139,7 @@ void VisualDatabaseDisplayWidget::initialize()
|
|||
{
|
||||
databaseLoadIndicator->setVisible(false);
|
||||
|
||||
sortByLabel->setVisible(true);
|
||||
filterByLabel->setVisible(true);
|
||||
quickFilterSaveLoadWidget->setVisible(true);
|
||||
quickFilterNameWidget->setVisible(true);
|
||||
quickFilterSubTypeWidget->setVisible(true);
|
||||
quickFilterSetWidget->setVisible(true);
|
||||
|
||||
saveLoadWidget = new VisualDatabaseDisplayFilterSaveLoadWidget(this, filterModel);
|
||||
nameFilterWidget = new VisualDatabaseDisplayNameFilterWidget(this, deckEditor, filterModel);
|
||||
mainTypeFilterWidget = new VisualDatabaseDisplayMainTypeFilterWidget(this, filterModel);
|
||||
formatLegalityWidget = new VisualDatabaseDisplayFormatLegalityFilterWidget(this, filterModel);
|
||||
subTypeFilterWidget = new VisualDatabaseDisplaySubTypeFilterWidget(this, filterModel);
|
||||
setFilterWidget = new VisualDatabaseDisplaySetFilterWidget(this, filterModel);
|
||||
|
||||
quickFilterSaveLoadWidget->addSettingsWidget(saveLoadWidget);
|
||||
quickFilterNameWidget->addSettingsWidget(nameFilterWidget);
|
||||
quickFilterSubTypeWidget->addSettingsWidget(subTypeFilterWidget);
|
||||
quickFilterSetWidget->addSettingsWidget(setFilterWidget);
|
||||
|
||||
filterContainerLayout->addWidget(sortByLabel);
|
||||
filterContainerLayout->addWidget(sortColumnCombo);
|
||||
filterContainerLayout->addWidget(sortOrderCombo);
|
||||
filterContainerLayout->addWidget(filterByLabel);
|
||||
filterContainerLayout->addWidget(quickFilterSaveLoadWidget);
|
||||
filterContainerLayout->addWidget(quickFilterNameWidget);
|
||||
filterContainerLayout->addWidget(quickFilterSubTypeWidget);
|
||||
filterContainerLayout->addWidget(quickFilterSetWidget);
|
||||
filterContainerLayout->addWidget(mainTypeFilterWidget);
|
||||
filterContainerLayout->addWidget(formatLegalityWidget);
|
||||
filterContainer->initialize();
|
||||
|
||||
searchLayout->addWidget(colorFilterWidget);
|
||||
searchLayout->addWidget(clearFilterWidget);
|
||||
|
|
@ -246,11 +159,11 @@ void VisualDatabaseDisplayWidget::initialize()
|
|||
debounceTimer = new QTimer(this);
|
||||
debounceTimer->setSingleShot(true); // Ensure it only fires once after the timeout
|
||||
|
||||
connect(debounceTimer, &QTimer::timeout, this, &VisualDatabaseDisplayWidget::searchModelChanged);
|
||||
connect(debounceTimer, &QTimer::timeout, this, &VisualDatabaseDisplayWidget::onSearchModelChanged);
|
||||
|
||||
databaseDisplayModel->setFilterTree(filterModel->filterTree());
|
||||
|
||||
connect(filterModel, &FilterTreeModel::layoutChanged, this, &VisualDatabaseDisplayWidget::searchModelChanged);
|
||||
connect(filterModel, &FilterTreeModel::layoutChanged, this, &VisualDatabaseDisplayWidget::onSearchModelChanged);
|
||||
|
||||
loadCardsTimer = new QTimer(this);
|
||||
loadCardsTimer->setSingleShot(true); // Ensure it only fires once after the timeout
|
||||
|
|
@ -264,16 +177,7 @@ void VisualDatabaseDisplayWidget::initialize()
|
|||
void VisualDatabaseDisplayWidget::retranslateUi()
|
||||
{
|
||||
databaseLoadIndicator->setText(tr("Loading database ..."));
|
||||
|
||||
clearFilterWidget->setToolTip(tr("Clear all filters"));
|
||||
|
||||
sortByLabel->setText(tr("Sort by:"));
|
||||
filterByLabel->setText(tr("Filter by:"));
|
||||
|
||||
quickFilterSaveLoadWidget->setToolTip(tr("Save and load filters"));
|
||||
quickFilterNameWidget->setToolTip(tr("Filter by exact card name"));
|
||||
quickFilterSubTypeWidget->setToolTip(tr("Filter by card sub-type"));
|
||||
quickFilterSetWidget->setToolTip(tr("Filter by set"));
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayWidget::resizeEvent(QResizeEvent *event)
|
||||
|
|
@ -332,7 +236,7 @@ void VisualDatabaseDisplayWidget::updateSearch(const QString &search) const
|
|||
QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
|
||||
}
|
||||
|
||||
void VisualDatabaseDisplayWidget::searchModelChanged()
|
||||
void VisualDatabaseDisplayWidget::onSearchModelChanged()
|
||||
{
|
||||
if (flowWidget->isVisible()) {
|
||||
// Clear the current page and prepare for new data
|
||||
|
|
|
|||
|
|
@ -16,12 +16,7 @@
|
|||
#include "../general/layout_containers/overlap_control_widget.h"
|
||||
#include "../utility/custom_line_edit.h"
|
||||
#include "visual_database_display_color_filter_widget.h"
|
||||
#include "visual_database_display_filter_save_load_widget.h"
|
||||
#include "visual_database_display_format_legality_filter_widget.h"
|
||||
#include "visual_database_display_main_type_filter_widget.h"
|
||||
#include "visual_database_display_name_filter_widget.h"
|
||||
#include "visual_database_display_set_filter_widget.h"
|
||||
#include "visual_database_display_sub_type_filter_widget.h"
|
||||
#include "visual_database_display_filter_toolbar_widget.h"
|
||||
|
||||
#include <QLoggingCategory>
|
||||
#include <QVBoxLayout>
|
||||
|
|
@ -52,6 +47,21 @@ public:
|
|||
void sortCardList(const QStringList &properties, Qt::SortOrder order) const;
|
||||
void setDeckList(const DeckList &new_deck_list_model);
|
||||
|
||||
AbstractTabDeckEditor *getDeckEditor()
|
||||
{
|
||||
return deckEditor;
|
||||
}
|
||||
|
||||
CardDatabaseDisplayModel *getDatabaseDisplayModel()
|
||||
{
|
||||
return databaseDisplayModel;
|
||||
}
|
||||
|
||||
QTreeView *getDatabaseView()
|
||||
{
|
||||
return databaseView;
|
||||
}
|
||||
|
||||
QWidget *searchContainer;
|
||||
QHBoxLayout *searchLayout;
|
||||
SearchLineEdit *searchEdit;
|
||||
|
|
@ -60,7 +70,7 @@ public:
|
|||
VisualDatabaseDisplayColorFilterWidget *colorFilterWidget;
|
||||
|
||||
public slots:
|
||||
void searchModelChanged();
|
||||
void onSearchModelChanged();
|
||||
|
||||
signals:
|
||||
void cardClickedDatabaseDisplay(QMouseEvent *event, CardInfoPictureWithTextOverlayWidget *instance);
|
||||
|
|
@ -80,23 +90,8 @@ protected slots:
|
|||
private:
|
||||
QLabel *databaseLoadIndicator;
|
||||
|
||||
QLabel *sortByLabel;
|
||||
QComboBox *sortColumnCombo, *sortOrderCombo;
|
||||
|
||||
QLabel *filterByLabel;
|
||||
QToolButton *clearFilterWidget;
|
||||
QWidget *filterContainer;
|
||||
QHBoxLayout *filterContainerLayout;
|
||||
SettingsButtonWidget *quickFilterSaveLoadWidget;
|
||||
VisualDatabaseDisplayFilterSaveLoadWidget *saveLoadWidget;
|
||||
SettingsButtonWidget *quickFilterNameWidget;
|
||||
VisualDatabaseDisplayNameFilterWidget *nameFilterWidget;
|
||||
VisualDatabaseDisplayMainTypeFilterWidget *mainTypeFilterWidget;
|
||||
VisualDatabaseDisplayFormatLegalityFilterWidget *formatLegalityWidget;
|
||||
SettingsButtonWidget *quickFilterSubTypeWidget;
|
||||
VisualDatabaseDisplaySubTypeFilterWidget *subTypeFilterWidget;
|
||||
SettingsButtonWidget *quickFilterSetWidget;
|
||||
VisualDatabaseDisplaySetFilterWidget *setFilterWidget;
|
||||
VisualDatabaseDisplayFilterToolbarWidget *filterContainer;
|
||||
KeySignals searchKeySignals;
|
||||
AbstractTabDeckEditor *deckEditor;
|
||||
CardDatabaseModel *databaseModel;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue