Mercurial > dedupe
changeset 4:f489b0c9bf99
Refactored to allow commandline tools to use DataController.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Tue, 21 Aug 2012 15:27:29 +0200 |
| parents | 7a44ba08673d |
| children | 5e4985407feb |
| files | DataController.cpp DataController.hpp main.cpp |
| diffstat | 3 files changed, 52 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- 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()
--- 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;
--- 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 <QtGui/QApplication> -#include <QtCore/QDir> - -#include <QtCore/QDebug> -#include <QtCore/QCryptographicHash> -#include <QtCore/QDateTime> - -#include <QtGui/QMainWindow> -#include <QtGui/QTableWidget> -#include <QtGui/QHeaderView> - -#include <cassert> - - int main(int argc, char *argv[]) { QApplication app(argc, argv); - - DataController dc; - + DataController dc(true); return app.exec(); }
