From c6c80392115b7d8f7472b714152df875568dfee5 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 7 Aug 2025 21:07:57 +1000 Subject: [PATCH] Qt: Use header resize mode for settings panels --- .../gamecheatsettingswidget.cpp | 20 ++------------ src/duckstation-qt/gamecheatsettingswidget.h | 7 ----- src/duckstation-qt/gamelistsettingswidget.cpp | 19 +------------- src/duckstation-qt/gamelistsettingswidget.h | 3 --- src/duckstation-qt/gamesummarywidget.cpp | 20 +------------- src/duckstation-qt/gamesummarywidget.h | 5 ---- src/duckstation-qt/setupwizarddialog.cpp | 26 +------------------ src/duckstation-qt/setupwizarddialog.h | 7 ----- 8 files changed, 5 insertions(+), 102 deletions(-) diff --git a/src/duckstation-qt/gamecheatsettingswidget.cpp b/src/duckstation-qt/gamecheatsettingswidget.cpp index 9b98512e7..d18fa1be5 100644 --- a/src/duckstation-qt/gamecheatsettingswidget.cpp +++ b/src/duckstation-qt/gamecheatsettingswidget.cpp @@ -194,6 +194,7 @@ GameCheatSettingsWidget::GameCheatSettingsWidget(SettingsWindow* dialog, QWidget m_ui.cheatList->setItemDelegate(new CheatListOptionDelegate(this, m_ui.cheatList)); reloadList(); + QtUtils::SetColumnWidthsForTreeView(m_ui.cheatList, {-1, 150}); // We don't use the binder here, because they're binary - either enabled, or not in the file. m_ui.enableCheats->setChecked(sif->GetBoolValue("Cheats", "EnableCheats", false)); @@ -472,17 +473,6 @@ void GameCheatSettingsWidget::disableAllCheats() setStateForAll(false); } -void GameCheatSettingsWidget::resizeEvent(QResizeEvent* event) -{ - QWidget::resizeEvent(event); - resizeColumns(); -} - -void GameCheatSettingsWidget::resizeColumns() -{ - QtUtils::ResizeColumnsForTreeView(m_ui.cheatList, {-1, 150}); -} - void GameCheatSettingsWidget::setCheatEnabled(std::string name, bool enabled, bool save_and_reload_settings) { SettingsInterface* si = m_dialog->getSettingsInterface(); @@ -564,7 +554,6 @@ void GameCheatSettingsWidget::reloadList() // Expand all items, and ensure the size is correct. Otherwise editing codes resizes it. expandAllItems(); - resizeColumns(); } void GameCheatSettingsWidget::expandAllItems() @@ -1013,6 +1002,7 @@ GameCheatCodeChoiceEditorDialog::GameCheatCodeChoiceEditorDialog(QWidget* parent : QDialog(parent) { m_ui.setupUi(this); + QtUtils::SetColumnWidthsForTreeView(m_ui.optionList, {-1, 150}); connect(m_ui.add, &QToolButton::clicked, this, &GameCheatCodeChoiceEditorDialog::onAddClicked); connect(m_ui.remove, &QToolButton::clicked, this, &GameCheatCodeChoiceEditorDialog::onRemoveClicked); @@ -1032,12 +1022,6 @@ GameCheatCodeChoiceEditorDialog::GameCheatCodeChoiceEditorDialog(QWidget* parent GameCheatCodeChoiceEditorDialog::~GameCheatCodeChoiceEditorDialog() = default; -void GameCheatCodeChoiceEditorDialog::resizeEvent(QResizeEvent* event) -{ - QDialog::resizeEvent(event); - QtUtils::ResizeColumnsForTreeView(m_ui.optionList, {-1, 150}); -} - void GameCheatCodeChoiceEditorDialog::onAddClicked() { QTreeWidgetItem* item = new QTreeWidgetItem(); diff --git a/src/duckstation-qt/gamecheatsettingswidget.h b/src/duckstation-qt/gamecheatsettingswidget.h index 233fd327c..67203977d 100644 --- a/src/duckstation-qt/gamecheatsettingswidget.h +++ b/src/duckstation-qt/gamecheatsettingswidget.h @@ -43,9 +43,6 @@ public: bool hasCodeWithName(const std::string_view name) const; void disableAllCheats(); -protected: - void resizeEvent(QResizeEvent* event) override; - private Q_SLOTS: void onEnableCheatsChanged(Qt::CheckState state); void onSortCheatsToggled(bool checked); @@ -71,7 +68,6 @@ private: QStandardItem* getTreeWidgetParent(const std::string_view parent); void populateTreeWidgetItem(QStandardItem* parent, const Cheats::CodeInfo& pi, bool enabled); void expandAllItems(); - void resizeColumns(); void setCheatEnabled(std::string name, bool enabled, bool save_and_reload_settings); void setStateForAll(bool enabled); @@ -131,9 +127,6 @@ public: Cheats::CodeOptionList getNewOptions() const; -protected: - void resizeEvent(QResizeEvent* event) override; - private Q_SLOTS: void onAddClicked(); void onRemoveClicked(); diff --git a/src/duckstation-qt/gamelistsettingswidget.cpp b/src/duckstation-qt/gamelistsettingswidget.cpp index 286451352..746b3a6bc 100644 --- a/src/duckstation-qt/gamelistsettingswidget.cpp +++ b/src/duckstation-qt/gamelistsettingswidget.cpp @@ -36,6 +36,7 @@ GameListSettingsWidget::GameListSettingsWidget(SettingsWindow* dialog, QWidget* m_ui.searchDirectoryList->verticalHeader()->hide(); m_ui.searchDirectoryList->setCurrentIndex({}); m_ui.searchDirectoryList->setContextMenuPolicy(Qt::ContextMenuPolicy::CustomContextMenu); + QtUtils::SetColumnWidthsForTableView(m_ui.searchDirectoryList, {-1, 120}); connect(m_ui.searchDirectoryList, &QTableWidget::customContextMenuRequested, this, &GameListSettingsWidget::onDirectoryListContextMenuRequested); @@ -83,24 +84,6 @@ void GameListSettingsWidget::refreshExclusionList() m_ui.removeExcludedPath->setEnabled(false); } -bool GameListSettingsWidget::event(QEvent* event) -{ - bool res = QWidget::event(event); - - switch (event->type()) - { - case QEvent::LayoutRequest: - case QEvent::Resize: - QtUtils::ResizeColumnsForTableView(m_ui.searchDirectoryList, {-1, 120}); - break; - - default: - break; - } - - return res; -} - void GameListSettingsWidget::addPathToTable(const std::string& path, bool recursive) { const int row = m_ui.searchDirectoryList->rowCount(); diff --git a/src/duckstation-qt/gamelistsettingswidget.h b/src/duckstation-qt/gamelistsettingswidget.h index 3dc716ab3..2d59cfa03 100644 --- a/src/duckstation-qt/gamelistsettingswidget.h +++ b/src/duckstation-qt/gamelistsettingswidget.h @@ -35,9 +35,6 @@ private Q_SLOTS: void onScanForNewGamesClicked(); void onRescanAllGamesClicked(); -protected: - bool event(QEvent* event) override; - private: void addPathToTable(const std::string& path, bool recursive); void refreshDirectoryList(); diff --git a/src/duckstation-qt/gamesummarywidget.cpp b/src/duckstation-qt/gamesummarywidget.cpp index 68f22a5bc..1cf46efc0 100644 --- a/src/duckstation-qt/gamesummarywidget.cpp +++ b/src/duckstation-qt/gamesummarywidget.cpp @@ -115,25 +115,6 @@ void GameSummaryWidget::reloadGameSettings() m_ui.editInputProfile->setEnabled(m_ui.inputProfile->currentIndex() >= 1); } -void GameSummaryWidget::resizeEvent(QResizeEvent* event) -{ - QWidget::resizeEvent(event); - updateTracksInfoColumnSizes(); -} - -void GameSummaryWidget::showEvent(QShowEvent* event) -{ - QWidget::showEvent(event); - - // Need to put this on show as well, otherwise it lags behind the vertical scrollbar being enabled. - updateTracksInfoColumnSizes(); -} - -void GameSummaryWidget::updateTracksInfoColumnSizes() -{ - QtUtils::ResizeColumnsForTableView(m_ui.tracks, {70, 75, 70, 70, -1, 40}); -} - void GameSummaryWidget::populateUi(const std::string& path, const std::string& serial, DiscRegion region, const GameDatabase::Entry* entry) { @@ -362,6 +343,7 @@ void GameSummaryWidget::populateTracksInfo() {"Audio", "Mode 1", "Mode 1/Raw", "Mode 2", "Mode 2/Form 1", "Mode 2/Form 2", "Mode 2/Mix", "Mode 2/Raw"}}; m_ui.tracks->clearContents(); + QtUtils::SetColumnWidthsForTableView(m_ui.tracks, {70, 75, 70, 70, -1, 40}); std::unique_ptr image = CDImage::Open(m_path.c_str(), false, nullptr); if (!image) diff --git a/src/duckstation-qt/gamesummarywidget.h b/src/duckstation-qt/gamesummarywidget.h index 7f1ced200..d962b4a82 100644 --- a/src/duckstation-qt/gamesummarywidget.h +++ b/src/duckstation-qt/gamesummarywidget.h @@ -26,10 +26,6 @@ public: void reloadGameSettings(); -protected: - void resizeEvent(QResizeEvent* event) override; - void showEvent(QShowEvent* event) override; - private Q_SLOTS: void onSeparateDiscSettingsChanged(Qt::CheckState state); void onCustomLanguageChanged(int language); @@ -48,7 +44,6 @@ private: void setRevisionText(const QString& text); void populateTracksInfo(); - void updateTracksInfoColumnSizes(); Ui::GameSummaryWidget m_ui; SettingsWindow* m_dialog; diff --git a/src/duckstation-qt/setupwizarddialog.cpp b/src/duckstation-qt/setupwizarddialog.cpp index e7bdefddc..6502274e4 100644 --- a/src/duckstation-qt/setupwizarddialog.cpp +++ b/src/duckstation-qt/setupwizarddialog.cpp @@ -35,12 +35,6 @@ SetupWizardDialog::SetupWizardDialog() SetupWizardDialog::~SetupWizardDialog() = default; -void SetupWizardDialog::resizeEvent(QResizeEvent* event) -{ - QDialog::resizeEvent(event); - resizeDirectoryListColumns(); -} - bool SetupWizardDialog::canShowNextPage() { const int current_page = m_ui.pages->currentIndex(); @@ -112,20 +106,6 @@ void SetupWizardDialog::nextPage() m_ui.pages->setCurrentIndex(new_page); updatePageLabels(current_page); updatePageButtons(); - pageChangedTo(new_page); -} - -void SetupWizardDialog::pageChangedTo(int page) -{ - switch (page) - { - case Page_GameList: - resizeDirectoryListColumns(); - break; - - default: - break; - } } void SetupWizardDialog::updatePageLabels(int prev_page) @@ -266,6 +246,7 @@ void SetupWizardDialog::setupGameListPage() m_ui.searchDirectoryList->verticalHeader()->hide(); m_ui.searchDirectoryList->setCurrentIndex({}); m_ui.searchDirectoryList->setContextMenuPolicy(Qt::ContextMenuPolicy::CustomContextMenu); + QtUtils::SetColumnWidthsForTableView(m_ui.searchDirectoryList, {-1, 100}); connect(m_ui.searchDirectoryList, &QTableWidget::customContextMenuRequested, this, &SetupWizardDialog::onDirectoryListContextMenuRequested); @@ -391,11 +372,6 @@ void SetupWizardDialog::refreshDirectoryList() m_ui.removeSearchDirectoryButton->setEnabled(false); } -void SetupWizardDialog::resizeDirectoryListColumns() -{ - QtUtils::ResizeColumnsForTableView(m_ui.searchDirectoryList, {-1, 100}); -} - void SetupWizardDialog::setupControllerPage(bool initial) { static constexpr u32 NUM_PADS = 2; diff --git a/src/duckstation-qt/setupwizarddialog.h b/src/duckstation-qt/setupwizarddialog.h index b7d4eb4de..93ae0f030 100644 --- a/src/duckstation-qt/setupwizarddialog.h +++ b/src/duckstation-qt/setupwizarddialog.h @@ -35,21 +35,15 @@ private Q_SLOTS: void languageChanged(); void refreshBiosList(); - // void biosListItemChanged(const QTreeWidgetItem* current, const QTreeWidgetItem* previous); - // void listRefreshed(const QVector& items); void onDirectoryListContextMenuRequested(const QPoint& point); void onAddSearchDirectoryButtonClicked(); void onRemoveSearchDirectoryButtonClicked(); void onSearchDirectoryListSelectionChanged(); void refreshDirectoryList(); - void resizeDirectoryListColumns(); void doMultipleDeviceAutomaticBinding(u32 port, QLabel* update_label); -protected: - void resizeEvent(QResizeEvent* event); - private: enum Page : u32 { @@ -72,7 +66,6 @@ private: void setupAchievementsPage(bool initial); void updateStylesheets(); - void pageChangedTo(int page); void updatePageLabels(int prev_page); void updatePageButtons();