# # # rename "src/Properties.cpp" # to "src/util/Settings.cpp" # # rename "src/Properties.h" # to "src/util/Settings.h" # # rename "src/model/IconProvider.cpp" # to "src/util/IconProvider.cpp" # # rename "src/model/IconProvider.h" # to "src/util/IconProvider.h" # # rename "src/model/Monotone.cpp" # to "src/monotone/Monotone.cpp" # # rename "src/model/Monotone.h" # to "src/monotone/Monotone.h" # # add_dir "src/monotone" # # add_dir "src/util" # # patch "guitone.pro" # from [d44f240539c53e325f8b1421fed21764fbedd679] # to [c159db2b8d451b6aa684201fb936a307ca85c2c7] # # patch "src/model/Workspace.cpp" # from [687f1015e073c3cbb3114bebe220f6fda4dc7855] # to [4c9ec14e2684c486c038bf093d55a4cd8c4e21e8] # # patch "src/model/Workspace.h" # from [6a7552214cb613775845cb358ea2e93ef9dd0b53] # to [2a69ad87ac4bab25922718f11bb5fab1a98cdff2] # # patch "src/model/WorkspaceItem.cpp" # from [75c3f62ceaa818055cdb85311e0806274a72d81a] # to [5cb2062ad4db01c76fcfb3a054361b94ee995262] # # patch "src/model/WorkspaceItem.h" # from [efede517ccae18daa2b01eabfc266a089b815861] # to [f66c7b5b3b8aa9522f20024f79af0448bb0c1283] # # patch "src/monotone/Monotone.h" # from [45e871cfc575a52e9f4f1a75a26057837bbeac8d] # to [b4a518819715f621bfaa7acdae73d851b47c69b6] # # patch "src/stable.h" # from [8b50802d613c8ac53f4cbe531907166cf5d6d3c1] # to [626c2264bf0a450c261d772934d82969a5e31d98] # # patch "src/util/IconProvider.cpp" # from [599660908a1821849b091e0327b7d326bdcacafb] # to [aa0a13247a31308920846176b9c75bed31a7b28a] # # patch "src/util/Settings.cpp" # from [f860c5e50b3b293d2694378ceada921be3a38bff] # to [18dd7c1ed126dcd02c3907720100373cdfced955] # # patch "src/util/Settings.h" # from [4d87d01a0081b68d48ffe76ae53616587a765ba0] # to [2dcb7ec79d0c161a877a739da4fc29444010a535] # # patch "src/view/Guitone.cpp" # from [c1f1a06ade3dbdabd5131f815b85f4e0946e198f] # to [98b4cd6b85e68b5ca5765a2dd2b1b48271a62f50] # # patch "src/view/Guitone.h" # from [240ec4685a00a13789e9667ff6d5c83ed282ae26] # to [82aaf4f24d417cdfd562b92ee5baca58aadf6ae6] # # patch "src/view/WorkspaceView.cpp" # from [fa1baaf882b961e59dac7bb709b5074e4793bee3] # to [d3ceb08afe766a826eccb3b2bea1c8b978e86455] # # patch "src/view/WorkspaceView.h" # from [aa73630a6dd978497fbc7abaa2e4c1d667963b9c] # to [a6330e30568b50bb90ed35444c32d245c5e90c9a] # ============================================================ --- guitone.pro d44f240539c53e325f8b1421fed21764fbedd679 +++ guitone.pro c159db2b8d451b6aa684201fb936a307ca85c2c7 @@ -1,20 +1,22 @@ CONFIG += qt debug precompile_header HEADERS += src/view/Guitone.h \ src/view/WorkspaceView.h \ - src/model/Monotone.h \ + src/view/PropertiesView.h \ + src/monotone/Monotone.h \ src/model/Workspace.h \ src/model/WorkspaceItem.h \ - src/model/IconProvider.h \ src/model/ProxyModel.h \ - src/Properties.h + src/util/IconProvider.h \ + src/util/Settings.h SOURCES += src/view/Guitone.cpp \ src/view/WorkspaceView.cpp \ - src/model/Monotone.cpp \ + src/view/PropertiesView.cpp \ + src/monotone/Monotone.cpp \ src/model/Workspace.cpp \ src/model/WorkspaceItem.cpp \ - src/model/IconProvider.cpp \ src/model/ProxyModel.cpp \ - src/Properties.cpp \ + src/util/IconProvider.cpp \ + src/util/Settings.cpp \ src/main.cpp TEMPLATE = app DEPENDPATH += src ============================================================ --- src/model/Workspace.cpp 687f1015e073c3cbb3114bebe220f6fda4dc7855 +++ src/model/Workspace.cpp 4c9ec14e2684c486c038bf093d55a4cd8c4e21e8 @@ -19,11 +19,9 @@ ***************************************************************************/ #include "Workspace.h" +#include "../monotone/Monotone.h" +#include "../util/IconProvider.h" -#include "Monotone.h" -#include "WorkspaceItem.h" -#include "IconProvider.h" - Workspace::Workspace(QObject *parent) : QAbstractItemModel(parent), monotone(NULL), modelPresent(false) { ============================================================ --- src/model/Workspace.h 6a7552214cb613775845cb358ea2e93ef9dd0b53 +++ src/model/Workspace.h 2a69ad87ac4bab25922718f11bb5fab1a98cdff2 @@ -23,7 +23,8 @@ #include -class WorkspaceItem; +#include "WorkspaceItem.h" + class Monotone; class IconProvider; class QRegExp; ============================================================ --- src/model/WorkspaceItem.cpp 75c3f62ceaa818055cdb85311e0806274a72d81a +++ src/model/WorkspaceItem.cpp 5cb2062ad4db01c76fcfb3a054361b94ee995262 @@ -29,7 +29,7 @@ const int WorkspaceItem::Unchanged = 64; const int WorkspaceItem::Unknown = 128; const int WorkspaceItem::Ignored = 256; - + WorkspaceItem::WorkspaceItem() { parentItem = this; @@ -37,6 +37,7 @@ status = 0; dirFlag = false; childDirFlag = false; + rootFlag = true; } WorkspaceItem::WorkspaceItem(WorkspaceItem* parent, QString p, int st, bool isDir) @@ -45,7 +46,7 @@ path = p; status = st; dirFlag = isDir; - childDirFlag = false; + childDirFlag = false; } WorkspaceItem::~WorkspaceItem() @@ -59,7 +60,8 @@ path = ""; status = 0; dirFlag = false; - childDirFlag = false; + childDirFlag = false; + rootFlag = false; qDeleteAll(children); children.clear(); } @@ -115,16 +117,12 @@ { item = (*iter); item->setParent(this); - if(item->dirFlag) + if (item->isDirectory()) { childDirFlag = true; - } + } } - //while (!children.isEmpty()) - //{ - // delete children.takeFirst(); - //} children.clear(); children = items; } ============================================================ --- src/model/WorkspaceItem.h efede517ccae18daa2b01eabfc266a089b815861 +++ src/model/WorkspaceItem.h f66c7b5b3b8aa9522f20024f79af0448bb0c1283 @@ -49,6 +49,7 @@ bool hasNotStatus(int) const; QString statusString(void) const; inline bool isDirectory(void) const { return dirFlag; }; + inline bool isRootDirectory(void) const { return rootFlag; }; inline bool hasChildDirs(void) const { return childDirFlag; }; inline int getStatus(void){ return status; }; @@ -79,7 +80,8 @@ QList children; int status; bool dirFlag; - bool childDirFlag; + bool childDirFlag; + bool rootFlag; QString path; }; ============================================================ --- src/model/Monotone.h 45e871cfc575a52e9f4f1a75a26057837bbeac8d +++ src/monotone/Monotone.h b4a518819715f621bfaa7acdae73d851b47c69b6 @@ -21,8 +21,6 @@ #ifndef MONOTONE_H #define MONOTONE_H -#include - // // Forward class declarations // ============================================================ --- src/stable.h 8b50802d613c8ac53f4cbe531907166cf5d6d3c1 +++ src/stable.h 626c2264bf0a450c261d772934d82969a5e31d98 @@ -33,9 +33,12 @@ #include #include #include +#include #include #include #include +#include +#include #include #include #include ============================================================ --- src/model/IconProvider.cpp 599660908a1821849b091e0327b7d326bdcacafb +++ src/util/IconProvider.cpp aa0a13247a31308920846176b9c75bed31a7b28a @@ -20,7 +20,7 @@ #include "stable.h" #include "IconProvider.h" -#include "WorkspaceItem.h" +#include "../model/WorkspaceItem.h" /** * There are 45 possible status combinations, some of them are invalid ============================================================ --- src/Properties.cpp f860c5e50b3b293d2694378ceada921be3a38bff +++ src/util/Settings.cpp 18dd7c1ed126dcd02c3907720100373cdfced955 @@ -18,74 +18,74 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include "Properties.h" +#include "Settings.h" -Properties* Properties::props = 0; +Settings* Settings::instance = 0; -Properties* Properties::singleton() +Settings* Settings::singleton() { - if (!props) + if (!instance) { - props = new Properties(); + instance = new Settings(); } - return props; + return instance; } -Properties::Properties() +Settings::Settings() : QSettings(QSettings::IniFormat, QSettings::UserScope, "GUITONE", "GUITONE") {} -Properties::~Properties() {} +Settings::~Settings() {} -QSize Properties::getStartupSize(void) +QSize Settings::getStartupSize(void) { return singleton()->value("StartupSize", QSize(640, 480)).toSize(); } -void Properties::setStartupSize(QSize size) +void Settings::setStartupSize(QSize size) { - props = singleton(); - props->setValue("StartupSize", size); - props->sync(); + Settings *settings = singleton(); + settings->setValue("StartupSize", size); + settings->sync(); } -QSize Properties::getFileListSize(void) +QSize Settings::getFileListSize(void) { return singleton()->value("FileListSize", QSize(100, 100)).toSize(); } -void Properties::setFileListSize(QSize size) +void Settings::setFileListSize(QSize size) { - props = singleton(); - props->setValue("FileListSize", size); - props->sync(); + Settings *settings = singleton(); + settings->setValue("FileListSize", size); + settings->sync(); } -QSize Properties::getTreeViewSize(void) +QSize Settings::getTreeViewSize(void) { return singleton()->value("TreeViewSize", QSize(100, 100)).toSize(); } -void Properties::setTreeViewSize(QSize size) +void Settings::setTreeViewSize(QSize size) { - props = singleton(); - props->setValue("TreeViewSize", size); - props->sync(); + Settings *settings = singleton(); + settings->setValue("TreeViewSize", size); + settings->sync(); } -QStringList Properties::getPreviousWorkspaces() +QStringList Settings::getPreviousWorkspaces() { return singleton()->value("RecentWorkspaceList").toStringList(); } -void Properties::setPreviousWorkspaces(QStringList list) +void Settings::setPreviousWorkspaces(QStringList list) { - props = singleton(); - props->setValue("RecentWorkspaceList", list); - props->sync(); + Settings *settings = singleton(); + settings->setValue("RecentWorkspaceList", list); + settings->sync(); } -void Properties::addPreviousWorkspace(QString workspace) +void Settings::addPreviousWorkspace(QString workspace) { QStringList list = getPreviousWorkspaces(); // do not do anything if we've already recorded this workspace @@ -99,7 +99,7 @@ setPreviousWorkspaces(list); } -void Properties::removePreviousWorkspace(QString workspace) +void Settings::removePreviousWorkspace(QString workspace) { QStringList list = getPreviousWorkspaces(); int pos = list.indexOf(workspace); ============================================================ --- src/Properties.h 4d87d01a0081b68d48ffe76ae53616587a765ba0 +++ src/util/Settings.h 2dcb7ec79d0c161a877a739da4fc29444010a535 @@ -18,8 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef PROPERTIES_H -#define PROPERTIES_H +#ifndef SETTINGS_H +#define SETTINGS_H // // Forward class declarations @@ -27,7 +27,7 @@ class QSettings; class QSize; -class Properties : public QSettings +class Settings : public QSettings { public: @@ -45,11 +45,10 @@ // FIXME: we may want to make this configurable later on enum { MaxPreviousWorkspaces = 8 }; private: - QSettings *settings; - Properties(); - ~Properties(void); - static Properties* singleton(); - static Properties* props; + Settings(); + ~Settings(void); + static Settings* singleton(); + static Settings* instance; }; ============================================================ --- src/view/Guitone.cpp c1f1a06ade3dbdabd5131f815b85f4e0946e198f +++ src/view/Guitone.cpp 98b4cd6b85e68b5ca5765a2dd2b1b48271a62f50 @@ -19,11 +19,12 @@ ***************************************************************************/ #include "Guitone.h" -#include "../model/Monotone.h" +#include "../monotone/Monotone.h" #include "../model/Workspace.h" #include "../model/ProxyModel.h" #include "../view/WorkspaceView.h" -#include "Properties.h" +#include "../view/PropertiesView.h" +#include "../util/Settings.h" Guitone::Guitone() : QMainWindow() @@ -34,6 +35,9 @@ // create Workspace model myWorkspace = new Workspace(this); + // create Properties model + //myProperties = new Properties(this); + // connect to Monotone to catch critical errors connect( Monotone::singleton(this), SIGNAL(criticalError(const QString &)), @@ -87,6 +91,7 @@ // Main view // QSplitter *mainSplitter = new QSplitter(this); + // // ProxyModels // @@ -96,30 +101,38 @@ proxyModelFileList->setSourceModel(myWorkspace); // - // TreeViews + // folder tree // treeView = new WorkspaceView(mainSplitter, WorkspaceView::FolderTree); treeView->setModel(proxyModelFolderTree); - listView = new WorkspaceView(mainSplitter, WorkspaceView::FileList); - listView->setModel(proxyModelFileList); - connect( treeView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(slotMapFolderTreeToFileList(const QModelIndex &)) ); + + // + // file list view and properties window + // + QSplitter *listSplitter = new QSplitter(Qt::Vertical, mainSplitter); + + listView = new WorkspaceView(listSplitter, WorkspaceView::FileList); + listView->setModel(proxyModelFileList); connect( listView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(slotMapFileListToFolderTree(const QModelIndex &)) ); + propView = new PropertiesView(listSplitter); + //propView->setModel(propModel); + setCentralWidget(mainSplitter); - resize(Properties::getStartupSize()); + resize(Settings::getStartupSize()); // load the most recent previous workspace, if there is any - QStringList list = Properties::getPreviousWorkspaces(); + QStringList list = Settings::getPreviousWorkspaces(); if (list.size() > 0) { loadWorkspace(list[0]); @@ -192,7 +205,7 @@ QMessageBox::Ok ); // remove the workspace if it was recorded as recent workspace - Properties::removePreviousWorkspace(fn); + Settings::removePreviousWorkspace(fn); updatePreviousWorkspacesMenu(); return; } @@ -209,7 +222,7 @@ } // add the workspace to the recent workspace list - Properties::addPreviousWorkspace(myWorkspace->getNormalizedWorkspaceDir()); + Settings::addPreviousWorkspace(myWorkspace->getNormalizedWorkspaceDir()); updatePreviousWorkspacesMenu(); statusBar()->showMessage(tr("Loading workspace..."), 2000 ); @@ -218,7 +231,7 @@ void Guitone::closeEvent(QCloseEvent *event) { // Do some cleanup before closing down the application - Properties::setStartupSize(size()); + Settings::setStartupSize(size()); event->accept(); } @@ -247,7 +260,7 @@ // clear previous actions wsSubMenu->clear(); - QStringList previousWs = Properties::getPreviousWorkspaces(); + QStringList previousWs = Settings::getPreviousWorkspaces(); int elemCount = previousWs.size(); if (elemCount == 0) { ============================================================ --- src/view/Guitone.h 240ec4685a00a13789e9667ff6d5c83ed282ae26 +++ src/view/Guitone.h 82aaf4f24d417cdfd562b92ee5baca58aadf6ae6 @@ -21,9 +21,6 @@ #ifndef GUITONE_H #define GUITONE_H -// -// Forward class declarations -// class QMenu; class QToolBar; class QListView; @@ -32,6 +29,7 @@ class Workspace; class ProxyModel; class WorkspaceView; +class PropertiesView; class Guitone: public QMainWindow { @@ -63,6 +61,7 @@ ProxyModel *proxyModelFileList; WorkspaceView *treeView; WorkspaceView *listView; + PropertiesView *propView; bool gotError; }; ============================================================ --- src/view/WorkspaceView.cpp fa1baaf882b961e59dac7bb709b5074e4793bee3 +++ src/view/WorkspaceView.cpp d3ceb08afe766a826eccb3b2bea1c8b978e86455 @@ -19,7 +19,9 @@ ***************************************************************************/ #include "WorkspaceView.h" -#include "../Properties.h" +#include "stable.h" +#include "../util/Settings.h" +#include "../model/WorkspaceItem.h" WorkspaceView::WorkspaceView(QWidget* parent, Type type_) : QTreeView(parent), type(type_) @@ -28,12 +30,12 @@ { setRootIsDecorated(false); setItemsExpandable(false); - resize(Properties::getFileListSize()); + resize(Settings::getFileListSize()); } else { setRootIsDecorated(true); - resize(Properties::getTreeViewSize()); + resize(Settings::getTreeViewSize()); } setSelectionMode(QAbstractItemView::ExtendedSelection); @@ -50,7 +52,7 @@ connect( qApp, SIGNAL(lastWindowClosed(void)), this, SLOT(slotSaveState(void)) - ); + ); } WorkspaceView::~WorkspaceView() {} @@ -241,11 +243,11 @@ { if (type == FileList) { - Properties::setFileListSize(size()); + Settings::setFileListSize(size()); } else { - Properties::setTreeViewSize(size()); + Settings::setTreeViewSize(size()); } } ============================================================ --- src/view/WorkspaceView.h aa73630a6dd978497fbc7abaa2e4c1d667963b9c +++ src/view/WorkspaceView.h a6330e30568b50bb90ed35444c32d245c5e90c9a @@ -21,11 +21,9 @@ #ifndef WORKSPACE_VIEW_H #define WORKSPACE_VIEW_H -#include "../model/WorkspaceItem.h" - -#include - class QAction; +class QTreeView; +class WorkspaceItem; class WorkspaceView : public QTreeView {