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

Method bindNavigationClick

src/eepp/ui/uitreeview.cpp:150–187  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148}
149
150void UITreeView::bindNavigationClick( UIWidget* widget ) {
151 auto openTree = [this]( const ModelIndex& idx, const Event* event ) {
152 ConditionalLock l( getModel() != nullptr,
153 getModel() ? &getModel()->resourceMutex() : nullptr );
154 if ( getModel()->rowCount( idx ) ) {
155 auto& data = getIndexMetadata( idx );
156 data.open = !data.open;
157 createOrUpdateColumns( false );
158 onOpenTreeModelIndex( idx, data.open );
159 } else {
160 onOpenModelIndex( idx, event );
161 }
162 };
163
164 mWidgetsClickCbId[widget].push_back(
165 widget->on( Event::MouseDoubleClick, [this, openTree]( const Event* event ) {
166 auto mouseEvent = static_cast<const MouseEvent*>( event );
167 auto cellIdx = mouseEvent->getNode()->asType<UITableCell>()->getCurIndex();
168 auto idx = mouseEvent->getNode()->getParent()->asType<UITableRow>()->getCurIndex();
169 if ( isEditable() && ( mEditTriggers & EditTrigger::DoubleClicked ) && getModel() &&
170 getModel()->isEditable( cellIdx ) ) {
171 beginEditing( cellIdx, mouseEvent->getNode()->asType<UIWidget>() );
172 } else if ( ( mouseEvent->getFlags() & EE_BUTTON_LMASK ) && !mSingleClickNavigation ) {
173 openTree( idx, event );
174 }
175 } ) );
176
177 mWidgetsClickCbId[widget].push_back(
178 widget->on( Event::MouseClick, [this, openTree]( const Event* event ) {
179 auto mouseEvent = static_cast<const MouseEvent*>( event );
180 auto idx = mouseEvent->getNode()->getParent()->asType<UITableRow>()->getCurIndex();
181 if ( mouseEvent->getFlags() & EE_BUTTON_RMASK ) {
182 onOpenMenuModelIndex( idx, event );
183 } else if ( ( mouseEvent->getFlags() & EE_BUTTON_LMASK ) && mSingleClickNavigation ) {
184 openTree( idx, event );
185 }
186 } ) );
187}
188
189bool UITreeView::tryOpenModelIndex( const ModelIndex& index, bool forceUpdate ) {
190 bool hasChildren = false;

Callers

nothing calls this directly

Calls 9

getModelFunction · 0.85
isEditableFunction · 0.85
push_backMethod · 0.80
getNodeMethod · 0.80
getFlagsMethod · 0.80
rowCountMethod · 0.45
onMethod · 0.45
getParentMethod · 0.45
isEditableMethod · 0.45

Tested by

no test coverage detected