svcore  1.9
RecentFiles.h
Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
00002 
00003 /*
00004     Sonic Visualiser
00005     An audio file viewer and annotation editor.
00006     Centre for Digital Music, Queen Mary, University of London.
00007     This file copyright 2006 Chris Cannam.
00008     
00009     This program is free software; you can redistribute it and/or
00010     modify it under the terms of the GNU General Public License as
00011     published by the Free Software Foundation; either version 2 of the
00012     License, or (at your option) any later version.  See the file
00013     COPYING included with this distribution for more information.
00014 */
00015 
00016 #ifndef _RECENT_FILES_H_
00017 #define _RECENT_FILES_H_
00018 
00019 #include <QObject>
00020 #include <QString>
00021 #include <vector>
00022 #include <deque>
00023 
00030 class RecentFiles : public QObject
00031 {
00032     Q_OBJECT
00033 
00034 public:
00040     RecentFiles(QString settingsGroup = "RecentFiles", int maxCount = 10);
00041 
00042     virtual ~RecentFiles();
00043 
00044     QString getSettingsGroup() const { return m_settingsGroup; }
00045 
00046     int getMaxCount() const { return m_maxCount; }
00047 
00048     std::vector<QString> getRecent() const;
00049 
00053     void add(QString name);
00054     
00064     void addFile(QString name);
00065 
00066 signals:
00067     void recentChanged();
00068 
00069 protected:
00070     QString m_settingsGroup;
00071     int m_maxCount;
00072 
00073     std::deque<QString> m_names;
00074 
00075     void read();
00076     void write();
00077     void truncateAndWrite();
00078 };
00079 
00080 #endif