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

Method bindTable

src/tools/ecode/uibuildsettings.cpp:804–844  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

802}
803
804void UIBuildSettings::bindTable( const std::string& name, const std::string& key,
805 ProjectBuildKeyVal& data ) {
806
807 UITableView* table = find<UITableView>( name );
808 auto model = ItemPairListModel<std::string, std::string>::create( data );
809 const auto createInputDelegate = [table]( const ModelIndex& ) -> ModelEditingDelegate* {
810 auto delegate = StringModelEditingDelegate::New();
811 delegate->onWillBeginEditing = [delegate, table]() {
812 delegate->getWidget()->asType<UITextInput>()->on( Event::OnFocusLoss,
813 [delegate, table]( auto ) {
814 delegate->onCommit();
815 table->recalculateColumnsWidth();
816 } );
817 };
818 return delegate;
819 };
820 model->setColumnName( 0, i18n( key + "_name", "Name" ) );
821 model->setColumnName( 1, i18n( key + "_value", "Value" ) );
822 model->setIsEditable( true );
823 table->setMainColumn( 1 );
824 table->setAutoColumnsWidth( true );
825 table->setFitAllColumnsToWidget( true );
826 table->setModel( model );
827 table->setEditable( true );
828 table->setSelectionType( UIAbstractView::SelectionType::Cell );
829 table->setEditTriggers( UIAbstractView::EditTrigger::DoubleClicked |
830 UIAbstractTableView::EditTrigger::EditKeyPressed );
831 table->onCreateEditingDelegate = createInputDelegate;
832
833 find<UIPushButton>( "custom_" + key + "_add" )->onClick( [this, model, &data]( auto ) {
834 data.push_back( { i18n( "new_name", "New Name" ), i18n( "new_value", "New Value" ) } );
835 model->invalidate();
836 } );
837
838 find<UIPushButton>( "custom_" + key + "_del" )->onClick( [model, table, &data]( auto ) {
839 if ( !table->getSelection().isEmpty() ) {
840 data.erase( data.begin() + table->getSelection().first().row() );
841 model->invalidate();
842 }
843 } );
844}
845
846void UIBuildSettings::moveStepUp( size_t stepNum, bool isClean ) {
847 moveStepDir( stepNum, isClean, -1 );

Callers

nothing calls this directly

Calls 15

setMainColumnMethod · 0.80
setAutoColumnsWidthMethod · 0.80
setEditableMethod · 0.80
setSelectionTypeMethod · 0.80
setEditTriggersMethod · 0.80
push_backMethod · 0.80
rowMethod · 0.80
NewFunction · 0.50
onMethod · 0.45
getWidgetMethod · 0.45

Tested by

no test coverage detected