00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef UiHelper_H
00021 #define UiHelper_H
00022
00023 #include <QObject>
00024 #include <QMap>
00025 #include <QList>
00026 #include <QPointer>
00027 #include <QStringList>
00028 #include <QApplication>
00029 #include <QPointer>
00030 #include "playlistmanager.h"
00031 #include "playlistmodel.h"
00032
00033 class QAction;
00034 class QMenu;
00035 class QWidget;
00036 class General;
00037 class GeneralFactory;
00038 class JumpToTrackDialog;
00039
00043 class UiHelper : public QObject
00044 {
00045 Q_OBJECT
00046 public:
00051 UiHelper(QObject *parent = 0);
00055 ~UiHelper();
00059 enum MenuType
00060 {
00061 TOOLS_MENU = 0,
00062 PLAYLIST_MENU
00063 };
00067 bool visibilityControl();
00074 void addAction(QAction *action, MenuType type = TOOLS_MENU);
00078 void removeAction(QAction *action);
00082 QList<QAction *> actions(MenuType type = TOOLS_MENU);
00089 QMenu *createMenu(MenuType type, const QString &title = QString(), QWidget *parent = 0);
00090
00091 void addFile(QWidget *parent = qApp->activeWindow(),
00092 PlayListModel *model = PlayListManager::instance()->selectedPlayList());
00093 void addDirectory(QWidget *parent = qApp->activeWindow(),
00094 PlayListModel *model = PlayListManager::instance()->selectedPlayList());
00095 void loadPlayList(QWidget *parent = qApp->activeWindow(),
00096 PlayListModel *model = PlayListManager::instance()->selectedPlayList());
00097 void savePlayList(QWidget *parent = qApp->activeWindow(),
00098 PlayListModel *model = PlayListManager::instance()->selectedPlayList());
00099 void jumpToTrack(QWidget *parent = qApp->activeWindow(),
00100 PlayListModel *model = PlayListManager::instance()->selectedPlayList());
00101 void about(QWidget *parent = 0);
00105 static UiHelper* instance();
00106
00107 public slots:
00111 void toggleVisibility();
00115 void exit();
00116
00117 signals:
00122 void toggleVisibilityCalled();
00123
00124 private slots:
00125 void removeAction(QObject *action);
00126
00127 private:
00128 QMap <GeneralFactory*, General*> m_generals;
00129 QList <QAction*> m_toolsActions;
00130 QList <QAction*> m_playlistActions;
00131 QPointer<QMenu> m_toolsMenu;
00132 QPointer<QMenu> m_playlistMenu;
00133 QString m_lastDir;
00134 QPointer <JumpToTrackDialog> m_jumpDialog;
00135 static UiHelper* m_instance;
00136 };
00137
00138 #endif