diff options
-rw-r--r-- | qt-ui/divelistview.cpp | 24 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 2 |
2 files changed, 22 insertions, 4 deletions
diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp index 0a7c2f2e3..1217e0d25 100644 --- a/qt-ui/divelistview.cpp +++ b/qt-ui/divelistview.cpp @@ -65,6 +65,16 @@ DiveListView::~DiveListView() void DiveListView::setupUi(){ QSettings settings; + static bool firstRun = true; + QList<int> expandedColumns; + if(!firstRun){ + for(int i = 0; i < model()->rowCount(); i++){ + if(isExpanded( model()->index(i, 0) )){ + expandedColumns.push_back(i); + } + } + } + settings.beginGroup("ListWidget"); /* if no width are set, use the calculated width for each column; * for that to work we need to temporarily expand all rows */ @@ -77,12 +87,18 @@ void DiveListView::setupUi(){ setColumnWidth(i, width.toInt()); else setColumnWidth(i, 100); - } settings.endGroup(); - collapseAll(); - expand(model()->index(0,0)); - scrollTo(model()->index(0,0), QAbstractItemView::PositionAtCenter); + + if(firstRun){ + Q_FOREACH(const int &i, expandedColumns){ + setExpanded( model()->index(i, 0), true ); + } + }else{ + collapseAll(); + } + + firstRun = false; } void DiveListView::fixMessyQtModelBehaviour() diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 643ad2e30..5c0a9b350 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -60,6 +60,8 @@ MainWindow::MainWindow() : helpView(0) ui.ListWidget->reloadHeaderActions(); ui.ListWidget->setFocus(); ui.globe->reload(); + ui.ListWidget->expand(ui.ListWidget->model()->index(0,0)); + ui.ListWidget->scrollTo(ui.ListWidget->model()->index(0,0), QAbstractItemView::PositionAtCenter); } // this gets called after we download dives from a divecomputer |