# # # patch "src/view/AttributesView.cpp" # from [c31cfb3521fc074633174f088628737a42171506] # to [3e2e21e988197318820cd197e94fbd3afb8f91dd] # # patch "src/view/AttributesView.h" # from [919369059dde5efb8b1e8b0c0d1e25e49dfc6825] # to [0a971e63c438c084631cb3190355a65967fbbb31] # # patch "src/view/DatabaseWindow.cpp" # from [491b36f2e124643652255aa67c209057dedeb45c] # to [5590fbf75ade2b0147874c56dcd054e92293094c] # # patch "src/view/InventoryView.cpp" # from [50873ebddf25b10ff14a51696a346c1c2e858170] # to [d0abb8a37052df61d041c9620081e389b207cc30] # # patch "src/view/InventoryView.h" # from [8f7dc8077f7692611c1fc99c4db0a11f70d62823] # to [f9a37ec91310327b6d4b3f0d9ea9b9bf75e29da8] # # patch "src/view/MainWindow.cpp" # from [fe207b1086e4eb480420911be8e395ef7bd905c7] # to [9234140581c324011828a21086196827bbda2605] # # patch "src/view/TreeView.cpp" # from [9feec1fba9239a66bc5d3183c7a01641078f1e81] # to [108452f506d6ee67ef88aa4fb153863aa39f424d] # # patch "src/view/WorkspaceWindow.cpp" # from [da5b5622acc662e7f09e64ede5852682ca0d452f] # to [9c1463243070703596e252dabe849f8d116cc3d7] # # patch "src/view/WorkspaceWindow.h" # from [2b924de7516c42847e65a9540d27a9d8eaedf3aa] # to [ccc33495e5dbe966045065fb35311d07f5f7e96e] # # patch "src/view/dialogs/Dialog.cpp" # from [ed207b6f0d3e748b39bbcd07174b557518e52550] # to [7c1dd6b8d0a48131d275bef34bcf5a9f562b6283] # ============================================================ --- src/view/AttributesView.cpp c31cfb3521fc074633174f088628737a42171506 +++ src/view/AttributesView.cpp 3e2e21e988197318820cd197e94fbd3afb8f91dd @@ -32,7 +32,8 @@ #include -AttributesView::AttributesView(QWidget * parent) : TreeView(parent) +AttributesView::AttributesView(QWidget * parent, const QString & objectName) + : TreeView(parent, objectName) { setRootIsDecorated(false); setItemsExpandable(false); ============================================================ --- src/view/AttributesView.h 919369059dde5efb8b1e8b0c0d1e25e49dfc6825 +++ src/view/AttributesView.h 0a971e63c438c084631cb3190355a65967fbbb31 @@ -26,16 +26,16 @@ class AttributesView : public TreeView class AttributesView : public TreeView { - Q_OBJECT + Q_OBJECT public: - AttributesView(QWidget*); - ~AttributesView(); + AttributesView(QWidget *, const QString &); + ~AttributesView(); private slots: void sectionClicked(int); void menuRequested(const QModelIndexList &, const QPoint &); - + void addAttribute(); void editAttribute(); void aboutToEditAttribute(const QModelIndex &); ============================================================ --- src/view/DatabaseWindow.cpp 491b36f2e124643652255aa67c209057dedeb45c +++ src/view/DatabaseWindow.cpp 5590fbf75ade2b0147874c56dcd054e92293094c @@ -27,7 +27,10 @@ #include #include -DatabaseWindow::DatabaseWindow() : MainWindow(), loadedDatabase(0) {} +DatabaseWindow::DatabaseWindow() : MainWindow(), loadedDatabase(0) +{ + setObjectName("DatabaseWindow"); +} DatabaseWindow::~DatabaseWindow() { ============================================================ --- src/view/InventoryView.cpp 50873ebddf25b10ff14a51696a346c1c2e858170 +++ src/view/InventoryView.cpp d0abb8a37052df61d041c9620081e389b207cc30 @@ -29,8 +29,8 @@ #include #include -InventoryView::InventoryView(QWidget * parent) - : TreeView(parent), invViewDelegate(parent) +InventoryView::InventoryView(QWidget * parent, const QString & objectName) + : TreeView(parent, objectName), invViewDelegate(parent) { setItemDelegate(&invViewDelegate); setSelectionMode(QAbstractItemView::ExtendedSelection); ============================================================ --- src/view/InventoryView.h 8f7dc8077f7692611c1fc99c4db0a11f70d62823 +++ src/view/InventoryView.h f9a37ec91310327b6d4b3f0d9ea9b9bf75e29da8 @@ -36,7 +36,7 @@ public: public: enum Type { FolderTree, FileList }; - InventoryView(QWidget*); + InventoryView(QWidget *, const QString &); ~InventoryView(); void setModel(QSortFilterProxyModel *); ============================================================ --- src/view/MainWindow.cpp fe207b1086e4eb480420911be8e395ef7bd905c7 +++ src/view/MainWindow.cpp 9234140581c324011828a21086196827bbda2605 @@ -22,11 +22,15 @@ #include "WorkspaceMenuBar.h" #include "DatabaseMenuBar.h" #include "Guitone.h" +#include "Settings.h" #include #include -MainWindow::MainWindow() : QMainWindow(), menuBar(0), dialogManager(0) {} +MainWindow::MainWindow() : QMainWindow(), menuBar(0), dialogManager(0) +{ + setObjectName("MainWindow"); +} MainWindow::~MainWindow() { @@ -87,8 +91,8 @@ void MainWindow::init() ); connect( - menuBar, SIGNAL(bringAllWindowsToFront()), - APP, SLOT(bringAllWindowsToFront()) + menuBar, SIGNAL(raiseAllWindows()), + APP, SLOT(raiseAllWindows()) ); connect( @@ -103,13 +107,16 @@ void MainWindow::init() // common layout tasks setMenuBar(menuBar); + restoreGeometry(Settings::getWindowGeometry(objectName())); + setup(); } void MainWindow::closeEvent(QCloseEvent * event) { event->accept(); - // TODO: save the window layout here... + + Settings::setWindowGeometry(objectName(), saveGeometry()); // FIXME: what if certain dialogs do not want to be closed? dialogManager->closeAllDialogs(); emit windowClosed(this); ============================================================ --- src/view/TreeView.cpp 9feec1fba9239a66bc5d3183c7a01641078f1e81 +++ src/view/TreeView.cpp 108452f506d6ee67ef88aa4fb153863aa39f424d @@ -20,6 +20,7 @@ #include "TreeView.h" #include "Settings.h" +#include "vocab.h" #include ============================================================ --- src/view/WorkspaceWindow.cpp da5b5622acc662e7f09e64ede5852682ca0d452f +++ src/view/WorkspaceWindow.cpp 9c1463243070703596e252dabe849f8d116cc3d7 @@ -30,7 +30,11 @@ WorkspaceWindow::WorkspaceWindow() : Dat WorkspaceWindow::WorkspaceWindow() : DatabaseWindow(), mainSplitter(0), listSplitter(0), treeView(0), listView(0), attrView(0), statusBar(0), - invModel(0), attrModel(0), proxyModelFolderTree(0), proxyModelFileList(0) {} + workspaceFloater(0), + invModel(0), attrModel(0), proxyModelFolderTree(0), proxyModelFileList(0) +{ + setObjectName("WorkspaceWindow"); +} WorkspaceWindow::~WorkspaceWindow() { @@ -42,6 +46,11 @@ WorkspaceWindow::~WorkspaceWindow() if (listSplitter) delete listSplitter; if (mainSplitter) delete mainSplitter; if (statusBar) delete statusBar; + if (workspaceFloater) + { + removeDockWidget(workspaceFloater); + delete workspaceFloater; + } // do the same with the models if (proxyModelFolderTree) delete proxyModelFolderTree; @@ -85,23 +94,21 @@ void WorkspaceWindow::setup() statusBar = new QStatusBar(this); setStatusBar(statusBar); - mainSplitter = new Splitter(this); - mainSplitter->setObjectName("workspace.mainSplitter"); + mainSplitter = new Splitter(this, "MainSplitter"); mainSplitter->setOrientation(Qt::Horizontal); - treeView = new InventoryView(mainSplitter); + treeView = new InventoryView(mainSplitter, "FolderTree"); treeView->setEditTriggers(QAbstractItemView::EditKeyPressed); treeView->setSelectionMode(QAbstractItemView::ExtendedSelection); - listSplitter = new Splitter(mainSplitter); - listSplitter->setObjectName("workspace.listSplitter"); + listSplitter = new Splitter(mainSplitter, "ListSplitter"); listSplitter->setOrientation(Qt::Vertical); - listView = new InventoryView(listSplitter); + listView = new InventoryView(listSplitter, "FileList"); listView->setEditTriggers(QAbstractItemView::EditKeyPressed); listView->setSelectionMode(QAbstractItemView::ExtendedSelection); - attrView = new AttributesView(listSplitter); + attrView = new AttributesView(listSplitter, "AttributesView"); attrView->setAlternatingRowColors(true); connect( @@ -221,6 +228,13 @@ void WorkspaceWindow::setup() listView->setType(InventoryView::FileList); attrView->setModel(attrModel); + + workspaceFloater = new WorkspaceFloater(this); + + addDockWidget(Qt::NoDockWidgetArea, workspaceFloater); + + dynamic_cast(menuBar) + ->addDockWidgetAction(workspaceFloater->toggleViewAction()); } void WorkspaceWindow::load(const QString & path) ============================================================ --- src/view/WorkspaceWindow.h 2b924de7516c42847e65a9540d27a9d8eaedf3aa +++ src/view/WorkspaceWindow.h ccc33495e5dbe966045065fb35311d07f5f7e96e @@ -30,6 +30,7 @@ #include "InventoryView.h" #include "AttributesView.h" #include "Splitter.h" +#include "WorkspaceFloater.h" #include @@ -54,6 +55,7 @@ protected: InventoryView * listView; AttributesView * attrView; QStatusBar * statusBar; + WorkspaceFloater * workspaceFloater; Inventory * invModel; GetAttributes * attrModel; ============================================================ --- src/view/dialogs/Dialog.cpp ed207b6f0d3e748b39bbcd07174b557518e52550 +++ src/view/dialogs/Dialog.cpp 7c1dd6b8d0a48131d275bef34bcf5a9f562b6283 @@ -51,7 +51,7 @@ void Dialog::saveState(void) void Dialog::saveState(void) { - Settings::setWindowGeometry(saveGeometry(), objectName()); + Settings::setWindowGeometry(objectName(), saveGeometry()); } void Dialog::setStayOnTop()