GameList: Improve grid size calculations

Can't seem to get the width to compute incorrectly on my machine
anymore.
pull/3551/head
Stenzek 2 months ago
parent ddaac7eb4c
commit 4b472dd51b
No known key found for this signature in database

@ -2028,22 +2028,19 @@ void GameListGridView::setZoomPct(int int_scale)
void GameListGridView::updateLayout() void GameListGridView::updateLayout()
{ {
const QScrollBar* const vertical_scrollbar = verticalScrollBar();
const int scrollbar_width = vertical_scrollbar->isVisible() ? vertical_scrollbar->width() : 0;
const int icon_width = m_model->getCoverArtSize(); const int icon_width = m_model->getCoverArtSize();
const int item_spacing = m_model->getCoverArtSpacing(); const int item_spacing = m_model->getCoverArtSpacing();
const int item_margin = style()->pixelMetric(QStyle::PM_FocusFrameHMargin, nullptr, this); const int item_margin = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, nullptr, this) * 2;
const int item_width = icon_width + item_margin + item_spacing;
// Split margin+spacing evenly across both sides of each item.
// I hate this +2. Not sure what's not being accounted for, but without it the calculation is off by 2 pixels...
const int item_width = icon_width + item_margin + item_spacing + 2;
// one line of text // one line of text
const int item_height = item_width + (m_model->getShowCoverTitles() ? fontMetrics().height() : 0); const int item_height = item_width + (m_model->getShowCoverTitles() ? fontMetrics().height() : 0);
const int available_width = width() - scrollbar_width; // the -1 here seems to be necessary otherwise we calculate too many columns..
const int num_columns = available_width / item_width; // can't see where in qlistview.cpp it's coming from though.
const int num_rows = (height() + (item_height - 1)) / item_height; const int available_width = viewport()->width();
const int num_columns = (available_width - 1) / item_width;
const int num_rows = (viewport()->height() + (item_height - 1)) / item_height;
const int margin = (available_width - (num_columns * item_width)) / 2; const int margin = (available_width - (num_columns * item_width)) / 2;
setGridSize(QSize(item_width, item_height)); setGridSize(QSize(item_width, item_height));

@ -534,7 +534,7 @@ bool QtHost::SetCriticalFolders()
!FileSystem::DirectoryExists(EmuFolders::Resources.c_str()) !FileSystem::DirectoryExists(EmuFolders::Resources.c_str())
#ifdef __linux__ #ifdef __linux__
// Broken packages that won't stop distributing my application. // Broken packages that won't stop distributing my application.
|| StringUtil::StartsWithNoCase(EmuFolders::AppRoot, "/usr/lib") || StringUtil::StartsWithNoCase(EmuFolders::AppRoot, "/usr""/lib")
#endif #endif
) )
{ {

Loading…
Cancel
Save