Browse Source

Update QtSingleApplication.

adaptive-webui-19844
Vladimir Golovnev (Glassez) 11 years ago committed by sledgehammer999
parent
commit
ba1f4a9b7f
  1. 103
      src/qtsingleapp/qtlocalpeer.cpp
  2. 91
      src/qtsingleapp/qtlocalpeer.h
  3. 82
      src/qtsingleapp/qtlockedfile.cpp
  4. 88
      src/qtsingleapp/qtlockedfile.h
  5. 78
      src/qtsingleapp/qtlockedfile_unix.cpp
  6. 84
      src/qtsingleapp/qtlockedfile_win.cpp
  7. 142
      src/qtsingleapp/qtsingleapplication.cpp
  8. 92
      src/qtsingleapp/qtsingleapplication.h
  9. 2
      src/qtsingleapp/qtsingleapplication.pri
  10. 78
      src/qtsingleapp/qtsinglecoreapplication.cpp
  11. 84
      src/qtsingleapp/qtsinglecoreapplication.h

103
src/qtsingleapp/qtlocalpeer.cpp

@ -1,69 +1,60 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#include "qtlocalpeer.h" #include "qtlocalpeer.h"
#include <QtCore/QCoreApplication> #include <QCoreApplication>
#include <QtCore/QTime> #include <QTime>
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
#include <QtCore/QLibrary> #include <QLibrary>
#include <QtCore/qt_windows.h> #include <qt_windows.h>
typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*); typedef BOOL(WINAPI*PProcessIdToSessionId)(DWORD,DWORD*);
static PProcessIdToSessionId pProcessIdToSessionId = 0; static PProcessIdToSessionId pProcessIdToSessionId = 0;
#endif #endif
#if defined(Q_OS_UNIX) #if defined(Q_OS_UNIX)
#include <sys/types.h>
#include <time.h> #include <time.h>
#endif
#if defined(Q_OS_OS2) || defined(Q_OS_UNIX)
#include <unistd.h> #include <unistd.h>
#endif #endif
#include <QtDebug>
namespace QtLP_Private { namespace QtLP_Private {
#include "qtlockedfile.cpp" #include "qtlockedfile.cpp"
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
@ -148,7 +139,7 @@ bool QtLocalPeer::sendMessage(const QString &message, int timeout)
QLocalSocket socket; QLocalSocket socket;
bool connOk = false; bool connOk = false;
for (int i = 0; i < 2; i++) { for(int i = 0; i < 2; i++) {
// Try twice, in case the other instance is just starting up // Try twice, in case the other instance is just starting up
socket.connectToServer(socketName); socket.connectToServer(socketName);
connOk = socket.waitForConnected(timeout/2); connOk = socket.waitForConnected(timeout/2);
@ -169,8 +160,11 @@ bool QtLocalPeer::sendMessage(const QString &message, int timeout)
QDataStream ds(&socket); QDataStream ds(&socket);
ds.writeBytes(uMsg.constData(), uMsg.size()); ds.writeBytes(uMsg.constData(), uMsg.size());
bool res = socket.waitForBytesWritten(timeout); bool res = socket.waitForBytesWritten(timeout);
res &= socket.waitForReadyRead(timeout); // wait for ack if (res) {
res &= (socket.read(qstrlen(ack)) == ack); res &= socket.waitForReadyRead(timeout); // wait for ack
if (res)
res &= (socket.read(qstrlen(ack)) == ack);
}
return res; return res;
} }
@ -196,7 +190,7 @@ void QtLocalPeer::receiveConnection()
uMsgBuf += got; uMsgBuf += got;
} while (remaining && got >= 0 && socket->waitForReadyRead(2000)); } while (remaining && got >= 0 && socket->waitForReadyRead(2000));
if (got < 0) { if (got < 0) {
qWarning() << "QtLocalPeer: Message reception failed" << socket->errorString(); qWarning("QtLocalPeer: Message reception failed %s", socket->errorString().toLatin1().constData());
delete socket; delete socket;
return; return;
} }
@ -212,6 +206,7 @@ void QtLocalPeer::receiveConnection()
socket->write(ack, qstrlen(ack)); socket->write(ack, qstrlen(ack));
#endif #endif
socket->waitForBytesWritten(1000); socket->waitForBytesWritten(1000);
socket->waitForDisconnected(1000); // make sure client reads ack
delete socket; delete socket;
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
if (message == "qbt://pid") if (message == "qbt://pid")

91
src/qtsingleapp/qtlocalpeer.h

@ -1,58 +1,51 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#ifndef QTLOCALPEER_H
#define QTLOCALPEER_H
#include <QtNetwork/QLocalServer> #include <QLocalServer>
#include <QtNetwork/QLocalSocket> #include <QLocalSocket>
#include <QtCore/QDir> #include <QDir>
#include <QtDebug>
namespace QtLP_Private {
#include "qtlockedfile.h" #include "qtlockedfile.h"
}
class QtLocalPeer : public QObject class QtLocalPeer : public QObject
{ {
@ -83,3 +76,5 @@ protected:
private: private:
static const char* ack; static const char* ack;
}; };
#endif // QTLOCALPEER_H

82
src/qtsingleapp/qtlockedfile.cpp

@ -1,47 +1,41 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#include "qtlockedfile.h" #include "qtlockedfile.h"
@ -88,12 +82,12 @@
*/ */
QtLockedFile::QtLockedFile() QtLockedFile::QtLockedFile()
: QFile() : QFile()
, m_lock_mode(NoLock)
{ {
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
wmutex = 0; wmutex = 0;
rmutex = 0; rmutex = 0;
#endif #endif
m_lock_mode = NoLock;
} }
/*! /*!
@ -105,12 +99,12 @@ QtLockedFile::QtLockedFile()
*/ */
QtLockedFile::QtLockedFile(const QString &name) QtLockedFile::QtLockedFile(const QString &name)
: QFile(name) : QFile(name)
, m_lock_mode(NoLock)
{ {
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
wmutex = 0; wmutex = 0;
rmutex = 0; rmutex = 0;
#endif #endif
m_lock_mode = NoLock;
} }
/*! /*!

88
src/qtsingleapp/qtlockedfile.h

@ -1,58 +1,52 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#ifndef QTLOCKEDFILE_H #ifndef QTLOCKEDFILE_H
#define QTLOCKEDFILE_H #define QTLOCKEDFILE_H
#include <QtCore/QFile> #include <QFile>
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
#include <QtCore/QVector> #include <QVector>
#endif #endif
#if defined(Q_WS_WIN) #if defined(Q_OS_WIN)
# if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT) # if !defined(QT_QTLOCKEDFILE_EXPORT) && !defined(QT_QTLOCKEDFILE_IMPORT)
# define QT_QTLOCKEDFILE_EXPORT # define QT_QTLOCKEDFILE_EXPORT
# elif defined(QT_QTLOCKEDFILE_IMPORT) # elif defined(QT_QTLOCKEDFILE_IMPORT)
@ -68,6 +62,8 @@
# define QT_QTLOCKEDFILE_EXPORT # define QT_QTLOCKEDFILE_EXPORT
#endif #endif
namespace QtLP_Private {
class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile class QT_QTLOCKEDFILE_EXPORT QtLockedFile : public QFile
{ {
public: public:
@ -97,5 +93,5 @@ private:
#endif #endif
LockMode m_lock_mode; LockMode m_lock_mode;
}; };
}
#endif #endif

78
src/qtsingleapp/qtlockedfile_unix.cpp

@ -1,47 +1,41 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#include <string.h> #include <string.h>

84
src/qtsingleapp/qtlockedfile_win.cpp

@ -1,57 +1,55 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#include "qtlockedfile.h" #include "qtlockedfile.h"
#include <qt_windows.h> #include <qt_windows.h>
#include <QtCore/QFileInfo> #include <QFileInfo>
#define MUTEX_PREFIX "QtLockedFile mutex " #define MUTEX_PREFIX "QtLockedFile mutex "
// Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS // Maximum number of concurrent read locks. Must not be greater than MAXIMUM_WAIT_OBJECTS
#define MAX_READERS MAXIMUM_WAIT_OBJECTS #define MAX_READERS MAXIMUM_WAIT_OBJECTS
#if QT_VERSION >= 0x050000
#define QT_WA(unicode, ansi) unicode
#endif
Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate) Qt::HANDLE QtLockedFile::getMutexHandle(int idx, bool doCreate)
{ {
if (mutexname.isEmpty()) { if (mutexname.isEmpty()) {

142
src/qtsingleapp/qtsingleapplication.cpp

@ -1,53 +1,47 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#include "qtsingleapplication.h" #include "qtsingleapplication.h"
#include "qtlocalpeer.h" #include "qtlocalpeer.h"
#include <QtGui/QWidget> #include <QWidget>
/*! /*!
@ -68,28 +62,31 @@
that will be compared instead. that will be compared instead.
The application should create the QtSingleApplication object early The application should create the QtSingleApplication object early
in the startup phase, and call isRunning() or sendMessage() to in the startup phase, and call isRunning() to find out if another
find out if another instance of this application is already instance of this application is already running. If isRunning()
running. Startup parameters (e.g. the name of the file the user returns false, it means that no other instance is running, and
wanted this new instance to open) can be passed to the running this instance has assumed the role as the running instance. In
instance in the sendMessage() function. this case, the application should continue with the initialization
of the application user interface before entering the event loop
If isRunning() or sendMessage() returns false, it means that no with exec(), as normal.
other instance is running, and this instance has assumed the role
as the running instance. The application should continue with the The messageReceived() signal will be emitted when the running
initialization of the application user interface before entering application receives messages from another instance of the same
the event loop with exec(), as normal. The messageReceived() application. When a message is received it might be helpful to the
signal will be emitted when the application receives messages from user to raise the application so that it becomes visible. To
another instance of the same application. facilitate this, QtSingleApplication provides the
setActivationWindow() function and the activateWindow() slot.
If isRunning() or sendMessage() returns true, another instance is
already running, and the application should terminate or enter If isRunning() returns true, another instance is already
client mode. running. It may be alerted to the fact that another instance has
started by using the sendMessage() function. Also data such as
If a message is received it might be helpful to the user to raise startup parameters (e.g. the name of the file the user wanted this
the application so that it becomes visible. To facilitate this, new instance to open) can be passed to the running instance with
QtSingleApplication provides the setActivationWindow() function this function. Then, the application should terminate (or enter
and the activateWindow() slot. client mode).
If isRunning() returns true, but sendMessage() fails, that is an
indication that the running instance is frozen.
Here's an example that shows how to convert an existing Here's an example that shows how to convert an existing
application to use QtSingleApplication. It is very simple and does application to use QtSingleApplication. It is very simple and does
@ -103,7 +100,6 @@
QApplication app(argc, argv); QApplication app(argc, argv);
MyMainWidget mmw; MyMainWidget mmw;
mmw.show(); mmw.show();
return app.exec(); return app.exec();
} }
@ -114,19 +110,17 @@
QtSingleApplication app(argc, argv); QtSingleApplication app(argc, argv);
if (app.isRunning()) if (app.isRunning())
return 0; return !app.sendMessage(someDataString);
MyMainWidget mmw; MyMainWidget mmw;
app.setActivationWindow(&mmw); app.setActivationWindow(&mmw);
mmw.show(); mmw.show();
return app.exec(); return app.exec();
} }
\endcode \endcode
Once this QtSingleApplication instance is destroyed(for example, Once this QtSingleApplication instance is destroyed (normally when
when the user quits), when the user next attempts to run the the process exits or crashes), when the user next attempts to run the
application this instance will not, of course, be encountered. The application this instance will not, of course, be encountered. The
next instance to call isRunning() or sendMessage() will assume the next instance to call isRunning() or sendMessage() will assume the
role as the new running instance. role as the new running instance.
@ -176,6 +170,7 @@ QtSingleApplication::QtSingleApplication(const QString &appId, int &argc, char *
sysInit(appId); sysInit(appId);
} }
#if QT_VERSION < 0x050000
/*! /*!
Creates a QtSingleApplication object. The application identifier Creates a QtSingleApplication object. The application identifier
@ -189,7 +184,7 @@ QtSingleApplication::QtSingleApplication(int &argc, char **argv, Type type)
} }
#if defined(Q_WS_X11) # if defined(Q_WS_X11)
/*! /*!
Special constructor for X11, ref. the documentation of Special constructor for X11, ref. the documentation of
QApplication's corresponding constructor. The application identifier QApplication's corresponding constructor. The application identifier
@ -227,7 +222,8 @@ QtSingleApplication::QtSingleApplication(Display* dpy, const QString &appId, int
{ {
sysInit(appId); sysInit(appId);
} }
#endif # endif // Q_WS_X11
#endif // QT_VERSION < 0x050000
/*! /*!

92
src/qtsingleapp/qtsingleapplication.h

@ -1,55 +1,51 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#ifndef QTSINGLEAPPLICATION_H
#define QTSINGLEAPPLICATION_H
#include <QtGui/QApplication> #include <QApplication>
class QtLocalPeer; class QtLocalPeer;
#if defined(Q_WS_WIN) #if defined(Q_OS_WIN)
# if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT) # if !defined(QT_QTSINGLEAPPLICATION_EXPORT) && !defined(QT_QTSINGLEAPPLICATION_IMPORT)
# define QT_QTSINGLEAPPLICATION_EXPORT # define QT_QTSINGLEAPPLICATION_EXPORT
# elif defined(QT_QTSINGLEAPPLICATION_IMPORT) # elif defined(QT_QTSINGLEAPPLICATION_IMPORT)
@ -72,12 +68,14 @@ class QT_QTSINGLEAPPLICATION_EXPORT QtSingleApplication : public QApplication
public: public:
QtSingleApplication(int &argc, char **argv, bool GUIenabled = true); QtSingleApplication(int &argc, char **argv, bool GUIenabled = true);
QtSingleApplication(const QString &id, int &argc, char **argv); QtSingleApplication(const QString &id, int &argc, char **argv);
#if QT_VERSION < 0x050000
QtSingleApplication(int &argc, char **argv, Type type); QtSingleApplication(int &argc, char **argv, Type type);
#if defined(Q_WS_X11) # if defined(Q_WS_X11)
QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); QtSingleApplication(Display* dpy, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0); QtSingleApplication(Display *dpy, int &argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE cmap= 0);
QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0); QtSingleApplication(Display* dpy, const QString &appId, int argc, char **argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0);
#endif # endif // Q_WS_X11
#endif // QT_VERSION < 0x050000
bool isRunning(); bool isRunning();
QString id() const; QString id() const;
@ -107,3 +105,5 @@ private:
QtLocalPeer *peer; QtLocalPeer *peer;
QWidget *actWin; QWidget *actWin;
}; };
#endif // QTSINGLEAPPLICATION_H

2
src/qtsingleapp/qtsingleapplication.pri

@ -1,7 +1,7 @@
#include(../common.pri)
INCLUDEPATH += $$PWD INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD DEPENDPATH += $$PWD
QT *= network QT *= network
greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets
qtsingleapplication-uselib:!qtsingleapplication-buildlib { qtsingleapplication-uselib:!qtsingleapplication-buildlib {
LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME LIBS += -L$$QTSINGLEAPPLICATION_LIBDIR -l$$QTSINGLEAPPLICATION_LIBNAME

78
src/qtsingleapp/qtsinglecoreapplication.cpp

@ -1,47 +1,41 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/

84
src/qtsingleapp/qtsinglecoreapplication.h

@ -1,51 +1,47 @@
/**************************************************************************** /****************************************************************************
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of a Qt Solutions component.
** **
** Commercial Usage ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Licensees holding valid Qt Commercial licenses may use this file in ** Contact: http://www.qt-project.org/legal
** accordance with the Qt Solutions Commercial License Agreement provided **
** with the Software or, alternatively, in accordance with the terms ** This file is part of the Qt Solutions component.
** contained in a written agreement between you and Nokia. **
** ** $QT_BEGIN_LICENSE:BSD$
** GNU Lesser General Public License Usage ** You may use this file under the terms of the BSD license as follows:
** Alternatively, this file may be used under the terms of the GNU Lesser **
** General Public License version 2.1 as published by the Free Software ** "Redistribution and use in source and binary forms, with or without
** Foundation and appearing in the file LICENSE.LGPL included in the ** modification, are permitted provided that the following conditions are
** packaging of this file. Please review the following information to ** met:
** ensure the GNU Lesser General Public License version 2.1 requirements ** * Redistributions of source code must retain the above copyright
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** notice, this list of conditions and the following disclaimer.
** ** * Redistributions in binary form must reproduce the above copyright
** In addition, as a special exception, Nokia gives you certain ** notice, this list of conditions and the following disclaimer in
** additional rights. These rights are described in the Nokia Qt LGPL ** the documentation and/or other materials provided with the
** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** distribution.
** package. ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
** ** of its contributors may be used to endorse or promote products derived
** GNU General Public License Usage ** from this software without specific prior written permission.
** Alternatively, this file may be used under the terms of the GNU **
** General Public License version 3.0 as published by the Free Software **
** Foundation and appearing in the file LICENSE.GPL included in the ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** packaging of this file. Please review the following information to ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** ensure the GNU General Public License version 3.0 requirements will be ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** met: http://www.gnu.org/copyleft/gpl.html. ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** Please note Third Party Software included with Qt Solutions may impose ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** additional restrictions and it is the user's responsibility to ensure ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** that they have met the licensing requirements of the GPL, LGPL, or Qt ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** Solutions Commercial license and the relevant license of the Third ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** Party Software they are using. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** If you are unsure which license is appropriate for your use, please **
** contact Nokia at qt-info@nokia.com. ** $QT_END_LICENSE$
** **
****************************************************************************/ ****************************************************************************/
#ifndef QTSINGLECOREAPPLICATION_H
#define QTSINGLECOREAPPLICATION_H
#include <QtCore/QCoreApplication> #include <QCoreApplication>
class QtLocalPeer; class QtLocalPeer;
@ -71,3 +67,5 @@ Q_SIGNALS:
private: private:
QtLocalPeer* peer; QtLocalPeer* peer;
}; };
#endif // QTSINGLECOREAPPLICATION_H

Loading…
Cancel
Save