view DataController.hpp @ 66:a60c26e34d1a

Avoid apprent hang in beginning, now application shows, but appears frosen. Need better fix.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Sun, 23 Dec 2012 22:07:57 +0100
parents e5fa379d4030
children 308a718812ba
line wrap: on
line source

#ifndef DATACONTROLLER_HPP
#define DATACONTROLLER_HPP

#include "FileDBLink.hpp"

#include <QtCore/QDir>

class QAction;
class QMainWindow;
class QMenu;
class QPoint;
class QSpinBox;
class QTimer;
class QTreeWidget;
class QTreeWidgetItem;

class DataController : QObject {
private:
  Q_OBJECT

  public:
  DataController(const QString& path, bool showGUI);
  DataController(bool showGUI);
  ~DataController();

  void findFiles(const QDir& dir, FileDBLink& dblink);
  static void findFiles(const QDir& dir, QStringList& list);
  static QStringList findFiles(const QDir& dir);

  void setDir(const QDir& dir);

public:
  void buildDB(const QDir& dir);

public slots:
  void cellDoubleClicked(int row, int column);
  bool toggleShowFullPath();
  void setShowFullPath(bool);
  void populate();
  void delayPopulate();


signals:
  void populateProgress(int);

private slots:
  void initialPopulate();
  void progressUpdate(int);
  void deleteFile();
  void itemDoubleClicked (QTreeWidgetItem * item, int column);
  void contextMenuRequested(const QPoint&);

private:
  static void setShowFullPath(QTreeWidgetItem* item, bool showFullPath);
  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;
  QMainWindow* mw;
  QTreeWidget* tw;

  FileDBLink* dblink;

  QAction* nameFilter;
  QAction* sizeFilter;
  QAction* mtimeFilter;
  QAction* checksumFilter;
  QSpinBox* editCutoffSpin;

  QTimer* populateDelay;

  QMenu* contextMenu;
  QTreeWidgetItem* contextMenuItem;

  QDir dir;

  bool showGUI;

  int progressMax;
};

#endif //DATACONTROLLER_HPP