Skip to content

Commit 8f4e20d

Browse files
committed
Qt: add horizontal scrollbar to changelog
1 parent 42e9eda commit 8f4e20d

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

rpcs3/rpcs3qt/update_manager.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <QJsonObject>
2424
#include <QJsonDocument>
2525
#include <QTextBrowser>
26+
#include <QScrollBar>
2627

2728
#if defined(_WIN32) || defined(__APPLE__)
2829
#include <7z.h>
@@ -432,7 +433,6 @@ void update_manager::update(bool auto_accept, bool is_first_call)
432433
changelog_browser->setReadOnly(true);
433434
changelog_browser->setFrameShape(QFrame::NoFrame);
434435
changelog_browser->setLineWrapMode(QTextBrowser::NoWrap);
435-
changelog_browser->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
436436
changelog_browser->setHtml(QStringLiteral("<h3>%0</h3>%1").arg(tr("Changelog:"), changelog_html));
437437

438438
// Natural height for ≤6 entries, capped at 6-entry height for more
@@ -449,7 +449,6 @@ void update_manager::update(bool auto_accept, bool is_first_call)
449449
browser_height = static_cast<int>(changelog_browser->document()->size().height());
450450
}
451451

452-
changelog_browser->setFixedHeight(browser_height);
453452
changelog_browser->setVisible(false);
454453

455454
const QString show_text = tr("Show Changelog");
@@ -459,10 +458,18 @@ void update_manager::update(bool auto_accept, bool is_first_call)
459458
grid->addWidget(toggle_btn, row++, 0, 1, cols);
460459
grid->addWidget(changelog_browser, row++, 0, 1, cols);
461460

462-
QObject::connect(toggle_btn, &QPushButton::clicked, [changelog_browser, toggle_btn, &mb, show_text, hide_text]()
461+
QObject::connect(toggle_btn, &QPushButton::clicked, [changelog_browser, toggle_btn, &mb, show_text, hide_text, browser_height]() mutable
463462
{
464463
const bool becoming_visible = !changelog_browser->isVisible();
465464
changelog_browser->setVisible(becoming_visible);
465+
466+
// Adjust height for horizontal scrollbar
467+
if (changelog_browser->isVisible() && changelog_browser->horizontalScrollBar() && changelog_browser->horizontalScrollBar()->isVisible())
468+
{
469+
browser_height += changelog_browser->horizontalScrollBar()->sizeHint().height();
470+
}
471+
472+
changelog_browser->setFixedHeight(browser_height);
466473
toggle_btn->setText(becoming_visible ? hide_text : show_text);
467474
mb.adjustSize();
468475
});

0 commit comments

Comments
 (0)