[KimDaBa] patch to allow export by link

Robert Krawitz rlk at alum.mit.edu
Sun Aug 8 18:02:03 BST 2004


The following patch allows exporting by link, in addition to copying:

diff -ru kimdaba-2004-07-18-noi18n/kimdaba/export.cpp kimdaba-2004-07-18-noi18n.new/kimdaba/export.cpp
--- kimdaba-2004-07-18-noi18n/kimdaba/export.cpp	2004-05-10 07:43:16.000000000 -0400
+++ kimdaba-2004-07-18-noi18n.new/kimdaba/export.cpp	2004-08-07 13:30:59.770259348 -0400
@@ -91,6 +91,7 @@
     _include = new QRadioButton( i18n("Include in .kim file"), grp );
     _manually = new QRadioButton( i18n("Manual copy next to .kim file"), grp );
     _auto = new QRadioButton( i18n("Automatically copy next to .kim file"), grp );
+    _link = new QRadioButton( i18n("Hard link next to .kim file"), grp );
     _manually->setChecked( true );
 
     connect( this, SIGNAL( helpClicked() ), this, SLOT( slotHelp() ) );
@@ -121,6 +122,7 @@
     QWhatsThis::add( _include, txt );
     QWhatsThis::add( _manually, txt );
     QWhatsThis::add( _auto, txt );
+    QWhatsThis::add( _link, txt );
 }
 
 ImageFileLocation ExportConfig::imageFileLocation() const
@@ -129,6 +131,8 @@
         return Inline;
     else if ( _manually->isChecked() )
         return ManualCopy;
+    else if ( _link->isChecked() )
+        return Link;
     else
         return AutoCopy;
 }
@@ -248,6 +252,8 @@
                 _zip->addLocalFile( file, QString::fromLatin1( "Images/" ) + zippedName );
             else if ( _location == AutoCopy )
                 Util::copy( file, _destdir + QString::fromLatin1( "/" ) + zippedName );
+            else if ( _location == Link )
+                Util::make_link( file, _destdir + QString::fromLatin1( "/" ) + zippedName );
             _steps++;
             _progressDialog->setProgress( _steps );
         }
diff -ru kimdaba-2004-07-18-noi18n/kimdaba/export.h kimdaba-2004-07-18-noi18n.new/kimdaba/export.h
--- kimdaba-2004-07-18-noi18n/kimdaba/export.h	2004-04-18 03:01:39.000000000 -0400
+++ kimdaba-2004-07-18-noi18n.new/kimdaba/export.h	2004-08-07 13:30:59.771259250 -0400
@@ -29,7 +29,7 @@
 class KZip;
 class QProgressDialog;
 
-enum ImageFileLocation { Inline, ManualCopy, AutoCopy };
+enum ImageFileLocation { Inline, ManualCopy, AutoCopy, Link };
 
 class Export :public ImageClient {
 
@@ -73,6 +73,7 @@
 private:
     QRadioButton* _include;
     QRadioButton* _manually;
+    QRadioButton* _link;
     QRadioButton* _auto;
 
 protected slots:
diff -ru kimdaba-2004-07-18-noi18n/kimdaba/util.cpp kimdaba-2004-07-18-noi18n.new/kimdaba/util.cpp
--- kimdaba-2004-07-18-noi18n/kimdaba/util.cpp	2004-06-13 11:43:55.000000000 -0400
+++ kimdaba-2004-07-18-noi18n.new/kimdaba/util.cpp	2004-08-07 13:30:59.774258957 -0400
@@ -313,6 +313,14 @@
     return true;
 }
 
+bool Util::make_link( const QString& from, const QString& to )
+{
+  if (link(from.ascii(), to.ascii()) != 0)
+    return false;
+  else
+    return true;
+}
+
 QString Util::readInstalledFile( const QString& fileName )
 {
     QString inFileName = locate( "data", QString::fromLatin1( "kimdaba/%1" ).arg( fileName ) );
diff -ru kimdaba-2004-07-18-noi18n/kimdaba/util.h kimdaba-2004-07-18-noi18n.new/kimdaba/util.h
--- kimdaba-2004-07-18-noi18n/kimdaba/util.h	2004-06-13 11:43:56.000000000 -0400
+++ kimdaba-2004-07-18-noi18n.new/kimdaba/util.h	2004-08-07 13:32:41.613291431 -0400
@@ -35,6 +35,7 @@
     static void checkForBackupFile( const QString& fileName );
     static bool ctrlKeyDown();
     static bool copy( const QString& from, const QString& to );
+    static bool make_link( const QString& from, const QString& to );
     static bool runningDemo();
     static void deleteDemo();
     static QString setupDemo();



More information about the Kphotoalbum mailing list