/***************************************************************************
- * Copyright (C) 2005-2014 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
// apparently, using tab as an Action shortcut in an input widget is unreliable on some platforms (e.g. OS/2)
_lineEdit->installEventFilter(this);
ActionCollection *coll = GraphicalUi::actionCollection("General");
- Action *a = coll->addAction("TabCompletionKey", new Action(tr("Tab completion"), coll,
+ QAction *a = coll->addAction("TabCompletionKey", new Action(tr("Tab completion"), coll,
this, SLOT(onTabCompletionKey()), QKeySequence(Qt::Key_Tab)));
a->setEnabled(false); // avoid catching the shortcut
}
if (!_currentNetwork)
return;
- QString tabAbbrev = _lineEdit->text().left(_lineEdit->cursorPosition()).section(QRegExp("[^#\\w\\d-_\\[\\]{}|`^.\\\\]"), -1, -1);
- QRegExp regex(QString("^[-_\\[\\]{}|`^.\\\\]*").append(QRegExp::escape(tabAbbrev)), Qt::CaseInsensitive);
+ QString tabAbbrev = _lineEdit->text().left(_lineEdit->cursorPosition()).section(QRegExp(R"([^#\w\d-_\[\]{}|`^.\\])"), -1, -1);
+ QRegExp regex(QString(R"(^[-_\[\]{}|`^.\\]*)").append(QRegExp::escape(tabAbbrev)), Qt::CaseInsensitive);
// channel completion - add all channels of the current network to the map
if (tabAbbrev.startsWith('#')) {
case BufferInfo::QueryBuffer:
if (regex.indexIn(_currentBufferName) > -1)
_completionMap[_currentBufferName.toLower()] = _currentBufferName;
+ // fallthrough
case BufferInfo::StatusBuffer:
if (!_currentNetwork->myNick().isEmpty() && regex.indexIn(_currentNetwork->myNick()) > -1)
_completionMap[_currentNetwork->myNick().toLower()] = _currentNetwork->myNick();
_lastCompletionLength += _nickSuffix.length();
}
else if (s.addSpaceMidSentence()) {
- _lineEdit->insert(" ");
+ _lineEdit->addCompletionSpace();
_lastCompletionLength++;
}
if (obj != _lineEdit || event->type() != QEvent::KeyPress)
return QObject::eventFilter(obj, event);
- QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
+ auto *keyEvent = static_cast<QKeyEvent *>(event);
if (keyEvent->key() == GraphicalUi::actionCollection("General")->action("TabCompletionKey")->shortcut()[0])
complete();