diff --git a/src/ExtendedTableWidget.cpp b/src/ExtendedTableWidget.cpp index 72d37e03..5f8d24cd 100644 --- a/src/ExtendedTableWidget.cpp +++ b/src/ExtendedTableWidget.cpp @@ -117,3 +117,11 @@ int ExtendedTableWidget::numVisibleRows() // Calculate the number of visible rows return row_bottom - row_top; } + +QSet ExtendedTableWidget::selectedCols() +{ + QSet selectedCols; + foreach(const QModelIndex & idx, selectedIndexes()) + selectedCols.insert(idx.column()); + return selectedCols; +} diff --git a/src/ExtendedTableWidget.h b/src/ExtendedTableWidget.h index cb1d515b..73b0bbb4 100644 --- a/src/ExtendedTableWidget.h +++ b/src/ExtendedTableWidget.h @@ -3,6 +3,7 @@ #include #include "FilterTableHeader.h" +#include class ExtendedTableWidget : public QTableView { @@ -13,6 +14,9 @@ public: FilterTableHeader* filterHeader() { return m_tableHeader; } +public: + QSet selectedCols(); + private: void copy(); int numVisibleRows(); diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 7276c276..b5c231b3 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1782,7 +1782,22 @@ void MainWindow::on_actionWebsite_triggered() void MainWindow::updateBrowseDataColumnWidth(int section, int /*old_size*/, int new_size) { - browseTableColumnWidths[ui->comboBrowseTable->currentText()][section] = new_size; + QSet selectedCols(ui->dataTable->selectedCols()); + QString tableName(ui->comboBrowseTable->currentText()); + if (!selectedCols.contains(section)) + { + browseTableColumnWidths[tableName][section] = new_size; + } + else + { + ui->dataTable->blockSignals(true); + foreach (int col, selectedCols) + { + ui->dataTable->setColumnWidth(col, new_size); + browseTableColumnWidths[tableName][col] = new_size; + } + ui->dataTable->blockSignals(false); + } } bool MainWindow::loadProject(QString filename)