summaryrefslogtreecommitdiff
path: root/extra/kdiff3/kdiff3-relative-path.patch
blob: 7cfccd6f59700bb06d13ad6a3608244718f87d69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
--- a/kdiff3/src-QT4/fileaccess.cpp
+++ b/kdiff3/src-QT4/fileaccess.cpp
@@ -183,7 +183,8 @@
 
 void FileAccess::setFile( const QFileInfo& fi, FileAccess* pParent )
 {
-   m_filePath   = nicePath( fi.filePath() ); // remove "./" at start   
+   m_filePath   = pParent == 0 ? fi.absoluteFilePath() : 
+                                 nicePath( fi.filePath() ); // remove "./" at start   
 
    m_bSymLink   = fi.isSymLink();
    if ( m_bSymLink || (!m_bExists  && m_filePath.contains("@@") ) )
@@ -566,7 +567,16 @@
    if ( parent() != 0 )
       return parent()->absoluteFilePath() + "/" + m_filePath;
    else
-      return m_filePath;
+   {
+      if ( m_filePath.isEmpty() )
+	 return QString();
+      
+      QFileInfo fi( m_filePath );
+      if ( fi.isAbsolute() )
+	 return m_filePath;
+      else
+	 return fi.absoluteFilePath(); // Probably never reached
+   }
 }  // Full abs path
 
 // Just the name-part of the path, without parent directories
@@ -1184,7 +1194,7 @@
       m_bSuccess = false;
       KIO::FileCopyJob* pJob = KIO::file_move( m_pFileAccess->url(), kurl, permissions, KIO::HideProgressInfo );
       connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
-      connect( pJob, SIGNAL(percent(KJob*,unsigned long)), this, SLOT(slotPercent(KJob*, unsigned long)));
+      connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
 
       ProgressProxy::enterEventLoop( pJob,
          i18n("Renaming file: %1 -> %2",m_pFileAccess->prettyAbsPath(),dest) );
@@ -1673,7 +1683,7 @@
                   &pp,      SLOT( slotListDirInfoMessage(KJob*, const QString&) ));
 
          // This line makes the transfer via fish unreliable.:-(
-         //connect( pListJob, SIGNAL(percent(KJob*,unsigned long)), this, SLOT(slotPercent(KJob*, unsigned long)));
+         //connect( pListJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
 
          ProgressProxy::enterEventLoop( pListJob,
             i18n("Listing directory: %1",m_pFileAccess->prettyAbsPath()) );
--- a/kdiff3/src-QT4/kdiff3.cpp
+++ b/kdiff3/src-QT4/kdiff3.cpp
@@ -211,6 +211,8 @@
       m_outputFilename = args->getOption("output");
       if ( m_outputFilename.isEmpty() )
          m_outputFilename = args->getOption("out");
+      if ( ! m_outputFilename.isEmpty() )
+         m_outputFilename = FileAccess( m_outputFilename, true ).absoluteFilePath();
    }
 
    m_bAutoFlag = args!=0  && args->isSet("auto");