@@ -125,37 +125,36 @@ void LlamaPlugin::initialize()
125125 c.id .toUtf8 (),
126126 c.id );
127127 });
128- ActionManager::actionContainer (Constants::LLAMACPP_MENU_ID )->addAction (newConversationCmd);
129128
130- ActionBuilder requestAction ( this , Constants:: LLAMACPP_REQUEST_SUGGESTION );
131- requestAction. setText ( Tr::tr ( " Request llama.cpp Suggestion " ) );
132- requestAction .setToolTip (
129+ Core::Command *requestCmd
130+ = ActionManager::registerAction (&m_requestAction, Constants:: LLAMACPP_REQUEST_SUGGESTION );
131+ m_requestAction .setToolTip (
133132 Tr::tr (" Request llama.cpp suggestion at the current editor's cursor position." ));
134- requestAction. addOnTriggered ( this , [this ] {
133+ connect (&m_requestAction, &QAction::triggered, this , [this ] {
135134 if (auto editor = TextEditor::TextEditorWidget::currentTextEditorWidget ()) {
136135 QTextCursor cursor = editor->textCursor ();
137136 int pos_x = cursor.positionInBlock ();
138137 int pos_y = cursor.blockNumber () + 1 ;
139138 fim (pos_x, pos_y, false );
140139 }
141140 });
142- requestAction. setDefaultKeySequence (Tr::tr (" Ctrl+G" ));
143-
144- ActionBuilder toggleAction ( this , Constants:: LLAMACPP_TOGGLE_ENABLE_DISABLE );
145- toggleAction. setText ( Tr::tr ( " Toggle enable/disable llama.cpp " ) );
146- toggleAction .setCheckable (true );
147- toggleAction .setChecked (settings ().enableLlamaCpp ());
148- toggleAction .setIcon (LLAMACPP_ICON .icon ());
149- toggleAction. addOnTriggered ( this , [](bool checked) {
141+ requestCmd-> setDefaultKeySequence (Tr::tr (" Ctrl+G" ));
142+
143+ Core::Command *toggleCmd
144+ = ActionManager::registerAction (&m_toggleAction, Constants:: LLAMACPP_TOGGLE_ENABLE_DISABLE );
145+ m_toggleAction .setCheckable (true );
146+ m_toggleAction .setChecked (settings ().enableLlamaCpp ());
147+ m_toggleAction .setIcon (LLAMACPP_ICON .icon ());
148+ connect (&m_toggleAction, &QAction::triggered, this , [this ](bool checked) {
150149 settings ().enableLlamaCpp .setValue (checked);
151150 settings ().apply ();
152151 });
153152
154- ActionBuilder toggleAutoFimAction ( this , Constants:: LLAMACPP_TOGGLE_AUTOFIM );
155- toggleAutoFimAction. setText ( Tr::tr ( " Toggle Auto FIM " ) );
156- toggleAutoFimAction .setCheckable (true );
157- toggleAutoFimAction .setChecked (settings ().autoFim ());
158- toggleAutoFimAction. addOnTriggered ( this , [this ](bool checked) {
153+ Core::Command *toggleAutoFimCmd
154+ = ActionManager::registerAction (&m_toogleAutoFimAction, Constants:: LLAMACPP_TOGGLE_AUTOFIM );
155+ m_toogleAutoFimAction .setCheckable (true );
156+ m_toogleAutoFimAction .setChecked (settings ().autoFim ());
157+ connect (&m_toogleAutoFimAction, &QAction::triggered, this , [this ](bool checked) {
159158 qCInfo (llamaLog) << " Toggle Auto FIM" << checked;
160159
161160 settings ().autoFim .setValue (checked);
@@ -168,25 +167,29 @@ void LlamaPlugin::initialize()
168167 hideCompletionHint ();
169168 }
170169 });
171- toggleAutoFimAction. setDefaultKeySequence (Tr::tr (" Ctrl+Shift+G" ));
170+ toggleAutoFimCmd-> setDefaultKeySequence (Tr::tr (" Ctrl+Shift+G" ));
172171
173- QAction *toggleAct = toggleAction.contextAction ();
174- QAction *requestAct = requestAction.contextAction ();
175- QAction *toogleAutoFimAct = toggleAutoFimAction.contextAction ();
176- auto updateActions = [toggleAct, requestAct, toogleAutoFimAct] {
172+ auto menuContainer = ActionManager::actionContainer (Constants::LLAMACPP_MENU_ID );
173+ menuContainer->addAction (newConversationCmd);
174+ menuContainer->addSeparator ();
175+ menuContainer->addAction (requestCmd);
176+ menuContainer->addAction (toggleCmd);
177+ menuContainer->addAction (toggleAutoFimCmd);
178+
179+ auto updateActions = [this ] {
177180 const bool enabled = settings ().enableLlamaCpp ();
178- toggleAct-> setToolTip (enabled ? Tr::tr (" Disable llama.cpp." ) : Tr::tr (" Enable llama.cpp." ));
179- toggleAct-> setChecked (enabled);
180- requestAct-> setEnabled (enabled);
181- toogleAutoFimAct-> setEnabled (enabled);
181+ m_toggleAction. setToolTip (enabled ? Tr::tr (" Disable llama.cpp." ) : Tr::tr (" Enable llama.cpp." ));
182+ m_toggleAction. setChecked (enabled);
183+ m_requestAction. setEnabled (enabled);
184+ m_toogleAutoFimAction. setEnabled (enabled);
182185 };
183186
184187 settings ().enableLlamaCpp .addOnChanged (this , updateActions);
185188
186189 updateActions ();
187190
188191 auto toggleButton = new QToolButton;
189- toggleButton->setDefaultAction (toggleAction. contextAction () );
192+ toggleButton->setDefaultAction (&m_toggleAction );
190193 StatusBarManager::addStatusBarWidget (toggleButton, StatusBarManager::RightCorner);
191194
192195 setupLlamaCppProjectPanel ();
0 commit comments