aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp')
-rw-r--r--src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp b/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp
index 285cd1b9..d1f29974 100644
--- a/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp
+++ b/src-qt5/desktop-utils/lumina-textedit/PlainTextEditor.cpp
@@ -291,6 +291,7 @@ void PlainTextEditor::LNW_updateWidth(){
void PlainTextEditor::LNW_highlightLine(){
QList<QTextEdit::ExtraSelection> sels;
+
foreach(Word *word, wordList) { sels.append(word->sel); };
if(this->isReadOnly()){ return; }
QColor highC = QColor(0,0,0,50); //just darken the line a bit
@@ -388,19 +389,34 @@ void PlainTextEditor::updateLNW(){
LNW_updateWidth();
}
+Word *PlainTextEditor::wordAtPosition(int blockNum, int pos) {
+ foreach(Word *word, wordList) {
+ //qDebug() << word->word << "WordBlock:" << word->blockNum << "Block:" << blockNum << "WordPos:" << word->position << "Pos:" << pos;
+ if(word->blockNum == blockNum and pos >= word->position and pos <= word->position+word->word.length())
+ return word;
+ }
+ return NULL;
+}
+
void PlainTextEditor::contextMenuEvent(QContextMenuEvent *ev){
QMenu *menu = createStandardContextMenu();
- qDebug() << this->textCursor().blockNumber() << this->textCursor().columnNumber() << this->textCursor().position();
- /*QMenu *menu = new QMenu();
- QString word = "";
- foreach(Word *word, wordList) {
+ /*qDebug() << this->textCursor().blockNumber() << this->textCursor().positionInBlock();
+ Word *word = wordAtPosition(this->textCursor().blockNumber(), this->textCursor().positionInBlock());
+ QList<QAction*> suggestionList;
+ if(word != NULL) {
foreach(QString word, word->suggestions) {
QAction *suggestionAction = menu->addAction(word);
+ connect(suggestionAction, &QAction::triggered, this, [=]() { Something });
+ suggestionList.append(suggestionAction);
}
- }
- menu->addSeparator();
- QAction *ignoreAll = menu->addAction(tr("Ignore All"));
- QAction *addToDictionary = menu->addAction(tr("Add to Dictionary"));*/
+ menu->addSeparator();
+ QAction *ignore = menu->addAction(tr("Ignore"));
+ connect(ignore, &QAction::triggered, this, [word]() { word->ignore(); });
+ QAction *ignoreAll = menu->addAction(tr("Ignore All"));
+ connect(ignoreAll, &QAction::triggered, this, [=]() { foreach(Word *wordP, wordList) { if(wordP->word == word->word) { wordP->ignore(); }} });
+ QAction *addToDictionary = menu->addAction(tr("Add to Dictionary"));
+ connect(addToDictionary, &QAction::triggered, this, [word, this]() { hunspell->add(word->word.toStdString()); });
+ }*/
menu->exec(ev->globalPos());
delete menu;
}
@@ -410,7 +426,7 @@ void PlainTextEditor::keyPressEvent(QKeyEvent *ev) {
if(ev->matches(QKeySequence::Paste) or ev->matches(QKeySequence::Cut)) {
QClipboard *clipboard = QGuiApplication::clipboard();
int epos = this->textCursor().position() + clipboard->text().size();
- qDebug() << this->textCursor().position() << epos;
+ //qDebug() << this->textCursor().position() << epos;
QTimer::singleShot(100, this, [=]() { emit CheckSpelling(this->textCursor().position(), epos); });
}
bgstack15