Fréchet View  1.6.0
A Tool for Exploring Fréchet Distance Algorithms
filehistory.h
Go to the documentation of this file.
1 #ifndef FILEHISTORY_H
2 #define FILEHISTORY_H
3 
4 #include <QSettings>
5 #include <QDateTime>
6 #include <QMenu>
7 
8 namespace frechet { namespace app {
12 struct FileEntry
13 {
14 public:
16  QString path;
18  size_t id;
20  QDateTime used;
21 
28  FileEntry(QString apath,
29  size_t id,
30  QDateTime adate = QDateTime::currentDateTime());
31 
37  bool operator< (const FileEntry& that) const;
38 };
39 
48 class FileHistory : public QObject
49 {
50  Q_OBJECT
51 private:
53  QList<FileEntry> files;
55  QString groupName;
57  size_t next_id;
59  QMenu* menu;
60 signals:
64  void open(QString);
65 
66 public:
68  FileHistory();
73  void init(QString agroup);
78  void restore(QSettings& settings);
79 
86  size_t insert(QString path, QDateTime date = QDateTime::currentDateTime());
90  size_t lastId() const;
94  QString lastFile() const;
99  void attachMenu(QAction* recent);
100 
107  void beginFile(QSettings& settings, size_t id, bool forWrite=false);
112  void endFile(QSettings& settings);
113 
114 public slots:
116  void onMenuSelected();
117 
118 private:
122  int indexOf(QString path);
126  int indexOf(size_t id);
127 
132  QAction* createMenuItem(const FileEntry& entry, int position);
136  void moveMenuItem(int from, int to);
137 
138 };
139 
140 } } // namespaec
141 
142 #endif // FILEHISTORY_H
void onMenuSelected()
called when an item from the Open Recent menu is selected
bool operator<(const FileEntry &that) const
compare files by their last-used date
Definition: filehistory.cpp:17
QString groupName
group identifier if preferences
Definition: filehistory.h:55
void restore(QSettings &settings)
read settings from application preferences
Definition: filehistory.cpp:53
void attachMenu(QAction *recent)
attach sub-menu
global definitions for all algorithms.
int indexOf(QString path)
find file by name
QAction * createMenuItem(const FileEntry &entry, int position)
create a new menu item in File/Open Recent
QString path
absolute path to file
Definition: filehistory.h:16
FileEntry(QString apath, size_t id, QDateTime adate=QDateTime::currentDateTime())
default constructor
Definition: filehistory.cpp:13
size_t next_id
next identifier
Definition: filehistory.h:57
an entry in the recently opened file list
Definition: filehistory.h:12
void open(QString)
raised when a file is selected from the "Open Recent" menu
void beginFile(QSettings &settings, size_t id, bool forWrite=false)
begin reading or updating file specific settings
keeps track of recently used files.
Definition: filehistory.h:48
size_t id
unique identifier issued by FileHistory
Definition: filehistory.h:18
QString lastFile() const
Definition: filehistory.cpp:94
QDateTime used
time when the file was last used
Definition: filehistory.h:20
FileHistory()
empty constructor
Definition: filehistory.cpp:43
void endFile(QSettings &settings)
end updating file specific settings
QMenu * menu
pointer to File/Open Recent menu
Definition: filehistory.h:59
QList< FileEntry > files
list of file IDs; sorted by LRU
Definition: filehistory.h:53
void moveMenuItem(int from, int to)
move a menu item
size_t insert(QString path, QDateTime date=QDateTime::currentDateTime())
insert a new file into the list
Definition: filehistory.cpp:23
void init(QString agroup)
initialize file list and menu
Definition: filehistory.cpp:47