| 3354 | } |
| 3355 | |
| 3356 | void LLMChatUI::initSelectModel() { |
| 3357 | mLocateModelBarLayout = findByClass<UIVLinearLayoutCommandExecuter>( "llm_chat_select_model" ); |
| 3358 | mLocateModelInput = findByClass<UITextInput>( "llm_chat_select_model_input" ); |
| 3359 | mLocateModelTable = findByClass<UITableView>( "llm_chat_model_locate" ); |
| 3360 | mLocateModelTable->setHeadersVisible( false ); |
| 3361 | |
| 3362 | mLocateModelTable->on( Event::OnSizeChange, |
| 3363 | [this]( const Event* ) { updateLocateModelBarColumns(); } ); |
| 3364 | |
| 3365 | mLocateModelInput->on( Event::OnTextChanged, [this]( const Event* ) { |
| 3366 | showSelectModel(); |
| 3367 | updateLocateModelBarColumns(); |
| 3368 | } ); |
| 3369 | mLocateModelInput->on( Event::OnPressEnter, [this]( const Event* ) { |
| 3370 | KeyEvent keyEvent( mLocateModelTable, Event::KeyDown, KEY_RETURN, SCANCODE_UNKNOWN, 0, 0 ); |
| 3371 | mLocateModelTable->forceKeyDown( keyEvent ); |
| 3372 | } ); |
| 3373 | mLocateModelInput->on( Event::KeyDown, [this]( const Event* event ) { |
| 3374 | const KeyEvent* keyEvent = static_cast<const KeyEvent*>( event ); |
| 3375 | mLocateModelTable->forceKeyDown( *keyEvent ); |
| 3376 | } ); |
| 3377 | mLocateModelBarLayout->setCommand( "close-locatebar", [this] { |
| 3378 | hideSelectModel(); |
| 3379 | if ( mChatInput ) |
| 3380 | mChatInput->setFocus(); |
| 3381 | } ); |
| 3382 | mLocateModelBarLayout->getKeyBindings().addKeybindsString( { |
| 3383 | { "escape", "close-locatebar" }, |
| 3384 | } ); |
| 3385 | mLocateModelTable->on( Event::KeyDown, [this]( const Event* event ) { |
| 3386 | const KeyEvent* keyEvent = static_cast<const KeyEvent*>( event ); |
| 3387 | if ( keyEvent->getKeyCode() == KEY_ESCAPE ) |
| 3388 | mLocateModelBarLayout->execute( "close-locatebar" ); |
| 3389 | } ); |
| 3390 | mLocateModelTable->on( Event::OnModelEvent, [this]( const Event* event ) { |
| 3391 | const ModelEvent* modelEvent = static_cast<const ModelEvent*>( event ); |
| 3392 | if ( modelEvent->getModelEventType() == ModelEventType::Open ) { |
| 3393 | Variant vHash( modelEvent->getModel()->data( |
| 3394 | modelEvent->getModel()->index( modelEvent->getModelIndex().row(), |
| 3395 | LLMModelsModel::Hash ), |
| 3396 | ModelRole::Display ) ); |
| 3397 | selectModel( getModel( vHash.asUint64() ) ); |
| 3398 | mLocateModelBarLayout->execute( "close-locatebar" ); |
| 3399 | } |
| 3400 | } ); |
| 3401 | } |
| 3402 | |
| 3403 | } // namespace ecode |
nothing calls this directly
no test coverage detected