Gui: implement handling of Combo, Property and Tree view
This commit is contained in:
@@ -80,7 +80,7 @@ QTabBar* ControlSingleton::findTabBar(QDockWidget* widget) const
|
||||
if (count > 1) {
|
||||
QList<QTabBar*> bars = getMainWindow()->findChildren<QTabBar*>();
|
||||
for (auto it : bars) {
|
||||
if (it->count() == count) {
|
||||
if (it->count() <= count) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
if (it->tabText(i) == widget->windowTitle()) {
|
||||
return it;
|
||||
|
||||
@@ -469,11 +469,11 @@ void MainWindow::setupDockWindows()
|
||||
if (ht != config.end())
|
||||
hiddenDockWindows = ht->second;
|
||||
|
||||
bool treeView = setupTreeView(hiddenDockWindows);
|
||||
bool propertyView = setupPropertyView(hiddenDockWindows);
|
||||
setupTreeView(hiddenDockWindows);
|
||||
setupPropertyView(hiddenDockWindows);
|
||||
setupTaskView(hiddenDockWindows);
|
||||
setupSelectionView(hiddenDockWindows);
|
||||
setupComboView(hiddenDockWindows, !treeView || !propertyView);
|
||||
setupComboView(hiddenDockWindows);
|
||||
|
||||
// Report view must be created before PythonConsole!
|
||||
setupReportView(hiddenDockWindows);
|
||||
@@ -492,7 +492,7 @@ bool MainWindow::setupTreeView(const std::string& hiddenDockWindows)
|
||||
bool enabled = group->GetBool("Enabled", true);
|
||||
if (enabled != group->GetBool("Enabled", false)) {
|
||||
enabled = App::GetApplication().GetUserParameter().GetGroup("BaseApp")
|
||||
->GetGroup("MainWindow")->GetGroup("DockWindows")->GetBool("Std_TreeView",false);
|
||||
->GetGroup("MainWindow")->GetGroup("DockWindows")->GetBool("Std_TreeView", true);
|
||||
}
|
||||
group->SetBool("Enabled", enabled); //ensure entry exists.
|
||||
if (enabled) {
|
||||
@@ -537,7 +537,7 @@ bool MainWindow::setupPropertyView(const std::string& hiddenDockWindows)
|
||||
bool enabled = group->GetBool("Enabled", true);
|
||||
if (enabled != group->GetBool("Enabled", false)) {
|
||||
enabled = App::GetApplication().GetUserParameter().GetGroup("BaseApp")
|
||||
->GetGroup("MainWindow")->GetGroup("DockWindows")->GetBool("Std_PropertyView",false);
|
||||
->GetGroup("MainWindow")->GetGroup("DockWindows")->GetBool("Std_PropertyView", true);
|
||||
}
|
||||
group->SetBool("Enabled", enabled); //ensure entry exists.
|
||||
if (enabled) {
|
||||
@@ -572,23 +572,23 @@ bool MainWindow::setupSelectionView(const std::string& hiddenDockWindows)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MainWindow::setupComboView(const std::string& hiddenDockWindows, bool enable)
|
||||
bool MainWindow::setupComboView(const std::string& hiddenDockWindows)
|
||||
{
|
||||
// Combo view
|
||||
if (hiddenDockWindows.find("Std_ComboView") == std::string::npos) {
|
||||
if (!enable) {
|
||||
ParameterGrp::handle group = App::GetApplication().GetUserParameter().
|
||||
GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("DockWindows")->GetGroup("ComboView");
|
||||
enable = group->GetBool("Enabled", true);
|
||||
ParameterGrp::handle group = App::GetApplication().GetUserParameter().
|
||||
GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("DockWindows")->GetGroup("ComboView");
|
||||
bool enable = group->GetBool("Enabled", false);
|
||||
|
||||
if (enable) {
|
||||
auto pcComboView = new ComboView(nullptr, this);
|
||||
pcComboView->setObjectName(QString::fromLatin1(QT_TRANSLATE_NOOP("QDockWidget", "Model")));
|
||||
pcComboView->setMinimumWidth(150);
|
||||
|
||||
DockWindowManager* pDockMgr = DockWindowManager::instance();
|
||||
pDockMgr->registerDockWindow("Std_ComboView", pcComboView);
|
||||
return true;
|
||||
}
|
||||
|
||||
auto pcComboView = new ComboView(nullptr, this);
|
||||
pcComboView->setObjectName(QString::fromLatin1(QT_TRANSLATE_NOOP("QDockWidget", "Model")));
|
||||
pcComboView->setMinimumWidth(150);
|
||||
|
||||
DockWindowManager* pDockMgr = DockWindowManager::instance();
|
||||
pDockMgr->registerDockWindow("Std_ComboView", pcComboView);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@@ -287,7 +287,7 @@ private:
|
||||
bool setupTaskView(const std::string&);
|
||||
bool setupPropertyView(const std::string&);
|
||||
bool setupSelectionView(const std::string&);
|
||||
bool setupComboView(const std::string&, bool enable);
|
||||
bool setupComboView(const std::string&);
|
||||
bool setupDAGView(const std::string&);
|
||||
bool setupReportView(const std::string&);
|
||||
bool setupPythonConsole(const std::string&);
|
||||
|
||||
@@ -226,23 +226,7 @@ void DlgSettingsGeneral::saveSettings()
|
||||
int blinkTime{hGrp->GetBool("EnableCursorBlinking", true) ? -1 : 0};
|
||||
qApp->setCursorFlashTime(blinkTime);
|
||||
|
||||
hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/DockWindows");
|
||||
bool treeView=false;
|
||||
bool propertyView=false;
|
||||
bool comboView=true;
|
||||
switch(ui->treeMode->currentIndex()) {
|
||||
case 1:
|
||||
treeView = propertyView = true;
|
||||
comboView = false;
|
||||
break;
|
||||
case 2:
|
||||
comboView = true;
|
||||
treeView = propertyView = true;
|
||||
break;
|
||||
}
|
||||
hGrp->GetGroup("ComboView")->SetBool("Enabled",comboView);
|
||||
hGrp->GetGroup("TreeView")->SetBool("Enabled",treeView);
|
||||
hGrp->GetGroup("PropertyView")->SetBool("Enabled",propertyView);
|
||||
saveDockWindowVisibility();
|
||||
|
||||
hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow");
|
||||
hGrp->SetBool("TiledBackground", ui->tiledBackground->isChecked());
|
||||
@@ -330,20 +314,7 @@ void DlgSettingsGeneral::loadSettings()
|
||||
ui->toolbarIconSize->setCurrentIndex(index);
|
||||
|
||||
//TreeMode combobox setup.
|
||||
ui->treeMode->clear();
|
||||
ui->treeMode->addItem(tr("Combo View"));
|
||||
ui->treeMode->addItem(tr("TreeView and PropertyView"));
|
||||
ui->treeMode->addItem(tr("Both"));
|
||||
|
||||
hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/DockWindows");
|
||||
bool propertyView = hGrp->GetGroup("PropertyView")->GetBool("Enabled",false);
|
||||
bool treeView = hGrp->GetGroup("TreeView")->GetBool("Enabled",false);
|
||||
bool comboView = hGrp->GetGroup("ComboView")->GetBool("Enabled",true);
|
||||
index = 0;
|
||||
if(propertyView || treeView) {
|
||||
index = comboView?2:1;
|
||||
}
|
||||
ui->treeMode->setCurrentIndex(index);
|
||||
loadDockWindowVisibility();
|
||||
|
||||
hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/MainWindow");
|
||||
ui->tiledBackground->setChecked(hGrp->GetBool("TiledBackground", false));
|
||||
@@ -427,6 +398,48 @@ void DlgSettingsGeneral::changeEvent(QEvent *event)
|
||||
}
|
||||
}
|
||||
|
||||
void DlgSettingsGeneral::saveDockWindowVisibility()
|
||||
{
|
||||
auto hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/DockWindows");
|
||||
bool treeView = hGrp->GetGroup("TreeView")->GetBool("Enabled", true);
|
||||
bool propertyView = hGrp->GetGroup("PropertyView")->GetBool("Enabled", true);
|
||||
bool comboView = hGrp->GetGroup("ComboView")->GetBool("Enabled", false);
|
||||
switch (ui->treeMode->currentIndex()) {
|
||||
case 0:
|
||||
comboView = true;
|
||||
treeView = propertyView = false;
|
||||
break;
|
||||
case 1:
|
||||
treeView = propertyView = true;
|
||||
comboView = false;
|
||||
break;
|
||||
}
|
||||
|
||||
hGrp->GetGroup("ComboView")->SetBool("Enabled", comboView);
|
||||
hGrp->GetGroup("TreeView")->SetBool("Enabled", treeView);
|
||||
hGrp->GetGroup("PropertyView")->SetBool("Enabled", propertyView);
|
||||
}
|
||||
|
||||
void DlgSettingsGeneral::loadDockWindowVisibility()
|
||||
{
|
||||
ui->treeMode->clear();
|
||||
ui->treeMode->addItem(tr("Combo View"));
|
||||
ui->treeMode->addItem(tr("TreeView and PropertyView"));
|
||||
|
||||
auto hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/DockWindows");
|
||||
bool propertyView = hGrp->GetGroup("PropertyView")->GetBool("Enabled", true);
|
||||
bool treeView = hGrp->GetGroup("TreeView")->GetBool("Enabled", true);
|
||||
bool comboView = hGrp->GetGroup("ComboView")->GetBool("Enabled", false);
|
||||
int index = -1;
|
||||
if (propertyView || treeView) {
|
||||
index = 1;
|
||||
}
|
||||
else if (comboView) {
|
||||
index = 0;
|
||||
}
|
||||
ui->treeMode->setCurrentIndex(index);
|
||||
}
|
||||
|
||||
void DlgSettingsGeneral::recreatePreferencePackMenu()
|
||||
{
|
||||
ui->PreferencePacks->setRowCount(0); // Begin by clearing whatever is there
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
#ifndef GUI_DIALOG_DLGSETTINGSGENERAL_H
|
||||
#define GUI_DIALOG_DLGSETTINGSGENERAL_H
|
||||
|
||||
|
||||
#include <Gui/PropertyPage.h>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -72,6 +72,8 @@ public Q_SLOTS:
|
||||
void onUnitSystemIndexChanged(int index);
|
||||
|
||||
private:
|
||||
void saveDockWindowVisibility();
|
||||
void loadDockWindowVisibility();
|
||||
void setRecentFileSize();
|
||||
void saveAsNewPreferencePack();
|
||||
void revertToSavedConfig();
|
||||
@@ -91,4 +93,4 @@ private:
|
||||
} // namespace Dialog
|
||||
} // namespace Gui
|
||||
|
||||
#endif // GUI_DIALOG_DLGSETTINGSGENERAL_H
|
||||
#endif // GUI_DIALOG_DLGSETTINGSGENERAL_H
|
||||
|
||||
Reference in New Issue
Block a user