D21661: add snoretoast backend for KNotifications on Windows
    Pino Toscano 
    noreply at phabricator.kde.org
       
    Sat Jun 15 09:24:45 BST 2019
    
    
  
pino added a comment.
  In D21661#479366 <https://phabricator.kde.org/D21661#479366>, @brute4s99 wrote:
  
  > I think I should make a new diff for further discussions, as this one is quite riddled with suggestions now. Are there any more issues with this patch or should I continue with a new one instead?
  
  
  Please do not drop this opening a new one, otherwise the whole discussion is basically killed...
INLINE COMMENTS
> CMakeLists.txt:49
> +  find_package(Qt5Network REQUIRED)
> +  find_package(Qt5XmlPatterns REQUIRED)
> +  list(APPEND knotifications_SRCS notifybysnore.cpp)
what do you need XmlPatterns for?
> CMakeLists.txt:51
> +  list(APPEND knotifications_SRCS notifybysnore.cpp)
> +  endif ()
> +
this is indented too much
> notifybysnore.cpp:80
> +            const auto index = str.indexOf(QLatin1Char('='));
> +            map.insert(str.toString().mid(0, index), str.mid(index + 1));
> +        }
instead of getting the real QString of `str` and then get a substring of it, first get the substring(ref) and then get the real QString of it
> notifybysnore.cpp:83
> +        const auto action = map[QStringLiteral("action")].toString();
> +        const auto id = map[QStringLiteral("notificationId")].toString().toInt();
> +        KNotification *notification;
QStringRef has toInt()
> notifybysnore.cpp:84
> +        const auto id = map[QStringLiteral("notificationId")].toString().toInt();
> +        KNotification *notification;
> +        const auto it = m_notifications.constFind(id);
if the notification is not found, this will be an uninitialized pointer; TBH if the search for the notification with the specified id fails, then it should be better to return earlier, as it means the notification is unknown
> notifybysnore.cpp:92
> +        const auto snoreAction = SnoreToastActions::getAction(waction);
> +        // MSVC2019 has issues with QString::toStdWString()
> +
please document what is the issue, so in the future the workaround can be dropped
> notifybysnore.cpp:139-140
> +    if (m_notifications.constFind(notification->id()) != m_notifications.constEnd()) {
> +            qCDebug(LOG_KNOTIFICATIONS) << "Duplicate notification with ID: " << notification->id() << " ignored.";
> +            return;
> +        }
they are indented too much
> notifybysnore.cpp:168-171
> +    if (!proc->waitForStarted()) {
> +    } else {
> +        finish(notification);
> +    }
the logic here is swapped: if `waitForStarted()` returns false, that means the process did not start successfully; also, after `finish()` you must return earlier (do not forget to delete the process), otherwise the rest of the code does things as if the process run fine
> notifybysnore.cpp:178-179
> +                if (exitStatus == QProcess::NormalExit) {
> +                    QFile::remove(QString(iconDir.path() + QLatin1Char('/') 
> +                                + QString::number(notification->id()) + QStringLiteral(".png")));
> +                } else {
the removal ought to be done no matter the exit status of the process: the process exited, so image for it is no more needed
> notifybysnore.cpp:200-202
> +    if (it.value()) {
> +        finish(it.value());
> +    }
no need to use `it` here, you already have the `notification` parameter...
> brute4s99 wrote in notifybysnore.cpp:44
> I've added more inline docs for now. @pino if you could guide me on how to update the docs on the website, that'd be great! 😃
> if you could guide me on how to update the docs on the website, that'd be great!
which website?
REPOSITORY
  R289 KNotifications
REVISION DETAIL
  https://phabricator.kde.org/D21661
To: brute4s99, broulik, sredman, vonreth, albertvaka
Cc: nicolasfella, pino, kde-frameworks-devel, LeGast00n, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20190615/e41da24c/attachment-0001.html>
    
    
More information about the Kde-frameworks-devel
mailing list