nah, I do not have to care about preferences - I wrote code to filter
duplicate metadata keys (something KIO:PreviewJob lacks - what if
preferred thumbnailer fails but other succeeds?)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
the code for preferences is pretty much the same I wrote for
KIO::PreviewJob (see KIO::PreviewJobPrivate::startPreview())
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
it queues a message box parented to the window (does not block until OK
button is clicked) and in case of error KRun and the message box are
automatically deleted
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
note that KIO::ERR_SERVICE_NOT_AVAILABLE was not handled in
KIO::buildErrorString() (since before the fork)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
so that application event processing is not blocked by any
KToolInvocation method, the D-Bus service name and PID return arguments
are not used anyway so removing them
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
if PID is not set then Slave::kill() is non-operational, note that it
was not done by the code before the klauncher rewrite (see
aa6b5ea4f0)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
there may be tasks in queue with the socket open but the connection state
may not be connected (see KIO::SocketConnectionBackend::state)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
if Q_OS_UNIX is not defined (which always is now, it's just compat
definition) then kdelibs itself will not build because it is not checked
if it defined in the kautomount source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
for programs that cannot be restarted by simply exec-ing them such as the
KIO slaves which require application socket as argument
note that restarting is maybe works thing - programs started by kdesudo
cannot be restarted (properly) as they are exec-ed by other program that
does the setup for them to function the way they should
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
generally, those signals should not be blocked but it seems something is
blocking consequent SIGSEGV signals send by `kill` for example
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
once KIO slaves are plugins it would not matter tho (KApplication sets the
KCrash::DrKonqi flag already) but for now since they are detached
process poping drkonqi in case they crash (and KDE_DEBUG is set) is more
usefull than printing trace to stderr
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
this was done only when there was pool socket (when klauncher was handling
slaves) but it has to be done anyway to prevent more tasks (commands) from
being send after error occurs
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
with klauncher no longer responsible for KIO slave the next step is to
make them plugins and the feature to put them on hold will be of no value
because QLibrary reuses library/plugin instances and creating a new
slave object will be cheap
in other words the performance will be similar to that of KFileMetaInfo
for which I also wrote the plugins myself - they are pretty quick
compared to what strigi was doing and with more flexible configuration
interface but it took some effort to get there
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
much simpler and easier to maintain, also it will be proper D-Bus
service now with no sockets, process title hack and whatnot. KCrash
and startkde script (in kde-workspace repo) have to be adjusted for
it tho
note that the internal KIO scheduler already has the functionality to
put slaves on hold but now they will be started as detached process.
eventually they may become plugins (they are loaded as such by kioslave
program) without event loop dispatcher
fixes application startup notification (ASN) and cleanup issues
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
such items should not be in the queue for preview even, even items for
remote URLs have something vendor-specific or application/octet-stream as
MIME type. fixes KMimeTypeTrader runtime warning
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
the soft MIME matching via KMimeType::is() is way too.. soft. it can match
application/x-dvi as plain/text (and use ps thumbnailer) which is not ideal
(should use only textthumbnail thumbnailer for plain/text and ps
thumbnailer for application/x-dvi)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
the reason for checking the preffered offers first should be obvious - it
is questionable which match should be done first. should it be the glob or
the exact match? chicken and egg thing
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
mostly to make the MIME types check consistent by using KMimeType::is()
for the comparison (as done by KPreviewPropsPlugin::supports() for example)
and to filter the ThumbCreator service type (to avoid invalid KMimeType
checks)
fixed KFileMetaInfo regression for plugins that use globs aswell
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
none of the plugins support it and it slows down the thumbnail
preview generation (or fetching of existing thumbnail)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
ideally, the keys would also be stored in the .desktop files so that
plugin instances would not have to be created from
KFileMetaInfo::supportedKeys() too
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
the option to change them is hidden deep into the Dolphin configuration
meaning a thumbnail not being generated in gwenview may require from the
user to launch Dolphin and increase the limit (especially for images in
RAW format) but does he/she know about it?
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>