mirror of
https://git.citron-emu.org/citron/emulator
synced 2025-12-19 02:33:32 +00:00
fix(UI): Resolve Weird Horizontal UI Issue
The QScrollArea containing the top navigation buttons was slightly too tall for horizontal UI positioning, causing an unwanted vertical scrollbar to appear. This has been fixed by calculating the exact required height for the buttons and enforcing it on the scroll area, while also setting the vertical scrollbar policy to ScrollBarAlwaysOff. Signed-off-by: Collecting <collecting@noreply.localhost>
This commit is contained in:
@@ -263,7 +263,26 @@ void ConfigureDialog::SetUIPositioning(const QString& positioning) {
|
||||
button->setStyleSheet(QStringLiteral("text-align: left center; padding-left: 15px;"));
|
||||
}
|
||||
h_layout->addStretch(1);
|
||||
|
||||
if (!tab_buttons.empty()) {
|
||||
const int button_height = tab_buttons[0]->sizeHint().height();
|
||||
const int margins = h_layout->contentsMargins().top() + h_layout->contentsMargins().bottom();
|
||||
// The scroll area frame adds a few pixels, this accounts for it.
|
||||
const int fixed_height = button_height + margins + 4;
|
||||
ui->horizontalNavScrollArea->setMaximumHeight(fixed_height);
|
||||
ui->horizontalNavScrollArea->setMinimumHeight(fixed_height);
|
||||
ui->horizontalNavScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
}
|
||||
QSizePolicy policy = ui->topButtonWidget->sizePolicy();
|
||||
policy.setVerticalPolicy(QSizePolicy::Preferred);
|
||||
ui->topButtonWidget->setSizePolicy(policy);
|
||||
|
||||
} else { // Vertical
|
||||
|
||||
ui->horizontalNavScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
|
||||
ui->horizontalNavScrollArea->setMaximumHeight(QWIDGETSIZE_MAX);
|
||||
ui->horizontalNavScrollArea->setMinimumHeight(0);
|
||||
|
||||
ui->horizontalNavScrollArea->hide();
|
||||
ui->nav_container->show();
|
||||
if (h_layout->count() > 0) {
|
||||
@@ -278,6 +297,10 @@ void ConfigureDialog::SetUIPositioning(const QString& positioning) {
|
||||
button->setStyleSheet(QStringLiteral(""));
|
||||
}
|
||||
v_layout->addStretch(1);
|
||||
|
||||
QSizePolicy policy = ui->topButtonWidget->sizePolicy();
|
||||
policy.setVerticalPolicy(QSizePolicy::Expanding);
|
||||
ui->topButtonWidget->setSizePolicy(policy);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user