summaryrefslogtreecommitdiffstats
path: root/qt-ui/divelistview.cpp
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-11-08 20:46:25 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-11-09 15:33:34 +0900
commit38287a1c1ea32b00f64b0ef60d9a99aff855335a (patch)
tree430f853c611785fddbaab9787ad461a3f7d110a3 /qt-ui/divelistview.cpp
parent7dbf76384f78b415250ec3de3090ea1ae68e3ac3 (diff)
downloadsubsurface-38287a1c1ea32b00f64b0ef60d9a99aff855335a.tar.gz
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 <tcanabrava@kde.org>
Diffstat (limited to 'qt-ui/divelistview.cpp')
-rw-r--r--qt-ui/divelistview.cpp24
1 files changed, 20 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()