[KPhotoAlbum] Add symlink option for export images
Robert Krawitz
rlk at alum.mit.edu
Fri Oct 15 00:12:49 BST 2010
Export by symlink is very useful for me.
Index: Utilities/Util.cpp
===================================================================
--- Utilities/Util.cpp (revision 1185973)
+++ Utilities/Util.cpp (working copy)
@@ -346,6 +346,14 @@
return true;
}
+bool Utilities::makeSymbolicLink( const QString& from, const QString& to )
+{
+ if (symlink(from.toLocal8Bit(), to.toLocal8Bit()) != 0)
+ return false;
+ else
+ return true;
+}
+
bool Utilities::canReadImage( const QString& fileName )
{
return ! KImageIO::typeForMime( KMimeType::findByPath( fileName, 0, true )->name() ).isEmpty() ||
Index: Utilities/Util.h
===================================================================
--- Utilities/Util.h (revision 1185973)
+++ Utilities/Util.h (working copy)
@@ -40,6 +40,7 @@
bool ctrlKeyDown();
bool copy( const QString& from, const QString& to );
void copyList( const QStringList& from, const QString& directoryTo );
+bool makeSymbolicLink( const QString& from, const QString& to );
bool makeHardLink( const QString& from, const QString& to );
bool runningDemo();
void deleteDemo();
Index: ImportExport/Export.cpp
===================================================================
--- ImportExport/Export.cpp (revision 1185973)
+++ ImportExport/Export.cpp (working copy)
@@ -85,12 +85,14 @@
_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 );
+ _symlink = new QRadioButton( i18n("Symbolic link next to .kim file"), grp );
_manually->setChecked( true );
boxLay->addWidget( _include );
boxLay->addWidget( _manually );
boxLay->addWidget( _auto );
boxLay->addWidget( _link );
+ boxLay->addWidget( _symlink );
// Compress
_compress = new QCheckBox( i18n("Compress export file"), top );
@@ -151,6 +153,7 @@
_include->setWhatsThis( txt );
_manually->setWhatsThis( txt );
_link->setWhatsThis( txt );
+ _symlink->setWhatsThis( txt );
_auto->setWhatsThis( txt );
setHelp( QString::fromLatin1( "chp-exportDialog" ) );
}
@@ -163,6 +166,8 @@
return ManualCopy;
else if ( _link->isChecked() )
return Link;
+ else if ( _symlink->isChecked() )
+ return Symlink;
else
return AutoCopy;
}
@@ -270,6 +275,8 @@
Utilities::copy( file, _destdir + QString::fromLatin1( "/" ) + zippedName );
else if ( _location == Link )
Utilities::makeHardLink( file, _destdir + QString::fromLatin1( "/" ) + zippedName );
+ else if ( _location == Symlink )
+ Utilities::makeSymbolicLink( file, _destdir + QString::fromLatin1( "/" ) + zippedName );
_steps++;
_progressDialog->setProgress( _steps );
Index: ImportExport/Export.h
===================================================================
--- ImportExport/Export.h (revision 1185973)
+++ ImportExport/Export.h (working copy)
@@ -35,7 +35,7 @@
namespace ImportExport
{
-enum ImageFileLocation { Inline, ManualCopy, AutoCopy, Link };
+enum ImageFileLocation { Inline, ManualCopy, AutoCopy, Link, Symlink };
class Export :public ImageManager::ImageClient {
@@ -89,6 +89,7 @@
QRadioButton* _include;
QRadioButton* _manually;
QRadioButton* _link;
+ QRadioButton* _symlink;
QRadioButton* _auto;
};
More information about the Kphotoalbum
mailing list