diff --git a/tags/tagserver.cpp b/tags/tagserver.cpp index 22baa6701..e578138c2 100644 --- a/tags/tagserver.cpp +++ b/tags/tagserver.cpp @@ -36,27 +36,35 @@ #include #include #endif +#include + +static QString socketName; + +static void deleteSocket() +{ + // Just in case Cantata has crashed, ensure we delete the socket... + if (!socketName.isEmpty()) { + QLocalServer::removeServer(socketName); + } +} TagServer::TagServer(const QString &sockName, int parent) - : socketName(sockName) - , parentPid(parent) + : parentPid(parent) { socket=new QLocalSocket(this); - socket->connectToServer(socketName); + socket->connectToServer(sockName); connect(socket, SIGNAL(readyRead()), SLOT(process())); connect(socket, SIGNAL(disconnected()), qApp, SLOT(quit())); QTimer *timer=new QTimer(this); timer->setSingleShot(false); timer->start(5000); connect(timer, SIGNAL(timeout()), SLOT(checkParent())); + socketName=sockName; + atexit(deleteSocket); } TagServer::~TagServer() { - // Just in case Cantata has crashed, ensure we delete the socket... - if (!socketName.isEmpty()) { - QLocalServer::removeServer(socketName); - } } void TagServer::process() diff --git a/tags/tagserver.h b/tags/tagserver.h index 24e159804..f280a9ca0 100644 --- a/tags/tagserver.h +++ b/tags/tagserver.h @@ -41,7 +41,6 @@ private Q_SLOTS: void checkParent(); private: - QString socketName; int parentPid; QLocalSocket *socket; };