8 #include "inputmethodgroup.h" 14 const std::string emptyString;
20 FCITX_INLINE_DEFINE_DEFAULT_DTOR_COPY_AND_MOVE_WITHOUT_SPEC(
32 std::vector<InputMethodGroupItem> inputMethodList_;
33 std::string defaultInputMethod_;
34 std::string defaultLayout_;
37 InputMethodGroupItem::InputMethodGroupItem(
const std::string &name)
38 : d_ptr(std::make_unique<InputMethodGroupItemPrivate>(name)) {}
42 const std::string &InputMethodGroupItem::name()
const {
47 const std::string &InputMethodGroupItem::layout()
const {
54 builder <<
"InputMethodGroupItem(" << groupItem.name()
55 <<
",layout=" << groupItem.layout() <<
")";
60 InputMethodGroupItem::setLayout(
const std::string &layout) {
66 InputMethodGroup::InputMethodGroup(
const std::string &name)
67 : d_ptr(std::make_unique<InputMethodGroupPrivate>(name)) {}
71 const std::string &InputMethodGroup::name()
const {
76 std::vector<InputMethodGroupItem> &InputMethodGroup::inputMethodList() {
78 return d->inputMethodList_;
81 const std::vector<InputMethodGroupItem> &
82 InputMethodGroup::inputMethodList()
const {
84 return d->inputMethodList_;
87 void InputMethodGroup::setDefaultInputMethod(
const std::string &im) {
89 if (std::any_of(d->inputMethodList_.begin(), d->inputMethodList_.end(),
91 return item.name() == im;
93 if (d->inputMethodList_.size() > 1 &&
94 d->inputMethodList_[0].name() == im) {
95 d->defaultInputMethod_ = d->inputMethodList_[1].name();
97 d->defaultInputMethod_ = im;
100 if (d->inputMethodList_.size() > 1) {
101 d->defaultInputMethod_ = d->inputMethodList_[1].name();
103 d->defaultInputMethod_ = d->inputMethodList_.empty()
105 : d->inputMethodList_[0].name();
110 const std::string &InputMethodGroup::layoutFor(
const std::string &im)
const {
112 auto iter = std::find_if(
113 d->inputMethodList_.begin(), d->inputMethodList_.end(),
115 if (iter != d->inputMethodList_.end()) {
116 return iter->layout();
121 const std::string &InputMethodGroup::defaultInputMethod()
const {
123 return d->defaultInputMethod_;
126 void InputMethodGroup::setDefaultLayout(
const std::string &layout) {
128 d->defaultLayout_ = layout;
131 const std::string &InputMethodGroup::defaultLayout()
const {
133 return d->defaultLayout_;