From 38287a1c1ea32b00f64b0ef60d9a99aff855335a Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Fri, 8 Nov 2013 20:46:25 -0200 Subject: Save the status of the tree before trying to reset the display. This is a try: when the user changes the orientation on the columns by clicking on the title of them and organizing by something that's not the number, we lost track of the opened branches. this commit doesn't fix that, but it fixes a possible similar issue. Signed-off-by: Tomaz Canabrava --- qt-ui/divelistview.cpp | 24 ++++++++++++++++++++---- 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 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 -- cgit v1.2.3-70-g09d2