const Network *TabCompleter::_currentNetwork;
BufferId TabCompleter::_currentBufferId;
QString TabCompleter::_currentBufferName;
+TabCompleter::Type TabCompleter::_completionType;
TabCompleter::TabCompleter(MultiLineEdit *_lineEdit)
: QObject(_lineEdit),
_completionType = ChannelTab;
foreach(IrcChannel *ircChannel, _currentNetwork->ircChannels()) {
if(regex.indexIn(ircChannel->name()) > -1)
- _completionMap[CompletionKey(ircChannel->name(), ChannelTab)] = ircChannel->name();
+ _completionMap[ircChannel->name()] = ircChannel->name();
}
} else {
// user completion
return;
foreach(IrcUser *ircUser, channel->ircUsers()) {
if(regex.indexIn(ircUser->nick()) > -1)
- _completionMap[CompletionKey(ircUser->nick().toLower(), UserTab)] = ircUser->nick();
+ _completionMap[ircUser->nick().toLower()] = ircUser->nick();
}
}
break;
case BufferInfo::QueryBuffer:
if(regex.indexIn(_currentBufferName) > -1)
- _completionMap[CompletionKey(_currentBufferName.toLower(), UserTab)] = _currentBufferName;
+ _completionMap[_currentBufferName.toLower()] = _currentBufferName;
case BufferInfo::StatusBuffer:
if(!_currentNetwork->myNick().isEmpty() && regex.indexIn(_currentNetwork->myNick()) > -1)
- _completionMap[CompletionKey(_currentNetwork->myNick().toLower(), UserTab)] = _currentNetwork->myNick();
+ _completionMap[_currentNetwork->myNick().toLower()] = _currentNetwork->myNick();
break;
default:
return;
// this determines the sort order
bool TabCompleter::CompletionKey::operator<(const CompletionKey &other) const {
- switch(this->type) {
+ switch(_completionType) {
case UserTab:
{
IrcUser *thisUser = _currentNetwork->ircUser(this->contents);
Q_OBJECT
public:
+ enum Type {
+ UserTab = 0x01,
+ ChannelTab = 0x02
+ };
+
explicit TabCompleter(MultiLineEdit *inputLine_);
void reset();
virtual bool eventFilter(QObject *obj, QEvent *event);
private:
- enum Type {
- UserTab = 0x01,
- ChannelTab = 0x02
- };
struct CompletionKey {
- inline CompletionKey(const QString &n, const Type t) { contents = n; type = t; }
+ inline CompletionKey(const QString &n) { contents = n; }
bool operator<(const CompletionKey &other) const;
- Type type;
QString contents;
};
static const Network *_currentNetwork;
static BufferId _currentBufferId;
static QString _currentBufferName;
+ static Type _completionType;
QMap<CompletionKey, QString> _completionMap;
// QStringList completionTemplates;
- Type _completionType;
QMap<CompletionKey, QString>::Iterator _nextCompletion;
int _lastCompletionLength;