Skip to content

Commit 139696f

Browse files
authored
Merge pull request #288 from openstudiocoalition/add_start_tab_env_var
Add environment variable to control which tab is shown on startup - Supported by Ladybug Tools
2 parents f26af4d + c9beade commit 139696f

12 files changed

+68
-77
lines changed

.github/workflows/cppcheck.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ jobs:
1515
- name: Run cppcheck
1616
shell: bash
1717
run: |
18-
sudo snap install cppcheck
18+
# Current stable (2.3-25-20201207-23616-ga9f4a14c8, rev 1637) is broken, so use edge for now
19+
sudo snap install cppcheck --edge
1920
cppcheck \
2021
--suppress=noExplicitConstructor \
2122
--suppress=useStlAlgorithm \

src/model_editor/InspectorDialog.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ openstudio::model::Model InspectorDialog::model() const {
271271
return m_model;
272272
}
273273

274-
void InspectorDialog::setModel(openstudio::model::Model& model, bool force) {
274+
void InspectorDialog::setModel(const openstudio::model::Model& model, bool force) {
275275
if ((model == m_model) && !force) {
276276
return;
277277
}

src/model_editor/InspectorDialog.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class MODELEDITOR_API InspectorDialog : public QMainWindow, public Nano::Observe
9595
openstudio::model::Model model() const;
9696

9797
// point the dialog at a new model
98-
void setModel(openstudio::model::Model& model, bool force = false);
98+
void setModel(const openstudio::model::Model& model, bool force = false);
9999

100100
// void rebuild inspector gadget
101101
void rebuildInspectorGadget(bool recursive);

src/model_editor/InspectorGadget.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -771,8 +771,8 @@ void InspectorGadget::layoutComboBox(QVBoxLayout* layout, QWidget* parent, opens
771771
combo->addItem("");
772772
}
773773

774-
for (const std::string& name : names) {
775-
combo->addItem(name.c_str());
774+
for (const std::string& thisName : names) {
775+
combo->addItem(thisName.c_str());
776776
}
777777
} else {
778778
if (!prop.required) {

src/model_editor/InspectorGadget.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class MODELEDITOR_API InspectorGadget : public QWidget, public Nano::Observer
155155
* parameter to true
156156
*
157157
*/
158-
void layoutModelObj(openstudio::WorkspaceObject& workObj, bool force = false, bool recursive = true, bool locked = false,
158+
void layoutModelObj(openstudio::WorkspaceObject& workspaceObj, bool force = false, bool recursive = true, bool locked = false,
159159
bool hideChildren = false);
160160

161161
/*! \brief sets the display precision for number fields
@@ -302,7 +302,7 @@ class MODELEDITOR_API InspectorGadget : public QWidget, public Nano::Observer
302302
const std::string& name, const std::string& curVal, int index, const std::string& comment, bool exists, bool number,
303303
bool real = false);
304304

305-
void layoutComboBox(QVBoxLayout* layout, QWidget* parent, openstudio::IddField& field, openstudio::IddFieldProperties& properties,
305+
void layoutComboBox(QVBoxLayout* layout, QWidget* parent, openstudio::IddField& field, openstudio::IddFieldProperties& prop,
306306
const std::string& name, const std::string& curVal, int index, const std::string& comment, bool exists);
307307

308308
void createExtensibleToolBar(QVBoxLayout* layout, QWidget* parent, const openstudio::IddObjectProperties& props);

src/openstudio_app/OpenStudioApp.cpp

+23-6
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ void OpenStudioApp::onMeasureManagerAndLibraryReady() {
277277
boost::optional<openstudio::model::Model> model = versionTranslator.loadModel(toPath(fileName));
278278
if (model) {
279279

280-
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), model, fileName));
280+
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), model, fileName, false, startTabIndex()));
281281

282282
connectOSDocumentSignals();
283283

@@ -325,7 +325,7 @@ bool OpenStudioApp::openFile(const QString& fileName, bool restoreTabs) {
325325
bool wasQuitOnLastWindowClosed = this->quitOnLastWindowClosed();
326326
this->setQuitOnLastWindowClosed(false);
327327

328-
int startTabIndex = 0;
328+
int startTabIndex = this->startTabIndex();
329329
int startSubTabIndex = 0;
330330
if (m_osDocument) {
331331

@@ -453,7 +453,7 @@ void OpenStudioApp::newFromEmptyTemplateSlot() {
453453
}
454454

455455
void OpenStudioApp::newFromTemplateSlot(NewFromTemplateEnum newFromTemplateEnum) {
456-
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath()));
456+
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), boost::none, QString(), false, startTabIndex()));
457457

458458
connectOSDocumentSignals();
459459

@@ -552,7 +552,7 @@ void OpenStudioApp::importIdf() {
552552
processEvents();
553553
}
554554

555-
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), model));
555+
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), model, QString(), false, startTabIndex()));
556556
m_osDocument->markAsModified();
557557
// ETH: parent should change now ...
558558
//parent = m_osDocument->mainWindow();
@@ -678,7 +678,7 @@ void OpenStudioApp::importIFC() {
678678
processEvents();
679679
}
680680

681-
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), *model));
681+
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), *model, QString(), false, startTabIndex()));
682682

683683
m_osDocument->markAsModified();
684684

@@ -740,7 +740,7 @@ void OpenStudioApp::import(OpenStudioApp::fileType type) {
740740
processEvents();
741741
}
742742

743-
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), *model));
743+
m_osDocument = std::shared_ptr<OSDocument>(new OSDocument(componentLibrary(), resourcesPath(), *model, QString(), false, startTabIndex()));
744744
m_osDocument->markAsModified();
745745
// ETH: parent should change now ...
746746
//parent = m_osDocument->mainWindow();
@@ -1356,6 +1356,23 @@ void OpenStudioApp::writeLibraryPaths(std::vector<openstudio::path> paths) {
13561356
}
13571357
}
13581358

1359+
int OpenStudioApp::startTabIndex() const {
1360+
int result = OSDocument::VerticalTabID::SITE;
1361+
if (qEnvironmentVariableIsSet("OPENSTUDIO_APPLICATION_START_TAB_INDEX")) {
1362+
LOG(Debug, "OPENSTUDIO_APPLICATION_START_TAB_INDEX is set");
1363+
bool ok;
1364+
int test = qEnvironmentVariableIntValue("OPENSTUDIO_APPLICATION_START_TAB_INDEX", &ok);
1365+
if (ok) {
1366+
if ((test >= OSDocument::VerticalTabID::SITE) && (test <= OSDocument::VerticalTabID::RESULTS_SUMMARY)) {
1367+
result = test;
1368+
LOG(Debug, "OPENSTUDIO_APPLICATION_START_TAB_INDEX is " << result);
1369+
}
1370+
}
1371+
}
1372+
1373+
return result;
1374+
}
1375+
13591376
void OpenStudioApp::loadLibrary() {
13601377
if (this->currentDocument()) {
13611378
QWidget* parent = this->currentDocument()->mainWindow();

src/openstudio_app/OpenStudioApp.hpp

+2
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,8 @@ class OpenStudioApp : public OSAppBase
239239
*/
240240
void writeLibraryPaths(std::vector<openstudio::path> paths);
241241

242+
int startTabIndex() const;
243+
242244
QProcess* m_measureManagerProcess;
243245

244246
openstudio::model::Model m_compLibrary;

src/openstudio_lib/MainRightColumnController.cpp

-11
Original file line numberDiff line numberDiff line change
@@ -1157,17 +1157,6 @@ void MainRightColumnController::configureForHVACSystemsSubTab(int subTabID) {
11571157
doc->openSidebar();
11581158
}
11591159

1160-
void MainRightColumnController::configureForBuildingSummarySubTab(int subTabID) {
1161-
std::shared_ptr<OSDocument> doc = OSAppBase::instance()->currentDocument();
1162-
1163-
setLibraryView(nullptr);
1164-
setMyModelView(nullptr);
1165-
setEditView(nullptr);
1166-
1167-
//doc->openSidebar();
1168-
doc->closeSidebar();
1169-
}
1170-
11711160
void MainRightColumnController::configureForOutputVariablesSubTab(int subTabID) {
11721161
std::shared_ptr<OSDocument> doc = OSAppBase::instance()->currentDocument();
11731162

src/openstudio_lib/MainRightColumnController.hpp

-2
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ class MainRightColumnController : public OSQObjectController
113113

114114
void configureForHVACSystemsSubTab(int subTabID);
115115

116-
void configureForBuildingSummarySubTab(int subTabID);
117-
118116
void configureForOutputVariablesSubTab(int subTabID);
119117

120118
void configureForSimulationSettingsSubTab(int subTabID);

src/openstudio_lib/OSDocument.cpp

+8-20
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,7 @@ OSDocument::OSDocument(const openstudio::model::Model& library, const openstudio
142142
m_onlineBclDialog(nullptr),
143143
m_localLibraryDialog(nullptr),
144144
m_savePath(filePath),
145-
m_isPlugin(isPlugin),
146-
m_startTabIndex(startTabIndex),
147-
m_startSubTabIndex(startSubTabIndex) {
145+
m_isPlugin(isPlugin) {
148146
QFile data(":openstudiolib.qss");
149147

150148
static QString style;
@@ -230,6 +228,13 @@ OSDocument::OSDocument(const openstudio::model::Model& library, const openstudio
230228
if (initalizeWorkflow) {
231229
QTimer::singleShot(0, this, SLOT(addStandardMeasures()));
232230
}
231+
232+
if (startTabIndex != m_verticalId) {
233+
QTimer::singleShot(0, [=] {
234+
this->onVerticalTabSelected(startTabIndex);
235+
this->updateSubTabSelected(startSubTabIndex);
236+
});
237+
}
233238
}
234239

235240
//void OSDocument::showRubyConsole()
@@ -660,20 +665,6 @@ void OSDocument::createTab(int verticalId) {
660665

661666
break;
662667

663-
case BUILDING_SUMMARY:
664-
//******************************************************************************************************
665-
//
666-
//// Summary
667-
//
668-
//m_summaryTabController = std::shared_ptr<SummaryTabController>( new SummaryTabController(m_model) );
669-
//m_mainWindow->setView( m_summaryTabController->mainContentWidget(),BUILDING_SUMMARY );
670-
////connect(m_summaryTabController->mainContentWidget(), &MainTabView::tabSelected,
671-
//// m_mainRightColumnController.get(), &MainRightColumnController::configureForBuildingSummarySubTab);
672-
//
673-
//******************************************************************************************************
674-
675-
break;
676-
677668
case OUTPUT_VARIABLES:
678669
// Variables
679670

@@ -1170,9 +1161,6 @@ void OSDocument::onVerticalTabSelected(int verticalId) {
11701161
qobject_cast<HVACSystemsTabController*>(m_mainTabController.get())->clearSceneSelection();
11711162
}
11721163
break;
1173-
case BUILDING_SUMMARY:
1174-
m_mainRightColumnController->configureForBuildingSummarySubTab(m_subTabId);
1175-
break;
11761164
case OUTPUT_VARIABLES:
11771165
m_mainRightColumnController->configureForOutputVariablesSubTab(m_subTabId);
11781166
break;

src/openstudio_lib/OSDocument.hpp

+1-5
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class OPENSTUDIO_API OSDocument : public OSQObjectController
141141

142142
enum VerticalTabID
143143
{
144-
SITE,
144+
SITE = 0,
145145
SCHEDULES,
146146
CONSTRUCTIONS,
147147
LOADS,
@@ -151,7 +151,6 @@ class OPENSTUDIO_API OSDocument : public OSQObjectController
151151
SPACES,
152152
THERMAL_ZONES,
153153
HVAC_SYSTEMS,
154-
BUILDING_SUMMARY,
155154
OUTPUT_VARIABLES,
156155
SIMULATION_SETTINGS,
157156
RUBY_SCRIPTS,
@@ -353,9 +352,6 @@ class OPENSTUDIO_API OSDocument : public OSQObjectController
353352
int m_subTabId = 0;
354353
bool m_isPlugin;
355354

356-
int m_startTabIndex;
357-
int m_startSubTabIndex;
358-
359355
int m_verticalId;
360356
std::vector<int> m_subTabIds;
361357

0 commit comments

Comments
 (0)