Mercurial > hg > svcore
diff base/RecentFiles.h @ 166:702fc936e6a6
* Pull transforms out of Layer menu (again) and into a separate Transforms
menu
* Add Recent Transforms submenu
* Add effects and generators to the transforms menu (not yet implemented)
as well as analysis plugins and data-from-effects (control output ports)
* Add a nice dictionary-volume-style alphabetic subdivision of plugin names
in plugins By Name menus
author | Chris Cannam |
---|---|
date | Fri, 22 Sep 2006 16:12:23 +0000 |
parents | 3e4c384f518e |
children | 6576a208e8e7 |
line wrap: on
line diff
--- a/base/RecentFiles.h Thu Sep 21 16:43:50 2006 +0000 +++ b/base/RecentFiles.h Fri Sep 22 16:12:23 2006 +0000 @@ -21,36 +21,55 @@ #include <vector> #include <deque> +/** + * RecentFiles manages a list of the names of recently-used objects, + * saving and restoring that list via QSettings. The names do not + * actually have to refer to files. + */ + class RecentFiles : public QObject { Q_OBJECT public: - // The maxFileCount argument will only be used the first time this is called - static RecentFiles *getInstance(int maxFileCount = 10); + /** + * Construct a RecentFiles object that saves and restores in the + * given QSettings group and truncates when the given count of + * strings is reached. + */ + RecentFiles(QString settingsGroup = "RecentFiles", size_t maxCount = 10); virtual ~RecentFiles(); - int getMaxFileCount() const { return m_maxFileCount; } + QString getSettingsGroup() const { return m_settingsGroup; } - std::vector<QString> getRecentFiles() const; + int getMaxCount() const { return m_maxCount; } + + std::vector<QString> getRecent() const; + + /** + * Add a name that should be treated as a literal string. + */ + void add(QString name); - void addFile(QString filename); + /** + * Add a name that should be treated as a file path and + * canonicalised appropriately. + */ + void addFile(QString name); signals: - void recentFilesChanged(); + void recentChanged(); protected: - RecentFiles(int maxFileCount); + QString m_settingsGroup; + size_t m_maxCount; - int m_maxFileCount; - std::deque<QString> m_files; + std::deque<QString> m_names; - void readFiles(); - void writeFiles(); + void read(); + void write(); void truncateAndWrite(); - - static RecentFiles *m_instance; }; #endif