From 99d9ce10c3746392cafbc8ecabc6e3fb535f5d09 Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Wed, 7 May 2025 03:28:50 +0200 Subject: [PATCH] [GDE, VDS & VDE] Tooltips and labels (#5916) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add correct inversion for isHidden() on bannerCardLabel. * Add tooltips to VDS buttons. * Add tooltip to GDE button. * Add tooltips to visual deck editor buttons. * Add tooltips to visual database display buttons. * Lint. --------- Co-authored-by: Lukas BrĂ¼bach --- .../deck_editor/deck_editor_deck_dock_widget.cpp | 3 ++- .../visual_database_display_color_filter_widget.cpp | 2 ++ ...sual_database_display_filter_save_load_widget.cpp | 1 + ...sual_database_display_main_type_filter_widget.cpp | 8 ++++++++ ...visual_database_display_main_type_filter_widget.h | 1 + .../visual_database_display_name_filter_widget.cpp | 1 + ...isual_database_display_sub_type_filter_widget.cpp | 8 ++++++++ .../visual_database_display_sub_type_filter_widget.h | 1 + .../visual_database_display_widget.cpp | 12 ++++++++++++ .../visual_database_display_widget.h | 1 + .../visual_deck_editor/visual_deck_editor_widget.cpp | 5 +++++ .../deck_preview_color_identity_filter_widget.cpp | 1 + .../visual_deck_storage_widget.cpp | 3 +++ 13 files changed, 46 insertions(+), 1 deletion(-) diff --git a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp index 2fde0b305..af717fa36 100644 --- a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp +++ b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp @@ -91,7 +91,7 @@ void DeckEditorDeckDockWidget::createDeckDock() bannerCardLabel = new QLabel(); bannerCardLabel->setObjectName("bannerCardLabel"); bannerCardLabel->setText(tr("Banner Card")); - bannerCardLabel->setHidden(SettingsCache::instance().getDeckEditorBannerCardComboBoxVisible()); + bannerCardLabel->setHidden(!SettingsCache::instance().getDeckEditorBannerCardComboBoxVisible()); bannerCardComboBox = new QComboBox(this); connect(deckModel, &DeckListModel::dataChanged, this, [this]() { // Delay the update to avoid race conditions @@ -567,6 +567,7 @@ void DeckEditorDeckDockWidget::retranslateUi() setWindowTitle(tr("Deck")); nameLabel->setText(tr("Deck &name:")); + quickSettingsWidget->setToolTip(tr("Banner Card/Tags Visibility Settings")); showBannerCardCheckBox->setText(tr("Show banner card selection menu")); showTagsWidgetCheckBox->setText(tr("Show tags selection menu")); commentsLabel->setText(tr("&Comments:")); diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp index 681282fc4..e93253585 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_color_filter_widget.cpp @@ -58,6 +58,8 @@ void VisualDatabaseDisplayColorFilterWidget::retranslateUi() toggleButton->setText(tr("Mode: Include/Exclude")); break; } + + toggleButton->setToolTip(tr("Filter mode (AND/OR/NOT conjunctions of filters)")); } void VisualDatabaseDisplayColorFilterWidget::handleColorToggled(QChar color, bool active) diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp index 1a099501e..21ec205fd 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_filter_save_load_widget.cpp @@ -39,6 +39,7 @@ VisualDatabaseDisplayFilterSaveLoadWidget::VisualDatabaseDisplayFilterSaveLoadWi void VisualDatabaseDisplayFilterSaveLoadWidget::retranslateUi() { saveButton->setText(tr("Save Filter")); + saveButton->setToolTip(tr("Save all currently applied filters to a file")); filenameInput->setPlaceholderText(tr("Enter filename...")); } diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp index 688f8f4d2..8cf9c6605 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.cpp @@ -47,6 +47,14 @@ VisualDatabaseDisplayMainTypeFilterWidget::VisualDatabaseDisplayMainTypeFilterWi createMainTypeButtons(); // Populate buttons initially updateFilterMode(false); // Initialize toggle button text + + retranslateUi(); +} + +void VisualDatabaseDisplayMainTypeFilterWidget::retranslateUi() +{ + spinBox->setToolTip(tr("Do not display card main-types with less than this amount of cards in the database")); + toggleButton->setToolTip(tr("Filter mode (AND/OR/NOT conjunctions of filters)")); } void VisualDatabaseDisplayMainTypeFilterWidget::createMainTypeButtons() diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.h b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.h index b13071825..07086bbe3 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_main_type_filter_widget.h @@ -16,6 +16,7 @@ class VisualDatabaseDisplayMainTypeFilterWidget : public QWidget Q_OBJECT public: explicit VisualDatabaseDisplayMainTypeFilterWidget(QWidget *parent, FilterTreeModel *filterModel); + void retranslateUi(); void createMainTypeButtons(); void updateMainTypeButtonsVisibility(); int getMaxMainTypeCount() const; diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp index 69e782b66..e0ededd50 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_name_filter_widget.cpp @@ -45,6 +45,7 @@ void VisualDatabaseDisplayNameFilterWidget::retranslateUi() { searchBox->setPlaceholderText(tr("Filter by name...")); loadFromDeckButton->setText(tr("Load from Deck")); + loadFromDeckButton->setToolTip(tr("Apply all card names in currently loaded deck as exact match name filters")); } void VisualDatabaseDisplayNameFilterWidget::actLoadFromDeck() diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp index 4b8fc21d8..c6ea811a9 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.cpp @@ -51,6 +51,14 @@ VisualDatabaseDisplaySubTypeFilterWidget::VisualDatabaseDisplaySubTypeFilterWidg createSubTypeButtons(); // Populate buttons initially updateFilterMode(false); // Initialize the toggle button text + + retranslateUi(); +} + +void VisualDatabaseDisplaySubTypeFilterWidget::retranslateUi() +{ + spinBox->setToolTip(tr("Do not display card sub-types with less than this amount of cards in the database")); + toggleButton->setToolTip(tr("Filter mode (AND/OR/NOT conjunctions of filters)")); } void VisualDatabaseDisplaySubTypeFilterWidget::createSubTypeButtons() diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.h b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.h index 72a0a25bb..64c9c19cd 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_sub_type_filter_widget.h @@ -16,6 +16,7 @@ class VisualDatabaseDisplaySubTypeFilterWidget : public QWidget Q_OBJECT public: explicit VisualDatabaseDisplaySubTypeFilterWidget(QWidget *parent, FilterTreeModel *filterModel); + void retranslateUi(); void createSubTypeButtons(); void updateSubTypeButtonsVisibility(); int getMaxSubTypeCount() const; diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp index 9d82463be..f394f508f 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.cpp @@ -150,6 +150,18 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent, connect(loadCardsTimer, &QTimer::timeout, this, [this]() { loadCurrentPage(); }); loadCardsTimer->start(5000); + + retranslateUi(); +} + +void VisualDatabaseDisplayWidget::retranslateUi() +{ + clearFilterWidget->setToolTip(tr("Clear all filters")); + + 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) diff --git a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h index 6d75698dc..8f0cdba97 100644 --- a/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_database_display/visual_database_display_widget.h @@ -38,6 +38,7 @@ public: AbstractTabDeckEditor *deckEditor, CardDatabaseModel *database_model, CardDatabaseDisplayModel *database_display_model); + void retranslateUi(); void adjustCardsPerPage(); void populateCards(); diff --git a/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_widget.cpp index 0914a472e..1ebf59e36 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_widget.cpp @@ -190,7 +190,12 @@ void VisualDeckEditorWidget::retranslateUi() { sortLabel->setText(tr("Click and drag to change the sort order within the groups")); searchPushButton->setText(tr("Quick search and add card")); + searchPushButton->setToolTip(tr("Search for closest match in the database (with auto-suggestions) and add " + "preferred printing to the deck on pressing enter")); + sortCriteriaButton->setToolTip(tr("Configure how cards are sorted within their groups")); displayTypeButton->setText(tr("Flat Layout")); + displayTypeButton->setToolTip( + tr("Change how cards are displayed within zones (i.e. overlapped or fully visible.)")); } void VisualDeckEditorWidget::updateZoneWidgets() diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_filter_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_filter_widget.cpp index b048b2372..ef59e90ff 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_filter_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_color_identity_filter_widget.cpp @@ -47,6 +47,7 @@ void DeckPreviewColorIdentityFilterWidget::retranslateUi() { // Set the toggle button text based on the current mode toggleButton->setText(exactMatchMode ? tr("Mode: Exact Match") : tr("Mode: Includes")); + toggleButton->setToolTip(tr("Color identity filter mode (AND/OR/NOT conjunctions of filters)")); } void DeckPreviewColorIdentityFilterWidget::handleColorToggled(QChar color, bool active) 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 4e879bd65..5a27728a3 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 @@ -194,6 +194,9 @@ void VisualDeckStorageWidget::retranslateUi() drawUnusedColorIdentitiesCheckBox->setText(tr("Draw unused Color Identities")); unusedColorIdentitiesOpacityLabel->setText(tr("Unused Color Identities Opacity")); unusedColorIdentitiesOpacitySpinBox->setSuffix("%"); + + refreshButton->setToolTip(tr("Refresh loaded files")); + quickSettingsWidget->setToolTip(tr("Visual Deck Storage Settings")); } /**