From 3044e6daa08cf54ae6d5c96e973c3bbb8c52ff97 Mon Sep 17 00:00:00 2001 From: yachiyang01 Date: Sat, 13 May 2017 18:46:06 +0800 Subject: [PATCH 1/3] fixed issue 136 and accept more than 1 phrase at a time --- src/model/UserphraseModel.cpp | 71 +++++++++++++++++++++++------------ src/model/UserphraseModel.h | 3 +- 2 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/model/UserphraseModel.cpp b/src/model/UserphraseModel.cpp index 995abeb..7408d2e 100644 --- a/src/model/UserphraseModel.cpp +++ b/src/model/UserphraseModel.cpp @@ -1,4 +1,5 @@ /* + * chewing-editor: Chewing userphrase editor * Copyright (C) 2014 Chewing Development Team @@ -18,7 +19,7 @@ */ #include "UserphraseModel.h" - +#include #include static void logger(void *data, int level, const char *fmt, ...) @@ -194,35 +195,57 @@ void UserphraseModel::exportUserphrase(std::shared_ptr expor QString UserphraseModel::checkBopomofo(const QString &bopomofo) const { QString replaceBopomofo = bopomofo; +<<<<<<< HEAD replaceBopomofo.replace(QString::fromUtf8("一"),QString::fromUtf8("ㄧ")); replaceBopomofo.replace(QString::fromUtf8("丫"),QString::fromUtf8("ㄚ")); - + replaceBopomofo= replaceBopomofo.simplified(); +======= + replaceBopomofo.replace(QString::fromUtf8("ㄧ"),QString::fromUtf8("ㄧ")); + replaceBopomofo.replace(QString::fromUtf8("Y"),QString::fromUtf8("ㄚ")); + replaceBopomofo = replaceBopomofo.simplified(); +<<<<<<< HEAD +>>>>>>> b6e395e5ccd55fb0893a3a5a135af41348ee5dc4 +======= +>>>>>>> b6e395e5ccd55fb0893a3a5a135af41348ee5dc4 return replaceBopomofo; } -void UserphraseModel::add(const QString &phrase, const QString &bopomofo) + +QStringList UserphraseModel::splitPhrases(const QString &phrases) { - QString replaceBopomofo = checkBopomofo(bopomofo); - auto ret = chewing_userphrase_add( - ctx_.get(), - phrase.toUtf8().constData(), - replaceBopomofo.toUtf8().constData()); - - addresult_ = ret; - - if (ret > 0) { - emit beginResetModel(); - userphrase_.insert(Userphrase{ - phrase, - bopomofo - }); - emit endResetModel(); - emit addNewPhraseCompleted(userphrase_[userphrase_.size()-1]); - } else { - qWarning() << "chewing_userphrase_add() returns" << ret; - refresh(); - emit addNewPhraseFailed(); - } + QStringList sections = phrases.split(QRegExp("[,/^]")); + qDebug() << "Section: " << sections << endl; + qDebug() << "size: " << sections.size() << endl << endl; + return sections; +} + +void UserphraseModel::add(const QString &phrases, const QString &bopomofo) +{ + QStringList phraseList = splitPhrases(phrases); + for(int i = 0 ; i < phraseList.size() ; i++) + { + QString phrase = QString(phraseList.at(i).toLocal8Bit().constData()); + qDebug() << "+++++++++PHRASE:" << phrase < 0) { + emit beginResetModel(); + userphrase_.insert(Userphrase{ + phrase, + bopomofo + }); + emit endResetModel(); + emit addNewPhraseCompleted(userphrase_[userphrase_.size()-1]); + } else { + qWarning() << "chewing_userphrase_add() returns" << ret; + refresh(); + emit addNewPhraseFailed(); + } + } } const Userphrase *UserphraseModel::getUserphrase(const QModelIndex& idx) diff --git a/src/model/UserphraseModel.h b/src/model/UserphraseModel.h index 92140bf..9c80ac7 100644 --- a/src/model/UserphraseModel.h +++ b/src/model/UserphraseModel.h @@ -39,7 +39,7 @@ class UserphraseModel final: public QAbstractListModel { UserphraseModel(const UserphraseModel& x) = delete; UserphraseModel& operator=(const UserphraseModel& x) = delete; virtual ~UserphraseModel() = default; - + virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; @@ -65,6 +65,7 @@ class UserphraseModel final: public QAbstractListModel { public slots: void refresh(); void add(const QString &phrase, const QString &bopomofo); + QStringList splitPhrases(const QString &phrases); void importUserphrase(std::shared_ptr importer); void exportUserphrase(std::shared_ptr exporter); void remove(QModelIndexList indexList); From 33a46affe9b0a34f71e74833ae8cb051d7d39c4b Mon Sep 17 00:00:00 2001 From: yachiyang01 Date: Mon, 15 May 2017 15:27:28 +0800 Subject: [PATCH 2/3] fix the issue 136 , accept adding many phrases in a time --- src/model/UserphraseModel.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/model/UserphraseModel.cpp b/src/model/UserphraseModel.cpp index 7408d2e..40e823c 100644 --- a/src/model/UserphraseModel.cpp +++ b/src/model/UserphraseModel.cpp @@ -195,18 +195,11 @@ void UserphraseModel::exportUserphrase(std::shared_ptr expor QString UserphraseModel::checkBopomofo(const QString &bopomofo) const { QString replaceBopomofo = bopomofo; -<<<<<<< HEAD + replaceBopomofo.replace(QString::fromUtf8("一"),QString::fromUtf8("ㄧ")); replaceBopomofo.replace(QString::fromUtf8("丫"),QString::fromUtf8("ㄚ")); replaceBopomofo= replaceBopomofo.simplified(); -======= - replaceBopomofo.replace(QString::fromUtf8("ㄧ"),QString::fromUtf8("ㄧ")); - replaceBopomofo.replace(QString::fromUtf8("Y"),QString::fromUtf8("ㄚ")); - replaceBopomofo = replaceBopomofo.simplified(); -<<<<<<< HEAD ->>>>>>> b6e395e5ccd55fb0893a3a5a135af41348ee5dc4 -======= ->>>>>>> b6e395e5ccd55fb0893a3a5a135af41348ee5dc4 + return replaceBopomofo; } From d8db29abab1b4d4a89635fbdbd58f53142cdf964 Mon Sep 17 00:00:00 2001 From: yachiyang01 Date: Mon, 15 May 2017 15:50:13 +0800 Subject: [PATCH 3/3] delete the debug messages --- src/model/UserphraseModel.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/model/UserphraseModel.cpp b/src/model/UserphraseModel.cpp index 40e823c..9187d5c 100644 --- a/src/model/UserphraseModel.cpp +++ b/src/model/UserphraseModel.cpp @@ -207,8 +207,6 @@ QString UserphraseModel::checkBopomofo(const QString &bopomofo) const QStringList UserphraseModel::splitPhrases(const QString &phrases) { QStringList sections = phrases.split(QRegExp("[,/^]")); - qDebug() << "Section: " << sections << endl; - qDebug() << "size: " << sections.size() << endl << endl; return sections; } @@ -218,7 +216,6 @@ void UserphraseModel::add(const QString &phrases, const QString &bopomofo) for(int i = 0 ; i < phraseList.size() ; i++) { QString phrase = QString(phraseList.at(i).toLocal8Bit().constData()); - qDebug() << "+++++++++PHRASE:" << phrase <