wizard: don't add space if there is already one, never insert tab
Some checks failed
ci/gh-actions/guix / cache-sources (push) Has been cancelled
ci/gh-actions/guix / aarch64-linux-gnu (push) Has been cancelled
ci/gh-actions/guix / arm-linux-gnueabihf (push) Has been cancelled
ci/gh-actions/guix / x86_64-w64-mingw32.installer (push) Has been cancelled
ci/gh-actions/build / build-ubuntu-without-scanner (push) Has been cancelled
ci/gh-actions/guix / arm64-apple-darwin (push) Has been cancelled
ci/gh-actions/guix / i686-linux-gnu (push) Has been cancelled
ci/gh-actions/guix / riscv64-linux-gnu (push) Has been cancelled
ci/gh-actions/guix / x86_64-apple-darwin (push) Has been cancelled
ci/gh-actions/guix / x86_64-linux-gnu.no-tor-bundle (push) Has been cancelled
ci/gh-actions/guix / x86_64-linux-gnu.pack (push) Has been cancelled
ci/gh-actions/guix / x86_64-linux-gnu (push) Has been cancelled
ci/gh-actions/guix / bundle-logs (push) Has been cancelled
ci/gh-actions/guix / x86_64-w64-mingw32 (push) Has been cancelled

This commit is contained in:
tobtoht 2024-10-14 23:54:55 +02:00
parent 5acbd9a20f
commit 849269f53f
No known key found for this signature in database
GPG key ID: E45B10DD027D2472
3 changed files with 26 additions and 23 deletions

View file

@ -118,13 +118,4 @@ public:
}
};
class SpaceCompleter : public QCompleter {
protected:
QString pathFromIndex(const QModelIndex &index) const override
{
QString completion = QCompleter::pathFromIndex(index);
return completion + ' ';
}
};
#endif //FEATHER_COMPONENTS_H

View file

@ -89,6 +89,9 @@ void TextEdit::insertCompletion(const QString &completion) {
tc.movePosition(QTextCursor::Left);
tc.movePosition(QTextCursor::EndOfWord);
tc.insertText(completion.right(extra));
if (this->document()->characterAt(tc.position()) != ' ') {
tc.insertText(" ");
}
setTextCursor(tc);
}
@ -105,19 +108,28 @@ void TextEdit::focusInEvent(QFocusEvent *e) {
}
void TextEdit::keyPressEvent(QKeyEvent *e) {
if (c && c->popup()->isVisible()) {
// The following keys are forwarded by the completer to the widget
switch (e->key()) {
case Qt::Key_Enter:
case Qt::Key_Return:
case Qt::Key_Escape:
case Qt::Key_Tab:
case Qt::Key_Backtab:
e->ignore();
return; // let the completer do default behavior
default:
break;
}
if (c) {
if (c->popup()->isVisible()) {
// The following keys are forwarded by the completer to the widget
switch (e->key()) {
case Qt::Key_Enter:
case Qt::Key_Return:
case Qt::Key_Escape:
case Qt::Key_Tab:
case Qt::Key_Backtab:
e->ignore();
return; // let the completer do default behavior
default:
break;
}
}
else {
// Never insert a tab char if we have a completer
if (e->key() == Qt::Key_Tab) {
e->accept();
return;
}
}
}
const bool isShortcut = (e->modifiers().testFlag(Qt::ControlModifier) && e->key() == Qt::Key_E); // CTRL+E

View file

@ -43,7 +43,7 @@ private:
int length;
QStringList words;
QStringListModel completerModel;
SpaceCompleter completer;
QCompleter completer;
Seed::Type type;
};