session = new IrcSession(this);
mSsl=false;
- QObject::connect(session,SIGNAL(connected()),this,SIGNAL(connected()));
- QObject::connect(session,SIGNAL(disconnected()),this,SIGNAL(disconnected()));
- QObject::connect(session,SIGNAL(disconnected()),this,SLOT(reconnect()));
+ QObject::connect(session, &IrcSession::connected, [this](){
+ connectedChanged();
+ connected();
+ });
+
+ QObject::connect(session, &IrcSession::disconnected, [this](){
+ connectedChanged();
+ disconnected();
+ reconnect();
+ });
+
QObject::connect(session,SIGNAL(socketError(QAbstractSocket::SocketError)),this,SLOT(socketError(QAbstractSocket::SocketError)));
QObject::connect(session,SIGNAL(connecting()),this,SIGNAL(connecting()));
QObject::connect(session,SIGNAL(messageReceived(IrcMessage*)),this,SLOT(messageReceived(IrcMessage*)));
}
+bool IrcCommunication::isConnected()
+{
+ return session->isConnected();
+}
+
void IrcCommunication::announce(QString s)
{
qDebug()<<"channels: "<<mChannels;
Q_OBJECT
Q_PROPERTY(QStringList channels READ channels WRITE setChannels)
Q_PROPERTY(bool ssl WRITE setSsl)
+ Q_PROPERTY(bool isConnected READ isConnected NOTIFY connectedChanged)
public:
IrcCommunication(std::map<std::string, std::string> config, QObject* parent=0);
QStringList channels() { return mChannels; }
void setChannels(QStringList c) { mChannels = c; }
+ bool isConnected();
+
public Q_SLOTS:
void respond(QString target, QString msg);
void announce(QString);
void connecting();
void connected();
void disconnected();
+ void connectedChanged();
private:
bool mSsl;