00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef _FILE_FINDER_H_
00017 #define _FILE_FINDER_H_
00018
00019 #include <QString>
00020 #include <QObject>
00021
00022 class FileFinder : public QObject
00023 {
00024 Q_OBJECT
00025
00026 public:
00027 virtual ~FileFinder();
00028
00029 enum FileType {
00030 SessionFile,
00031 AudioFile,
00032 LayerFile,
00033 LayerFileNoMidi,
00034 SessionOrAudioFile,
00035 ImageFile,
00036 AnyFile
00037 };
00038
00039 QString getOpenFileName(FileType type, QString fallbackLocation = "");
00040 QString getSaveFileName(FileType type, QString fallbackLocation = "");
00041 void registerLastOpenedFilePath(FileType type, QString path);
00042
00043 QString find(FileType type, QString location, QString lastKnownLocation = "");
00044
00045 static FileFinder *getInstance();
00046
00047 protected:
00048 FileFinder();
00049 static FileFinder *m_instance;
00050
00051 QString findRelative(QString location, QString relativeTo);
00052 QString locateInteractive(FileType type, QString thing);
00053
00054 QString m_lastLocatedLocation;
00055 };
00056
00057 #endif
00058