[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.4/kdelibs/plasma
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2010-01-31 23:26:46
Message-ID: 1264980406.354384.18000.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1083284 by aseigo:

http://, man:/, file:/// and file:// all work as expected


 M  +42 -29    runnercontext.cpp  


--- branches/KDE/4.4/kdelibs/plasma/runnercontext.cpp #1083283:1083284
@@ -116,7 +116,7 @@
     // path components
     QStringList components = QString(path).split(QDir::separator());
 
-    if (components.size() < 2) {
+    if (components.size() < 1) {
         return false;
     }
 
@@ -124,12 +124,11 @@
 
     //kDebug() << "Components are" << components;
 
-    QString correctPath;
-
-    if (components.back().isEmpty()) {
+    if (mustBeDir) {
         components.pop_back();
     }
 
+    QString correctPath;
     const unsigned initialComponents = components.size();
     for (unsigned i = 0; i < initialComponents - 1; i ++) {
         const QString tmp = components[0] + QDir::separator() + \
components[1]; @@ -174,6 +173,7 @@
 
         /**
          * Determines type of query
+                    &&
          */
         void determineType()
         {
@@ -191,38 +191,51 @@
                                      RunnerContext::Executable;
             } else {
                 KUrl url(term);
-                QString correctCasePath;
                 // check for a normal URL first
-                if (KProtocolInfo::protocolClass(url.protocol()) == \
                ":internet" &&
-                    url.hasHost()) {
+                //kDebug() << url << \
KProtocolInfo::protocolClass(url.protocol()) << url.hasHost() << +          \
//    url.host() << url.isLocalFile() << path << path.indexOf('/'); +       \
const bool hasProtocol = !url.protocol().isEmpty(); +                const \
bool isLocalProtocol = KProtocolInfo::protocolClass(url.protocol()) == \
":local"; +                if (hasProtocol && 
+                    ((!isLocalProtocol && url.hasHost()) ||
+                     (isLocalProtocol && url.protocol() != "file"))) {
+                    // we either have a network protocol with a host, so \
we can show matches for it +                    // or we have a non-file \
url that may be local so a host isn't required  type = \
                RunnerContext::NetworkLocation;
-                // check if we have a local network location first, \
                otherwise assume a path,
-                // but if a path doesn't have any slashes is a single word \
                or
-                // sentence: it's too ambiguous to be sure we're in a \
                filesystem context
-                } else if (KProtocolInfo::protocolClass(url.protocol()) == \
                ":local" &&
-                         !url.isLocalFile()) {
-                    type = RunnerContext::NetworkLocation;
-                } else if ((path.indexOf('/') != -1 || path.indexOf('\\') \
                != -1) &&
-                           correctPathCase(path, correctCasePath)) {
-                    path = correctCasePath;
-                    QFileInfo info(path);
+                } else if (isLocalProtocol) {
+                    // at this point in the game, we assume we have a \
path, +                    // but if a path doesn't have any slashes
+                    // it's too ambiguous to be sure we're in a filesystem \
context +                    path = QDir::cleanPath(url.toLocalFile());
+                    //kDebug( )<< "slash check" << path;
+                    if (hasProtocol || ((path.indexOf('/') != -1 || \
path.indexOf('\\') != -1))) { +                        QString \
correctCasePath; +                        if (correctPathCase(path, \
correctCasePath)) { +                            path = correctCasePath;
+                            QFileInfo info(path);
+                            //kDebug( )<< "correct cas epath is" << \
correctCasePath << info.isSymLink() << +                            //    \
info.isDir() << info.isFile();  
-                    if (info.isSymLink()) {
-                        path = info.canonicalFilePath();
-                        info = QFileInfo(path);
-                    }
-                    if (info.isDir()) {
-                        type = RunnerContext::Directory;
-                        mimeType = "inode/folder";
-                    } else if (info.isFile()) {
-                        type = RunnerContext::File;
-                        KMimeType::Ptr mimeTypePtr = \
                KMimeType::findByPath(path);
-                        if (mimeTypePtr) {
-                            mimeType = mimeTypePtr->name();
+                            if (info.isSymLink()) {
+                                path = info.canonicalFilePath();
+                                info = QFileInfo(path);
+                            }
+                            if (info.isDir()) {
+                                type = RunnerContext::Directory;
+                                mimeType = "inode/folder";
+                            } else if (info.isFile()) {
+                                type = RunnerContext::File;
+                                KMimeType::Ptr mimeTypePtr = \
KMimeType::findByPath(path); +                                if \
(mimeTypePtr) { +                                    mimeType = \
mimeTypePtr->name(); +                                }
+                            }
                         }
                     }
                 }
             }
+
+            //kDebug() << "term2type" << term << type;
         }
 
         void invalidate()


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic