X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Faliasmanager.h;h=240d9e5d62e6a14a00b5cf59b1e483d096153d86;hp=cc936cdadefca4f52052c23d62fb5ced1d5ba06a;hb=694f9bfbf7f1af19108461c7e00d133e55082bce;hpb=f824db0e31b54969e0b7fa0b5405b1e9173d482c diff --git a/src/common/aliasmanager.h b/src/common/aliasmanager.h index cc936cda..240d9e5d 100644 --- a/src/common/aliasmanager.h +++ b/src/common/aliasmanager.h @@ -21,50 +21,60 @@ #ifndef ALIASMANAGER_H #define ALIASMANAGER_H +#include + +#include "bufferinfo.h" #include "syncableobject.h" -#include +class Network; -class AliasManager : public SyncableObject { - Q_OBJECT +class AliasManager : public SyncableObject +{ + SYNCABLE_OBJECT + Q_OBJECT public: - inline AliasManager(QObject *parent = 0) : SyncableObject(parent) { setAllowClientUpdates(true); } - AliasManager &operator=(const AliasManager &other); - - struct Alias { - QString name; - QString expansion; - Alias(const QString &name_, const QString &expansion_) : name(name_), expansion(expansion_) {} - }; - typedef QList AliasList ; - - int indexOf(const QString &name) const; - inline bool contains(const QString &name) const { return indexOf(name) != -1; } - inline bool isEmpty() const { return _aliases.isEmpty(); } - inline int count() const { return _aliases.count(); } - inline void removeAt(int index) { _aliases.removeAt(index); } - inline Alias &operator[](int i) { return _aliases[i]; } - inline const Alias &operator[](int i) const { return _aliases[i]; } - inline const AliasList &aliases() const { return _aliases; } - - static AliasList defaults(); + inline AliasManager(QObject *parent = 0) : SyncableObject(parent) { setAllowClientUpdates(true); } + AliasManager &operator=(const AliasManager &other); + + struct Alias { + QString name; + QString expansion; + Alias(const QString &name_, const QString &expansion_) : name(name_), expansion(expansion_) {} + }; + typedef QList AliasList; + + int indexOf(const QString &name) const; + inline bool contains(const QString &name) const { return indexOf(name) != -1; } + inline bool isEmpty() const { return _aliases.isEmpty(); } + inline int count() const { return _aliases.count(); } + inline void removeAt(int index) { _aliases.removeAt(index); } + inline Alias &operator[](int i) { return _aliases[i]; } + inline const Alias &operator[](int i) const { return _aliases.at(i); } + inline const AliasList &aliases() const { return _aliases; } + + static AliasList defaults(); + + typedef QList > CommandList; + + CommandList processInput(const BufferInfo &info, const QString &message); public slots: - virtual QVariantMap initAliases() const; - virtual void initSetAliases(const QVariantMap &aliases); + virtual QVariantMap initAliases() const; + virtual void initSetAliases(const QVariantMap &aliases); + + virtual void addAlias(const QString &name, const QString &expansion); - virtual void addAlias(const QString &name, const QString &expansion); - protected: - void setAliases(const QList &aliases) { _aliases = aliases; } + void setAliases(const QList &aliases) { _aliases = aliases; } + virtual const Network *network(NetworkId) const = 0; // core and client require different access -signals: - void aliasAdded(const QString &name, const QString &expansion); - private: - AliasList _aliases; + void processInput(const BufferInfo &info, const QString &message, CommandList &previousCommands); + void expand(const QString &alias, const BufferInfo &bufferInfo, const QString &msg, CommandList &previousCommands); + AliasList _aliases; }; + #endif //ALIASMANAGER_H