mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-10-26 01:20:39 -05:00
Refactor display type toggler and add language change handling in Vis… (#7581)
* Refactor display type toggler and add language change handling in VisualDeckDisplayOptionsWidget * Address review: extract updateDisplayTypeButton(), document changeEvent * Restore trailing newline in visual_deck_display_options_widget.cpp
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include <QAbstractItemModel>
|
||||
#include <QAbstractItemView>
|
||||
#include <QComboBox>
|
||||
#include <QEvent>
|
||||
#include <QFlags>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
@@ -110,12 +111,33 @@ void VisualDeckDisplayOptionsWidget::retranslateUi()
|
||||
sortByLabel->setText(tr("Sort by:"));
|
||||
sortLabel->setText(tr("Click and drag to change the sort order within the groups"));
|
||||
sortCriteriaButton->setToolTip(tr("Configure how cards are sorted within their groups"));
|
||||
displayTypeButton->setButtonText(tr("Toggle Layout: Overlap"));
|
||||
displayTypeButton->setButtonIcon(themePixmap(QStringLiteral("icons/scales")));
|
||||
updateDisplayTypeButton();
|
||||
displayTypeButton->setToolTip(
|
||||
tr("Change how cards are displayed within zones (i.e. overlapped or fully visible.)"));
|
||||
}
|
||||
|
||||
void VisualDeckDisplayOptionsWidget::updateDisplayTypeButton()
|
||||
{
|
||||
switch (currentDisplayType) {
|
||||
case DisplayType::Flat:
|
||||
displayTypeButton->setButtonText(tr("Toggle Layout: Flat"));
|
||||
displayTypeButton->setButtonIcon(themePixmap(QStringLiteral("icons/scroll")));
|
||||
break;
|
||||
case DisplayType::Overlap:
|
||||
displayTypeButton->setButtonText(tr("Toggle Layout: Overlap"));
|
||||
displayTypeButton->setButtonIcon(themePixmap(QStringLiteral("icons/scales")));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void VisualDeckDisplayOptionsWidget::changeEvent(QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::LanguageChange) {
|
||||
retranslateUi();
|
||||
}
|
||||
QWidget::changeEvent(event);
|
||||
}
|
||||
|
||||
void VisualDeckDisplayOptionsWidget::onSortCriteriaChange()
|
||||
{
|
||||
QStringList selectedCriteria;
|
||||
@@ -132,17 +154,8 @@ void VisualDeckDisplayOptionsWidget::updateDisplayType()
|
||||
// Toggle the display type
|
||||
currentDisplayType = (currentDisplayType == DisplayType::Overlap) ? DisplayType::Flat : DisplayType::Overlap;
|
||||
|
||||
// Update UI and emit signal
|
||||
switch (currentDisplayType) {
|
||||
case DisplayType::Flat:
|
||||
displayTypeButton->setButtonText(tr("Toggle Layout: Flat"));
|
||||
displayTypeButton->setButtonIcon(themePixmap(QStringLiteral("icons/scroll")));
|
||||
break;
|
||||
case DisplayType::Overlap:
|
||||
displayTypeButton->setButtonText(tr("Toggle Layout: Overlap"));
|
||||
displayTypeButton->setButtonIcon(themePixmap(QStringLiteral("icons/scales")));
|
||||
break;
|
||||
}
|
||||
// Update only the toggle button, not every string in the widget
|
||||
updateDisplayTypeButton();
|
||||
emit displayTypeChanged(currentDisplayType);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
class CompactPushButton;
|
||||
class QComboBox;
|
||||
class QEvent;
|
||||
class QHBoxLayout;
|
||||
class QLabel;
|
||||
class QListWidget;
|
||||
@@ -57,6 +58,7 @@ public slots:
|
||||
* @brief Updates all UI text for retranslation/localization.
|
||||
*
|
||||
* Called when the application language changes.
|
||||
* Also refreshes the layout toggle button text for the current display type.
|
||||
*/
|
||||
void retranslateUi();
|
||||
void updateCompactMode(bool mode);
|
||||
@@ -94,6 +96,10 @@ public:
|
||||
return activeSortCriteria;
|
||||
}
|
||||
|
||||
protected:
|
||||
/** @brief Retranslates on QEvent::LanguageChange. */
|
||||
void changeEvent(QEvent *event) override;
|
||||
|
||||
private slots:
|
||||
/**
|
||||
* @brief Slot triggered whenever the sort list is reordered.
|
||||
@@ -110,6 +116,8 @@ private slots:
|
||||
void updateDisplayType();
|
||||
|
||||
private:
|
||||
/** @brief Updates the layout toggle button's text and icon for the current display type. */
|
||||
void updateDisplayTypeButton();
|
||||
/** @brief Layout for grouping and sorting UI elements. */
|
||||
QHBoxLayout *groupAndSortLayout;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user