Fix argument passing between rssguard instances.
This commit is contained in:
parent
40d32f3088
commit
e7d366328f
@ -100,6 +100,8 @@
|
|||||||
#define CLI_SIN_LONG "no-single-instance"
|
#define CLI_SIN_LONG "no-single-instance"
|
||||||
#define CLI_NDEBUG_SHORT "n"
|
#define CLI_NDEBUG_SHORT "n"
|
||||||
#define CLI_NDEBUG_LONG "no-debug-output"
|
#define CLI_NDEBUG_LONG "no-debug-output"
|
||||||
|
#define CLI_QUIT_INSTANCE "q"
|
||||||
|
#define CLI_IS_RUNNING "a"
|
||||||
|
|
||||||
#define HTTP_HEADERS_ACCEPT "Accept"
|
#define HTTP_HEADERS_ACCEPT "Accept"
|
||||||
#define HTTP_HEADERS_CONTENT_TYPE "Content-Type"
|
#define HTTP_HEADERS_CONTENT_TYPE "Content-Type"
|
||||||
@ -169,8 +171,6 @@
|
|||||||
#define APP_CFG_PATH "config"
|
#define APP_CFG_PATH "config"
|
||||||
#define APP_CFG_FILE "config.ini"
|
#define APP_CFG_FILE "config.ini"
|
||||||
|
|
||||||
#define APP_QUIT_INSTANCE "-q"
|
|
||||||
#define APP_IS_RUNNING "app_is_running"
|
|
||||||
#define APP_SKIN_USER_FOLDER "skins"
|
#define APP_SKIN_USER_FOLDER "skins"
|
||||||
#define APP_SKIN_DEFAULT "vergilius"
|
#define APP_SKIN_DEFAULT "vergilius"
|
||||||
#define APP_SKIN_METADATA_FILE "metadata.xml"
|
#define APP_SKIN_METADATA_FILE "metadata.xml"
|
||||||
|
@ -158,7 +158,8 @@ void Application::offerChanges() const {
|
|||||||
bool Application::isAlreadyRunning() {
|
bool Application::isAlreadyRunning() {
|
||||||
return m_allowMultipleInstances
|
return m_allowMultipleInstances
|
||||||
? false
|
? false
|
||||||
: sendMessage((QStringList() << APP_IS_RUNNING << Application::arguments().mid(1)).join(ARGUMENTS_LIST_SEPARATOR));
|
: sendMessage((QStringList() << QSL("-%1").arg(CLI_IS_RUNNING)
|
||||||
|
<< Application::arguments().mid(1)).join(ARGUMENTS_LIST_SEPARATOR));
|
||||||
}
|
}
|
||||||
|
|
||||||
FeedReader* Application:: feedReader() {
|
FeedReader* Application:: feedReader() {
|
||||||
@ -351,26 +352,26 @@ void Application::parseCmdArgumentsFromOtherInstance(const QString& message) {
|
|||||||
qDebugNN << LOGSEC_CORE
|
qDebugNN << LOGSEC_CORE
|
||||||
<< "Received"
|
<< "Received"
|
||||||
<< QUOTE_W_SPACE(message)
|
<< QUOTE_W_SPACE(message)
|
||||||
<< "execution message from another application instance.";
|
<< "execution message.";
|
||||||
|
|
||||||
QStringList messages = message.split(ARGUMENTS_LIST_SEPARATOR);
|
QStringList messages = message.split(ARGUMENTS_LIST_SEPARATOR, Qt::SplitBehaviorFlags::SkipEmptyParts);
|
||||||
QCommandLineParser cmd_parser;
|
QCommandLineParser cmd_parser;
|
||||||
|
|
||||||
messages.prepend(qApp->applicationFilePath());
|
messages.prepend(qApp->applicationFilePath());
|
||||||
|
|
||||||
cmd_parser.addOption(QCommandLineOption(QStringList() << APP_QUIT_INSTANCE));
|
cmd_parser.addOption(QCommandLineOption(QStringList() << CLI_QUIT_INSTANCE));
|
||||||
cmd_parser.addOption(QCommandLineOption(QStringList() << APP_IS_RUNNING));
|
cmd_parser.addOption(QCommandLineOption(QStringList() << CLI_IS_RUNNING));
|
||||||
cmd_parser.addPositionalArgument("urls",
|
cmd_parser.addPositionalArgument("urls",
|
||||||
"List of URL addresses pointing to individual online feeds which should be added.",
|
"List of URL addresses pointing to individual online feeds which should be added.",
|
||||||
"[url-1 ... url-n]");
|
"[url-1 ... url-n]");
|
||||||
|
|
||||||
cmd_parser.process(messages);
|
cmd_parser.process(messages);
|
||||||
|
|
||||||
if (cmd_parser.isSet(APP_QUIT_INSTANCE)) {
|
if (cmd_parser.isSet(CLI_QUIT_INSTANCE)) {
|
||||||
quit();
|
quit();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (cmd_parser.isSet(APP_IS_RUNNING)) {
|
else if (cmd_parser.isSet(CLI_IS_RUNNING)) {
|
||||||
showGuiMessage(APP_NAME, tr("Application is already running."), QSystemTrayIcon::MessageIcon::Information);
|
showGuiMessage(APP_NAME, tr("Application is already running."), QSystemTrayIcon::MessageIcon::Information);
|
||||||
mainForm()->display();
|
mainForm()->display();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user