| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #ifndef CCPLUGINUIMANAGER_H
- #define CCPLUGINUIMANAGER_H
- //##########################################################################
- //# #
- //# CLOUDCOMPARE #
- //# #
- //# 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; version 2 or later of the License. #
- //# #
- //# 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. #
- //# #
- //# COPYRIGHT: CloudCompare project #
- //# #
- //##########################################################################
- #include <QActionGroup>
- #include <QList>
- #include <QObject>
- class QAction;
- class QMenu;
- class QString;
- class QToolBar;
- class QWidget;
- class ccMainAppInterface;
- class ccPluginInterface;
- class ccStdPluginInterface;
- //! Plugin UI manager
- class ccPluginUIManager : public QObject
- {
- Q_OBJECT
-
- public:
- ccPluginUIManager( ccMainAppInterface *appInterface, QWidget *parent );
- ~ccPluginUIManager() override = default;
-
- void init();
-
- QMenu *pluginMenu() const;
- QMenu *shaderAndFilterMenu() const;
-
- QToolBar *mainPluginToolbar();
- QList<QToolBar *> &additionalPluginToolbars();
- QAction *actionShowMainPluginToolbar();
- QToolBar *glFiltersToolbar();
- QAction *actionShowGLFilterToolbar();
-
- void updateMenus();
- void handleSelectionChanged();
- void showAboutDialog() const;
-
- private:
- void setupActions();
-
- void setupMenus();
- void addActionsToMenu( ccStdPluginInterface *stdPlugin, const QList<QAction *> &actions );
- void setupToolbars();
- void addActionsToToolBar( ccStdPluginInterface *stdPlugin, const QList<QAction *> &actions );
-
- void enableGLFilter();
- void disableGLFilter();
-
- QWidget *m_parentWidget; // unfortunately we need this when creating new menus & toolbars
-
- ccMainAppInterface *m_appInterface;
-
- QMenu *m_pluginMenu;
- QMenu *m_glFilterMenu;
-
- QAction *m_actionRemoveFilter;
- QActionGroup m_glFilterActions;
-
- QList<ccPluginInterface *> m_plugins;
-
- QToolBar *m_mainPluginToolbar; // if a plugin only has one action it goes here
- QList<QToolBar *> m_additionalPluginToolbars; // if a plugin has multiple actions it gets its own toolbar
- QAction *m_showPluginToolbar;
-
- QToolBar *m_glFiltersToolbar;
- QAction *m_showGLFilterToolbar;
- };
- #endif
|