00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_FILE_BROWSER_HH
00020 #define OST_GUI_FILE_BROWSER_HH
00021
00022
00023 #include <ost/gfx/gfx_object.hh>
00024 #include <ost/gui/module_config.hh>
00025 #include <ost/gui/widget.hh>
00026
00027 #include <QModelIndex>
00028 #include <QDir>
00029
00030 class QDirModel;
00031 class QListView;
00032 class QComboBox;
00033
00034 namespace ost { namespace gui {
00035
00036
00037
00038
00040 class FileBrowser : public Widget {
00041 Q_OBJECT
00042 public:
00043 FileBrowser(QWidget* parent=NULL);
00044 FileBrowser(const QString& path, QWidget* parent=NULL);
00045
00046 virtual ActionList GetActions();
00047 virtual bool Save(const QString& prefix);
00048 virtual bool Restore(const QString& prefix);
00049
00050 protected:
00051 virtual void keyPressEvent(QKeyEvent* event);
00052 public slots:
00053 void Refresh();
00054 private slots:
00055 void Init(const QString& path);
00056 void DoubleClicked(const QModelIndex& index);
00057 void ChangeToParentDirectory(int index);
00058 void Split();
00059 void ShowContextMenu(const QPoint& pos);
00060 void LoadCurrentObject();
00061 void LoadWithSystemEditor();
00062 void LoadWithSourceViewer();
00063
00064 private:
00065 void LoadObject(const QModelIndex& index);
00066 void UpdateMenu(const QString& path);
00067 void AddItem(const QDir& directory, const QString& mypath="");
00068 QComboBox* menu_;
00069 QDirModel* model_;
00070 QListView* view_;
00071 ActionList action_list_;
00072 };
00073
00074 }}
00075
00076 #endif