summaryrefslogtreecommitdiff
path: root/src/main-view/RecentFilesManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main-view/RecentFilesManager.h')
-rw-r--r--src/main-view/RecentFilesManager.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/main-view/RecentFilesManager.h b/src/main-view/RecentFilesManager.h
new file mode 100644
index 0000000..7988a0e
--- /dev/null
+++ b/src/main-view/RecentFilesManager.h
@@ -0,0 +1,43 @@
+#ifndef RECENT_FILES_MANAGER_H
+#define RECENT_FILES_MANAGER_H
+
+#include <QtCore>
+#include <QtWidgets>
+
+class RecentFilesManager: public QObject
+{
+ Q_OBJECT
+
+public:
+ RecentFilesManager(QObject* parent, QMenu* recentFilesMenu);
+ void createRecentFileActs(const QStringList& recentFiles);
+ void addFile( const QString& filePath);
+ QString getLastUsedFilePath() const;
+ QStringList getFiles() const;
+
+private:
+ static QString getShortFileName(const QString& filePath)
+ { return QFileInfo(filePath).fileName(); }
+ static QString getActionFile(QAction* action);
+
+private:
+ QAction* createRecentFileAction(const QString& filePath);
+ void updateActionTexts();
+ QString getShortDirPath(const QString& filePath) const;
+ void addRecentFileAction(const QString& filePath);
+
+private slots:
+ void triggerRecentFile();
+
+signals:
+ void recentFileTriggered(const QString& filePath);
+ void addedFile();
+
+private:
+ static const int MaxRecentFiles = 10;
+ static const int MaxPathLength = 300;
+
+private:
+ QMenu* recentFilesMenu;
+};
+#endif