From d184b2acecd3a7437ca78a163411d50f6935e55f Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 3 Jul 2011 09:41:52 +0000 Subject: renamed GeneralHandler git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2260 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/uihelper.h | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 src/qmmpui/uihelper.h (limited to 'src/qmmpui/uihelper.h') 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 +#include +#include +#include +#include + +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 + */ +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 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 m_generals; + QList m_toolsActions; + QList m_playlistActions; + QPointer m_toolsMenu; + QPointer m_playlistMenu; + static UiHelper* m_instance; +}; + +#endif -- cgit v1.2.3-13-gbd6f