Review Request: KIOSlave implementing "computer:" protocol

todd rme toddrme2178 at gmail.com
Mon Feb 7 19:52:41 GMT 2011


On Sat, Feb 5, 2011 at 7:35 AM, Andrius Ribas <andriusmao at gmail.com> wrote:

>    This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/6207/
>
> I'll rewrite the patch for git.reviewboard.kde.org but I'd like some more feedback first.. I've got some positive feedback from SaroEngels and negative from Pino on IRC.. This protocol is intended to have functionality similar to "desktop:"... I'm not sure if it would be better to enhance "file:" protocol instead (it'd maybe be harder to integrate)... I've checked some browsers (IE, Chrome, Opera) and only opera seems to implement correctly the "root" of "file:" protocol on Windows (Opera shows drive letters, IE and Chrome gives "not found" for "file:///"; KDE points "file:///", "file:" etc.. to "C:", "file:/localhost/C:" fails and "file://c:" points to "smb:/c/", so some behaviors need to be fixed and/or more compliant to RFC 1630 and RFC 1738) . Please note Solid is still not much stable on windows so imo, we cannot use it to query the drives yet.
>
>
> - Andrius
>
> On January 1st, 2011, 2:04 p.m., Andrius Ribas wrote:
>   Review request for kde-windows, kdelibs, Peter Penz, Pino Toscano,
> Fredrik Höglund, David Faure, and Patrick Spendrin.
> By Andrius Ribas.
>
> *Updated Jan. 1, 2011, 2:04 p.m.*
> Description
>
> A simple "computer" kioslave, showing the drive letters on "/", and redirecting to "file" otherwise.
> Additionaly this patch substitutes "root" on Konqueror sidebar, by "computer", also this changes the "places" panel (see below).
>
>
> (as reviewboard only supports single patches) additional patch for the "places" panel on trunk/KDE/kdelibs:
>
> Index: kfile/kfileplacesmodel.cpp
> ===================================================================
> --- kfile/kfileplacesmodel.cpp	(revision 1209174)
> +++ kfile/kfileplacesmodel.cpp	(working copy)
> @@ -120,40 +120,9 @@
>                                                "Network", I18N_NOOP2("KFile System Bookmarks", "Network"),
>                                                KUrl("remote:/"), "network-workgroup");
>  #ifdef Q_OS_WIN
> -        // adding drives
> -        foreach ( const QFileInfo& info, QDir::drives() ) {
> -#ifndef _WIN32_WCE
> -            uint type = DRIVE_UNKNOWN;
> -#endif
> -            QString driveIcon = "drive-harddisk";
> -#ifndef _WIN32_WCE
> -            QT_WA({ type = GetDriveTypeW((wchar_t *)info.absoluteFilePath().utf16()); },
> -                  { type = GetDriveTypeA(info.absoluteFilePath().toLocal8Bit()); });
> -            // qDebug() << "drive " << info.absoluteFilePath() << " type: " << type;
> -            switch (type) {
> -                case DRIVE_REMOVABLE:
> -                    driveIcon = "drive-removable-media";
> -                    break;
> -                case DRIVE_FIXED:
> -                    driveIcon = "drive-harddisk";
> -                    break;
> -                case DRIVE_REMOTE:
> -                    driveIcon = "network-server";
> -                    break;
> -                case DRIVE_CDROM:
> -                    driveIcon = "drive-optical";
> -                    break;
> -                case DRIVE_RAMDISK:
> -                case DRIVE_UNKNOWN:
> -                case DRIVE_NO_ROOT_DIR:
> -                default:
> -                    driveIcon = "drive-harddisk";
> -            }
> -#endif
> -            KFilePlacesItem::createSystemBookmark(d->bookmarkManager,
> -                                                  info.absoluteFilePath(), info.absoluteFilePath(),
> -                                                  KUrl(info.absoluteFilePath()), driveIcon);
> -        }
> +        KFilePlacesItem::createSystemBookmark(d->bookmarkManager,
> +                                              "Computer", I18N_NOOP2("KFile System Bookmarks", "Computer"),
> +                                              KUrl("computer:"), "Computer");
>  #else
>          KFilePlacesItem::createSystemBookmark(d->bookmarkManager,
>                                                "Root", I18N_NOOP2("KFile System Bookmarks", "Root"),
>
>   Testing
>
> Tested using MSVC 2008 on a windows 7 machine
>
>   *Bugs: * 163448 <https://bugs.kde.org/show_bug.cgi?id=163448>, 169628<https://bugs.kde.org/show_bug.cgi?id=169628>
> Diffs
>
>    - trunk/KDE/kdebase/apps/konqueror/sidebar/default_entries/CMakeLists.txt
>    (1209179)
>    - trunk/KDE/kdebase/apps/konqueror/sidebar/default_entries/computer.desktop
>    (PRE-CREATION)
>    - trunk/KDE/kdebase/runtime/kioslave/CMakeLists.txt (1209179)
>    - trunk/KDE/kdebase/runtime/kioslave/computer/CMakeLists.txt
>    (PRE-CREATION)
>    - trunk/KDE/kdebase/runtime/kioslave/computer/Messages.sh
>    (PRE-CREATION)
>    - trunk/KDE/kdebase/runtime/kioslave/computer/computer.protocol
>    (PRE-CREATION)
>    - trunk/KDE/kdebase/runtime/kioslave/computer/kio_computer.h
>    (PRE-CREATION)
>    - trunk/KDE/kdebase/runtime/kioslave/computer/kio_computer.cpp
>    (PRE-CREATION)
>
> View Diff <http://svn.reviewboard.kde.org/r/6207/diff/>
> Screenshots
> [image: Konqueror with sidebar]<http://svn.reviewboard.kde.org/r/6207/s/589/> [image:
> Dolphin] <http://svn.reviewboard.kde.org/r/6207/s/590/>
>


Just out of curiosity, why is this limited to only windows?  A bunch of
users have requested something similar for Linux as well, apparently
preferring that interface to the dolphin places panel.

It has uses beyond the normal file manager.  For instance it could be used
in the folder view widget as an alternative to the device notifier, allowing
people to use the popup navigation in folderview to drill down into
removable media (I personally would prefer such an interface to the existing
device notifier).  It could be used by S&L containment to provide removable
device access and navigation in one interface.

I think this has potential to provide a lot of useful capabilities to Linux
as well as to Windows.

-Todd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110207/c02ef377/attachment.htm>


More information about the kde-core-devel mailing list