X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPVViewer%2FPVViewer_GUIElements.cxx;h=e2b77ddb84661e7d9b0cef57f6b155bb41fe596c;hb=1eb6a9b1cb88b3dfda5526b8eab7e7da5c9c8fb6;hp=c534b8a72aafedcd991954780103a74a338cbd38;hpb=73360495025aaf52997b98eaeb85e6cabe1b300f;p=modules%2Fgui.git diff --git a/src/PVViewer/PVViewer_GUIElements.cxx b/src/PVViewer/PVViewer_GUIElements.cxx index c534b8a72..e2b77ddb8 100644 --- a/src/PVViewer/PVViewer_GUIElements.cxx +++ b/src/PVViewer/PVViewer_GUIElements.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2010-2014 CEA/DEN, EDF R&D +// Copyright (C) 2010-2015 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -19,19 +19,34 @@ // Author: Adrien Bruneton (CEA) #include "PVViewer_GUIElements.h" -#include "SUIT_Desktop.h" #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include #include #include #include +#include +#include + +#include PVViewer_GUIElements * PVViewer_GUIElements::theInstance = 0; -PVViewer_GUIElements::PVViewer_GUIElements(SUIT_Desktop* desk) : +PVViewer_GUIElements::PVViewer_GUIElements(QMainWindow* desk) : propertiesPanel(0), pipelineBrowserWidget(0), sourcesMenu(0) { @@ -46,58 +61,148 @@ PVViewer_GUIElements::PVViewer_GUIElements(SUIT_Desktop* desk) : pqParaViewMenuBuilders::buildFiltersMenu(*filtersMenu, desk); macrosMenu = new QMenu(0); pqParaViewMenuBuilders::buildMacrosMenu(*macrosMenu); + + myBuildToolbars(desk); } -PVViewer_GUIElements * PVViewer_GUIElements::GetInstance(SUIT_Desktop* desk) +PVViewer_GUIElements * PVViewer_GUIElements::GetInstance(QMainWindow* desk) { if (! theInstance) theInstance = new PVViewer_GUIElements(desk); return theInstance; } -//void PVViewer_GUIElements::updateSourcesMenu(QMenu *menu) -//{ -// if (menu) -// { -// menu->clear(); -// QList act_list = sourcesMenu->actions(); -// foreach(QAction * a, act_list) -// { -// menu->addAction(a); -// } -// } -//} -// -//void PVViewer_GUIElements::updateFiltersMenu(QMenu *menu) -//{ -// if (menu) -// { -// filtersMenu->linkToMenu(menu); -// menu->clear(); -// QList act_list = filtersMenu->actions(); -// foreach(QAction * a, act_list) -// { -// menu->addAction(a); -// } -// } -//} -// -//void PVViewer_GUIElements::updateMacrosMenu(QMenu *menu) -//{ -// if (menu) -// { -// menu->clear(); -// QList act_list = macrosMenu->actions(); -// foreach(QAction * a, act_list) -// { -// menu->addAction(a); -// } -// } -//} - - -void PVViewer_GUIElements::onEmulateApply() +/** + * See ParaView source code: pqParaViewMenuBuilders::buildToolbars() + * to keep this function up to date: + */ +void PVViewer_GUIElements::myBuildToolbars(QMainWindow* mainWindow) +{ + mainToolBar = new pqMainControlsToolbar(mainWindow) + << pqSetName("MainControlsToolbar"); + mainToolBar->layout()->setSpacing(0); + + vcrToolbar = new pqVCRToolbar(mainWindow) + << pqSetName("VCRToolbar"); + vcrToolbar->layout()->setSpacing(0); + + timeToolbar = new pqAnimationTimeToolbar(mainWindow) + << pqSetName("currentTimeToolbar"); + timeToolbar->layout()->setSpacing(0); + + colorToolbar = new pqColorToolbar(mainWindow) + << pqSetName("variableToolbar"); + colorToolbar->layout()->setSpacing(0); + + reprToolbar = new pqRepresentationToolbar(mainWindow) + << pqSetName("representationToolbar"); + reprToolbar->layout()->setSpacing(0); + + cameraToolbar = new pqCameraToolbar(mainWindow) + << pqSetName("cameraToolbar"); + cameraToolbar->layout()->setSpacing(0); + + axesToolbar = new pqAxesToolbar(mainWindow) + << pqSetName("axesToolbar"); + axesToolbar->layout()->setSpacing(0); + + // Give the macros menu to the pqPythonMacroSupervisor + pqPythonManager* manager = qobject_cast( + pqApplicationCore::instance()->manager("PYTHON_MANAGER")); + + macrosToolbar = new QToolBar("Macros Toolbars", mainWindow) + << pqSetName("MacrosToolbar"); + manager->addWidgetForRunMacros(macrosToolbar); + + commonToolbar = new QToolBar("Common", mainWindow) << pqSetName("Common"); + commonToolbar->layout()->setSpacing(0); + + dataToolbar = new QToolBar("DataAnalysis", mainWindow) << pqSetName("DataAnalysis"); + dataToolbar->layout()->setSpacing(0); + + addToolbars(mainWindow); +} + +void PVViewer_GUIElements::setToolBarVisible(bool show) +{ + QCoreApplication::processEvents(); + mainAction->setChecked(!show); + mainAction->setVisible(show); + mainAction->trigger(); + vcrAction->setChecked(!show); + vcrAction->setVisible(show); + vcrAction->trigger(); + timeAction->setChecked(!show); + timeAction->setVisible(show); + timeAction->trigger(); + colorAction->setChecked(!show); + colorAction->setVisible(show); + colorAction->trigger(); + reprAction->setChecked(!show); + reprAction->setVisible(show); + reprAction->trigger(); + cameraAction->setChecked(!show); + cameraAction->setVisible(show); + cameraAction->trigger(); + axesAction->setChecked(!show); + axesAction->setVisible(show); + axesAction->trigger(); + macrosAction->setChecked(!show); + macrosAction->setVisible(show); + macrosAction->trigger(); + commonAction->setChecked(!show); + commonAction->setVisible(show); + commonAction->trigger(); + dataAction->setChecked(!show); + dataAction->setVisible(show); + dataAction->trigger(); +} + +void PVViewer_GUIElements::addToolbars(QMainWindow* desk) +{ + desk->addToolBar(Qt::TopToolBarArea, mainToolBar); + desk->addToolBar(Qt::TopToolBarArea, vcrToolbar); + desk->addToolBar(Qt::TopToolBarArea, timeToolbar); + desk->addToolBar(Qt::TopToolBarArea, colorToolbar); + desk->insertToolBarBreak(colorToolbar); + desk->addToolBar(Qt::TopToolBarArea, reprToolbar); + desk->addToolBar(Qt::TopToolBarArea, cameraToolbar); + desk->addToolBar(Qt::TopToolBarArea, axesToolbar); + desk->addToolBar(Qt::TopToolBarArea, macrosToolbar); + desk->addToolBar(Qt::TopToolBarArea, commonToolbar); + desk->addToolBar(Qt::TopToolBarArea, dataToolbar); + + mainAction = mainToolBar->toggleViewAction(); + vcrAction = vcrToolbar->toggleViewAction(); + timeAction = timeToolbar->toggleViewAction(); + colorAction = colorToolbar->toggleViewAction(); + reprAction = reprToolbar->toggleViewAction(); + cameraAction = cameraToolbar->toggleViewAction(); + axesAction = axesToolbar->toggleViewAction(); + macrosAction = macrosToolbar->toggleViewAction(); + commonAction = commonToolbar->toggleViewAction(); + dataAction = dataToolbar->toggleViewAction(); +} + +QList PVViewer_GUIElements::getToolbars() +{ + QList l; + l << mainToolBar << vcrToolbar << timeToolbar << colorToolbar + << reprToolbar << cameraToolbar << axesToolbar << macrosToolbar + << commonToolbar << dataToolbar; + return l; +} + +void PVViewer_GUIElements::setToolBarEnabled(bool enabled) { - if (propertiesPanel) - propertiesPanel->apply(); + mainToolBar ->setEnabled(enabled); + vcrToolbar ->setEnabled(enabled); + timeToolbar ->setEnabled(enabled); + colorToolbar ->setEnabled(enabled); + reprToolbar ->setEnabled(enabled); + cameraToolbar->setEnabled(enabled); + axesToolbar ->setEnabled(enabled); + macrosToolbar->setEnabled(enabled); + commonToolbar->setEnabled(enabled); + dataToolbar ->setEnabled(enabled); }