diff --git a/src/model_editor/InspectorGadget.cpp b/src/model_editor/InspectorGadget.cpp index f359cf7ed..a2a5ba3f1 100644 --- a/src/model_editor/InspectorGadget.cpp +++ b/src/model_editor/InspectorGadget.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include "../model_editor/Utilities.hpp" @@ -58,6 +59,7 @@ #include #include +#include #include #include @@ -165,6 +167,7 @@ InspectorGadget::~InspectorGadget() { void InspectorGadget::connectSignalsAndSlots() { connect(this, &InspectorGadget::toggleUnitsClicked, this, &InspectorGadget::toggleUnits); + connect(this, &InspectorGadget::toggleDisplayAdditionalPropsClicked, this, &InspectorGadget::toggleDisplayAdditionalProps); } void InspectorGadget::rebuild(bool recursive) { @@ -367,6 +370,51 @@ void InspectorGadget::layoutItems(QVBoxLayout* masterLayout, QWidget* parent, bo } } // if(p) + if (m_displayAdditionalProps) { + // m_workspaceObj->getSources(IddObjectType::OS_AdditionalProperties) + if (auto mo_ = m_workspaceObj->optionalCast(); mo_.has_value() && mo_->hasAdditionalProperties()) { + auto addProps = mo_->additionalProperties(); + auto igChildItr = m_childMap.find(addProps); + if (igChildItr != m_childMap.end()) { + InspectorGadget* igchild = igChildItr->second; + layout->addWidget(igchild); + } else { + bool showComment = false; + bool showFields = true; + if (m_recursive) { + showComment = m_showComments; + showFields = m_showAllFields; + } + auto* igChild = new InspectorGadget(addProps, m_indent, m_comboBridge, showComment, showFields, m_recursive, m_locked); + + igChild->setUnitSystem(m_unitSystem); + layout->addWidget(igChild); + m_childMap[addProps] = igChild; + } + +#if 0 + for (const auto& name : addProps.featureNames()) { + auto propType_ = addProps.getFeatureDataType(name); + OS_ASSERT(propType_); + auto propType = std::move(*propType_); + if (propType == "String") { + boost::optional val_ = addProps.getFeatureAsString(name); + OS_ASSERT(val_); + } else if (propType == "Double") { + boost::optional val_ = addProps.getFeatureAsDouble(name); + OS_ASSERT(val_); + } else if (propType == "Integer") { + boost::optional val_ = addProps.getFeatureAsInteger(name); + OS_ASSERT(val_); + } else if (propType == "Double") { + boost::optional val_ = addProps.getFeatureAsBoolean(name); + OS_ASSERT(val_); + } + } +#endif + } + } + if (m_stretch) { masterLayout->addStretch(); } @@ -1148,3 +1196,17 @@ void InspectorGadget::setUnitSystem(const InspectorGadget::UNIT_SYSTEM unitSyste m_unitSystem = unitSystem; rebuild(true); } + +void InspectorGadget::toggleDisplayAdditionalProps(bool displayAdditionalProps) { + qDebug() << "InspectorGadget::toggleDisplayAdditionalProps"; + setDisplayAdditionalProps(displayAdditionalProps); +} + +void InspectorGadget::setDisplayAdditionalProps(bool displayAdditionalProps) { + qDebug() << "InspectorGadget::setDisplayAdditionalProps=" << displayAdditionalProps; + openstudio::OptionalWorkspaceObject currentObject = m_workspaceObj; + clear(true); + m_workspaceObj = currentObject; + m_displayAdditionalProps = displayAdditionalProps; + rebuild(true); +} diff --git a/src/model_editor/InspectorGadget.hpp b/src/model_editor/InspectorGadget.hpp index 7fc5f1cd8..7838649a4 100644 --- a/src/model_editor/InspectorGadget.hpp +++ b/src/model_editor/InspectorGadget.hpp @@ -157,12 +157,16 @@ class MODELEDITOR_API InspectorGadget void setUnitSystem(const UNIT_SYSTEM unitSystem); + void setDisplayAdditionalProps(bool displayAdditionalProps); + void removeWorkspaceObject(const openstudio::Handle&); // Middleman nano slot to emit QT signal to simulate signal chaining public slots: void toggleUnits(bool displayIP); + void toggleDisplayAdditionalProps(bool displayAdditionalProps); + /*! \brief lays out the last object again. * *\param recursive if true, apply the change to the children @@ -228,6 +232,8 @@ class MODELEDITOR_API InspectorGadget void toggleUnitsClicked(bool); + void toggleDisplayAdditionalPropsClicked(bool); + /*! *This signal is emitted when the IG changes the model. If your program *uses IG, then you should connect to this so that you know if the file needs saving or not @@ -317,6 +323,7 @@ class MODELEDITOR_API InspectorGadget bool m_recursive; UNIT_SYSTEM m_unitSystem; bool m_workspaceObjectChanged; + bool m_displayAdditionalProps = false; typedef std::map MODELMAP; MODELMAP m_childMap; diff --git a/src/openstudio_lib/BuildingInspectorView.cpp b/src/openstudio_lib/BuildingInspectorView.cpp index 553101ee6..f9312b1c1 100644 --- a/src/openstudio_lib/BuildingInspectorView.cpp +++ b/src/openstudio_lib/BuildingInspectorView.cpp @@ -222,8 +222,8 @@ void BuildingDefaultScheduleSetVectorController::onDrop(const OSItemId& itemId) // BuildingInspectorView -BuildingInspectorView::BuildingInspectorView(bool isIP, const openstudio::model::Model& model, QWidget* parent) - : ModelObjectInspectorView(model, true, parent), m_isIP(isIP) { +BuildingInspectorView::BuildingInspectorView(bool isIP, bool displayAdditionalProps, const openstudio::model::Model& model, QWidget* parent) + : ModelObjectInspectorView(model, true, parent), m_isIP(isIP), m_displayAdditionalProps(displayAdditionalProps) { auto* hiddenWidget = new QWidget(); this->stackedWidget()->insertWidget(0, hiddenWidget); @@ -250,9 +250,33 @@ BuildingInspectorView::BuildingInspectorView(bool isIP, const openstudio::model: m_nameEdit = new OSLineEdit2(); vLayout->addWidget(m_nameEdit); - mainGridLayout->addLayout(vLayout, row, 0, 1, 2); mainGridLayout->setRowMinimumHeight(row, 30); + ++row; + + vLayout = new QVBoxLayout(); + m_displayNamelabel = new QLabel(); + m_displayNamelabel->setText("Display Name: "); + m_displayNamelabel->setStyleSheet("QLabel { font: bold; }"); + vLayout->addWidget(m_displayNamelabel); + + m_displayNameEdit = new OSLineEdit2(); + vLayout->addWidget(m_displayNameEdit); + mainGridLayout->addLayout(vLayout, row, 0, 1, 1); + mainGridLayout->setRowMinimumHeight(row, 30); + + vLayout = new QVBoxLayout(); + m_cadObjectIdLabel = new QLabel(); + m_cadObjectIdLabel->setText("CAD Object Id: "); + m_cadObjectIdLabel->setStyleSheet("QLabel { font: bold; }"); + vLayout->addWidget(m_cadObjectIdLabel); + + m_cadObjectIdEdit = new OSLineEdit2(); + vLayout->addWidget(m_cadObjectIdEdit); + mainGridLayout->addLayout(vLayout, row, 1, 1, 1); + mainGridLayout->setRowMinimumHeight(row, 30); + + this->toggleDisplayAdditionalProps(m_displayAdditionalProps); ++row; @@ -594,6 +618,12 @@ void BuildingInspectorView::attach(openstudio::model::Building& building) { *m_building, OptionalStringGetter(std::bind(&model::Building::name, m_building.get_ptr(), true)), boost::optional(std::bind(&model::Building::setName, m_building.get_ptr(), std::placeholders::_1))); + m_displayNameEdit->bind(*m_building, OptionalStringGetter(std::bind(&model::Building::displayName, m_building.get_ptr())), + boost::optional(std::bind(&model::Building::setDisplayName, m_building.get_ptr(), std::placeholders::_1))); + + m_cadObjectIdEdit->bind(*m_building, OptionalStringGetter(std::bind(&model::Building::cadObjectId, m_building.get_ptr())), + boost::optional(std::bind(&model::Building::setCADObjectId, m_building.get_ptr(), std::placeholders::_1))); + populateStandardsTemplates(); populateStandardsBuildingTypes(); @@ -656,6 +686,10 @@ void BuildingInspectorView::detach() { m_nameEdit->unbind(); + m_displayNameEdit->unbind(); + + m_cadObjectIdEdit->unbind(); + disconnect(m_standardsTemplateComboBox, nullptr, this, nullptr); m_standardsTemplateComboBox->clear(); @@ -726,4 +760,13 @@ void BuildingInspectorView::toggleUnits(bool displayIP) { m_isIP = displayIP; } +void BuildingInspectorView::toggleDisplayAdditionalProps(bool displayAdditionalProps) { + m_displayAdditionalProps = displayAdditionalProps; + + m_displayNamelabel->setVisible(m_displayAdditionalProps); + m_displayNameEdit->setVisible(m_displayAdditionalProps); + m_cadObjectIdLabel->setVisible(m_displayAdditionalProps); + m_cadObjectIdEdit->setVisible(m_displayAdditionalProps); +} + } // namespace openstudio diff --git a/src/openstudio_lib/BuildingInspectorView.hpp b/src/openstudio_lib/BuildingInspectorView.hpp index debaddc9e..73695db01 100644 --- a/src/openstudio_lib/BuildingInspectorView.hpp +++ b/src/openstudio_lib/BuildingInspectorView.hpp @@ -112,7 +112,7 @@ class BuildingInspectorView : public ModelObjectInspectorView Q_OBJECT public: - BuildingInspectorView(bool isIP, const openstudio::model::Model& model, QWidget* parent = nullptr); + BuildingInspectorView(bool isIP, bool displayAdditionalProps, const openstudio::model::Model& model, QWidget* parent = nullptr); virtual ~BuildingInspectorView() {} @@ -152,6 +152,10 @@ class BuildingInspectorView : public ModelObjectInspectorView OSIntegerEdit2* m_numberLivingUnits = nullptr; OSIntegerEdit2* m_numberStories = nullptr; OSLineEdit2* m_nameEdit = nullptr; + QLabel* m_displayNamelabel = nullptr; + OSLineEdit2* m_displayNameEdit = nullptr; + QLabel* m_cadObjectIdLabel = nullptr; + OSLineEdit2* m_cadObjectIdEdit = nullptr; OSQuantityEdit2* m_northAxisEdit = nullptr; OSQuantityEdit2* m_floorToCeilingHeight = nullptr; OSQuantityEdit2* m_floorToFloorHeight = nullptr; @@ -159,10 +163,13 @@ class BuildingInspectorView : public ModelObjectInspectorView QComboBox* m_standardsTemplateComboBox = nullptr; QComboBox* m_standardsBuildingTypeComboBox = nullptr; bool m_isIP; + bool m_displayAdditionalProps; public slots: void toggleUnits(bool displayIP) override; + + void toggleDisplayAdditionalProps(bool displayAdditionalProps) override; }; } // namespace openstudio diff --git a/src/openstudio_lib/FacilityExteriorEquipmentGridView.cpp b/src/openstudio_lib/FacilityExteriorEquipmentGridView.cpp index ff6818513..9ab3060d5 100644 --- a/src/openstudio_lib/FacilityExteriorEquipmentGridView.cpp +++ b/src/openstudio_lib/FacilityExteriorEquipmentGridView.cpp @@ -70,6 +70,8 @@ #define NAME "Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // EXTERIOR LIGHTS #define EXTERIORLIGHTSDEFINITION "Exterior Lights Definition" @@ -93,12 +95,14 @@ namespace openstudio { -FacilityExteriorEquipmentGridView::FacilityExteriorEquipmentGridView(bool isIP, const model::Model& model, QWidget* parent) - : GridViewSubTab(isIP, model, parent) { +FacilityExteriorEquipmentGridView::FacilityExteriorEquipmentGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, + QWidget* parent) + : GridViewSubTab(isIP, displayAdditionalProps, model, parent) { auto modelObjects = subsetCastVector(model.getConcreteModelObjects()); std::sort(modelObjects.begin(), modelObjects.end(), openstudio::WorkspaceObjectNameLess()); - m_gridController = new FacilityExteriorEquipmentGridController(isIP, "Exterior Equipment", IddObjectType::OS_Exterior_Lights, model, modelObjects); + m_gridController = new FacilityExteriorEquipmentGridController(isIP, displayAdditionalProps, "Exterior Equipment", + IddObjectType::OS_Exterior_Lights, model, modelObjects); auto* gridView = new OSGridView(m_gridController, "Exterior Equipment", "Drop\nExterior Equipment", false, parent); setGridController(m_gridController); @@ -163,10 +167,10 @@ void FacilityExteriorEquipmentGridView::clearSelection() { //m_itemSelectorButtons->disablePurgeButton(); } -FacilityExteriorEquipmentGridController::FacilityExteriorEquipmentGridController(bool isIP, const QString& settingsText, IddObjectType iddObjectType, - const model::Model& model, +FacilityExteriorEquipmentGridController::FacilityExteriorEquipmentGridController(bool isIP, bool displayAdditionalProps, const QString& settingsText, + IddObjectType iddObjectType, const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, settingsText, iddObjectType, model, modelObjects) { + : OSGridController(isIP, settingsText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -218,6 +222,10 @@ void FacilityExteriorEquipmentGridController::onCategorySelected(int index) { } void FacilityExteriorEquipmentGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -229,7 +237,20 @@ void FacilityExteriorEquipmentGridController::addColumns(const QString& category addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::ModelObject::name), CastNullAdapter(&model::ModelObject::setName)); - + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::ModelObject::displayName), // getter + DisplayNameAdapter(&model::ModelObject::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::ModelObject::cadObjectId), // getter + DisplayNameAdapter(&model::ModelObject::setCADObjectId) // setter + ); } else if (field == SELECTED) { auto checkbox = QSharedPointer(new OSSelectAllCheckBox()); diff --git a/src/openstudio_lib/FacilityExteriorEquipmentGridView.hpp b/src/openstudio_lib/FacilityExteriorEquipmentGridView.hpp index 027499691..67baa23ad 100644 --- a/src/openstudio_lib/FacilityExteriorEquipmentGridView.hpp +++ b/src/openstudio_lib/FacilityExteriorEquipmentGridView.hpp @@ -46,7 +46,7 @@ class FacilityExteriorEquipmentGridView : public GridViewSubTab Q_OBJECT public: - FacilityExteriorEquipmentGridView(bool isIP, const model::Model& model, QWidget* parent = 0); + FacilityExteriorEquipmentGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = 0); virtual ~FacilityExteriorEquipmentGridView() {} @@ -72,8 +72,8 @@ class FacilityExteriorEquipmentGridController : public OSGridController Q_OBJECT public: - FacilityExteriorEquipmentGridController(bool isIP, const QString& settingsText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + FacilityExteriorEquipmentGridController(bool isIP, bool displayAdditionalProps, const QString& settingsText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~FacilityExteriorEquipmentGridController() = default; diff --git a/src/openstudio_lib/FacilityShadingGridView.cpp b/src/openstudio_lib/FacilityShadingGridView.cpp index 040db83da..3b5adca33 100644 --- a/src/openstudio_lib/FacilityShadingGridView.cpp +++ b/src/openstudio_lib/FacilityShadingGridView.cpp @@ -71,6 +71,8 @@ #define NAME "Shading Surface Group Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // GENERAL #define TYPE "Type" // read only @@ -88,7 +90,8 @@ namespace openstudio { -FacilityShadingGridView::FacilityShadingGridView(bool isIP, const model::Model& model, QWidget* parent) : GridViewSubTab(isIP, model, parent) { +FacilityShadingGridView::FacilityShadingGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : GridViewSubTab(isIP, displayAdditionalProps, model, parent) { std::vector shadingGroups = model.getConcreteModelObjects(); // Filter out the 'Space' shadingSurfaceTypes // These are displayed on the Space's "Shading" subtab @@ -99,7 +102,8 @@ FacilityShadingGridView::FacilityShadingGridView(bool isIP, const model::Model& auto modelObjects = subsetCastVector(shadingGroups); std::sort(modelObjects.begin(), modelObjects.end(), openstudio::WorkspaceObjectNameLess()); - m_gridController = new FacilityShadingGridController(isIP, "Shading Surface Group", IddObjectType::OS_ShadingSurfaceGroup, model, modelObjects); + m_gridController = new FacilityShadingGridController(isIP, displayAdditionalProps, "Shading Surface Group", IddObjectType::OS_ShadingSurfaceGroup, + model, modelObjects); m_gridView = new OSGridView(m_gridController, "Shading Surface Group", "Drop Shading\nSurface Group", false, parent); setGridController(m_gridController); @@ -418,9 +422,10 @@ void FacilityShadingGridView::onClearSelection() { m_itemSelectorButtons->disablePurgeButton(); } -FacilityShadingGridController::FacilityShadingGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, - const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +FacilityShadingGridController::FacilityShadingGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, + IddObjectType iddObjectType, const model::Model& model, + const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -443,6 +448,11 @@ void FacilityShadingGridController::onCategorySelected(int index) { } void FacilityShadingGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + // We place it after the SHADINGSURFACENAME + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns // show type next to name, since it comes from the groups fields.insert(fields.begin(), {NAME, TYPE, SELECTED}); @@ -472,7 +482,6 @@ void FacilityShadingGridController::addColumns(const QString& category, std::vec CastNullAdapter(&model::ShadingSurfaceGroup::shadingSurfaceType), CastNullAdapter(&model::ShadingSurfaceGroup::setShadingSurfaceType), boost::optional>(), boost::optional>()); - } else { std::function(const model::ShadingSurfaceGroup&)> allShadingSurfaces( @@ -498,6 +507,26 @@ void FacilityShadingGridController::addColumns(const QString& category, std::vec boost::optional>( std::function([](model::ShadingSurface* t_ss) { t_ss->remove(); })), boost::optional>(), DataSource(allShadingSurfaces, true)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::ShadingSurface::displayName), // getter + DisplayNameAdapter(&model::ShadingSurface::setDisplayName), // setter + boost::optional>(), // resetter + boost::optional>(), // isDefaulted + DataSource(allShadingSurfaces, true) // t_source + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::ShadingSurface::cadObjectId), // getter + DisplayNameAdapter(&model::ShadingSurface::setCADObjectId), // setter + boost::optional>(), // resetter + boost::optional>(), // isDefaulted + DataSource(allShadingSurfaces, true) // t_source + ); } else if (field == CONSTRUCTIONNAME) { addDropZoneColumn( Heading(QString(CONSTRUCTIONNAME), true, false), CastNullAdapter(&model::ShadingSurface::construction), diff --git a/src/openstudio_lib/FacilityShadingGridView.hpp b/src/openstudio_lib/FacilityShadingGridView.hpp index bba81278c..610618e6d 100644 --- a/src/openstudio_lib/FacilityShadingGridView.hpp +++ b/src/openstudio_lib/FacilityShadingGridView.hpp @@ -51,7 +51,7 @@ class FacilityShadingGridView : public GridViewSubTab Q_OBJECT public: - FacilityShadingGridView(bool isIP, const model::Model& model, QWidget* parent = 0); + FacilityShadingGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = 0); virtual ~FacilityShadingGridView() {} @@ -109,8 +109,8 @@ class FacilityShadingGridController : public OSGridController Q_OBJECT public: - FacilityShadingGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + FacilityShadingGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~FacilityShadingGridController() {} diff --git a/src/openstudio_lib/FacilityStoriesGridView.cpp b/src/openstudio_lib/FacilityStoriesGridView.cpp index f7d375817..adf3f0c95 100644 --- a/src/openstudio_lib/FacilityStoriesGridView.cpp +++ b/src/openstudio_lib/FacilityStoriesGridView.cpp @@ -71,6 +71,8 @@ #define NAME "Story Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // GENERAL #define NOMINALZCOORDINATE "Nominal Z Coordinate" @@ -86,11 +88,13 @@ namespace openstudio { -FacilityStoriesGridView::FacilityStoriesGridView(bool isIP, const model::Model& model, QWidget* parent) : GridViewSubTab(isIP, model, parent) { +FacilityStoriesGridView::FacilityStoriesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : GridViewSubTab(isIP, displayAdditionalProps, model, parent) { auto modelObjects = subsetCastVector(m_model.getConcreteModelObjects()); std::sort(modelObjects.begin(), modelObjects.end(), openstudio::WorkspaceObjectNameLess()); - m_gridController = new FacilityStoriesGridController(isIP, "Building Stories", IddObjectType::OS_BuildingStory, model, modelObjects); + m_gridController = + new FacilityStoriesGridController(isIP, displayAdditionalProps, "Building Stories", IddObjectType::OS_BuildingStory, model, modelObjects); m_gridView = new OSGridView(m_gridController, "Building Stories", "Drop\nStory", false, parent); setGridController(m_gridController); @@ -240,9 +244,10 @@ void FacilityStoriesGridView::clearSelection() { //m_itemSelectorButtons->disablePurgeButton(); } -FacilityStoriesGridController::FacilityStoriesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, - const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +FacilityStoriesGridController::FacilityStoriesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, + IddObjectType iddObjectType, const model::Model& model, + const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -264,6 +269,10 @@ void FacilityStoriesGridController::onCategorySelected(int index) { } void FacilityStoriesGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -274,6 +283,20 @@ void FacilityStoriesGridController::addColumns(const QString& category, std::vec if (field == NAME) { addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::BuildingStory::name), CastNullAdapter(&model::BuildingStory::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::BuildingStory::displayName), // getter + DisplayNameAdapter(&model::BuildingStory::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::BuildingStory::cadObjectId), // getter + DisplayNameAdapter(&model::BuildingStory::setCADObjectId) // setter + ); } else if (field == SELECTED) { auto checkbox = QSharedPointer(new OSSelectAllCheckBox()); checkbox->setToolTip("Check to select all rows"); diff --git a/src/openstudio_lib/FacilityStoriesGridView.hpp b/src/openstudio_lib/FacilityStoriesGridView.hpp index 6b0c2c292..76fb1138f 100644 --- a/src/openstudio_lib/FacilityStoriesGridView.hpp +++ b/src/openstudio_lib/FacilityStoriesGridView.hpp @@ -48,7 +48,7 @@ class FacilityStoriesGridView : public GridViewSubTab Q_OBJECT public: - FacilityStoriesGridView(bool isIP, const model::Model& model, QWidget* parent = 0); + FacilityStoriesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = 0); virtual ~FacilityStoriesGridView() = default; @@ -86,8 +86,8 @@ class FacilityStoriesGridController : public OSGridController Q_OBJECT public: - FacilityStoriesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + FacilityStoriesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~FacilityStoriesGridController() = default; diff --git a/src/openstudio_lib/FacilityTabController.cpp b/src/openstudio_lib/FacilityTabController.cpp index 63d9defaf..eadf2a736 100644 --- a/src/openstudio_lib/FacilityTabController.cpp +++ b/src/openstudio_lib/FacilityTabController.cpp @@ -37,21 +37,30 @@ namespace openstudio { -FacilityTabController::FacilityTabController(bool isIP, const model::Model& model) - : MainTabController(new FacilityTabView()), m_model(model), m_isIP(isIP) { +FacilityTabController::FacilityTabController(bool isIP, bool displayAdditionalProps, const model::Model& model) + : MainTabController(new FacilityTabView()), m_model(model), m_isIP(isIP), m_displayAdditionalProps(displayAdditionalProps) { mainContentWidget()->addSubTab("Building", BUILDING); mainContentWidget()->addSubTab("Stories", STORIES); mainContentWidget()->addSubTab("Shading", SHADING); mainContentWidget()->addSubTab("Exterior Equipment", EXTERIOR_EQUIPMENT); connect(this->mainContentWidget(), &MainTabView::tabSelected, this, &FacilityTabController::setSubTab); + + connect(this, &FacilityTabController::toggleUnitsClicked, this, &FacilityTabController::toggleUnits); + connect(this, &FacilityTabController::toggleDisplayAdditionalPropsClicked, this, &FacilityTabController::toggleDisplayAdditionalProps); } FacilityTabController::~FacilityTabController() { disconnect(this->mainContentWidget(), &MainTabView::tabSelected, this, &FacilityTabController::setSubTab); } -void FacilityTabController::toggleUnits(bool displayIP) {} +void FacilityTabController::toggleUnits(bool displayIP) { + m_isIP = displayIP; +} + +void FacilityTabController::toggleDisplayAdditionalProps(bool displayAdditionalProps) { + m_displayAdditionalProps = displayAdditionalProps; +} void FacilityTabController::setSubTab(int index) { if (m_currentIndex == index) { @@ -67,35 +76,47 @@ void FacilityTabController::setSubTab(int index) { switch (index) { case 0: { - auto* buildingInspectorView = new BuildingInspectorView(m_isIP, m_model); + auto* buildingInspectorView = new BuildingInspectorView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &FacilityTabController::toggleUnitsClicked, buildingInspectorView, &BuildingInspectorView::toggleUnitsClicked); connect(buildingInspectorView, &BuildingInspectorView::dropZoneItemClicked, this, &FacilityTabController::dropZoneItemClicked); + connect(this, &FacilityTabController::toggleDisplayAdditionalPropsClicked, buildingInspectorView, + &BuildingInspectorView::toggleDisplayAdditionalPropsClicked); + + connect(this, &FacilityTabController::toggleUnitsClicked, buildingInspectorView, &BuildingInspectorView::toggleUnits); + connect(this, &FacilityTabController::toggleDisplayAdditionalPropsClicked, buildingInspectorView, + &BuildingInspectorView::toggleDisplayAdditionalProps); this->mainContentWidget()->setSubTab(buildingInspectorView); m_currentView = buildingInspectorView; break; } case 1: { - auto* facilityStoriesGridView = new FacilityStoriesGridView(m_isIP, m_model); + auto* facilityStoriesGridView = new FacilityStoriesGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &FacilityTabController::toggleUnitsClicked, facilityStoriesGridView, &FacilityStoriesGridView::toggleUnitsClicked); connect(facilityStoriesGridView, &FacilityStoriesGridView::dropZoneItemSelected, this, &FacilityTabController::dropZoneItemSelected); + connect(this, &FacilityTabController::toggleDisplayAdditionalPropsClicked, facilityStoriesGridView, + &FacilityStoriesGridView::toggleDisplayAdditionalPropsClicked); this->mainContentWidget()->setSubTab(facilityStoriesGridView); m_currentView = facilityStoriesGridView; break; } case 2: { - auto* facilityShadingGridView = new FacilityShadingGridView(m_isIP, m_model); + auto* facilityShadingGridView = new FacilityShadingGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &FacilityTabController::toggleUnitsClicked, facilityShadingGridView, &FacilityShadingGridView::toggleUnitsClicked); connect(facilityShadingGridView, &FacilityShadingGridView::dropZoneItemSelected, this, &FacilityTabController::dropZoneItemSelected); + connect(this, &FacilityTabController::toggleDisplayAdditionalPropsClicked, facilityShadingGridView, + &FacilityShadingGridView::toggleDisplayAdditionalPropsClicked); this->mainContentWidget()->setSubTab(facilityShadingGridView); m_currentView = facilityShadingGridView; break; } case 3: { - auto* facilityExteriorEquipmentGridView = new FacilityExteriorEquipmentGridView(m_isIP, m_model); + auto* facilityExteriorEquipmentGridView = new FacilityExteriorEquipmentGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &FacilityTabController::toggleUnitsClicked, facilityExteriorEquipmentGridView, &FacilityExteriorEquipmentGridView::toggleUnitsClicked); connect(facilityExteriorEquipmentGridView, &FacilityExteriorEquipmentGridView::dropZoneItemSelected, this, &FacilityTabController::dropZoneItemSelected); + connect(this, &FacilityTabController::toggleDisplayAdditionalPropsClicked, facilityExteriorEquipmentGridView, + &FacilityExteriorEquipmentGridView::toggleDisplayAdditionalPropsClicked); this->mainContentWidget()->setSubTab(facilityExteriorEquipmentGridView); m_currentView = facilityExteriorEquipmentGridView; break; diff --git a/src/openstudio_lib/FacilityTabController.hpp b/src/openstudio_lib/FacilityTabController.hpp index d7b5f11d0..280cc1194 100644 --- a/src/openstudio_lib/FacilityTabController.hpp +++ b/src/openstudio_lib/FacilityTabController.hpp @@ -39,7 +39,7 @@ class FacilityTabController : public MainTabController Q_OBJECT public: - FacilityTabController(bool isIP, const model::Model& model); + FacilityTabController(bool isIP, bool displayAdditionalProps, const model::Model& model); virtual ~FacilityTabController(); @@ -56,6 +56,8 @@ class FacilityTabController : public MainTabController bool m_isIP; + bool m_displayAdditionalProps; + QWidget* m_currentView = nullptr; int m_currentIndex = -1; @@ -64,6 +66,8 @@ class FacilityTabController : public MainTabController void toggleUnits(bool displayIP); + void toggleDisplayAdditionalProps(bool displayAdditionalProps); + virtual void setSubTab(int index) override; }; diff --git a/src/openstudio_lib/GridViewSubTab.cpp b/src/openstudio_lib/GridViewSubTab.cpp index 08f003dbe..bad925870 100644 --- a/src/openstudio_lib/GridViewSubTab.cpp +++ b/src/openstudio_lib/GridViewSubTab.cpp @@ -47,8 +47,13 @@ namespace openstudio { -GridViewSubTab::GridViewSubTab(bool isIP, const model::Model& model, QWidget* parent) - : QWidget(parent), m_model(model), m_isIP(isIP), m_scrollLayout(new QVBoxLayout()), m_itemSelectorButtons(new OSItemSelectorButtons()) { +GridViewSubTab::GridViewSubTab(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : QWidget(parent), + m_model(model), + m_isIP(isIP), + m_displayAdditionalProps(displayAdditionalProps), + m_scrollLayout(new QVBoxLayout()), + m_itemSelectorButtons(new OSItemSelectorButtons()) { // ***** Main Layout ***** auto* mainLayout = new QVBoxLayout(); @@ -85,6 +90,7 @@ GridViewSubTab::GridViewSubTab(bool isIP, const model::Model& model, QWidget* pa connect(m_itemSelectorButtons, &OSItemSelectorButtons::purgeClicked, this, &GridViewSubTab::onPurgeClicked); connect(this, &GridViewSubTab::toggleUnitsClicked, this, &GridViewSubTab::toggleUnits); + connect(this, &GridViewSubTab::toggleDisplayAdditionalPropsClicked, this, &GridViewSubTab::toggleDisplayAdditionalProps); } void GridViewSubTab::setGridView(OSGridView* gridView) { @@ -97,12 +103,15 @@ void GridViewSubTab::setGridView(OSGridView* gridView) { connect(this, &GridViewSubTab::selectionCleared, m_gridController, &OSGridController::onSelectionCleared); connect(this, &GridViewSubTab::toggleUnitsClicked, m_gridController, &OSGridController::toggleUnitsClicked); - connect(this, &GridViewSubTab::toggleUnitsClicked, m_gridController, &OSGridController::onToggleUnits); + + connect(this, &GridViewSubTab::toggleDisplayAdditionalPropsClicked, m_gridController, &OSGridController::toggleDisplayAdditionalPropsClicked); + connect(this, &GridViewSubTab::toggleDisplayAdditionalPropsClicked, m_gridController, &OSGridController::onToggleDisplayAdditionalProps); } void GridViewSubTab::setGridController(OSGridController* gridController) { connect(this, &GridViewSubTab::toggleUnitsClicked, gridController, &OSGridController::onToggleUnits); + connect(this, &GridViewSubTab::toggleDisplayAdditionalPropsClicked, gridController, &OSGridController::onToggleDisplayAdditionalProps); } void GridViewSubTab::onAddClicked() { @@ -176,6 +185,10 @@ void GridViewSubTab::toggleUnits(bool isIP) { m_isIP = isIP; } +void GridViewSubTab::toggleDisplayAdditionalProps(bool displayAdditionalProps) { + m_displayAdditionalProps = displayAdditionalProps; +} + void GridViewSubTab::onGridRowSelectionChanged(int numSelected, int /*numSelectable*/) { if (numSelected == 0) { onClearSelection(); diff --git a/src/openstudio_lib/GridViewSubTab.hpp b/src/openstudio_lib/GridViewSubTab.hpp index 94b061dc6..ca5ba3b11 100644 --- a/src/openstudio_lib/GridViewSubTab.hpp +++ b/src/openstudio_lib/GridViewSubTab.hpp @@ -55,7 +55,7 @@ class GridViewSubTab : public QWidget Q_OBJECT public: - GridViewSubTab(bool isIP, const model::Model& model, QWidget* parent = nullptr); + GridViewSubTab(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~GridViewSubTab() = default; @@ -84,6 +84,8 @@ class GridViewSubTab : public QWidget bool m_isIP; + bool m_displayAdditionalProps; + QVBoxLayout* m_scrollLayout = nullptr; OSItemSelectorButtons* m_itemSelectorButtons = nullptr; @@ -92,6 +94,8 @@ class GridViewSubTab : public QWidget void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + void dropZoneItemSelected(OSItem* item, bool readOnly); void selectionCleared(); @@ -114,6 +118,8 @@ class GridViewSubTab : public QWidget void toggleUnits(bool isIP); + void toggleDisplayAdditionalProps(bool displayAdditionalProps); + virtual void onSelectItem() = 0; virtual void onClearSelection() = 0; diff --git a/src/openstudio_lib/InspectorController.cpp b/src/openstudio_lib/InspectorController.cpp index 8375bb6b0..81e7e5270 100644 --- a/src/openstudio_lib/InspectorController.cpp +++ b/src/openstudio_lib/InspectorController.cpp @@ -81,6 +81,7 @@ InspectorController::InspectorController() : QObject() { connect(this, &InspectorController::toggleUnitsClicked, m_inspectorView, &InspectorView::toggleUnitsClicked); + connect(this, &InspectorController::toggleDisplayAdditionalPropsClicked, m_inspectorView, &InspectorView::toggleDisplayAdditionalPropsClicked); connect(m_inspectorView, &InspectorView::removeZoneClicked, this, &InspectorController::removeBranchForZone); connect(m_inspectorView, &InspectorView::addToLoopClicked, this, &InspectorController::addToLoop); @@ -108,8 +109,9 @@ InspectorView* InspectorController::inspectorView() { void InspectorController::layoutModelObject(model::OptionalModelObject& modelObject, bool readOnly) { bool displayIP = OSAppBase::instance()->currentDocument()->mainWindow()->displayIP(); + bool displayAdditionalProps = OSAppBase::instance()->currentDocument()->mainWindow()->displayAdditionalProps(); - m_inspectorView->layoutModelObject(modelObject, readOnly, displayIP); + m_inspectorView->layoutModelObject(modelObject, readOnly, displayIP, displayAdditionalProps); m_modelObject = modelObject; } diff --git a/src/openstudio_lib/InspectorController.hpp b/src/openstudio_lib/InspectorController.hpp index 162a7a418..e93ef4ac2 100644 --- a/src/openstudio_lib/InspectorController.hpp +++ b/src/openstudio_lib/InspectorController.hpp @@ -65,6 +65,8 @@ class InspectorController : public QObject void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + void itemRemoveClicked(OSItem*); void removeButtonClicked(bool); diff --git a/src/openstudio_lib/InspectorView.cpp b/src/openstudio_lib/InspectorView.cpp index cee639793..f9d0b58e4 100644 --- a/src/openstudio_lib/InspectorView.cpp +++ b/src/openstudio_lib/InspectorView.cpp @@ -187,7 +187,8 @@ void InspectorView::update() { } } -void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& modelObject, bool readOnly, bool displayIP) { +void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; if (QWidget* _parentWidget = parentWidget()) { @@ -203,8 +204,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new SplitterMixerInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(splitter.get(), readOnly, displayIP); + m_currentView->layoutModelObject(splitter.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -220,6 +222,7 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ThermalZoneInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); connect(static_cast(m_currentView), &ThermalZoneInspectorView::moveBranchForZoneSupplySelected, this, &InspectorView::moveBranchForZoneSupplySelected); @@ -227,7 +230,7 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo connect(static_cast(m_currentView), &ThermalZoneInspectorView::moveBranchForZoneReturnSelected, this, &InspectorView::moveBranchForZoneReturnSelected); - m_currentView->layoutModelObject(zone.get(), readOnly, displayIP); + m_currentView->layoutModelObject(zone.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); } else if (model::OptionalAirLoopHVACZoneMixer mixer = modelObject->optionalCast()) { @@ -237,8 +240,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new SplitterMixerInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(mixer.get(), readOnly, displayIP); + m_currentView->layoutModelObject(mixer.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -255,8 +259,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctConstantVolumeFourPipeInductionInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -275,8 +280,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -296,8 +302,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirLoopHVACUnitarySystemInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -313,8 +320,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new WaterToAirInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -331,8 +339,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctConstantVolumeCooledBeamInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -349,8 +358,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctConstantVolumeReheatInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -367,8 +377,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctVAVReheatInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -384,8 +395,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctParallelPIUReheatInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -401,8 +413,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctSeriesPIUReheatInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -419,8 +432,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -437,8 +451,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACBaseboardConvectiveWaterInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -455,8 +470,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACBaseboardRadiantConvectiveWaterInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -473,8 +489,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACCoolingPanelRadiantConvectiveWaterInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -490,8 +507,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACFourPipeFanCoilInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -508,8 +526,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACLowTempRadiantConstFlowInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -527,8 +546,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACLowTempRadiantVarFlowInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -544,8 +564,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACWaterToAirHeatPumpInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -564,8 +585,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACPackagedTerminalAirConditionerInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -584,8 +606,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACPackagedTerminalHeatPumpInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -603,8 +626,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new WaterHeaterHeatPumpInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -621,8 +645,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACUnitHeaterInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -639,8 +664,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ZoneHVACUnitVentilatorInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -656,6 +682,7 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new GenericInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); m_vLayout->addWidget(m_currentView); } else if (boost::optional component = modelObject->optionalCast()) { @@ -666,8 +693,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new RefrigerationWalkinInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); } else if (boost::optional component = modelObject->optionalCast()) { @@ -677,7 +705,7 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new ScheduleRulesetInspectorView(); - m_currentView->layoutModelObject(component.get(), readOnly, displayIP); + m_currentView->layoutModelObject(component.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); } else if (boost::optional component = modelObject->optionalCast()) { @@ -704,8 +732,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new GenericInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP); + m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -737,8 +766,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new GenericInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP); + m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -770,8 +800,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new GenericInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP); + m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); @@ -787,8 +818,9 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new GenericInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); - m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP); + m_currentView->layoutModelObject(modelObject.get(), readOnly, displayIP, displayAdditionalProps); m_vLayout->addWidget(m_currentView); } @@ -800,6 +832,7 @@ void InspectorView::layoutModelObject(openstudio::model::OptionalModelObject& mo m_currentView = new GenericInspectorView(); connect(this, &InspectorView::toggleUnitsClicked, m_currentView, &BaseInspectorView::toggleUnitsClicked); + connect(this, &InspectorView::toggleDisplayAdditionalPropsClicked, m_currentView, &BaseInspectorView::toggleDisplayAdditionalPropsClicked); m_vLayout->addWidget(m_currentView); } @@ -863,7 +896,7 @@ SplitterMixerInspectorView::SplitterMixerInspectorView(QWidget* parent) : BaseIn connect(m_zoneChooserView, &ZoneChooserView::removeZoneClicked, this, &SplitterMixerInspectorView::removeZoneClicked); } -void SplitterMixerInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void SplitterMixerInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps) { m_zoneChooserView->layoutModelObject(modelObject); } @@ -871,6 +904,7 @@ GenericInspectorView::GenericInspectorView(QWidget* parent) : BaseInspectorView( m_inspectorGadget = new InspectorGadget(); connect(this, &GenericInspectorView::toggleUnitsClicked, m_inspectorGadget, &InspectorGadget::toggleUnitsClicked); + connect(this, &GenericInspectorView::toggleDisplayAdditionalPropsClicked, m_inspectorGadget, &InspectorGadget::toggleDisplayAdditionalPropsClicked); connect(m_inspectorGadget, &InspectorGadget::workspaceObjectRemoved, this, &BaseInspectorView::workspaceObjectRemoved); m_libraryTabWidget->addTab(m_inspectorGadget, ":/images/properties_icon_on.png", ":/images/properties_icon_off.png"); @@ -882,7 +916,7 @@ GenericInspectorView::GenericInspectorView(QWidget* parent) : BaseInspectorView( m_libraryTabWidget->addTab(m_emsSensorView, ":/images/controller_icon_on.png", ":/images/controller_icon_off.png"); } -void GenericInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void GenericInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps) { bool force = false; bool recursive = true; bool locked = readOnly; @@ -892,6 +926,7 @@ void GenericInspectorView::layoutModelObject(model::ModelObject& modelObject, bo } else { m_inspectorGadget->setUnitSystem(InspectorGadget::SI); } + m_inspectorGadget->setDisplayAdditionalProps(displayAdditionalProps); m_inspectorGadget->layoutModelObj(modelObject, force, recursive, locked, hideChildren); m_emsActuatorView->layoutModelObject(modelObject); m_emsSensorView->layoutModelObject(modelObject); @@ -1009,7 +1044,8 @@ RefrigerationWalkinInspectorView::RefrigerationWalkinInspectorView(QWidget* pare m_libraryTabWidget->addTab(m_zoneBoundaryWidget, ":/images/walkin_right_tab_on.png", ":/images/walkin_right_tab_off.png"); } -void RefrigerationWalkinInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void RefrigerationWalkinInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1270,7 +1306,7 @@ void ThermalZoneInspectorView::update() { returnChooser->blockSignals(false); } -void ThermalZoneInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ThermalZoneInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps) { bool force = false; bool recursive = true; bool hideChildren = false; @@ -1312,7 +1348,7 @@ WaterToAirInspectorView::WaterToAirInspectorView(QWidget* parent) : BaseInspecto connect(m_loopChooserView, &LoopChooserView::removeFromLoopClicked, this, &WaterToAirInspectorView::removeFromLoopClicked); } -void WaterToAirInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void WaterToAirInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1393,7 +1429,7 @@ AirTerminalInspectorView::AirTerminalInspectorView(QWidget* parent) : BaseInspec } template -void AirTerminalInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1430,34 +1466,39 @@ void AirTerminalInspectorView::layoutModelObject(model::ModelObject& modelObject AirTerminalSingleDuctConstantVolumeReheatInspectorView::AirTerminalSingleDuctConstantVolumeReheatInspectorView(QWidget* parent) : AirTerminalInspectorView(parent) {} -void AirTerminalSingleDuctConstantVolumeReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalSingleDuctConstantVolumeReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { AirTerminalInspectorView::layoutModelObject(modelObject, readOnly, displayIP); } AirTerminalSingleDuctVAVReheatInspectorView::AirTerminalSingleDuctVAVReheatInspectorView(QWidget* parent) : AirTerminalInspectorView(parent) {} -void AirTerminalSingleDuctVAVReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalSingleDuctVAVReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { AirTerminalInspectorView::layoutModelObject(modelObject, readOnly, displayIP); } AirTerminalSingleDuctParallelPIUReheatInspectorView::AirTerminalSingleDuctParallelPIUReheatInspectorView(QWidget* parent) : AirTerminalInspectorView(parent) {} -void AirTerminalSingleDuctParallelPIUReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalSingleDuctParallelPIUReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { AirTerminalInspectorView::layoutModelObject(modelObject, readOnly, displayIP); } AirTerminalSingleDuctSeriesPIUReheatInspectorView::AirTerminalSingleDuctSeriesPIUReheatInspectorView(QWidget* parent) : AirTerminalInspectorView(parent) {} -void AirTerminalSingleDuctSeriesPIUReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalSingleDuctSeriesPIUReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { AirTerminalInspectorView::layoutModelObject(modelObject, readOnly, displayIP); } AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView::AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView(QWidget* parent) : AirTerminalInspectorView(parent) {} -void AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { AirTerminalInspectorView::layoutModelObject(modelObject, readOnly, displayIP); } @@ -1483,7 +1524,8 @@ AirTerminalSingleDuctConstantVolumeCooledBeamInspectorView::AirTerminalSingleDuc &AirTerminalSingleDuctConstantVolumeCooledBeamInspectorView::removeFromLoopClicked); } -void AirTerminalSingleDuctConstantVolumeCooledBeamInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalSingleDuctConstantVolumeCooledBeamInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1533,7 +1575,8 @@ ZoneHVACBaseboardConvectiveWaterInspectorView::ZoneHVACBaseboardConvectiveWaterI &ZoneHVACBaseboardConvectiveWaterInspectorView::removeFromLoopClicked); } -void ZoneHVACBaseboardConvectiveWaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACBaseboardConvectiveWaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1586,7 +1629,8 @@ ZoneHVACBaseboardRadiantConvectiveWaterInspectorView::ZoneHVACBaseboardRadiantCo &ZoneHVACBaseboardRadiantConvectiveWaterInspectorView::removeFromLoopClicked); } -void ZoneHVACBaseboardRadiantConvectiveWaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACBaseboardRadiantConvectiveWaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1641,7 +1685,8 @@ ZoneHVACCoolingPanelRadiantConvectiveWaterInspectorView::ZoneHVACCoolingPanelRad &ZoneHVACCoolingPanelRadiantConvectiveWaterInspectorView::removeFromLoopClicked); } -void ZoneHVACCoolingPanelRadiantConvectiveWaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACCoolingPanelRadiantConvectiveWaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1700,7 +1745,8 @@ ZoneHVACFourPipeFanCoilInspectorView::ZoneHVACFourPipeFanCoilInspectorView(QWidg connect(m_coolingLoopChooserView, &LoopChooserView::removeFromLoopClicked, this, &ZoneHVACFourPipeFanCoilInspectorView::removeFromLoopClicked); } -void ZoneHVACFourPipeFanCoilInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACFourPipeFanCoilInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -1775,7 +1821,8 @@ ZoneHVACLowTempRadiantConstFlowInspectorView::ZoneHVACLowTempRadiantConstFlowIns &ZoneHVACLowTempRadiantConstFlowInspectorView::removeFromLoopClicked); } -void ZoneHVACLowTempRadiantConstFlowInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACLowTempRadiantConstFlowInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; @@ -1851,7 +1898,8 @@ ZoneHVACLowTempRadiantVarFlowInspectorView::ZoneHVACLowTempRadiantVarFlowInspect &ZoneHVACLowTempRadiantVarFlowInspectorView::removeFromLoopClicked); } -void ZoneHVACLowTempRadiantVarFlowInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACLowTempRadiantVarFlowInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; @@ -1935,7 +1983,8 @@ ZoneHVACWaterToAirHeatPumpInspectorView::ZoneHVACWaterToAirHeatPumpInspectorView &ZoneHVACWaterToAirHeatPumpInspectorView::removeFromLoopClicked); } -void ZoneHVACWaterToAirHeatPumpInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACWaterToAirHeatPumpInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2018,7 +2067,8 @@ ZoneHVACPackagedTerminalAirConditionerInspectorView::ZoneHVACPackagedTerminalAir &ZoneHVACPackagedTerminalAirConditionerInspectorView::removeFromLoopClicked); } -void ZoneHVACPackagedTerminalAirConditionerInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACPackagedTerminalAirConditionerInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2071,7 +2121,8 @@ ZoneHVACPackagedTerminalHeatPumpInspectorView::ZoneHVACPackagedTerminalHeatPumpI connect(m_loopChooserView, &LoopChooserView::removeFromLoopClicked, this, &ZoneHVACPackagedTerminalHeatPumpInspectorView::removeFromLoopClicked); } -void ZoneHVACPackagedTerminalHeatPumpInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACPackagedTerminalHeatPumpInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2123,7 +2174,8 @@ WaterHeaterHeatPumpInspectorView::WaterHeaterHeatPumpInspectorView(QWidget* pare connect(m_loopChooserView, &LoopChooserView::removeFromLoopClicked, this, &WaterHeaterHeatPumpInspectorView::removeFromLoopClicked); } -void WaterHeaterHeatPumpInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void WaterHeaterHeatPumpInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2173,7 +2225,7 @@ ZoneHVACUnitHeaterInspectorView::ZoneHVACUnitHeaterInspectorView(QWidget* parent connect(m_heatingLoopChooserView, &LoopChooserView::removeFromLoopClicked, this, &ZoneHVACUnitHeaterInspectorView::removeFromLoopClicked); } -void ZoneHVACUnitHeaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACUnitHeaterInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2233,7 +2285,8 @@ ZoneHVACUnitVentilatorInspectorView::ZoneHVACUnitVentilatorInspectorView(QWidget connect(m_coolingLoopChooserView, &LoopChooserView::removeFromLoopClicked, this, &ZoneHVACUnitVentilatorInspectorView::removeFromLoopClicked); } -void ZoneHVACUnitVentilatorInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ZoneHVACUnitVentilatorInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2307,7 +2360,8 @@ AirLoopHVACUnitarySystemInspectorView::AirLoopHVACUnitarySystemInspectorView(QWi connect(m_secondaryLoopChooserView, &LoopChooserView::removeFromLoopClicked, this, &AirLoopHVACUnitarySystemInspectorView::removeFromLoopClicked); } -void AirLoopHVACUnitarySystemInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirLoopHVACUnitarySystemInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2398,7 +2452,7 @@ AirTerminalSingleDuctConstantVolumeFourPipeInductionInspectorView::AirTerminalSi } void AirTerminalSingleDuctConstantVolumeFourPipeInductionInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, - bool displayIP) { + bool displayIP, bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2476,7 +2530,8 @@ AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView::AirTerminalSingleD &AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView::removeFromLoopClicked); } -void AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, + bool displayAdditionalProps) { m_modelObject = modelObject; bool force = false; @@ -2522,7 +2577,7 @@ void AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView::layoutModelOb // SCHEDULERULESET ScheduleRulesetInspectorView::ScheduleRulesetInspectorView(QWidget* parent) : BaseInspectorView(parent) {} -void ScheduleRulesetInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) { +void ScheduleRulesetInspectorView::layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps) { auto* widget = new QWidget(); auto* mainLayout = new QVBoxLayout(); diff --git a/src/openstudio_lib/InspectorView.hpp b/src/openstudio_lib/InspectorView.hpp index 012e17428..f87aa8d99 100644 --- a/src/openstudio_lib/InspectorView.hpp +++ b/src/openstudio_lib/InspectorView.hpp @@ -93,6 +93,7 @@ class InspectorView : public QWidget void addToLoopClicked(model::Loop&, boost::optional&); void removeFromLoopClicked(model::Loop&, boost::optional&); void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); void itemRemoveClicked(OSItem*); void removeButtonClicked(bool); void workspaceObjectRemoved(); @@ -104,7 +105,7 @@ class InspectorView : public QWidget public slots: - void layoutModelObject(model::OptionalModelObject&, bool readOnly, bool displayIP); + void layoutModelObject(model::OptionalModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false); virtual void toggleUnits(bool displayIP); protected slots: @@ -132,7 +133,7 @@ class BaseInspectorView void addMainView(QWidget* widget); - virtual void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) = 0; + virtual void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) = 0; virtual void update() {} @@ -141,6 +142,7 @@ class BaseInspectorView signals: void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); void removeButtonClicked(bool); @@ -163,7 +165,7 @@ class GenericInspectorView : public BaseInspectorView virtual ~GenericInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; private: InspectorGadget* m_inspectorGadget; @@ -184,7 +186,7 @@ class SplitterMixerInspectorView : public BaseInspectorView virtual ~SplitterMixerInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -237,7 +239,7 @@ class RefrigerationWalkinInspectorView : public BaseInspectorView virtual ~RefrigerationWalkinInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; private: InspectorGadget* m_walkinInspectorGadget; @@ -255,7 +257,7 @@ class ThermalZoneInspectorView : public BaseInspectorView virtual ~ThermalZoneInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -289,7 +291,7 @@ class WaterToAirInspectorView : public BaseInspectorView virtual ~WaterToAirInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -324,7 +326,7 @@ class AirTerminalSingleDuctConstantVolumeCooledBeamInspectorView : public BaseIn virtual ~AirTerminalSingleDuctConstantVolumeCooledBeamInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -358,7 +360,7 @@ class AirTerminalInspectorView : public BaseInspectorView protected: template // cppcheck-suppress missingOverride - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP); + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false); //private: @@ -378,7 +380,7 @@ class AirTerminalSingleDuctConstantVolumeReheatInspectorView : public AirTermina virtual ~AirTerminalSingleDuctConstantVolumeReheatInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; }; class AirTerminalSingleDuctVAVReheatInspectorView : public AirTerminalInspectorView @@ -390,7 +392,7 @@ class AirTerminalSingleDuctVAVReheatInspectorView : public AirTerminalInspectorV virtual ~AirTerminalSingleDuctVAVReheatInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; }; class AirTerminalSingleDuctParallelPIUReheatInspectorView : public AirTerminalInspectorView @@ -402,7 +404,7 @@ class AirTerminalSingleDuctParallelPIUReheatInspectorView : public AirTerminalIn virtual ~AirTerminalSingleDuctParallelPIUReheatInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; }; class AirTerminalSingleDuctSeriesPIUReheatInspectorView : public AirTerminalInspectorView @@ -414,7 +416,7 @@ class AirTerminalSingleDuctSeriesPIUReheatInspectorView : public AirTerminalInsp virtual ~AirTerminalSingleDuctSeriesPIUReheatInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; }; class AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView : public AirTerminalInspectorView @@ -426,7 +428,7 @@ class AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView : public AirTermina virtual ~AirTerminalSingleDuctVAVHeatAndCoolReheatInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; }; class ZoneHVACPackagedTerminalAirConditionerInspectorView : public BaseInspectorView @@ -438,7 +440,7 @@ class ZoneHVACPackagedTerminalAirConditionerInspectorView : public BaseInspector virtual ~ZoneHVACPackagedTerminalAirConditionerInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -463,7 +465,7 @@ class ZoneHVACPackagedTerminalHeatPumpInspectorView : public BaseInspectorView virtual ~ZoneHVACPackagedTerminalHeatPumpInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -488,7 +490,7 @@ class WaterHeaterHeatPumpInspectorView : public BaseInspectorView virtual ~WaterHeaterHeatPumpInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -513,7 +515,7 @@ class ZoneHVACFourPipeFanCoilInspectorView : public BaseInspectorView virtual ~ZoneHVACFourPipeFanCoilInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -538,7 +540,7 @@ class ZoneHVACLowTempRadiantConstFlowInspectorView : public BaseInspectorView public: explicit ZoneHVACLowTempRadiantConstFlowInspectorView(QWidget* parent = nullptr); - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -563,7 +565,7 @@ class ZoneHVACLowTempRadiantVarFlowInspectorView : public BaseInspectorView public: explicit ZoneHVACLowTempRadiantVarFlowInspectorView(QWidget* parent = nullptr); - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -590,7 +592,7 @@ class ZoneHVACWaterToAirHeatPumpInspectorView : public BaseInspectorView virtual ~ZoneHVACWaterToAirHeatPumpInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -619,7 +621,7 @@ class ZoneHVACBaseboardConvectiveWaterInspectorView : public BaseInspectorView virtual ~ZoneHVACBaseboardConvectiveWaterInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -644,7 +646,7 @@ class ZoneHVACBaseboardRadiantConvectiveWaterInspectorView : public BaseInspecto virtual ~ZoneHVACBaseboardRadiantConvectiveWaterInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -669,7 +671,7 @@ class ZoneHVACCoolingPanelRadiantConvectiveWaterInspectorView : public BaseInspe virtual ~ZoneHVACCoolingPanelRadiantConvectiveWaterInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -694,7 +696,7 @@ class ZoneHVACUnitHeaterInspectorView : public BaseInspectorView virtual ~ZoneHVACUnitHeaterInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -719,7 +721,7 @@ class ZoneHVACUnitVentilatorInspectorView : public BaseInspectorView virtual ~ZoneHVACUnitVentilatorInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -746,7 +748,7 @@ class AirLoopHVACUnitarySystemInspectorView : public BaseInspectorView virtual ~AirLoopHVACUnitarySystemInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -773,7 +775,7 @@ class AirTerminalSingleDuctConstantVolumeFourPipeInductionInspectorView : public virtual ~AirTerminalSingleDuctConstantVolumeFourPipeInductionInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -799,7 +801,7 @@ class AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView : public Base virtual ~AirTerminalSingleDuctConstantVolumeFourPipeBeamInspectorView() {} - void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP) override; + void layoutModelObject(model::ModelObject&, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; signals: @@ -825,7 +827,7 @@ class ScheduleRulesetInspectorView : public BaseInspectorView virtual ~ScheduleRulesetInspectorView() {} - virtual void layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP) override; + virtual void layoutModelObject(model::ModelObject& modelObject, bool readOnly, bool displayIP, bool displayAdditionalProps = false) override; }; } // namespace openstudio diff --git a/src/openstudio_lib/MainMenu.cpp b/src/openstudio_lib/MainMenu.cpp index 5ef90189e..cee29a53f 100644 --- a/src/openstudio_lib/MainMenu.cpp +++ b/src/openstudio_lib/MainMenu.cpp @@ -42,8 +42,15 @@ namespace openstudio { -MainMenu::MainMenu(bool isIP, bool isPlugin, const QString& currLang, bool allowAnalytics, bool useClassicCLI, QWidget* parent) - : QMenuBar(parent), m_isPlugin(isPlugin), m_isIP(isIP), m_currLang(currLang), m_allowAnalytics(allowAnalytics), m_useClassicCLI(useClassicCLI) { +MainMenu::MainMenu(bool isIP, bool isPlugin, const QString& currLang, bool allowAnalytics, bool useClassicCLI, bool displayAdditionalProps, + QWidget* parent) + : QMenuBar(parent), + m_isPlugin(isPlugin), + m_isIP(isIP), + m_currLang(currLang), + m_allowAnalytics(allowAnalytics), + m_useClassicCLI(useClassicCLI), + m_displayAdditionalProps(displayAdditionalProps) { QAction* action = nullptr; @@ -301,6 +308,12 @@ MainMenu::MainMenu(bool isIP, bool isPlugin, const QString& currLang, bool allow m_preferencesMenu->addAction(m_useClassicCLIAction); connect(m_useClassicCLIAction, &QAction::triggered, this, &MainMenu::useClassicCLIClicked, Qt::QueuedConnection); + m_displayAdditionalPropsAction = new QAction(tr("&Display Additional Proprerties"), this); + m_displayAdditionalPropsAction->setCheckable(true); + m_preferencesActions.push_back(m_displayAdditionalPropsAction); + m_preferencesMenu->addAction(m_displayAdditionalPropsAction); + connect(m_displayAdditionalPropsAction, &QAction::triggered, this, &MainMenu::enableDisplayAdditionalProps, Qt::QueuedConnection); + if (m_isIP) { m_displayIPUnitsAction->trigger(); } else { @@ -311,6 +324,10 @@ MainMenu::MainMenu(bool isIP, bool isPlugin, const QString& currLang, bool allow m_useClassicCLIAction->setChecked(true); } + if (m_displayAdditionalProps) { + m_displayAdditionalPropsAction->setChecked(true); + } + m_langEnglishAction->setChecked(false); m_langFrenchAction->setChecked(false); m_langSpanishAction->setChecked(false); @@ -754,6 +771,12 @@ void MainMenu::toggleUseClassicCLI() { enableUseClassicCLI(!m_useClassicCLI); } +void MainMenu::enableDisplayAdditionalProps(bool displayAdditionalProps) { + m_displayAdditionalProps = displayAdditionalProps; + m_displayAdditionalPropsAction->setChecked(m_displayAdditionalProps); + emit displayAdditionalPropsClicked(m_displayAdditionalProps); +} + void MainMenu::enableRevertToSavedAction(bool enable) { // We no longer switch the action ON/OFF // m_revertToSavedAction->setEnabled(enable); diff --git a/src/openstudio_lib/MainMenu.hpp b/src/openstudio_lib/MainMenu.hpp index 05d0db7ff..c7fd07d33 100644 --- a/src/openstudio_lib/MainMenu.hpp +++ b/src/openstudio_lib/MainMenu.hpp @@ -41,7 +41,8 @@ class MainMenu : public QMenuBar Q_OBJECT public: - MainMenu(bool isIP, bool isPlugin, const QString& currLang, bool allowAnalytics, bool useClassicCLI, QWidget* parent = nullptr); + MainMenu(bool isIP, bool isPlugin, const QString& currLang, bool allowAnalytics, bool useClassicCLI, bool displayAdditionalProps, + QWidget* parent = nullptr); virtual ~MainMenu(); @@ -101,6 +102,8 @@ class MainMenu : public QMenuBar void toggleUnitsClicked(bool displayIP); + void displayAdditionalPropsClicked(bool displayAdditionalProps); + void changeLanguageClicked(const QString& rLanguage); void openLibDlgClicked(); @@ -158,6 +161,8 @@ class MainMenu : public QMenuBar QAction* m_useClassicCLIAction; + QAction* m_displayAdditionalPropsAction; + std::vector m_fileImportActions; std::vector m_preferencesActions; @@ -172,6 +177,8 @@ class MainMenu : public QMenuBar bool m_useClassicCLI; + bool m_displayAdditionalProps; + public slots: void enableRevertToSavedAction(bool enable); @@ -190,6 +197,8 @@ class MainMenu : public QMenuBar void toggleUseClassicCLI(); + void enableDisplayAdditionalProps(bool displayAdditionalProps); + private slots: void displaySIUnitsClicked(); diff --git a/src/openstudio_lib/MainRightColumnController.cpp b/src/openstudio_lib/MainRightColumnController.cpp index b2cbb0490..25c2468a1 100644 --- a/src/openstudio_lib/MainRightColumnController.cpp +++ b/src/openstudio_lib/MainRightColumnController.cpp @@ -97,6 +97,8 @@ MainRightColumnController::MainRightColumnController(const model::Model& model, // Inspector, we're keeping it around to be able to follow the units toggled m_inspectorController = std::shared_ptr(new InspectorController()); connect(this, &MainRightColumnController::toggleUnitsClicked, m_inspectorController.get(), &InspectorController::toggleUnitsClicked); + connect(this, &MainRightColumnController::toggleDisplayAdditionalPropsClicked, m_inspectorController.get(), + &InspectorController::toggleDisplayAdditionalPropsClicked); connect(m_inspectorController.get(), &InspectorController::removeButtonClicked, this, &MainRightColumnController::onRemoveButtonClicked); connect(m_inspectorController.get(), &InspectorController::workspaceObjectRemoved, this, &MainRightColumnController::onWorkspaceObjectRemoved); connect(m_inspectorController.get(), &InspectorController::itemRemoveClicked, this, &MainRightColumnController::onItemRemoveClicked); diff --git a/src/openstudio_lib/MainRightColumnController.hpp b/src/openstudio_lib/MainRightColumnController.hpp index 80e4184fa..b4fd0a417 100644 --- a/src/openstudio_lib/MainRightColumnController.hpp +++ b/src/openstudio_lib/MainRightColumnController.hpp @@ -89,6 +89,8 @@ class MainRightColumnController : public OSQObjectController void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + void itemRemoveClicked(OSItem*); public slots: diff --git a/src/openstudio_lib/MainTabController.hpp b/src/openstudio_lib/MainTabController.hpp index 67f5aebe7..4993d983f 100644 --- a/src/openstudio_lib/MainTabController.hpp +++ b/src/openstudio_lib/MainTabController.hpp @@ -64,6 +64,8 @@ class MainTabController : public OSQObjectController void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + void itemRemoveClicked(OSItem*); void downloadComponentsClicked(); diff --git a/src/openstudio_lib/MainWindow.cpp b/src/openstudio_lib/MainWindow.cpp index eae625109..8a8f9a3aa 100644 --- a/src/openstudio_lib/MainWindow.cpp +++ b/src/openstudio_lib/MainWindow.cpp @@ -109,7 +109,7 @@ MainWindow::MainWindow(bool isPlugin, QWidget* parent) m_analyticsHelper = new AnalyticsHelper(this); connect(this, &MainWindow::sendAnalytics, m_analyticsHelper, &AnalyticsHelper::sendAnalytics); - auto* mainMenu = new MainMenu(m_displayIP, m_isPlugin, m_currLang, allowAnalytics(), m_useClassicCLI); + auto* mainMenu = new MainMenu(m_displayIP, m_isPlugin, m_currLang, allowAnalytics(), m_useClassicCLI, m_displayAdditionalProps); connect(mainMenu, &MainMenu::toggleUnitsClicked, this, &MainWindow::toggleUnits); connect(mainMenu, &MainMenu::changeLanguageClicked, this, &MainWindow::changeLanguage); connect(mainMenu, &MainMenu::downloadComponentsClicked, this, &MainWindow::downloadComponentsClicked); @@ -150,6 +150,8 @@ MainWindow::MainWindow(bool isPlugin, QWidget* parent) connect(mainMenu, &MainMenu::downloadMeasuresClicked, this, &MainWindow::downloadMeasuresClicked); connect(mainMenu, &MainMenu::changeBclLogin, this, &MainWindow::changeBclLogin); connect(mainMenu, &MainMenu::configureProxyClicked, this, &MainWindow::configureProxyClicked); + connect(mainMenu, &MainMenu::displayAdditionalPropsClicked, this, &MainWindow::toggleDisplayAdditionalProps); + connect(mainMenu, &MainMenu::displayAdditionalPropsClicked, this, &MainWindow::toggleDisplayAdditionalPropsClicked); connect(this, &MainWindow::enableRevertToSaved, mainMenu, &MainMenu::enableRevertToSavedAction); connect(this, &MainWindow::enableFileImports, mainMenu, &MainMenu::enableFileImportActions); connect(this, &MainWindow::enablePreferences, mainMenu, &MainMenu::enablePreferencesActions); @@ -285,6 +287,7 @@ void MainWindow::readSettings() { m_geometryDiagnostics = settings.value("geometryDiagnostics").toBool(); m_useClassicCLI = settings.value("useClassicCLI").toBool(); m_currLang = settings.value("language", "en").toString(); + m_displayAdditionalProps = settings.value("displayAdditionalProps").toBool(); LOG_FREE(Debug, "MainWindow", "\n\n\nm_currLang=[" << m_currLang.toStdString() << "]\n\n\n"); if (m_currLang.isEmpty()) { m_currLang = "en"; @@ -304,6 +307,7 @@ void MainWindow::writeSettings() { settings.setValue("verboseOutput", m_verboseOutput); settings.setValue("geometryDiagnostics", m_geometryDiagnostics); settings.setValue("useClassicCLI", m_useClassicCLI); + settings.setValue("displayAdditionalProps", m_displayAdditionalProps); settings.setValue("language", m_currLang); settings.setValue("analyticsId", m_analyticsId); } @@ -475,4 +479,13 @@ void MainWindow::loadProxySettings() { } } +bool MainWindow::displayAdditionalProps() const { + return m_displayAdditionalProps; +} + +void MainWindow::toggleDisplayAdditionalProps(bool displayAdditionalProps) { + m_displayAdditionalProps = displayAdditionalProps; + writeSettings(); +} + } // namespace openstudio diff --git a/src/openstudio_lib/MainWindow.hpp b/src/openstudio_lib/MainWindow.hpp index a309fd78c..7f211e7db 100644 --- a/src/openstudio_lib/MainWindow.hpp +++ b/src/openstudio_lib/MainWindow.hpp @@ -81,6 +81,8 @@ class MainWindow : public QMainWindow bool useClassicCLI() const; + bool displayAdditionalProps() const; + void enableRevertToSavedAction(bool enable); void enableFileImportActions(bool enable); @@ -183,6 +185,8 @@ class MainWindow : public QMainWindow void enableUseClassicCLI(bool enable); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + public slots: void onVerticalTabSelected(int verticalTabId); @@ -197,6 +201,8 @@ class MainWindow : public QMainWindow void toggleUseClassicCLI(bool useClassicCLI); + void toggleDisplayAdditionalProps(bool displayAdditionalProps); + protected: void closeEvent(QCloseEvent* event) override; @@ -229,14 +235,16 @@ class MainWindow : public QMainWindow bool m_geometryDiagnostics = false; + bool m_useClassicCLI = false; + + bool m_displayAdditionalProps = false; + QString m_currLang; QString m_lastPath; QString m_analyticsId; - bool m_useClassicCLI = false; - private slots: void toggleUnits(bool displayIP); diff --git a/src/openstudio_lib/ModelObjectInspectorView.cpp b/src/openstudio_lib/ModelObjectInspectorView.cpp index 50e9203df..332fbe52c 100644 --- a/src/openstudio_lib/ModelObjectInspectorView.cpp +++ b/src/openstudio_lib/ModelObjectInspectorView.cpp @@ -113,6 +113,8 @@ boost::optional ModelObjectInspectorView::modelO void ModelObjectInspectorView::toggleUnits(bool displayIP) {} +void ModelObjectInspectorView::toggleDisplayAdditionalProps(bool displayAdditionalProps) {} + DefaultInspectorView::DefaultInspectorView(const model::Model& model, QWidget* parent) : ModelObjectInspectorView(model, true, parent) { auto* hiddenWidget = new QWidget(); this->stackedWidget()->insertWidget(0, hiddenWidget); diff --git a/src/openstudio_lib/ModelObjectInspectorView.hpp b/src/openstudio_lib/ModelObjectInspectorView.hpp index 016fda36c..d5de0a7b5 100644 --- a/src/openstudio_lib/ModelObjectInspectorView.hpp +++ b/src/openstudio_lib/ModelObjectInspectorView.hpp @@ -68,6 +68,8 @@ class ModelObjectInspectorView : public OSInspectorView void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + void itemSelected(OSItem* item); void selectionCleared(); @@ -95,8 +97,12 @@ class ModelObjectInspectorView : public OSInspectorView protected slots: + // does nothing, override in derived class virtual void toggleUnits(bool displayIP); + // does nothing, override in derived class + virtual void toggleDisplayAdditionalProps(bool displayAdditionalProps); + private: boost::optional m_modelObject; }; diff --git a/src/openstudio_lib/OSDocument.cpp b/src/openstudio_lib/OSDocument.cpp index dff7c16bb..48f3c1c2f 100644 --- a/src/openstudio_lib/OSDocument.cpp +++ b/src/openstudio_lib/OSDocument.cpp @@ -223,6 +223,7 @@ OSDocument::OSDocument(const openstudio::model::Model& library, const openstudio connect(m_mainWindow, &MainWindow::scanForToolsClicked, this, &OSDocument::scanForTools); connect(m_mainWindow, &MainWindow::showRunManagerPreferencesClicked, this, &OSDocument::showRunManagerPreferences); connect(m_mainWindow, &MainWindow::toggleUnitsClicked, this, &OSDocument::toggleUnitsClicked); + connect(m_mainWindow, &MainWindow::toggleDisplayAdditionalPropsClicked, this, &OSDocument::toggleDisplayAdditionalPropsClicked); connect(m_mainWindow, &MainWindow::applyMeasureClicked, this, &OSDocument::openMeasuresDlg); connect(m_mainWindow, &MainWindow::downloadMeasuresClicked, this, &OSDocument::openMeasuresBclDlg); connect(m_mainWindow, &MainWindow::changeMyMeasuresDir, this, &OSDocument::openChangeMeasuresDirDlg); @@ -323,6 +324,8 @@ void OSDocument::setModel(const model::Model& model, bool modified, bool /*saveC m_mainRightColumnController = std::make_shared(m_model, m_resourcesPath); connect(this, &OSDocument::toggleUnitsClicked, m_mainRightColumnController.get(), &MainRightColumnController::toggleUnitsClicked); + connect(this, &OSDocument::toggleDisplayAdditionalPropsClicked, m_mainRightColumnController.get(), + &MainRightColumnController::toggleDisplayAdditionalPropsClicked); m_mainWindow->setMainRightColumnView(m_mainRightColumnController->mainRightColumnView()); @@ -441,6 +444,7 @@ void OSDocument::createTab(int verticalId) { m_verticalId = verticalId; bool isIP = m_mainWindow->displayIP(); + bool displayAdditionalProps = m_mainWindow->displayAdditionalProps(); switch (verticalId) { case SITE: @@ -566,11 +570,14 @@ void OSDocument::createTab(int verticalId) { case FACILITY: // Facility - m_mainTabController = std::shared_ptr(new FacilityTabController(isIP, m_model)); + m_mainTabController = std::shared_ptr(new FacilityTabController(isIP, displayAdditionalProps, m_model)); m_mainWindow->setView(m_mainTabController->mainContentWidget(), FACILITY); connect(this, &OSDocument::toggleUnitsClicked, m_mainTabController.get(), &FacilityTabController::toggleUnitsClicked); + connect(this, &OSDocument::toggleDisplayAdditionalPropsClicked, m_mainTabController.get(), + &FacilityTabController::toggleDisplayAdditionalPropsClicked); + connect(m_mainTabController.get(), &FacilityTabController::modelObjectSelected, m_mainRightColumnController.get(), &MainRightColumnController::inspectModelObject); @@ -594,11 +601,14 @@ void OSDocument::createTab(int verticalId) { case SPACES: // Spaces - m_mainTabController = std::shared_ptr(new SpacesTabController(isIP, m_model)); + m_mainTabController = std::shared_ptr(new SpacesTabController(isIP, displayAdditionalProps, m_model)); m_mainWindow->setView(m_mainTabController->mainContentWidget(), SPACES); connect(this, &OSDocument::toggleUnitsClicked, m_mainTabController.get(), &SpacesTabController::toggleUnitsClicked); + connect(this, &OSDocument::toggleDisplayAdditionalPropsClicked, m_mainTabController.get(), + &SpacesTabController::toggleDisplayAdditionalPropsClicked); + connect(m_mainTabController.get(), &SpacesTabController::modelObjectSelected, m_mainRightColumnController.get(), &MainRightColumnController::inspectModelObject); @@ -622,7 +632,7 @@ void OSDocument::createTab(int verticalId) { case THERMAL_ZONES: // Thermal Zones - m_mainTabController = std::shared_ptr(new ThermalZonesTabController(isIP, m_model)); + m_mainTabController = std::shared_ptr(new ThermalZonesTabController(isIP, displayAdditionalProps, m_model)); m_mainWindow->setView(m_mainTabController->mainContentWidget(), THERMAL_ZONES); connect(m_mainTabController.get(), &ThermalZonesTabController::modelObjectSelected, m_mainRightColumnController.get(), @@ -634,6 +644,9 @@ void OSDocument::createTab(int verticalId) { connect(this, &OSDocument::toggleUnitsClicked, qobject_cast(m_mainTabController.get()), &ThermalZonesTabController::toggleUnitsClicked); + connect(this, &OSDocument::toggleDisplayAdditionalPropsClicked, m_mainTabController.get(), + &ThermalZonesTabController::toggleDisplayAdditionalPropsClicked); + connect(m_mainTabController->mainContentWidget(), &MainTabView::tabSelected, m_mainRightColumnController.get(), &MainRightColumnController::configureForThermalZonesSubTab); diff --git a/src/openstudio_lib/OSDocument.hpp b/src/openstudio_lib/OSDocument.hpp index 6b6976b9b..45889b507 100644 --- a/src/openstudio_lib/OSDocument.hpp +++ b/src/openstudio_lib/OSDocument.hpp @@ -237,6 +237,8 @@ class OPENSTUDIO_API OSDocument : public OSQObjectController void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + void treeChanged(const openstudio::UUID& t_uuid); void enableRevertToSaved(bool enable); diff --git a/src/openstudio_lib/SpacesDaylightingGridView.cpp b/src/openstudio_lib/SpacesDaylightingGridView.cpp index b8a82b64a..bc130b3d3 100644 --- a/src/openstudio_lib/SpacesDaylightingGridView.cpp +++ b/src/openstudio_lib/SpacesDaylightingGridView.cpp @@ -54,6 +54,8 @@ #define NAME "Space Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // DAYLIGHTINGCONTROLS "Daylighting Controls" #define THERMALZONENAME "Thermal Zone Name" // read only @@ -101,8 +103,8 @@ namespace openstudio { -SpacesDaylightingGridView::SpacesDaylightingGridView(bool isIP, const model::Model& model, QWidget* parent) - : SpacesSubtabGridView(isIP, model, parent) { +SpacesDaylightingGridView::SpacesDaylightingGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : SpacesSubtabGridView(isIP, displayAdditionalProps, model, parent) { showStoryFilter(); showThermalZoneFilter(); showSpaceTypeFilter(); @@ -111,7 +113,7 @@ SpacesDaylightingGridView::SpacesDaylightingGridView(bool isIP, const model::Mod m_filterGridLayout->setRowStretch(m_filterGridLayout->rowCount(), 100); m_filterGridLayout->setColumnStretch(m_filterGridLayout->columnCount(), 100); - m_gridController = new SpacesDaylightingGridController(isIP, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); + m_gridController = new SpacesDaylightingGridController(isIP, displayAdditionalProps, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); m_gridView = new OSGridView(m_gridController, "Space", "Drop\nSpace", false, parent); setGridController(m_gridController); @@ -122,9 +124,10 @@ SpacesDaylightingGridView::SpacesDaylightingGridView(bool isIP, const model::Mod m_gridView->showDropZone(false); } -SpacesDaylightingGridController::SpacesDaylightingGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, - const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +SpacesDaylightingGridController::SpacesDaylightingGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, + IddObjectType iddObjectType, const model::Model& model, + const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -196,6 +199,10 @@ void SpacesDaylightingGridController::onCategorySelected(int index) { } void SpacesDaylightingGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -206,6 +213,20 @@ void SpacesDaylightingGridController::addColumns(const QString& category, std::v if (field == NAME) { addNameLineEditColumn(Heading(QString(NAME), false, false), false, false, CastNullAdapter(&model::Space::name), CastNullAdapter(&model::Space::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::displayName), // getter + DisplayNameAdapter(&model::Space::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::cadObjectId), // getter + DisplayNameAdapter(&model::Space::setCADObjectId) // setter + ); } else { if (field == SELECTED) { auto checkbox = QSharedPointer(new OSSelectAllCheckBox()); diff --git a/src/openstudio_lib/SpacesDaylightingGridView.hpp b/src/openstudio_lib/SpacesDaylightingGridView.hpp index 22eccac08..bfd1d5b84 100644 --- a/src/openstudio_lib/SpacesDaylightingGridView.hpp +++ b/src/openstudio_lib/SpacesDaylightingGridView.hpp @@ -46,7 +46,7 @@ class SpacesDaylightingGridView : public SpacesSubtabGridView Q_OBJECT public: - SpacesDaylightingGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + SpacesDaylightingGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~SpacesDaylightingGridView() {} @@ -60,8 +60,8 @@ class SpacesDaylightingGridController : public OSGridController Q_OBJECT public: - SpacesDaylightingGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + SpacesDaylightingGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~SpacesDaylightingGridController() {} diff --git a/src/openstudio_lib/SpacesInteriorPartitionsGridView.cpp b/src/openstudio_lib/SpacesInteriorPartitionsGridView.cpp index 4678a4c31..168e36c31 100644 --- a/src/openstudio_lib/SpacesInteriorPartitionsGridView.cpp +++ b/src/openstudio_lib/SpacesInteriorPartitionsGridView.cpp @@ -60,6 +60,8 @@ #define NAME "Space Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // GENERAL #define INTERIORPARTITIONGROUPNAME "Interior Partition Group Name" // read only @@ -71,8 +73,8 @@ namespace openstudio { -SpacesInteriorPartitionsGridView::SpacesInteriorPartitionsGridView(bool isIP, const model::Model& model, QWidget* parent) - : SpacesSubtabGridView(isIP, model, parent) { +SpacesInteriorPartitionsGridView::SpacesInteriorPartitionsGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : SpacesSubtabGridView(isIP, displayAdditionalProps, model, parent) { showStoryFilter(); showThermalZoneFilter(); showSpaceTypeFilter(); @@ -81,7 +83,8 @@ SpacesInteriorPartitionsGridView::SpacesInteriorPartitionsGridView(bool isIP, co m_filterGridLayout->setRowStretch(m_filterGridLayout->rowCount(), 100); m_filterGridLayout->setColumnStretch(m_filterGridLayout->columnCount(), 100); - m_gridController = new SpacesInteriorPartitionsGridController(isIP, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); + m_gridController = + new SpacesInteriorPartitionsGridController(isIP, displayAdditionalProps, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); m_gridView = new OSGridView(m_gridController, "Space", "Drop\nSpace", false, parent); setGridController(m_gridController); @@ -112,10 +115,10 @@ void SpacesInteriorPartitionsGridView::clearSelection() { m_itemSelectorButtons->disablePurgeButton(); } -SpacesInteriorPartitionsGridController::SpacesInteriorPartitionsGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, - const model::Model& model, +SpacesInteriorPartitionsGridController::SpacesInteriorPartitionsGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, + IddObjectType iddObjectType, const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -138,6 +141,10 @@ void SpacesInteriorPartitionsGridController::onCategorySelected(int index) { } void SpacesInteriorPartitionsGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -148,6 +155,20 @@ void SpacesInteriorPartitionsGridController::addColumns(const QString& category, if (field == NAME) { addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::Space::name), CastNullAdapter(&model::Space::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::displayName), // getter + DisplayNameAdapter(&model::Space::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::cadObjectId), // getter + DisplayNameAdapter(&model::Space::setCADObjectId) // setter + ); } else { std::function(const model::Space&)> allInteriorPartitionSurfaceGroups([](const model::Space& t_space) { diff --git a/src/openstudio_lib/SpacesInteriorPartitionsGridView.hpp b/src/openstudio_lib/SpacesInteriorPartitionsGridView.hpp index ce3292682..ee8017670 100644 --- a/src/openstudio_lib/SpacesInteriorPartitionsGridView.hpp +++ b/src/openstudio_lib/SpacesInteriorPartitionsGridView.hpp @@ -46,7 +46,7 @@ class SpacesInteriorPartitionsGridView : public SpacesSubtabGridView Q_OBJECT public: - SpacesInteriorPartitionsGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + SpacesInteriorPartitionsGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~SpacesInteriorPartitionsGridView() = default; @@ -67,8 +67,8 @@ class SpacesInteriorPartitionsGridController : public OSGridController Q_OBJECT public: - SpacesInteriorPartitionsGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + SpacesInteriorPartitionsGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~SpacesInteriorPartitionsGridController() = default; diff --git a/src/openstudio_lib/SpacesLoadsGridView.cpp b/src/openstudio_lib/SpacesLoadsGridView.cpp index dd72d5367..52a57ea30 100644 --- a/src/openstudio_lib/SpacesLoadsGridView.cpp +++ b/src/openstudio_lib/SpacesLoadsGridView.cpp @@ -105,6 +105,8 @@ #define NAME "Space Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // GENERAL #define LOADNAME "Load Name" @@ -115,7 +117,8 @@ namespace openstudio { -SpacesLoadsGridView::SpacesLoadsGridView(bool isIP, const model::Model& model, QWidget* parent) : SpacesSubtabGridView(isIP, model, parent) { +SpacesLoadsGridView::SpacesLoadsGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : SpacesSubtabGridView(isIP, displayAdditionalProps, model, parent) { showStoryFilter(); showThermalZoneFilter(); showSpaceTypeFilter(); @@ -124,7 +127,7 @@ SpacesLoadsGridView::SpacesLoadsGridView(bool isIP, const model::Model& model, Q m_filterGridLayout->setRowStretch(m_filterGridLayout->rowCount(), 100); m_filterGridLayout->setColumnStretch(m_filterGridLayout->columnCount(), 100); - m_gridController = new SpacesLoadsGridController(isIP, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); + m_gridController = new SpacesLoadsGridController(isIP, displayAdditionalProps, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); m_gridView = new OSGridView(m_gridController, "Space", "Drop\nSpace", false, parent); const std::function isLocked([](const model::ModelObject& modelObject) { @@ -165,9 +168,9 @@ void SpacesLoadsGridView::clearSelection() { m_itemSelectorButtons->disablePurgeButton(); } -SpacesLoadsGridController::SpacesLoadsGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +SpacesLoadsGridController::SpacesLoadsGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -188,6 +191,10 @@ void SpacesLoadsGridController::onCategorySelected(int index) { } void SpacesLoadsGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -199,6 +206,20 @@ void SpacesLoadsGridController::addColumns(const QString& category, std::vector< const bool isInspectable = false; addParentNameLineEditColumn(Heading(QString(NAME), false, false), isInspectable, CastNullAdapter(&model::Space::name), CastNullAdapter(&model::Space::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::displayName), // getter + DisplayNameAdapter(&model::Space::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::cadObjectId), // getter + DisplayNameAdapter(&model::Space::setCADObjectId) // setter + ); } else { // Create a lambda function that collates all of the loads in a space // and returns them as an std::vector diff --git a/src/openstudio_lib/SpacesLoadsGridView.hpp b/src/openstudio_lib/SpacesLoadsGridView.hpp index 49aa75660..64d35679a 100644 --- a/src/openstudio_lib/SpacesLoadsGridView.hpp +++ b/src/openstudio_lib/SpacesLoadsGridView.hpp @@ -46,7 +46,7 @@ class SpacesLoadsGridView : public SpacesSubtabGridView Q_OBJECT public: - SpacesLoadsGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + SpacesLoadsGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~SpacesLoadsGridView() = default; @@ -67,7 +67,7 @@ class SpacesLoadsGridController : public OSGridController Q_OBJECT public: - SpacesLoadsGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, + SpacesLoadsGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, const std::vector& modelObjects); virtual ~SpacesLoadsGridController() = default; diff --git a/src/openstudio_lib/SpacesShadingGridView.cpp b/src/openstudio_lib/SpacesShadingGridView.cpp index 720f699d1..0ed8e4ace 100644 --- a/src/openstudio_lib/SpacesShadingGridView.cpp +++ b/src/openstudio_lib/SpacesShadingGridView.cpp @@ -62,6 +62,8 @@ #define NAME "Space Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // GENERAL #define SHADINGSURFACEGROUP "Shading Surface Group" // read only @@ -72,7 +74,8 @@ namespace openstudio { -SpacesShadingGridView::SpacesShadingGridView(bool isIP, const model::Model& model, QWidget* parent) : SpacesSubtabGridView(isIP, model, parent) { +SpacesShadingGridView::SpacesShadingGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : SpacesSubtabGridView(isIP, displayAdditionalProps, model, parent) { showStoryFilter(); showThermalZoneFilter(); showSpaceTypeFilter(); @@ -81,7 +84,7 @@ SpacesShadingGridView::SpacesShadingGridView(bool isIP, const model::Model& mode m_filterGridLayout->setRowStretch(m_filterGridLayout->rowCount(), 100); m_filterGridLayout->setColumnStretch(m_filterGridLayout->columnCount(), 100); - m_gridController = new SpacesShadingGridController(isIP, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); + m_gridController = new SpacesShadingGridController(isIP, displayAdditionalProps, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); m_gridView = new OSGridView(m_gridController, "Space", "Drop\nSpace", false, parent); setGridController(m_gridController); @@ -112,9 +115,10 @@ void SpacesShadingGridView::clearSelection() { m_itemSelectorButtons->disablePurgeButton(); } -SpacesShadingGridController::SpacesShadingGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, +SpacesShadingGridController::SpacesShadingGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, + IddObjectType iddObjectType, const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -136,6 +140,10 @@ void SpacesShadingGridController::onCategorySelected(int index) { } void SpacesShadingGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -146,6 +154,20 @@ void SpacesShadingGridController::addColumns(const QString& category, std::vecto if (field == NAME) { addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::Space::name), CastNullAdapter(&model::Space::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::displayName), // getter + DisplayNameAdapter(&model::Space::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::cadObjectId), // getter + DisplayNameAdapter(&model::Space::setCADObjectId) // setter + ); } else { std::function(const model::Space&)> allShadingSurfaceGroups([](const model::Space& t_space) { diff --git a/src/openstudio_lib/SpacesShadingGridView.hpp b/src/openstudio_lib/SpacesShadingGridView.hpp index f6cbbff39..eb7cd62ce 100644 --- a/src/openstudio_lib/SpacesShadingGridView.hpp +++ b/src/openstudio_lib/SpacesShadingGridView.hpp @@ -46,7 +46,7 @@ class SpacesShadingGridView : public SpacesSubtabGridView Q_OBJECT public: - SpacesShadingGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + SpacesShadingGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~SpacesShadingGridView() = default; @@ -67,8 +67,8 @@ class SpacesShadingGridController : public OSGridController Q_OBJECT public: - SpacesShadingGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + SpacesShadingGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~SpacesShadingGridController() = default; diff --git a/src/openstudio_lib/SpacesSpacesGridView.cpp b/src/openstudio_lib/SpacesSpacesGridView.cpp index 144a038a1..39faf5a33 100644 --- a/src/openstudio_lib/SpacesSpacesGridView.cpp +++ b/src/openstudio_lib/SpacesSpacesGridView.cpp @@ -68,6 +68,8 @@ // used on column headers, and other grid widgets #define NAME "Space Name" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" #define SELECTED "All" // GENERAL @@ -85,7 +87,8 @@ namespace openstudio { -SpacesSpacesGridView::SpacesSpacesGridView(bool isIP, const model::Model& model, QWidget* parent) : SpacesSubtabGridView(isIP, model, parent) { +SpacesSpacesGridView::SpacesSpacesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : SpacesSubtabGridView(isIP, displayAdditionalProps, model, parent) { showStoryFilter(); showThermalZoneFilter(); showSpaceTypeFilter(); @@ -93,7 +96,7 @@ SpacesSpacesGridView::SpacesSpacesGridView(bool isIP, const model::Model& model, m_filterGridLayout->setRowStretch(m_filterGridLayout->rowCount(), 100); m_filterGridLayout->setColumnStretch(m_filterGridLayout->columnCount(), 100); - m_gridController = new SpacesSpacesGridController(isIP, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); + m_gridController = new SpacesSpacesGridController(isIP, displayAdditionalProps, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); m_gridView = new OSGridView(m_gridController, "Space", "Drop\nSpace", false, parent); setGridController(m_gridController); @@ -124,9 +127,9 @@ void SpacesSpacesGridView::clearSelection() { // m_itemSelectorButtons->disablePurgeButton(); } -SpacesSpacesGridController::SpacesSpacesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +SpacesSpacesGridController::SpacesSpacesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -157,6 +160,10 @@ void SpacesSpacesGridController::onCategorySelected(int index) { } void SpacesSpacesGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -167,6 +174,20 @@ void SpacesSpacesGridController::addColumns(const QString& category, std::vector if (field == NAME) { addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::Space::name), CastNullAdapter(&model::Space::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::displayName), // getter + DisplayNameAdapter(&model::Space::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::cadObjectId), // getter + DisplayNameAdapter(&model::Space::setCADObjectId) // setter + ); } else if (field == SELECTED) { auto checkbox = QSharedPointer(new OSSelectAllCheckBox()); checkbox->setToolTip("Check to select all rows"); diff --git a/src/openstudio_lib/SpacesSpacesGridView.hpp b/src/openstudio_lib/SpacesSpacesGridView.hpp index ead02a4b6..e4bc22a3c 100644 --- a/src/openstudio_lib/SpacesSpacesGridView.hpp +++ b/src/openstudio_lib/SpacesSpacesGridView.hpp @@ -46,7 +46,7 @@ class SpacesSpacesGridView : public SpacesSubtabGridView Q_OBJECT public: - SpacesSpacesGridView(bool isIP, const model::Model& model, QWidget* parent = 0); + SpacesSpacesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = 0); virtual ~SpacesSpacesGridView() = default; @@ -73,8 +73,8 @@ class SpacesSpacesGridController : public OSGridController Q_OBJECT public: - SpacesSpacesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + SpacesSpacesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~SpacesSpacesGridController() = default; diff --git a/src/openstudio_lib/SpacesSubsurfacesGridView.cpp b/src/openstudio_lib/SpacesSubsurfacesGridView.cpp index d06eca3ba..bfa041e45 100644 --- a/src/openstudio_lib/SpacesSubsurfacesGridView.cpp +++ b/src/openstudio_lib/SpacesSubsurfacesGridView.cpp @@ -69,6 +69,8 @@ #define NAME "Space Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // ALL GRID BUTTONS #define SURFACENAME "Parent Surface Name" // read only @@ -132,8 +134,8 @@ namespace openstudio { -SpacesSubsurfacesGridView::SpacesSubsurfacesGridView(bool isIP, const model::Model& model, QWidget* parent) - : SpacesSubtabGridView(isIP, model, parent) { +SpacesSubsurfacesGridView::SpacesSubsurfacesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : SpacesSubtabGridView(isIP, displayAdditionalProps, model, parent) { showStoryFilter(); showThermalZoneFilter(); showSpaceTypeFilter(); @@ -144,7 +146,7 @@ SpacesSubsurfacesGridView::SpacesSubsurfacesGridView(bool isIP, const model::Mod m_filterGridLayout->setRowStretch(m_filterGridLayout->rowCount(), 100); m_filterGridLayout->setColumnStretch(m_filterGridLayout->columnCount(), 100); - m_gridController = new SpacesSubsurfacesGridController(isIP, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); + m_gridController = new SpacesSubsurfacesGridController(isIP, displayAdditionalProps, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); m_gridView = new OSGridView(m_gridController, "Space", "Drop\nSpace", false, parent); setGridController(m_gridController); @@ -157,9 +159,10 @@ SpacesSubsurfacesGridView::SpacesSubsurfacesGridView(bool isIP, const model::Mod clearSelection(); } -SpacesSubsurfacesGridController::SpacesSubsurfacesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, - const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +SpacesSubsurfacesGridController::SpacesSubsurfacesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, + IddObjectType iddObjectType, const model::Model& model, + const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -276,6 +279,10 @@ void SpacesSubsurfacesGridController::onCategorySelected(int index) { } void SpacesSubsurfacesGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -286,6 +293,20 @@ void SpacesSubsurfacesGridController::addColumns(const QString& category, std::v if (field == NAME) { addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::Space::name), CastNullAdapter(&model::Space::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::displayName), // getter + DisplayNameAdapter(&model::Space::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::cadObjectId), // getter + DisplayNameAdapter(&model::Space::setCADObjectId) // setter + ); } else { std::function(const model::Space&)> allSurfaces([](const model::Space& t_space) { diff --git a/src/openstudio_lib/SpacesSubsurfacesGridView.hpp b/src/openstudio_lib/SpacesSubsurfacesGridView.hpp index c883aede3..144ec40eb 100644 --- a/src/openstudio_lib/SpacesSubsurfacesGridView.hpp +++ b/src/openstudio_lib/SpacesSubsurfacesGridView.hpp @@ -46,7 +46,7 @@ class SpacesSubsurfacesGridView : public SpacesSubtabGridView Q_OBJECT public: - SpacesSubsurfacesGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + SpacesSubsurfacesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~SpacesSubsurfacesGridView() = default; @@ -71,8 +71,8 @@ class SpacesSubsurfacesGridController : public OSGridController Q_OBJECT public: - SpacesSubsurfacesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + SpacesSubsurfacesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~SpacesSubsurfacesGridController() = default; diff --git a/src/openstudio_lib/SpacesSubtabGridView.cpp b/src/openstudio_lib/SpacesSubtabGridView.cpp index fd4516d32..ba901ae07 100644 --- a/src/openstudio_lib/SpacesSubtabGridView.cpp +++ b/src/openstudio_lib/SpacesSubtabGridView.cpp @@ -122,8 +122,9 @@ namespace openstudio { -SpacesSubtabGridView::SpacesSubtabGridView(bool isIP, const model::Model& model, QWidget* parent) - : GridViewSubTab(isIP, model, parent), m_spacesModelObjects(subsetCastVector(model.getConcreteModelObjects())) { +SpacesSubtabGridView::SpacesSubtabGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : GridViewSubTab(isIP, displayAdditionalProps, model, parent), + m_spacesModelObjects(subsetCastVector(model.getConcreteModelObjects())) { // Filters diff --git a/src/openstudio_lib/SpacesSubtabGridView.hpp b/src/openstudio_lib/SpacesSubtabGridView.hpp index afe7aa096..5e15a3931 100644 --- a/src/openstudio_lib/SpacesSubtabGridView.hpp +++ b/src/openstudio_lib/SpacesSubtabGridView.hpp @@ -49,7 +49,7 @@ class SpacesSubtabGridView : public GridViewSubTab Q_OBJECT public: - SpacesSubtabGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + SpacesSubtabGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~SpacesSubtabGridView() = default; diff --git a/src/openstudio_lib/SpacesSurfacesGridView.cpp b/src/openstudio_lib/SpacesSurfacesGridView.cpp index b6e90828a..6ccbf7979 100644 --- a/src/openstudio_lib/SpacesSurfacesGridView.cpp +++ b/src/openstudio_lib/SpacesSurfacesGridView.cpp @@ -58,6 +58,8 @@ #define NAME "Space Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" // GENERAL #define SURFACENAME "Surface Name" @@ -71,7 +73,8 @@ namespace openstudio { -SpacesSurfacesGridView::SpacesSurfacesGridView(bool isIP, const model::Model& model, QWidget* parent) : SpacesSubtabGridView(isIP, model, parent) { +SpacesSurfacesGridView::SpacesSurfacesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : SpacesSubtabGridView(isIP, displayAdditionalProps, model, parent) { showStoryFilter(); showThermalZoneFilter(); showSpaceTypeFilter(); @@ -83,7 +86,7 @@ SpacesSurfacesGridView::SpacesSurfacesGridView(bool isIP, const model::Model& mo m_filterGridLayout->setRowStretch(m_filterGridLayout->rowCount(), 100); m_filterGridLayout->setColumnStretch(m_filterGridLayout->columnCount(), 100); - m_gridController = new SpacesSurfacesGridController(isIP, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); + m_gridController = new SpacesSurfacesGridController(isIP, displayAdditionalProps, "Space", IddObjectType::OS_Space, model, m_spacesModelObjects); m_gridView = new OSGridView(m_gridController, "Space", "Drop\nSpace", false, parent); setGridController(m_gridController); @@ -114,9 +117,10 @@ void SpacesSurfacesGridView::clearSelection() { m_itemSelectorButtons->disablePurgeButton(); } -SpacesSurfacesGridController::SpacesSurfacesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, - const model::Model& model, const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +SpacesSurfacesGridController::SpacesSurfacesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, + IddObjectType iddObjectType, const model::Model& model, + const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -138,6 +142,10 @@ void SpacesSurfacesGridController::onCategorySelected(int index) { } void SpacesSurfacesGridController::addColumns(const QString& category, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } // always show name and selected columns fields.insert(fields.begin(), {NAME, SELECTED}); @@ -148,6 +156,20 @@ void SpacesSurfacesGridController::addColumns(const QString& category, std::vect if (field == NAME) { addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::Space::name), CastNullAdapter(&model::Space::setName)); + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::displayName), // getter + DisplayNameAdapter(&model::Space::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::Space::cadObjectId), // getter + DisplayNameAdapter(&model::Space::setCADObjectId) // setter + ); } else { std::function(const model::Space&)> allSurfaces([](const model::Space& t_space) { diff --git a/src/openstudio_lib/SpacesSurfacesGridView.hpp b/src/openstudio_lib/SpacesSurfacesGridView.hpp index d4eadbed1..2a0c9aa6a 100644 --- a/src/openstudio_lib/SpacesSurfacesGridView.hpp +++ b/src/openstudio_lib/SpacesSurfacesGridView.hpp @@ -46,7 +46,7 @@ class SpacesSurfacesGridView : public SpacesSubtabGridView Q_OBJECT public: - SpacesSurfacesGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + SpacesSurfacesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~SpacesSurfacesGridView() = default; @@ -67,8 +67,8 @@ class SpacesSurfacesGridController : public OSGridController Q_OBJECT public: - SpacesSurfacesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + SpacesSurfacesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~SpacesSurfacesGridController() = default; diff --git a/src/openstudio_lib/SpacesTabController.cpp b/src/openstudio_lib/SpacesTabController.cpp index 0dff6c484..68fb3d3c3 100644 --- a/src/openstudio_lib/SpacesTabController.cpp +++ b/src/openstudio_lib/SpacesTabController.cpp @@ -40,8 +40,8 @@ namespace openstudio { -SpacesTabController::SpacesTabController(bool isIP, const model::Model& model) - : MainTabController(new SpacesTabView()), m_model(model), m_isIP(isIP) { +SpacesTabController::SpacesTabController(bool isIP, bool displayAdditionalProps, const model::Model& model) + : MainTabController(new SpacesTabView()), m_model(model), m_isIP(isIP), m_displayAdditionalProps(displayAdditionalProps) { mainContentWidget()->addSubTab("Properties", SPACES); mainContentWidget()->addSubTab("Loads", LOADS); mainContentWidget()->addSubTab("Surfaces", SURFACES); @@ -75,51 +75,63 @@ void SpacesTabController::setSubTab(int index) { switch (index) { case 0: { - auto* spacesSpacesGridView = new SpacesSpacesGridView(m_isIP, m_model); + auto* spacesSpacesGridView = new SpacesSpacesGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &SpacesTabController::toggleUnitsClicked, spacesSpacesGridView, &SpacesSpacesGridView::toggleUnitsClicked); connect(spacesSpacesGridView, &SpacesSpacesGridView::dropZoneItemSelected, this, &SpacesTabController::dropZoneItemSelected); + connect(this, &SpacesTabController::toggleDisplayAdditionalPropsClicked, spacesSpacesGridView, + &SpacesSpacesGridView::toggleDisplayAdditionalPropsClicked); mainContentWidget()->setSubTab(spacesSpacesGridView); m_currentView = spacesSpacesGridView; break; } case 1: { - auto* spacesLoadsGridView = new SpacesLoadsGridView(m_isIP, m_model); + auto* spacesLoadsGridView = new SpacesLoadsGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &SpacesTabController::toggleUnitsClicked, spacesLoadsGridView, &SpacesLoadsGridView::toggleUnitsClicked); connect(spacesLoadsGridView, &SpacesLoadsGridView::dropZoneItemSelected, this, &SpacesTabController::dropZoneItemSelected); + connect(this, &SpacesTabController::toggleDisplayAdditionalPropsClicked, spacesLoadsGridView, + &SpacesLoadsGridView::toggleDisplayAdditionalPropsClicked); mainContentWidget()->setSubTab(spacesLoadsGridView); m_currentView = spacesLoadsGridView; break; } case 2: { - auto* spacesSurfacesGridView = new SpacesSurfacesGridView(m_isIP, m_model); + auto* spacesSurfacesGridView = new SpacesSurfacesGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &SpacesTabController::toggleUnitsClicked, spacesSurfacesGridView, &SpacesSurfacesGridView::toggleUnitsClicked); connect(spacesSurfacesGridView, &SpacesSurfacesGridView::dropZoneItemSelected, this, &SpacesTabController::dropZoneItemSelected); + connect(this, &SpacesTabController::toggleDisplayAdditionalPropsClicked, spacesSurfacesGridView, + &SpacesSurfacesGridView::toggleDisplayAdditionalPropsClicked); mainContentWidget()->setSubTab(spacesSurfacesGridView); m_currentView = spacesSurfacesGridView; break; } case 3: { - auto* spacesSubsurfacesGridView = new SpacesSubsurfacesGridView(m_isIP, m_model); + auto* spacesSubsurfacesGridView = new SpacesSubsurfacesGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &SpacesTabController::toggleUnitsClicked, spacesSubsurfacesGridView, &SpacesSubsurfacesGridView::toggleUnitsClicked); connect(spacesSubsurfacesGridView, &SpacesSubsurfacesGridView::dropZoneItemSelected, this, &SpacesTabController::dropZoneItemSelected); + connect(this, &SpacesTabController::toggleDisplayAdditionalPropsClicked, spacesSubsurfacesGridView, + &SpacesSubsurfacesGridView::toggleDisplayAdditionalPropsClicked); mainContentWidget()->setSubTab(spacesSubsurfacesGridView); m_currentView = spacesSubsurfacesGridView; break; } case 4: { - auto* spacesInteriorPartitionsGridView = new SpacesInteriorPartitionsGridView(m_isIP, m_model); + auto* spacesInteriorPartitionsGridView = new SpacesInteriorPartitionsGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &SpacesTabController::toggleUnitsClicked, spacesInteriorPartitionsGridView, &SpacesInteriorPartitionsGridView::toggleUnitsClicked); connect(spacesInteriorPartitionsGridView, &SpacesInteriorPartitionsGridView::dropZoneItemSelected, this, &SpacesTabController::dropZoneItemSelected); + connect(this, &SpacesTabController::toggleDisplayAdditionalPropsClicked, spacesInteriorPartitionsGridView, + &SpacesInteriorPartitionsGridView::toggleDisplayAdditionalPropsClicked); mainContentWidget()->setSubTab(spacesInteriorPartitionsGridView); m_currentView = spacesInteriorPartitionsGridView; break; } case 5: { - auto* spacesShadingGridView = new SpacesShadingGridView(m_isIP, m_model); + auto* spacesShadingGridView = new SpacesShadingGridView(m_isIP, m_displayAdditionalProps, m_model); connect(this, &SpacesTabController::toggleUnitsClicked, spacesShadingGridView, &SpacesShadingGridView::toggleUnitsClicked); connect(spacesShadingGridView, &SpacesShadingGridView::dropZoneItemSelected, this, &SpacesTabController::dropZoneItemSelected); + connect(this, &SpacesTabController::toggleDisplayAdditionalPropsClicked, spacesShadingGridView, + &SpacesShadingGridView::toggleDisplayAdditionalPropsClicked); mainContentWidget()->setSubTab(spacesShadingGridView); m_currentView = spacesShadingGridView; break; diff --git a/src/openstudio_lib/SpacesTabController.hpp b/src/openstudio_lib/SpacesTabController.hpp index 620213ddd..cc0473f7f 100644 --- a/src/openstudio_lib/SpacesTabController.hpp +++ b/src/openstudio_lib/SpacesTabController.hpp @@ -39,7 +39,7 @@ class SpacesTabController : public MainTabController Q_OBJECT public: - SpacesTabController(bool isIP, const model::Model& model); + SpacesTabController(bool isIP, bool displayAdditionalProps, const model::Model& model); virtual ~SpacesTabController(); @@ -59,6 +59,8 @@ class SpacesTabController : public MainTabController bool m_isIP; + bool m_displayAdditionalProps; + QWidget* m_currentView = nullptr; int m_currentIndex = -1; diff --git a/src/openstudio_lib/ThermalZonesController.cpp b/src/openstudio_lib/ThermalZonesController.cpp index b9884449c..2651c451d 100644 --- a/src/openstudio_lib/ThermalZonesController.cpp +++ b/src/openstudio_lib/ThermalZonesController.cpp @@ -57,8 +57,8 @@ namespace openstudio { -ThermalZonesController::ThermalZonesController(bool isIP, const model::Model& model) - : ModelSubTabController(new ThermalZonesView(isIP, model), model) { +ThermalZonesController::ThermalZonesController(bool isIP, bool displayAdditionalProps, const model::Model& model) + : ModelSubTabController(new ThermalZonesView(isIP, displayAdditionalProps, model), model) { //subTabView()->itemSelectorButtons()->disableCopyButton(); auto* thermalZoneView = static_cast(subTabView()->inspectorView()); @@ -72,6 +72,8 @@ ThermalZonesController::ThermalZonesController(bool isIP, const model::Model& mo connect(thermalZoneView, &ThermalZoneView::dropZoneItemSelected, this, &ThermalZonesController::dropZoneItemSelected); connect(this, &ThermalZonesController::toggleUnitsClicked, thermalZoneView, &ThermalZoneView::toggleUnitsClicked); + + connect(this, &ThermalZonesController::toggleDisplayAdditionalPropsClicked, thermalZoneView, &ThermalZoneView::toggleDisplayAdditionalPropsClicked); } //void ThermalZonesController::enableThermostat(model::ThermalZone & thermalZone, bool enable) diff --git a/src/openstudio_lib/ThermalZonesController.hpp b/src/openstudio_lib/ThermalZonesController.hpp index c4df51525..e2dc91647 100644 --- a/src/openstudio_lib/ThermalZonesController.hpp +++ b/src/openstudio_lib/ThermalZonesController.hpp @@ -54,7 +54,7 @@ class ThermalZonesController : public ModelSubTabController Q_OBJECT public: - ThermalZonesController(bool isIP, const model::Model& model); + ThermalZonesController(bool isIP, bool displayAdditionalProps, const model::Model& model); virtual ~ThermalZonesController() {} @@ -62,6 +62,8 @@ class ThermalZonesController : public ModelSubTabController void toggleUnitsClicked(bool); + void toggleDisplayAdditionalPropsClicked(bool); + protected: virtual void onSelectItem(OSItem* item) override; diff --git a/src/openstudio_lib/ThermalZonesGridView.cpp b/src/openstudio_lib/ThermalZonesGridView.cpp index 8d5dd0a2b..f483abe85 100644 --- a/src/openstudio_lib/ThermalZonesGridView.cpp +++ b/src/openstudio_lib/ThermalZonesGridView.cpp @@ -79,6 +79,8 @@ #define NAME "Name" #define SELECTED "All" +#define DISPLAYNAME "Display Name" +#define CADOBJECTID "CAD Object ID" //HVAC SYSTEMS #define RENDERINGCOLOR "Rendering Color" @@ -115,7 +117,8 @@ namespace openstudio { -ThermalZonesGridView::ThermalZonesGridView(bool isIP, const model::Model& model, QWidget* parent) : QWidget(parent), m_isIP(isIP) { +ThermalZonesGridView::ThermalZonesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : QWidget(parent), m_isIP(isIP), m_displayAdditionalProps(displayAdditionalProps) { QVBoxLayout* layout = nullptr; layout = new QVBoxLayout(); @@ -126,7 +129,8 @@ ThermalZonesGridView::ThermalZonesGridView(bool isIP, const model::Model& model, std::vector thermalZones = model.getConcreteModelObjects(); std::vector thermalZoneModelObjects = subsetCastVector(thermalZones); - m_gridController = new ThermalZonesGridController(m_isIP, "Thermal Zones", IddObjectType::OS_ThermalZone, model, thermalZoneModelObjects); + m_gridController = + new ThermalZonesGridController(m_isIP, m_displayAdditionalProps, "Thermal Zones", IddObjectType::OS_ThermalZone, model, thermalZoneModelObjects); auto* gridView = new OSGridView(m_gridController, "Thermal Zones", "Drop\nZone", false, parent); connect(gridView, &OSGridView::dropZoneItemClicked, this, &ThermalZonesGridView::dropZoneItemClicked); @@ -143,6 +147,12 @@ ThermalZonesGridView::ThermalZonesGridView(bool isIP, const model::Model& model, connect(this, &ThermalZonesGridView::toggleUnitsClicked, m_gridController, &ThermalZonesGridController::onToggleUnits); + connect(this, &ThermalZonesGridView::toggleDisplayAdditionalPropsClicked, m_gridController, + &ThermalZonesGridController::toggleDisplayAdditionalPropsClicked); + + connect(this, &ThermalZonesGridView::toggleDisplayAdditionalPropsClicked, m_gridController, + &ThermalZonesGridController::onToggleDisplayAdditionalProps); + // std::vector thermalZone = model.getConcreteModelObjects(); // NOTE for horizontal system lists } @@ -150,9 +160,9 @@ std::set ThermalZonesGridView::selectedObjects() const { return m_gridController->selectedObjects(); } -ThermalZonesGridController::ThermalZonesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects) - : OSGridController(isIP, headerText, iddObjectType, model, modelObjects) { +ThermalZonesGridController::ThermalZonesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects) + : OSGridController(isIP, headerText, iddObjectType, model, modelObjects, displayAdditionalProps) { setCategoriesAndFields(); } @@ -210,6 +220,11 @@ void ThermalZonesGridController::setCategoriesAndFields() { } void ThermalZonesGridController::addColumns(const QString& /*category*/, std::vector& fields) { + + if (isDisplayAdditionalProps()) { + fields.insert(fields.begin(), {DISPLAYNAME, CADOBJECTID}); + } + // always show name column fields.insert(fields.begin(), {NAME, SELECTED}); @@ -591,7 +606,20 @@ void ThermalZonesGridController::addColumns(const QString& /*category*/, std::ve addParentNameLineEditColumn(Heading(QString(NAME), false, false), false, CastNullAdapter(&model::ThermalZone::name), CastNullAdapter(&model::ThermalZone::setName), boost::optional>()); - + } else if (field == DISPLAYNAME) { + addNameLineEditColumn(Heading(QString(DISPLAYNAME), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::ThermalZone::displayName), // getter + DisplayNameAdapter(&model::ThermalZone::setDisplayName) // setter + ); + } else if (field == CADOBJECTID) { + addNameLineEditColumn(Heading(QString(CADOBJECTID), false, false), // heading + false, // isInspectable + false, // isLocked + DisplayNameAdapter(&model::ThermalZone::cadObjectId), // getter + DisplayNameAdapter(&model::ThermalZone::setCADObjectId) // setter + ); } else if (field == AIRLOOPNAME) { std::function(const model::ThermalZone&)> airloops([](const model::ThermalZone& t) { // we need to pass in a const &, but the function expects non-const, so let's copy the wrapper diff --git a/src/openstudio_lib/ThermalZonesGridView.hpp b/src/openstudio_lib/ThermalZonesGridView.hpp index c76de0d06..37f8fd3b7 100644 --- a/src/openstudio_lib/ThermalZonesGridView.hpp +++ b/src/openstudio_lib/ThermalZonesGridView.hpp @@ -48,7 +48,7 @@ class ThermalZonesGridView : public QWidget Q_OBJECT public: - ThermalZonesGridView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + ThermalZonesGridView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~ThermalZonesGridView() {} @@ -59,10 +59,14 @@ class ThermalZonesGridView : public QWidget bool m_isIP; + bool m_displayAdditionalProps; + signals: void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + void dropZoneItemClicked(OSItem* item); void selectionCleared(); @@ -74,8 +78,8 @@ class ThermalZonesGridController : public OSGridController Q_OBJECT public: - ThermalZonesGridController(bool isIP, const QString& headerText, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + ThermalZonesGridController(bool isIP, bool displayAdditionalProps, const QString& headerText, IddObjectType iddObjectType, + const model::Model& model, const std::vector& modelObjects); virtual ~ThermalZonesGridController() {} diff --git a/src/openstudio_lib/ThermalZonesTabController.cpp b/src/openstudio_lib/ThermalZonesTabController.cpp index db900ac47..47292bc14 100644 --- a/src/openstudio_lib/ThermalZonesTabController.cpp +++ b/src/openstudio_lib/ThermalZonesTabController.cpp @@ -37,8 +37,9 @@ namespace openstudio { -ThermalZonesTabController::ThermalZonesTabController(bool isIP, const model::Model& model) - : MainTabController(new ThermalZonesTabView()), m_thermalZonesController(std::make_shared(isIP, model)) { +ThermalZonesTabController::ThermalZonesTabController(bool isIP, bool displayAdditionalProps, const model::Model& model) + : MainTabController(new ThermalZonesTabView()), + m_thermalZonesController(std::make_shared(isIP, displayAdditionalProps, model)) { this->mainContentWidget()->addTabWidget(m_thermalZonesController->subTabView()); connect(this, &ThermalZonesTabController::itemRemoveClicked, m_thermalZonesController.get(), &ThermalZonesController::removeItem); @@ -48,6 +49,9 @@ ThermalZonesTabController::ThermalZonesTabController(bool isIP, const model::Mod connect(m_thermalZonesController.get(), &ThermalZonesController::dropZoneItemSelected, this, &ThermalZonesTabController::dropZoneItemSelected); connect(this, &ThermalZonesTabController::toggleUnitsClicked, m_thermalZonesController.get(), &ThermalZonesController::toggleUnitsClicked); + + connect(this, &ThermalZonesTabController::toggleDisplayAdditionalPropsClicked, m_thermalZonesController.get(), + &ThermalZonesController::toggleDisplayAdditionalPropsClicked); } } // namespace openstudio diff --git a/src/openstudio_lib/ThermalZonesTabController.hpp b/src/openstudio_lib/ThermalZonesTabController.hpp index 27169630a..0b2d7a749 100644 --- a/src/openstudio_lib/ThermalZonesTabController.hpp +++ b/src/openstudio_lib/ThermalZonesTabController.hpp @@ -42,7 +42,7 @@ class ThermalZonesTabController : public MainTabController Q_OBJECT public: - ThermalZonesTabController(bool isIP, const model::Model& model); + ThermalZonesTabController(bool isIP, bool displayAdditionalProps, const model::Model& model); virtual ~ThermalZonesTabController() {} diff --git a/src/openstudio_lib/ThermalZonesView.cpp b/src/openstudio_lib/ThermalZonesView.cpp index 526085fbe..29f3554ec 100644 --- a/src/openstudio_lib/ThermalZonesView.cpp +++ b/src/openstudio_lib/ThermalZonesView.cpp @@ -42,19 +42,19 @@ namespace openstudio { -ThermalZonesView::ThermalZonesView(bool isIP, const model::Model& model, QWidget* parent) - : ModelSubTabView(new ModelObjectListView(IddObjectType::OS_ThermalZone, model, true, false, parent), new ThermalZoneView(isIP, model, parent), - true, parent) { +ThermalZonesView::ThermalZonesView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : ModelSubTabView(new ModelObjectListView(IddObjectType::OS_ThermalZone, model, true, false, parent), + new ThermalZoneView(isIP, displayAdditionalProps, model, parent), true, parent) { connect(itemSelector(), &OSItemSelector::selectionCleared, inspectorView(), &OSInspectorView::clearSelection); connect(inspectorView(), &OSInspectorView::dropZoneItemClicked, this, &ThermalZonesView::dropZoneItemClicked); } -ThermalZoneView::ThermalZoneView(bool isIP, const model::Model& model, QWidget* parent) - : ModelObjectInspectorView(model, true, parent), m_isIP(isIP) { +ThermalZoneView::ThermalZoneView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent) + : ModelObjectInspectorView(model, true, parent), m_isIP(isIP), m_displayAdditionalProps(displayAdditionalProps) { - m_thermalZonesGridView = new ThermalZonesGridView(this->m_isIP, this->m_model, this); + m_thermalZonesGridView = new ThermalZonesGridView(this->m_isIP, this->m_displayAdditionalProps, this->m_model, this); this->stackedWidget()->addWidget(m_thermalZonesGridView); connect(m_thermalZonesGridView, &ThermalZonesGridView::dropZoneItemClicked, this, &ThermalZoneView::dropZoneItemClicked); @@ -64,6 +64,12 @@ ThermalZoneView::ThermalZoneView(bool isIP, const model::Model& model, QWidget* connect(this, &ThermalZoneView::toggleUnitsClicked, this, &ThermalZoneView::toggleUnits); connect(this, &ThermalZoneView::toggleUnitsClicked, m_thermalZonesGridView, &ThermalZonesGridView::toggleUnitsClicked); + + connect(this, &ThermalZoneView::toggleDisplayAdditionalPropsClicked, this, &ThermalZoneView::toggleDisplayAdditionalProps); + + connect(this, &ThermalZoneView::toggleDisplayAdditionalPropsClicked, m_thermalZonesGridView, + &ThermalZonesGridView::toggleDisplayAdditionalPropsClicked); + refresh(); } @@ -83,4 +89,8 @@ void ThermalZoneView::toggleUnits(bool isIP) { m_isIP = isIP; } +void ThermalZoneView::toggleDisplayAdditionalProps(bool displayAdditionalProps) { + m_displayAdditionalProps = displayAdditionalProps; +} + } // namespace openstudio diff --git a/src/openstudio_lib/ThermalZonesView.hpp b/src/openstudio_lib/ThermalZonesView.hpp index 16c2a90c9..273d0871d 100644 --- a/src/openstudio_lib/ThermalZonesView.hpp +++ b/src/openstudio_lib/ThermalZonesView.hpp @@ -44,7 +44,7 @@ class ThermalZonesView : public ModelSubTabView Q_OBJECT public: - ThermalZonesView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + ThermalZonesView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~ThermalZonesView() {} }; @@ -55,7 +55,7 @@ class ThermalZoneView : public ModelObjectInspectorView Q_OBJECT public: - ThermalZoneView(bool isIP, const model::Model& model, QWidget* parent = nullptr); + ThermalZoneView(bool isIP, bool displayAdditionalProps, const model::Model& model, QWidget* parent = nullptr); virtual ~ThermalZoneView() {} @@ -85,10 +85,14 @@ class ThermalZoneView : public ModelObjectInspectorView void toggleUnits(bool) override; + void toggleDisplayAdditionalProps(bool) override; + private: ThermalZonesGridView* m_thermalZonesGridView = nullptr; bool m_isIP; + + bool m_displayAdditionalProps; }; } // namespace openstudio diff --git a/src/openstudio_lib/library/OpenStudioPolicy.xml b/src/openstudio_lib/library/OpenStudioPolicy.xml index 6f322ef3c..13804b279 100644 --- a/src/openstudio_lib/library/OpenStudioPolicy.xml +++ b/src/openstudio_lib/library/OpenStudioPolicy.xml @@ -1,5 +1,8 @@ + + + diff --git a/src/openstudio_lib/test/FacilityShading_GTest.cpp b/src/openstudio_lib/test/FacilityShading_GTest.cpp index 773a4872a..966385d87 100644 --- a/src/openstudio_lib/test/FacilityShading_GTest.cpp +++ b/src/openstudio_lib/test/FacilityShading_GTest.cpp @@ -64,7 +64,7 @@ TEST_F(OpenStudioLibFixture, FacilityShadingGridView) { ASSERT_NE(it, shadingGroups.end()); auto shadingGroup1 = *it; - auto gridView = std::make_shared(false, model); + auto gridView = std::make_shared(false, false, model); auto* gridController = getGridController(gridView.get()); auto* objectSelector = getObjectSelector(gridController); diff --git a/src/openstudio_lib/test/FacilityStories_GTest.cpp b/src/openstudio_lib/test/FacilityStories_GTest.cpp index 111e7dbca..7e9f6e138 100644 --- a/src/openstudio_lib/test/FacilityStories_GTest.cpp +++ b/src/openstudio_lib/test/FacilityStories_GTest.cpp @@ -61,7 +61,7 @@ TEST_F(OpenStudioLibFixture, FacilityStoriesGridView) { auto story3 = stories[2]; story3.setNominalZCoordinate(6); - auto gridView = std::make_shared(false, m); + auto gridView = std::make_shared(false, false, m); auto* gridController = getGridController(gridView.get()); auto* objectSelector = getObjectSelector(gridController); diff --git a/src/openstudio_lib/test/SpacesLoads_GTest.cpp b/src/openstudio_lib/test/SpacesLoads_GTest.cpp index de00bfab5..c46b91d9d 100644 --- a/src/openstudio_lib/test/SpacesLoads_GTest.cpp +++ b/src/openstudio_lib/test/SpacesLoads_GTest.cpp @@ -62,7 +62,7 @@ TEST_F(OpenStudioLibFixture, SpacesLoadsGridView) { auto space4 = *it; ASSERT_EQ(1u, space4.electricEquipment().size()); - auto gridView = std::make_shared(false, model); + auto gridView = std::make_shared(false, false, model); auto* gridController = getGridController(gridView.get()); auto* objectSelector = getObjectSelector(gridController); diff --git a/src/openstudio_lib/test/SpacesSpaces_GTest.cpp b/src/openstudio_lib/test/SpacesSpaces_GTest.cpp index c4c82b03d..381134f8d 100644 --- a/src/openstudio_lib/test/SpacesSpaces_GTest.cpp +++ b/src/openstudio_lib/test/SpacesSpaces_GTest.cpp @@ -57,7 +57,7 @@ TEST_F(OpenStudioLibFixture, SpacesSpacesGridView) { auto space1 = spaces[0]; - auto gridView = std::make_shared(false, model); + auto gridView = std::make_shared(false, false, model); auto* gridController = getGridController(gridView.get()); auto* objectSelector = getObjectSelector(gridController); diff --git a/src/openstudio_lib/test/SpacesSurfaces_Benchmark.cpp b/src/openstudio_lib/test/SpacesSurfaces_Benchmark.cpp index 22113d7b6..09ba242bf 100644 --- a/src/openstudio_lib/test/SpacesSurfaces_Benchmark.cpp +++ b/src/openstudio_lib/test/SpacesSurfaces_Benchmark.cpp @@ -84,7 +84,7 @@ static void BM_SpacesSurfaces(benchmark::State& state) { // Code inside this loop is measured repeatedly for (auto _ : state) { - auto gridView = std::make_shared(false, model); + auto gridView = std::make_shared(false, false, model); openstudio::Application::instance().application(true)->processEvents(); benchmark::DoNotOptimize(gridView); }; diff --git a/src/openstudio_lib/test/SpacesSurfaces_GTest.cpp b/src/openstudio_lib/test/SpacesSurfaces_GTest.cpp index 41fee4cbd..8c0298320 100644 --- a/src/openstudio_lib/test/SpacesSurfaces_GTest.cpp +++ b/src/openstudio_lib/test/SpacesSurfaces_GTest.cpp @@ -60,7 +60,7 @@ TEST_F(OpenStudioLibFixture, SpacesSurfacesGridView) { EXPECT_EQ(1u, spaceTypes.size()); EXPECT_EQ(24u, surfaces.size()); - auto gridView = std::make_shared(false, model); + auto gridView = std::make_shared(false, false, model); auto* gridController = getGridController(gridView.get()); auto* objectSelector = getObjectSelector(gridController); diff --git a/src/shared_gui_components/OSConcepts.hpp b/src/shared_gui_components/OSConcepts.hpp index 232e7a82b..e6e78e345 100644 --- a/src/shared_gui_components/OSConcepts.hpp +++ b/src/shared_gui_components/OSConcepts.hpp @@ -258,6 +258,24 @@ std::function ProxyAdapter(RetType (ToDataType:: return std::bind(&OneParamProxy, std::placeholders::_1, std::placeholders::_2, outter, inner); } +// Getter: discards the bool parameter it usually expects for IdfObject::name(bool returnDefault) +template +std::function(DataType*, bool)> DisplayNameAdapter(boost::optional (DataType::*t_func)() const) { + return std::function(DataType*, bool)>([t_func](DataType* obj, bool) { return (obj->*t_func)(); }); +} + +// Setter: changes a bool setDisplayName(const std::string& displayName) to `optional setDisplayName(const std::string&)` +template +std::function(DataType*, const std::string&)> DisplayNameAdapter(bool (DataType::*t_func)(const std::string&)) { + return std::function(DataType*, const std::string&)>([t_func](DataType* obj, std::string p1) { + bool result = (obj->*t_func)(p1); + if (result) { + return boost::optional{p1}; + } + return boost::optional{}; + }); +} + class ConceptProxy { public: diff --git a/src/shared_gui_components/OSGridController.cpp b/src/shared_gui_components/OSGridController.cpp index 3d6733e88..97ed457f3 100644 --- a/src/shared_gui_components/OSGridController.cpp +++ b/src/shared_gui_components/OSGridController.cpp @@ -82,17 +82,19 @@ OSGridController::OSGridController() : m_hasHorizontalHeader(true), m_currentCategoryIndex(0), m_isIP(false), + m_displayAdditionalProps(false), m_horizontalHeaderBtnGrp(nullptr), m_objectSelector(new OSObjectSelector(this)) {} OSGridController::OSGridController(bool isIP, const QString& settingsKey, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects) + const std::vector& modelObjects, bool displayAdditionalProps) : m_iddObjectType(iddObjectType), m_modelObjects(modelObjects), m_hasHorizontalHeader(true), m_currentCategoryIndex(0), m_model(model), m_isIP(isIP), + m_displayAdditionalProps(displayAdditionalProps), m_horizontalHeaderBtnGrp(nullptr), m_settingsKey(settingsKey), m_objectSelector(new OSObjectSelector(this)) { @@ -137,6 +139,10 @@ bool OSGridController::isIP() const { return m_isIP; } +bool OSGridController::isDisplayAdditionalProps() const { + return m_displayAdditionalProps; +} + bool OSGridController::hasHorizontalHeader() const { return m_hasHorizontalHeader; } @@ -582,6 +588,17 @@ void OSGridController::onToggleUnits(bool displayIP) { m_isIP = displayIP; } +void OSGridController::onToggleDisplayAdditionalProps(bool displayAdditionalProps) { + m_displayAdditionalProps = displayAdditionalProps; + + m_currentFields = m_categoriesAndFields.at(m_currentCategoryIndex).second; + + addColumns(m_currentCategory, m_currentFields); + + // One of the only times we request a recreate all + emit recreateAll(); +} + void OSGridController::onComboBoxIndexChanged(int index) {} //bool OSGridController::selectRowByItem(OSItem * item, bool isSelected) diff --git a/src/shared_gui_components/OSGridController.hpp b/src/shared_gui_components/OSGridController.hpp index 68ca0bba2..77e00062b 100644 --- a/src/shared_gui_components/OSGridController.hpp +++ b/src/shared_gui_components/OSGridController.hpp @@ -170,7 +170,7 @@ class OSGridController : public QObject // rowCount() and itemAt(), showing one row for each object // in the model that is iddObjectType OSGridController(bool isIP, const QString& settingsKey, IddObjectType iddObjectType, const model::Model& model, - const std::vector& modelObjects); + const std::vector& modelObjects, bool displayAdditionalProps = false); virtual ~OSGridController(); @@ -493,6 +493,8 @@ class OSGridController : public QObject bool isIP() const; + bool isDisplayAdditionalProps() const; + protected: void setIddObjectType(const IddObjectType& iddObjectType); @@ -533,6 +535,7 @@ class OSGridController : public QObject model::Model m_model; bool m_isIP; + bool m_displayAdditionalProps; protected: bool hasHorizontalHeader() const; @@ -626,6 +629,8 @@ class OSGridController : public QObject // signal to any created quantity edits to update void toggleUnitsClicked(bool displayIP); + void toggleDisplayAdditionalPropsClicked(bool displayAdditionalProps); + // signal when selection changes void gridRowSelectionChanged(int numSelected, int numSelectable); @@ -637,6 +642,8 @@ class OSGridController : public QObject void onToggleUnits(bool displayIP); + void onToggleDisplayAdditionalProps(bool displayAdditionalProps); + virtual void onComboBoxIndexChanged(int index); void onSelectionCleared(); diff --git a/src/shared_gui_components/OSGridView.cpp b/src/shared_gui_components/OSGridView.cpp index b5be42c53..76f91a60a 100644 --- a/src/shared_gui_components/OSGridView.cpp +++ b/src/shared_gui_components/OSGridView.cpp @@ -439,7 +439,7 @@ void OSGridView::createCellWrapper(int row, int column) { OS_ASSERT(m_gridController); OSCellWrapper* widget = m_gridController->createCellWrapper(row, column, this); - LOG_FREE(Debug, "OSGridView", "Creating cell wrapper row=" << row << ", col=" << column); + // LOG_FREE(Debug, "OSGridView", "Creating cell wrapper row=" << row << ", col=" << column); addCellWrapper(widget, row, column); } diff --git a/translations/OpenStudioApp_ar.ts b/translations/OpenStudioApp_ar.ts index 0f6db0d49..61dca9746 100644 --- a/translations/OpenStudioApp_ar.ts +++ b/translations/OpenStudioApp_ar.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized - + Autosized - + Autocalculate - + Add/Remove Extensible Groups @@ -434,281 +434,286 @@ Zone openstudio::MainMenu - + &File - + &New - + &Open - - + + &Revert to Saved - + Ctrl+R - + &Save - + Save &As - + &Import - - + + &IDF - - + + &gbXML - - + + &SDD - + I&FC - + &Export - + &Load Library - + E&xamples - + &Example Model - + E&xit - + &Preferences - + &Units - + Metric (&SI) - + English (&I-P) - + &Change My Measures Directory - + &Change Default Libraries - + &Configure External Tools - + &Language - + English - + French - + Spanish - + Farsi - + Hebrew - + Italian - + Chinese - + Greek - + Polish - + Catalan - + Hindi - + Vietnamese - + Japanese - + German - + Add a new language - + &Configure Internet Proxy - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures - + &Apply Measure Now - + Ctrl+M - + Find &Measures - + Find &Components - + &Help - + OpenStudio &Help - + Check For &Update - + Allow Analytics - + Debug Webgl - + &About - + Adding a new language - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. @@ -717,22 +722,22 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::MainWindow - + Restart required - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -765,45 +770,45 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::OSDocument - + Export Idf - + (*.idf) - + (*.xml) - - + + Failed to save model - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. - + Save - + (*.osm) - - + + Select My Measures Directory diff --git a/translations/OpenStudioApp_ca.ts b/translations/OpenStudioApp_ca.ts index 5b203b4a5..8c7c3f776 100644 --- a/translations/OpenStudioApp_ca.ts +++ b/translations/OpenStudioApp_ca.ts @@ -33,24 +33,24 @@ InspectorGadget - - + + Hard Sized Afegir/Eliminar Grups Extensibles Dimensionat Manualment - + Autosized Autodimensionat - + Autocalculate Autocalcular - + Add/Remove Extensible Groups Afegir/Eliminat Grups Extensibles @@ -517,141 +517,141 @@ Zona openstudio::MainMenu - + &File &Fitxer - + &New &Nou - + &Open &Obrir - - + + &Revert to Saved &Tornar al Desat - + Ctrl+R Ctrl+R - + &Save &Desar - + Save &As Desar &Com - + &Import &Importar - - + + &IDF &IDF - - + + &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &Exportar - + &Load Library &Carregar Llbreria - + E&xamples - + &Example Model - + E&xit &Sortir - + &Preferences &Preferències - + &Units &Unitats - + Metric (&SI) Sistema Mètric (&SI) - + English (&I-P) Sistema Imperial (&I-P) - + &Change My Measures Directory &Canviar el Directori "My Measures" - + &Change Default Libraries &Canviar les Llibreries per Defecte - + &Configure External Tools &Configurar Eines Externes - + &Language &Llengua - + English Anglès - + French Francès @@ -660,142 +660,147 @@ Zona Àrab - + Spanish Castellà - + Farsi Persa - + Hebrew Hebreu - + Italian Italià - + Chinese Xinès - + Greek Grec - + Polish Polonès - + Catalan Català - + Hindi Hindi - + Vietnamese - + Japanese - + German - + Add a new language Afegir una llengua nova - + &Configure Internet Proxy &Configurar el Proxy d'Internet - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &Componenents && Mesures - + &Apply Measure Now &Aplcar Measure Ara - + Ctrl+M Ctrl+M - + Find &Measures Buscar &Mesures - + Find &Components Buscar &Components - + &Help &Ajuda - + OpenStudio &Help &Ajuda d'OpenStudio - + Check For &Update Cercar &Actutalitzacions - + Allow Analytics - + Debug Webgl - + &About &Sobre - + Adding a new language Afegir una llengua nova - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Per afegir una llengua nova no cal saber programar, però és important conèixer la llengua: només s'ha de traduir paraula a paraula amb l'ajuda d'un programa pensat per a això. @@ -805,22 +810,22 @@ Si voleu que OpeStudioApplication estigui a la vostra llengua, esperem la vostra openstudio::MainWindow - + Restart required S'ha de reiniciar - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -853,45 +858,45 @@ Si voleu que OpeStudioApplication estigui a la vostra llengua, esperem la vostra openstudio::OSDocument - + Export Idf Exportar idf - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Error al desar el model - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Error al desar el model, comprova que no tinguis el fitxer obert i que tens privilegis d'accés d'escriptura. - + Save Desar - + (*.osm) - - + + Select My Measures Directory Seleccionar la Carpeta "My Measures" diff --git a/translations/OpenStudioApp_de.ts b/translations/OpenStudioApp_de.ts index 35ecc0d9f..c695a1814 100644 --- a/translations/OpenStudioApp_de.ts +++ b/translations/OpenStudioApp_de.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized Manuell dimensioniert - + Autosized Automatisch dimensioniert - + Autocalculate Automatisch berechnet - + Add/Remove Extensible Groups Hinzufügen/Entfernen von erweiterbaren Gruppen @@ -523,142 +523,142 @@ Zone openstudio::MainMenu - + &File &Datei - + &New &Neu - + &Open &Öffnen - - + + &Revert to Saved &Auf gespeicherte Version zurücksetzen - + Ctrl+R Strg+R - + &Save &Speichern - + Save &As Speichern &unter - + &Import &Importieren - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &Exportieren - + &Load Library &Bibliothek laden - + E&xamples - + &Example Model - + E&xit S&chliessen - + &Preferences &Einstellungen - + &Units &Einheiten - + Metric (&SI) Metrisches System (&SI) - + English (&I-P) Imperiales Einheitensystem (&IP) - + &Change My Measures Directory I do not know how to translate "measures" &Verzeichnis für meine Measures ändern - + &Change Default Libraries &Verzeichnis für Standardbibliotheken ändern - + &Configure External Tools &Externe Software konfigurieren - + &Language &Sprache - + English Englisch - + French Französisch @@ -667,143 +667,148 @@ Zone Arabisch - + Spanish Spanisch - + Farsi Persisch - + Hebrew Hebräisch - + Italian Italienisch - + Chinese Chinesisch - + Greek Griechisch - + Polish Polnisch - + Catalan Katalanisch - + Hindi Hindi - + Vietnamese Vietnamesisch - + Japanese Japanisch - + German Deutsch - + Add a new language Neue Sprache hinzufügen - + &Configure Internet Proxy &Internet-Proxy konfigurieren - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures I do not know how to translate "measures" &Komponenten && Measures - + &Apply Measure Now &Measure jetzt ausführen - + Ctrl+M Strg+M - + Find &Measures &Measures finden - + Find &Components &Komponenten finden - + &Help &Hilfe - + OpenStudio &Help OpenStudio &Hilfe - + Check For &Update Auf &Aktualisierung prüfen - + Allow Analytics - + Debug Webgl - + &About &Über - + Adding a new language Neue Sprache hinzufügen - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Das Hinzufügen einer neuen Sprache erfordert fast keine Programmierkenntnisse, aber es erfordert Sprachkenntnisse. Das einzige was Sie tun müssen, ist jeden Satz/Wort mit Hilfe einer speziellen Software zu übersetzen. @@ -813,22 +818,22 @@ Wenn Sie möchten, dass die OpenStudio-Applikation in die Sprache Ihrer Wahl üb openstudio::MainWindow - + Restart required Neustart erforderlich - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -861,45 +866,45 @@ Wenn Sie möchten, dass die OpenStudio-Applikation in die Sprache Ihrer Wahl üb openstudio::OSDocument - + Export Idf IDF exportieren - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Modell konnte nicht gespeichert werden - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Modell konnte nicht gespeichert werden. Vergewissern Sie sich, dass der Speicherort nicht geöffnet ist und dass Sie korrekte Schreibrechte haben. - + Save Speichern - + (*.osm) (*.osm) - - + + Select My Measures Directory Verzeichnis für Meine Measures auswählen diff --git a/translations/OpenStudioApp_el.ts b/translations/OpenStudioApp_el.ts index 32422c4c6..4aa79d79c 100644 --- a/translations/OpenStudioApp_el.ts +++ b/translations/OpenStudioApp_el.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized Εκτίμηση μηχανολογικού συστήματος με παραμέτρους από τον χρήστη - + Autosized Αυτόματη εκτίμηση μηχανολογικού συστήματος - + Autocalculate Αυτόματος υπολογισμός - + Add/Remove Extensible Groups Προσθήκη/Κατάργηση επεκτάσιμων ομάδων @@ -515,141 +515,141 @@ Zone openstudio::MainMenu - + &File &Αρχείο - + &New &Νέο - + &Open &Άνοιγμα - - + + &Revert to Saved &Επαναφορά στο αποθηκευμένο - + Ctrl+R Ctrl+R - + &Save &Αποθήκευση - + Save &As Αποθήκευση &ως - + &Import &Εισαγωγή - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &Εξαγωγή - + &Load Library &Φόρτωση βιβλιοθήκης - + E&xamples - + &Example Model - + E&xit Έ&ξοδος - + &Preferences &Προτιμήσεις - + &Units &Μονάδες - + Metric (&SI) Διεθνές σύστημα μονάδων (&SI) - + English (&I-P) Βρετανικό σύστημα μονάδων (&I-P) - + &Change My Measures Directory &Άλλαξε τον φάκελο των Ενεργειακών Μέτρων - + &Change Default Libraries &Άλλαξε τισ προκαθορισμένες βιβλιοθήκες - + &Configure External Tools &Διαμόρφωση Εξωτερικών Εργαλείων - + &Language &Γλώσσα - + English Αγγλικά - + French Γαλλικά @@ -658,142 +658,147 @@ Zone Αραβικά - + Spanish Ισπανικά - + Farsi Ιρανικά - + Hebrew Εβραϊκά - + Italian Ιταλικά - + Chinese Κινέζικα - + Greek Ελληνικά - + Polish Πολωνικά - + Catalan Καταλανικά - + Hindi Χίντι - + Vietnamese - + Japanese - + German - + Add a new language Πρόσθεσαι νέα γλώσσα - + &Configure Internet Proxy &Διαμόρφωση διακομιστή μεσολάβησης διαδικτύου - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &Μηχανικά μέρη και Ενεργειακά Μέτρα - + &Apply Measure Now &Εφάρμοσαι μέτρα τώρα - + Ctrl+M Ctrl+M - + Find &Measures Βρες &Ενεργειακά Μέτρα - + Find &Components Βρές &Μηχανικά Μέρη - + &Help &Βοήθεια - + OpenStudio &Help OpenStudio &Βοήθεια - + Check For &Update Έλεγχος για &ενημερώσεις - + Allow Analytics - + Debug Webgl - + &About &Σχετικά με - + Adding a new language Προσθήκη νέας γλώσσας - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Η προσθήκη μιας νέας γλώσσας δεν απαιτεί σχεδόν καμία ικανότητα κωδικοποίησης, αλλά απαιτεί γλωσσικές δεξιότητες: το μόνο που πρέπει να κάνετε είναι να μεταφράσετε κάθε πρόταση / λέξη με τη βοήθεια ενός αποκλειστικού λογισμικού. @@ -803,22 +808,22 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::MainWindow - + Restart required Απαιτείται επανεκκίνηση - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -851,45 +856,45 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::OSDocument - + Export Idf Εξαγωγή Idf - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Αποτυχία αποθήκευσης μοντέλου - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Αποτυχία αποθήκευσης μοντέλου, βεβαιωθείτε ότι δεν έχετε ανοιχτή την τοποθεσία και ότι έχετε σωστή πρόσβαση εγγραφής. - + Save Αποθήκευση - + (*.osm) (*.osm) - - + + Select My Measures Directory Επιλέξτε τον κατάλογο των Ενεργειακών Μέτρων μου diff --git a/translations/OpenStudioApp_es.ts b/translations/OpenStudioApp_es.ts index aff09ce8c..d756ff450 100644 --- a/translations/OpenStudioApp_es.ts +++ b/translations/OpenStudioApp_es.ts @@ -34,23 +34,23 @@ InspectorGadget - - + + Hard Sized Dimensionamiento Fijo - + Autosized Auto Dimensionado - + Autocalculate Auto Calcular - + Add/Remove Extensible Groups Añadir/Remover Grupos Extendibles @@ -516,141 +516,141 @@ Zone openstudio::MainMenu - + &File &Archivo - + &New &Nuevo - + &Open &Abrir - - + + &Revert to Saved &Revertir a lo Guardado - + Ctrl+R Ctrl+R - + &Save &Guardar - + Save &As Guardar &Como - + &Import &Importar - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &Exportar - + &Load Library &Cargar Libreria - + E&xamples - + &Example Model - + E&xit &Salir - + &Preferences &Preferencias - + &Units &Unidades - + Metric (&SI) Metrico (&SI) - + English (&I-P) Inglés (&I-P) - + &Change My Measures Directory &Cambiar el Directorio de Mis Medidas - + &Change Default Libraries &Cambiar Librerías Estándar - + &Configure External Tools &Configurar Herramientas Externas - + &Language &Lenguaje - + English Inglés - + French Francés @@ -659,142 +659,147 @@ Zone Árabe - + Spanish Español - + Farsi Farsi - + Hebrew Hebreo - + Italian Italiano - + Chinese - + Greek - + Polish - + Catalan - + Hindi - + Vietnamese - + Japanese - + German - + Add a new language Añadir un Nuevo Lenguaje - + &Configure Internet Proxy &Configurar Proxy de Internet - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &Componentes y Medidas - + &Apply Measure Now &Aplicar Medida Ahora - + Ctrl+M Ctrl+M - + Find &Measures Buscar &Medidas - + Find &Components Buscar &Componentes - + &Help &Ayuda - + OpenStudio &Help &Ayuda de OpenStudio - + Check For &Update Buscar &Actualizaciones - + Allow Analytics - + Debug Webgl - + &About &Acerca - + Adding a new language Añadiendo un Nuevo Lenguaje - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Añadir un nuevo lenguaje require muy pocas habilidades de programación, pero require habilidades de lenguas: la única cosa por hacer es traducir cada oración/palabra con la ayuda de un programa de computadora dedicado. @@ -804,22 +809,22 @@ Si le gustaría ver la AplicaciónOpenStudio traducido a algun otro lenguaje, le openstudio::MainWindow - + Restart required Se requiere reiniciar - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -852,45 +857,45 @@ Si le gustaría ver la AplicaciónOpenStudio traducido a algun otro lenguaje, le openstudio::OSDocument - + Export Idf Exportar Idf - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Fallo al guardar modelo - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Fallo al guardar modelo, asegurece de que no tiene la locación abierta y que tiene acceso correcto para modificar. - + Save Guardar - + (*.osm) (*.osm) - - + + Select My Measures Directory Seleccionar Directorio de Mis Medidas diff --git a/translations/OpenStudioApp_fa.ts b/translations/OpenStudioApp_fa.ts index 6a5e238b8..17a7954c6 100644 --- a/translations/OpenStudioApp_fa.ts +++ b/translations/OpenStudioApp_fa.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized دقیق اندازه شده - + Autosized خودکار اندازه شده - + Autocalculate محاسبه خودکار - + Add/Remove Extensible Groups افزودن/حذف گروههای قابل توسعه @@ -515,136 +515,136 @@ Zone openstudio::MainMenu - + Ctrl+R Ctrl+R - + &File &فایل - + &New &جدید - - + + &Revert to Saved &برگشت به فایل ذخیره شده - + &Save &ذخیره - + Save &As ذخیره &بعنوان - + &Import &وارد کردن - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC &IFC - + &Export &خارج کردن - + &Load Library بارگذاری &کتابخانه - + E&xamples - + &Example Model - + E&xit &خروج - + &Preferences &اولویت ها - + &Units &واحدها - + Metric (&SI) متریک (SI&) - + English (&I-P) انگلیسی (I-P&) - + &Change My Measures Directory &تغییر فهرست تمهیدات من - + &Change Default Libraries &تغییر کتابخانه های پیش فرض - + &Configure External Tools &پیکربندی ابزارهای خارجی - + &Language &زبان - + English انگلیسی - + French فرانسوی @@ -653,147 +653,152 @@ Zone عربی - + Spanish اسپانیایی - + Farsi فارسی - + Hebrew عبری - + Italian ایتالیایی - + Chinese چینی - + Greek یونانی - + Polish لهستانی - + Catalan کاتالان - + Hindi هندی - + Vietnamese - + Japanese - + German - + Add a new language زبان جدید اضافه کنید - + &Configure Internet Proxy &پیکربندی پروکسی اینترنت - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &اجزاء و &تمهیدات - + &Apply Measure Now حالا تمهیدات را ا&عمال کن - + Find &Measures پیدا کردن ت&مهیدات - + Find &Components پیدا کردن &اجزاء - + &Help را&هنما - + OpenStudio &Help را&هنمای اپن استودیو - + Check For &Update بررسی ب&روزرسانی - + Allow Analytics - + Debug Webgl - + &About &درباره - + Adding a new language اضافه کردن زبان جدید - + Ctrl+M Ctrl+M - + &Open &باز کردن - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. افزودن یک زبان جدید به مهارت رمزگذاری نیاز ندارد ، اما به مهارت های زبانی نیاز دارد: تنها کاری که باید انجام دهید ترجمه هر جمله / کلمه با کمک یک نرم افزار اختصاصی است. @@ -803,22 +808,22 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::MainWindow - + Restart required راه اندازی مجدد لازم است - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -851,40 +856,40 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::OSDocument - + (*.idf) (*.idf) - + Export Idf خارج کردن idf - + (*.xml) (*.xml) - - + + Failed to save model ناموفق در ذخیره مدل - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. مدل ذخیره نشد، مطمئن شوید فایل را باز ندارید و دسترسی صحیحی به نوشتن دارید. - + Save ذخیره - - + + Select My Measures Directory انتخاب مسیر تمهیدات من @@ -893,7 +898,7 @@ If you would like to see the OpenStudioApplication translated in your language o کتابخانه آنلاین اجزاء ساختمان (BCL) - + (*.osm) (*.osm) diff --git a/translations/OpenStudioApp_fr.ts b/translations/OpenStudioApp_fr.ts index abb1a8010..ec2ba68f3 100644 --- a/translations/OpenStudioApp_fr.ts +++ b/translations/OpenStudioApp_fr.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized Dimensionné manuellement - + Autosized Auto dimensionné - + Autocalculate Autocalculé - + Add/Remove Extensible Groups Ajouter / Supprimer des groupes extensibles @@ -515,141 +515,141 @@ Zone openstudio::MainMenu - + &File &Fichier - + &New &Nouveau - + &Open &Ouvrir - - + + &Revert to Saved &Revenir à la dernière sauvegarde - + Ctrl+R Ctrl+R - + &Save &Enregister - + Save &As Enregistrer s&ous - + &Import &Importer - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &Exporter - + &Load Library &Charger une Bibliothèque - + E&xamples - + &Example Model - + E&xit &Quitter - + &Preferences &Préférences - + &Units &Unités - + Metric (&SI) &Métriques - + English (&I-P) &Impériales - + &Change My Measures Directory &Changer dossier "My Measures" - + &Change Default Libraries &Changer les bibliothèques par défaut - + &Configure External Tools &Configurer les outils externes - + &Language &Langue - + English Anglais - + French Français @@ -658,142 +658,147 @@ Zone Arabe - + Spanish Espagnol - + Farsi Farsi - + Hebrew Hébreu - + Italian Italien - + Chinese Chinois - + Greek Grec - + Polish Polonais - + Catalan Catalan - + Hindi Hindi - + Vietnamese - + Japanese - + German - + Add a new language Ajouter une nouvelle langue - + &Configure Internet Proxy &Configurer un proxy Internet - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &Composants && Mesures - + &Apply Measure Now &Appliquer une Mesure maintenant - + Ctrl+M Ctrl+M - + Find &Measures Trouver une &Mesure - + Find &Components Trouver un &Composant - + &Help &Aide - + OpenStudio &Help &Aide OpenStudio - + Check For &Update &Vérifier les mises à jour - + Allow Analytics - + Debug Webgl - + &About &A propos - + Adding a new language Ajouter une nouvelle langue - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Ajouter une nouvelle langue ne requiert pas de compétence en programmation informatique : la seule chose à faire est de traduire chaque phrase/mot à l'aide d'un logiciel dédié. @@ -803,22 +808,22 @@ Si vous voulez voir l'Application OpenStudio traduite dans la langue de vot openstudio::MainWindow - + Restart required Redémarrage requis - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -851,45 +856,45 @@ Si vous voulez voir l'Application OpenStudio traduite dans la langue de vot openstudio::OSDocument - + Export Idf Exporter un IDF - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Impossible de sauvegarder le Modèle - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Impossible de sauvegarde le Modèle, assurez-vous que vous n'avez pas le dossier ouvert et que vous avez les droits suffisant en écriture. - + Save Enregistrer - + (*.osm) (*.osm) - - + + Select My Measures Directory Selectionner le dossier "My Measures" diff --git a/translations/OpenStudioApp_he.ts b/translations/OpenStudioApp_he.ts index 91d0b2c5e..8d377f871 100644 --- a/translations/OpenStudioApp_he.ts +++ b/translations/OpenStudioApp_he.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized לפי תכנון - + Autosized מותאם אוטומטית - + Autocalculate מחושב אוטומטית - + Add/Remove Extensible Groups הוסף/הסר קבוצות מורחבות @@ -513,141 +513,141 @@ Zone openstudio::MainMenu - + &File &קובץ - + &New &חדש - + &Open &פתח - - + + &Revert to Saved &חזור לשמירה האחרונה - + Ctrl+R Ctrl+R - + &Save &שמור - + Save &As &שמור בשם - + &Import &יְבוּא - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &יְצוּא - + &Load Library &טען ספרייה - + E&xamples - + &Example Model - + E&xit &יציאה - + &Preferences &העדפות - + &Units &יחידות - + Metric (&SI) Metric (&SI) - + English (&I-P) אנגלית (&I-P) - + &Change My Measures Directory &שנה את ספריית הפעולות שלי - + &Change Default Libraries &שנה ספריות ברירת מחדל - + &Configure External Tools &הגדר כלים חיצוניים - + &Language &שפה - + English אנגלית - + French צרפתית @@ -656,142 +656,147 @@ Zone ערבית - + Spanish ספרדית - + Farsi פרסית - + Italian - + Chinese - + Greek - + Polish - + Catalan - + Hindi - + Vietnamese - + Japanese - + German - + Hebrew עברית - + Add a new language הוסף שפה חדשה - + &Configure Internet Proxy &הגדר פרוקסי אינטרנט - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &רכיבים && פעולות - + &Apply Measure Now &החל פעולה עכשיו - + Ctrl+M Ctrl+M - + Find &Measures מצא &פעולות - + Find &Components מצא &רכיבים - + &Help &עזרה - + OpenStudio &Help OpenStudio &עזרה - + Check For &Update בדוק עדכונים - + Allow Analytics - + Debug Webgl - + &About אודות - + Adding a new language הוספת שפה חדשה - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. הוספת שפה חדשה לא דורשת כמעט מיומנות קידוד, אבל היא כן דורשת כישורי שפה: הדבר היחיד שצריך לעשות הוא לתרגם כל משפט/מילה בעזרת תוכנה ייעודית. @@ -801,22 +806,22 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::MainWindow - + Restart required אתחול נדרש - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -849,45 +854,45 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::OSDocument - + Export Idf ייצוא IDF - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model שמירת הקובץ נכשלה - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. אין אפשרות לשמור את הקובץ, ודא שאין לך את התיקיה פתוחה ושיש לך מספיק הרשאות כתיבה. - + Save שמור - + (*.osm) (*.osm) - - + + Select My Measures Directory בחר בתיקייה "הפעולות שלי". diff --git a/translations/OpenStudioApp_hi.ts b/translations/OpenStudioApp_hi.ts index a7ed3f2c0..bf49265b2 100644 --- a/translations/OpenStudioApp_hi.ts +++ b/translations/OpenStudioApp_hi.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized हार्ड साइज्ड - + Autosized ऑटोसाइज्ड - + Autocalculate स्व-गणना - + Add/Remove Extensible Groups एक्स्टेंसिबल समूह जोड़ें/निकालें @@ -514,143 +514,143 @@ Zone openstudio::MainMenu - + &File फ़ा&इल - + &New &नया - + &Open &खोलें - - + + &Revert to Saved सहेजे गए पर &वापस जाएं - + Ctrl+R Ctrl+र - + &Save &सहेजें - + Save &As &इस रूप में सहेजें - + &Import &आयात - - + + &IDF &ईडफ - - + + &gbXML &जीबीएक्सएमएल - - + + &SDD &एसडीडी - + I&FC आई&एफसी - + &Export &निर्यात - + &Load Library &लोड लाइब्रेरी - + E&xamples - + &Example Model - + E&xit नि&कास - + &Preferences &तरजीह - + &Units &इकाई - + Metric (&SI) मीट्रिक (&SI) - + English (&I-P) आईपी ​​(&IP) - + &Change My Measures Directory मेरी उपाय निर्देशिका &बदलें - + &Change Default Libraries Hindi metric &मेरी उपाय निर्देशिका बदलें - + &Configure External Tools &बाहरी उपकरण कॉन्फ़िगर करें - + &Language &भाषा - + English अंग्रेज़ी - + French फ्रेंच @@ -659,142 +659,147 @@ metric अरबी - + Spanish स्पेनिश - + Farsi फारसी - + Hebrew यहूदी - + Italian इतालवी - + Chinese चीनी - + Greek यूनानी - + Polish पोलिश - + Catalan कातालान - + Hindi हिंदी - + Vietnamese वियतनामी - + Japanese जापानी - + German जर्मन - + Add a new language एक नई भाषा जोड़ें - + &Configure Internet Proxy &इंटरनेट प्रॉक्सी कॉन्फ़िगर करें - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &अवयव और उपाय - + &Apply Measure Now &उपाय लागू करें - + Ctrl+M Ctrl+म - + Find &Measures &उपाय खोजें - + Find &Components अ&वयव खोजें - + &Help &सहायता - + OpenStudio &Help ओपनस्टूडियो &सहायता - + Check For &Update अपडेट के लिये &जांचें - + Allow Analytics - + Debug Webgl - + &About &बारे में - + Adding a new language एक नई भाषा जोड़ना - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. क नई भाषा जोड़ने के लिए लगभग कोई कोडिंग कौशल की आवश्यकता नहीं होती है, लेकिन इसके लिए भाषा कौशल की आवश्यकता होती है: केवल एक ही काम करना है कि प्रत्येक वाक्य/शब्द का अनुवाद एक समर्पित सॉफ़्टवेयर की सहायता से करना है। @@ -804,22 +809,22 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::MainWindow - + Restart required पुनरारंभ करना आवश्यक है - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -852,45 +857,45 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::OSDocument - + Export Idf निर्यात ईडफ - + (*.idf) (*.ईडफ) - + (*.xml) (*एक्सएमएल) - - + + Failed to save model मॉडल सहेजने में विफल - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. मॉडल को सहेजने में विफल, सुनिश्चित करें कि आपके पास स्थान खुला नहीं है और आपके पास सही लेखन पहुंच है. - + Save सहेजें - + (*.osm) (*.ओएसएम) - - + + Select My Measures Directory मेरी उपाय निर्देशिका का चयन करें diff --git a/translations/OpenStudioApp_it.ts b/translations/OpenStudioApp_it.ts index 50e7b1720..f65b55a31 100644 --- a/translations/OpenStudioApp_it.ts +++ b/translations/OpenStudioApp_it.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized Dimensioni Forzate - + Autosized Dimensioni Automatiche - + Autocalculate Calcolo Automatico - + Add/Remove Extensible Groups Aggiungi/Rimuovi Gruppi d'Estensione @@ -516,141 +516,141 @@ Entità openstudio::MainMenu - + &File &File - + &New &Nuovo - + &Open &Apri - - + + &Revert to Saved &Ripristinare Salvataggio - + Ctrl+R Ctrl+R - + &Save &Salva - + Save &As Salva &Come - + &Import &Importare - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &Esportare - + &Load Library &Carica Libreria - + E&xamples - + &Example Model - + E&xit &Esci - + &Preferences &Preferenze - + &Units &Unità - + Metric (&SI) Sistema Metrico (&SI) - + English (&I-P) Sistema Imperiale (&I-P) - + &Change My Measures Directory &Cambia la Mia Cartella Misure - + &Change Default Libraries &Cambia Librerie Predefinite - + &Configure External Tools &Configurare Tools Esterni - + &Language &Lingua - + English Inglese - + French Francese @@ -659,143 +659,148 @@ Entità Arabo - + Spanish Spagnolo - + Farsi Farsi - + Hebrew Ebraico - + Italian Italiano - + Chinese Cinese semplificato Occidentale? Cinese - + Greek Greco - + Polish Polacco - + Catalan Catalano - + Hindi Hindi - + Vietnamese Vietnamita - + Japanese Giapponese - + German Tedesco - + Add a new language Aggiungi Un Nuovo Linguaggio - + &Configure Internet Proxy &Configurare Indirizzo Proxy - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &Componenti && Misure - + &Apply Measure Now &Applica Misurazioni Adesso - + Ctrl+M Ctrl+M - + Find &Measures Trova &Misure - + Find &Components Cerca &Componenti - + &Help &Help - + OpenStudio &Help OpenStudio &Help - + Check For &Update Controlla &Aggiornamenti - + Allow Analytics - + Debug Webgl - + &About &Informazioni - + Adding a new language Aggiungere una nuova Lingua - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Aggiungere una nuova lingua non richiede specificihe competenze di coding, ma richiede padronanza del linguaggio: l'unica cosa da fare è tradurre ogni frase/parole con l'aiuto di un software dedicato. @@ -805,22 +810,22 @@ Se vuoi vedere OpenStudioApplication tradotto nel tuo linguaggio preferito, appr openstudio::MainWindow - + Restart required Riavvio Richiesto - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -853,45 +858,45 @@ Se vuoi vedere OpenStudioApplication tradotto nel tuo linguaggio preferito, appr openstudio::OSDocument - + Export Idf Esporta Idf - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Errore Nel Salvataggio Modello - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Errore nel salvataggio modello, assicurati di non avere il file aperto e/o di avere il giusto permesso di scrittura. - + Save Salva - + (*.osm) (*.osm) - - + + Select My Measures Directory Seleziona La Mia Cartella Di Misurazioni diff --git a/translations/OpenStudioApp_ja.ts b/translations/OpenStudioApp_ja.ts index b809af91a..be375b943 100644 --- a/translations/OpenStudioApp_ja.ts +++ b/translations/OpenStudioApp_ja.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized 固定数値 - + Autosized 自動計算 - + Autocalculate 自動計算 - + Add/Remove Extensible Groups 追加/削除 @@ -516,141 +516,141 @@ Zone openstudio::MainMenu - + &File ファイル(&F) - + &New 新規作成(&N) - + &Open 開く(&O) - - + + &Revert to Saved 最後に保存した状態に戻る(&R) - + Ctrl+R Ctrl+R - + &Save 上書き保存(&S) - + Save &As 名前を付けて保存(&A) - + &Import インポート(&I) - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export エキスポート(&E) - + &Load Library ライブラリーを開く(&L) - + E&xamples - + &Example Model - + E&xit 終了(&X) - + &Preferences プレファレンス(&P) - + &Units 単位系(&U) - + Metric (&SI) &SI単位 - + English (&I-P) &IP単位 - + &Change My Measures Directory メジャーディレクトリの変更(&C) - + &Change Default Libraries デフォルトライブラリーの変更(&C) - + &Configure External Tools 外部ツールの変更(&C) - + &Language 言語選択(&L) - + English 英語(米国) - + French フランス語 @@ -659,142 +659,147 @@ Zone アラビア語 - + Spanish スペイン語 - + Farsi ペルシア語 - + Hebrew ヘブライ語 - + Italian イタリア語 - + Chinese 中国語 - + Greek ギリシャ語 - + Polish ポーランド語 - + Catalan カタロニア語 - + Hindi ヒンディー語 - + Vietnamese ベトナム語 - + Japanese 日本語 - + German ドイツ語 - + Add a new language 新しい言語の追加 - + &Configure Internet Proxy インターネットプロキシの設定(&C) - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures コンポーネントとメジャー(&C) - + &Apply Measure Now メジャーを適用する(&A) - + Ctrl+M Ctrl+M - + Find &Measures メジャーを探す(&M) - + Find &Components コンポーネントを探す(&C) - + &Help ヘルプ(&H) - + OpenStudio &Help OpenStudioヘルプ(&H) - + Check For &Update 更新を確認(&U) - + Allow Analytics - + Debug Webgl - + &About OpenStudioについて(&A) - + Adding a new language 新しい言語の追加 - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. 新しい言語の追加にはプログラミングスキルは必要ありませんが、その言語を知っているだけで大丈夫です:専用ソフトを使い、それぞれの単語や文章を翻訳するだけです。 @@ -804,22 +809,22 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::MainWindow - + Restart required 再起動してください - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -852,45 +857,45 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::OSDocument - + Export Idf IDFをエキスポート - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model モデルの保存に失敗しました - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. モデルの保存に失敗しました。ファイルが開いてないこととアクセス許可があることを確認してください。 - + Save 保存 - + (*.osm) (*.osm) - - + + Select My Measures Directory メジャーディレクトリを選択 diff --git a/translations/OpenStudioApp_pl.ts b/translations/OpenStudioApp_pl.ts index a6e914003..cebee6fef 100644 --- a/translations/OpenStudioApp_pl.ts +++ b/translations/OpenStudioApp_pl.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized Ręczne wymiarowane - + Autosized Automatyczne wymiarowane - + Autocalculate Automatyczne obliczenia - + Add/Remove Extensible Groups Dodaj/Usuń rozszerzalne grupy @@ -516,141 +516,141 @@ Pomieszczenie openstudio::MainMenu - + &File &Plik - + &New &Nowy - + &Open &Otwórz - - + + &Revert to Saved &Przywróc zapisane - + Ctrl+R Ctrl+R - + &Save &Zapisz - + Save &As &Zapisz jako - + &Import &Importuj - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &Eksportuj - + &Load Library &Wczytaj bibliotekę - + E&xamples - + &Example Model - + E&xit &Wyjdź - + &Preferences &Preferencje - + &Units &Jednostki - + Metric (&SI) Metryczne (&SI) - + English (&I-P) &Imperialne (&IP) - + &Change My Measures Directory &Zmień folder moje miary - + &Change Default Libraries &Zmień domyślną bibliotekę - + &Configure External Tools &Konfiguruj narzędzia zewnętrzne - + &Language &Język - + English Angielski - + French Francuski @@ -659,142 +659,147 @@ Pomieszczenie Arabski - + Spanish Hiszpański - + Farsi Perski - + Hebrew Hebrajski - + Italian Włoski - + Chinese Chiński - + Greek Grecki - + Polish Polski - + Catalan Kataloński - + Hindi Hinduski - + Vietnamese - + Japanese - + German - + Add a new language Dodaj nowy język - + &Configure Internet Proxy &Konfiguruj internetowe proxy - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &Komponenty && Miary - + &Apply Measure Now &Aplikuj miarę teraz - + Ctrl+M Ctrl+M - + Find &Measures Znajdź &miary - + Find &Components Znajdź &komponenty - + &Help &Pomoc - + OpenStudio &Help &Pomoc OpenStudio - + Check For &Update Sprawdź &aktualizacje - + Allow Analytics - + Debug Webgl - + &About &O - + Adding a new language Dodawanie nowego języka - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Dodanie nowego języka prawie nie wymaga umiejętności kodowania, ale wymaga umiejętności językowych: wystarczy przetłumaczyć każde zdanie/słowo za pomocą dedykowanego oprogramowania. @@ -804,22 +809,22 @@ Jeśli chcesz zobaczyć aplikację OpenStudio przetłumaczoną na wybrany przez openstudio::MainWindow - + Restart required Wymagane jest ponowne uruchomienie - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -852,45 +857,45 @@ Jeśli chcesz zobaczyć aplikację OpenStudio przetłumaczoną na wybrany przez openstudio::OSDocument - + Export Idf Eksportuj IDF - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Nie udało się zapisać modelu - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Nie udało się zapisać modelu, upewnij się, że nie masz otwartej lokalizacji i czy masz odpowiednie uprawnienia do zapisu. - + Save Zapisz - + (*.osm) (*.osm) - - + + Select My Measures Directory Wybierz folder dla moich miar diff --git a/translations/OpenStudioApp_vi.ts b/translations/OpenStudioApp_vi.ts index 98488f514..a3204af5d 100644 --- a/translations/OpenStudioApp_vi.ts +++ b/translations/OpenStudioApp_vi.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized Định kích thước thủ công - + Autosized Tự động tính kích thước - + Autocalculate Tự động tính toán - + Add/Remove Extensible Groups Thêm/bớt các nhóm có thể mở rộng @@ -513,141 +513,141 @@ Zone openstudio::MainMenu - + &File &File - + &New &Tạo mới - + &Open &Mở file - - + + &Revert to Saved &Trở lại để lưu file - + Ctrl+R Ctrl+R - + &Save &Lưu file - + Save &As Lưu vào &File khác - + &Import &Nhập file - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC &I&FC - + &Export &Xuất file - + &Load Library &Nạp thư viện - + E&xamples - + &Example Model - + E&xit T&thoát - + &Preferences &Các tuỳ biến - + &Units &Đơn vị - + Metric (&SI) &Hệ mét (&SI) - + English (&I-P) Hệ inch (&I-P) - + &Change My Measures Directory &Thay đổi thư mục Measures - + &Change Default Libraries &Thay đổi thư viện mặc định - + &Configure External Tools &Cấu hình công cụ ngoại vi - + &Language &Ngôn ngữ - + English Tiếng Anh - + French Tiếng Pháp @@ -656,142 +656,147 @@ Zone Tiếng Ả rập - + Spanish Tiếng Tây Ban Nha - + Farsi Tiếng Ba Tư - + Hebrew Tiếng Israel - + Italian Tiếng Ý - + Chinese Tiếng Trung - + Greek Tiếng Hy Lạp - + Polish Tiếng Ba Lan - + Catalan Tiếng Catalan - + Hindi Tiếng Hindi - + Vietnamese Tiếng Việt - + Japanese Tiếng Nhật - + German Tiếng Đức - + Add a new language Thêm ngôn ngữ mới - + &Configure Internet Proxy &Cấu hình Proxi Internet - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &Thành phần && Measures - + &Apply Measure Now &Áp dụng Measure ngay bây giờ - + Ctrl+M Ctrl+M - + Find &Measures Tìm &Measures - + Find &Components Tìm &Thành phần - + &Help &Trợ giúp - + OpenStudio &Help OpenStudio &Help - + Check For &Update Kiểm tra &Cập nhật - + Allow Analytics - + Debug Webgl - + &About &Giới thiệu - + Adding a new language Thêm ngôn ngữ mới - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. Việc thêm một ngôn ngữ mới hầu như không yêu cầu kỹ năng viết mã, nhưng nó đòi hỏi kỹ năng ngôn ngữ: việc duy nhất cần làm là dịch từng câu / từ với sự trợ giúp của một phần mềm chuyên dụng. @@ -801,22 +806,22 @@ Nếu bạn muốn thấy OpenStudioApplication được dịch sang ngôn ngữ openstudio::MainWindow - + Restart required Cần khởi động lại - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -849,45 +854,45 @@ Nếu bạn muốn thấy OpenStudioApplication được dịch sang ngôn ngữ openstudio::OSDocument - + Export Idf Xuất ra Idf - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model Lỗi khi lưu mô hình - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. Không lưu được mô hình, hãy đảm bảo rằng bạn đang không mở fileí và bạn có quyền được ghi. - + Save Lưu file - + (*.osm) (*.osm) - - + + Select My Measures Directory Chọn thư mục Measures diff --git a/translations/OpenStudioApp_zh_CN.ts b/translations/OpenStudioApp_zh_CN.ts index 1ef1b7bbb..6c12b25dc 100644 --- a/translations/OpenStudioApp_zh_CN.ts +++ b/translations/OpenStudioApp_zh_CN.ts @@ -33,23 +33,23 @@ InspectorGadget - - + + Hard Sized 人工计算 - + Autosized 自动计算 - + Autocalculate 自动计算 - + Add/Remove Extensible Groups 增加/删除 扩展组 @@ -516,141 +516,141 @@ Zone openstudio::MainMenu - + &File &文件 - + &New &新建 - + &Open &打开 - - + + &Revert to Saved &恢复到之前保存 - + Ctrl+R Ctrl+R - + &Save &保存 - + Save &As &另存为 - + &Import &导入 - - + + &IDF &IDF - - + + &gbXML &gbXML - - + + &SDD &SDD - + I&FC I&FC - + &Export &导出 - + &Load Library &加载资料库 - + E&xamples - + &Example Model - + E&xit &退出 - + &Preferences &设置 - + &Units &单位 - + Metric (&SI) 公制 (&SI) - + English (&I-P) 英制 (&I-P) - + &Change My Measures Directory &修改我的脚本文件夹 - + &Change Default Libraries &设置默认资料库 - + &Configure External Tools &设置外置工具 - + &Language &语言 - + English 英语 - + French 法语 @@ -659,142 +659,147 @@ Zone 阿拉伯语 - + Spanish 西班牙语 - + Farsi 波斯语 - + Hebrew 希伯来语 - + Italian 意大利语 - + Chinese 中文 - + Greek 希腊语 - + Polish 波兰语 - + Catalan 加泰罗尼亚语 - + Hindi 印地语 - + Vietnamese - + Japanese - + German - + Add a new language 添加新语言 - + &Configure Internet Proxy &设置网络代理 - + &Use Classic CLI - + + &Display Additional Proprerties + + + + &Components && Measures &组件 && 脚本 - + &Apply Measure Now &应用脚本 - + Ctrl+M Ctrl+M - + Find &Measures 查找 &脚本 - + Find &Components 查找 &组件 - + &Help &帮助 - + OpenStudio &Help OpenStudio &帮助 - + Check For &Update &检查更新 - + Allow Analytics - + Debug Webgl - + &About &关于 - + Adding a new language 增加新语言 - + Adding a new language requires almost no coding skill, but it does require language skills: the only thing to do is to translate each sentence/word with the help of a dedicated software. If you would like to see the OpenStudioApplication translated in your language of choice, we would welcome your help. Send an email to osc@openstudiocoalition.org specifying which language you want to add, and we will be in touch to help you get started. 增加一种新语言不需要有编程背景,只要有语言能力:你只要做的是在专用软件里翻译对应的词句。 @@ -804,22 +809,22 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::MainWindow - + Restart required 要求重启 - + Restart the OpenStudio Application to reset Measure Manager. - + Allow Analytics - + Allow OpenStudio Coalition to collect anonymous usage statistics to help improve the OpenStudio Application? See the <a href="https://openstudiocoalition.org/about/privacy_policy/">privacy policy</a> for more information. @@ -852,45 +857,45 @@ If you would like to see the OpenStudioApplication translated in your language o openstudio::OSDocument - + Export Idf 导出 Idf - + (*.idf) (*.idf) - + (*.xml) (*.xml) - - + + Failed to save model 保存失败 - - + + Failed to save model, make sure that you do not have the location open and that you have correct write access. 保存失败,请确保你的保存地址有效且可覆盖。 - + Save 保存 - + (*.osm) (*.osm) - - + + Select My Measures Directory 选择我的脚本文件夹