From 59a1aa1597be69f8b9255ff2fb15e7b0df18fd5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Couble?= <timothee.couble@kitware.com> Date: Mon, 31 Mar 2025 16:37:03 +0200 Subject: [PATCH 1/3] [fix] Set property dock as default --- Application/Client/LidarViewMainWindow.cxx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Application/Client/LidarViewMainWindow.cxx b/Application/Client/LidarViewMainWindow.cxx index fa58a0de3..56886435e 100644 --- a/Application/Client/LidarViewMainWindow.cxx +++ b/Application/Client/LidarViewMainWindow.cxx @@ -108,6 +108,9 @@ LidarViewMainWindow::LidarViewMainWindow() this->tabifyDockWidget(this->Internals->propertiesDock, this->Internals->viewPropertiesDock); this->tabifyDockWidget(this->Internals->propertiesDock, this->Internals->displayPropertiesDock); + // Set properties panel as default dock + this->Internals->propertiesDock->raise(); + // Change default properties panel modes (one dock for each) this->Internals->propertiesPanel->setPanelMode(pqPropertiesPanel::SOURCE_PROPERTIES); this->Internals->viewPropertiesPanel->setPanelMode(pqPropertiesPanel::VIEW_PROPERTIES); -- GitLab From 0711d829bd9ac1e35779b826e8aa83b38897dc27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Couble?= <timothee.couble@kitware.com> Date: Mon, 31 Mar 2025 16:37:46 +0200 Subject: [PATCH 2/3] [feat] Add comparativeVis dock panel --- Application/Client/LidarViewMainWindow.cxx | 1 + Application/Client/LidarViewMainWindow.ui | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/Application/Client/LidarViewMainWindow.cxx b/Application/Client/LidarViewMainWindow.cxx index 56886435e..ccf424fe0 100644 --- a/Application/Client/LidarViewMainWindow.cxx +++ b/Application/Client/LidarViewMainWindow.cxx @@ -107,6 +107,7 @@ LidarViewMainWindow::LidarViewMainWindow() this->tabifyDockWidget(this->Internals->propertiesDock, this->Internals->viewPropertiesDock); this->tabifyDockWidget(this->Internals->propertiesDock, this->Internals->displayPropertiesDock); + this->tabifyDockWidget(this->Internals->propertiesDock, this->Internals->comparativePanelDock); // Set properties panel as default dock this->Internals->propertiesDock->raise(); diff --git a/Application/Client/LidarViewMainWindow.ui b/Application/Client/LidarViewMainWindow.ui index 705913e1a..5474811c8 100644 --- a/Application/Client/LidarViewMainWindow.ui +++ b/Application/Client/LidarViewMainWindow.ui @@ -128,6 +128,18 @@ </attribute> <widget class="pqPipelineBrowserWidget" name="pipelineBrowser"/> </widget> + <widget class="QDockWidget" name="comparativePanelDock"> + <property name="allowedAreas"> + <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set> + </property> + <property name="windowTitle"> + <string>Comparative View Inspector</string> + </property> + <attribute name="dockWidgetArea"> + <number>2</number> + </attribute> + <widget class="pqComparativeVisPanel" name="comparativeVisPanel"/> + </widget> <widget class="QDockWidget" name="propertiesDock"> <property name="windowTitle"> <string>Properties</string> @@ -313,6 +325,12 @@ <extends>QStatusBar</extends> <header>lqStatusBar.h</header> </customwidget> + <customwidget> + <class>pqComparativeVisPanel</class> + <extends>QWidget</extends> + <header>pqComparativeVisPanel.h</header> + <container>1</container> + </customwidget> <customwidget> <class>pqPropertiesPanel</class> <extends>QWidget</extends> -- GitLab From e659da8cc081774d0f930caa16a67070dc4e5300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Couble?= <timothee.couble@kitware.com> Date: Mon, 31 Mar 2025 16:38:31 +0200 Subject: [PATCH 3/3] [feat] Customize available view in lidarview --- Application/Client/LidarViewMainWindow.cxx | 5 +++ .../Qt/ApplicationComponents/CMakeLists.txt | 1 + .../lqViewFrameActionsImplementation.cxx | 44 ++++++++++++++++++ .../lqViewFrameActionsImplementation.h | 45 +++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.cxx create mode 100644 Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.h diff --git a/Application/Client/LidarViewMainWindow.cxx b/Application/Client/LidarViewMainWindow.cxx index ccf424fe0..27584701e 100644 --- a/Application/Client/LidarViewMainWindow.cxx +++ b/Application/Client/LidarViewMainWindow.cxx @@ -57,6 +57,7 @@ typedef pqPythonDebugLeaksView DebugLeaksViewType; #include "lqLiveSourceScalarColoringBehavior.h" #include "lqOpenLidarReaction.h" #include "lqRecentlyUsedPcapLoader.h" +#include "lqViewFrameActionsImplementation.h" #include "lqWelcomeDialog.h" //----------------------------------------------------------------------------- @@ -192,6 +193,10 @@ LidarViewMainWindow::LidarViewMainWindow() // To register ParaView interfaces. pqInterfaceTracker* pgm = pqApplicationCore::instance()->interfaceTracker(); + // Replace default views + pqParaViewBehaviors::setEnableStandardViewFrameActions(false); + pgm->addInterface(new lqViewFrameActionsImplementation(pgm)); + // Add recently used pcap interface pgm->addInterface(new lqRecentlyUsedPcapLoader(pgm)); diff --git a/Application/Qt/ApplicationComponents/CMakeLists.txt b/Application/Qt/ApplicationComponents/CMakeLists.txt index 9f52071a0..dff460299 100644 --- a/Application/Qt/ApplicationComponents/CMakeLists.txt +++ b/Application/Qt/ApplicationComponents/CMakeLists.txt @@ -8,6 +8,7 @@ set(classes lqMainControlsToolbar lqMenuSaveAsReaction lqStatusBar + lqViewFrameActionsImplementation lqWelcomeDialog ) diff --git a/Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.cxx b/Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.cxx new file mode 100644 index 000000000..f153b138e --- /dev/null +++ b/Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.cxx @@ -0,0 +1,44 @@ +/*========================================================================= + + Program: LidarView + Module: lqViewFrameActionsImplementation.cxx + + Copyright (c) Kitware, Inc. + All rights reserved. + See LICENSE or http://www.apache.org/licenses/LICENSE-2.0 for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notice for more information. + +=========================================================================*/ + +#include "lqViewFrameActionsImplementation.h" + +//----------------------------------------------------------------------------- +lqViewFrameActionsImplementation::lqViewFrameActionsImplementation(QObject* parent) + : Superclass(parent) +{ +} + +//----------------------------------------------------------------------------- +QList<pqStandardViewFrameActionsImplementation::ViewType> +lqViewFrameActionsImplementation::availableViewTypes() +{ + std::vector<std::tuple<std::string, std::string>> option_view{ { "LidarGridView", "Render View" }, + { "ComparativeRenderView", "Comparative Render View" }, + { "RenderViewWithEDL", "Eye Dome Lighting Render View" }, + { "SpreadSheetView", "SpreadSheet View" }, + { "XYHistogramChartView", "Histogram View" }, + { "XYChartView", "Line Chart View" }, + { "PythonView", "Python View" } }; + QList<pqStandardViewFrameActionsImplementation::ViewType> views; + for (const auto& [key, value] : option_view) + { + pqStandardViewFrameActionsImplementation::ViewType info; + info.Name = QString(key.c_str()); + info.Label = QString(value.c_str()); + views.push_back(info); + } + return views; +} diff --git a/Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.h b/Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.h new file mode 100644 index 000000000..ea0c7ad13 --- /dev/null +++ b/Application/Qt/ApplicationComponents/lqViewFrameActionsImplementation.h @@ -0,0 +1,45 @@ +/*========================================================================= + + Program: LidarView + Module: lqViewFrameActionsImplementation.h + + Copyright (c) Kitware, Inc. + All rights reserved. + See LICENSE or http://www.apache.org/licenses/LICENSE-2.0 for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notice for more information. + +=========================================================================*/ + +#ifndef lqViewFrameActionsImplementation_h +#define lqViewFrameActionsImplementation_h + +#include <pqStandardViewFrameActionsImplementation.h> + +#include <QList> + +#include "lvApplicationComponentsModule.h" + +class LVAPPLICATIONCOMPONENTS_EXPORT lqViewFrameActionsImplementation + : public pqStandardViewFrameActionsImplementation +{ + Q_OBJECT + typedef pqStandardViewFrameActionsImplementation Superclass; + +public: + lqViewFrameActionsImplementation(QObject* parent = 0); + ~lqViewFrameActionsImplementation() override = default; + +protected: + /** + * Returns available view types in LidarView. + */ + QList<ViewType> availableViewTypes() override; + +private: + Q_DISABLE_COPY(lqViewFrameActionsImplementation); +}; + +#endif -- GitLab