Skip to content

Commit 192270e

Browse files
committed
Fixup changeEvent
1 parent ead8978 commit 192270e

14 files changed

+149
-107
lines changed

src/widgets/common/ListWidget.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ void ListWidget::changeEvent(QEvent *e)
5454
a->setStatusTip(text);
5555
}
5656
}
57+
QWidget::changeEvent(e);
5758
}
5859

5960
void ListWidget::addSeparator(bool invisible)

src/widgets/common/OrientationWidget.cpp

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -151,33 +151,21 @@ void OrientationWidget::paintGrid(QPainter *p, double radius)
151151
int height = p->fontMetrics().height();
152152
double X = -radius * 0.94;
153153

154-
if(_zeroDirection == North) {
154+
bool condition = ((_zeroDirection == North) || (_zeroDirection == South)) ? value <= 180 : (value >= 90) && (value < 270);
155+
156+
if( (_zeroDirection == North) || (_zeroDirection == West))
155157
p->translate(X, -height);
156-
if (value <= 180) {
157-
p->translate(-X, height);
158-
p->rotate(180);
159-
}
160-
} else if (_zeroDirection == East) {
161-
p->translate(0, 0);
158+
159+
if (_zeroDirection == East)
160+
p->translate(0,0);
161+
162+
if (_zeroDirection == South || _zeroDirection == East)
162163
p->rotate(180);
163-
if (value >= 90 && value < 270) {
164-
p->translate(-X, height);
165-
p->rotate(180);
166-
}
167-
} else if (_zeroDirection == South) {
164+
165+
if(condition) {
166+
p->translate(-X, height);
168167
p->rotate(180);
169-
if (value <= 180) {
170-
p->translate(-X, height);
171-
p->rotate(180);
172-
}
173-
} else if(_zeroDirection == West) {
174-
p->translate(X, -height);
175-
if (value >= 90 && value < 270) {
176-
p->translate(-X, height);
177-
p->rotate(180);
178-
}
179168
}
180-
181169
p->drawText(QRectF(0, 0, radius * 0.9, height), _lblString, QTextOption(Qt::AlignCenter));
182170
}
183171

src/widgets/data/AchievementEditor.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,15 @@
1616
#include <AchievementEditor.h>
1717

1818
#include <QGridLayout>
19+
#include <QEvent>
1920
#include <QListWidget>
2021

22+
void AchievementEditor::changeEvent(QEvent *e)
23+
{
24+
if(e->type() == QEvent::PaletteChange)
25+
achievementList->setStyleSheet(QStringLiteral("QListView::indicator{width: %1px; height:%1px} QListView::item{padding: 0px;}").arg(QString::number(fontMetrics().height())));
26+
QWidget::changeEvent(e);
27+
}
2128
AchievementEditor::AchievementEditor(QWidget *parent) :
2229
QWidget(parent)
2330
{

src/widgets/data/AchievementEditor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ private slots:
5151
* \param index QModeIndex from where the change occurred
5252
*/
5353
void itemToggled(const QModelIndex &index);
54+
protected:
55+
void changeEvent(QEvent *e);
5456
private:
5557
void initDisplay(); /**< \brief create this items widgets*/
5658
FF7Achievements achievements; /**< \brief data class for widget*/

src/widgets/data/CharEditor.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,17 @@ CharEditor::CharEditor(QWidget *parent)
5252

5353
void CharEditor::changeEvent(QEvent *e)
5454
{
55-
if (e->type() != QEvent::LanguageChange) {
56-
QWidget::changeEvent(e);
55+
if (e->type() == QEvent::LanguageChange) {
56+
updateText();
57+
} else if(e->type() == QEvent::PaletteChange) {
58+
weapon_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0}"));
59+
armor_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0}"));
60+
accessory_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0}"));
61+
for(auto m : materiaSlotFrames) {
62+
m->setStyleSheet(QStringLiteral("QFrame{background-color:rgba(0,0,0,0);}"));
63+
}
5764
}
58-
updateText();
65+
QWidget::changeEvent(e);
5966
}
6067

6168
void CharEditor::updateText()
@@ -656,7 +663,7 @@ void CharEditor::init_display()
656663
weapon_materia_box->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
657664

658665
weapon_selection->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
659-
weapon_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0;}"));
666+
weapon_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0}"));
660667

661668
auto weapon_layout = new QVBoxLayout;
662669
weapon_layout->setContentsMargins(0, 0, 0, 0);
@@ -686,7 +693,7 @@ void CharEditor::init_display()
686693
armor_materia_box->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
687694

688695
armor_selection->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
689-
armor_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0;}"));
696+
armor_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0}"));
690697

691698
auto armor_layout = new QVBoxLayout;
692699
armor_layout->setContentsMargins(0, 0, 0, 0);
@@ -697,7 +704,7 @@ void CharEditor::init_display()
697704
armor_box->setLayout(armor_layout);
698705

699706
accessory_selection->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
700-
accessory_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0;}"));
707+
accessory_selection->setStyleSheet(QStringLiteral("QComboBox { combobox-popup: 0}"));
701708

702709
auto accessory_layout = new QVBoxLayout;
703710
accessory_layout->setContentsMargins(0, 0, 0, 0);

src/widgets/data/ChocoboEditor.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -504,8 +504,10 @@ QSpinBox *ChocoboEditor::makeSpinBox(int maxValue)
504504

505505
void ChocoboEditor::changeEvent(QEvent *e)
506506
{
507-
if (e->type() != QEvent::LanguageChange) {
508-
QWidget::changeEvent(e);
507+
if (e->type() == QEvent::LanguageChange) {
508+
updateText();
509+
} else if (e->type() == QEvent::PaletteChange) {
510+
cb_cantMate->setStyleSheet(QStringLiteral("QCheckBox::indicator {width: %1px; height: %1px;}").arg(QString::number(fontMetrics().height())));
509511
}
510-
updateText();
512+
QWidget::changeEvent(e);
511513
}

src/widgets/data/ChocoboLabel.cpp

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,30 @@
2424

2525
bool ChocoboLabel::event(QEvent *ev)
2626
{
27-
if(ev->type() == QEvent::PaletteChange) {
28-
setHoverColorStyle(QStringLiteral("rgba(%1,%2,%3,128);")
29-
.arg(QString::number(palette().highlight().color().red())
30-
, QString::number(palette().highlight().color().green())
31-
, QString::number(palette().highlight().color().blue())));
32-
return true;
33-
} else if (ev->type() == QEvent::MouseButtonPress && isEnabled) {
27+
if (ev->type() == QEvent::MouseButtonPress && isEnabled) {
3428
Q_EMIT clicked();
3529
return true;
36-
} else if (ev->type() == QEvent::LanguageChange) {
30+
}
31+
return QWidget::event(ev);
32+
}
33+
34+
void ChocoboLabel::changeEvent(QEvent *e)
35+
{
36+
if(e->type() == QEvent::PaletteChange) {
37+
setHoverColorStyle(QStringLiteral("rgba(%1,%2,%3,128);")
38+
.arg(QString::number(palette().highlight().color().red())
39+
, QString::number(palette().highlight().color().green())
40+
, QString::number(palette().highlight().color().blue())));
41+
chkOccupied->setProperty("HoverStyled", QVariant(true));
42+
chkOccupied->setStyleSheet(QStringLiteral("QCheckBox{ padding: 1px;} QCheckBox::indicator{width: %1px; height: %1px;}").arg(QString::number(fontMetrics().height())));
43+
setSelected(isSelected);
44+
} else if (e->type() == QEvent::LanguageChange) {
3745
btnCopy->setToolTip(QString(tr("Copy")));
3846
btnPaste->setToolTip(QString(tr("Paste")));
3947
btnRemove->setToolTip(QString(tr("Remove")));
4048
setRank(m_wins);
41-
return true;
42-
} else {
43-
return false;
4449
}
50+
QWidget::changeEvent(e);
4551
}
4652

4753
ChocoboLabel::ChocoboLabel(const QString &titleText, bool occupied, QWidget *parent) :
@@ -232,11 +238,14 @@ void ChocoboLabel::clearLabel()
232238

233239
void ChocoboLabel::setFontSize(int fontSize)
234240
{
235-
QString fontStyle = QString("font-size:%1pt;background-color:rgba(0,0,0,0);").arg(fontSize);
236-
lblName->setStyleSheet(fontStyle);
237-
lblSex->setStyleSheet(fontStyle);
238-
lblRank->setStyleSheet(fontStyle);
239-
lblType->setStyleSheet(fontStyle);
241+
if(m_fontSize != fontSize)
242+
m_fontSize = fontSize;
243+
auto fnt = lblName->font();
244+
fnt.setPointSize(fontSize);
245+
lblName->setFont(fnt);
246+
lblSex->setFont(fnt);
247+
lblRank->setFont(fnt);
248+
lblType->setFont(fnt);
240249
}
241250

242251
void ChocoboLabel::enable(bool enabled)
@@ -250,6 +259,7 @@ void ChocoboLabel::enable(bool enabled)
250259

251260
void ChocoboLabel::setSelected(bool selected)
252261
{
262+
isSelected = selected;
253263
if (selected) {
254264
outerFrame->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); innerFrame->setStyleSheet(SelectedBkStyle);
255265
} else {

src/widgets/data/ChocoboLabel.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ public slots:
5959
void clearLabel(void); /**< \brief Clear the labels data */
6060
void setHoverColorStyle(QString backgroundColor); /**< \brief Set the style for when you hover \param backgroundColor A valid color for a style sheet either a predefined color or rgb(r,g,b) style string */
6161
bool isOccupied(void); /**< \brief occupied state \return true if occupied*/
62+
protected:
63+
bool event(QEvent *ev);
64+
void changeEvent(QEvent *e);
6265
private:
6366
void enable(bool enabled); /**< \brief enable/disable inner part of the form when needed \param enabled enable the lower frame?*/
64-
bool event(QEvent *ev);
6567
QPushButton *btnCopy = nullptr; /**< \brief copy button */
6668
QPushButton *btnPaste = nullptr; /**< \brief paste button */
6769
QPushButton *btnRemove = nullptr; /**< \brief remove button */
@@ -74,5 +76,7 @@ public slots:
7476
QFrame *outerFrame = nullptr;/**< \brief outer frame of widget contains the label checkbox, copy,paste,remove buttons*/
7577
QString SelectedBkStyle;/**< \brief style for background when selected */
7678
int m_wins = -1;
79+
int m_fontSize = 14;
80+
bool isSelected;
7781
bool isEnabled; /**< \brief isEnabled hold if enabled */
7882
};

src/widgets/data/ChocoboManager.cpp

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,19 @@
2424

2525
void ChocoboManager::changeEvent(QEvent *e)
2626
{
27-
if (e->type() != QEvent::LanguageChange) {
28-
QWidget::changeEvent(e);
29-
}
30-
31-
lblStablesOwned ->setText(tr("Stables Owned"));
32-
lblStablesOccupied->setText(tr("Stables Occupied"));
33-
penBox->setTitle(tr("Fenced Chocobos"));
34-
updateCombos();
35-
for (int i = 0; i < 6; i++) {
36-
chocoboLabel[i]->setTitle(tr("Stable:%1").arg(QString::number(i + 1)));
37-
}
27+
if (e->type() == QEvent::LanguageChange) {
28+
lblStablesOwned ->setText(tr("Stables Owned"));
29+
lblStablesOccupied->setText(tr("Stables Occupied"));
30+
penBox->setTitle(tr("Fenced Chocobos"));
31+
updateCombos();
32+
for (int i = 0; i < 6; i++)
33+
chocoboLabel[i]->setTitle(tr("Stable:%1").arg(QString::number(i + 1)));
34+
} else if(e->type() == QEvent::PaletteChange) {
35+
QString color = QStringLiteral("%1,%2,%3").arg(palette().highlight().color().red(), palette().highlight().color().green(), palette().highlight().color().blue());
36+
for (int i = 0; i < 6; i++)
37+
chocoboLabel[i]->setHoverColorStyle(color);
38+
}
39+
QWidget::changeEvent(e);
3840
}
3941

4042
ChocoboManager::ChocoboManager(QWidget *parent) :
@@ -97,25 +99,25 @@ ChocoboManager::ChocoboManager(QWidget *parent) :
9799

98100
void ChocoboManager::setStablesOwned(int value)
99101
{
100-
if (value == stablesOwned) {
102+
if (value == stablesOwned)
101103
return;
102-
} else if (value < 0 || value > 6) {
104+
105+
if ((value < 0) || (value > 6))
103106
return;
104-
} else {
105-
disableChocoLabels();
106-
enableChocoboLabels(value);
107-
stablesOwned = qint8(value);
108-
Q_EMIT ownedChanged(qint8(value));
109-
for (int i = value; i < 6 ; i++) {
110-
if (chocoboLabel[i]->isOccupied()) {
111-
chocoboLabel[i]->setOccupied(false);
112-
setOccupied(stablesOccupied - 1, stableMask &= ~(1 << i));
113-
Q_EMIT occupiedChanged(stablesOccupied);
114-
Q_EMIT stableMaskChanged(stableMask);
115-
if (i == selectedStable) {
116-
selectedStable = -1;
117-
chocoboEditor->setHidden(true);
118-
}
107+
108+
disableChocoLabels();
109+
enableChocoboLabels(value);
110+
stablesOwned = qint8(value);
111+
Q_EMIT ownedChanged(qint8(value));
112+
for (int i = value; i < 6 ; i++) {
113+
if (chocoboLabel[i]->isOccupied()) {
114+
chocoboLabel[i]->setOccupied(false);
115+
setOccupied(stablesOccupied - 1, stableMask &= ~(1 << i));
116+
Q_EMIT occupiedChanged(stablesOccupied);
117+
Q_EMIT stableMaskChanged(stableMask);
118+
if (i == selectedStable) {
119+
selectedStable = -1;
120+
chocoboEditor->setHidden(true);
119121
}
120122
}
121123
}

src/widgets/data/ItemList.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ void ItemList::destroySelector()
9090
}
9191
void ItemList::changeEvent(QEvent *e)
9292
{
93-
if (e->type() != QEvent::LanguageChange)
94-
QTableWidget::changeEvent(e);
95-
itemupdate();
93+
if (e->type() == QEvent::LanguageChange)
94+
itemupdate();
95+
QTableWidget::changeEvent(e);
9696
}
9797

9898
ItemList::ItemList(QWidget *parent)

0 commit comments

Comments
 (0)