mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3037 AppFwk : Inherit from FieldEditorHandle instead of EditorHandle
This commit is contained in:
parent
e814272bea
commit
477d6cedd5
@ -792,7 +792,7 @@ MainWindow::~MainWindow()
|
||||
m_pdmUiTreeView->setPdmItem(nullptr);
|
||||
m_pdmUiTreeView2->setPdmItem(nullptr);
|
||||
m_pdmUiPropertyView->showProperties(nullptr);
|
||||
m_pdmUiTableView->setListField(nullptr);
|
||||
m_pdmUiTableView->setUiFieldHandle(nullptr);
|
||||
|
||||
delete m_pdmUiTreeView;
|
||||
delete m_pdmUiTreeView2;
|
||||
@ -955,30 +955,33 @@ void MainWindow::slotShowTableView()
|
||||
std::vector<caf::PdmUiItem*> selection;
|
||||
m_pdmUiTreeView2->selectedUiItems(selection);
|
||||
caf::PdmObjectHandle* obj = nullptr;
|
||||
caf::PdmChildArrayFieldHandle* listField = nullptr;
|
||||
caf::PdmUiFieldHandle* uiFieldHandle = nullptr;
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle = nullptr;
|
||||
|
||||
if (selection.size())
|
||||
{
|
||||
caf::PdmUiItem* pdmUiItem = selection[0];
|
||||
|
||||
caf::PdmUiFieldHandle* guiField = dynamic_cast<caf::PdmUiFieldHandle*>(pdmUiItem);
|
||||
|
||||
if (guiField) listField = dynamic_cast<caf::PdmChildArrayFieldHandle*>(guiField->fieldHandle());
|
||||
|
||||
if (listField)
|
||||
uiFieldHandle = dynamic_cast<caf::PdmUiFieldHandle*>(pdmUiItem);
|
||||
if (uiFieldHandle)
|
||||
{
|
||||
if (!listField->hasSameFieldCountForAllObjects())
|
||||
childArrayFieldHandle = dynamic_cast<caf::PdmChildArrayFieldHandle*>(uiFieldHandle->fieldHandle());
|
||||
}
|
||||
|
||||
if (childArrayFieldHandle)
|
||||
{
|
||||
if (!childArrayFieldHandle->hasSameFieldCountForAllObjects())
|
||||
{
|
||||
listField = nullptr;
|
||||
uiFieldHandle = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_pdmUiTableView->setListField(listField);
|
||||
m_pdmUiTableView->setUiFieldHandle(uiFieldHandle);
|
||||
|
||||
if (listField)
|
||||
if (uiFieldHandle)
|
||||
{
|
||||
listField->uiCapability()->updateConnectedEditors();
|
||||
uiFieldHandle->updateConnectedEditors();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,11 +76,11 @@ PdmUiTableView::~PdmUiTableView()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiTableView::setListField(PdmChildArrayFieldHandle* listField)
|
||||
void PdmUiTableView::setUiFieldHandle(PdmUiFieldHandle* uiFieldHandle)
|
||||
{
|
||||
CAF_ASSERT(m_listViewEditor);
|
||||
|
||||
m_listViewEditor->setListField(listField);
|
||||
m_listViewEditor->setField(uiFieldHandle);
|
||||
|
||||
// SIG_CAF_HACK
|
||||
m_listViewEditor->updateUi(m_uiConfigName);
|
||||
|
@ -84,7 +84,7 @@ public:
|
||||
// SIG_CAF_HACK
|
||||
void setUiConfigurationName(QString uiConfigName);
|
||||
|
||||
void setListField(PdmChildArrayFieldHandle* object);
|
||||
void setUiFieldHandle(PdmUiFieldHandle* uiFieldHandle);
|
||||
|
||||
void enableDefaultContextMenu(bool enable);
|
||||
void enableHeaderText(bool enable);
|
||||
|
@ -96,7 +96,6 @@ PdmUiTableViewEditor::PdmUiTableViewEditor()
|
||||
m_tableHeading = nullptr;
|
||||
m_tableModelPdm = nullptr;
|
||||
m_tableHeadingIcon = nullptr;
|
||||
m_pdmListField = nullptr;
|
||||
m_delegate = nullptr;
|
||||
|
||||
m_useDefaultContextMenu = false;
|
||||
@ -161,7 +160,8 @@ QWidget* PdmUiTableViewEditor::createWidget(QWidget* parent)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName)
|
||||
{
|
||||
m_tableModelPdm->setPdmData(m_pdmListField, uiConfigName);
|
||||
auto childArrayFH = childArrayFieldHandle();
|
||||
m_tableModelPdm->setPdmData(childArrayFH, uiConfigName);
|
||||
|
||||
if (m_tableModelPdm->rowCount() > 0)
|
||||
{
|
||||
@ -178,11 +178,11 @@ void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName)
|
||||
}
|
||||
}
|
||||
|
||||
if (m_pdmListField && m_pdmListField->uiCapability())
|
||||
if (childArrayFH && childArrayFH->uiCapability())
|
||||
{
|
||||
QString text = "";
|
||||
m_tableHeadingIcon->setPixmap(m_pdmListField->uiCapability()->uiIcon(uiConfigName).pixmap(16, 16));
|
||||
m_tableHeading->setText(m_pdmListField->uiCapability()->uiName(uiConfigName) + QString(" (%1)").arg(m_pdmListField->size()));
|
||||
m_tableHeadingIcon->setPixmap(childArrayFH->uiCapability()->uiIcon(uiConfigName).pixmap(16, 16));
|
||||
m_tableHeading->setText(childArrayFH->uiCapability()->uiName(uiConfigName) + QString(" (%1)").arg(childArrayFH->size()));
|
||||
|
||||
m_tableModelPdm->createPersistentPushButtonWidgets(m_tableView);
|
||||
}
|
||||
@ -193,29 +193,6 @@ void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiTableViewEditor::setListField(PdmChildArrayFieldHandle* pdmListField)
|
||||
{
|
||||
m_pdmListField = pdmListField;
|
||||
|
||||
caf::PdmUiFieldHandle* uifield = nullptr;
|
||||
if (m_pdmListField)
|
||||
{
|
||||
uifield = m_pdmListField->uiCapability();
|
||||
}
|
||||
this->bindToPdmItem(uifield);
|
||||
|
||||
if (!m_pdmListField)
|
||||
{
|
||||
m_tableModelPdm->setPdmData(nullptr, "");
|
||||
m_tableHeading->setText("");
|
||||
m_tableHeadingIcon->setPixmap(QPixmap());
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -240,7 +217,8 @@ void PdmUiTableViewEditor::customMenuRequested(QPoint pos)
|
||||
{
|
||||
// This is function is required to execute before populating the menu
|
||||
// Several commands rely on the activeChildArrayFieldHandle in the selection manager
|
||||
SelectionManager::instance()->setActiveChildArrayFieldHandle(m_pdmListField);
|
||||
auto childArrayFH = childArrayFieldHandle();
|
||||
SelectionManager::instance()->setActiveChildArrayFieldHandle(childArrayFH);
|
||||
|
||||
QMenu menu;
|
||||
caf::PdmUiCommandSystemProxy::instance()->populateMenuWithDefaultCommands("PdmUiTreeViewEditor", &menu);
|
||||
@ -433,6 +411,19 @@ void PdmUiTableViewEditor::updateSelectionManagerFromTableSelection()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmChildArrayFieldHandle* PdmUiTableViewEditor::childArrayFieldHandle()
|
||||
{
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle = nullptr;
|
||||
if (this->field())
|
||||
{
|
||||
childArrayFieldHandle = dynamic_cast<PdmChildArrayFieldHandle*>(this->field()->fieldHandle());
|
||||
}
|
||||
|
||||
return childArrayFieldHandle;
|
||||
}
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
|
@ -65,7 +65,7 @@ class PdmUiTableViewQModel;
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
class PdmUiTableViewEditor : public PdmUiEditorHandle
|
||||
class PdmUiTableViewEditor : public PdmUiFieldEditorHandle
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@ -79,7 +79,6 @@ public:
|
||||
|
||||
PdmObjectHandle* pdmObjectFromModelIndex(const QModelIndex& mi);
|
||||
|
||||
void setListField(PdmChildArrayFieldHandle* pdmListField);
|
||||
QWidget* createWidget(QWidget* parent);
|
||||
|
||||
QTableView* tableView();
|
||||
@ -96,6 +95,8 @@ private:
|
||||
void tableViewWidgetFocusChanged(QEvent* focusEvent);
|
||||
void updateSelectionManagerFromTableSelection();
|
||||
|
||||
PdmChildArrayFieldHandle* childArrayFieldHandle();
|
||||
|
||||
private slots:
|
||||
void customMenuRequested(QPoint pos);
|
||||
void slotCurrentChanged(const QModelIndex & current, const QModelIndex & previous);
|
||||
@ -112,7 +113,6 @@ private:
|
||||
QTableView* m_tableView;
|
||||
PdmUiTableViewQModel* m_tableModelPdm;
|
||||
|
||||
PdmChildArrayFieldHandle* m_pdmListField;
|
||||
PdmUiTableViewDelegate* m_delegate;
|
||||
PdmUiCheckBoxDelegate* m_checkboxDelegate;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user