mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-12 00:16:10 -06:00
#3221 caf: Avoid selectionChanged and updateConnectedEditors when TableView is built (configureAndUpdateUi)
This commit is contained in:
parent
7254a58887
commit
e862ef873a
@ -146,7 +146,7 @@ void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName)
|
||||
this->enableHeaderText(editorAttrib.enableHeaderText);
|
||||
}
|
||||
|
||||
m_tableModelPdm->setPdmData(childArrayFH, uiConfigName);
|
||||
m_tableModelPdm->setArrayFieldAndBuildEditors(childArrayFH, uiConfigName);
|
||||
|
||||
if (m_tableModelPdm->rowCount() > 0)
|
||||
{
|
||||
@ -191,7 +191,6 @@ void PdmUiTableViewEditor::configureAndUpdateUi(const QString& uiConfigName)
|
||||
m_previousFieldHandle = childArrayFH;
|
||||
}
|
||||
|
||||
updateSelectionManagerFromTableSelection();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -325,7 +325,7 @@ QVariant PdmUiTableViewQModel::data(const QModelIndex &index, int role /*= Qt::D
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiTableViewQModel::setPdmData(PdmChildArrayFieldHandle* listField, const QString& configName)
|
||||
void PdmUiTableViewQModel::setArrayFieldAndBuildEditors(PdmChildArrayFieldHandle* listField, const QString& configName)
|
||||
{
|
||||
beginResetModel();
|
||||
|
||||
@ -445,13 +445,11 @@ void PdmUiTableViewQModel::setPdmData(PdmChildArrayFieldHandle* listField, const
|
||||
// Update UI for all cells, as the content potentially has changed
|
||||
// This will probably cause performance issues for large tables
|
||||
|
||||
std::vector<PdmObjectHandle*> objects;
|
||||
m_pdmList->childObjects(&objects);
|
||||
|
||||
for (auto obj : objects)
|
||||
for (auto tableItemEditor : m_tableRowEditors)
|
||||
{
|
||||
obj->uiCapability()->updateConnectedEditors();
|
||||
tableItemEditor->updateUi(configName);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -551,11 +549,11 @@ void PdmUiTableViewQModel::notifyDataChanged(const QModelIndex& topLeft, const Q
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void PdmUiTableViewQModel::recreateTableItemEditors()
|
||||
{
|
||||
for (auto tableItemEditor : m_tableItemEditors)
|
||||
for (auto tableItemEditor : m_tableRowEditors)
|
||||
{
|
||||
delete tableItemEditor;
|
||||
}
|
||||
m_tableItemEditors.clear();
|
||||
m_tableRowEditors.clear();
|
||||
|
||||
auto childArrayField = childArrayFieldHandle();
|
||||
if (childArrayField)
|
||||
@ -563,7 +561,7 @@ void PdmUiTableViewQModel::recreateTableItemEditors()
|
||||
for (size_t i = 0; i < childArrayField->size(); i++)
|
||||
{
|
||||
PdmObjectHandle* pdmObject = childArrayField->at(i);
|
||||
m_tableItemEditors.push_back(new PdmUiTableItemEditor(this, pdmObject, static_cast<int>(i)));
|
||||
m_tableRowEditors.push_back(new PdmUiTableItemEditor(this, pdmObject, static_cast<int>(i)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ public:
|
||||
|
||||
QItemSelection modelIndexFromPdmObject(PdmObjectHandle* pdmObject);
|
||||
PdmFieldHandle* getField(const QModelIndex &index) const;
|
||||
void setPdmData(PdmChildArrayFieldHandle* pdmObject, const QString& configName);
|
||||
void setArrayFieldAndBuildEditors(PdmChildArrayFieldHandle* pdmObject, const QString& configName);
|
||||
PdmObjectHandle* pdmObjectForRow(int row) const;
|
||||
|
||||
// Qt overrides
|
||||
@ -124,7 +124,7 @@ private:
|
||||
std::map<QString, PdmUiFieldEditorHandle*> m_fieldEditors;
|
||||
std::vector<int> m_modelColumnIndexToFieldIndex;
|
||||
|
||||
std::vector<PdmUiTableItemEditor*> m_tableItemEditors;
|
||||
std::vector<PdmUiTableItemEditor*> m_tableRowEditors;
|
||||
|
||||
PdmUiTableViewPushButtonEditorAttribute m_pushButtonEditorAttributes;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user