#include "types.h"
-class InputLine;
+class MultiLineEdit;
class IrcUser;
class Network;
Q_OBJECT
public:
- TabCompleter(InputLine *inputLine_);
+ enum Type {
+ UserTab = 0x01,
+ ChannelTab = 0x02
+ };
+
+ explicit TabCompleter(MultiLineEdit *inputLine_);
void reset();
void complete();
virtual bool eventFilter(QObject *obj, QEvent *event);
private:
+
struct CompletionKey {
- inline CompletionKey(const QString &n) { nick = n; }
+ inline CompletionKey(const QString &n) { contents = n; }
bool operator<(const CompletionKey &other) const;
- QString nick;
+ QString contents;
};
- QPointer<InputLine> inputLine;
- bool enabled;
- QString nickSuffix;
+ QPointer<MultiLineEdit> _lineEdit;
+ bool _enabled;
+ QString _nickSuffix;
static const Network *_currentNetwork;
static BufferId _currentBufferId;
+ static QString _currentBufferName;
+ static Type _completionType;
- QMap<CompletionKey, QString> completionMap;
+ QMap<CompletionKey, QString> _completionMap;
// QStringList completionTemplates;
- QMap<CompletionKey, QString>::Iterator nextCompletion;
- int lastCompletionLength;
+ QMap<CompletionKey, QString>::Iterator _nextCompletion;
+ int _lastCompletionLength;
void buildCompletionList();