diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-07-03 09:41:52 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-07-03 09:41:52 +0000 |
| commit | d184b2acecd3a7437ca78a163411d50f6935e55f (patch) | |
| tree | c7d83a08b0f9d13d83ddbfaef4bb44363a16d17f /src/qmmpui/uihelper.h | |
| parent | 1763b5effcfba6dd51f805c5948c9108f7c97348 (diff) | |
| download | qmmp-d184b2acecd3a7437ca78a163411d50f6935e55f.tar.gz qmmp-d184b2acecd3a7437ca78a163411d50f6935e55f.tar.bz2 qmmp-d184b2acecd3a7437ca78a163411d50f6935e55f.zip | |
renamed GeneralHandler
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2260 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/uihelper.h')
| -rw-r--r-- | src/qmmpui/uihelper.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/src/qmmpui/uihelper.h b/src/qmmpui/uihelper.h new file mode 100644 index 000000000..a44fd22f7 --- /dev/null +++ b/src/qmmpui/uihelper.h @@ -0,0 +1,136 @@ +/*************************************************************************** + * Copyright (C) 2008-2011 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef UiHelper_H +#define UiHelper_H + +#include <QObject> +#include <QMap> +#include <QList> +#include <QPointer> +#include <QStringList> + +class QAction; +class QMenu; +class QWidget; +class General; +class GeneralFactory; + +/*! @brief The UiHelper class provides simple api to access general plugins and some gui features. + * @author Ilya Kotov <forkotov02@hotmail.ru> + */ +class UiHelper : public QObject +{ + Q_OBJECT +public: + /*! + * Object constructor, + * @param parent Parent object + */ + UiHelper(QObject *parent = 0); + /*! + * Destructor + */ + ~UiHelper(); + /*! + * Enum of menu type + */ + enum MenuType + { + TOOLS_MENU = 0, /*!< tools menu */ + PLAYLIST_MENU /*!< playlist context menu */ + }; + /*! + * Sets whether the general plugin is enabled. + * @param factory General plugin factory. + * @param enable Plugin enable state (\b true - enable, \b false - disable) + */ + void setEnabled(GeneralFactory* factory, bool enable); + /*! + * Shows configuration dialog and updates settings automatically. + * @param factory General plugin factory. + * @param parentWidget Parent widget. + */ + void showSettings(GeneralFactory* factory, QWidget* parentWidget); + /*! + * Returns \b true if one of the general plugin can change visibility, otherwise returns \b false + */ + bool visibilityControl(); + /*! + * Adds the newly created action to the menu with type \b type. + * Menu with type \b type should be created first. + * @param action Pointer of action. + * @param type Menu type. + */ + void addAction(QAction *action, MenuType type = TOOLS_MENU); + /*! + * Removes action \b action from created menus. + */ + void removeAction(QAction *action); + /*! + * Returns a list of actions of the menu type \b type + */ + QList<QAction *> actions(MenuType type = TOOLS_MENU); + /*! + * Creates menu with type \b type + * @param type Menu type. + * @param title Menu title. + * @param parent Parent widget + */ + QMenu *createMenu(MenuType type, const QString &title = QString(), QWidget *parent = 0); + /*! + * Returns a pointer to the object's instance. + */ + static UiHelper* instance(); + +public slots: + /*! + * Toggles player window visibility. + */ + void toggleVisibility(); + /*! + * Tells the player to exit. + */ + void exit(); + +signals: + /*! + * Emitted when some general plugin requires to exit. + * Use it to quit application. + */ + void exitCalled(); + /*! + * Emitted when some general plugin requires to toggle visibility. + * Use it to show/hide player's window. + */ + void toggleVisibilityCalled(); + +private slots: + void removeAction(QObject *action); + +private: + QMap <GeneralFactory*, General*> m_generals; + QList <QAction*> m_toolsActions; + QList <QAction*> m_playlistActions; + QPointer<QMenu> m_toolsMenu; + QPointer<QMenu> m_playlistMenu; + static UiHelper* m_instance; +}; + +#endif |
