X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2Faliasmanager.h;h=c72f57dd19b0d37f0d5d1f65148f4ee43c392b09;hb=0bc4b2b4a25adea85d5f6c6947cfd31f9098149e;hp=8ae54cdff7d72ba1c17cb4920694995a1ecf405d;hpb=8179670f13fbbdd5cbcd7fb4a3dc187913ee9ba3;p=quassel.git diff --git a/src/common/aliasmanager.h b/src/common/aliasmanager.h index 8ae54cdf..c72f57dd 100644 --- a/src/common/aliasmanager.h +++ b/src/common/aliasmanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,9 +21,12 @@ #ifndef ALIASMANAGER_H #define ALIASMANAGER_H +#include + +#include "bufferinfo.h" #include "syncableobject.h" -#include +class Network; class AliasManager : public SyncableObject { Q_OBJECT @@ -31,7 +34,7 @@ class AliasManager : public SyncableObject { public: inline AliasManager(QObject *parent = 0) : SyncableObject(parent) { setAllowClientUpdates(true); } AliasManager &operator=(const AliasManager &other); - + struct Alias { QString name; QString expansion; @@ -45,24 +48,32 @@ public: 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 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 void addAlias(const QString &name, const QString &expansion); - + protected: 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: + 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; };