Hello community,

here is the log from the commit of package kalarm for openSUSE:Factory checked 
in at 2017-03-16 09:37:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kalarm (Old)
 and      /work/SRC/openSUSE:Factory/.kalarm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kalarm"

Thu Mar 16 09:37:03 2017 rev:4 rq:478128 version:16.12.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/kalarm/kalarm.changes    2017-02-14 
00:47:00.793992991 +0100
+++ /work/SRC/openSUSE:Factory/.kalarm.new/kalarm.changes       2017-03-16 
09:37:04.372663281 +0100
@@ -1,0 +2,13 @@
+Thu Mar  9 12:35:05 CET 2017 - [email protected]
+
+- Update to 16.12.3
+  * New bugfix release
+  * For more details please see:
+  * https://www.kde.org/announcements/announce-applications-16.12.3.php
+- Changes since 16.12.2:
+  * Bug 376209: Make command options --edit-new-* work
+  * Update version number
+  * Bug 374520: Fix not showing main window if re-activated
+
+
+-------------------------------------------------------------------

Old:
----
  kalarm-16.12.2.tar.xz

New:
----
  kalarm-16.12.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kalarm.spec ++++++
--- /var/tmp/diff_new_pack.RVqmiB/_old  2017-03-16 09:37:04.872592493 +0100
+++ /var/tmp/diff_new_pack.RVqmiB/_new  2017-03-16 09:37:04.876591927 +0100
@@ -17,10 +17,10 @@
 
 
 Name:           kalarm
-Version:        16.12.2
+Version:        16.12.3
 Release:        0
 %define kf5_version 5.26.0
-# Latest stable Applications (e.g. 16.08 in KA, but 16.12.2 in KUA)
+# Latest stable Applications (e.g. 16.08 in KA, but 16.12.3 in KUA)
 %{!?_kapp_version: %global _kapp_version %(echo %{version}| awk -F. '{print 
$1"."$2}')}
 Summary:        Personal Alarm Scheduler
 License:        GPL-2.0

++++++ kalarm-16.12.2.tar.xz -> kalarm-16.12.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/CMakeLists.txt 
new/kalarm-16.12.3/CMakeLists.txt
--- old/kalarm-16.12.2/CMakeLists.txt   2017-02-05 20:37:07.000000000 +0100
+++ new/kalarm-16.12.3/CMakeLists.txt   2017-02-19 21:32:10.000000000 +0100
@@ -32,7 +32,7 @@
 endif()
 
 
-set(KDEPIM_VERSION_NUMBER "5.4.2")
+set(KDEPIM_VERSION_NUMBER "5.4.3")
 set(KDEPIM_VERSION "${KDEPIM_VERSION_NUMBER}${KDEPIM_DEV_VERSION}")
 
 set(AKONADI_MIMELIB_VERSION "5.4.0")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/Changelog new/kalarm-16.12.3/Changelog
--- old/kalarm-16.12.2/Changelog        2017-02-05 20:37:07.000000000 +0100
+++ new/kalarm-16.12.3/Changelog        2017-02-19 21:32:10.000000000 +0100
@@ -1,6 +1,11 @@
 KAlarm Change Log
 
-=== Version 2.11.13 --- 29 January 2017 ===
+=== Version 2.11.14 --- 19 February 2017 ===
++ Fix not showing main window if activated again while already running with 
--tray [Bug 374520]
++ Fix --help, --version and option errors not being reported if KAlarm is 
already running.
++ Make command options --edit-new-* work [KDE Bug 376209]
+
+=== Version 2.11.13 (KDE Applications 16.12.2) --- 29 January 2017 ===
 + Fix system tray icon used for "some alarms disabled"
 + Improved system tray icons (requires Plasma 5.9) [KDE Bug 362631]
 + Don't show misleading "Failed to update alarm" if command alarm fails [KDE 
Bug 375615]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/commandoptions.cpp 
new/kalarm-16.12.3/src/commandoptions.cpp
--- old/kalarm-16.12.2/src/commandoptions.cpp   2017-02-05 20:37:07.000000000 
+0100
+++ new/kalarm-16.12.3/src/commandoptions.cpp   2017-02-19 21:32:10.000000000 
+0100
@@ -1,7 +1,7 @@
 /*
  *  commandoptions.cpp  -  extract command line options
  *  Program:  kalarm
- *  Copyright © 2001-2016 by David Jarvie <[email protected]>
+ *  Copyright © 2001-2017 by David Jarvie <[email protected]>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -38,15 +38,27 @@
 bool convInterval(const QString& timeParam, KARecurrence::Type&, int& 
timeInterval, bool allowMonthYear = false);
 }
 
-CommandOptions*              CommandOptions::mInstance = Q_NULLPTR;
-QCommandLineParser*          CommandOptions::mParser = Q_NULLPTR;
-QVector<QCommandLineOption*> CommandOptions::mOptions(Num_Options, Q_NULLPTR);
-QStringList                  CommandOptions::mExecArguments;
+CommandOptions* CommandOptions::mFirstInstance = Q_NULLPTR;
 
-void CommandOptions::setError(const QString& error)
+CommandOptions::CommandOptions()
+  : mParser(Q_NULLPTR),
+    mOptions(Num_Options, Q_NULLPTR),
+    mCommand(NONE),
+    mEditActionSet(false),
+    mRecurrence(Q_NULLPTR),
+    mRepeatCount(0),
+    mRepeatInterval(0),
+    mLateCancel(0),
+    mBgColour(Preferences::defaultBgColour()),
+    mFgColour(Preferences::defaultFgColour()),
+    mReminderMinutes(0),
+    mAudioVolume(-1),
+    mFromID(0),
+    mFlags(KAEvent::DEFAULT_FONT),
+    mDisableAll(false)
 {
-    if (mError.isEmpty())
-        mError = error;
+    if (!mFirstInstance)
+        mFirstInstance = this;
 }
 
 /******************************************************************************
@@ -221,13 +233,13 @@
                                    QStringLiteral("[message]"));
 
     // Check for any options which eat up all following arguments.
-    QStringList arguments;
+    mNonExecArguments.clear();
     for (int i = 0;  i < args.size();  ++i)
     {
         const QString arg = args[i];
         if (arg == QStringLiteral("--nofork"))
             continue;     // Ignore debugging option
-        arguments << arg;
+        mNonExecArguments << arg;
         if (arg == optionName(EXEC)  ||  arg == optionName(EXEC, true)
         ||  arg == optionName(EXEC_DISPLAY)  ||  arg == 
optionName(EXEC_DISPLAY, true))
         {
@@ -239,31 +251,35 @@
                 mExecArguments << args[i];
         }
     }
-qCDebug(KALARM_LOG) << arguments;
-    return arguments;
+    return mNonExecArguments;
 }
 
-void CommandOptions::process()
+void CommandOptions::parse()
 {
-    if (!mInstance)
-        mInstance = new CommandOptions();
+    if (!mParser->parse(mNonExecArguments))
+    {
+        setError(mParser->errorText());
+        return;
+    }
+    if (mParser->isSet(QStringLiteral("help")))
+    {
+        mCommand = EXIT;
+        mError = mParser->helpText();
+        return;
+    }
+    if (mParser->isSet(QStringLiteral("version")))
+    {
+        mCommand = EXIT;
+        mError = QCoreApplication::applicationName() + QStringLiteral(" ") + 
QCoreApplication::applicationVersion();
+        return;
+    }
 }
 
-CommandOptions::CommandOptions()
-    : mCommand(NONE),
-      mEditActionSet(false),
-      mRecurrence(Q_NULLPTR),
-      mRepeatCount(0),
-      mRepeatInterval(0),
-      mLateCancel(0),
-      mBgColour(Preferences::defaultBgColour()),
-      mFgColour(Preferences::defaultFgColour()),
-      mReminderMinutes(0),
-      mAudioVolume(-1),
-      mFromID(0),
-      mFlags(KAEvent::DEFAULT_FONT),
-      mDisableAll(false)
+void CommandOptions::process()
 {
+    if (mCommand == CMD_ERROR  ||  mCommand == EXIT)
+        return;
+
 #ifndef NDEBUG
     if (mParser->isSet(*mOptions[TEST_SET_TIME]))
     {
@@ -684,15 +700,19 @@
     }
 
     if (!mError.isEmpty())
-    {
-        printError(mError);
-        mCommand = CMD_ERROR;
-    }
+        setError(mError);
+}
+
+void CommandOptions::setError(const QString& errmsg)
+{
+    qCWarning(KALARM_LOG) << errmsg;
+    mCommand = CMD_ERROR;
+    if (mError.isEmpty())
+        mError = errmsg + i18nc("@info:shell", "\nUse --help to get a list of 
available command line options.\n");
 }
 
 void CommandOptions::printError(const QString& errmsg)
 {
-qCDebug(KALARM_LOG)<<"ERROR=====================";
     // Note: we can't use mArgs->usage() since that also quits any other
     // running 'instances' of the program.
     std::cerr << errmsg.toLocal8Bit().data()
@@ -754,7 +774,7 @@
     return (n < args.size()) ? args[n] : QString();
 }
 
-QString CommandOptions::optionName(Option opt, bool shortName)
+QString CommandOptions::optionName(Option opt, bool shortName) const
 {
     if (opt == Opt_Message)
         return QStringLiteral("message");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/commandoptions.h 
new/kalarm-16.12.3/src/commandoptions.h
--- old/kalarm-16.12.2/src/commandoptions.h     2017-02-05 20:37:07.000000000 
+0100
+++ new/kalarm-16.12.3/src/commandoptions.h     2017-02-19 21:32:10.000000000 
+0100
@@ -1,7 +1,7 @@
 /*
  *  commandoptions.h  -  extract command line options
  *  Program:  kalarm
- *  Copyright © 2001-2016 by David Jarvie <[email protected]>
+ *  Copyright © 2001-2017 by David Jarvie <[email protected]>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -43,6 +43,7 @@
         {
             CMD_ERROR,        // error in command line options
             NONE,             // no command
+            EXIT,             // print outputText() and exit
             TRAY,             // --tray
             TRIGGER_EVENT,    // --triggerEvent
             CANCEL_EVENT,     // --cancelEvent
@@ -52,9 +53,11 @@
             NEW,              // --file, --exec-display, --exec, --mail, 
message
             LIST              // --list
         };
-        static QStringList setOptions(QCommandLineParser*, const QStringList& 
args);
-        static void process();
-        static CommandOptions* instance()             { return mInstance; }
+        QStringList setOptions(QCommandLineParser*, const QStringList& args);
+        static CommandOptions* firstInstance()        { return mFirstInstance; 
}
+        CommandOptions();
+        void                parse();
+        void                process();
         Command             command() const           { return mCommand; }
         QString             commandName() const       { return 
optionName(mCommandOpt); }
         EventId             eventId() const           { return mEventId; }
@@ -78,6 +81,7 @@
         uint                fromID() const            { return mFromID; }
         KAEvent::Flags      flags() const             { return mFlags; }
         bool                disableAll() const        { return mDisableAll; }
+        QString             outputText() const        { return mError; }
 #ifndef NDEBUG
         KDateTime           simulationTime() const    { return 
mSimulationTime; }
 #endif
@@ -132,22 +136,22 @@
             Opt_Message        // special value representing "message"
         };
 
-        explicit CommandOptions();
         bool        checkCommand(Option, Command, EditAlarmDlg::Type = 
EditAlarmDlg::NO_TYPE);
-        inline void setError(const QString& error);
+        void        setError(const QString& error);
         void        setErrorRequires(Option opt, Option opt2, Option opt3 = 
Num_Options);
         void        setErrorParameter(Option);
         void        setErrorIncompatible(Option opt1, Option opt2);
         void        checkEditType(EditAlarmDlg::Type type, Option opt)
                                   { checkEditType(type, EditAlarmDlg::NO_TYPE, 
opt); }
         void        checkEditType(EditAlarmDlg::Type, EditAlarmDlg::Type, 
Option);
-        static QString arg(int n);
-        static QString optionName(Option, bool shortName = false);
+        QString     arg(int n);
+        QString     optionName(Option, bool shortName = false) const;
 
-        static CommandOptions* mInstance;      // the unique instance
-        static QCommandLineParser* mParser;
-        static QVector<QCommandLineOption*> mOptions;  // all possible command 
line options
-        static QStringList     mExecArguments; // arguments for --exec or 
--exec-display
+        static CommandOptions* mFirstInstance;      // the first instance
+        QCommandLineParser* mParser;
+        QVector<QCommandLineOption*> mOptions;  // all possible command line 
options
+        QStringList         mNonExecArguments; // arguments except for --exec 
or --exec-display parameters
+        QStringList         mExecArguments;  // arguments for --exec or 
--exec-display
         QString             mError;          // error message
         Command             mCommand;        // the selected command
         Option              mCommandOpt;     // option for the selected command
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/kalarm.h 
new/kalarm-16.12.3/src/kalarm.h
--- old/kalarm-16.12.2/src/kalarm.h     2017-02-05 20:37:07.000000000 +0100
+++ new/kalarm-16.12.3/src/kalarm.h     2017-02-19 21:32:10.000000000 +0100
@@ -24,7 +24,7 @@
 #undef QT3_SUPPORT
 
 #define VERSION_SUFFIX "-5"
-#define KALARM_VERSION "2.11.13" VERSION_SUFFIX
+#define KALARM_VERSION "2.11.14" VERSION_SUFFIX
 
 #define KALARM_NAME "KAlarm"
 #define KALARM_DBUS_SERVICE  "org.kde.kalarm"  // D-Bus service name of KAlarm 
application
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/kalarmapp.cpp 
new/kalarm-16.12.3/src/kalarmapp.cpp
--- old/kalarm-16.12.2/src/kalarmapp.cpp        2017-02-05 20:37:07.000000000 
+0100
+++ new/kalarm-16.12.3/src/kalarmapp.cpp        2017-02-19 21:32:10.000000000 
+0100
@@ -24,7 +24,6 @@
 #include "alarmcalendar.h"
 #include "alarmlistview.h"
 #include "alarmtime.h"
-#include "autoqpointer.h"
 #include "commandoptions.h"
 #include "dbushandler.h"
 #include "editdlgtypes.h"
@@ -122,11 +121,6 @@
     KAlarm::setTestModeConditions();
 #endif
 
-    // Make this a unique application.
-    KDBusService* s = new KDBusService(KDBusService::Unique, this);
-    connect(this, &KAlarmApp::aboutToQuit, s, &KDBusService::deleteLater);
-    connect(s, &KDBusService::activateRequested, this, &KAlarmApp::activate);
-
     setQuitOnLastWindowClosed(false);
     Preferences::self();    // read KAlarm configuration
     if (!Preferences::noAutoStart())
@@ -324,16 +318,29 @@
 /******************************************************************************
 * Called for a unique QApplication when a new instance of the application is
 * started.
+* Reply: exit code (>= 0), or -1 to continue execution.
+*        If exit code >= 0, 'outputText' holds text to output before 
terminating.
+*/
+void KAlarmApp::activateByDBus(const QStringList& args, const QString& 
workingDirectory)
+{
+  activateInstance(args, workingDirectory, nullptr);
+}
+
+/******************************************************************************
+* Called to start a new instance of the application.
+* Reply: exit code (>= 0), or -1 to continue execution.
+*        If exit code >= 0, 'outputText' holds text to output before 
terminating.
 */
-void KAlarmApp::activate(const QStringList& args, const QString& 
workingDirectory)
+int KAlarmApp::activateInstance(const QStringList& args, const QString& 
workingDirectory, QString* outputText)
 {
     Q_UNUSED(workingDirectory)
     qCDebug(KALARM_LOG);
+    if (outputText)
+        outputText->clear();
     if (mFatalError)
     {
         quitFatal();
-//        return 1;
-        return;
+        return 1;
     }
 
     // The D-Bus call to activate a subsequent instance of KAlarm may not 
supply
@@ -348,25 +355,65 @@
     QCommandLineParser parser;
     KAboutData::applicationData().setupCommandLine(&parser);
     parser.setApplicationDescription(QApplication::applicationDisplayName());
-    const QStringList newArgs = CommandOptions::setOptions(&parser, fixedArgs);
-    parser.process(newArgs);
+    CommandOptions* options = new CommandOptions;
+    const QStringList newArgs = options->setOptions(&parser, fixedArgs);
+    options->parse();
     KAboutData::applicationData().processCommandLine(&parser);
 
     ++mActiveCount;
     int exitCode = 0;               // default = success
     static bool firstInstance = true;
     bool dontRedisplay = false;
-    if (!firstInstance || !isSessionRestored())
+    CommandOptions::Command command = CommandOptions::NONE;
+    bool processOptions = (!firstInstance || !isSessionRestored());
+    if (processOptions)
     {
-        CommandOptions::process();
-        CommandOptions* options = CommandOptions::instance();   // fetch 
command line options
+        options->process();
 #ifndef NDEBUG
         if (options->simulationTime().isValid())
             KAlarm::setSimulatedSystemTime(options->simulationTime());
 #endif
-        CommandOptions::Command command = options->command();
+        command = options->command();
         if (options->disableAll())
             setAlarmsEnabled(false);   // disable alarm monitoring
+
+        // Handle options which exit with a terminal message, before
+        // making the application a unique application, since a
+        // unique application won't output to the terminal if another
+        // instance is already running.
+        switch (command)
+        {
+            case CommandOptions::CMD_ERROR:
+                if (outputText)
+                {
+                    *outputText = options->outputText();
+                    delete options;
+                    return 1;
+                }
+                mReadOnly = true;   // don't need write access to calendars
+                exitCode = 1;
+                break;
+            case CommandOptions::EXIT:
+                if (outputText)
+                {
+                    *outputText = options->outputText();
+                    delete options;
+                    return 0;
+                }
+                exitCode = -1;
+                break;
+            default:
+                break;
+        }
+    }
+
+    // Make this a unique application.
+    KDBusService* s = new KDBusService(KDBusService::Unique, this);
+    connect(this, &KAlarmApp::aboutToQuit, s, &KDBusService::deleteLater);
+    connect(s, &KDBusService::activateRequested, this, 
&KAlarmApp::activateByDBus);
+
+    if (processOptions)
+    {
         switch (command)
         {
             case CommandOptions::TRIGGER_EVENT:
@@ -424,10 +471,7 @@
                     exitCode = 1;
                 else
                 {
-                    // Use AutoQPointer to guard against crash on application 
exit while
-                    // the dialogue is still open. It prevents double deletion 
(both on
-                    // deletion of parent, and on return from this function).
-                    AutoQPointer<EditAlarmDlg> editDlg = 
EditAlarmDlg::create(false, options->editType());
+                    EditAlarmDlg* editDlg = EditAlarmDlg::create(false, 
options->editType(), MainWindow::mainMainWindow());
                     if (options->alarmTime().isValid())
                         editDlg->setTime(options->alarmTime());
                     if (options->recurrence())
@@ -492,6 +536,10 @@
                         case EditAlarmDlg::NO_TYPE:
                             break;
                     }
+                    // Execute the edit dialogue. Note that if no other 
instance of KAlarm is
+                    // running, this new instance will not exit after the 
dialogue is closed.
+                    // This is deliberate, since exiting would mean that 
KAlarm wouldn't
+                    // trigger the new alarm.
                     KAlarm::execNewAlarmDlg(editDlg);
                 }
                 break;
@@ -501,7 +549,13 @@
                 if (!initCheck())
                     exitCode = 1;
                 else
+                {
+                    // Execute the edit dialogue. Note that if no other 
instance of KAlarm is
+                    // running, this new instance will not exit after the 
dialogue is closed.
+                    // This is deliberate, since exiting would mean that 
KAlarm wouldn't
+                    // trigger the new alarm.
                     KAlarm::editNewAlarm(options->templateName());
+                }
                 break;
 
             case CommandOptions::NEW:
@@ -537,19 +591,23 @@
                     exitCode = 1;
                 else
                 {
-                    MainWindow* win = MainWindow::create();
-                    if (command == CommandOptions::TRAY)
-                        win->setWindowState(win->windowState() | 
Qt::WindowMinimized);
-                    win->show();
+                    if (mTrayWindow  &&  mTrayWindow->assocMainWindow()  &&  
!mTrayWindow->assocMainWindow()->isVisible())
+                        mTrayWindow->showAssocMainWindow();
+                    else
+                    {
+                        MainWindow* win = MainWindow::create();
+                        if (command == CommandOptions::TRAY)
+                            win->setWindowState(win->windowState() | 
Qt::WindowMinimized);
+                        win->show();
+                    }
                 }
                 break;
-
-            case CommandOptions::CMD_ERROR:
-                mReadOnly = true;   // don't need write access to calendars
-                exitCode = 1;
+            default:
                 break;
         }
     }
+    if (options != CommandOptions::firstInstance())
+        delete options;
 
     // If this is the first time through, redisplay any alarm message windows
     // from last time.
@@ -579,12 +637,12 @@
     // Quit the application if this was the last/only running "instance" of 
the program.
     // Executing 'return' doesn't work very well since the program continues to
     // run if no windows were created.
-    quitIf(exitCode);
+    quitIf(exitCode >= 0 ? exitCode : 0);
 
     // Check whether the KDE time zone daemon is running (but don't hold up 
initialisation)
     QTimer::singleShot(0, this, &KAlarmApp::checkKtimezoned);
 
-//    return exitCode;
+    return -1;   // continue executing the application instance
 }
 
 void KAlarmApp::checkKtimezoned()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/kalarmapp.h 
new/kalarm-16.12.3/src/kalarmapp.h
--- old/kalarm-16.12.2/src/kalarmapp.h  2017-02-05 20:37:07.000000000 +0100
+++ new/kalarm-16.12.3/src/kalarmapp.h  2017-02-19 21:32:10.000000000 +0100
@@ -56,6 +56,8 @@
         bool               wantShowInSystemTray() const;
         bool               alarmsEnabled() const           { return 
mAlarmsEnabled; }
         bool               korganizerEnabled() const       { return 
mKOrganizerEnabled; }
+        int                activate(const QStringList& args, const QString& 
workingDirectory, QString& outputText)
+                                                           { return 
activateInstance(args, workingDirectory, &outputText); }
         bool               restoreSession();
         bool               quitIf()                        { return quitIf(0); 
}
         void               doQuit(QWidget* parent);
@@ -92,7 +94,7 @@
         QString            dbusList();
 
     public Q_SLOTS:
-        void               activate(const QStringList& args, const QString& 
workingDirectory);
+        void               activateByDBus(const QStringList& args, const 
QString& workingDirectory);
         void               processQueue();
         void               setAlarmsEnabled(bool);
         void               purgeNewArchivedDefault(const Akonadi::Collection&);
@@ -168,6 +170,7 @@
 
         KAlarmApp(int& argc, char** argv);
         bool               initialise();
+        int                activateInstance(const QStringList& args, const 
QString& workingDirectory, QString* outputText);
         bool               initCheck(bool calendarOnly = false, bool 
waitForCollection = false, Akonadi::Collection::Id = -1);
         bool               quitIf(int exitCode, bool force = false);
         bool               checkSystemTray();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/main.cpp 
new/kalarm-16.12.3/src/main.cpp
--- old/kalarm-16.12.2/src/main.cpp     2017-02-05 20:37:07.000000000 +0100
+++ new/kalarm-16.12.3/src/main.cpp     2017-02-19 21:32:10.000000000 +0100
@@ -31,6 +31,7 @@
 #include <QDir>
 #include <QScopedPointer>
 
+#include <iostream>
 #include <stdlib.h>
 
 #define PROGRAM_NAME "kalarm"
@@ -41,7 +42,7 @@
     // before libraries unload, to avoid crashes during clean-up.
     QScopedPointer<KAlarmApp> app(KAlarmApp::create(argc, argv));
 
-    QStringList args = app->arguments();
+    const QStringList args = app->arguments();
     app->setAttribute(Qt::AA_UseHighDpiPixmaps, true);
     app->setAttribute(Qt::AA_EnableHighDpiScaling);
 
@@ -58,7 +59,17 @@
 
     qCDebug(KALARM_LOG) << "initialising";
 
-    app->activate(args, QDir::currentPath());
+    QString outputText;
+    int exitCode = app->activate(args, QDir::currentPath(), outputText);
+    if (exitCode >= 0)
+    {
+        if (exitCode > 0)
+            std::cout << qPrintable(outputText) << std::endl;
+        else
+            std::cerr << qPrintable(outputText) << std::endl;
+        exit(exitCode);
+    }
+
     app->restoreSession();
     return app->exec();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/traywindow.cpp 
new/kalarm-16.12.3/src/traywindow.cpp
--- old/kalarm-16.12.2/src/traywindow.cpp       2017-02-05 20:37:07.000000000 
+0100
+++ new/kalarm-16.12.3/src/traywindow.cpp       2017-02-19 21:32:10.000000000 
+0100
@@ -233,6 +233,19 @@
 }
 
 /******************************************************************************
+* Show the associated main window.
+*/
+void TrayWindow::showAssocMainWindow()
+{
+    if (mAssocMainWindow)
+    {
+        mAssocMainWindow->show();
+        mAssocMainWindow->raise();
+        mAssocMainWindow->activateWindow();
+    }
+}
+
+/******************************************************************************
 * A left click displays the KAlarm main window.
 */
 void TrayWindow::slotActivateRequested()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kalarm-16.12.2/src/traywindow.h 
new/kalarm-16.12.3/src/traywindow.h
--- old/kalarm-16.12.2/src/traywindow.h 2017-02-05 20:37:07.000000000 +0100
+++ new/kalarm-16.12.3/src/traywindow.h 2017-02-19 21:32:10.000000000 +0100
@@ -1,7 +1,7 @@
 /*
  *  traywindow.h  -  the KDE system tray applet
  *  Program:  kalarm
- *  Copyright © 2002-2012 by David Jarvie <[email protected]>
+ *  Copyright © 2002-2017 by David Jarvie <[email protected]>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -45,6 +45,7 @@
         void         removeWindow(MainWindow*);
         MainWindow*  assocMainWindow() const               { return 
mAssocMainWindow; }
         void         setAssocMainWindow(MainWindow* win)   { mAssocMainWindow 
= win; }
+        void         showAssocMainWindow();
 
     Q_SIGNALS:
         void         deleted();


Reply via email to