diff --git a/.github/workflows/windows_build_qt.yml b/.github/workflows/windows_build_qt.yml index d34ebbad24..a2282145a9 100644 --- a/.github/workflows/windows_build_qt.yml +++ b/.github/workflows/windows_build_qt.yml @@ -32,7 +32,7 @@ on: qt_binary_url: required: false type: string - default: https://github.com/PCSX2/pcsx2-windows-dependencies/releases/download/2022-11-20/qt-6.4.0-x64.7z + default: https://github.com/PCSX2/pcsx2-windows-dependencies/releases/download/2023-04-25/qt-6.5.0-x64.7z qt_dir: required: false type: string diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake index f4d88a186b..260bc6d4a8 100644 --- a/cmake/SearchForStuff.cmake +++ b/cmake/SearchForStuff.cmake @@ -134,7 +134,7 @@ find_optional_system_library(libzip 3rdparty/libzip 1.8.0) if(QT_BUILD) # Default to bundled Qt6 for Windows. if(WIN32 AND NOT DEFINED Qt6_DIR) - set(Qt6_DIR ${CMAKE_SOURCE_DIR}/3rdparty/qt/6.4.0/msvc2022_64/lib/cmake/Qt6) + set(Qt6_DIR ${CMAKE_SOURCE_DIR}/3rdparty/qt/6.5.0/msvc2022_64/lib/cmake/Qt6) endif() # Find the Qt components that we need. diff --git a/common/vsprops/QtCompile.props b/common/vsprops/QtCompile.props index dea9058f8f..082668d70f 100644 --- a/common/vsprops/QtCompile.props +++ b/common/vsprops/QtCompile.props @@ -2,11 +2,11 @@ $(SolutionDir)bin\ - $(SolutionDir)3rdparty\qt\6.4.0\msvc2022_64\ - $(SolutionDir)3rdparty\qt\6.4.0\msvc2022_arm64\ + $(SolutionDir)3rdparty\qt\6.5.0\msvc2022_64\ + $(SolutionDir)3rdparty\qt\6.5.0\msvc2022_arm64\ $(PCSX2QTDIRDefault) $(PCSX2QTDIR)\ - $(SolutionDir)3rdparty\qt\6.4.0\msvc2022_64\ + $(SolutionDir)3rdparty\qt\6.5.0\msvc2022_64\ false true $(PCSX2QTDIR)include\ diff --git a/pcsx2-qt/GameList/GameListWidget.cpp b/pcsx2-qt/GameList/GameListWidget.cpp index 051a2af4b9..0975fa1d88 100644 --- a/pcsx2-qt/GameList/GameListWidget.cpp +++ b/pcsx2-qt/GameList/GameListWidget.cpp @@ -181,7 +181,7 @@ void GameListWidget::initialize() m_list_view = new GameListGridListView(m_ui.stack); m_list_view->setModel(m_sort_model); m_list_view->setModelColumn(GameListModel::Column_Cover); - m_list_view->setSelectionMode(QAbstractItemView::ExtendedSelection); + m_list_view->setSelectionMode(QAbstractItemView::SingleSelection); m_list_view->setViewMode(QListView::IconMode); m_list_view->setResizeMode(QListView::Adjust); m_list_view->setUniformItemSizes(true); diff --git a/pcsx2-qt/MainWindow.cpp b/pcsx2-qt/MainWindow.cpp index a1a3f41d71..0a2a8e4e46 100644 --- a/pcsx2-qt/MainWindow.cpp +++ b/pcsx2-qt/MainWindow.cpp @@ -95,7 +95,6 @@ const char* MainWindow::DEFAULT_THEME_NAME = "darkfusion"; MainWindow* g_main_window = nullptr; static QString s_unthemed_style_name; -static QPalette s_unthemed_palette; static bool s_unthemed_style_name_set; #if defined(_WIN32) || defined(__APPLE__) @@ -509,7 +508,6 @@ void MainWindow::updateApplicationTheme() { s_unthemed_style_name_set = true; s_unthemed_style_name = QApplication::style()->objectName(); - s_unthemed_palette = QApplication::style()->standardPalette(); } setStyleFromSettings(); @@ -522,9 +520,11 @@ void MainWindow::setStyleFromSettings() if (theme == "fusion") { - qApp->setPalette(s_unthemed_palette); - qApp->setStyleSheet(QString()); + // setPalette() shouldn't be necessary, as the documentation claims that setStyle() resets the palette, but it + // is here, to work around a bug in 6.4.x and 6.5.x where the palette doesn't restore after changing themes. + qApp->setPalette(QPalette()); qApp->setStyle(QStyleFactory::create("Fusion")); + qApp->setStyleSheet(QString()); } else if (theme == "darkfusion") { @@ -938,9 +938,11 @@ void MainWindow::setStyleFromSettings() } else { - qApp->setPalette(s_unthemed_palette); - qApp->setStyleSheet(QString()); + // setPalette() shouldn't be necessary, as the documentation claims that setStyle() resets the palette, but it + // is here, to work around a bug in 6.4.x and 6.5.x where the palette doesn't restore after changing themes. + qApp->setPalette(QPalette()); qApp->setStyle(s_unthemed_style_name); + qApp->setStyleSheet(QString()); } } diff --git a/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp b/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp index 91f6c59014..b4e5213241 100644 --- a/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp +++ b/pcsx2-qt/Settings/InterfaceSettingsWidget.cpp @@ -24,7 +24,7 @@ static const char* THEME_NAMES[] = { QT_TRANSLATE_NOOP("InterfaceSettingsWidget", "Native"), //: Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. - QT_TRANSLATE_NOOP("InterfaceSettingsWidget", "Fusion [Light]"), + QT_TRANSLATE_NOOP("InterfaceSettingsWidget", "Fusion [Light/Dark]"), //: Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated. QT_TRANSLATE_NOOP("InterfaceSettingsWidget", "Dark Fusion (Gray) [Dark]"), //: Ignore what Crowdin says in this string about "[Light]/[Dark]" being untouchable here, these are not variables in this case and must be translated.