From c8cd3873346baa6d93f8d8e03b102f7c3ce6220c Mon Sep 17 00:00:00 2001 From: codestation Date: Sun, 22 Feb 2015 13:18:02 -0430 Subject: [PATCH] Fix cma broadcast bug. Add desktop shortcut for windows installer. --- src/cmabroadcast.cpp | 2 +- src/cmaclient.cpp | 15 ++++++++++----- src/cmaclient.h | 2 ++ src/gui/clientmanager.cpp | 3 ++- windows/qcma.nsi | 9 +++++++++ 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/cmabroadcast.cpp b/src/cmabroadcast.cpp index 010a593..76c7fab 100644 --- a/src/cmabroadcast.cpp +++ b/src/cmabroadcast.cpp @@ -59,8 +59,8 @@ CmaBroadcast::CmaBroadcast(QObject *parent) : setAvailable(); socket = new QUdpSocket(this); - socket->bind(QHostAddress::Any, QCMA_REQUEST_PORT); connect(socket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); + socket->bind(QHostAddress::AnyIPv4, QCMA_REQUEST_PORT); } void CmaBroadcast::readPendingDatagrams() diff --git a/src/cmaclient.cpp b/src/cmaclient.cpp index a8b195d..bec238f 100644 --- a/src/cmaclient.cpp +++ b/src/cmaclient.cpp @@ -45,7 +45,14 @@ bool CmaClient::in_progress = false; CmaClient *CmaClient::this_object = NULL; CmaClient::CmaClient(Database *db, QObject *parent) : - QObject(parent), m_db(db) + QObject(parent), m_db(db), m_broadcast(NULL) +{ + this_object = this; +} + + +CmaClient::CmaClient(Database *db, CmaBroadcast *broadcast, QObject *parent) : + QObject(parent), m_db(db), m_broadcast(broadcast) { this_object = this; } @@ -92,15 +99,13 @@ void CmaClient::connectWireless() setActive(true); - CmaBroadcast *broadcast = new CmaBroadcast(this); - do { qDebug("Waiting for wireless connection"); if((vita = VitaMTP_Get_First_Wireless_Vita(&host, 0, CC::deviceRegistered, CC::generatePin, CC::registrationComplete)) != NULL) { qDebug("Starting new wireless connection"); - broadcast->setUnavailable(); + m_broadcast->setUnavailable(); processNewConnection(vita); - broadcast->setAvailable(); + m_broadcast->setAvailable(); } else { mutex.lock(); if(in_progress) { diff --git a/src/cmaclient.h b/src/cmaclient.h index e6c4a47..1e33029 100644 --- a/src/cmaclient.h +++ b/src/cmaclient.h @@ -36,6 +36,7 @@ class CmaClient : public QObject Q_OBJECT public: explicit CmaClient(Database *db, QObject *parent = 0); + explicit CmaClient(Database *db, CmaBroadcast *broadcast, QObject *parent = 0); static bool isRunning(); void launch(); @@ -55,6 +56,7 @@ private: static void registrationComplete(); Database *m_db; + CmaBroadcast *m_broadcast; static QString tempOnlineId; //TODO: move all the control variables to the client manager class diff --git a/src/gui/clientmanager.cpp b/src/gui/clientmanager.cpp index af0960e..a7c1dd6 100644 --- a/src/gui/clientmanager.cpp +++ b/src/gui/clientmanager.cpp @@ -95,8 +95,9 @@ void ClientManager::start() } if(!settings.value("disableWireless", false).toBool()) { + CmaBroadcast *broadcast = new CmaBroadcast(this); wireless_thread = new QThread(); - client = new CmaClient(m_db); + client = new CmaClient(m_db, broadcast); wireless_thread->setObjectName("wireless_thread"); connect(wireless_thread, SIGNAL(started()), client, SLOT(connectWireless())); connect(client, SIGNAL(messageSent(QString)), this, SIGNAL(messageSent(QString))); diff --git a/windows/qcma.nsi b/windows/qcma.nsi index a295fb5..06a851e 100644 --- a/windows/qcma.nsi +++ b/windows/qcma.nsi @@ -31,6 +31,10 @@ Function finishPageRunFunction ExecShell "" "$INSTDIR\${PRODUCT_EXE_NAME}" FunctionEnd +Function finishpageaction + CreateShortcut "$desktop\Qcma.lnk" "$instdir\qcma.exe" +FunctionEnd + ### Variables Var StartMenuFolder @@ -60,6 +64,11 @@ InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder !insertmacro MUI_PAGE_INSTFILES +!define MUI_FINISHPAGE_SHOWREADME "" +!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED +!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut" +!define MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpageaction + !define MUI_FINISHPAGE_RUN "" !define MUI_FINISHPAGE_RUN_NOTCHECKED !define MUI_FINISHPAGE_RUN_FUNCTION finishPageRunFunction