diff --git a/src/plugins/debugger/basewindow.cpp b/src/plugins/debugger/basewindow.cpp index 2db197102038f7b1465b6fcf1b786fa1925388c6..133dc86be0e4375684d065ca5c629e1cfdc3f906 100644 --- a/src/plugins/debugger/basewindow.cpp +++ b/src/plugins/debugger/basewindow.cpp @@ -59,11 +59,14 @@ BaseWindow::BaseWindow(QWidget *parent) setUniformRowHeights(true); header()->setDefaultAlignment(Qt::AlignLeft); + header()->setClickable(true); connect(act, SIGNAL(toggled(bool)), SLOT(setAlternatingRowColorsHelper(bool))); connect(this, SIGNAL(activated(QModelIndex)), SLOT(rowActivatedHelper(QModelIndex))); + connect(header(), SIGNAL(sectionClicked(int)), + SLOT(headerSectionClicked(int))); m_adjustColumnsAction = new QAction(tr("Adjust Column Widths to Contents"), 0); m_alwaysAdjustColumnsAction = 0; @@ -110,6 +113,13 @@ void BaseWindow::setModel(QAbstractItemModel *model) setAlwaysResizeColumnsToContents(m_alwaysAdjustColumnsAction->isChecked()); } +void BaseWindow::mousePressEvent(QMouseEvent *ev) +{ + QTreeView::mousePressEvent(ev); + if (!indexAt(ev->pos()).isValid()) + resizeColumnsToContents(); +} + void BaseWindow::resizeColumnsToContents() { const int columnCount = model()->columnCount(); @@ -124,6 +134,11 @@ void BaseWindow::setAlwaysResizeColumnsToContents(bool on) header()->setResizeMode(0, mode); } +void BaseWindow::headerSectionClicked(int logicalIndex) +{ + resizeColumnToContents(logicalIndex); +} + void BaseWindow::reset() { QTreeView::reset(); diff --git a/src/plugins/debugger/basewindow.h b/src/plugins/debugger/basewindow.h index 5b42fad78cd301b5e48df6838813502a8a8f197f..1592df4202061e027ed1936ca61248c2727a7432 100644 --- a/src/plugins/debugger/basewindow.h +++ b/src/plugins/debugger/basewindow.h @@ -51,6 +51,7 @@ public: void setModel(QAbstractItemModel *model); virtual void rowActivated(const QModelIndex &) {} + void mousePressEvent(QMouseEvent *ev); public slots: void resizeColumnsToContents(); @@ -59,6 +60,7 @@ public slots: private slots: void setAlternatingRowColorsHelper(bool on) { setAlternatingRowColors(on); } void rowActivatedHelper(const QModelIndex &index) { rowActivated(index); } + void headerSectionClicked(int logicalIndex); void reset(); private: