Skip to content

Commit

Permalink
apply requested changes
Browse files Browse the repository at this point in the history
  • Loading branch information
eagleoflqj committed Apr 2, 2024
1 parent 781b5e0 commit c5f6ac2
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 45 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.6.0)
project(fcitx VERSION 5.1.8)
project(fcitx VERSION 5.1.9)
set(FCITX_VERSION ${PROJECT_VERSION})

find_package(ECM REQUIRED 1.0.0)
Expand Down
8 changes: 1 addition & 7 deletions src/frontend/dbusfrontend/dbusfrontend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -221,13 +221,7 @@ class DBusInputContext1 : public InputContext,
: candidateList->label(i);
labelText = instance->outputFilter(this, labelText);
Text candidateText =
instance->outputFilter(this, candidate.text());
auto comment =
instance->outputFilter(this, candidate.comment());
if (!comment.empty()) {
candidateText.append(" ");
candidateText.append(comment);
}
instance->outputFilter(this, candidate.textWithComment());
candidates.emplace_back(std::make_tuple(
labelText.toString(), candidateText.toString()));
}
Expand Down
10 changes: 10 additions & 0 deletions src/lib/fcitx/candidatelist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,16 @@ void CandidateWord::setComment(Text comment) {
d->comment_ = std::move(comment);
}

Text CandidateWord::textWithComment(std::string separator) const {
FCITX_D();
auto text = d->text_;
if (!d->comment_.empty()) {
text.append(separator);
text.append(d->comment_);
}
return text;
}

bool CandidateWord::isPlaceHolder() const {
FCITX_D();
return d->isPlaceHolder_;
Expand Down
8 changes: 8 additions & 0 deletions src/lib/fcitx/candidatelist.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ class FCITXCORE_EXPORT CandidateWord {
* @since 5.1.9
*/
const Text &comment() const;
/**
* Return text with comment.
*
* @param separator separator between text and comment.
* @return value of comment.
* @since 5.1.9
*/
Text textWithComment(std::string separator = " ") const;

protected:
void setText(Text text);
Expand Down
10 changes: 5 additions & 5 deletions src/lib/fcitx/text.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*/

#include "text.h"
#include <iterator>
#include <stdexcept>
#include <tuple>
#include <vector>
Expand Down Expand Up @@ -55,12 +56,11 @@ void Text::append(std::string str, TextFormatFlags flag) {
d->texts_.emplace_back(std::move(str), flag);
}

void Text::append(const Text &text) {
void Text::append(Text text) {
FCITX_D();
for (const auto &p : text.d_ptr->texts_) {
d->texts_.emplace_back(std::get<std::string>(p),
std::get<TextFormatFlags>(p));
}
std::copy(std::make_move_iterator(text.d_ptr->texts_.begin()),
std::make_move_iterator(text.d_ptr->texts_.end()),
std::back_inserter(d->texts_));
}

const std::string &Text::stringAt(int idx) const {
Expand Down
3 changes: 2 additions & 1 deletion src/lib/fcitx/text.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ class FCITXCORE_EXPORT Text {
/**
* Append another text.
*
* @param text text to append
* @since 5.1.9
*/
void append(const Text &text);
void append(Text text);
const std::string &stringAt(int idx) const;
TextFormatFlags formatAt(int idx) const;
size_t size() const;
Expand Down
10 changes: 2 additions & 8 deletions src/ui/classic/inputwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -339,14 +339,8 @@ std::pair<int, int> InputWindow::update(InputContext *inputContext) {
labelText = instance->outputFilter(inputContext, labelText);
setTextToMultilineLayout(inputContext, labelLayouts_[localIndex],
labelText);
auto candidateText =
instance->outputFilter(inputContext, candidate.text());
auto comment =
instance->outputFilter(inputContext, candidate.comment());
if (!comment.empty()) {
candidateText.append(" ");
candidateText.append(comment);
}
auto candidateText = instance->outputFilter(
inputContext, candidate.textWithComment());
setTextToMultilineLayout(
inputContext, candidateLayouts_[localIndex], candidateText);
localIndex++;
Expand Down
10 changes: 2 additions & 8 deletions src/ui/kimpanel/kimpanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -359,14 +359,8 @@ void Kimpanel::updateInputPanel(InputContext *inputContext) {

labelText = instance->outputFilter(inputContext, labelText);
labels.push_back(labelText.toString());
auto candidateText =
instance->outputFilter(inputContext, candidate.text());
auto comment =
instance->outputFilter(inputContext, candidate.comment());
if (!comment.empty()) {
candidateText.append(" ");
candidateText.append(comment);
}
auto candidateText = instance->outputFilter(
inputContext, candidate.textWithComment());
texts.push_back(candidateText.toString());
attrs.emplace_back("");
}
Expand Down
17 changes: 2 additions & 15 deletions src/ui/virtualkeyboard/virtualkeyboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -420,13 +420,7 @@ std::vector<std::string> VirtualKeyboard::makeCandidateTextList(
}

auto candidateText =
instance_->outputFilter(inputContext, candidate.text());
auto comment =
instance_->outputFilter(inputContext, candidate.comment());
if (!comment.empty()) {
candidateText.append(" ");
candidateText.append(comment);
}
instance_->outputFilter(inputContext, candidate.textWithComment());
candidateTextList.push_back(candidateText.toString());
}

Expand All @@ -445,25 +439,18 @@ std::vector<std::string> VirtualKeyboard::makeBulkCandidateTextList(
auto totalSize = bulkCandidateList->totalSize();
for (int index = 0; (totalSize < 0) || (index < totalSize); index++) {
Text candidateText;
Text comment;
try {
const auto &candidate = bulkCandidateList->candidateFromAll(index);
if (candidate.isPlaceHolder()) {
candidateTextList.push_back("");
continue;
}

candidateText = candidate.text();
comment = candidate.comment();
candidateText = candidate.textWithComment();
} catch (...) {
break;
}
candidateText = instance_->outputFilter(inputContext, candidateText);
comment = instance_->outputFilter(inputContext, comment);
if (!comment.empty()) {
candidateText.append(" ");
candidateText.append(comment);
}
candidateTextList.push_back(candidateText.toString());
}

Expand Down

0 comments on commit c5f6ac2

Please sign in to comment.