(#370) Wip: NewProjectTreeAndPropertyView command works.

Missing context menu
This commit is contained in:
Jacob Støren 2015-08-18 16:40:32 +02:00
parent c1b971e4d4
commit f8dce724f6
5 changed files with 38 additions and 23 deletions

View File

@ -1298,9 +1298,7 @@ void RiuMainWindow::setPdmRoot(caf::PdmObject* pdmRoot)
}
#endif
m_projectTreeView->setPdmItem(pdmRoot);
m_projectTreeView->treeView()->expandAll();
// For debug only : m_projectTreeView->treeView()->expandAll();
m_projectTreeView->setDragDropHandle(m_dragDrop);
caf::SelectionManager::instance()->setPdmRootObject(pdmRoot);
@ -1682,31 +1680,30 @@ void RiuMainWindow::selectedObjectsChanged()
//--------------------------------------------------------------------------------------------------
void RiuMainWindow::slotNewObjectPropertyView()
{
if (!m_OBSOLETE_treeModelPdm) return;
RimUiTreeView* OBSOLETE_treeView = NULL;
caf::PdmUiTreeView* pdmTreeView = NULL;
{
QDockWidget* dockWidget = new QDockWidget("Additional Project Tree " + QString::number(additionalProjectTrees.size() + 1), this);
dockWidget->setObjectName("dockWidget");
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
OBSOLETE_treeView = new RimUiTreeView(dockWidget);
OBSOLETE_treeView->setSelectionMode(QAbstractItemView::ExtendedSelection);
pdmTreeView = new caf::PdmUiTreeView(dockWidget);
pdmTreeView->treeView()->setSelectionMode(QAbstractItemView::ExtendedSelection);
// Drag and drop configuration
m_OBSOLETE_treeView->setDragEnabled(true);
m_OBSOLETE_treeView->viewport()->setAcceptDrops(true);
m_OBSOLETE_treeView->setDropIndicatorShown(true);
m_OBSOLETE_treeView->setDragDropMode(QAbstractItemView::DragDrop);
pdmTreeView->treeView()->setDragEnabled(true);
pdmTreeView->treeView()->viewport()->setAcceptDrops(true);
pdmTreeView->treeView()->setDropIndicatorShown(true);
pdmTreeView->treeView()->setDragDropMode(QAbstractItemView::DragDrop);
dockWidget->setWidget(OBSOLETE_treeView);
dockWidget->setWidget(pdmTreeView);
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
additionalProjectTrees.push_back(dockWidget);
}
OBSOLETE_treeView->setModel(m_OBSOLETE_treeModelPdm);
pdmTreeView->setPdmItem(m_pdmRoot);
}
{
@ -1719,8 +1716,8 @@ void RiuMainWindow::slotNewObjectPropertyView()
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
connect(OBSOLETE_treeView, SIGNAL(selectedObjectChanged( caf::PdmObjectHandle* )), propView, SLOT(showProperties( caf::PdmObjectHandle* )));
additionalPropertyEditors.push_back(dockWidget);
connect(pdmTreeView, SIGNAL(selectedObjectChanged( caf::PdmObjectHandle* )), propView, SLOT(showProperties( caf::PdmObjectHandle* )));
additionalPropertyEditors.push_back(dockWidget);
}
}

View File

@ -94,7 +94,7 @@ void PdmUiPropertyView::setUiConfigurationName(QString uiConfigName)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void PdmUiPropertyView::showProperties(caf::PdmObjectHandle* object)
void PdmUiPropertyView::showProperties( PdmObjectHandle* object)
{
// Find specialized object view handle
@ -151,7 +151,7 @@ void PdmUiPropertyView::showProperties(caf::PdmObjectHandle* object)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmObjectHandle* PdmUiPropertyView::currentObject()
PdmObjectHandle* PdmUiPropertyView::currentObject()
{
if (!m_currentObjectView) return NULL;
return m_currentObjectView->pdmObject();

View File

@ -59,10 +59,9 @@ public:
~PdmUiPropertyView();
void setUiConfigurationName(QString uiConfigName);
caf::PdmObjectHandle* currentObject();
PdmObjectHandle* currentObject();
public slots:
void showProperties(caf::PdmObjectHandle* object);
void showProperties( caf::PdmObjectHandle* object);
private:
PdmUiObjectEditorHandle* m_currentObjectView;
QString m_uiConfigName;

View File

@ -121,6 +121,21 @@ void PdmUiTreeView::selectedObjects(std::vector<PdmUiItem*>& objects)
void PdmUiTreeView::slotOnSelectionChanged()
{
emit selectionChanged();
std::vector<PdmUiItem*> objects;
m_treeViewEditor->selectedUiItems(objects);
PdmObjectHandle* objHandle = NULL;
if (objects.size())
{
PdmUiObjectHandle* uiObjH = dynamic_cast< PdmUiObjectHandle*>(objects[0]);
if (uiObjH)
{
objHandle = uiObjH->objectHandle();
}
}
emit selectedObjectChanged(objHandle);
}
//--------------------------------------------------------------------------------------------------

View File

@ -51,6 +51,7 @@ namespace caf
class PdmUiItem;
class PdmUiTreeViewEditor;
class PdmUiDragDropHandle;
class PdmObjectHandle;
//==================================================================================================
///
@ -64,14 +65,14 @@ public:
~PdmUiTreeView();
void enableDefaultContextMenu(bool enable);
void setCurrentSelectionToCurrentEditorSelection(bool enable);
void setCurrentSelectionToCurrentEditorSelection(bool enable); // TODO: rename
void setUiConfigurationName(QString uiConfigName);
void setPdmItem(caf::PdmUiItem* object);
QTreeView* treeView();
void selectedObjects(std::vector<PdmUiItem*>& objects);
void selectedObjects(std::vector<PdmUiItem*>& objects); // TODO: rename
void selectAsCurrentItem(PdmUiItem* uiItem);
void setExpanded(const PdmUiItem* uiItem, bool doExpand) const ;
@ -83,6 +84,9 @@ public:
signals:
void selectionChanged();
// Convenience signal for use with PdmUiPropertyView
signals:
void selectedObjectChanged(caf::PdmObjectHandle* object);
private slots:
void slotOnSelectionChanged();