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

View File

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

View File

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