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

List:       kde-commits
Subject:    [kdevplatform] plugins/quickopen: Use relativePath instead of relativeUrl to properly display spaces
From:       Milian Wolff <mail () milianw ! de>
Date:       2013-07-31 21:51:14
Message-ID: E1V4eIc-0002Ql-V5 () scm ! kde ! org
[Download RAW message or body]

Git commit 3bdbee943bb893f41373dab30c8fdf48c45c85b8 by Milian Wolff.
Committed on 31/07/2013 at 21:50.
Pushed by mwolff into branch 'master'.

Use relativePath instead of relativeUrl to properly display spaces.

Otherwise we display files with spaces in them as 'foo%20bar'.

M  +5    -2    plugins/quickopen/projectfilequickopen.cpp
M  +13   -11   plugins/quickopen/tests/quickopentest.cpp

http://commits.kde.org/kdevplatform/3bdbee943bb893f41373dab30c8fdf48c45c85b8

diff --git a/plugins/quickopen/projectfilequickopen.cpp \
b/plugins/quickopen/projectfilequickopen.cpp index 28363f2..13d7f97 100644
--- a/plugins/quickopen/projectfilequickopen.cpp
+++ b/plugins/quickopen/projectfilequickopen.cpp
@@ -44,8 +44,11 @@ ProjectFileData::ProjectFileData( const ProjectFile& file )
 QString ProjectFileData::text() const
 {
     KUrl u(m_file.projectUrl);
-    u.adjustPath(KUrl::AddTrailingSlash);
-    return KUrl::relativeUrl( u, KUrl(m_file.pathOrUrl) );
+    QString ret = KUrl::relativePath( u.pathOrUrl(), m_file.pathOrUrl );
+    if (ret.startsWith(QLatin1String("./"))) {
+        ret.remove(0, 2);
+    }
+    return ret;
 }
 
 QString ProjectFileData::htmlDescription() const
diff --git a/plugins/quickopen/tests/quickopentest.cpp \
b/plugins/quickopen/tests/quickopentest.cpp index 6d63168..3cdfd90 100644
--- a/plugins/quickopen/tests/quickopentest.cpp
+++ b/plugins/quickopen/tests/quickopentest.cpp
@@ -125,6 +125,7 @@ void QuickOpenTest::testProjectFileFilter()
     ProjectFolderItem* foo = createChild<ProjectFolderItem>(project->projectItem(), \
"foo");  createChild<ProjectFileItem>(foo, "bar");
     createChild<ProjectFileItem>(foo, "asdf");
+    createChild<ProjectFileItem>(foo, "space bar");
     ProjectFolderItem* asdf = createChild<ProjectFolderItem>(project->projectItem(), \
"asdf");  createChild<ProjectFileItem>(asdf, "bar");
 
@@ -132,13 +133,14 @@ void QuickOpenTest::testProjectFileFilter()
     tmpFile.setFileName(dir.name() + "aaaa");
     QVERIFY(tmpFile.open());
     ProjectFileItem* aaaa = new ProjectFileItem(project, KUrl(tmpFile.fileName()), \
                project->projectItem());
-    QCOMPARE(project->fileSet().size(), 4);
+    QCOMPARE(project->fileSet().size(), 5);
 
     ProjectFileDataProvider provider;
     QCOMPARE(provider.itemCount(), 0u);
     projectController->addProject(project);
 
-    const QStringList original = QStringList() << "aaaa" << "asdf/bar" << "foo/asdf" \
<< "foo/bar"; +    const QStringList original = QStringList()
+        << "aaaa" << "asdf/bar" << "foo/asdf" << "foo/bar" << "foo/space bar";
 
     // lazy load
     QCOMPARE(provider.itemCount(), 0u);
@@ -153,7 +155,7 @@ void QuickOpenTest::testProjectFileFilter()
     // lazy load again
     QCOMPARE(items(provider), original);
     provider.reset();
-    QCOMPARE(items(provider), QStringList() << "asdf/bar" << "foo/asdf" << \
"foo/bar"); +    QCOMPARE(items(provider), QStringList() << "asdf/bar" << "foo/asdf" \
<< "foo/bar" << "foo/space bar");  
     // prefer files starting with filter
     provider.setFilterText("as");
@@ -162,33 +164,33 @@ void QuickOpenTest::testProjectFileFilter()
 
     // clear filter
     provider.reset();
-    QCOMPARE(items(provider), QStringList() << "asdf/bar" << "foo/asdf" << \
"foo/bar"); +    QCOMPARE(items(provider), QStringList() << "asdf/bar" << "foo/asdf" \
<< "foo/bar" << "foo/space bar");  
     // update on document close, lazy load again
     core->documentController()->closeAllDocuments();
-    QCOMPARE(items(provider), QStringList() << "asdf/bar" << "foo/asdf" << \
"foo/bar"); +    QCOMPARE(items(provider), QStringList() << "asdf/bar" << "foo/asdf" \
<< "foo/bar" << "foo/space bar");  provider.reset();
     QCOMPARE(items(provider), original);
 
     ProjectFileItem* blub = createChild<ProjectFileItem>(project->projectItem(), \
"blub");  // lazy load
-    QCOMPARE(provider.itemCount(), 4u);
-    provider.reset();
     QCOMPARE(provider.itemCount(), 5u);
+    provider.reset();
+    QCOMPARE(provider.itemCount(), 6u);
 
     // ensure we don't add stuff multiple times
     QMetaObject::invokeMethod(&provider, "fileAddedToSet",
                               Q_ARG(KDevelop::IProject*, project),
                               Q_ARG(KDevelop::IndexedString, blub->indexedUrl()));
-    QCOMPARE(provider.itemCount(), 5u);
+    QCOMPARE(provider.itemCount(), 6u);
     provider.reset();
-    QCOMPARE(provider.itemCount(), 5u);
+    QCOMPARE(provider.itemCount(), 6u);
 
     // lazy load in this implementation
     delete blub;
-    QCOMPARE(provider.itemCount(), 5u);
+    QCOMPARE(provider.itemCount(), 6u);
     provider.reset();
-    QCOMPARE(provider.itemCount(), 4u);
+    QCOMPARE(provider.itemCount(), 5u);
 
     QCOMPARE(items(provider), original);
 


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

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