diff --git a/src/duckstation-qt/controllerglobalsettingswidget.cpp b/src/duckstation-qt/controllerglobalsettingswidget.cpp index 355a438fb..462b39794 100644 --- a/src/duckstation-qt/controllerglobalsettingswidget.cpp +++ b/src/duckstation-qt/controllerglobalsettingswidget.cpp @@ -153,8 +153,6 @@ ControllerGlobalSettingsWidget::ControllerGlobalSettingsWidget(QWidget* parent, &Settings::GetMultitapModeName, &Settings::GetMultitapModeDisplayName, Settings::DEFAULT_MULTITAP_MODE, MultitapMode::Count); connect(m_ui.multitapMode, &QComboBox::currentIndexChanged, this, [this]() { emit bindingSetupChanged(); }); - - QtUtils::RemoveEmptyRowsAndColumns(m_ui.mainLayout); } ControllerGlobalSettingsWidget::~ControllerGlobalSettingsWidget() = default; diff --git a/src/duckstation-qt/qtutils.cpp b/src/duckstation-qt/qtutils.cpp index fbbfcd295..32c27e4ca 100644 --- a/src/duckstation-qt/qtutils.cpp +++ b/src/duckstation-qt/qtutils.cpp @@ -138,104 +138,6 @@ void QtUtils::SetColumnWidthsForTreeView(QTreeView* view, const std::initializer SetColumnWidthForView(view, view->header(), widths); } -void QtUtils::RemoveEmptyRowsAndColumns(QGridLayout* const layout) -{ - int column = 0; - while (column < layout->columnCount()) - { - const int row_count = layout->rowCount(); - const int column_count = layout->columnCount(); - - // Lambda to check if a column has any items with origin in that column - static constexpr auto column_has_items = [](QGridLayout* layout, int rowCount, int c) { - for (int row = 0; row < rowCount; ++row) - { - QLayoutItem* item = layout->itemAtPosition(row, c); - if (item) - { - const int idx = layout->indexOf(item); - int itemRow, itemCol, rowSpan, colSpan; - layout->getItemPosition(idx, &itemRow, &itemCol, &rowSpan, &colSpan); - if (itemCol == c) - return true; - } - } - return false; - }; - - if (!column_has_items(layout, row_count, column)) - { - // Count consecutive empty columns starting from col - int empty_count = 1; - while ((column + empty_count) < column_count && !column_has_items(layout, row_count, column + empty_count)) - ++empty_count; - - // Shift all items and stretches from columns after the gap - for (int c = column + empty_count; c < column_count; ++c) - { - const int dest_column = c - empty_count; - - // Preserve column stretch - layout->setColumnStretch(dest_column, layout->columnStretch(c)); - - // Shift items - for (int row = 0; row < row_count; ++row) - { - QLayoutItem* const item = layout->itemAtPosition(row, c); - if (!item) - continue; - - const int idx = layout->indexOf(item); - int item_row, item_column, row_span, column_span; - layout->getItemPosition(idx, &item_row, &item_column, &row_span, &column_span); - - // Only process at item's origin - if (item_row != row || item_column != c) - continue; - - layout->takeAt(idx); - layout->addItem(item, item_row, dest_column, row_span, column_span); - } - } - - // Clear stretch on the now-empty trailing columns - for (int c = column_count - empty_count; c < column_count; ++c) - layout->setColumnStretch(c, 0); - - // Don't increment col - check this position again (new content shifted in) - } - else - { - // Column has items - compact rows upward within this column - int target_row = 0; - for (int row = 0; row < row_count; ++row) - { - QLayoutItem* const item = layout->itemAtPosition(row, column); - if (!item) - continue; - - const int idx = layout->indexOf(item); - int item_row, item_column, row_span, column_span; - layout->getItemPosition(idx, &item_row, &item_column, &row_span, &column_span); - - // Only process items whose origin is at (row, col) - if (item_row != row || item_column != column) - continue; - - if (row != target_row) - { - layout->takeAt(idx); - layout->addItem(item, target_row, column, row_span, column_span); - } - - target_row += row_span; - } - - ++column; - } - } -} - void QtUtils::OpenURL(QWidget* parent, const QUrl& qurl) { if (!QDesktopServices::openUrl(qurl)) diff --git a/src/duckstation-qt/qtutils.h b/src/duckstation-qt/qtutils.h index 17e928432..6165967d6 100644 --- a/src/duckstation-qt/qtutils.h +++ b/src/duckstation-qt/qtutils.h @@ -87,10 +87,6 @@ inline void SafeDeleteWidget(T*& widget) void SetColumnWidthsForTableView(QTableView* view, const std::initializer_list& widths); void SetColumnWidthsForTreeView(QTreeView* view, const std::initializer_list& widths); -/// Rearranges a grid layout to remove any empty rows or columns. -/// Note that due to the way QGridLayout works, the total row/column count will not be changed. -void RemoveEmptyRowsAndColumns(QGridLayout* const layout); - /// Returns a key id for a key event, including any modifiers that we need (e.g. Keypad). std::optional KeyEventToCode(const QKeyEvent* ev);