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