# # # patch "src/view/Splitter.cpp" # from [52ebbc624ae37b76a88cdb95b1e3f574a86e5b79] # to [d5312983d3d4021820ea6c9a2d5fb6bc772ec0a1] # # patch "src/view/Splitter.h" # from [f5c74798271f8b56f1eed47efd0fa3180cc3d70d] # to [d5bc3e8758fe387b2f3e6b725894cef55edf7f11] # # patch "src/view/WorkspaceWindow.cpp" # from [8200dc2b4d67318b8c406d2bc141cfd8f6b41e9c] # to [2af2e9a9dac69191b72ea1ff6c67aa5ca8359016] # # patch "src/view/dialogs/ChangesetBrowser.cpp" # from [6f1cf9f834ff5efc525e2393e6a86a12278176b1] # to [c7cee1c5387ffd02cb45322dad6ac4cbad4bf7fe] # # patch "src/view/dialogs/FileHistory.cpp" # from [482ad2f10378f7d1119fcef690e7df08ebbffda8] # to [204d49ef1ffcd08420370989ccec8a32b442d16c] # # patch "src/view/dialogs/SelectRevision.cpp" # from [72f7e7fb19c737f61b401baf1d16d0d6428b85bc] # to [86df3a95f7b536d6742f90cfa711fbad5f26d488] # ============================================================ --- src/view/Splitter.cpp 52ebbc624ae37b76a88cdb95b1e3f574a86e5b79 +++ src/view/Splitter.cpp d5312983d3d4021820ea6c9a2d5fb6bc772ec0a1 @@ -29,38 +29,18 @@ Splitter::Splitter(QWidget * parent, con Splitter::Splitter(QWidget * parent, const QString & objName) : QSplitter(parent) { setObjectName(objName); + setChildrenCollapsible(false); } -Splitter::~Splitter() -{ - L(QString("saving state of splitter %1").arg(objectName())); - saveState(); -} +Splitter::~Splitter() {} -void Splitter::init() +void Splitter::restoreState() { - restoreState(); -} - -void Splitter::restoreState(void) -{ QSplitter::restoreState(Settings::getSplitterState(objectName())); } -void Splitter::saveState(void) +void Splitter::saveState() { - // due to a bug in Qt 4.2.2 saveState saves an errornous state for - // splitters which have not yet been shown to the user. we're avoiding - // this problem by checking if the sizes() list sums up to 0 which - // then means that we have just encountered this state - QList s(sizes()); - int sum = 0; - for (int i=0, j=s.size(); isaveState(); + mainSplitter->saveState(); + // order is important here - at first the views inside the splitters, // then the splitters themselves! if (treeView) delete treeView; @@ -174,8 +177,8 @@ void WorkspaceWindow::setup() setCentralWidget(mainSplitter); - mainSplitter->init(); - listSplitter->init(); + mainSplitter->restoreState(); + listSplitter->restoreState(); // models invModel = new Inventory(this); ============================================================ --- src/view/dialogs/ChangesetBrowser.cpp 6f1cf9f834ff5efc525e2393e6a86a12278176b1 +++ src/view/dialogs/ChangesetBrowser.cpp c7cee1c5387ffd02cb45322dad6ac4cbad4bf7fe @@ -30,9 +30,9 @@ ChangesetBrowser::ChangesetBrowser(QWidg this->setWindowFlags(this->windowFlags() | Qt::WindowMaximizeButtonHint); this->setWindowFlags(this->windowFlags() | Qt::WindowMinimizeButtonHint); - branchesSplitter->init(); - changesetsSplitter->init(); - changeLogSplitter->init(); + branchesSplitter->restoreState(); + changesetsSplitter->restoreState(); + changeLogSplitter->restoreState(); tree = Settings::getBool("ChangesetBrowserTree", false); displayBranchesAsTree->setText( @@ -96,6 +96,10 @@ ChangesetBrowser::~ChangesetBrowser() ChangesetBrowser::~ChangesetBrowser() { + branchesSplitter->saveState(); + changesetsSplitter->saveState(); + changeLogSplitter->saveState(); + delete changesetModel; delete revisionModel; if (branchModel) delete branchModel; ============================================================ --- src/view/dialogs/FileHistory.cpp 482ad2f10378f7d1119fcef690e7df08ebbffda8 +++ src/view/dialogs/FileHistory.cpp 204d49ef1ffcd08420370989ccec8a32b442d16c @@ -26,7 +26,7 @@ FileHistory::FileHistory(QWidget * paren setupUi(this); Dialog::init(); - splitter->init(); + splitter->restoreState(); changeModel = new GetContentChanged(this, databaseFile); certsModel = new Certs(this, databaseFile); @@ -65,6 +65,7 @@ FileHistory::~FileHistory() FileHistory::~FileHistory() { + splitter->saveState(); delete changeModel; delete certsModel; } ============================================================ --- src/view/dialogs/SelectRevision.cpp 72f7e7fb19c737f61b401baf1d16d0d6428b85bc +++ src/view/dialogs/SelectRevision.cpp 86df3a95f7b536d6742f90cfa711fbad5f26d488 @@ -30,7 +30,7 @@ SelectRevision::SelectRevision(QWidget * setupUi(this); Dialog::init(); - splitter->init(); + splitter->restoreState(); // add some items to the selector box selectorBox->addItem(tr("Revision"), "i"); @@ -132,6 +132,8 @@ SelectRevision::~SelectRevision() SelectRevision::~SelectRevision() { + splitter->saveState(); + delete selectorModel; delete sortModel; delete certsModel;