summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeng Huang <shawn.p.huang@gmail.com>2010-04-15 15:24:26 +0800
committerPeng Huang <shawn.p.huang@gmail.com>2010-04-15 15:25:26 +0800
commit9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2 (patch)
treed83120974e4b036428ea40ac9b7de3a00568159f /src
parent547f5f2edf23027731a3e9f13f2de60a32224c9f (diff)
downloadibus-libpinyin-9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2.tar.gz
ibus-libpinyin-9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2.tar.xz
ibus-libpinyin-9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2.zip
Add special phrases in setup ui
Diffstat (limited to 'src')
-rw-r--r--src/Config.cc5
-rw-r--r--src/Config.h2
-rw-r--r--src/SpecialPhraseTable.cc3
-rw-r--r--src/phrases.txt2
4 files changed, 12 insertions, 0 deletions
diff --git a/src/Config.cc b/src/Config.cc
index c328d8e..e01d40f 100644
--- a/src/Config.cc
+++ b/src/Config.cc
@@ -23,6 +23,7 @@ gboolean Config::m_init_full = FALSE;
gboolean Config::m_init_full_punct = TRUE;
gboolean Config::m_init_simp_chinese = TRUE;
gboolean Config::m_trad_candidate = FALSE;
+gboolean Config::m_special_phrases = TRUE;
static const StaticString engine_pinyin ("engine/Pinyin");
static const StaticString correct_pinyin ("CorrectPinyin");
@@ -44,6 +45,7 @@ static const StaticString init_full ("InitFull");
static const StaticString init_full_punct ("InitFullPunct");
static const StaticString init_simp_chinese ("InitSimplifiedChinese");
static const StaticString trad_candidate ("TradCandidate");
+static const StaticString special_phrases ("SpecialPhrases");
static const struct {
StaticString name;
@@ -106,6 +108,7 @@ Config::readDefaultValues (void)
m_init_simp_chinese = read (engine_pinyin, init_simp_chinese, true);
m_trad_candidate = read (engine_pinyin, trad_candidate, false);
+ m_special_phrases = read (engine_pinyin, special_phrases, true);
/* others */
m_orientation = read (engine_pinyin, PY::orientation, 0);
@@ -216,6 +219,8 @@ Config::valueChangedCallback (IBusConfig *config,
m_init_simp_chinese = normalizeGValue (value, true);
else if (trad_candidate == name)
m_trad_candidate = normalizeGValue (value, false);
+ else if (special_phrases == name)
+ m_special_phrases = normalizeGValue (value, true);
/* lookup table page size */
else if (PY::orientation == name) {
m_orientation = normalizeGValue (value, 0);
diff --git a/src/Config.h b/src/Config.h
index 5d0f83b..07f16f1 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -31,6 +31,7 @@ public:
static gboolean initFullPunct (void) { return m_init_full_punct; }
static gboolean initSimpChinese (void) { return m_init_simp_chinese; }
static gboolean tradCandidate (void) { return m_trad_candidate; }
+ static gboolean specialPhrases (void) { return m_special_phrases; }
private:
bool read (const gchar *section, const gchar *name, bool defval);
@@ -65,6 +66,7 @@ private:
static gboolean m_init_full_punct;
static gboolean m_init_simp_chinese;
static gboolean m_trad_candidate;
+ static gboolean m_special_phrases;
};
};
diff --git a/src/SpecialPhraseTable.cc b/src/SpecialPhraseTable.cc
index c4dc71e..ee5a811 100644
--- a/src/SpecialPhraseTable.cc
+++ b/src/SpecialPhraseTable.cc
@@ -1,6 +1,7 @@
#include <iostream>
#include <fstream>
#include <string>
+#include "Config.h"
#include "DynamicSpecialPhrase.h"
#include "SpecialPhraseTable.h"
@@ -60,6 +61,8 @@ SpecialPhraseTable::lookup (const std::string &command,
{
result.clear ();
+ if (!Config::specialPhrases ())
+ return FALSE;
if (m_map.find (command) == m_map.end ())
return FALSE;
diff --git a/src/phrases.txt b/src/phrases.txt
index 1d42b8d..83a8f13 100644
--- a/src/phrases.txt
+++ b/src/phrases.txt
@@ -1,6 +1,8 @@
; ibus 音输入法--自定义短语配置文件
;
; 说明:
+; **注意**
+; 修改后请重新启动输入法,或者运行命令pkill ibus-engine-pinyin
; 格式:
; 英文字符串=短语
; 英文字符串=#动态短语