# HG changeset patch # User Tom Fredrik Blenning Klaussen # Date 1345555649 -7200 # Node ID f489b0c9bf992b168bea89fd0c4e7ad8d12ee073 # Parent 7a44ba08673dca2d4750f5332b12b990b93a271a Refactored to allow commandline tools to use DataController. diff -r 7a44ba08673d -r f489b0c9bf99 DataController.cpp --- a/DataController.cpp Tue Aug 21 15:09:22 2012 +0200 +++ b/DataController.cpp Tue Aug 21 15:27:29 2012 +0200 @@ -276,24 +276,19 @@ this->dir = dir.absolutePath(); } -DataController::DataController() : showFullPath(false) +void DataController::buildDB(const QDir& dir) +{ + findFiles(dir, *dblink); +} + + +void DataController::setupGUI() { populateDelay = new QTimer(this); populateDelay->setSingleShot(true); populateDelay->setInterval(500); connect(populateDelay, SIGNAL(timeout()), this, SLOT(populate())); - QString dbpath = DB_DEFAULT_LOCATION; - - dbpath.replace(QRegExp("^~/"), - QString("%1%2").arg(QDesktopServices::storageLocation(QDesktopServices::HomeLocation)).arg(QDir::separator())); - - dblink = new SqliteDBLink(dbpath); - - setDir(QDir(".")); - - findFiles(dir, *dblink); - mw = new QMainWindow(); QMenuBar* mb = new QMenuBar(); @@ -346,16 +341,50 @@ tw->setHeaderLabels(QString("Path;Size;Date;Checksum").split(";")); - populate(); - tw->setSortingEnabled(true); tw->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); tw->setSelectionBehavior(QAbstractItemView::SelectRows); //tw->resizeColumnsToContents(); mw->resize(800,800); mw->show(); +} +DataController::DataController(const QString& path, bool showGUI) +{ + setup(QString(), path, showGUI); +} + +DataController::DataController(bool showGUI) +{ + setup(QString(), QString(), showGUI); +} + +void DataController::setup(const QString& dbpath_in, const QString& searchPath_in, bool showGUI) +{ + QString dbpath; + if (dbpath_in.size() > 0) { + dbpath = dbpath_in; + } + else { + dbpath = DB_DEFAULT_LOCATION; + + dbpath.replace(QRegExp("^~/"), + QString("%1%2").arg(QDesktopServices::storageLocation(QDesktopServices::HomeLocation)).arg(QDir::separator())); + } + + dblink = new SqliteDBLink(dbpath); + + setDir((searchPath_in.size() > 0) ? searchPath_in : QDir(".")); + + showFullPath = false; + + if (showGUI) + setupGUI(); + buildDB(dir); + if (showGUI) + populate(); + } DataController::~DataController() diff -r 7a44ba08673d -r f489b0c9bf99 DataController.hpp --- a/DataController.hpp Tue Aug 21 15:09:22 2012 +0200 +++ b/DataController.hpp Tue Aug 21 15:27:29 2012 +0200 @@ -18,7 +18,8 @@ Q_OBJECT public: - DataController(); + DataController(const QString& path, bool showGUI); + DataController(bool showGUI); ~DataController(); void findFiles(const QDir& dir, FileDBLink& dblink); @@ -27,6 +28,9 @@ void setDir(const QDir& dir); +public: + void buildDB(const QDir& dir); + public slots: //void cellClicked(int row, int column); void cellDoubleClicked(int row, int column); @@ -40,10 +44,13 @@ void populateProgress(int); private: + void setup(const QString& dbpath, const QString& searchPath, bool showGUI); void populate(bool showNameDups, bool showSizeDups, bool showMTimeDups, bool showCheckSumDups, float editDistanceCutoff); + void setupGUI(); + QTreeWidgetItem* createItem(const FileDBLink::DBInfo& info); bool showFullPath; diff -r 7a44ba08673d -r f489b0c9bf99 main.cpp --- a/main.cpp Tue Aug 21 15:09:22 2012 +0200 +++ b/main.cpp Tue Aug 21 15:27:29 2012 +0200 @@ -1,30 +1,12 @@ -#include "MemoryDbLink.hpp" - -#include "PermissionException.hpp" #include "DataController.hpp" #include -#include - -#include -#include -#include - -#include -#include -#include - -#include - - int main(int argc, char *argv[]) { QApplication app(argc, argv); - - DataController dc; - + DataController dc(true); return app.exec(); }