Merge pull request #12896 from LillyJadeKatrin/retroachievements-visual-improvements

RetroAchievements - Dialog Visual Improvements
This commit is contained in:
JMC47 2024-06-30 01:30:34 -04:00 committed by GitHub
commit cff37a9f4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 28 additions and 14 deletions

View File

@ -47,6 +47,12 @@ AchievementBox::AchievementBox(QWidget* parent, rc_client_achievement_t* achieve
m_progress_label->setStyleSheet(QStringLiteral("background-color:transparent;")); m_progress_label->setStyleSheet(QStringLiteral("background-color:transparent;"));
m_progress_label->setAlignment(Qt::AlignCenter); m_progress_label->setAlignment(Qt::AlignCenter);
QVBoxLayout* a_col_left = new QVBoxLayout();
a_col_left->addSpacerItem(new QSpacerItem(0, 0));
a_col_left->addWidget(m_badge);
a_col_left->addSpacerItem(new QSpacerItem(0, 0));
a_col_left->setSizeConstraint(QLayout::SetFixedSize);
a_col_left->setAlignment(Qt::AlignCenter);
QVBoxLayout* a_col_right = new QVBoxLayout(); QVBoxLayout* a_col_right = new QVBoxLayout();
a_col_right->addWidget(title); a_col_right->addWidget(title);
a_col_right->addWidget(description); a_col_right->addWidget(description);
@ -57,7 +63,7 @@ AchievementBox::AchievementBox(QWidget* parent, rc_client_achievement_t* achieve
a_prog_layout->setContentsMargins(0, 0, 0, 0); a_prog_layout->setContentsMargins(0, 0, 0, 0);
a_prog_layout->addWidget(m_progress_label); a_prog_layout->addWidget(m_progress_label);
QHBoxLayout* a_total = new QHBoxLayout(); QHBoxLayout* a_total = new QHBoxLayout();
a_total->addWidget(m_badge); a_total->addLayout(a_col_left);
a_total->addLayout(a_col_right); a_total->addLayout(a_col_right);
setLayout(a_total); setLayout(a_total);

View File

@ -30,6 +30,7 @@ AchievementLeaderboardWidget::AchievementLeaderboardWidget(QWidget* parent) : QW
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
layout->setAlignment(Qt::AlignTop); layout->setAlignment(Qt::AlignTop);
layout->addWidget(m_common_box); layout->addWidget(m_common_box);
layout->setSizeConstraint(QLayout::SetFixedSize);
setLayout(layout); setLayout(layout);
} }
@ -50,7 +51,8 @@ void AchievementLeaderboardWidget::UpdateData(bool clean_all)
for (u32 bucket = 0; bucket < leaderboard_list->num_buckets; bucket++) for (u32 bucket = 0; bucket < leaderboard_list->num_buckets; bucket++)
{ {
const auto& leaderboard_bucket = leaderboard_list->buckets[bucket]; const auto& leaderboard_bucket = leaderboard_list->buckets[bucket];
m_common_layout->addWidget(new QLabel(tr(leaderboard_bucket.label))); m_common_layout->addWidget(new QLabel(tr(leaderboard_bucket.label)), row, 0);
row += 2;
for (u32 board = 0; board < leaderboard_bucket.num_leaderboards; board++) for (u32 board = 0; board < leaderboard_bucket.num_leaderboards; board++)
{ {
const auto* leaderboard = leaderboard_bucket.leaderboards[board]; const auto* leaderboard = leaderboard_bucket.leaderboards[board];
@ -64,24 +66,18 @@ void AchievementLeaderboardWidget::UpdateData(bool clean_all)
QVBoxLayout* a_col_left = new QVBoxLayout(); QVBoxLayout* a_col_left = new QVBoxLayout();
a_col_left->addWidget(a_title); a_col_left->addWidget(a_title);
a_col_left->addWidget(a_description); a_col_left->addWidget(a_description);
if (row > 0) QFrame* a_divider = new QFrame();
{ a_divider->setFrameShape(QFrame::HLine);
QFrame* a_divider = new QFrame(); m_common_layout->addWidget(a_divider, row - 1, 0);
a_divider->setFrameShape(QFrame::HLine);
m_common_layout->addWidget(a_divider, row - 1, 0);
}
m_common_layout->addLayout(a_col_left, row, 0); m_common_layout->addLayout(a_col_left, row, 0);
for (size_t ix = 0; ix < 4; ix++) for (size_t ix = 0; ix < 4; ix++)
{ {
QVBoxLayout* a_col = new QVBoxLayout(); QVBoxLayout* a_col = new QVBoxLayout();
for (size_t jx = 0; jx < 3; jx++) for (size_t jx = 0; jx < 3; jx++)
a_col->addWidget(new QLabel(QStringLiteral("---"))); a_col->addWidget(new QLabel(QStringLiteral("---")));
if (row > 0) QFrame* a_divider_2 = new QFrame();
{ a_divider_2->setFrameShape(QFrame::HLine);
QFrame* a_divider = new QFrame(); m_common_layout->addWidget(a_divider_2, row - 1, static_cast<int>(ix) + 1);
a_divider->setFrameShape(QFrame::HLine);
m_common_layout->addWidget(a_divider, row - 1, static_cast<int>(ix) + 1);
}
m_common_layout->addLayout(a_col, row, static_cast<int>(ix) + 1); m_common_layout->addLayout(a_col, row, static_cast<int>(ix) + 1);
} }
row += 2; row += 2;

View File

@ -33,6 +33,7 @@ AchievementProgressWidget::AchievementProgressWidget(QWidget* parent) : QWidget(
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
layout->setAlignment(Qt::AlignTop); layout->setAlignment(Qt::AlignTop);
layout->addWidget(m_common_box); layout->addWidget(m_common_box);
layout->setSizeConstraint(QLayout::SetFixedSize);
setLayout(layout); setLayout(layout);
} }

View File

@ -7,6 +7,8 @@
#include <mutex> #include <mutex>
#include <QDialogButtonBox> #include <QDialogButtonBox>
#include <QScrollArea>
#include <QScrollBar>
#include <QTabWidget> #include <QTabWidget>
#include <QVBoxLayout> #include <QVBoxLayout>
@ -83,6 +85,8 @@ void AchievementsWindow::UpdateData(AchievementManager::UpdatedItems updated_ite
m_header_widget->UpdateData(); m_header_widget->UpdateData();
m_progress_widget->UpdateData(true); m_progress_widget->UpdateData(true);
m_leaderboard_widget->UpdateData(true); m_leaderboard_widget->UpdateData(true);
static_cast<QScrollArea*>(m_tab_widget->widget(1))->verticalScrollBar()->setValue(0);
static_cast<QScrollArea*>(m_tab_widget->widget(2))->verticalScrollBar()->setValue(0);
} }
else else
{ {

View File

@ -493,3 +493,10 @@ QTableCornerButton::section {
border-left: 0px; border-left: 0px;
border-bottom: 0px; border-bottom: 0px;
} }
QProgressBar {
border: 2px solid grey;
border-radius: 5px;
background-color: #202020;
}