Address comments.

This commit is contained in:
Lukas Brübach 2025-04-11 11:21:52 +02:00
parent c029bbf90d
commit 9581044e3b
7 changed files with 38 additions and 19 deletions

View file

@ -21,11 +21,10 @@ VisualDatabaseDisplayFilterSaveLoadWidget::VisualDatabaseDisplayFilterSaveLoadWi
// Input for filter filename // Input for filter filename
filenameInput = new QLineEdit(this); filenameInput = new QLineEdit(this);
filenameInput->setPlaceholderText(tr("Enter filename..."));
layout->addWidget(filenameInput); layout->addWidget(filenameInput);
// Save button // Save button
saveButton = new QPushButton(tr("Save Filter"), this); saveButton = new QPushButton(this);
layout->addWidget(saveButton); layout->addWidget(saveButton);
connect(saveButton, &QPushButton::clicked, this, &VisualDatabaseDisplayFilterSaveLoadWidget::saveFilter); connect(saveButton, &QPushButton::clicked, this, &VisualDatabaseDisplayFilterSaveLoadWidget::saveFilter);
@ -34,6 +33,13 @@ VisualDatabaseDisplayFilterSaveLoadWidget::VisualDatabaseDisplayFilterSaveLoadWi
layout->addWidget(fileListWidget); layout->addWidget(fileListWidget);
refreshFilterList(); // Populate the file list on startup refreshFilterList(); // Populate the file list on startup
retranslateUi();
}
void VisualDatabaseDisplayFilterSaveLoadWidget::retranslateUi()
{
saveButton->setText(tr("Save Filter"));
filenameInput->setPlaceholderText(tr("Enter filename..."));
} }
void VisualDatabaseDisplayFilterSaveLoadWidget::saveFilter() void VisualDatabaseDisplayFilterSaveLoadWidget::saveFilter()
@ -67,7 +73,7 @@ void VisualDatabaseDisplayFilterSaveLoadWidget::saveFilter()
void VisualDatabaseDisplayFilterSaveLoadWidget::loadFilter(const QString &filename) void VisualDatabaseDisplayFilterSaveLoadWidget::loadFilter(const QString &filename)
{ {
QString filePath = SettingsCache::instance().getFiltersPath() + "/" + filename; QString filePath = SettingsCache::instance().getFiltersPath() + QDir::separator() + filename;
QFile file(filePath); QFile file(filePath);
if (!file.open(QIODevice::ReadOnly)) if (!file.open(QIODevice::ReadOnly))

View file

@ -26,6 +26,9 @@ public:
void refreshFilterList(); void refreshFilterList();
void deleteFilter(const QString &filename, QPushButton *deleteButton); void deleteFilter(const QString &filename, QPushButton *deleteButton);
public slots:
void retranslateUi();
private: private:
FilterTreeModel *filterModel; FilterTreeModel *filterModel;

View file

@ -16,7 +16,6 @@ VisualDatabaseDisplayNameFilterWidget::VisualDatabaseDisplayNameFilterWidget(QWi
setLayout(layout); setLayout(layout);
searchBox = new QLineEdit(this); searchBox = new QLineEdit(this);
searchBox->setPlaceholderText(tr("Filter by name..."));
layout->addWidget(searchBox); layout->addWidget(searchBox);
connect(searchBox, &QLineEdit::returnPressed, this, [this]() { connect(searchBox, &QLineEdit::returnPressed, this, [this]() {
@ -33,21 +32,28 @@ VisualDatabaseDisplayNameFilterWidget::VisualDatabaseDisplayNameFilterWidget(QWi
layout->addWidget(flowWidget); layout->addWidget(flowWidget);
loadFromDeckButton = new QPushButton(this); loadFromDeckButton = new QPushButton(this);
loadFromDeckButton->setText(tr("Load from Deck"));
layout->addWidget(loadFromDeckButton); layout->addWidget(loadFromDeckButton);
connect(loadFromDeckButton, &QPushButton::clicked, this, &VisualDatabaseDisplayNameFilterWidget::actLoadFromDeck); connect(loadFromDeckButton, &QPushButton::clicked, this, &VisualDatabaseDisplayNameFilterWidget::actLoadFromDeck);
connect(filterModel, &FilterTreeModel::layoutChanged, this, connect(filterModel, &FilterTreeModel::layoutChanged, this,
[this]() { QTimer::singleShot(100, this, &VisualDatabaseDisplayNameFilterWidget::syncWithFilterModel); }); [this]() { QTimer::singleShot(100, this, &VisualDatabaseDisplayNameFilterWidget::syncWithFilterModel); });
retranslateUi();
}
void VisualDatabaseDisplayNameFilterWidget::retranslateUi()
{
searchBox->setPlaceholderText(tr("Filter by name..."));
loadFromDeckButton->setText(tr("Load from Deck"));
} }
void VisualDatabaseDisplayNameFilterWidget::actLoadFromDeck() void VisualDatabaseDisplayNameFilterWidget::actLoadFromDeck()
{ {
DeckListModel *deck_list_model = deckEditor->deckDockWidget->deckModel; DeckListModel *deckListModel = deckEditor->deckDockWidget->deckModel;
if (!deck_list_model) if (!deckListModel)
return; return;
DeckList *decklist = deck_list_model->getDeckList(); DeckList *decklist = deckListModel->getDeckList();
if (!decklist) if (!decklist)
return; return;
InnerDecklistNode *listRoot = decklist->getRoot(); InnerDecklistNode *listRoot = decklist->getRoot();

View file

@ -25,6 +25,9 @@ public:
void updateFilterModel(); void updateFilterModel();
void syncWithFilterModel(); void syncWithFilterModel();
public slots:
void retranslateUi();
private: private:
AbstractTabDeckEditor *deckEditor; AbstractTabDeckEditor *deckEditor;
FilterTreeModel *filterModel; FilterTreeModel *filterModel;

View file

@ -80,13 +80,14 @@ void VisualDatabaseDisplaySetFilterWidget::updateSetButtonsVisibility()
{ {
QString filterText = searchBox->text().trimmed().toLower(); QString filterText = searchBox->text().trimmed().toLower();
for (auto it = setButtons.begin(); it != setButtons.end(); ++it) { for (const QString &setName : setButtons.keys()) {
QString shortName = it.key().toLower(); QPushButton *buttonForSet = setButtons[setName];
QString longName = it.value()->text().toLower(); QString shortName = setName.toLower();
bool alwaysVisible = activeSets.contains(it.key()) && activeSets[it.key()]; QString longName = buttonForSet->text().toLower();
bool alwaysVisible = activeSets.contains(setName) && activeSets[setName];
bool visible = bool visible =
alwaysVisible || filterText.isEmpty() || shortName.contains(filterText) || longName.contains(filterText); alwaysVisible || filterText.isEmpty() || shortName.contains(filterText) || longName.contains(filterText);
it.value()->setVisible(visible); buttonForSet->setVisible(visible);
} }
} }
@ -181,10 +182,10 @@ void VisualDatabaseDisplaySetFilterWidget::syncWithFilterModel()
} }
// Sync button states with selected sets // Sync button states with selected sets
for (auto it = setButtons.begin(); it != setButtons.end(); ++it) { for (const auto &key : setButtons.keys()) {
bool active = selectedSets.contains(it.key()); bool active = selectedSets.contains(key);
activeSets[it.key()] = active; activeSets[key] = active;
it.value()->setChecked(active); setButtons[key]->setChecked(active);
} }
} }

View file

@ -230,7 +230,7 @@ void VisualDatabaseDisplayWidget::loadNextPage()
if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(name.toString())) { if (CardInfoPtr info = CardDatabaseManager::getInstance()->getCard(name.toString())) {
addCard(info); addCard(info);
} else { } else {
qCDebug(VisualDatabaseDisplayLog) << "Card not found in database!"; qCDebug(VisualDatabaseDisplayLog) << "Card " << name.toString() << " not found in database!";
} }
} }

View file

@ -92,7 +92,7 @@ private:
QTimer *debounceTimer; QTimer *debounceTimer;
QTimer *loadCardsTimer; QTimer *loadCardsTimer;
int debounceTime = 300; int debounceTime = 300; // in Ms
int currentPage = 0; // Current page index int currentPage = 0; // Current page index
int cardsPerPage = 100; // Number of cards per page int cardsPerPage = 100; // Number of cards per page