Advertisement
Guest User

Untitled

a guest
Jun 20th, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.88 KB | None | 0 0
  1. #include "settings.h"
  2. #include "debug.h"
  3.  
  4. #include <QMetaType>
  5. #include <MGConfItem>
  6.  
  7. QString databaseUrl = Settings.databaseUrl();
  8.  
  9.  
  10. class Settings::Private
  11. {
  12. public:
  13.     Private(Settings *parent);
  14.  
  15. private:
  16.     Settings *q;
  17. public:
  18.     static Settings *server;
  19.     QString errorString;
  20.     MGConfItem language;
  21.     MGConfItem japaneseInputMethodType;
  22.     MGConfItem flickDistance;
  23.     MGConfItem tsuModifyOrder;
  24.     MGConfItem smallKaKe;
  25.     MGConfItem pushWubi;
  26.     MGConfItem pushAsso;
  27.     MGConfItem showGuideAfter;
  28.     MGConfItem foregroundColor;
  29.     MGConfItem backgroundColor;
  30.     MGConfItem databaseUrl;
  31.     MGConfItem twinkleSource;
  32.     MGConfItem twinkleVolume;
  33.     MGConfItem twinkleBurst;
  34. };
  35.  
  36. Settings *Settings::Private::server = 0;
  37.  
  38. Settings::Private::Private(Settings *parent)
  39.     : q(parent)
  40.     , language("/meegotouch/inputmethods/plugins/wubiCN/language")
  41.     , japaneseInputMethodType("/meegotouch/inputmethods/plugins/wubiCN/romaji/active")
  42.     , flickDistance("/meegotouch/inputmethods/plugins/wubiCN/flick/distance")
  43.     , tsuModifyOrder("/meegotouch/inputmethods/plugins/wubiCN/flick/tsu")
  44.     , smallKaKe("/meegotouch/inputmethods/plugins/wubiCN/flick/xkaxke")
  45.     , pushWubi("/meegotouch/inputmethods/plugins/wubiCN/pushWubi")
  46.     , pushAsso("/meegotouch/inputmethods/plugins/wubiCN/pushAsso")
  47.     , showGuideAfter("/meegotouch/inputmethods/plugins/wubiCN/flick/show_guide_after")
  48.     , backgroundColor("/meegotouch/inputmethods/plugins/wubiCN/background/color")
  49.     , foregroundColor("/meegotouch/inputmethods/plugins/wubiCN/foreground/color")
  50.     , databaseUrl("/meegotouch/inputmethods/plugins/wubiCN/databaseUrl")
  51.     , twinkleSource("/meegotouch/inputmethods/plugins/wubiCN/twinkle/source")
  52.     , twinkleVolume("/meegotouch/inputmethods/plugins/wubiCN/twinkle/volume")
  53.     , twinkleBurst("/meegotouch/inputmethods/plugins/wubiCN/twinkle/burst")
  54. {
  55.     testDebugIn();
  56.     qRegisterMetaType<Settings::JapaneseInputMethodType>("Settings::JapaneseInputMethodType");
  57.     qRegisterMetaType<Settings::TsuModifyOrder>("Settings::TsuModifyOrder");
  58.  
  59.     connect(&language, SIGNAL(valueChanged()), q, SIGNAL(languageChanged()));
  60.     connect(&japaneseInputMethodType, SIGNAL(valueChanged()), q, SIGNAL(japaneseInputMethodTypeChanged()));
  61.     connect(&flickDistance, SIGNAL(valueChanged()), q, SIGNAL(flickDistanceChanged()));
  62.     connect(&tsuModifyOrder, SIGNAL(valueChanged()), q, SIGNAL(tsuModifyOrderChanged()));
  63.     connect(&smallKaKe, SIGNAL(valueChanged()), q, SIGNAL(smallKaKeChanged()));
  64.     connect(&pushWubi, SIGNAL(valueChanged()), q, SIGNAL(pushWubiChanged()));
  65.     connect(&pushAsso, SIGNAL(valueChanged()), q, SIGNAL(pushAssoChanged()));
  66.     connect(&showGuideAfter, SIGNAL(valueChanged()), q, SIGNAL(showGuideAfterChanged()));
  67.     connect(&foregroundColor, SIGNAL(valueChanged()), q, SIGNAL(foregroundColorChanged()));
  68.     connect(&backgroundColor, SIGNAL(valueChanged()), q, SIGNAL(backgroundColorChanged()));
  69.     connect(&databaseUrl, SIGNAL(valueChanged()), q, SIGNAL(databaseUrlChanged()));
  70.     connect(&twinkleSource, SIGNAL(valueChanged()), q, SIGNAL(twinkleSourceChanged()));
  71.     connect(&twinkleVolume, SIGNAL(valueChanged()), q, SIGNAL(twinkleVolumeChanged()));
  72.     connect(&twinkleBurst, SIGNAL(valueChanged()), q, SIGNAL(twinkleBurstChanged()));
  73.  
  74.     if (language.value().isNull())
  75.         language.set("简体五笔");
  76.  
  77.     if (flickDistance.value().isNull())
  78.         flickDistance.set(24);
  79.  
  80.     if (smallKaKe.value().isNull())
  81.         smallKaKe.set(false);
  82.  
  83.     if (pushAsso.value().isNull())
  84.         pushAsso.set(true);
  85.  
  86.     if (showGuideAfter.value().isNull())
  87.         showGuideAfter.set(512);
  88.  
  89.     if (foregroundColor.value().isNull())
  90.         foregroundColor.set("white");
  91.  
  92.     if (backgroundColor.value().isNull())
  93.         backgroundColor.set("black");
  94.  
  95.     if (twinkleSource.value().isNull())
  96.         twinkleSource.set("1.png");
  97.     if (twinkleSource.value().toString() == QLatin1String("star.png"))
  98.         twinkleSource.set("1.png");
  99.  
  100.     if (twinkleVolume.value().isNull())
  101.         twinkleVolume.set(25);
  102.  
  103.     if (twinkleBurst.value().isNull())
  104.         twinkleBurst.set(false);
  105.  
  106.     if (pushWubi.value().isNull())
  107.         pushWubi.set(true);
  108.  
  109.     testDebugOut();
  110. }
  111.  
  112. Settings::Settings(QObject *parent)
  113.     : QObject(parent)
  114. {
  115.     testDebugIn() << parent;
  116.     d = new Private(this);
  117.     testDebugOut();
  118.  
  119. }
  120.  
  121. Settings::~Settings()
  122. {
  123.     delete d;
  124. }
  125.  
  126. QString Settings::language() const
  127. {
  128.     return d->language.value().toString();
  129. }
  130.  
  131. void Settings::setLanguage(const QString &language)
  132. {
  133.     d->language.set(language);
  134. }
  135.  
  136. Settings::JapaneseInputMethodType Settings::japaneseInputMethodType() const
  137. {
  138.     return (Settings::JapaneseInputMethodType)d->japaneseInputMethodType.value().toInt();
  139. }
  140.  
  141. void Settings::setJapaneseInputMethodType(JapaneseInputMethodType japaneseInputMethodType)
  142. {
  143.     testDebugIn() << japaneseInputMethodType;
  144.     d->japaneseInputMethodType.set((int)qBound(JapaneseRomaji, japaneseInputMethodType, JapaneseRomaji));
  145.     testDebugOut();
  146. }
  147.  
  148. int Settings::flickDistance() const
  149. {
  150.     return d->flickDistance.value().toInt();
  151. }
  152.  
  153. void Settings::setFlickDistance(int flickDistance)
  154. {
  155.     testDebugIn() << flickDistance;
  156.     d->flickDistance.set(qBound(12, flickDistance, 44));
  157.     testDebugOut();
  158. }
  159.  
  160. Settings::TsuModifyOrder Settings::tsuModifyOrder() const
  161. {
  162.     return (Settings::TsuModifyOrder)d->tsuModifyOrder.value().toInt();
  163. }
  164.  
  165. void Settings::setTsuModifyOrder(Settings::TsuModifyOrder tsuModifyOrder)
  166. {
  167.     d->tsuModifyOrder.set((int)qBound(XtsuFirst, tsuModifyOrder, DsuFirst));
  168. }
  169.  
  170. bool Settings::smallKaKe() const
  171. {
  172.     return d->smallKaKe.value().toBool();
  173. }
  174.  
  175. void Settings::setSmallKaKe(bool smallKaKe)
  176. {
  177.     d->smallKaKe.set(smallKaKe);
  178. }
  179.  
  180. bool Settings::pushWubi() const
  181. {
  182.     return d->pushWubi.value().toInt();
  183. }
  184.  
  185. void Settings::setPushWubi(bool pushWubi)
  186. {
  187.     d->pushWubi.set(pushWubi);
  188. }
  189.  
  190. bool Settings::pushAsso() const
  191. {
  192.     return d->pushAsso.value().toInt();
  193. }
  194.  
  195. void Settings::setShowGuide(bool pushAsso)
  196. {
  197.     d->pushAsso.set(pushAsso);
  198. }
  199.  
  200. int Settings::showGuideAfter() const
  201. {
  202.     return d->showGuideAfter.value().toInt();
  203. }
  204.  
  205. void Settings::setShowGuideAfter(int showGuideAfter)
  206. {
  207.     d->showGuideAfter.set(qBound(0, showGuideAfter, 1000));
  208. }
  209.  
  210. QColor Settings::foregroundColor() const
  211. {
  212.     return d->foregroundColor.value().value<QColor>();
  213. }
  214.  
  215. void Settings::setForegroundColor(const QColor &foregroundColor)
  216. {
  217.     d->foregroundColor.set(foregroundColor.name());
  218. }
  219.  
  220. QColor Settings::backgroundColor() const
  221. {
  222.     return d->backgroundColor.value().value<QColor>();
  223. }
  224.  
  225. void Settings::setBackgroundColor(const QColor &backgroundColor)
  226. {
  227.     d->backgroundColor.set(backgroundColor.name());
  228. }
  229.  
  230. QString Settings::databaseUrl() const
  231. {
  232.     return d->databaseUrl.value().toString();
  233. }
  234.  
  235. void Settings::setDatabaseUrl(const QString &databaseUrl)
  236. {
  237.     d->databaseUrl.set(databaseUrl);
  238. }
  239.  
  240. QString Settings::twinkleSource() const
  241. {
  242.     return d->twinkleSource.value().toString();
  243. }
  244.  
  245. void Settings::setTwinkleSource(const QString &twinkleSource)
  246. {
  247.     d->twinkleSource.set(twinkleSource);
  248. }
  249.  
  250. int Settings::twinkleVolume() const
  251. {
  252.     return d->twinkleVolume.value().toInt();
  253. }
  254.  
  255. void Settings::setTwinkleVolume(int twinkleVolume)
  256. {
  257.     d->twinkleVolume.set(twinkleVolume);
  258. }
  259.  
  260. bool Settings::twinkleBurst() const
  261. {
  262.     return d->twinkleBurst.value().toReal();
  263. }
  264.  
  265. void Settings::setTwinkleBurst(bool twinkleBurst)
  266. {
  267.     d->twinkleBurst.set(twinkleBurst);
  268. }
  269.  
  270. QString Settings::errorString() const
  271. {
  272.     return d->errorString;
  273. }
  274.  
  275. void Settings::setErrorString(const QString &errorString)
  276. {
  277.     if (d->errorString == errorString) return;
  278.     testDebugOn();
  279.     testDebugIn() << errorString;
  280.     d->errorString = errorString;
  281.     emit errorStringChanged(errorString);
  282.     testDebugOut();
  283.     testDebugOff();
  284. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement