view DataController.hpp @ 61:e5fa379d4030

Clean up headers.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Fri, 14 Sep 2012 20:41:35 +0200
parents fda70a362ed5
children a60c26e34d1a
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 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