MCPcopy Create free account
hub / github.com/SpartanJ/eepp / beginEditing

Method beginEditing

src/eepp/ui/abstract/uiabstractview.cpp:175–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

173}
174
175void UIAbstractView::beginEditing( const ModelIndex& index, UIWidget* editedWidget ) {
176 if ( !isEditable() || !mModel || mEditIndex == index || !mModel->isEditable( index ) ||
177 !onCreateEditingDelegate || !editedWidget )
178 return;
179
180 if ( mEditWidget ) {
181 mEditWidget->setVisible( false )->setEnabled( false )->close();
182 mEditWidget = nullptr;
183 }
184 eeSAFE_DELETE( mEditingDelegate );
185
186 mEditIndex = index;
187 mEditingDelegate = onCreateEditingDelegate( index );
188 mEditingDelegate->bind( mModel, index );
189 mEditingDelegate->setValue( index.data( mEditingDelegate->pullDataFrom() ) );
190 mEditWidget = mEditingDelegate->getWidget();
191 mEditWidget->setParent( editedWidget );
192 mEditWidget->setSize( editedWidget->getSize() );
193 mEditWidget->setFocus();
194 mEditWidget->toFront();
195 mEditingDelegate->willBeginEditing();
196 mEditingDelegate->onCommit = [this]() {
197 if ( getModel() && mEditIndex.isValid() ) {
198 getModel()->setData( mEditIndex, mEditingDelegate->getValue() );
199 if ( mEditingDelegate->onValueSet )
200 mEditingDelegate->onValueSet();
201 }
202 stopEditing();
203 };
204 mEditingDelegate->onRollback = [this]() { stopEditing(); };
205 mEditingDelegate->onChange = [this, index]() { editingWidgetDidChange( index ); };
206}
207
208void UIAbstractView::stopEditing() {
209 bool recoverFocus = false;

Callers

nothing calls this directly

Calls 15

isEditableFunction · 0.85
getModelFunction · 0.85
editingWidgetDidChangeFunction · 0.85
setParentMethod · 0.80
toFrontMethod · 0.80
closeMethod · 0.65
isEditableMethod · 0.45
setEnabledMethod · 0.45
setVisibleMethod · 0.45
bindMethod · 0.45
setValueMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected