-// Copyright (C) 2010-2014 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2024 CEA, EDF, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// Author: Adrien Bruneton (CEA)
-#ifndef PVVIEWERGUIELEMENTS_H_
-#define PVVIEWERGUIELEMENTS_H_
+#ifndef PVVIEWER_GUIELEMENTS_H
+#define PVVIEWER_GUIELEMENTS_H
+
+#include "PVViewer.h"
#include <QObject>
+#include <QList>
-class pqPropertiesPanel;
-class pqPipelineBrowserWidget;
-class SUIT_Desktop;
+class QAction;
+class QMainWindow;
class QMenu;
+class QToolBar;
+class pqAnimationTimeToolbar;
+class pqPipelineBrowserWidget;
+class pqPipelineModel;
+class pqPropertiesPanel;
+class pqVCRToolbar;
/*!
* Some GUI elements of ParaView need to be instanciated in a proper order. This class
* holds all of them for the sake of clarity.
- * For example sources menu should be built *before* loading ParaView's configuration, so that the
- * list of sources gets properly populated.
*/
-class PVViewer_GUIElements: public QObject
+class PVVIEWER_EXPORT PVViewer_GUIElements: public QObject
{
Q_OBJECT
public:
- static PVViewer_GUIElements * GetInstance(SUIT_Desktop* desk);
+ static PVViewer_GUIElements* GetInstance(QMainWindow*);
+
+ pqPropertiesPanel* getPropertiesPanel();
+ pqPipelineBrowserWidget* getPipelineBrowserWidget();
- pqPropertiesPanel * getPropertiesPanel() { return propertiesPanel; }
- pqPipelineBrowserWidget * getPipelineBrowserWidget() { return pipelineBrowserWidget; }
+ QMenu* getFiltersMenu();
+ QMenu* getSourcesMenu();
+ QMenu* getMacrosMenu();
+ QMenu* getCatalystMenu();
- // Update the sources menu from what was built in private member 'sourcesMenu'
- void updateSourcesMenu(QMenu *);
- void updateFiltersMenu(QMenu *);
- void updateMacrosMenu(QMenu *);
+ pqVCRToolbar* getVCRToolbar();
+ pqAnimationTimeToolbar* getTimeToolbar();
-public slots:
- void onEmulateApply(); // better use the slot from PVViewer_ViewManager if you want to trigger "Apply"
+ void setToolBarVisible(bool);
+ void setToolBarEnabled(bool);
+ QList<QToolBar*> getToolbars();
+
+ void setVCRTimeToolBarVisible(bool);
private:
- PVViewer_GUIElements(SUIT_Desktop* desk);
+ PVViewer_GUIElements(QMainWindow*);
virtual ~PVViewer_GUIElements() {}
- static PVViewer_GUIElements * theInstance;
+ static PVViewer_GUIElements* theInstance;
+
+ void buildPVWidgets();
+
+ void publishExistingSources();
// Widgets
- pqPropertiesPanel * propertiesPanel;
- pqPipelineBrowserWidget * pipelineBrowserWidget;
+ pqPropertiesPanel* propertiesPanel;
+ pqPipelineBrowserWidget* pipelineBrowserWidget;
+ pqPipelineModel* pipelineModel;
// Dummy QMenus receiving ParaView's reaction for automatic add when new sources are added
- QMenu * sourcesMenu;
- QMenu * filtersMenu;
- QMenu * macrosMenu;
+ QMenu* sourcesMenu;
+ QMenu* filtersMenu;
+ QMenu* macrosMenu;
+ QMenu* catalystMenu;
+
+ // Toolbars also need to be instanciated early:
+ QToolBar* mainToolBar;
+ pqVCRToolbar* vcrToolbar;
+ pqAnimationTimeToolbar* timeToolbar;
+ QToolBar* colorToolbar;
+ QToolBar* reprToolbar;
+ QToolBar* cameraToolbar;
+ QToolBar* axesToolbar;
+ QToolBar* macrosToolbar;
+ QToolBar* commonToolbar;
+ QToolBar* dataToolbar;
+
+ QMainWindow* myDesktop;
+ bool myPVWidgetsFlag;
+
+public:
+ QAction* mainAction;
+ QAction* vcrAction;
+ QAction* timeAction;
+ QAction* colorAction;
+ QAction* reprAction;
+ QAction* cameraAction;
+ QAction* axesAction;
+ QAction* macrosAction;
+ QAction* commonAction;
+ QAction* dataAction;
};
-#endif /* PVVIEWERGUIELEMENTS_H_ */
+#endif // PVVIEWER_GUIELEMENTS_H