=== modified file 'mixxx/src/widget/wtracktableviewheader.cpp' --- mixxx/src/widget/wtracktableviewheader.cpp 2011-11-27 04:45:50 +0000 +++ mixxx/src/widget/wtracktableviewheader.cpp 2012-01-29 01:52:19 +0000 @@ -57,9 +57,16 @@ // Here we can override values to prevent restoring corrupt values from database setMovable(true); - setCascadingSectionResizes(true); setMinimumSectionSize(WTTVH_MINIMUM_SECTION_SIZE); + QAction *stretchColumns = new QAction(tr("Fit to window"), &m_menu); + stretchColumns->setCheckable(true); + if (cascadingSectionResizes()) + stretchColumns->setChecked(true); + connect(stretchColumns, SIGNAL(toggled(bool)), this, SLOT(fitToWindow(bool))); + m_menu.addAction(stretchColumns); + m_menu.addSeparator(); + int columns = model->columnCount(); for (int i = 0; i < columns; ++i) { if (trackModel->isColumnInternal(i)) { @@ -147,6 +154,15 @@ return false; } + +void WTrackTableViewHeader::fitToWindow(bool toggle) { + if (toggle) { + setCascadingSectionResizes(true); + resizeSections(QHeaderView::Stretch); + } else + setCascadingSectionResizes(false); +} + void WTrackTableViewHeader::clearActions() { // The QActions are parented to the menu, so clearing deletes them. Since // they are deleted we don't have to disconnect their signals from the === modified file 'mixxx/src/widget/wtracktableviewheader.h' --- mixxx/src/widget/wtracktableviewheader.h 2010-11-16 22:08:45 +0000 +++ mixxx/src/widget/wtracktableviewheader.h 2012-01-29 01:51:23 +0000 @@ -30,6 +30,7 @@ private slots: void showOrHideColumn(int); + void fitToWindow(bool toggle); private: int hiddenCount();