On Sat, Feb 5, 2011 at 7:35 AM, Andrius Ribas <andrius...@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

Reply via email to