diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/CMakeLists.txt b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/CMakeLists.txt index 3ef1d0c672..0ee611b0ed 100644 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/CMakeLists.txt +++ b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/CMakeLists.txt @@ -1,75 +1,65 @@ # Create a plugin to add a reader to the ParaView GUI -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +cmake_minimum_required(VERSION 2.6) -FIND_PACKAGE(ParaView REQUIRED) -INCLUDE(${PARAVIEW_USE_FILE}) +find_package(ParaView REQUIRED) +include(${PARAVIEW_USE_FILE}) -LINK_DIRECTORIES( +link_directories( $ENV{FOAM_LIBBIN} $ENV{FOAM_EXT_LIBBIN} ) -INCLUDE_DIRECTORIES( +include_directories( $ENV{WM_PROJECT_DIR}/src/OpenFOAM/lnInclude $ENV{WM_PROJECT_DIR}/src/OSspecific/$ENV{WM_OSTYPE}/lnInclude $ENV{WM_PROJECT_DIR}/src/meshing/blockMesh/lnInclude ${PROJECT_SOURCE_DIR}/../vtkPVblockMesh ) -ADD_DEFINITIONS( +add_definitions( -std=c++11 -DWM_$ENV{WM_PRECISION_OPTION} -DWM_LABEL_SIZE=$ENV{WM_LABEL_SIZE} ) # Set output library destination to plugin directory -SET( +set( LIBRARY_OUTPUT_PATH $ENV{PV_PLUGIN_PATH} CACHE INTERNAL "Single output directory for building all libraries." ) -IF (PARAVIEW_QT_VERSION VERSION_GREATER "4") - QT5_WRAP_CPP(MOC_SRCS - pqRefreshProperty.h - pqShowPointNumbersProperty.h +if (PARAVIEW_QT_VERSION VERSION_GREATER "4") + qt5_wrap_cpp(MOC_SRCS + pqFoamBlockMeshControls.h ) -ELSE() - QT4_WRAP_CPP(MOC_SRCS - pqRefreshProperty.h - pqShowPointNumbersProperty.h +else() + qt4_wrap_cpp(MOC_SRCS + pqFoamBlockMeshControls.h ) -ENDIF() +endif() -ADD_PARAVIEW_PROPERTY_WIDGET(IFACES0 IFACES0_SRCS - TYPE "openfoam_refresh_button" - CLASS_NAME pqRefreshProperty +add_paraview_property_group_widget(IFACES0 IFACES0_SRCS + TYPE "openfoam_blockMesh_general_controls" + CLASS_NAME pqFoamBlockMeshControls ) -ADD_PARAVIEW_PROPERTY_WIDGET(IFACES1 IFACES1_SRCS - TYPE "openfoam_show_point_numbers" - CLASS_NAME pqShowPointNumbersProperty -) - -ADD_PARAVIEW_PLUGIN( +add_paraview_plugin( PVblockMeshReader_SM "1.0" SERVER_MANAGER_XML PVblockMeshReader_SM.xml SERVER_MANAGER_SOURCES vtkPVblockMeshReader.cxx GUI_INTERFACES ${IFACES0} - ${IFACES1} SOURCES ${IFACES0_SRCS} - ${IFACES1_SRCS} ${MOC_SRCS} - pqRefreshProperty.cxx - pqShowPointNumbersProperty.cxx + pqFoamBlockMeshControls.cxx ) -TARGET_LINK_LIBRARIES( +target_link_libraries( PVblockMeshReader_SM LINK_PUBLIC vtkPVblockMesh diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/PVblockMeshReader_SM.xml b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/PVblockMeshReader_SM.xml index 61b251bbd1..e782c4371f 100644 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/PVblockMeshReader_SM.xml +++ b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/PVblockMeshReader_SM.xml @@ -19,7 +19,6 @@ name="Refresh" command="SetRefresh" default_values="0" - panel_widget="openfoam_refresh_button" number_of_elements="1" panel_visibility="default"> @@ -31,7 +30,6 @@ name="ShowPointNumbers" command="SetShowPointNumbers" default_values="1" - panel_widget="openfoam_show_point_numbers" number_of_elements="1" panel_visibility="default"> @@ -94,7 +92,9 @@ file_description="OpenFOAM blockMesh"/> - + diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqRefreshProperty.cxx b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqFoamBlockMeshControls.cxx similarity index 62% rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqRefreshProperty.cxx rename to applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqFoamBlockMeshControls.cxx index c925dfe8cc..911ad83988 100644 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqRefreshProperty.cxx +++ b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqFoamBlockMeshControls.cxx @@ -23,21 +23,24 @@ License \*---------------------------------------------------------------------------*/ -#include "pqRefreshProperty.h" +#include "pqFoamBlockMeshControls.h" -#include +#include #include +#include #include "pqApplicationCore.h" #include "pqView.h" #include "vtkSMDocumentation.h" #include "vtkSMIntVectorProperty.h" +#include "vtkSMPropertyGroup.h" #include "vtkSMSourceProxy.h" + // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * // // file-scope -static void setButtonProperties +static QAbstractButton* setButtonProperties ( QAbstractButton* b, vtkSMIntVectorProperty* prop, @@ -68,12 +71,31 @@ static void setButtonProperties { b->setChecked(prop->GetElement(0)); } + + return b; +} + + +static vtkSMIntVectorProperty* lookupIntProp +( + vtkSMPropertyGroup* group, + const char* name +) +{ + vtkSMProperty* prop = group->GetProperty(name); + + if (prop) + { + return vtkSMIntVectorProperty::SafeDownCast(prop); + } + + return nullptr; } // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // -void pqRefreshProperty::refreshPressed() +void pqFoamBlockMeshControls::refreshPressed() { // Update everything refresh_->Modified(); @@ -85,35 +107,61 @@ void pqRefreshProperty::refreshPressed() } +void pqFoamBlockMeshControls::showPointNumbers(bool checked) +{ + showPointNumbers_->SetElement(0, checked); + + // Update the active view + if (this->view()) + { + this->view()->render(); + } + + // OR: update all views + // pqApplicationCore::instance()->render(); +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -pqRefreshProperty::pqRefreshProperty +pqFoamBlockMeshControls::pqFoamBlockMeshControls ( vtkSMProxy* proxy, - vtkSMProperty* prop, + vtkSMPropertyGroup* group, QWidget* parent ) : Superclass(proxy, parent), - refresh_(vtkSMIntVectorProperty::SafeDownCast(prop)) + refresh_(lookupIntProp(group, "Refresh")), + showPointNumbers_(lookupIntProp(group, "ShowPointNumbers")) { - // Replace with our UI content - this->setShowLabel(false); - QGridLayout* form = new QGridLayout(this); - QPushButton* b = new QPushButton(this); - setButtonProperties(b, refresh_, false); - form->addWidget(b, 0, 0, Qt::AlignLeft); + if (refresh_) + { + QPushButton* b = new QPushButton(this); + setButtonProperties(b, refresh_, false); + form->addWidget(b, 0, 0, Qt::AlignLeft); - connect(b, SIGNAL(clicked()), this, SLOT(refreshPressed())); - refresh_->SetImmediateUpdate(true); + connect(b, SIGNAL(clicked()), this, SLOT(refreshPressed())); + refresh_->SetImmediateUpdate(true); + } + + if (showPointNumbers_) + { + QCheckBox* b = new QCheckBox(this); + setButtonProperties(b, showPointNumbers_); + form->addWidget(b, 0, 1, Qt::AlignLeft); + + connect(b, SIGNAL(toggled(bool)), this, SLOT(showPointNumbers(bool))); + showPointNumbers_->SetImmediateUpdate(true); + } } // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -pqRefreshProperty::~pqRefreshProperty() +pqFoamBlockMeshControls::~pqFoamBlockMeshControls() {} diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqShowPointNumbersProperty.h b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqFoamBlockMeshControls.h similarity index 71% rename from applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqShowPointNumbersProperty.h rename to applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqFoamBlockMeshControls.h index 30021a309d..0ec7150d5c 100644 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqShowPointNumbersProperty.h +++ b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqFoamBlockMeshControls.h @@ -22,17 +22,19 @@ License along with OpenFOAM. If not, see . Class - pqShowPointNumbersProperty + pqFoamBlockMeshControls Description - Custom UI handling of show-points (ParaView blockMesh reader) + Customized property controls for the ParaView blockMesh reader. + + Refresh and ShowPointNumbers. SourceFiles - pqShowPointNumbersProperty.cxx + pqFoamBlockMeshControls.cxx \*---------------------------------------------------------------------------*/ -#ifndef pqShowPointNumbersProperty_h -#define pqShowPointNumbersProperty_h +#ifndef pqFoamBlockMeshControls_h +#define pqFoamBlockMeshControls_h #include "pqPropertyWidget.h" @@ -41,10 +43,10 @@ class vtkSMIntVectorProperty; /*---------------------------------------------------------------------------*\ - Class pqShowPointNumbersProperty Declaration + Class pqFoamBlockMeshControls Declaration \*---------------------------------------------------------------------------*/ -class pqShowPointNumbersProperty +class pqFoamBlockMeshControls : public pqPropertyWidget { @@ -53,14 +55,29 @@ class pqShowPointNumbersProperty // Private data + //- Refresh (bool property - as push button) + vtkSMIntVectorProperty* refresh_; + //- Show Point Numbers (bool property) vtkSMIntVectorProperty* showPointNumbers_; + // Private Member Functions + + //- Disallow default bitwise copy construct + pqFoamBlockMeshControls(const pqFoamBlockMeshControls&) = delete; + + //- Disallow default bitwise assignment + void operator=(const pqFoamBlockMeshControls&) = delete; + + protected slots: // Protected Member Functions + //- Trigger refresh + void refreshPressed(); + //- Sync property with changed checkbox state, update rendered view(s) void showPointNumbers(bool checked); @@ -68,16 +85,16 @@ protected slots: public: //- Construct from components - pqShowPointNumbersProperty + pqFoamBlockMeshControls ( vtkSMProxy* proxy, - vtkSMProperty* prop, + vtkSMPropertyGroup* group, QWidget* parent = nullptr ); //- Destructor - virtual ~pqShowPointNumbersProperty(); + virtual ~pqFoamBlockMeshControls(); }; diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqRefreshProperty.h b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqRefreshProperty.h deleted file mode 100644 index cf2879ebfb..0000000000 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqRefreshProperty.h +++ /dev/null @@ -1,89 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2017 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM 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 3 of the License, or - (at your option) any later version. - - OpenFOAM 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 OpenFOAM. If not, see . - -Class - pqRefreshProperty - -Description - Custom refresh button (ParaView blockMesh reader) - -SourceFiles - pqRefreshProperty.cxx - -\*---------------------------------------------------------------------------*/ -#ifndef pqRefreshProperty_h -#define pqRefreshProperty_h - -#include "pqPropertyWidget.h" - -// Forward declarations (ParaView) -class vtkSMIntVectorProperty; - - -/*---------------------------------------------------------------------------*\ - Class pqRefreshProperty Declaration -\*---------------------------------------------------------------------------*/ - -class pqRefreshProperty -: - public pqPropertyWidget -{ - Q_OBJECT; - typedef pqPropertyWidget Superclass; - - // Private data - - //- Refresh (bool property - as push button) - vtkSMIntVectorProperty* refresh_; - - -protected slots: - - // Protected Member Functions - - //- Trigger refresh - void refreshPressed(); - - -public: - - //- Construct from components - pqRefreshProperty - ( - vtkSMProxy* proxy, - vtkSMProperty* prop, - QWidget* parent = nullptr - ); - - - //- Destructor - virtual ~pqRefreshProperty(); - -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqShowPointNumbersProperty.cxx b/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqShowPointNumbersProperty.cxx deleted file mode 100644 index 8e3c40e1aa..0000000000 --- a/applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/PVblockMeshReader/pqShowPointNumbersProperty.cxx +++ /dev/null @@ -1,122 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2017 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM 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 3 of the License, or - (at your option) any later version. - - OpenFOAM 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 OpenFOAM. If not, see . - -\*---------------------------------------------------------------------------*/ - -#include "pqShowPointNumbersProperty.h" - -#include -#include - -#include "pqApplicationCore.h" -#include "pqView.h" -#include "vtkSMDocumentation.h" -#include "vtkSMIntVectorProperty.h" - -// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * // - -// file-scope -static void setButtonProperties -( - QAbstractButton* b, - vtkSMIntVectorProperty* prop, - bool initChecked = true -) -{ - QString tip; - - vtkSMDocumentation* doc = prop->GetDocumentation(); - if (doc) - { - const char* txt = doc->GetDescription(); - if (txt) - { - tip = QString(txt).simplified(); - } - } - - b->setText(prop->GetXMLLabel()); - if (tip.size()) - { - b->setToolTip(tip); - } - b->setFocusPolicy(Qt::NoFocus); // avoid dotted border - - // initial checked state - if (initChecked) - { - b->setChecked(prop->GetElement(0)); - } -} - - -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // - -void pqShowPointNumbersProperty::showPointNumbers(bool checked) -{ - showPointNumbers_->SetElement(0, checked); - - // Update the active view - if (this->view()) - { - this->view()->render(); - } - - // OR: update all views - // pqApplicationCore::instance()->render(); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -pqShowPointNumbersProperty::pqShowPointNumbersProperty -( - vtkSMProxy* proxy, - vtkSMProperty* prop, - QWidget* parent -) -: - Superclass(proxy, parent), - showPointNumbers_(vtkSMIntVectorProperty::SafeDownCast(prop)) -{ - // Replace with our UI content - this->setShowLabel(false); - - QGridLayout* form = new QGridLayout(this); - - QCheckBox* b = new QCheckBox(this); - setButtonProperties(b, showPointNumbers_); - form->addWidget(b, 0, 0, Qt::AlignLeft); - - connect(b, SIGNAL(toggled(bool)), this, SLOT(showPointNumbers(bool))); - showPointNumbers_->SetImmediateUpdate(true); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -pqShowPointNumbersProperty::~pqShowPointNumbersProperty() -{} - - -// ************************************************************************* //