X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2FThread_MessageProducer.cpp;h=34caea633980ff7659d132d964c03a3f892a992d;hb=4d898010c0622161ab1bd435f19cf68e5c653253;hp=59818e1a3f26a631a9c9282b891244a91fd002b6;hpb=6b310b7c05c553d7c43c65ccb61367ce84c52f7b;p=lamexp%2FLameXP.git diff --git a/src/Thread_MessageProducer.cpp b/src/Thread_MessageProducer.cpp index 59818e1a..34caea63 100644 --- a/src/Thread_MessageProducer.cpp +++ b/src/Thread_MessageProducer.cpp @@ -58,33 +58,32 @@ void MessageProducerThread::run() { setTerminationEnabled(true); bool bSentFiles = false; - const QStringList &arguments = MUtils::OS::arguments(); + const MUtils::OS::ArgumentMap &arguments = MUtils::OS::arguments(); - for(int i = 0; i < arguments.count(); i++) + //Kill application? + if(arguments.contains("kill")) { - if(!arguments[i].compare("--kill", Qt::CaseInsensitive)) + if(!m_ipcChannel->send(IPC_CMD_TERMINATE, IPC_FLAG_NONE, NULL)) { - if(!m_ipcChannel->send(IPC_CMD_TERMINATE, IPC_FLAG_NONE, NULL)) - { - qWarning("Failed to send IPC message!"); - } - return; + qWarning("Failed to send IPC message!"); } - if(!arguments[i].compare("--force-kill", Qt::CaseInsensitive)) + return; + } + if(arguments.contains("force-kill")) + { + if(!m_ipcChannel->send(IPC_CMD_TERMINATE, IPC_FLAG_FORCE, NULL)) { - if(!m_ipcChannel->send(IPC_CMD_TERMINATE, IPC_FLAG_FORCE, NULL)) - { - qWarning("Failed to send IPC message!"); - } - return; + qWarning("Failed to send IPC message!"); } + return; } - for(int i = 0; i < arguments.count() - 1; i++) + //Send file to "matser" instance + foreach(const QString &value, arguments.values("add")) { - if(!arguments[i].compare("--add", Qt::CaseInsensitive)) + if(!value.isEmpty()) { - QFileInfo file = QFileInfo(arguments[++i]); + const QFileInfo file = QFileInfo(value); if(file.exists() && file.isFile()) { if(!m_ipcChannel->send(IPC_CMD_ADD_FILE, IPC_FLAG_NONE, MUTILS_UTF8(file.canonicalFilePath()))) @@ -94,9 +93,12 @@ void MessageProducerThread::run() } bSentFiles = true; } - if(!arguments[i].compare("--add-folder", Qt::CaseInsensitive)) + } + foreach(const QString &value, arguments.values("add-folder")) + { + if(!value.isEmpty()) { - QDir dir = QDir(arguments[++i]); + const QDir dir = QDir(value); if(dir.exists()) { if(!m_ipcChannel->send(IPC_CMD_ADD_FOLDER, IPC_FLAG_NONE, MUTILS_UTF8(dir.canonicalPath()))) @@ -106,9 +108,12 @@ void MessageProducerThread::run() } bSentFiles = true; } - if(!arguments[i].compare("--add-recursive", Qt::CaseInsensitive)) + } + foreach(const QString &value, arguments.values("add-recursive")) + { + if(!value.isEmpty()) { - QDir dir = QDir(arguments[++i]); + const QDir dir = QDir(value); if(dir.exists()) { if(!m_ipcChannel->send(IPC_CMD_ADD_FOLDER, IPC_FLAG_ADD_RECURSIVE, MUTILS_UTF8(dir.canonicalPath())))