aboutsummaryrefslogtreecommitdiff
path: root/src/server/QXmppServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/QXmppServer.cpp')
-rw-r--r--src/server/QXmppServer.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/server/QXmppServer.cpp b/src/server/QXmppServer.cpp
index b329053d..0027aa6f 100644
--- a/src/server/QXmppServer.cpp
+++ b/src/server/QXmppServer.cpp
@@ -391,14 +391,24 @@ QXmppLogger *QXmppServer::logger()
void QXmppServer::setLogger(QXmppLogger *logger)
{
- if (d->logger)
- QObject::disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
- d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
- d->logger = logger;
- d->logger = logger;
- if (d->logger)
- connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
- d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ if (logger != d->logger) {
+ if (d->logger) {
+ disconnect(this, SIGNAL(incrementCounter(QString)),
+ d->logger, SLOT(incrementCounter(QString)));
+ disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ }
+
+ d->logger = logger;
+ if (d->logger) {
+ connect(this, SIGNAL(incrementCounter(QString)),
+ d->logger, SLOT(incrementCounter(QString)));
+ connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ }
+
+ emit loggerChanged(d->logger);
+ }
}
/// Returns the password checker used to verify client credentials.