class IrcUser;
class IrcChannel;
+// defined below!
+struct NetworkInfo;
+
// TODO: ConnectionInfo to propagate and sync the current state of NetworkConnection, encodings etcpp
class Network : public SyncableObject {
Q_PROPERTY(QByteArray codecForEncoding READ codecForEncoding WRITE setCodecForEncoding STORED false)
Q_PROPERTY(QByteArray codecForDecoding READ codecForDecoding WRITE setCodecForDecoding STORED false)
Q_PROPERTY(IdentityId identityId READ identity WRITE setIdentity STORED false)
- // Q_PROPERTY(bool isConnected READ isConnected STORED false)
+ Q_PROPERTY(bool isConnected READ isConnected WRITE setConnected STORED false)
public:
Network(const NetworkId &networkid, QObject *parent = 0);
- //virtual ~Network();
+ // ~Network();
NetworkId networkId() const;
bool isChannelName(const QString &channelname) const;
+ bool isConnected() const;
+
QString prefixToMode(const QString &prefix);
QString prefixToMode(const QCharRef &prefix);
QString modeToPrefix(const QString &mode);
QStringList channels() const;
QList<QVariantMap> serverList() const;
+ NetworkInfo networkInfo() const;
+ void setNetworkInfo(const NetworkInfo &);
+
QString prefixes();
QString prefixModes();
IrcChannel *newIrcChannel(const QString &channelname);
IrcChannel *newIrcChannel(const QByteArray &channelname);
- IrcChannel *ircChannel(QString channelname);
- IrcChannel *ircChannel(const QByteArray &channelname);
+ IrcChannel *ircChannel(QString channelname) const;
+ IrcChannel *ircChannel(const QByteArray &channelname) const;
QList<IrcChannel *> ircChannels() const;
quint32 ircChannelCount() const;
public slots:
void setNetworkName(const QString &networkName);
void setCurrentServer(const QString ¤tServer);
+ void setConnected(bool isConnected);
void setMyNick(const QString &mynick);
void setIdentity(IdentityId);
signals:
void networkNameSet(const QString &networkName);
void currentServerSet(const QString ¤tServer);
+ void connectedSet(bool isConnected);
void myNickSet(const QString &mynick);
void identitySet(IdentityId);
QString _myNick;
QString _networkName;
QString _currentServer;
+ bool _connected;
QString _prefixes;
QString _prefixModes;
QList<QVariantMap> _serverList;
//QVariantMap networkSettings;
- //QVariantMap identity;
-
+
QPointer<SignalProxy> _proxy;
void determinePrefixes();
};
+//! Stores all editable information about a network (as opposed to runtime state).
+struct NetworkInfo {
+ NetworkId networkId;
+ IdentityId identity;
+ QString networkName;
+ QByteArray codecForEncoding;
+ QByteArray codecForDecoding;
+ QList<QVariantMap> serverList;
+
+};
+
+
#endif