diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 52619db0b..535120c8c 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -498,6 +498,18 @@ MainWindow::MainWindow(const QDir &home) : intervalSplitter->addWidget(intervalSummaryWindow); intervalSplitter->setFrameStyle(QFrame::NoFrame); + QVariant intervalSplitterSizes = appsettings->cvalue(cyclist, GC_SETTINGS_INTERVALSPLITTER_SIZES); + if (intervalSplitterSizes != QVariant()) { + intervalSplitter->restoreState(intervalSplitterSizes.toByteArray()); + intervalSplitter->setOpaqueResize(true); // redraw when released, snappier UI + } else { + QList sizes; + sizes.append(400); + sizes.append(200); + sizes.append(200); + intervalSplitter->setSizes(sizes); + } + QTreeWidgetItem *last = NULL; QStringListIterator i(RideFileFactory::instance().listRideFiles(home)); while (i.hasNext()) { @@ -821,6 +833,7 @@ MainWindow::MainWindow(const QDir &home) : connect(intervalWidget,SIGNAL(itemSelectionChanged()), this, SLOT(intervalTreeWidgetSelectionChanged())); connect(intervalWidget,SIGNAL(itemChanged(QTreeWidgetItem *,int)), this, SLOT(intervalEdited(QTreeWidgetItem*, int))); connect(splitter,SIGNAL(splitterMoved(int,int)), this, SLOT(splitterMoved(int,int))); + connect(intervalSplitter,SIGNAL(splitterMoved(int,int)), this, SLOT(intervalSplitterMoved(int,int))); connect(this, SIGNAL(rideDirty()), this, SLOT(enableSaveButton())); connect(this, SIGNAL(rideClean()), this, SLOT(enableSaveButton())); @@ -1172,6 +1185,12 @@ MainWindow::resizeEvent(QResizeEvent*) appsettings->setValue(GC_SETTINGS_MAIN_GEOM, geometry()); } +void +MainWindow::intervalSplitterMoved(int pos, int /*index*/) +{ + appsettings->setCValue(cyclist, GC_SETTINGS_INTERVALSPLITTER_SIZES, intervalSplitter->saveState()); +} + void MainWindow::splitterMoved(int pos, int /*index*/) { diff --git a/src/MainWindow.h b/src/MainWindow.h index 974215602..f1e760bec 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -236,6 +236,7 @@ class MainWindow : public QMainWindow void rideTreeWidgetSelectionChanged(); void intervalTreeWidgetSelectionChanged(); void splitterMoved(int, int); + void intervalSplitterMoved(int, int); void newCyclist(); void openCyclist(); void downloadRide(); diff --git a/src/Settings.h b/src/Settings.h index 376372773..d30f81f6a 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -29,6 +29,7 @@ #define GC_SETTINGS_MAIN_X "mainwindow/x" #define GC_SETTINGS_MAIN_Y "mainwindow/y" #define GC_SETTINGS_MAIN_GEOM "mainwindow/geometry" +#define GC_SETTINGS_INTERVALSPLITTER_SIZES "mainwindow/intervalsplitterSizes" #define GC_SETTINGS_SPLITTER_SIZES "mainwindow/splitterSizes" #define GC_SETTINGS_SUMMARYSPLITTER_SIZES "mainwindow/summarysplittersizes" #define GC_SETTINGS_CALENDAR_SIZES "mainwindow/calendarSizes"