Skip to content

Commit

Permalink
Use riti's new configuration functions
Browse files Browse the repository at this point in the history
Fix a typo bug which was causing Auto Vowel form setting to not work.
Try to run the CI under Ubuntu 21.04 image.
Downgrade fcitx version to 5.0.5 and install fcitx development package.
  • Loading branch information
mominul committed May 6, 2021
1 parent 17a0925 commit 4cd4c1e
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 25 deletions.
10 changes: 8 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ jobs:
build:
if: contains(github.event.head_commit.message, 'deploy+') == false
runs-on: "ubuntu-latest"
# Ubuntu 20.04 doesn't have fcitx 5.0.5 development library which we require.
# So we have to run our CI under Ubuntu 21.04 docker image.
container:
image: "ubuntu:21.04"
env:
DEBIAN_FRONTEND: noninteractive
strategy:
matrix:
env:
Expand All @@ -23,9 +29,9 @@ jobs:
with:
submodules: recursive
- name: update-system
run: sudo apt-get update -qq
run: apt-get update -qq
- name: install-deps
run: sudo apt-get install libibus-1.0-dev libzstd-dev qt5-default rustc cargo
run: apt-get -y install build-essential clang cmake rustc cargo libibus-1.0-dev libfcitx5core-dev libzstd-dev qtbase5-dev qtbase5-dev-tools
- name: make
env: ${{ matrix.env }}
run: |
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ if(OS_LINUX)
endif()

if (ENABLE_FCITX)
find_package(Fcitx5Core 5.0.6 REQUIRED)
find_package(Fcitx5Core 5.0.5 REQUIRED)
endif()
## Find zstd ##
pkg_check_modules(ZSTD REQUIRED libzstd)
Expand Down
2 changes: 2 additions & 0 deletions src/engine/common/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
configure_file(${CMAKE_SOURCE_DIR}/data/openbangla-keyboard.desktop.in ${CMAKE_BINARY_DIR}/data/openbangla-keyboard.desktop)

## Install things
install(FILES ${CMAKE_SOURCE_DIR}/data/32.png
DESTINATION ${PROJECT_DATADIR}/icons
Expand Down
2 changes: 1 addition & 1 deletion src/engine/fcitx/openbangla-addon.conf
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ OnDemand=True
Configurable=True

[Dependencies]
0=core:5.0.6
0=core:5.0.5
38 changes: 20 additions & 18 deletions src/engine/fcitx/openbangla.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/
#include "openbangla.h"
#include "keycode.h"
#include "riti.h"
#include <fcitx-utils/log.h>
#include <fcitx-utils/misc.h>
#include <fcitx-utils/utf8.h>
Expand All @@ -36,7 +35,7 @@ namespace fcitx {
class OpenBanglaState : public InputContextProperty {
public:
OpenBanglaState(OpenBanglaEngine *engine, InputContext &ic)
: engine_(engine), ic_(&ic), ctx_(riti_context_new()) {}
: engine_(engine), ic_(&ic), ctx_(riti_context_new_with_config(engine->getRitiConfig())) {}

~OpenBanglaState() {}

Expand Down Expand Up @@ -176,7 +175,8 @@ class OpenBanglaState : public InputContextProperty {

auto ctx = ctx_.get();
if (!riti_context_ongoing_input_session(ctx)) {
riti_context_update_engine(ctx);
engine_->reloadConfig();
riti_context_update_engine(ctx, engine_->getRitiConfig());
}
auto candidateList = ic_->inputPanel().candidateList();
// At first, handle the special keys.
Expand Down Expand Up @@ -334,7 +334,7 @@ class OpenBanglaState : public InputContextProperty {
};

OpenBanglaEngine::OpenBanglaEngine(Instance *instance)
: instance_(instance), factory_([this](InputContext &ic) {
: instance_(instance), cfg_(riti_config_new()), factory_([this](InputContext &ic) {
return new OpenBanglaState(this, ic);
}) {
if (!fs::makePath(stringutils::joinPath(
Expand Down Expand Up @@ -387,8 +387,10 @@ void OpenBanglaEngine::populateConfig(const RawConfig &config) {
booleanValue(config, "settings/PreviewWin\\IncludeEnglishPhonetic", true);
const bool showPrevWinFixed =
booleanValue(config, "settings/FixedLayout\\ShowPrevWin", true);
const bool includeEnglishFixed =
booleanValue(config, "settings/PreviewWin\\IncludeEnglishFixed", true);
const bool autoVowelFormFixed =
booleanValue(config, "settings/ixedLayout\\AutoVowelForm", true);
booleanValue(config, "settings/FixedLayout\\AutoVowelForm", true);
const bool autoChandraPosFixed =
booleanValue(config, "settings/FixedLayout\\AutoChandraPos", true);
const bool traditionalKarFixed =
Expand All @@ -397,19 +399,19 @@ void OpenBanglaEngine::populateConfig(const RawConfig &config) {
booleanValue(config, "settings/FixedLayout\\OldReph", true);
const bool numberPadFixed =
booleanValue(config, "settings/FixedLayout\\NumberPad", true);
setenv("RITI_LAYOUT_FILE", layoutPath.data(), 1);
setenv("RITI_PHONETIC_DATABASE_ON", showCWPhonetic ? "true" : "false", 1);
setenv("RITI_PHONETIC_INCLUDE_ENGLISH",
includeEnglishPrevWin ? "true" : "false", 1);
setenv("RITI_DATABASE_DIR", "/usr/share/openbangla-keyboard/data", 1);
setenv("RITI_LAYOUT_FIXED_DATABASE_ON", showPrevWinFixed ? "true" : "false",
1);
setenv("RITI_LAYOUT_FIXED_VOWEL", autoVowelFormFixed ? "true" : "false", 1);
setenv("RITI_LAYOUT_FIXED_CHANDRA", autoChandraPosFixed ? "true" : "false",
1);
setenv("RITI_LAYOUT_FIXED_KAR", traditionalKarFixed ? "true" : "false", 1);
setenv("RITI_LAYOUT_FIXED_OLD_REPH", oldReph ? "true" : "false", 1);
setenv("RITI_LAYOUT_FIXED_NUMBERPAD", numberPadFixed ? "true" : "false", 1);

riti_config_set_layout_file(cfg_.get(), layoutPath.data());
riti_config_set_phonetic_suggestion(cfg_.get(), showCWPhonetic);
riti_config_set_phonetic_include_english(cfg_.get(), includeEnglishPrevWin);
riti_config_set_database_dir(cfg_.get(), "/usr/share/openbangla-keyboard/data");
riti_config_set_fixed_suggestion(cfg_.get(), showPrevWinFixed);
riti_config_set_fixed_include_english(cfg_.get(), includeEnglishFixed);
riti_config_set_fixed_auto_vowel(cfg_.get(), autoVowelFormFixed);
riti_config_set_fixed_auto_chandra(cfg_.get(), autoChandraPosFixed);
riti_config_set_fixed_traditional_kar(cfg_.get(), traditionalKarFixed);
riti_config_set_fixed_old_reph(cfg_.get(), oldReph);
riti_config_set_fixed_numpad(cfg_.get(), numberPadFixed);

candidateWinHorizontal_ =
booleanValue(config, "settings/CandidateWin\\Horizontal", true);
enterKeyClosesPrevWin_ =
Expand Down
6 changes: 5 additions & 1 deletion src/engine/fcitx/openbangla.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#ifndef _FCITX5_OPENBANGLA_OPENBANGLA_H_
#define _FCITX5_OPENBANGLA_OPENBANGLA_H_

#include "riti.h"
#include <fcitx-config/configuration.h>
#include <fcitx-config/iniparser.h>
#include <fcitx-utils/i18n.h>
Expand All @@ -36,7 +37,7 @@ class OpenBanglaState;
FCITX_CONFIGURATION(OpenBanglaConfig,
ExternalOption config{this, "OpenBanglaKeyboard",
_("OpenBangla Keyboard"),
PROJECT_DATADIR "/openbangla-gui"};);
LIBEXECDIR "/openbangla-keyboard/openbangla-gui"};);

class OpenBanglaEngine final : public InputMethodEngine {
public:
Expand All @@ -53,6 +54,8 @@ class OpenBanglaEngine final : public InputMethodEngine {

const Configuration *getConfig() const override { return &config_; }

auto getRitiConfig() const { return cfg_.get(); }

auto candidateWinHorizontal() const { return candidateWinHorizontal_; }
auto enterKeyClosesPrevWin() const { return enterKeyClosesPrevWin_; }

Expand All @@ -61,6 +64,7 @@ class OpenBanglaEngine final : public InputMethodEngine {

Instance *instance_;
OpenBanglaConfig config_;
UniqueCPtr<Config, riti_config_free> cfg_;
FactoryFor<OpenBanglaState> factory_;
int64_t lastConfigTimestamp_ = std::numeric_limits<int64_t>::min();
bool candidateWinHorizontal_ = true;
Expand Down
1 change: 0 additions & 1 deletion src/engine/ibus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ include_directories(../riti/include ../../shared ${IBUS_INCLUDE_DIRS})
add_executable(ibus-engine-openbangla main.cpp)
target_link_libraries(ibus-engine-openbangla riti libShared Qt5::Core ${IBUS_LIBRARIES} dl pthread)

## Configure the files
configure_file(${CMAKE_SOURCE_DIR}/data/openbangla.xml.in ${CMAKE_BINARY_DIR}/data/openbangla.xml)

install(FILES ${CMAKE_BINARY_DIR}/data/openbangla.xml
Expand Down

0 comments on commit 4cd4c1e

Please sign in to comment.