#3037 AppFwk : Add macros and implement createEditorWidget

This commit is contained in:
Magne Sjaastad 2018-06-11 13:36:15 +02:00
parent 477d6cedd5
commit c486f7963e
4 changed files with 13 additions and 3 deletions

View File

@ -32,6 +32,7 @@
#include "cafPdmUiPropertyView.h"
#include "cafPdmUiPushButtonEditor.h"
#include "cafPdmUiTableView.h"
#include "cafPdmUiTableViewEditor.h"
#include "cafPdmUiTextEditor.h"
#include "cafPdmUiTreeSelectionEditor.h"
#include "cafPdmUiTreeView.h"
@ -422,6 +423,7 @@ public:
CAF_PDM_InitFieldNoDefault(&m_multiSelectList, "MultiSelect", "Selection List", "", "List" , "This is a multi selection list" );
CAF_PDM_InitFieldNoDefault(&m_objectList, "ObjectList", "Objects list Field", "", "List" , "This is a list of PdmObjects" );
CAF_PDM_InitFieldNoDefault(&m_objectListOfSameType, "m_objectListOfSameType", "Same type Objects list Field", "", "Same type List" , "Same type list of PdmObjects" );
m_objectListOfSameType.uiCapability()->setUiEditorTypeName(caf::PdmUiTableViewEditor::uiEditorTypeName());
CAF_PDM_InitFieldNoDefault(&m_ptrField, "m_ptrField", "PtrField", "", "Same type List", "Same type list of PdmObjects");
m_filePath.capability<caf::PdmUiFieldHandle>()->setUiEditorTypeName(caf::PdmUiFilePathEditor::uiEditorTypeName());

View File

@ -61,7 +61,7 @@ PdmUiTableView::PdmUiTableView(QWidget* parent, Qt::WindowFlags f)
m_listViewEditor = new PdmUiTableViewEditor();
QWidget* widget = m_listViewEditor->createWidget(this);
QWidget* widget = m_listViewEditor->createEditorWidget(this);
layout->addWidget(widget);
}

View File

@ -86,6 +86,9 @@ private:
PdmUiTableViewEditor* m_tableViewEditor;
};
CAF_PDM_UI_FIELD_EDITOR_SOURCE_INIT(PdmUiTableViewEditor);
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -116,7 +119,7 @@ PdmUiTableViewEditor::~PdmUiTableViewEditor()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QWidget* PdmUiTableViewEditor::createWidget(QWidget* parent)
QWidget* PdmUiTableViewEditor::createEditorWidget(QWidget* parent)
{
m_mainWidget = new QWidget(parent);
@ -160,6 +163,8 @@ QWidget* PdmUiTableViewEditor::createWidget(QWidget* parent)
//--------------------------------------------------------------------------------------------------
void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName)
{
if (!m_tableModelPdm) return;
auto childArrayFH = childArrayFieldHandle();
m_tableModelPdm->setPdmData(childArrayFH, uiConfigName);

View File

@ -68,6 +68,7 @@ class PdmUiTableViewQModel;
class PdmUiTableViewEditor : public PdmUiFieldEditorHandle
{
Q_OBJECT
CAF_PDM_UI_FIELD_EDITOR_HEADER_INIT;
public:
PdmUiTableViewEditor();
@ -79,7 +80,7 @@ public:
PdmObjectHandle* pdmObjectFromModelIndex(const QModelIndex& mi);
QWidget* createWidget(QWidget* parent);
QWidget* createEditorWidget(QWidget * parent) override;
QTableView* tableView();
@ -88,6 +89,8 @@ public:
protected:
virtual void configureAndUpdateUi(const QString& uiConfigName) override;
private:
void updateContextMenuSignals();
void selectedUiItems(const QModelIndexList& modelIndexList, std::vector<PdmUiItem*>& objects);