From ca7a0c7c3d6a74dc010cc399c85763bcae8a5343 Mon Sep 17 00:00:00 2001 From: abn Date: Wed, 10 Sep 2014 16:12:04 +0200 Subject: [PATCH] Porting PV4.2: quick and dirty integration of new settings view. To be improved. --- src/PVGUI/CMakeLists.txt | 4 +- src/PVGUI/PVGUI_Module.cxx | 8 +- src/PVGUI/PVGUI_ParaViewSettingsPane.cxx | 1048 +++++++++++----------- src/PVGUI/PVGUI_ParaViewSettingsPane.h | 53 +- src/PVGUI/ui_pqOptionsDialog.h | 157 ++-- 5 files changed, 613 insertions(+), 657 deletions(-) diff --git a/src/PVGUI/CMakeLists.txt b/src/PVGUI/CMakeLists.txt index 26b900bf..fc2bcaba 100644 --- a/src/PVGUI/CMakeLists.txt +++ b/src/PVGUI/CMakeLists.txt @@ -64,7 +64,7 @@ SET(_moc_HEADERS PVGUI_ViewManager.h PVGUI_ViewModel.h PVGUI_ViewWindow.h - # PVGUI_ParaViewSettingsPane.h + PVGUI_ParaViewSettingsPane.h ) # header files / no moc processing @@ -136,7 +136,7 @@ SET(_other_SOURCES PVGUI_ViewWindow.cxx PVGUI_OutputWindowAdapter.cxx PVGUI_Tools.cxx -# PVGUI_ParaViewSettingsPane.cxx + PVGUI_ParaViewSettingsPane.cxx #PVGUI_MatplotlibMathTextUtilities.cxx PARAVIS_Gen_i.cc PV_Tools.cxx diff --git a/src/PVGUI/PVGUI_Module.cxx b/src/PVGUI/PVGUI_Module.cxx index d2882e41..c2847dab 100644 --- a/src/PVGUI/PVGUI_Module.cxx +++ b/src/PVGUI/PVGUI_Module.cxx @@ -43,7 +43,7 @@ #include "PVGUI_ViewManager.h" #include "PVGUI_ViewWindow.h" #include "PVGUI_Tools.h" -//#include "PVGUI_ParaViewSettingsPane.h" +#include "PVGUI_ParaViewSettingsPane.h" #include "PVGUI_OutputWindowAdapter.h" #include @@ -1272,9 +1272,9 @@ pqServer* PVGUI_Module::getActiveServer() void PVGUI_Module::createPreferences() { // Paraview settings tab -// int aParaViewSettingsTab = addPreference( tr( "TIT_PVIEWSETTINGS" ) ); -// int aPanel = addPreference(QString(), aParaViewSettingsTab, LightApp_Preferences::UserDefined, "PARAVIS", ""); -// setPreferenceProperty(aPanel, "content", (qint64)(new PVGUI_ParaViewSettingsPane())); + int aParaViewSettingsTab = addPreference( tr( "TIT_PVIEWSETTINGS" ) ); + int aPanel = addPreference(QString(), aParaViewSettingsTab, LightApp_Preferences::UserDefined, "PARAVIS", ""); + setPreferenceProperty(aPanel, "content", (qint64)(new PVGUI_ParaViewSettingsPane())); // Paravis settings tab int aParaVisSettingsTab = addPreference( tr( "TIT_PVISSETTINGS" ) ); diff --git a/src/PVGUI/PVGUI_ParaViewSettingsPane.cxx b/src/PVGUI/PVGUI_ParaViewSettingsPane.cxx index 6b524e3e..18e98213 100644 --- a/src/PVGUI/PVGUI_ParaViewSettingsPane.cxx +++ b/src/PVGUI/PVGUI_ParaViewSettingsPane.cxx @@ -25,305 +25,293 @@ #include "PVGUI_ParaViewSettingsPane.h" #include "ui_pqOptionsDialog.h" -#include -#include -#include -#include "pqApplicationCore.h" -#include "pqApplicationOptions.h" -#include "pqGlobalRenderViewOptions.h" -#include "pqPluginManager.h" -#include "pqViewOptionsInterface.h" -#include "pqInterfaceTracker.h" +#include -#include -#include -#include -#include #include -class OptionsDialogModelItem -{ -public: - OptionsDialogModelItem(); - OptionsDialogModelItem(const QString &name); - ~OptionsDialogModelItem(); - - OptionsDialogModelItem *Parent; - QString Name; - QList Children; -}; - - -class OptionsDialogModel : public QAbstractItemModel -{ -public: - OptionsDialogModel(QObject *parent=0); - virtual ~OptionsDialogModel(); - - virtual int rowCount(const QModelIndex &parent=QModelIndex()) const; - virtual int columnCount(const QModelIndex &parent=QModelIndex()) const; - virtual QModelIndex index(int row, int column, - const QModelIndex &parent=QModelIndex()) const; - virtual QModelIndex parent(const QModelIndex &child) const; - - virtual QVariant data(const QModelIndex &index, - int role=Qt::DisplayRole) const; - - QModelIndex getIndex(const QString &path) const; - QString getPath(const QModelIndex &index) const; - void addPath(const QString &path); - bool removeIndex(const QModelIndex &index); - -private: - QModelIndex getIndex(OptionsDialogModelItem *item) const; - -private: - OptionsDialogModelItem *Root; -}; +//class OptionsDialogModelItem +//{ +//public: +// OptionsDialogModelItem(); +// OptionsDialogModelItem(const QString &name); +// ~OptionsDialogModelItem(); +// +// OptionsDialogModelItem *Parent; +// QString Name; +// QList Children; +//}; +// +// +//class OptionsDialogModel : public QAbstractItemModel +//{ +//public: +// OptionsDialogModel(QObject *parent=0); +// virtual ~OptionsDialogModel(); +// +// virtual int rowCount(const QModelIndex &parent=QModelIndex()) const; +// virtual int columnCount(const QModelIndex &parent=QModelIndex()) const; +// virtual QModelIndex index(int row, int column, +// const QModelIndex &parent=QModelIndex()) const; +// virtual QModelIndex parent(const QModelIndex &child) const; +// +// virtual QVariant data(const QModelIndex &index, +// int role=Qt::DisplayRole) const; +// +// QModelIndex getIndex(const QString &path) const; +// QString getPath(const QModelIndex &index) const; +// void addPath(const QString &path); +// bool removeIndex(const QModelIndex &index); +// +//private: +// QModelIndex getIndex(OptionsDialogModelItem *item) const; +// +//private: +// OptionsDialogModelItem *Root; +//}; -class OptionsDialogForm : public Ui::pqOptionsFrame +class OptionsDialogForm : public Ui::PVGUIOptionsFrame { public: OptionsDialogForm(); ~OptionsDialogForm(); - QMap Pages; - OptionsDialogModel *Model; - int ApplyUseCount; +// QMap Pages; +// OptionsDialogModel *Model; +// int ApplyUseCount; //bool ApplyNeeded; }; //---------------------------------------------------------------------------- -OptionsDialogModelItem::OptionsDialogModelItem() - : Name(), Children() -{ - this->Parent = 0; -} - -OptionsDialogModelItem::OptionsDialogModelItem(const QString &name) - : Name(name), Children() -{ - this->Parent = 0; -} - -OptionsDialogModelItem::~OptionsDialogModelItem() -{ - QList::Iterator iter = this->Children.begin(); - for( ; iter != this->Children.end(); ++iter) - { - delete *iter; - } -} +//OptionsDialogModelItem::OptionsDialogModelItem() +// : Name(), Children() +//{ +// this->Parent = 0; +//} +// +//OptionsDialogModelItem::OptionsDialogModelItem(const QString &name) +// : Name(name), Children() +//{ +// this->Parent = 0; +//} +// +//OptionsDialogModelItem::~OptionsDialogModelItem() +//{ +// QList::Iterator iter = this->Children.begin(); +// for( ; iter != this->Children.end(); ++iter) +// { +// delete *iter; +// } +//} //---------------------------------------------------------------------------- -OptionsDialogModel::OptionsDialogModel(QObject *parentObject) - : QAbstractItemModel(parentObject) -{ - this->Root = new OptionsDialogModelItem(); -} - -OptionsDialogModel::~OptionsDialogModel() -{ - delete this->Root; -} - -int OptionsDialogModel::rowCount(const QModelIndex &parentIndex) const -{ - OptionsDialogModelItem *item = this->Root; - if(parentIndex.isValid()) - { - item = reinterpret_cast( - parentIndex.internalPointer()); - } - - return item->Children.size(); -} - -int OptionsDialogModel::columnCount(const QModelIndex &) const -{ - return 1; -} - -QModelIndex OptionsDialogModel::index(int row, int column, - const QModelIndex &parentIndex) const -{ - OptionsDialogModelItem *item = this->Root; - if(parentIndex.isValid()) - { - item = reinterpret_cast( - parentIndex.internalPointer()); - } - - if(column == 0 && row >= 0 && row < item->Children.size()) - { - return this->createIndex(row, column, item->Children[row]); - } - - return QModelIndex(); -} - -QModelIndex OptionsDialogModel::parent(const QModelIndex &child) const -{ - if(child.isValid()) - { - OptionsDialogModelItem *item = - reinterpret_cast(child.internalPointer()); - return this->getIndex(item->Parent); - } - - return QModelIndex(); -} - -QVariant OptionsDialogModel::data(const QModelIndex &idx, int role) const -{ - if(idx.isValid()) - { - OptionsDialogModelItem *item = - reinterpret_cast(idx.internalPointer()); - if(role == Qt::DisplayRole || role == Qt::ToolTipRole) - { - return QVariant(item->Name); - } - } - - return QVariant(); -} - -QModelIndex OptionsDialogModel::getIndex(const QString &path) const -{ - OptionsDialogModelItem *item = this->Root; - QStringList names = path.split("."); - QStringList::Iterator iter = names.begin(); - for( ; item && iter != names.end(); ++iter) - { - OptionsDialogModelItem *child = 0; - QList::Iterator jter = item->Children.begin(); - for( ; jter != item->Children.end(); ++jter) - { - if((*jter)->Name == *iter) - { - child = *jter; - break; - } - } - - item = child; - } - - if(item && item != this->Root) - { - return this->getIndex(item); - } - - return QModelIndex(); -} - -QString OptionsDialogModel::getPath(const QModelIndex &idx) const -{ - if(idx.isValid()) - { - QString path; - OptionsDialogModelItem *item = - reinterpret_cast(idx.internalPointer()); - if(item) - { - path = item->Name; - item = item->Parent; - } - - while(item && item != this->Root) - { - path.prepend(".").prepend(item->Name); - item = item->Parent; - } - - return path; - } - - return QString(); -} - -void OptionsDialogModel::addPath(const QString &path) -{ - OptionsDialogModelItem *item = this->Root; - QStringList names = path.split("."); - QStringList::Iterator iter = names.begin(); - for( ; iter != names.end(); ++iter) - { - OptionsDialogModelItem *child = 0; - QList::Iterator jter = item->Children.begin(); - for( ; jter != item->Children.end(); ++jter) - { - if((*jter)->Name == *iter) - { - child = *jter; - break; - } - } - - if(!child) - { - child = new OptionsDialogModelItem(*iter); - child->Parent = item; - QModelIndex parentIndex = this->getIndex(item); - int row = item->Children.size(); - this->beginInsertRows(parentIndex, row, row); - item->Children.append(child); - this->endInsertRows(); - } - - item = child; - } -} - -bool OptionsDialogModel::removeIndex(const QModelIndex &idx) -{ - if(idx.isValid()) - { - OptionsDialogModelItem *item = - reinterpret_cast(idx.internalPointer()); - if(item->Children.size() == 0) - { - QModelIndex parentIndex = this->getIndex(item->Parent); - this->beginRemoveRows(parentIndex, idx.row(), idx.row()); - item->Parent->Children.removeAt(idx.row()); - this->endRemoveRows(); - delete item; - return true; - } - } - - return false; -} - -QModelIndex OptionsDialogModel::getIndex( - OptionsDialogModelItem *item) const -{ - if(item && item->Parent) - { - return this->createIndex(item->Parent->Children.indexOf(item), 0, item); - } - - return QModelIndex(); -} +//OptionsDialogModel::OptionsDialogModel(QObject *parentObject) +// : QAbstractItemModel(parentObject) +//{ +// this->Root = new OptionsDialogModelItem(); +//} +// +//OptionsDialogModel::~OptionsDialogModel() +//{ +// delete this->Root; +//} +// +//int OptionsDialogModel::rowCount(const QModelIndex &parentIndex) const +//{ +// OptionsDialogModelItem *item = this->Root; +// if(parentIndex.isValid()) +// { +// item = reinterpret_cast( +// parentIndex.internalPointer()); +// } +// +// return item->Children.size(); +//} +// +//int OptionsDialogModel::columnCount(const QModelIndex &) const +//{ +// return 1; +//} +// +//QModelIndex OptionsDialogModel::index(int row, int column, +// const QModelIndex &parentIndex) const +//{ +// OptionsDialogModelItem *item = this->Root; +// if(parentIndex.isValid()) +// { +// item = reinterpret_cast( +// parentIndex.internalPointer()); +// } +// +// if(column == 0 && row >= 0 && row < item->Children.size()) +// { +// return this->createIndex(row, column, item->Children[row]); +// } +// +// return QModelIndex(); +//} +// +//QModelIndex OptionsDialogModel::parent(const QModelIndex &child) const +//{ +// if(child.isValid()) +// { +// OptionsDialogModelItem *item = +// reinterpret_cast(child.internalPointer()); +// return this->getIndex(item->Parent); +// } +// +// return QModelIndex(); +//} +// +//QVariant OptionsDialogModel::data(const QModelIndex &idx, int role) const +//{ +// if(idx.isValid()) +// { +// OptionsDialogModelItem *item = +// reinterpret_cast(idx.internalPointer()); +// if(role == Qt::DisplayRole || role == Qt::ToolTipRole) +// { +// return QVariant(item->Name); +// } +// } +// +// return QVariant(); +//} +// +//QModelIndex OptionsDialogModel::getIndex(const QString &path) const +//{ +// OptionsDialogModelItem *item = this->Root; +// QStringList names = path.split("."); +// QStringList::Iterator iter = names.begin(); +// for( ; item && iter != names.end(); ++iter) +// { +// OptionsDialogModelItem *child = 0; +// QList::Iterator jter = item->Children.begin(); +// for( ; jter != item->Children.end(); ++jter) +// { +// if((*jter)->Name == *iter) +// { +// child = *jter; +// break; +// } +// } +// +// item = child; +// } +// +// if(item && item != this->Root) +// { +// return this->getIndex(item); +// } +// +// return QModelIndex(); +//} +// +//QString OptionsDialogModel::getPath(const QModelIndex &idx) const +//{ +// if(idx.isValid()) +// { +// QString path; +// OptionsDialogModelItem *item = +// reinterpret_cast(idx.internalPointer()); +// if(item) +// { +// path = item->Name; +// item = item->Parent; +// } +// +// while(item && item != this->Root) +// { +// path.prepend(".").prepend(item->Name); +// item = item->Parent; +// } +// +// return path; +// } +// +// return QString(); +//} +// +//void OptionsDialogModel::addPath(const QString &path) +//{ +// OptionsDialogModelItem *item = this->Root; +// QStringList names = path.split("."); +// QStringList::Iterator iter = names.begin(); +// for( ; iter != names.end(); ++iter) +// { +// OptionsDialogModelItem *child = 0; +// QList::Iterator jter = item->Children.begin(); +// for( ; jter != item->Children.end(); ++jter) +// { +// if((*jter)->Name == *iter) +// { +// child = *jter; +// break; +// } +// } +// +// if(!child) +// { +// child = new OptionsDialogModelItem(*iter); +// child->Parent = item; +// QModelIndex parentIndex = this->getIndex(item); +// int row = item->Children.size(); +// this->beginInsertRows(parentIndex, row, row); +// item->Children.append(child); +// this->endInsertRows(); +// } +// +// item = child; +// } +//} +// +//bool OptionsDialogModel::removeIndex(const QModelIndex &idx) +//{ +// if(idx.isValid()) +// { +// OptionsDialogModelItem *item = +// reinterpret_cast(idx.internalPointer()); +// if(item->Children.size() == 0) +// { +// QModelIndex parentIndex = this->getIndex(item->Parent); +// this->beginRemoveRows(parentIndex, idx.row(), idx.row()); +// item->Parent->Children.removeAt(idx.row()); +// this->endRemoveRows(); +// delete item; +// return true; +// } +// } +// +// return false; +//} +// +//QModelIndex OptionsDialogModel::getIndex( +// OptionsDialogModelItem *item) const +//{ +// if(item && item->Parent) +// { +// return this->createIndex(item->Parent->Children.indexOf(item), 0, item); +// } +// +// return QModelIndex(); +//} //---------------------------------------------------------------------------- OptionsDialogForm::OptionsDialogForm() - : Ui::pqOptionsFrame(), Pages() + : Ui::PVGUIOptionsFrame() { - this->Model = new OptionsDialogModel(); - this->ApplyUseCount = 0; - //this->ApplyNeeded = false; +// this->Model = new OptionsDialogModel(); +// this->ApplyUseCount = 0; +// //this->ApplyNeeded = false; } OptionsDialogForm::~OptionsDialogForm() { - delete this->Model; +// delete this->Model; } @@ -331,61 +319,73 @@ OptionsDialogForm::~OptionsDialogForm() PVGUI_ParaViewSettingsPane::PVGUI_ParaViewSettingsPane(QWidget *widgetParent) : QtxUserDefinedContent(widgetParent) { - this->Form = new OptionsDialogForm(); - this->Form->setupUi(this); - this->Form->PageNames->setModel(this->Form->Model); - - // Hide the tree widget header view. - this->Form->PageNames->header()->hide(); - - // Hide the apply and reset buttons until they are needed. - //this->Form->ApplyButton->setEnabled(false); - //this->Form->ResetButton->setEnabled(false); - //this->Form->ApplyButton->hide(); - //this->Form->ResetButton->hide(); - - this->connect(this->Form->PageNames->selectionModel(), - SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), - this, SLOT(changeCurrentPage())); - //this->connect(this->Form->ApplyButton, SIGNAL(clicked()), - // this, SLOT(applyChanges())); - //this->connect(this->Form->ResetButton, SIGNAL(clicked()), - // this, SLOT(resetChanges())); - //this->connect(this->Form->CloseButton, SIGNAL(clicked()), - // this, SLOT(accept())); - - // Code From pqApplicationOptionsDialog - //this->setApplyNeeded(true); - - pqApplicationOptions* appOptions = new pqApplicationOptions; - this->addOptions(appOptions); - - pqGlobalRenderViewOptions* renOptions = new pqGlobalRenderViewOptions; - this->addOptions(renOptions); + Form = new OptionsDialogForm(); + Form->setupUi(this); - QStringList pages = appOptions->getPageList(); - if(pages.size()) - { - this->setCurrentPage(pages[0]); - } - - /// Add panes as plugins are loaded. - QObject::connect(pqApplicationCore::instance()->getPluginManager(), - SIGNAL(guiInterfaceLoaded(QObject*)), - this, SLOT(pluginLoaded(QObject*))); + // Connect the button to the standard ParaView 4.2 setting reaction for now: + connect(Form->pvButton, SIGNAL(clicked()), + this, SLOT(onRequestParaviewSettings())); - // Load panes from already loaded plugins. - foreach (QObject* plugin_interface, pqApplicationCore::instance()->interfaceTracker()->interfaces()) - //pqApplicationCore::instance()->getPluginManager()->interfaces()) - { - this->pluginLoaded(plugin_interface); - } + +//// this->Form->PageNames->setModel(this->Form->Model); +// +// // Hide the tree widget header view. +// this->Form->PageNames->header()->hide(); +// +// // Hide the apply and reset buttons until they are needed. +// //this->Form->ApplyButton->setEnabled(false); +// //this->Form->ResetButton->setEnabled(false); +// //this->Form->ApplyButton->hide(); +// //this->Form->ResetButton->hide(); +// +// this->connect(this->Form->PageNames->selectionModel(), +// SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), +// this, SLOT(changeCurrentPage())); +// //this->connect(this->Form->ApplyButton, SIGNAL(clicked()), +// // this, SLOT(applyChanges())); +// //this->connect(this->Form->ResetButton, SIGNAL(clicked()), +// // this, SLOT(resetChanges())); +// //this->connect(this->Form->CloseButton, SIGNAL(clicked()), +// // this, SLOT(accept())); +// +// // Code From pqApplicationOptionsDialog +// //this->setApplyNeeded(true); +// +// pqApplicationOptions* appOptions = new pqApplicationOptions; +// this->addOptions(appOptions); +// +// pqGlobalRenderViewOptions* renOptions = new pqGlobalRenderViewOptions; +// this->addOptions(renOptions); +// +// QStringList pages = appOptions->getPageList(); +// if(pages.size()) +// { +// this->setCurrentPage(pages[0]); +// } +// +// /// Add panes as plugins are loaded. +// QObject::connect(pqApplicationCore::instance()->getPluginManager(), +// SIGNAL(guiInterfaceLoaded(QObject*)), +// this, SLOT(pluginLoaded(QObject*))); +// +// // Load panes from already loaded plugins. +// foreach (QObject* plugin_interface, pqApplicationCore::instance()->interfaceTracker()->interfaces()) +// //pqApplicationCore::instance()->getPluginManager()->interfaces()) +// { +// this->pluginLoaded(plugin_interface); +// } } PVGUI_ParaViewSettingsPane::~PVGUI_ParaViewSettingsPane() { delete this->Form; } + +void PVGUI_ParaViewSettingsPane::onRequestParaviewSettings() +{ + pqApplicationSettingsReaction::showApplicationSettingsDialog(); +} + /* bool PVGUI_ParaViewSettingsPane::isApplyNeeded() const { @@ -412,160 +412,160 @@ void PVGUI_ParaViewSettingsPane::setApplyNeeded(bool applyNeeded) } } */ -void PVGUI_ParaViewSettingsPane::addOptions(const QString &path, pqOptionsPage *options) -{ - if(!options) - { - return; - } - - // See if the page is a container. - pqOptionsContainer *container = qobject_cast(options); - if(!container && path.isEmpty()) - { - return; - } - - // See if the page/container uses the apply button. - if(options->isApplyUsed()) - { - this->Form->ApplyUseCount++; - /*if(this->Form->ApplyUseCount == 1) - { - //this->Form->ApplyButton->show(); - //this->Form->ResetButton->show(); - //QObject::connect(this, SIGNAL(accepted()), this, SLOT(applyChanges())); - }*/ - - //this->connect(options, SIGNAL(changesAvailable()), - //this, SLOT(enableButtons())); - } - - // Add the widget to the stack. - this->Form->Stack->addWidget(options); - - // Add the page(s) to the map and the model. - if(container) - { - // If the path is not empty, use it as the page prefix. - QString prefix; - if(!path.isEmpty()) - { - prefix = path; - prefix.append("."); - } - - container->setPagePrefix(prefix); - - // Get the list of pages from the container. - QStringList pathList = container->getPageList(); - QStringList::Iterator iter = pathList.begin(); - for( ; iter != pathList.end(); ++iter) - { - this->Form->Pages.insert(prefix + *iter, options); - this->Form->Model->addPath(prefix + *iter); - } - } - else - { - this->Form->Pages.insert(path, options); - this->Form->Model->addPath(path); - } -} - -void PVGUI_ParaViewSettingsPane::addOptions(pqOptionsContainer *options) -{ - this->addOptions(QString(), options); -} - -void PVGUI_ParaViewSettingsPane::removeOptions(pqOptionsPage *options) -{ - if(!options) - { - return; - } - - // Remove the widget from the stack. - this->Form->Stack->removeWidget(options); - - // See if the options use the apply button. - if(options->isApplyUsed()) - { - this->Form->ApplyUseCount--; - /*if(this->Form->ApplyUseCount == 0) - { - //this->Form->ApplyNeeded = false; - //this->Form->ApplyButton->setEnabled(false); - //this->Form->ResetButton->setEnabled(false); - //this->Form->ApplyButton->hide(); - //this->Form->ResetButton->hide(); - //QObject::disconnect(this, SIGNAL(accepted()), this, SLOT(applyChanges())); - }*/ - - this->disconnect(options, 0, this, 0); - } - - // Search the map for the paths to remove. - QMap::Iterator iter = this->Form->Pages.begin(); - while(iter != this->Form->Pages.end()) - { - if(*iter == options) - { - QString path = iter.key(); - iter = this->Form->Pages.erase(iter); - - // Remove the item from the tree model as well. - QModelIndex index = this->Form->Model->getIndex(path); - QPersistentModelIndex parentIndex = index.parent(); - if(this->Form->Model->removeIndex(index)) - { - // Remove any empty parent items. - while(parentIndex.isValid() && - this->Form->Model->rowCount(parentIndex) == 0) - { - index = parentIndex; - parentIndex = index.parent(); - - // Make sure the index path isn't in the map. - path = this->Form->Model->getPath(index); - if(this->Form->Pages.find(path) == this->Form->Pages.end()) - { - if(!this->Form->Model->removeIndex(index)) - { - break; - } - } - } - } - } - else - { - ++iter; - } - } -} - -void PVGUI_ParaViewSettingsPane::setCurrentPage(const QString &path) -{ - QModelIndex current = this->Form->Model->getIndex(path); - this->Form->PageNames->setCurrentIndex(current); -} +//void PVGUI_ParaViewSettingsPane::addOptions(const QString &path, pqOptionsPage *options) +//{ +// if(!options) +// { +// return; +// } +// +// // See if the page is a container. +// pqOptionsContainer *container = qobject_cast(options); +// if(!container && path.isEmpty()) +// { +// return; +// } +// +// // See if the page/container uses the apply button. +// if(options->isApplyUsed()) +// { +// this->Form->ApplyUseCount++; +// /*if(this->Form->ApplyUseCount == 1) +// { +// //this->Form->ApplyButton->show(); +// //this->Form->ResetButton->show(); +// //QObject::connect(this, SIGNAL(accepted()), this, SLOT(applyChanges())); +// }*/ +// +// //this->connect(options, SIGNAL(changesAvailable()), +// //this, SLOT(enableButtons())); +// } +// +// // Add the widget to the stack. +// this->Form->Stack->addWidget(options); +// +// // Add the page(s) to the map and the model. +// if(container) +// { +// // If the path is not empty, use it as the page prefix. +// QString prefix; +// if(!path.isEmpty()) +// { +// prefix = path; +// prefix.append("."); +// } +// +// container->setPagePrefix(prefix); +// +// // Get the list of pages from the container. +// QStringList pathList = container->getPageList(); +// QStringList::Iterator iter = pathList.begin(); +// for( ; iter != pathList.end(); ++iter) +// { +// this->Form->Pages.insert(prefix + *iter, options); +// this->Form->Model->addPath(prefix + *iter); +// } +// } +// else +// { +// this->Form->Pages.insert(path, options); +// this->Form->Model->addPath(path); +// } +//} +// +//void PVGUI_ParaViewSettingsPane::addOptions(pqOptionsContainer *options) +//{ +// this->addOptions(QString(), options); +//} +// +//void PVGUI_ParaViewSettingsPane::removeOptions(pqOptionsPage *options) +//{ +// if(!options) +// { +// return; +// } +// +// // Remove the widget from the stack. +// this->Form->Stack->removeWidget(options); +// +// // See if the options use the apply button. +// if(options->isApplyUsed()) +// { +// this->Form->ApplyUseCount--; +// /*if(this->Form->ApplyUseCount == 0) +// { +// //this->Form->ApplyNeeded = false; +// //this->Form->ApplyButton->setEnabled(false); +// //this->Form->ResetButton->setEnabled(false); +// //this->Form->ApplyButton->hide(); +// //this->Form->ResetButton->hide(); +// //QObject::disconnect(this, SIGNAL(accepted()), this, SLOT(applyChanges())); +// }*/ +// +// this->disconnect(options, 0, this, 0); +// } +// +// // Search the map for the paths to remove. +// QMap::Iterator iter = this->Form->Pages.begin(); +// while(iter != this->Form->Pages.end()) +// { +// if(*iter == options) +// { +// QString path = iter.key(); +// iter = this->Form->Pages.erase(iter); +// +// // Remove the item from the tree model as well. +// QModelIndex index = this->Form->Model->getIndex(path); +// QPersistentModelIndex parentIndex = index.parent(); +// if(this->Form->Model->removeIndex(index)) +// { +// // Remove any empty parent items. +// while(parentIndex.isValid() && +// this->Form->Model->rowCount(parentIndex) == 0) +// { +// index = parentIndex; +// parentIndex = index.parent(); +// +// // Make sure the index path isn't in the map. +// path = this->Form->Model->getPath(index); +// if(this->Form->Pages.find(path) == this->Form->Pages.end()) +// { +// if(!this->Form->Model->removeIndex(index)) +// { +// break; +// } +// } +// } +// } +// } +// else +// { +// ++iter; +// } +// } +//} +// +//void PVGUI_ParaViewSettingsPane::setCurrentPage(const QString &path) +//{ +// QModelIndex current = this->Form->Model->getIndex(path); +// this->Form->PageNames->setCurrentIndex(current); +//} void PVGUI_ParaViewSettingsPane::applyChanges() { //if(this->Form->ApplyNeeded) // { - BEGIN_UNDO_SET("Changed View Settings"); - emit this->aboutToApplyChanges(); - QMap::Iterator iter = this->Form->Pages.begin(); - for( ; iter != this->Form->Pages.end(); ++iter) - { - (*iter)->applyChanges(); - } - - //this->setApplyNeeded(false); - emit this->appliedChanges(); - END_UNDO_SET(); +// BEGIN_UNDO_SET("Changed View Settings"); +// emit this->aboutToApplyChanges(); +// QMap::Iterator iter = this->Form->Pages.begin(); +// for( ; iter != this->Form->Pages.end(); ++iter) +// { +// (*iter)->applyChanges(); +// } +// +// //this->setApplyNeeded(false); +// emit this->appliedChanges(); +// END_UNDO_SET(); //} } @@ -573,68 +573,68 @@ void PVGUI_ParaViewSettingsPane::resetChanges() { //if(this->Form->ApplyNeeded) //{ - QMap::Iterator iter = this->Form->Pages.begin(); - for( ; iter != this->Form->Pages.end(); ++iter) - { - (*iter)->resetChanges(); - } +// QMap::Iterator iter = this->Form->Pages.begin(); +// for( ; iter != this->Form->Pages.end(); ++iter) +// { +// (*iter)->resetChanges(); +// } //this->setApplyNeeded(false); //} } -void PVGUI_ParaViewSettingsPane::changeCurrentPage() -{ - // Get the current index from the view. - QModelIndex current = this->Form->PageNames->currentIndex(); - - // Look up the path for the current index. - QString path = this->Form->Model->getPath(current); - QMap::Iterator iter = this->Form->Pages.find(path); - if(iter == this->Form->Pages.end()) - { - // If no page is found, show the blank page. - this->Form->Stack->setCurrentWidget(this->Form->BlankPage); - } - else - { - this->Form->Stack->setCurrentWidget(*iter); - pqOptionsContainer *container = qobject_cast(*iter); - if(container) - { - // Get the path prefix from the container. - QString prefix = container->getPagePrefix(); - if(!prefix.isEmpty()) - { - // Remove the prefix from the path. - path.remove(0, prefix.length()); - } - - // Set the page on the container object. - container->setPage(path); - } - } -} - -//----------------------------------------------------------------------------- -void PVGUI_ParaViewSettingsPane::pluginLoaded(QObject* iface) -{ - pqViewOptionsInterface* viewOptions = - qobject_cast(iface); - if (viewOptions) - { - foreach(QString viewtype, viewOptions->viewTypes()) - { - // Try to create global view options - pqOptionsContainer* globalOptions = - viewOptions->createGlobalViewOptions(viewtype, this); - if (globalOptions) - { - this->addOptions(globalOptions); - } - } - } -} +//void PVGUI_ParaViewSettingsPane::changeCurrentPage() +//{ +// // Get the current index from the view. +// QModelIndex current = this->Form->PageNames->currentIndex(); +// +// // Look up the path for the current index. +// QString path = this->Form->Model->getPath(current); +// QMap::Iterator iter = this->Form->Pages.find(path); +// if(iter == this->Form->Pages.end()) +// { +// // If no page is found, show the blank page. +// this->Form->Stack->setCurrentWidget(this->Form->BlankPage); +// } +// else +// { +// this->Form->Stack->setCurrentWidget(*iter); +// pqOptionsContainer *container = qobject_cast(*iter); +// if(container) +// { +// // Get the path prefix from the container. +// QString prefix = container->getPagePrefix(); +// if(!prefix.isEmpty()) +// { +// // Remove the prefix from the path. +// path.remove(0, prefix.length()); +// } +// +// // Set the page on the container object. +// container->setPage(path); +// } +// } +//} +// +////----------------------------------------------------------------------------- +//void PVGUI_ParaViewSettingsPane::pluginLoaded(QObject* iface) +//{ +// pqViewOptionsInterface* viewOptions = +// qobject_cast(iface); +// if (viewOptions) +// { +// foreach(QString viewtype, viewOptions->viewTypes()) +// { +// // Try to create global view options +// pqOptionsContainer* globalOptions = +// viewOptions->createGlobalViewOptions(viewtype, this); +// if (globalOptions) +// { +// this->addOptions(globalOptions); +// } +// } +// } +//} void PVGUI_ParaViewSettingsPane::store(QtxResourceMgr* , QtxPreferenceMgr* ) { diff --git a/src/PVGUI/PVGUI_ParaViewSettingsPane.h b/src/PVGUI/PVGUI_ParaViewSettingsPane.h index a0fcc0d9..193e3184 100644 --- a/src/PVGUI/PVGUI_ParaViewSettingsPane.h +++ b/src/PVGUI/PVGUI_ParaViewSettingsPane.h @@ -46,62 +46,20 @@ public: PVGUI_ParaViewSettingsPane(QWidget *parent=0); virtual ~PVGUI_ParaViewSettingsPane(); - /// \brief - /// Gets whether or not there are changes to apply. - /// \return - /// True if there are changes to apply. - //bool isApplyNeeded() const; - - /// \brief - /// Sets whether or not there are changes to apply. - /// \param applyNeeded True if there are changes to apply. - //void setApplyNeeded(bool applyNeeded); - - /// \brief - /// Adds a page to the options dialog. - /// - /// When the options object is a page container, the path parameter - /// becomes the path prefix for the container pages. - /// - /// \param path The name hierarchy for the options page. - /// \param options The options page. - void addOptions(const QString &path, pqOptionsPage *options); - - /// \brief - /// Adds a container to the options dialog. - /// - /// Each page listed for the container is added to the root of the - /// selection tree. - /// - /// \param options The options container to add. - void addOptions(pqOptionsContainer *options); - - /// \brief - /// Removes the options page from the options dialog. - /// - /// The page name is removed from the selection tree. If the page - /// is an options container, all the names are removed. - /// - /// \param options The options page/container to remove. - void removeOptions(pqOptionsPage *options); - /// Implementation of QtxUserDefinedContent interface virtual void store(QtxResourceMgr* theRes, QtxPreferenceMgr* thePref); virtual void retrieve(QtxResourceMgr* theRes, QtxPreferenceMgr* thePref); public slots: - /// \brief - /// Sets the current options page. - /// \param path The name of the options page to show. - void setCurrentPage(const QString &path); - /// Calls each page to apply any changes. void applyChanges(); /// Calls each page to reset any changes. void resetChanges(); + void onRequestParaviewSettings(); + signals: /// Emitted before the option changes are applied. void aboutToApplyChanges(); @@ -109,13 +67,6 @@ signals: /// Emitted after the option changes have been applied. void appliedChanges(); -protected slots: - void pluginLoaded(QObject* plugin_interface); - -private slots: - /// Changes the current page to match the user selection. - void changeCurrentPage(); - private: OptionsDialogForm *Form; /// Stores the form and class data. }; diff --git a/src/PVGUI/ui_pqOptionsDialog.h b/src/PVGUI/ui_pqOptionsDialog.h index 638f7b70..b186890e 100644 --- a/src/PVGUI/ui_pqOptionsDialog.h +++ b/src/PVGUI/ui_pqOptionsDialog.h @@ -24,10 +24,11 @@ #include #include #include +#include QT_BEGIN_NAMESPACE -class Ui_pqOptionsFrame +class Ui_PVGUIOptionsFrame { public: QGridLayout *gridLayout; @@ -40,13 +41,14 @@ public: QWidget *BlankPage; QTreeView *PageNames; QFrame *Separator; + QPushButton * pvButton; - void setupUi(QWidget *pqOptionsFrame) + void setupUi(QWidget *pvguiOptionsFrame) { - if (pqOptionsFrame->objectName().isEmpty()) - pqOptionsFrame->setObjectName(QString::fromUtf8("pqOptionsFrame")); - pqOptionsFrame->resize(514, 382); - gridLayout = new QGridLayout(pqOptionsFrame); + if (pvguiOptionsFrame->objectName().isEmpty()) + pvguiOptionsFrame->setObjectName(QString::fromUtf8("pvguiOptionsFrame")); + pvguiOptionsFrame->resize(514, 382); + gridLayout = new QGridLayout(pvguiOptionsFrame); #ifndef Q_OS_MAC gridLayout->setSpacing(6); #endif @@ -54,90 +56,93 @@ public: gridLayout->setMargin(9); #endif gridLayout->setObjectName(QString::fromUtf8("gridLayout")); - hboxLayout = new QHBoxLayout(); -#ifndef Q_OS_MAC - hboxLayout->setSpacing(6); -#endif - hboxLayout->setMargin(4); - hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); - spacerItem = new QSpacerItem(0, 26, QSizePolicy::Expanding, QSizePolicy::Minimum); - - hboxLayout->addItem(spacerItem); - - //ApplyButton = new QPushButton(pqOptionsFrame); - //ApplyButton->setObjectName(QString::fromUtf8("ApplyButton")); - - //hboxLayout->addWidget(ApplyButton); - - //ResetButton = new QPushButton(pqOptionsFrame); - //ResetButton->setObjectName(QString::fromUtf8("ResetButton")); - - //hboxLayout->addWidget(ResetButton); - - //CloseButton = new QPushButton(pqOptionsFrame); - //CloseButton->setObjectName(QString::fromUtf8("CloseButton")); - //CloseButton->setDefault(true); - - //hboxLayout->addWidget(CloseButton); - - - gridLayout->addLayout(hboxLayout, 2, 0, 1, 2); - - Stack = new QStackedWidget(pqOptionsFrame); - Stack->setObjectName(QString::fromUtf8("Stack")); - BlankPage = new QWidget(); - BlankPage->setObjectName(QString::fromUtf8("BlankPage")); - Stack->addWidget(BlankPage); - - gridLayout->addWidget(Stack, 0, 1, 1, 1); - - PageNames = new QTreeView(pqOptionsFrame); - PageNames->setObjectName(QString::fromUtf8("PageNames")); - QSizePolicy sizePolicy(static_cast(0), static_cast(7)); - sizePolicy.setHorizontalStretch(0); - sizePolicy.setVerticalStretch(0); - sizePolicy.setHeightForWidth(PageNames->sizePolicy().hasHeightForWidth()); - PageNames->setSizePolicy(sizePolicy); - PageNames->setMinimumSize(QSize(160, 0)); - PageNames->setMaximumSize(QSize(160, 16777215)); - - gridLayout->addWidget(PageNames, 0, 0, 1, 1); - - Separator = new QFrame(pqOptionsFrame); - Separator->setObjectName(QString::fromUtf8("Separator")); - Separator->setFrameShape(QFrame::HLine); - Separator->setFrameShadow(QFrame::Sunken); - - gridLayout->addWidget(Separator, 1, 0, 1, 2); - - //QWidget::setTabOrder(CloseButton, PageNames); - //QWidget::setTabOrder(PageNames, ApplyButton); - //QWidget::setTabOrder(ApplyButton, ResetButton); - - retranslateUi(pqOptionsFrame); - - Stack->setCurrentIndex(0); - - QMetaObject::connectSlotsByName(pqOptionsFrame); + pvButton = new QPushButton("Edit ParaView settings ...", pvguiOptionsFrame); + gridLayout->addWidget(pvButton, 0, 0, 1, 1); +// hboxLayout = new QHBoxLayout(); +//#ifndef Q_OS_MAC +// hboxLayout->setSpacing(6); +//#endif +// hboxLayout->setMargin(4); +// hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); +// spacerItem = new QSpacerItem(0, 26, QSizePolicy::Expanding, QSizePolicy::Minimum); +// +// hboxLayout->addItem(spacerItem); +// +// //ApplyButton = new QPushButton(pqOptionsFrame); +// //ApplyButton->setObjectName(QString::fromUtf8("ApplyButton")); +// +// //hboxLayout->addWidget(ApplyButton); +// +// //ResetButton = new QPushButton(pqOptionsFrame); +// //ResetButton->setObjectName(QString::fromUtf8("ResetButton")); +// +// //hboxLayout->addWidget(ResetButton); +// +// //CloseButton = new QPushButton(pqOptionsFrame); +// //CloseButton->setObjectName(QString::fromUtf8("CloseButton")); +// //CloseButton->setDefault(true); +// +// //hboxLayout->addWidget(CloseButton); +// +// +// gridLayout->addLayout(hboxLayout, 2, 0, 1, 2); +// +// Stack = new QStackedWidget(pqOptionsFrame); +// Stack->setObjectName(QString::fromUtf8("Stack")); +// BlankPage = new QWidget(); +// BlankPage->setObjectName(QString::fromUtf8("BlankPage")); +// Stack->addWidget(BlankPage); +// +// gridLayout->addWidget(Stack, 0, 1, 1, 1); +// +// PageNames = new QTreeView(pqOptionsFrame); +// PageNames->setObjectName(QString::fromUtf8("PageNames")); +// QSizePolicy sizePolicy(static_cast(0), static_cast(7)); +// sizePolicy.setHorizontalStretch(0); +// sizePolicy.setVerticalStretch(0); +// sizePolicy.setHeightForWidth(PageNames->sizePolicy().hasHeightForWidth()); +// PageNames->setSizePolicy(sizePolicy); +// PageNames->setMinimumSize(QSize(160, 0)); +// PageNames->setMaximumSize(QSize(160, 16777215)); +// +// gridLayout->addWidget(PageNames, 0, 0, 1, 1); +// +// Separator = new QFrame(pqOptionsFrame); +// Separator->setObjectName(QString::fromUtf8("Separator")); +// Separator->setFrameShape(QFrame::HLine); +// Separator->setFrameShadow(QFrame::Sunken); +// +// gridLayout->addWidget(Separator, 1, 0, 1, 2); +// +// //QWidget::setTabOrder(CloseButton, PageNames); +// //QWidget::setTabOrder(PageNames, ApplyButton); +// //QWidget::setTabOrder(ApplyButton, ResetButton); +// +// retranslateUi(pqOptionsFrame); +// +// Stack->setCurrentIndex(0); + + + QMetaObject::connectSlotsByName(pvguiOptionsFrame); } // setupUi - void retranslateUi(QWidget *pqOptionsFrame) + void retranslateUi(QWidget *pvguiOptionsFrame) { - pqOptionsFrame->setWindowTitle(QApplication::translate("pqOptionsFrame", "Options", 0, QApplication::UnicodeUTF8)); + pvguiOptionsFrame->setWindowTitle(QApplication::translate("pvguiOptionsFrame", "Options", 0, QApplication::UnicodeUTF8)); //ApplyButton->setText(QApplication::translate("pqOptionsFrame", "&Apply", 0, QApplication::UnicodeUTF8)); //ResetButton->setText(QApplication::translate("pqOptionsFrame", "&Reset", 0, QApplication::UnicodeUTF8)); //CloseButton->setText(QApplication::translate("pqOptionsFrame", "&Ok", 0, QApplication::UnicodeUTF8)); #ifndef QT_NO_WHATSTHIS - PageNames->setWhatsThis(QApplication::translate("pqOptionsFrame", "Select a category to show the options for that category.", 0, QApplication::UnicodeUTF8)); +// PageNames->setWhatsThis(QApplication::translate("pvguiOptionsFrame", "Select a category to show the options for that category.", 0, QApplication::UnicodeUTF8)); #endif // QT_NO_WHATSTHIS - Q_UNUSED(pqOptionsFrame); + Q_UNUSED(pvguiOptionsFrame); } // retranslateUi }; namespace Ui { - class pqOptionsFrame: public Ui_pqOptionsFrame {}; + class PVGUIOptionsFrame: public Ui_PVGUIOptionsFrame {}; } // namespace Ui QT_END_NAMESPACE -- 2.39.2