Discussion:
How to debug kioslave problems ? [Was: Problem opening
(too old to reply)
Thiago Macieira
2006-04-03 08:14:50 UTC
Permalink
--===============2128928765==
Content-Type: multipart/signed;
boundary="nextPart3246409.Y5Albi6rC2";
protocol="application/pgp-signature";
micalg=pgp-sha1
Content-Transfer-Encoding: 7bit

--nextPart3246409.Y5Albi6rC2
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Hi!
I would like to kindly ask for help with the problem below. I've sent
the message below to kde-devel at 18. of March, but I got no response
yet. I would really like to debug the problem but I don't have enough
knowledge of internal kioslave operation so I don't know, where to
start digging.
There's a file called DEBUG.howto in kdebase/kioslave that explains how to=
=20
debug an ioslave.

=2D-=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
thiago.macieira (AT) trolltech.com Trolltech AS
GPG: 0x6EF45358 | Sandakerveien 116,
E067 918B B660 DBD1 105C | NO-0402
966C 33F5 F005 6EF4 5358 | Oslo, Norway

--nextPart3246409.Y5Albi6rC2
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQBEMNlRM/XwBW70U1gRAnMPAJ9UQjLg7Qp8le17g0Bfk2Mw4FsSHwCeI+SZ
KTrvCx2VbwaBLEONKlUNb4U=
=qV5d
-----END PGP SIGNATURE-----

--nextPart3246409.Y5Albi6rC2--

--===============2128928765==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
--===============2128928765==--
Pavel Troller
2006-04-03 12:37:09 UTC
Permalink
Post by Thiago Macieira
There's a file called DEBUG.howto in kdebase/kioslave that explains how to
debug an ioslave.
Great!
This helped me very much to "get in touch" with the kioslave process.
So I did, as suggested in the howto, attached gdb and used cont two times
to start the slave in the debugger, to see, what will happen.
Immediately after the slave started, the dialog with "Malformed URL"
appeared in konq. However, the slave continued to run and when Ctrl-C'ed, it
showed it's idling in its KIO:SlaveBase:DispatchLoop(). There were no messages
output by the slave.
As I looked at the kio_bluetooth sources, I saw some kdDebug() calls.
However, I never saw their output neither in my .xsession-errors nor in the gdb
output. I tried to enable the output in kdebugdialog, but I didn't find anyting
related to kio_bluetooth there. I've turned all the kio related things on but
it didn't enable anything from kio_bluetooth. How to enable these particular
messages ? I still don't understand all the data flow through the slave so
these messages would help me a lot (it's necessary for me to know it at least
roughly to be able to even put a breakpoint to the suitable place)...
Sorry for asking so much stupid questions...
With regards, Pavel Troller
Post by Thiago Macieira
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
Thiago Macieira
2006-04-03 16:51:48 UTC
Permalink
--===============1904377407==
Content-Type: multipart/signed;
boundary="nextPart3828234.omTVKDgG2c";
protocol="application/pgp-signature";
micalg=pgp-sha1
Content-Transfer-Encoding: 7bit

--nextPart3828234.omTVKDgG2c
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
=A0 Immediately after the slave started, the dialog with "Malformed URL"
appeared in konq. However, the slave continued to run and when
Ctrl-C'ed, it showed it's idling in its KIO:SlaveBase:DispatchLoop().
There were no messages output by the slave.
You probably want to set a breakpoint in stat() or listDir() or get() (or=20
all three) to catch the Konqueror request.

=2D-=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
thiago.macieira (AT) trolltech.com Trolltech AS
GPG: 0x6EF45358 | Sandakerveien 116,
E067 918B B660 DBD1 105C | NO-0402
966C 33F5 F005 6EF4 5358 | Oslo, Norway

--nextPart3828234.omTVKDgG2c
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQBEMVJ0M/XwBW70U1gRAi+JAKCWQCV2Qq9EHx/XsYpxCClBl3B1BgCfVuRA
5XfKpL7NOLyWZnEhJRzRoUI=
=fq0I
-----END PGP SIGNATURE-----

--nextPart3828234.omTVKDgG2c--

--===============1904377407==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
--===============1904377407==--
David Faure
2006-04-03 19:00:52 UTC
Permalink
=A0 As I looked at the kio_bluetooth sources, I saw some kdDebug() calls.
However, I never saw their output neither in my .xsession-errors nor in t=
he gdb
output.
Sometimes it helps to simply type "kdeinit" in a konsole, and then kill all=
running slaves.
Then new slaves will be launched by that kdeinit and you can see the output=
in that konsole.
I tried to enable the output in kdebugdialog, but I didn't find anyting =
related to kio_bluetooth there.
Simply use the debug area that those kdDebug() calls use.

-- =

David Faure, ***@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).

=
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=
e <<
Pavel Troller
2006-04-03 19:42:09 UTC
Permalink
=A0 Immediately after the slave started, the dialog with "Malformed URL"
appeared in konq. However, the slave continued to run and when
Ctrl-C'ed, it showed it's idling in its KIO:SlaveBase:DispatchLoop().
There were no messages output by the slave.
=
You probably want to set a breakpoint in stat() or listDir() or get() (or =
all three) to catch the Konqueror request.
=
Hi!
many thanks to all of you, I've made a substantial progress!
Now I know, why it doesn't work:
bluetooth slave doesn't implement get() at all! All the implementaion
consists of

void KioBluetooth::get(const KURL &/*url*/)
{
kdDebug() << "kio_bluetooth: get() was called! This is nonsense." << en=
dl ;
error(KIO::ERR_IS_DIRECTORY, QString::null);
}

After checking debug class 0 and putting breakpoints to all of the functi=
ons,
I've got the result by two ways simultaneously :-).

But... It WORKED formerly! It still works on KDE3.5.1, installed on my
notebook. It was not a dream, it was a reality :-). According to svn log,
kiobluetooth.cpp was not touched since the package was created in SVN. So
probably, there was a recent change in kioslave handling, which caused that
now get() is being used and formerly it probably wasn't.
What to do next ? Is it necessary to write a real get(), or could it be
possible to omit its call for kio_bluetooth, as it used to be ? =


With regards, Pavel Troller
=
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=
e <<
David Faure
2006-04-03 20:43:30 UTC
Permalink
=A0 What to do next ? Is it necessary to write a real get(), or could it =
be
possible to omit its call for kio_bluetooth, as it used to be ?
I'm guessing that it implements copy()? And it has copyToFile=3Dtrue in the=
.protocol?
And that you used to copy to file:/ previously, but nowadays you're copying=
to other =

protocols instead, like system:/ or media:/ ?
This would explain it. Otherwise my crystal ball is deficient ;)

To explain this: get() is used to read a file, except when the slave implem=
ents copy()
and we're copying to file:/, then instead of shipping the data back to the =
app, the slave
is in charge of directly writing it out into a file. So get isn't called in=
that case.
But in most other cases - copying to other protocols, or if copy() isn't im=
plemented,
then get() is the -only- way to get the data. Sounds to me like it should b=
e implemented...
or is bluetooth:/ not about reading files somehow?

-- =

David Faure, ***@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).

=
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=
e <<
Pavel Troller
2006-04-03 21:10:23 UTC
Permalink
Hi David!
=A0 What to do next ? Is it necessary to write a real get(), or could i=
t be
possible to omit its call for kio_bluetooth, as it used to be ?
=
I'm guessing that it implements copy()? And it has copyToFile=3Dtrue in t=
he .protocol?
No. The only attributes (excluding Description) in its .protocol are:
[Protocol]
exec=3Dkio_bluetooth
protocol=3Dbluetooth
input=3Dnone
output=3Dfilesystem
reading=3Dtrue
And that you used to copy to file:/ previously, but nowadays you're copyi=
ng to other =
protocols instead, like system:/ or media:/ ?
This would explain it. Otherwise my crystal ball is deficient ;)
I'm afraid that I didn't understand you fully.
kio_bluetooth is something like a "meta-slave". There are no real files in =
it.
There are only objects pointing to other slaves, mostly sdp:/, describing y=
our
local and remote bluetooth devices. They have a nature of a directory, i.e.
they can be opened and then another objects appear in them, but this is han=
dled
by a different slave (sdp:/). So I think there is not possible to copy anyt=
hing
"real" into/from this bluetooth:/ pseudo-directory. I didn't find copy() =

implementation at all, and get() is just the stub which was not supposed to=
be
called.
=
To explain this: get() is used to read a file, except when the slave impl=
ements copy()
and we're copying to file:/, then instead of shipping the data back to th=
e app, the slave
is in charge of directly writing it out into a file. So get isn't called =
in that case.
But in most other cases - copying to other protocols, or if copy() isn't =
implemented,
then get() is the -only- way to get the data. Sounds to me like it should=
be implemented...
or is bluetooth:/ not about reading files somehow?
I think that really, bluetooth:/ is just about accessing BT devices opening
a "virtual directory". There are really no files in it. By modifying the de=
bug
call, I've found that konq is now trying to get() all the initial
URL "bluetooth:/", which is definitely not a file. I think that stat() woul=
d be
much more appropriate, and then listDir().
With regards, Pavel Troller
=
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=
e <<
Pavel Troller
2006-04-04 04:42:45 UTC
Permalink
There are really no files in it. By modifying the debug
call, I've found that konq is now trying to get() all the initial
URL "bluetooth:/", which is definitely not a file.
I think that stat() would be much more appropriate, and then listDir().
listing=Name,Type,Size,Date,Access,Owner,Group,Link
(edited to whichever fields listDir returns).
Hi!
Yes, it helped a lot. Now the stat(bluetooth:/) function is called and there
is no error from the slave.
However, konqueror crashes immediately:

kio_bluetooth: KioBluetooth::KioBluetooth()
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-patrol/ksycoca
kio_bluetooth: kio_bluetooth::stat(bluetooth:/)
kio (KRun): Finished
konqueror [kdeinit] bluetooth:/: krun.cpp:1096: virtual void KRun::slotStatResult(KIO::Job*): Assertion `m_bScanFile || m_bIsDirectory' failed.
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = konqueror path = <unknown> pid = 26408

Does it mean that there is something wrong with the data returned by the
slave ? I've looked at krun.cpp and it seems that the only possibility is that
KIO::UDS_FILE_TYPE entry is not present. But in kiobluetooth.cpp, there is

addAtom(entry, UDS_MIME_TYPE, mimeType); // this is empty for the failing call
addAtom(entry, UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, UDS_GUESSED_MIME_TYPE, "inode/folder");

and I've verified that this code is really executed when the slave runs.
So what the hell is going wrong now ?

With regards, Pavel Troller
Without listing=, KDirLister thinks that the protocol doesn't support listing, so
we (now) completely skip the listing stage and assume everything is a file,
which is true with some protocols (like http).
--
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
Pavel Troller
2006-04-04 15:36:21 UTC
Permalink
Hi!
I've made a new bunch of tests, trying to find, why konq crashes.
Post by Pavel Troller
Hi!
Yes, it helped a lot. Now the stat(bluetooth:/) function is called and there
is no error from the slave.
kio_bluetooth: KioBluetooth::KioBluetooth()
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-patrol/ksycoca
kio_bluetooth: kio_bluetooth::stat(bluetooth:/)
kio (KRun): Finished
konqueror [kdeinit] bluetooth:/: krun.cpp:1096: virtual void KRun::slotStatResult(KIO::Job*): Assertion `m_bScanFile || m_bIsDirectory' failed.
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = konqueror path = <unknown> pid = 26408
Does it mean that there is something wrong with the data returned by the
slave ? I've looked at krun.cpp and it seems that the only possibility is that
KIO::UDS_FILE_TYPE entry is not present. But in kiobluetooth.cpp, there is
addAtom(entry, UDS_MIME_TYPE, mimeType); // this is empty for the failing call
addAtom(entry, UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, UDS_GUESSED_MIME_TYPE, "inode/folder");
and I've verified that this code is really executed when the slave runs.
So what the hell is going wrong now ?
I've verified that
1) addAtom is correctly called in the slave several times, setting all the
above and much more (I've corrected inode/folder to inode/directory, but it
has no effect at all), when creating the directory.
2) iteration loop in krun.cpp, starting around line 1071, is not executed even
once, i.e. the list comes empty to it. It explains why the assert occurs.
I cannot explain, why the stat() results are not transferred correctly, sorry.
Is anybody willing to help me ?
With regards, Pavel Troller
Post by Pavel Troller
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
Thiago Macieira
2006-04-04 16:46:41 UTC
Permalink
--===============1792129573==
Content-Type: multipart/signed;
boundary="nextPart7492853.DIKOdDnBiJ";
protocol="application/pgp-signature";
micalg=pgp-sha1
Content-Transfer-Encoding: 7bit

--nextPart7492853.DIKOdDnBiJ
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
=A0 =A0 addAtom(entry, UDS_GUESSED_MIME_TYPE, "inode/folder");
There's no MIME type "inode/folder".

It's "inode/directory".
=2D-=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
thiago.macieira (AT) trolltech.com Trolltech AS
GPG: 0x6EF45358 | Sandakerveien 116,
E067 918B B660 DBD1 105C | NO-0402
966C 33F5 F005 6EF4 5358 | Oslo, Norway

--nextPart7492853.DIKOdDnBiJ
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQBEMqLFM/XwBW70U1gRAjMrAJ9DO2r5bxOvyHg+kKiNy/ExfPeYZQCeKc8J
62+rm/JFluojEP+i7jGiSdc=
=TjYg
-----END PGP SIGNATURE-----

--nextPart7492853.DIKOdDnBiJ--

--===============1792129573==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
--===============1792129573==--
David Faure
2006-04-04 17:31:43 UTC
Permalink
=A0 =A0 addAtom(entry, UDS_GUESSED_MIME_TYPE, "inode/folder");
=
There is no inode/folder.
Right, it's inode/directory (someone did a hasty search-replace? ;)
and there's no reason to use UDS_GUESSED_MIME_TYPE anyway, that's for a spe=
cial case in the FTP slave.
UDS_MIME_TYPE and UDS_FILE_TYPE should be enough.

-- =

David Faure, ***@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).

=
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=
e <<
David Faure
2006-04-04 18:25:55 UTC
Permalink
Post by Pavel Troller
Hi!
I've made a new bunch of tests, trying to find, why konq crashes.
Post by Pavel Troller
Hi!
Yes, it helped a lot. Now the stat(bluetooth:/) function is called and there
is no error from the slave.
kio_bluetooth: KioBluetooth::KioBluetooth()
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-patrol/ksycoca
kio_bluetooth: kio_bluetooth::stat(bluetooth:/)
kio (KRun): Finished
konqueror [kdeinit] bluetooth:/: krun.cpp:1096: virtual void KRun::slotStatResult(KIO::Job*): Assertion `m_bScanFile || m_bIsDirectory' failed.
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = konqueror path = <unknown> pid = 26408
Does it mean that there is something wrong with the data returned by the
slave ? I've looked at krun.cpp and it seems that the only possibility is that
KIO::UDS_FILE_TYPE entry is not present. But in kiobluetooth.cpp, there is
addAtom(entry, UDS_MIME_TYPE, mimeType); // this is empty for the failing call
addAtom(entry, UDS_FILE_TYPE, S_IFDIR);
addAtom(entry, UDS_GUESSED_MIME_TYPE, "inode/folder");
and I've verified that this code is really executed when the slave runs.
So what the hell is going wrong now ?
I've verified that
1) addAtom is correctly called in the slave several times, setting all the
above and much more (I've corrected inode/folder to inode/directory, but it
has no effect at all), when creating the directory.
From stat(), right? We're not talking about listDir() at this point.
Post by Pavel Troller
2) iteration loop in krun.cpp, starting around line 1071, is not executed even
once, i.e. the list comes empty to it. It explains why the assert occurs.
I cannot explain, why the stat() results are not transferred correctly, sorry.
Is anybody willing to help me ?
OK so this is about kdelibs-3, not kdelibs-4. This lowers the chances of a bug in krun considerably...

Does the slave actually call statEntry() from stat(), with the uds entry?
Where's the code for that ioslave? extragear?
--
David Faure, ***@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
Post by Pavel Troller
Post by Pavel Troller
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
Pavel Troller
2006-04-04 20:52:23 UTC
Permalink
Hi!
Post by David Faure
Post by Pavel Troller
I've verified that
1) addAtom is correctly called in the slave several times, setting all the
above and much more (I've corrected inode/folder to inode/directory, but it
has no effect at all), when creating the directory.
From stat(), right? We're not talking about listDir() at this point.
Yes, exactly.
Post by David Faure
Post by Pavel Troller
2) iteration loop in krun.cpp, starting around line 1071, is not executed even
once, i.e. the list comes empty to it. It explains why the assert occurs.
I cannot explain, why the stat() results are not transferred correctly, sorry.
Is anybody willing to help me ?
OK so this is about kdelibs-3, not kdelibs-4. This lowers the chances of a bug in krun considerably...
Does the slave actually call statEntry() from stat(), with the uds entry?
Doesn't seem so. It calls its own function createDirEntry(), which creates
the uds entry and fills it with the values.
Post by David Faure
Where's the code for that ioslave? extragear?
Yes, it's in kdeextragear-pim, in
kdebluetooth/kioslave/bluetooth/kiobluetooth.cpp
With regards, Pavel Troller
Post by David Faure
--
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
Post by Pavel Troller
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
David Faure
2006-04-04 21:00:17 UTC
Permalink
Post by Pavel Troller
Post by David Faure
Does the slave actually call statEntry() from stat(), with the uds entry?
Doesn't seem so. It calls its own function createDirEntry(), which creates
the uds entry and fills it with the values.
And then, what does it do with the entry? It's pretty useless to create stuff in stat()
if that stuff isn't sent to the application by calling statEntry() ;-)))
--
David Faure, ***@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
Post by Pavel Troller
Post by David Faure
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
David Faure
2006-04-04 21:02:11 UTC
Permalink
This should help, please test:

--- kiobluetooth.cpp.orig 2006-04-04 23:01:36.000000000 +0200
+++ kiobluetooth.cpp 2006-04-04 23:01:37.000000000 +0200
@@ -64,6 +64,7 @@ void KioBluetooth::stat(const KURL &url)
if (url.hasHost() == false && path == "/")
{
createDirEntry(entry, "Bluetooth neighborhood");
+ statEntry(entry);
finished();
}
else {
--
David Faure, ***@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
Pavel Troller
2006-04-05 04:52:30 UTC
Permalink
Now, when I try to open a device, which is
shown by the slave, it pops up an "Save/Open with:" dialog, instead of opening
it automatically by another slave (sdp:/).
This slave is returning items with another protocol in UDS_URL than the slave's own protocol...
I'm not sure this is really supported... I thought one had to use redirections or ForwardingSlaveBase
for this kind of thing, but well; this is I think unrelated to the problem you're describing,
so we can always come back to this one later if needed ;)
(should mostly be a problem in treeviews; for flat icon/list views it might work fine).
createDirEntry(entry, devName,
QString("sdp://[%1]/").arg(devName),
DeviceClassMimeConverter::classToMimeType(devClass));
Showing 'open with' seems to tell me that the mimetype is wrong;
what's the mimetype being passed in the above call?
It's shown as either "Phone Bluetooth Device" (for phones) or "Miscellaneous Bluetooth device"
(for computers including localhost). I've found their .desktop files, they are in
kdebluetooth-common/mimetypes in the kdeextragear-pim package and the exact type is
bluetooth/phone-device-class and bluetooth/misc-device-class.
I've tried to replace the above with generic "inode/directory" in createDirEntry(). It
solved the Open with: problem, but all the items were of course shown as folders; normally
they are shown either as a phone handset or as the bluetooth symbol.
I've also proactively looked at another .desktop files (for example, in "media" directory)
and I've found a line there saying "X-KDE-IsAlso=inode/directory". I've tried to put this
line to the appropriate desktop files, and... it helped :-)! No more "Save/Open As:", but
direct open in the same konq window, as it used to be!
Hmm, this url thing does seem weird. A redirection might solve this,
which you could try by
1) removing the UDS_URL atom
2) catching such items in listDir() - which currently only supports listing "/", i.e. bluetooth:/
and calling redirect(newurl) from there, where the newurl is the one that used to be in UDS_URL.
This means somehow finding the new url from listDir, I'm not sure what's the best way to do that
in that code, it means getting the name and class again, a bit like in doListBrowse but
preferrably without iteration...
Do you think that this is really necessary, when the "X-KDE-IsAlso" trick works ? It looks
to me as a relatively major code change; I would like the author/current maintainer of
kdebluetooth to do it... If there is any... It seems that the package has been abandoned,
which is really wrong...
OK. I will try to clean up the things, solve the rest (there are still some problems
with sdp:// "More services" directory) and then create a patch.
With regards, Pavel Troller
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
David Faure
2006-04-05 18:10:12 UTC
Permalink
Post by Pavel Troller
bluetooth/phone-device-class and bluetooth/misc-device-class.
=A0 I've tried to replace the above with generic "inode/directory" in cre=
ateDirEntry(). It
Post by Pavel Troller
solved the Open with: problem, but all the items were of course shown as =
folders; normally
Post by Pavel Troller
they are shown either as a phone handset or as the bluetooth symbol.
=A0 I've also proactively looked at another .desktop files (for example, =
in "media" directory)
Post by Pavel Troller
and I've found a line there saying "X-KDE-IsAlso=3Dinode/directory".
OK that's obviously needed otherwise konq has no idea what to open those it=
ems with, obviously.
[It might have worked long ago when we only checked S_IFDIR though].
Post by Pavel Troller
Do you think that this is really necessary, when the "X-KDE-IsAlso" tri=
ck works ? =


I think this ioslave will display in a broken way in tree views (either the=
sidebar treeview
or the treeview in a main konqueror view), but I understand if you don't wa=
nt to make major
code changes to that ioslave when it works in more usual view modes, and pr=
efer leaving that
to someone else.

-- =

David Faure, ***@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).

=
Post by Pavel Troller
Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=
e <<

Loading...