@@ -97,14 +97,7 @@ RimeEngine::RimeEngine(Instance *instance)
97
97
deployAction_.setIcon (" rime-deploy" );
98
98
deployAction_.setShortText (_ (" Deploy" ));
99
99
deployAction_.connect <SimpleAction::Activated>([this ](InputContext *ic) {
100
- instance_->inputContextManager ().foreach ([this ](InputContext *ic) {
101
- auto state = this ->state (ic);
102
- state->release ();
103
- return true ;
104
- });
105
- api_->sync_user_data ();
106
- api_->finalize ();
107
- rimeStart (true );
100
+ deploy ();
108
101
auto state = this ->state (ic);
109
102
if (ic->hasFocus ()) {
110
103
state->updateUI (ic, false );
@@ -117,7 +110,7 @@ RimeEngine::RimeEngine(Instance *instance)
117
110
syncAction_.setShortText (_ (" Synchronize" ));
118
111
119
112
syncAction_.connect <SimpleAction::Activated>([this ](InputContext *ic) {
120
- api_-> sync_user_data ();
113
+ sync ();
121
114
auto state = this ->state (ic);
122
115
if (ic->hasFocus ()) {
123
116
state->updateUI (ic, false );
@@ -186,6 +179,18 @@ void RimeEngine::rimeStart(bool fullcheck) {
186
179
187
180
void RimeEngine::reloadConfig () {
188
181
readAsIni (config_, " conf/rime.conf" );
182
+ updateConfig ();
183
+ }
184
+
185
+ void RimeEngine::setSubConfig (const std::string &path, const RawConfig &) {
186
+ if (path == " deploy" ) {
187
+ deploy ();
188
+ } else if (path == " sync" ) {
189
+ sync ();
190
+ }
191
+ }
192
+
193
+ void RimeEngine::updateConfig () {
189
194
factory_.unregister ();
190
195
if (api_) {
191
196
try {
@@ -329,6 +334,20 @@ std::string RimeEngine::subMode(const InputMethodEntry &, InputContext &ic) {
329
334
}
330
335
return result;
331
336
}
337
+
338
+ void RimeEngine::deploy () {
339
+ instance_->inputContextManager ().foreach ([this ](InputContext *ic) {
340
+ auto state = this ->state (ic);
341
+ state->release ();
342
+ return true ;
343
+ });
344
+ api_->sync_user_data ();
345
+ api_->finalize ();
346
+ rimeStart (true );
347
+ }
348
+
349
+ void RimeEngine::sync () { api_->sync_user_data (); }
350
+
332
351
} // namespace fcitx
333
352
334
353
FCITX_ADDON_FACTORY (fcitx::RimeEngineFactory)
0 commit comments