mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-05 09:33:25 -08: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:
parent
ab13a6748f
commit
e73dd2b520
2 changed files with 34 additions and 13 deletions
|
|
@ -10,6 +10,7 @@
|
||||||
#include <QAbstractItemModel>
|
#include <QAbstractItemModel>
|
||||||
#include <QAbstractItemView>
|
#include <QAbstractItemView>
|
||||||
#include <QComboBox>
|
#include <QComboBox>
|
||||||
|
#include <QEvent>
|
||||||
#include <QFlags>
|
#include <QFlags>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
|
@ -110,12 +111,33 @@ void VisualDeckDisplayOptionsWidget::retranslateUi()
|
||||||
sortByLabel->setText(tr("Sort by:"));
|
sortByLabel->setText(tr("Sort by:"));
|
||||||
sortLabel->setText(tr("Click and drag to change the sort order within the groups"));
|
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"));
|
sortCriteriaButton->setToolTip(tr("Configure how cards are sorted within their groups"));
|
||||||
displayTypeButton->setButtonText(tr("Toggle Layout: Overlap"));
|
updateDisplayTypeButton();
|
||||||
displayTypeButton->setButtonIcon(themePixmap(QStringLiteral("icons/scales")));
|
|
||||||
displayTypeButton->setToolTip(
|
displayTypeButton->setToolTip(
|
||||||
tr("Change how cards are displayed within zones (i.e. overlapped or fully visible.)"));
|
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()
|
void VisualDeckDisplayOptionsWidget::onSortCriteriaChange()
|
||||||
{
|
{
|
||||||
QStringList selectedCriteria;
|
QStringList selectedCriteria;
|
||||||
|
|
@ -132,17 +154,8 @@ void VisualDeckDisplayOptionsWidget::updateDisplayType()
|
||||||
// Toggle the display type
|
// Toggle the display type
|
||||||
currentDisplayType = (currentDisplayType == DisplayType::Overlap) ? DisplayType::Flat : DisplayType::Overlap;
|
currentDisplayType = (currentDisplayType == DisplayType::Overlap) ? DisplayType::Flat : DisplayType::Overlap;
|
||||||
|
|
||||||
// Update UI and emit signal
|
// Update only the toggle button, not every string in the widget
|
||||||
switch (currentDisplayType) {
|
updateDisplayTypeButton();
|
||||||
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;
|
|
||||||
}
|
|
||||||
emit displayTypeChanged(currentDisplayType);
|
emit displayTypeChanged(currentDisplayType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
class CompactPushButton;
|
class CompactPushButton;
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
|
class QEvent;
|
||||||
class QHBoxLayout;
|
class QHBoxLayout;
|
||||||
class QLabel;
|
class QLabel;
|
||||||
class QListWidget;
|
class QListWidget;
|
||||||
|
|
@ -57,6 +58,7 @@ public slots:
|
||||||
* @brief Updates all UI text for retranslation/localization.
|
* @brief Updates all UI text for retranslation/localization.
|
||||||
*
|
*
|
||||||
* Called when the application language changes.
|
* Called when the application language changes.
|
||||||
|
* Also refreshes the layout toggle button text for the current display type.
|
||||||
*/
|
*/
|
||||||
void retranslateUi();
|
void retranslateUi();
|
||||||
void updateCompactMode(bool mode);
|
void updateCompactMode(bool mode);
|
||||||
|
|
@ -94,6 +96,10 @@ public:
|
||||||
return activeSortCriteria;
|
return activeSortCriteria;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/** @brief Retranslates on QEvent::LanguageChange. */
|
||||||
|
void changeEvent(QEvent *event) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
/**
|
/**
|
||||||
* @brief Slot triggered whenever the sort list is reordered.
|
* @brief Slot triggered whenever the sort list is reordered.
|
||||||
|
|
@ -110,6 +116,8 @@ private slots:
|
||||||
void updateDisplayType();
|
void updateDisplayType();
|
||||||
|
|
||||||
private:
|
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. */
|
/** @brief Layout for grouping and sorting UI elements. */
|
||||||
QHBoxLayout *groupAndSortLayout;
|
QHBoxLayout *groupAndSortLayout;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue