because the old KNotification implementation did not look for sounds
recursively it was not possible to set a relative sound file that is
supposed to not be in one of the main sound directories (e.g a sound in a
sub-directory like /usr/share/sounds/freedesktop/stereo/message.oga, for
such files the full path had to be set in the notification config but no
more)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
another rewrite of bits dating back to 1997 done:
https://ibb.co/5GKtQT1
while working on it the idea of writing custom widget that will act as
checkbox but look something like a slider and using that instead of tables
popped up (the widget design itself is not new but using the widget in new
UIs will be).
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
cleaning up the mess, everything but KNotificationConfigWidget is
implemented.
not only does it not require additional D-Bus service (knotify) to
function but also does not transmit pixmaps over D-Bus, the features
to execute command or log to file are dropped and will not be
implemented.
also about markup support in notifications - if the server does not
support markup then it is supposed to strip it, see the spec:
https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html#backwards-compat
meaning nothing should be done by KNotification itself because it is not
a server, it is just a proxy.
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
because the status notifier data engine (see
kde-workspace/plasma/dataengines/statusnotifieritem/statusnotifieritemsource.cpp)
assumes that pixmaps are not larger than KIconLoader::SizeLarge
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
does nothing but slow down the image serialization on little endian really,
the image data is not ment to be saved and passed around to other host
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
the methods and signals were implemenented for compat with libdbusmenu-qt
but KStatusNotifierItem tracks status by itself for example, internal menu
synchronization (e.g. triggering importer action when exporter action is
triggered) can be implemented via the D-Bus adaptor and interface but is
currently not required
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
Katana (or any interface designed around key and mouse events) is not
for blind people, trying to slap text-to-speech on top of it was the
wrong thing to do to begin with
side note: speech-dispatcher tends to hang if the output device is not
configured properly (i.e. editing /etc/speech-dispatcher/speechd.conf
manually)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
KGlobalAccelPrivate uses service watcher and the interface is invalid until
the service is activated (either by the first call of the interface or some
other lazy-initialization method), however KNotificationManager does
connect to signals immediately (which should work regardless) but the error
may have been logged before
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
creating QDBusInterface should start the services, in case the services
cannot be started tho delays may be experienced (such as the UI freezing
while waiting for D-Bus reply to finish) thus logging error
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
it cannot be detached even if not copied (as done when it is not in
QImage::Format_ARGB32 format) because image is constant reference but if it
is converted it will be actually detached, also QByteArray takes ownership
of the data
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>