# # # patch "guitone/src/model/Inventory.cpp" # from [45204bef5f64bbaa813299524623a7bf64d711fd] # to [06bdc3043366b9c7fee2c5ef7b65c47c2caabc1e] # # patch "guitone/src/util/TreeBuilder.cpp" # from [9f2d8fe71f280dc17d3b983e99a21eb83bb80429] # to [50b1c3098b3c8782247f12e129f9a3e6d965899a] # # patch "guitone/src/view/Guitone.cpp" # from [4899c96336c834db7235e5dc888357a209d2afae] # to [114f06c308044636c911d3f71daa5eb5fa8fe14f] # # patch "guitone/src/view/Guitone.h" # from [aeff753bd7fd686df185ccf2aaf199a7430169af] # to [b8112f72d6dcb8ebabc0f3f9dec57aca38e4f4c0] # # patch "guitone/src/view/Splitter.cpp" # from [2f96d679289c9aa956617aee5380243c39bbf1ea] # to [cb4628e2babfee990735d5c186e8927cb75b44c6] # # patch "guitone/src/view/Splitter.h" # from [10eaac494e2011e87c469d90ea73e584e2e5a87e] # to [5981f42c7bcf7280f3c15e64ccdedca0853967e0] # # patch "guitone/src/view/TreeView.cpp" # from [bfc2dd43c021e97628605eb1118f8ae7dc919539] # to [ead92f5db0b9fcd035717a924660c02e3b12fe3b] # # patch "guitone/src/view/TreeView.h" # from [ccb16a995ac6da02a782e0100cbd3171ff6fed84] # to [60df98e1a6b69f77ea3738f40efecc2fc1dd0cb1] # # patch "guitone/src/view/dialogs/DatabaseView.cpp" # from [f628458e2fdd4c387f0ed2d69604334d72c8ffce] # to [98a73615831a655c2c02aa22a2a13c94ccccb0cb] # # patch "guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp" # from [11b0b16ca8593b24ab2b73d8fce05157edf43d04] # to [d702f2d4fdec0bc1e7b1178006d1a52dfc984c87] # ============================================================ --- guitone/src/model/Inventory.cpp 45204bef5f64bbaa813299524623a7bf64d711fd +++ guitone/src/model/Inventory.cpp 06bdc3043366b9c7fee2c5ef7b65c47c2caabc1e @@ -45,7 +45,7 @@ Inventory::~Inventory() delete rootItem; delete iconProvider; delete regex; - delete workspaceDir; +// delete workspaceDir; } bool Inventory::setWorkspaceDir(QString workspace) ============================================================ --- guitone/src/util/TreeBuilder.cpp 9f2d8fe71f280dc17d3b983e99a21eb83bb80429 +++ guitone/src/util/TreeBuilder.cpp 50b1c3098b3c8782247f12e129f9a3e6d965899a @@ -80,7 +80,7 @@ QStandardItem* TreeBuilder::add(const QS QList row = parent->takeRow(index); row.removeFirst(); ret->appendRow(row); - ret->removeRow(index); + add(branch.mid(pos), newparent); addData(newparent); return newparent; ============================================================ --- guitone/src/view/Guitone.cpp 4899c96336c834db7235e5dc888357a209d2afae +++ guitone/src/view/Guitone.cpp 114f06c308044636c911d3f71daa5eb5fa8fe14f @@ -24,7 +24,6 @@ #include "../model/InventoryItem.h" #include "../model/Attributes.h" #include "../model/InventoryProxyModel.h" -#include "../view/Splitter.h" #include "../view/InventoryView.h" #include "../view/AttributesView.h" #include "../view/dialogs/SwitchWorkspaceRevision.h" @@ -46,11 +45,6 @@ Guitone::Guitone() gotError = false; } -void Guitone::quit() -{ - Settings::sync(); -} - bool Guitone::init() { setWindowTitle(tr("guitone - a frontend for monotone")); @@ -104,6 +98,12 @@ bool Guitone::init() return true; } +void Guitone::quit() +{ + delete this; + Settings::sync(); +} + Guitone::~Guitone() {} void Guitone::buildMenu() @@ -239,7 +239,7 @@ void Guitone::buildModelView() attrModel = new Attributes(this); // Main view - Splitter *mainSplitter = new Splitter(this, "mainSplitter"); + mainSplitter = new Splitter(this, "mainSplitter"); // ProxyModels proxyModelFolderTree = new InventoryProxyModel(this, true); @@ -256,7 +256,7 @@ void Guitone::buildModelView() treeView->setModel(proxyModelFolderTree); // file list view and properties window - Splitter *listSplitter = new Splitter(mainSplitter, "listSplitter"); + listSplitter = new Splitter(mainSplitter, "listSplitter"); listSplitter->setOrientation(Qt::Vertical); listView = new InventoryView( @@ -271,9 +271,9 @@ void Guitone::buildModelView() setCentralWidget(mainSplitter); - // after laying out everything, restore the splitter views - mainSplitter->restoreState(); - listSplitter->restoreState(); + // after laying out everything, initialize the splitter views + mainSplitter->init(); + listSplitter->init(); } void Guitone::buildConnections() ============================================================ --- guitone/src/view/Guitone.h aeff753bd7fd686df185ccf2aaf199a7430169af +++ guitone/src/view/Guitone.h b8112f72d6dcb8ebabc0f3f9dec57aca38e4f4c0 @@ -23,6 +23,7 @@ #include #include +#include "../view/Splitter.h" class QModelIndex; @@ -79,6 +80,8 @@ private: InventoryView *treeView; InventoryView *listView; AttributesView *attrView; + Splitter *mainSplitter; + Splitter *listSplitter; bool gotError; QSize curSize; ============================================================ --- guitone/src/view/Splitter.cpp 2f96d679289c9aa956617aee5380243c39bbf1ea +++ guitone/src/view/Splitter.cpp cb4628e2babfee990735d5c186e8927cb75b44c6 @@ -26,26 +26,22 @@ Splitter::Splitter(QWidget* parent) Splitter::Splitter(QWidget* parent) : QSplitter(parent) { - init("splitter"); } Splitter::Splitter(QWidget* parent, QString objName) : QSplitter(parent) { - init(objName); + setObjectName(objName); } -Splitter::~Splitter() {} - -void Splitter::init(QString objName) +Splitter::~Splitter() { - setObjectName(objName); - restoreState(); + saveState(); +} - connect( - qApp, SIGNAL(lastWindowClosed(void)), - this, SLOT(saveState(void)) - ); +void Splitter::init() +{ + restoreState(); } void Splitter::restoreState(void) ============================================================ --- guitone/src/view/Splitter.h 10eaac494e2011e87c469d90ea73e584e2e5a87e +++ guitone/src/view/Splitter.h 5981f42c7bcf7280f3c15e64ccdedca0853967e0 @@ -31,13 +31,11 @@ public: Splitter(QWidget*); Splitter(QWidget*, QString); ~Splitter(); + void init(); -public slots: - void restoreState(void); - void saveState(void); - private: - void init(QString); + void restoreState(void); + void saveState(void); }; #endif ============================================================ --- guitone/src/view/TreeView.cpp bfc2dd43c021e97628605eb1118f8ae7dc919539 +++ guitone/src/view/TreeView.cpp ead92f5db0b9fcd035717a924660c02e3b12fe3b @@ -26,39 +26,26 @@ TreeView::TreeView(QWidget* parent) TreeView::TreeView(QWidget* parent) : QTreeView(parent) { - init("treeView"); } TreeView::TreeView(QWidget* parent, QString objName) : QTreeView(parent) { - init(objName); + setObjectName(objName); + init(); } -TreeView::~TreeView() {} +TreeView::~TreeView() +{ + saveHeaderViewState(); +} -void TreeView::init(QString objName) +void TreeView::init() { - setObjectName(objName); - + header()->setResizeMode(QHeaderView::Interactive); - stateLoaded = false; - - connect( - header(), SIGNAL(sectionResized(int, int, int)), - this, SLOT(saveHeaderViewState()) - ); - - connect( - header(), SIGNAL(sectionCountChanged(int, int)), - this, SLOT(saveHeaderViewState()) - ); - - connect( - header(), SIGNAL(sectionMoved(int, int, int)), - this, SLOT(saveHeaderViewState()) - ); + stateLoaded = false; } void TreeView::setModel(QAbstractItemModel * model) ============================================================ --- guitone/src/view/TreeView.h ccb16a995ac6da02a782e0100cbd3171ff6fed84 +++ guitone/src/view/TreeView.h 60df98e1a6b69f77ea3738f40efecc2fc1dd0cb1 @@ -32,12 +32,10 @@ public: TreeView(QWidget*, QString); ~TreeView(); virtual void setModel(QAbstractItemModel*); + void init(); -private slots: - void saveHeaderViewState(); - private: - void init(QString); + void saveHeaderViewState(); bool stateLoaded; }; ============================================================ --- guitone/src/view/dialogs/DatabaseView.cpp f628458e2fdd4c387f0ed2d69604334d72c8ffce +++ guitone/src/view/dialogs/DatabaseView.cpp 98a73615831a655c2c02aa22a2a13c94ccccb0cb @@ -27,6 +27,8 @@ DatabaseView::DatabaseView(QWidget *pare setupUi(this); this->setWindowFlags(this->windowFlags() | Qt::WindowMaximizeButtonHint); this->setWindowFlags(this->windowFlags() | Qt::WindowMinimizeButtonHint); + innerSplitter->init(); + outerSplitter->init(); tree = Settings::getBool("DatabaseViewTree", false); ============================================================ --- guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp 11b0b16ca8593b24ab2b73d8fce05157edf43d04 +++ guitone/src/view/dialogs/SwitchWorkspaceRevision.cpp d702f2d4fdec0bc1e7b1178006d1a52dfc984c87 @@ -89,7 +89,7 @@ SwitchWorkspaceRevision::SwitchWorkspace okButton->setEnabled(false); // restore the split view - splitter->restoreState(); + //splitter->restoreState(); } SwitchWorkspaceRevision::~SwitchWorkspaceRevision() @@ -267,6 +267,6 @@ void SwitchWorkspaceRevision::saveState( void SwitchWorkspaceRevision::saveState() { // save the states of the UI elements - splitter->saveState(); + //splitter->saveState(); }