[Fwk] Updated Cvf test application

This commit is contained in:
Magne Sjaastad 2015-11-26 08:15:28 +01:00
parent b075c57515
commit 941d117fbf
10 changed files with 103 additions and 281 deletions

View File

@ -208,6 +208,7 @@ add_subdirectory(Fwk/AppFwk/cafUserInterface)
add_subdirectory(Fwk/AppFwk/cafPdmCvf)
add_subdirectory(Fwk/AppFwk/CommonCode)
add_subdirectory(Fwk/AppFwk/cafTests/cafTestCvfApplication)
add_subdirectory(Fwk/AppFwk/cafTensor)

View File

@ -1,56 +0,0 @@
#include "TapCvfSpecialization.h"
/*
#include "MainWindow.h"
#include "WidgetLayoutTest.h"
#include <QDockWidget>
#include <QTreeView>
#include <QAction>
#include <QMenuBar>
#include <QUndoView>
#include "cafAppEnum.h"
#include "cafAppExecCommandManager.h"
#include "cafCommandFeaturesCore.h"
#include "cafCommandFeatureManager.h"
#include "cafPdmDocument.h"
#include "cafPdmObject.h"
#include "cafPdmUiFilePathEditor.h"
#include "cafPdmUiListEditor.h"
#include "cafPdmUiPropertyView.h"
#include "cafPdmUiTableView.h"
#include "cafPdmUiTextEditor.h"
#include "cafPdmUiTreeView.h"
#include "cafPdmReferenceHelper.h"
#include "cafSelectionManager.h"
#include "cafUiTreeModelPdm.h"
#include "cafPdmProxyValueField.h"
#include "cafPdmPtrField.h"
*/
CAF_PDM_SOURCE_INIT(TapCvfSpecialization, "TapCvfSpecialization");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TapCvfSpecialization::TapCvfSpecialization()
{
CAF_PDM_InitObject("Test Object for type specializations", "", "", "");
/*
CAF_PDM_InitField(&m_toggleField, "Toggle", false, "Toggle Field", "", "Toggle Field tooltip", " Toggle Field whatsthis");
CAF_PDM_InitField(&m_doubleField, "BigNumber", 0.0, "Big Number", "", "Enter a big number here", "This is a place you can enter a big real value if you want");
CAF_PDM_InitField(&m_intField, "IntNumber", 0, "Small Number", "", "Enter some small number here", "This is a place you can enter a small integer value if you want");
CAF_PDM_InitField(&m_textField, "TextField", QString(""), "Text", "", "Text tooltip", "This is a place you can enter a small integer value if you want");
m_proxyDoubleField.registerSetMethod(this, &SmallDemoPdmObject::setDoubleMember);
m_proxyDoubleField.registerGetMethod(this, &SmallDemoPdmObject::doubleMember);
CAF_PDM_InitFieldNoDefault(&m_proxyDoubleField, "ProxyDouble", "Proxy Double", "", "", "");
m_proxyDoubleField = 0;
if (!(m_proxyDoubleField == 3)) { std::cout << "Double is not 3 " << std::endl; }
*/
}

View File

@ -1,41 +0,0 @@
#pragma once
#include "..\LibCore\cvfBase.h"
#include "..\LibCore\cvfColor3.h"
#include "..\LibCore\cvfVector3.h"
#include "..\LibCore\cvfMatrix4.h"
#include "cafPdmObject.h"
#include "cafPdmField.h"
class TapCvfSpecialization : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
TapCvfSpecialization();
caf::PdmField<cvf::Color3> m_colorField;
caf::PdmField<cvf::Vec3d> m_vectorField;
caf::PdmField<cvf::Mat4d> m_matrixField;
/*
virtual caf::PdmFieldHandle* objectToggleField()
{
return &m_toggleField;
}
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
if (changedField == &m_toggleField)
{
std::cout << "Toggle Field changed" << std::endl;
}
}
*/
};

View File

@ -6,6 +6,9 @@ include (${QT_USE_FILE})
project ( cafTestCvfApplication )
option(USE_COMMAND_FRAMEWORK "Use Caf Command Framework" ON)
# Qt MOC
set ( QT_MOC_HEADERS
MainWindow.h
@ -27,32 +30,39 @@ qt4_add_resources( QRC_FILES_CPP
)
include_directories (
${LibCore_SOURCE_DIR}
${LibCore_SOURCE_DIR}
${LibGeometry_SOURCE_DIR}
${LibGuiQt_SOURCE_DIR}
${LibRender_SOURCE_DIR}
${LibViewing_SOURCE_DIR}
${cafProjectDataModel_SOURCE_DIR}
${cafUserInterface_SOURCE_DIR}
)
${cafPdmCore_SOURCE_DIR}
if (USE_COMMAND_FRAMEWORK)
include_directories (
${cafCommand_SOURCE_DIR}
)
ADD_DEFINITIONS(-DTAP_USE_COMMAND_FRAMEWORK)
endif(USE_COMMAND_FRAMEWORK)
include_directories (
${cafPdmCore_SOURCE_DIR}
${cafPdmUiCore_SOURCE_DIR}
${cafPdmXml_SOURCE_DIR}
${cafProjectDataModel_SOURCE_DIR}
${cafCommand_SOURCE_DIR}
# ${cafViewer_SOURCE_DIR}
${cafUserInterface_SOURCE_DIR}
${cafPdmCvf_SOURCE_DIR}
# ${CommonCode_SOURCE_DIR}
${cafPdmCvf_SOURCE_DIR}
)
set( PROJECT_FILES
Main.cpp
MainWindow.cpp
WidgetLayoutTest.cpp
TapCvfSpecialization.cpp
TapProject.cpp
TapCvfSpecialization.cpp
TapProject.cpp
)
@ -63,21 +73,23 @@ add_executable ( ${PROJECT_NAME}
${QRC_FILES_CPP}
)
target_link_libraries ( ${PROJECT_NAME}
LibCore
cafPdmCore
cafPdmUiCore
set (TAP_LINK_LIBRARIES
cafUserInterface
cafPdmXml
cafProjectDataModel
cafCommand
cafUserInterface
cafPdmCvf
cafPdmCvf
${QT_LIBRARIES}
)
if (USE_COMMAND_FRAMEWORK)
set (TAP_LINK_LIBRARIES
${TAP_LINK_LIBRARIES}
cafCommand
)
endif(USE_COMMAND_FRAMEWORK)
target_link_libraries ( ${PROJECT_NAME}
${TAP_LINK_LIBRARIES}
)
source_group("" FILES ${PROJECT_FILES})

View File

@ -3,8 +3,6 @@
#include <QApplication>
#include "cafPdmFieldCvfColor.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);

View File

@ -12,31 +12,36 @@
#include "cafAppEnum.h"
#include "cafAppExecCommandManager.h"
#include "cafCommandFeaturesCore.h"
#include "cafCommandFeatureManager.h"
#include "cafPdmDocument.h"
#ifdef TAP_USE_COMMAND_FRAMEWORK
#include "cafCmdExecCommandManager.h"
#include "cafCmdSelectionHelper.h"
#include "cafCmdFeatureManager.h"
#endif
#include "cafPdmObject.h"
#include "cafPdmObjectGroup.h"
#include "cafPdmProxyValueField.h"
#include "cafPdmPtrField.h"
#include "cafPdmReferenceHelper.h"
#include "cafPdmUiFilePathEditor.h"
#include "cafPdmUiListEditor.h"
#include "cafPdmUiPropertyView.h"
#include "cafPdmUiTableView.h"
#include "cafPdmUiTextEditor.h"
#include "cafPdmUiTreeView.h"
#include "cafPdmReferenceHelper.h"
#include "cafSelectionManager.h"
#include "cafUiTreeModelPdm.h"
#include "cafPdmProxyValueField.h"
#include "cafPdmPtrField.h"
class DemoPdmObjectGroup: public caf::PdmObjectGroup
class DemoPdmObjectGroup : public caf::PdmObjectCollection
{
CAF_PDM_HEADER_INIT;
public:
DemoPdmObjectGroup()
{
objects.uiCapability()->setUiHidden(true);
}
};
@ -176,12 +181,12 @@ public:
{
if (uiObject->userDescriptionField())
{
caf::PdmUiFieldHandle* uiFieldHandle = caf::uiField(uiObject->userDescriptionField());
if (uiFieldHandle)
{
userDesc = uiFieldHandle->uiValue().toString();
}
}
caf::PdmUiFieldHandle* uiFieldHandle = uiObject->userDescriptionField()->uiCapability();
if (uiFieldHandle)
{
userDesc = uiFieldHandle->uiValue().toString();
}
}
options.push_back(caf::PdmOptionItemInfo(uiObject->uiName() + "(" + userDesc + ")", QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(objects[i]))));
}
@ -363,11 +368,6 @@ MainWindow::MainWindow()
// Register default command features (add/delete item in list)
caf::AppExecCommandManager::instance()->enableUndoStack(true);
m_treeView = NULL;
m_treeModelPdm = NULL;
createActions();
createDockPanels();
@ -377,7 +377,11 @@ MainWindow::MainWindow()
sm_mainWindowInstance = this;
caf::SelectionManager::instance()->setPdmRootObject(m_testRoot);
undoView->setStack(caf::AppExecCommandManager::instance()->undoStack());
#ifdef TAP_USE_COMMAND_FRAMEWORK
caf::CmdExecCommandManager::instance()->enableUndoCommandSystem(true);
undoView->setStack(caf::CmdExecCommandManager::instance()->undoStack());
#endif
}
//--------------------------------------------------------------------------------------------------
@ -386,17 +390,7 @@ MainWindow::MainWindow()
void MainWindow::createDockPanels()
{
{
QDockWidget* dockWidget = new QDockWidget("Workspace", this);
dockWidget->setObjectName("dockWidget");
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
m_treeView = new QTreeView(dockWidget);
dockWidget->setWidget(m_treeView);
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
}
{
QDockWidget* dockWidget = new QDockWidget("PdmTreeView", this);
QDockWidget* dockWidget = new QDockWidget("PdmTreeView - controls property view", this);
dockWidget->setObjectName("dockWidget");
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
@ -405,18 +399,6 @@ void MainWindow::createDockPanels()
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
}
/*
{
QDockWidget* dockWidget = new QDockWidget("WidgetLayoutTest", this);
dockWidget->setObjectName("dockWidget");
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
WidgetLayoutTest* widgetLayoutTest = new WidgetLayoutTest(dockWidget);
dockWidget->setWidget(widgetLayoutTest);
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
}
*/
{
QDockWidget* dockWidget = new QDockWidget("cafPropertyView", this);
@ -429,6 +411,19 @@ void MainWindow::createDockPanels()
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
}
{
QDockWidget* dockWidget = new QDockWidget("PdmTreeView2 - controls table view", this);
dockWidget->setObjectName("dockWidget");
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
m_pdmUiTreeView2 = new caf::PdmUiTreeView(dockWidget);
m_pdmUiTreeView2->enableDefaultContextMenu(true);
m_pdmUiTreeView2->enableSelectionManagerUpdating(true);
dockWidget->setWidget(m_pdmUiTreeView2);
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
}
{
QDockWidget* dockWidget = new QDockWidget("cafTableView", this);
dockWidget->setObjectName("dockWidget");
@ -440,20 +435,9 @@ void MainWindow::createDockPanels()
dockWidget->setWidget(m_pdmUiTableView);
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
}
{
QDockWidget* dockWidget = new QDockWidget("PdmTreeView2", this);
dockWidget->setObjectName("dockWidget");
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
m_pdmUiTreeView2 = new caf::PdmUiTreeView(dockWidget);
m_pdmUiTreeView2->enableDefaultContextMenu(true);
dockWidget->setWidget(m_pdmUiTreeView2);
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
}
{
QDockWidget* dockWidget = new QDockWidget("Undo stack", this);
@ -463,7 +447,7 @@ void MainWindow::createDockPanels()
undoView = new QUndoView(this);
dockWidget->setWidget(undoView);
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
addDockWidget(Qt::RightDockWidgetArea, dockWidget);
}
}
@ -476,13 +460,13 @@ void MainWindow::buildTestModel()
m_testRoot = new DemoPdmObjectGroup;
DemoPdmObject* demoObject = new DemoPdmObject;
m_testRoot->addObject(demoObject);
m_testRoot->objects.push_back(demoObject);
SmallDemoPdmObject* smallObj1 = new SmallDemoPdmObject;
m_testRoot->addObject(smallObj1);
m_testRoot->objects.push_back(smallObj1);
SmallDemoPdmObjectA* smallObj2 = new SmallDemoPdmObjectA;
m_testRoot->addObject(smallObj2);
m_testRoot->objects.push_back(smallObj2);
DemoPdmObject* demoObj2 = new DemoPdmObject;
@ -512,26 +496,6 @@ void MainWindow::buildTestModel()
//--------------------------------------------------------------------------------------------------
void MainWindow::setPdmRoot(caf::PdmObjectHandle* pdmRoot)
{
caf::PdmUiTreeItem* treeItemRoot = caf::UiTreeItemBuilderPdm::buildViewItems(NULL, 0, pdmRoot);
if (!m_treeModelPdm)
{
m_treeModelPdm = new caf::UiTreeModelPdm(this);
}
m_treeModelPdm->setTreeItemRoot(treeItemRoot);
assert(m_treeView);
m_treeView->setModel(m_treeModelPdm);
if (treeItemRoot)
{
if (m_treeView->selectionModel())
{
connect(m_treeView->selectionModel(), SIGNAL(selectionChanged( const QItemSelection & , const QItemSelection & )), SLOT(slotSelectionChanged( const QItemSelection & , const QItemSelection & )));
}
}
caf::PdmUiObjectHandle* uiObject = uiObj(pdmRoot);
if (uiObject)
{
@ -548,7 +512,7 @@ void MainWindow::setPdmRoot(caf::PdmObjectHandle* pdmRoot)
if (fields.size())
{
caf::PdmFieldHandle* field = fields[0];
caf::PdmUiFieldHandle* uiFieldHandle = uiField(field);
caf::PdmUiFieldHandle* uiFieldHandle = field->uiCapability();
if (uiFieldHandle)
{
m_pdmUiTreeView2->setPdmItem(uiFieldHandle);
@ -569,6 +533,10 @@ void MainWindow::setPdmRoot(caf::PdmObjectHandle* pdmRoot)
//--------------------------------------------------------------------------------------------------
MainWindow::~MainWindow()
{
m_pdmUiTreeView->setPdmItem(NULL);
m_pdmUiTreeView2->setPdmItem(NULL);
m_pdmUiPropertyView->showProperties(NULL);
m_pdmUiTableView->setListField(NULL);
}
//--------------------------------------------------------------------------------------------------
@ -576,15 +544,9 @@ MainWindow::~MainWindow()
//--------------------------------------------------------------------------------------------------
void MainWindow::releaseTestData()
{
m_treeView->setModel(NULL);
if (m_treeModelPdm)
{
delete m_treeModelPdm;
}
if (m_testRoot)
{
m_testRoot->deleteObjects();
m_testRoot->objects.deleteAllChildObjects();
delete m_testRoot;
}
}
@ -625,7 +587,7 @@ void MainWindow::createActions()
void MainWindow::slotInsert()
{
std::vector<caf::PdmUiItem*> selection;
m_pdmUiTreeView->selectedObjects(selection);
m_pdmUiTreeView->selectedUiItems(selection);
for (size_t i = 0; i < selection.size(); ++i)
{
@ -661,7 +623,7 @@ void MainWindow::slotInsert()
void MainWindow::slotRemove()
{
std::vector<caf::PdmUiItem*> selection;
m_pdmUiTreeView->selectedObjects(selection);
m_pdmUiTreeView->selectedUiItems(selection);
for (size_t i = 0; i < selection.size(); ++i)
{
@ -678,11 +640,7 @@ void MainWindow::slotRemove()
delete obj;
// Update editors
caf::PdmUiFieldHandle* uiFieldHandle = uiField(field);
if (uiFieldHandle)
{
uiFieldHandle->updateConnectedEditors();
}
field->uiCapability()->updateConnectedEditors();
break;
}
@ -697,40 +655,20 @@ void MainWindow::slotRemoveAll()
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void MainWindow::slotSelectionChanged(const QItemSelection & selected, const QItemSelection & deselected )
{
if (selected.indexes().size() == 1)
{
QModelIndex mi = selected.indexes()[0];
caf::PdmUiTreeItem* treeItem = m_treeModelPdm->getTreeItemFromIndex(mi);
if (treeItem && treeItem->dataObject())
{
m_pdmUiPropertyView->showProperties(treeItem->dataObject());
}
}
else
{
m_pdmUiPropertyView->showProperties(NULL);
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void MainWindow::slotSimpleSelectionChanged()
{
std::vector<caf::PdmUiItem*> selection;
m_pdmUiTreeView->selectedObjects(selection);
m_pdmUiTreeView->selectedUiItems(selection);
caf::PdmObjectHandle* obj = NULL;
caf::PdmChildArrayFieldHandle* listField = NULL;
if (selection.size())
{
caf::PdmUiObjectHandle* pdmUiObj = dynamic_cast<caf::PdmUiObjectHandle*>( selection[0] );
if (pdmUiObj) obj = pdmUiObj->owner();
if (pdmUiObj) obj = pdmUiObj->objectHandle();
}
m_pdmUiPropertyView->showProperties(obj);
@ -742,7 +680,7 @@ void MainWindow::slotSimpleSelectionChanged()
void MainWindow::slotShowTableView()
{
std::vector<caf::PdmUiItem*> selection;
m_pdmUiTreeView2->selectedObjects(selection);
m_pdmUiTreeView2->selectedUiItems(selection);
caf::PdmObjectHandle* obj = NULL;
caf::PdmChildArrayFieldHandle* listField = NULL;
@ -764,8 +702,9 @@ void MainWindow::slotShowTableView()
}
m_pdmUiTableView->setListField(listField);
if (listField)
{
listField->capability<caf::PdmUiFieldHandle>()->updateConnectedEditors();
listField->uiCapability()->updateConnectedEditors();
}
}

View File

@ -10,7 +10,7 @@ class QUndoView;
namespace caf
{
class PdmObjectGroup;
class PdmObjectCollection;
class PdmObjectHandle;
class UiTreeModelPdm;
class PdmUiPropertyView;
@ -43,7 +43,7 @@ private slots:
void slotInsert();
void slotRemove();
void slotRemoveAll();
void slotSelectionChanged(const QItemSelection &, const QItemSelection & );
void slotSimpleSelectionChanged();
void slotShowTableView();
@ -52,15 +52,12 @@ private:
static MainWindow* sm_mainWindowInstance;
private:
QTreeView* m_treeView;
QUndoView* undoView;
caf::UiTreeModelPdm* m_treeModelPdm;
caf::PdmUiTreeView* m_pdmUiTreeView;
caf::PdmUiTreeView* m_pdmUiTreeView2;
caf::PdmUiPropertyView* m_pdmUiPropertyView;
caf::PdmUiTableView* m_pdmUiTableView;
caf::PdmObjectGroup* m_testRoot;
caf::PdmObjectCollection* m_testRoot;
};

View File

@ -1,34 +1,5 @@
#include "TapCvfSpecialization.h"
/*
#include "MainWindow.h"
#include "WidgetLayoutTest.h"
#include <QDockWidget>
#include <QTreeView>
#include <QAction>
#include <QMenuBar>
#include <QUndoView>
#include "cafAppEnum.h"
#include "cafAppExecCommandManager.h"
#include "cafCommandFeaturesCore.h"
#include "cafCommandFeatureManager.h"
#include "cafPdmDocument.h"
#include "cafPdmObject.h"
#include "cafPdmUiFilePathEditor.h"
#include "cafPdmUiListEditor.h"
#include "cafPdmUiPropertyView.h"
#include "cafPdmUiTableView.h"
#include "cafPdmUiTextEditor.h"
#include "cafPdmUiTreeView.h"
#include "cafPdmReferenceHelper.h"
#include "cafSelectionManager.h"
#include "cafUiTreeModelPdm.h"
#include "cafPdmProxyValueField.h"
#include "cafPdmPtrField.h"
*/
CAF_PDM_SOURCE_INIT(TapCvfSpecialization, "TapCvfSpecialization");

View File

@ -13,7 +13,7 @@
#include "cafPdmFieldCvfVec3d.h"
#include "cafPdmFieldCvfMat4d.h"
#include <vector>
class TapCvfSpecialization : public caf::PdmObject
@ -29,5 +29,6 @@ public:
caf::PdmField<cvf::Vec3d> m_vectorField;
caf::PdmField<cvf::Mat4d> m_matrixField;
//caf::PdmField< std::vector< cvf::Vec3d> > m_vecArrayField;
};

View File

@ -1,7 +1,7 @@
#pragma once
#include "cafPdmDocument.h"
#include "cafPdmChildArrayField.h"
class TapProject : public caf::PdmDocument