mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Also refactored slotCreateCommandObject
This commit is contained in:
@@ -60,6 +60,7 @@ ${CEE_CURRENT_LIST_DIR}RimGeoMechResultDefinition.h
|
|||||||
${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.h
|
${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimView.h
|
${CEE_CURRENT_LIST_DIR}RimView.h
|
||||||
${CEE_CURRENT_LIST_DIR}RimCase.h
|
${CEE_CURRENT_LIST_DIR}RimCase.h
|
||||||
|
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set (SOURCE_GROUP_SOURCE_FILES
|
set (SOURCE_GROUP_SOURCE_FILES
|
||||||
@@ -118,6 +119,8 @@ ${CEE_CURRENT_LIST_DIR}RimGeoMechResultDefinition.cpp
|
|||||||
${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.cpp
|
${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimView.cpp
|
${CEE_CURRENT_LIST_DIR}RimView.cpp
|
||||||
${CEE_CURRENT_LIST_DIR}RimCase.cpp
|
${CEE_CURRENT_LIST_DIR}RimCase.cpp
|
||||||
|
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.cpp
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND CODE_HEADER_FILES
|
list(APPEND CODE_HEADER_FILES
|
||||||
|
|||||||
129
ApplicationCode/ProjectDataModel/RimTreeViewStateSerializer.cpp
Normal file
129
ApplicationCode/ProjectDataModel/RimTreeViewStateSerializer.cpp
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
#include "RimTreeViewStateSerializer.h"
|
||||||
|
#include <QTreeView>
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void setExpandedState(QStringList& nodes, QTreeView* view, QAbstractItemModel* model,
|
||||||
|
const QModelIndex startIndex, QString path)
|
||||||
|
{
|
||||||
|
path += QString::number(startIndex.row()) + QString::number(startIndex.column());
|
||||||
|
for (int i = 0; i < model->rowCount(startIndex); ++i)
|
||||||
|
{
|
||||||
|
QModelIndex nextIndex = model->index(i, 0, startIndex);
|
||||||
|
QString nextPath = path + QString::number(nextIndex.row()) + QString::number(nextIndex.column());
|
||||||
|
if(!nodes.contains(nextPath))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
setExpandedState(nodes, view, model, model->index(i, 0, startIndex), path);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nodes.contains(path))
|
||||||
|
{
|
||||||
|
view->setExpanded( startIndex.sibling(startIndex.row(), 0), true );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void storeExpandedState(QStringList & nodes, const QTreeView * view, QAbstractItemModel * model,
|
||||||
|
const QModelIndex startIndex, QString path)
|
||||||
|
{
|
||||||
|
path += QString::number(startIndex.row()) + QString::number(startIndex.column());
|
||||||
|
for (int i = 0; i < model->rowCount(startIndex); ++i)
|
||||||
|
{
|
||||||
|
if(!view->isExpanded(model->index(i, 0, startIndex)))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
storeExpandedState(nodes, view, model, model->index(i, 0, startIndex), path);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (view->isExpanded(startIndex))
|
||||||
|
{
|
||||||
|
nodes << path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimTreeViewStateSerializer::applyTreeViewStateFromString( QTreeView* treeView, const QString& treeViewState)
|
||||||
|
{
|
||||||
|
if (treeView->model())
|
||||||
|
{
|
||||||
|
treeView->collapseAll();
|
||||||
|
|
||||||
|
QStringList nodes = treeViewState.split(";");
|
||||||
|
|
||||||
|
QString path;
|
||||||
|
setExpandedState(nodes, treeView, treeView->model(), QModelIndex(), path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimTreeViewStateSerializer::storeTreeViewStateToString(const QTreeView* treeView, QString& treeViewState)
|
||||||
|
{
|
||||||
|
if (treeView->model())
|
||||||
|
{
|
||||||
|
QStringList nodes;
|
||||||
|
QString path;
|
||||||
|
|
||||||
|
storeExpandedState(nodes, treeView, treeView->model(), QModelIndex(), path);
|
||||||
|
|
||||||
|
treeViewState = nodes.join(";");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
/// Find index based of an encode QString <row> <column>;<row> <column>;...;<row> <column>
|
||||||
|
/// Set the decoded index as current index in the QAbstractItemView
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QModelIndex RimTreeViewStateSerializer::getModelIndexFromString(QAbstractItemModel* model, const QString& currentIndexString)
|
||||||
|
{
|
||||||
|
QStringList modelIndexStringList = currentIndexString.split(";");
|
||||||
|
|
||||||
|
QModelIndex mi;
|
||||||
|
|
||||||
|
foreach (QString modelIndexString, modelIndexStringList)
|
||||||
|
{
|
||||||
|
QStringList items = modelIndexString.split(" ");
|
||||||
|
|
||||||
|
if (items.size() != 2) continue;
|
||||||
|
|
||||||
|
int row = items[0].toInt();
|
||||||
|
int col = items[1].toInt();
|
||||||
|
|
||||||
|
mi = model->index(row, col, mi);
|
||||||
|
}
|
||||||
|
|
||||||
|
return mi;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
/// Store path to model index in item view using follwoing encoding into a QString <row> <column>;<row> <column>;...;<row> <column>
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RimTreeViewStateSerializer::encodeStringFromModelIndex(const QModelIndex mi, QString& encodedModelIndex)
|
||||||
|
{
|
||||||
|
if (!mi.isValid()) return;
|
||||||
|
|
||||||
|
QModelIndex localModelIdx = mi;
|
||||||
|
|
||||||
|
while (localModelIdx.isValid())
|
||||||
|
{
|
||||||
|
if (encodedModelIndex.isEmpty())
|
||||||
|
{
|
||||||
|
encodedModelIndex = QString("%1 %2").arg(localModelIdx.row()).arg(localModelIdx.column()) + encodedModelIndex;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
encodedModelIndex = QString("%1 %2;").arg(localModelIdx.row()).arg(localModelIdx.column()) + encodedModelIndex;
|
||||||
|
}
|
||||||
|
localModelIdx = localModelIdx.parent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QModelIndex>
|
||||||
|
|
||||||
|
class QTreeView;
|
||||||
|
class QString;
|
||||||
|
class QAbstractItemModel;
|
||||||
|
|
||||||
|
class RimTreeViewStateSerializer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static void applyTreeViewStateFromString(QTreeView* treeView, const QString& treeViewState);
|
||||||
|
static void storeTreeViewStateToString (const QTreeView* treeView, QString& treeViewState);
|
||||||
|
|
||||||
|
static QModelIndex getModelIndexFromString(QAbstractItemModel* model, const QString& currentIndexString);
|
||||||
|
static void encodeStringFromModelIndex(const QModelIndex mi, QString& currentIndexString);
|
||||||
|
};
|
||||||
|
|
||||||
@@ -74,6 +74,7 @@
|
|||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include "RimTreeViewStateSerializer.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -627,7 +628,7 @@ void RimUiTreeView::slotExecuteScriptForSelectedCases()
|
|||||||
if (!action) return;
|
if (!action) return;
|
||||||
|
|
||||||
QString encodedModelIndex = action->data().toString();
|
QString encodedModelIndex = action->data().toString();
|
||||||
QModelIndex mi = RimUiTreeView::getModelIndexFromString(model(), encodedModelIndex);
|
QModelIndex mi = RimTreeViewStateSerializer::getModelIndexFromString(model(), encodedModelIndex);
|
||||||
|
|
||||||
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
RimUiTreeModelPdm* myModel = dynamic_cast<RimUiTreeModelPdm*>(model());
|
||||||
if (!myModel) return;
|
if (!myModel) return;
|
||||||
@@ -1306,130 +1307,6 @@ void RimUiTreeView::mousePressEvent(QMouseEvent* mouseEvent)
|
|||||||
QTreeView::mousePressEvent(mouseEvent);
|
QTreeView::mousePressEvent(mouseEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void setExpandedState(QStringList& nodes, QTreeView* view, QAbstractItemModel* model,
|
|
||||||
const QModelIndex startIndex, QString path)
|
|
||||||
{
|
|
||||||
path += QString::number(startIndex.row()) + QString::number(startIndex.column());
|
|
||||||
for (int i = 0; i < model->rowCount(startIndex); ++i)
|
|
||||||
{
|
|
||||||
QModelIndex nextIndex = model->index(i, 0, startIndex);
|
|
||||||
QString nextPath = path + QString::number(nextIndex.row()) + QString::number(nextIndex.column());
|
|
||||||
if(!nodes.contains(nextPath))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
setExpandedState(nodes, view, model, model->index(i, 0, startIndex), path);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nodes.contains(path))
|
|
||||||
{
|
|
||||||
view->setExpanded( startIndex.sibling(startIndex.row(), 0), true );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void storeExpandedState(QStringList & nodes, QTreeView * view, QAbstractItemModel * model,
|
|
||||||
const QModelIndex startIndex, QString path)
|
|
||||||
{
|
|
||||||
path += QString::number(startIndex.row()) + QString::number(startIndex.column());
|
|
||||||
for (int i = 0; i < model->rowCount(startIndex); ++i)
|
|
||||||
{
|
|
||||||
if(!view->isExpanded(model->index(i, 0, startIndex)))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
storeExpandedState(nodes, view, model, model->index(i, 0, startIndex), path);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (view->isExpanded(startIndex))
|
|
||||||
{
|
|
||||||
nodes << path;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimUiTreeView::applyTreeViewStateFromString(const QString& treeViewState)
|
|
||||||
{
|
|
||||||
if (this->model())
|
|
||||||
{
|
|
||||||
this->collapseAll();
|
|
||||||
|
|
||||||
QStringList nodes = treeViewState.split(";");
|
|
||||||
|
|
||||||
QString path;
|
|
||||||
setExpandedState(nodes, this, this->model(), QModelIndex(), path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimUiTreeView::storeTreeViewStateToString(QString& treeViewState)
|
|
||||||
{
|
|
||||||
if (this->model())
|
|
||||||
{
|
|
||||||
QStringList nodes;
|
|
||||||
QString path;
|
|
||||||
|
|
||||||
storeExpandedState(nodes, this, this->model(), QModelIndex(), path);
|
|
||||||
|
|
||||||
treeViewState = nodes.join(";");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
/// Find index based of an encode QString <row> <column>;<row> <column>;...;<row> <column>
|
|
||||||
/// Set the decoded index as current index in the QAbstractItemView
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
QModelIndex RimUiTreeView::getModelIndexFromString(QAbstractItemModel* model, const QString& currentIndexString)
|
|
||||||
{
|
|
||||||
QStringList modelIndexStringList = currentIndexString.split(";");
|
|
||||||
|
|
||||||
QModelIndex mi;
|
|
||||||
|
|
||||||
foreach (QString modelIndexString, modelIndexStringList)
|
|
||||||
{
|
|
||||||
QStringList items = modelIndexString.split(" ");
|
|
||||||
|
|
||||||
if (items.size() != 2) continue;
|
|
||||||
|
|
||||||
int row = items[0].toInt();
|
|
||||||
int col = items[1].toInt();
|
|
||||||
|
|
||||||
mi = model->index(row, col, mi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return mi;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
/// Store path to model index in item view using follwoing encoding into a QString <row> <column>;<row> <column>;...;<row> <column>
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RimUiTreeView::encodeStringFromModelIndex(const QModelIndex mi, QString& encodedModelIndex)
|
|
||||||
{
|
|
||||||
if (!mi.isValid()) return;
|
|
||||||
|
|
||||||
QModelIndex localModelIdx = mi;
|
|
||||||
|
|
||||||
while (localModelIdx.isValid())
|
|
||||||
{
|
|
||||||
if (encodedModelIndex.isEmpty())
|
|
||||||
{
|
|
||||||
encodedModelIndex = QString("%1 %2").arg(localModelIdx.row()).arg(localModelIdx.column()) + encodedModelIndex;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
encodedModelIndex = QString("%1 %2;").arg(localModelIdx.row()).arg(localModelIdx.column()) + encodedModelIndex;
|
|
||||||
}
|
|
||||||
localModelIdx = localModelIdx.parent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
@@ -1603,7 +1480,7 @@ void RimUiTreeView::appendScriptItems(QMenu* menu, RimScriptCollection* scriptCo
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString encodedModelIndex;
|
QString encodedModelIndex;
|
||||||
RimUiTreeView::encodeStringFromModelIndex(mi, encodedModelIndex);
|
RimTreeViewStateSerializer::encodeStringFromModelIndex(mi, encodedModelIndex);
|
||||||
|
|
||||||
scriptAction->setData(QVariant(encodedModelIndex));
|
scriptAction->setData(QVariant(encodedModelIndex));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,12 +47,6 @@ public:
|
|||||||
void selectedUiItems(std::vector<caf::PdmUiItem*>& objects);
|
void selectedUiItems(std::vector<caf::PdmUiItem*>& objects);
|
||||||
|
|
||||||
|
|
||||||
void applyTreeViewStateFromString(const QString& treeViewState);
|
|
||||||
void storeTreeViewStateToString(QString& treeViewState);
|
|
||||||
|
|
||||||
static QModelIndex getModelIndexFromString(QAbstractItemModel* model, const QString& currentIndexString);
|
|
||||||
static void encodeStringFromModelIndex(const QModelIndex mi, QString& currentIndexString);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void contextMenuEvent(QContextMenuEvent* event);
|
void contextMenuEvent(QContextMenuEvent* event);
|
||||||
|
|
||||||
|
|||||||
@@ -74,6 +74,7 @@
|
|||||||
#include "cafSelectionManager.h"
|
#include "cafSelectionManager.h"
|
||||||
|
|
||||||
#include "cvfTimer.h"
|
#include "cvfTimer.h"
|
||||||
|
#include "RimTreeViewStateSerializer.h"
|
||||||
|
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
@@ -1917,15 +1918,15 @@ void RiuMainWindow::slotDisableLightingAction(bool disable)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiuMainWindow::storeTreeViewState()
|
void RiuMainWindow::storeTreeViewState()
|
||||||
{
|
{
|
||||||
if (m_OBSOLETE_treeView)
|
if (m_projectTreeView)
|
||||||
{
|
{
|
||||||
QString treeViewState;
|
QString treeViewState;
|
||||||
m_OBSOLETE_treeView->storeTreeViewStateToString(treeViewState);
|
RimTreeViewStateSerializer::storeTreeViewStateToString(m_projectTreeView->treeView(), treeViewState);
|
||||||
|
|
||||||
QModelIndex mi = m_OBSOLETE_treeView->currentIndex();
|
QModelIndex mi = m_projectTreeView->treeView()->currentIndex();
|
||||||
|
|
||||||
QString encodedModelIndexString;
|
QString encodedModelIndexString;
|
||||||
RimUiTreeView::encodeStringFromModelIndex(mi, encodedModelIndexString);
|
RimTreeViewStateSerializer::encodeStringFromModelIndex(mi, encodedModelIndexString);
|
||||||
|
|
||||||
RiaApplication::instance()->project()->treeViewState = treeViewState;
|
RiaApplication::instance()->project()->treeViewState = treeViewState;
|
||||||
RiaApplication::instance()->project()->currentModelIndexPath = encodedModelIndexString;
|
RiaApplication::instance()->project()->currentModelIndexPath = encodedModelIndexString;
|
||||||
@@ -1937,20 +1938,20 @@ void RiuMainWindow::storeTreeViewState()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiuMainWindow::restoreTreeViewState()
|
void RiuMainWindow::restoreTreeViewState()
|
||||||
{
|
{
|
||||||
if (m_OBSOLETE_treeView)
|
if (m_projectTreeView)
|
||||||
{
|
{
|
||||||
QString stateString = RiaApplication::instance()->project()->treeViewState;
|
QString stateString = RiaApplication::instance()->project()->treeViewState;
|
||||||
if (!stateString.isEmpty())
|
if (!stateString.isEmpty())
|
||||||
{
|
{
|
||||||
m_OBSOLETE_treeView->collapseAll();
|
m_projectTreeView->treeView()->collapseAll();
|
||||||
m_OBSOLETE_treeView->applyTreeViewStateFromString(stateString);
|
RimTreeViewStateSerializer::applyTreeViewStateFromString(m_projectTreeView->treeView(), stateString);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString currentIndexString = RiaApplication::instance()->project()->currentModelIndexPath;
|
QString currentIndexString = RiaApplication::instance()->project()->currentModelIndexPath;
|
||||||
if (!currentIndexString.isEmpty())
|
if (!currentIndexString.isEmpty())
|
||||||
{
|
{
|
||||||
QModelIndex mi = RimUiTreeView::getModelIndexFromString(m_OBSOLETE_treeView->model(), currentIndexString);
|
QModelIndex mi = RimTreeViewStateSerializer::getModelIndexFromString(m_projectTreeView->treeView()->model(), currentIndexString);
|
||||||
m_OBSOLETE_treeView->setCurrentIndex(mi);
|
m_projectTreeView->treeView()->setCurrentIndex(mi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1960,6 +1961,7 @@ void RiuMainWindow::restoreTreeViewState()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RiuMainWindow::setCurrentObjectInTreeView(caf::PdmObject* object)
|
void RiuMainWindow::setCurrentObjectInTreeView(caf::PdmObject* object)
|
||||||
{
|
{
|
||||||
|
#if 1 // OBSOLETE
|
||||||
if (m_OBSOLETE_treeView && m_OBSOLETE_treeModelPdm)
|
if (m_OBSOLETE_treeView && m_OBSOLETE_treeModelPdm)
|
||||||
{
|
{
|
||||||
QModelIndex mi = m_OBSOLETE_treeModelPdm->getModelIndexFromPdmObject(object);
|
QModelIndex mi = m_OBSOLETE_treeModelPdm->getModelIndexFromPdmObject(object);
|
||||||
@@ -1969,7 +1971,7 @@ void RiuMainWindow::setCurrentObjectInTreeView(caf::PdmObject* object)
|
|||||||
m_OBSOLETE_treeView->setCurrentIndex(mi);
|
m_OBSOLETE_treeView->setCurrentIndex(mi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
m_projectTreeView->selectAsCurrentItem(object);
|
m_projectTreeView->selectAsCurrentItem(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2058,14 +2060,21 @@ void RiuMainWindow::slotCreateCommandObject()
|
|||||||
RiaApplication* app = RiaApplication::instance();
|
RiaApplication* app = RiaApplication::instance();
|
||||||
if (!app->project()) return;
|
if (!app->project()) return;
|
||||||
|
|
||||||
QItemSelectionModel* selectionModel = m_OBSOLETE_treeView->selectionModel();
|
std::vector<caf::PdmUiItem*> selectedUiItems;
|
||||||
if (selectionModel)
|
m_projectTreeView->selectedObjects(selectedUiItems);
|
||||||
{
|
|
||||||
QModelIndexList selectedModelIndices = selectionModel->selectedIndexes();
|
|
||||||
|
|
||||||
caf::PdmObjectGroup selectedObjects;
|
|
||||||
m_OBSOLETE_treeModelPdm->populateObjectGroupFromModelIndexList(selectedModelIndices, &selectedObjects);
|
|
||||||
|
|
||||||
|
caf::PdmObjectGroup selectedObjects;
|
||||||
|
for (size_t i = 0; i < selectedUiItems.size(); ++i)
|
||||||
|
{
|
||||||
|
caf::PdmUiObjectHandle* uiObj = dynamic_cast<caf::PdmUiObjectHandle*>(selectedUiItems[i]);
|
||||||
|
if (uiObj)
|
||||||
|
{
|
||||||
|
selectedObjects.addObject(uiObj->objectHandle());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedObjects.objects.size())
|
||||||
|
{
|
||||||
std::vector<RimCommandObject*> commandObjects;
|
std::vector<RimCommandObject*> commandObjects;
|
||||||
RimCommandFactory::createCommandObjects(selectedObjects, &commandObjects);
|
RimCommandFactory::createCommandObjects(selectedObjects, &commandObjects);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user