Bug 138107

Summary: quanta doesn't import symlinked folders into project
Product: quanta Reporter: Janet <bugzilla>
Component: generalAssignee: András Manţia <amantia>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description Janet 2006-11-29 21:41:54 UTC
Version:           3.5.5 (using KDE 3.5.5, Debian Package 4:3.5.5a.dfsg.1-5 (4.0))
Compiler:          Target: i486-linux-gnu
OS:                Linux (i686) release 2.6.18-kanotix-1

Some of my website project strutures contain symlinked folders. But those folders and the files in it are not shown in the project list. E.g. project contains folders "~/hp/pics" and "~/hp/sources" which are listed and symlink folder ~/hp/testing (which points to ~/projects/20061103/testing) which isn't listed. When I rescan the project directory to add new files the real path to "testing" folder is shown but not added. All other KDE applications show symlinked folders integrated into the directory tree of the folder where the symlink (and not the actual folder which is symlinked) is. It is inconsistent that quanta does not. But however symlinks are treated quanta shouldn't ignore them.
Comment 1 Janet 2006-11-29 21:45:13 UTC
I know I can add those symlink folders manually. But I would expect that quanta does it automatically and treats symlink folders like real folders.
Comment 2 András Manţia 2007-01-09 19:21:59 UTC
SVN commit 621763 by amantia:

Fix symlink handling in Project Rescan, New Project adding files/folders.

BUG: 138107

 M  +2 -0      ChangeLog  
 M  +1 -1      project/projectlist.h  
 M  +7 -7      project/projectnewlocal.cpp  
 M  +2 -2      project/projectprivate.cpp  
 M  +1 -1      project/rescanprj.cpp  
 M  +10 -10    quanta.kdevelop  


--- branches/KDE/3.5/kdewebdev/quanta/ChangeLog #621762:621763
@@ -6,6 +6,8 @@
       - fix various crashes in the debugger [#137483]
       - fix crash when editing a <style> CSS area
       - use the correct encoding in the file dialogs [#138343]
+      - don't lose upload profile settings in certain cases
+      - fix symlink handling in Project Rescan, New Project adding files/folders [#138107]
 
 Version 3.5.5 (Release date: 11-10-2006; Started 01-09-2006):
  - bugfixes:
--- branches/KDE/3.5/kdewebdev/quanta/project/projectlist.h #621762:621763
@@ -56,7 +56,7 @@
   */
   KURL toRelative(const KURL &url) const
   {
-    return QExtFileInfo::toRelative(url, m_baseURL);
+    return QExtFileInfo::toRelative(url, m_baseURL, false);
   }
 
   /**
--- branches/KDE/3.5/kdewebdev/quanta/project/projectnewlocal.cpp #621762:621763
@@ -142,7 +142,7 @@
     fmask = mask->text();
   }
 
-  list = QExtFileInfo::allFilesRelative(baseURL, fmask, this);
+  list = QExtFileInfo::allFilesRelative(baseURL, fmask, this, false);
 
   return list;
 }
@@ -188,7 +188,7 @@
   {
     KURL u = list.first();
 
-    u = QExtFileInfo::toRelative( u, baseURL );
+    u = QExtFileInfo::toRelative( u, baseURL, false );
 
     if ( u.path().startsWith("..") || u.path().startsWith("/"))
     {
@@ -218,7 +218,7 @@
     progressBar->setTextEnabled(true);
     for (uint i = 0; i < list.count(); i++)
     {
-       list[i] = QExtFileInfo::toRelative(list[i], baseURL);
+       list[i] = QExtFileInfo::toRelative(list[i], baseURL, false);
        if (!fileList.contains(list[i]))
        {
          fileList.append(list[i]);
@@ -248,7 +248,7 @@
     dirURL.adjustPath(1);
 
     KURL sdir = dirURL;
-    sdir = QExtFileInfo::toRelative( sdir, baseURL);
+    sdir = QExtFileInfo::toRelative( sdir, baseURL, false);
 
     if ( sdir.path().startsWith("..") || sdir.path().startsWith("/") )
     {
@@ -275,7 +275,7 @@
       }
     }
 
-    slotInsertFilesAfterCopying(dirURL);
+    slotInsertFolderAfterCopying(dirURL);
   }
 }
 
@@ -293,7 +293,7 @@
   {
     dirURL = *it;
    // dirURL.adjustPath(1);
-    KURL::List files = QExtFileInfo::allFilesRelative(dirURL, "*", this);
+    KURL::List files = QExtFileInfo::allFilesRelative(dirURL, "*", this, false);
     progressBar->setTotalSteps(files.count() - 1);
     progressBar->setTextEnabled(true);
     KURL u;
@@ -328,7 +328,7 @@
   progressBar->setTextEnabled(true);
   for (it = a_urlList.begin(); it != a_urlList.end(); ++it)
   {
-    u = QExtFileInfo::toRelative(*it, baseURL);
+    u = QExtFileInfo::toRelative(*it, baseURL, false);
     if ( !fileList.contains(u))
     {
       fileList.append(u);
--- branches/KDE/3.5/kdewebdev/quanta/project/projectprivate.cpp #621762:621763
@@ -325,7 +325,7 @@
         if (!m_projectFiles.contains(url))
         {
           el = dom.createElement("item");
-          el.setAttribute("url", QuantaCommon::qUrl(QExtFileInfo::toRelative(url, baseURL)));
+          el.setAttribute("url", QuantaCommon::qUrl(QExtFileInfo::toRelative(url, baseURL, false)));
           dom.firstChild().firstChild().appendChild(el);
           m_projectFiles.insert( new ProjectURL(url, "", 1, false, el) );
           emit eventHappened("after_project_add", url.url(), QString::null);
@@ -337,7 +337,7 @@
       url = *it;
       if (!excludeRx.exactMatch(url.path()))
       {
-        el.setAttribute("url", QuantaCommon::qUrl(QExtFileInfo::toRelative(url, baseURL)));
+        el.setAttribute("url", QuantaCommon::qUrl(QExtFileInfo::toRelative(url, baseURL, false)));
         dom.firstChild().firstChild().appendChild(el);
         m_projectFiles.insert( new ProjectURL(url, "", 1, false, el) );
         emit eventHappened("after_project_add", url.url(), QString::null);
--- branches/KDE/3.5/kdewebdev/quanta/project/rescanprj.cpp #621762:621763
@@ -131,7 +131,7 @@
       }
     }
   }
-  for (QPtrList<KFileItem>::ConstIterator it = linkItems.constBegin(); it != linkItems.constEnd(); ++it)
+ for (QPtrList<KFileItem>::ConstIterator it = linkItems.constBegin(); it != linkItems.constEnd(); ++it)
   {
     KIO::ListJob *ljob = KIO::listRecursive( (*it)->url(), false );
     m_listJobCount++;
--- branches/KDE/3.5/kdewebdev/quanta/quanta.kdevelop #621762:621763
@@ -17,8 +17,8 @@
     <projectdirectory>.</projectdirectory>
     <absoluteprojectpath>false</absoluteprojectpath>
     <secondaryLanguages/>
-    <versioncontrol/>
-    <defaultencoding></defaultencoding>
+    <versioncontrol>kdevsubversion</versioncontrol>
+    <defaultencoding/>
     <projectname>quanta</projectname>
   </general>
   <kdevautoproject>
@@ -49,7 +49,7 @@
     </compiler>
     <run>
       <mainprogram>/data/development/build/kde-3.5/kdewebdev/quanta/src/quanta</mainprogram>
-      <programargs></programargs>
+      <programargs/>
       <terminal>false</terminal>
       <envvars/>
       <directoryradio>build</directoryradio>
@@ -57,7 +57,7 @@
       <autocompile>true</autocompile>
       <autoinstall>false</autoinstall>
       <autokdesu>false</autokdesu>
-      <globaldebugarguments></globaldebugarguments>
+      <globaldebugarguments/>
       <globalcwd>/data/development/build/kde-3.5/kdewebdev</globalcwd>
       <useglobalprogram>true</useglobalprogram>
       <runarguments>
@@ -184,7 +184,7 @@
     </groups>
     <tree>
       <hidenonprojectfiles>false</hidenonprojectfiles>
-      <hidepatterns/>
+      <hidepatterns></hidepatterns>
       <showvcsfields>true</showvcsfields>
     </tree>
   </kdevfileview>
@@ -207,16 +207,16 @@
   </kdevdoctreeview>
   <kdevdebugger>
     <general>
-      <dbgshell></dbgshell>
+      <dbgshell/>
       <programargs/>
       <gdbpath>/usr/bin/gdb</gdbpath>
       <breakonloadinglibs>true</breakonloadinglibs>
       <separatetty>false</separatetty>
       <floatingtoolbar>false</floatingtoolbar>
       <runappinappdirectory>true</runappinappdirectory>
-      <configGdbScript></configGdbScript>
-      <runShellScript></runShellScript>
-      <runGdbScript></runGdbScript>
+      <configGdbScript/>
+      <runShellScript/>
+      <runGdbScript/>
     </general>
     <display>
       <staticmembers>false</staticmembers>
@@ -298,7 +298,7 @@
     </codecompletion>
     <references/>
     <creategettersetter>
-      <prefixGet></prefixGet>
+      <prefixGet/>
       <prefixSet>set</prefixSet>
       <prefixVariable>m_,_</prefixVariable>
       <parameterName>theValue</parameterName>