You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(98) |
Sep
(138) |
Oct
(100) |
Nov
(49) |
Dec
(131) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(94) |
Feb
(65) |
Mar
(100) |
Apr
(83) |
May
(72) |
Jun
(29) |
Jul
(167) |
Aug
(127) |
Sep
(131) |
Oct
(269) |
Nov
(122) |
Dec
(100) |
2005 |
Jan
(228) |
Feb
(266) |
Mar
(63) |
Apr
(135) |
May
(157) |
Jun
(52) |
Jul
(25) |
Aug
(49) |
Sep
(184) |
Oct
(159) |
Nov
(75) |
Dec
(37) |
2006 |
Jan
(60) |
Feb
(129) |
Mar
(110) |
Apr
(34) |
May
(31) |
Jun
(42) |
Jul
(72) |
Aug
(90) |
Sep
(57) |
Oct
(66) |
Nov
(42) |
Dec
(90) |
2007 |
Jan
(106) |
Feb
(54) |
Mar
(93) |
Apr
(27) |
May
(21) |
Jun
(17) |
Jul
(19) |
Aug
(22) |
Sep
(25) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2008 |
Jan
(65) |
Feb
(70) |
Mar
(29) |
Apr
(45) |
May
(91) |
Jun
(20) |
Jul
(11) |
Aug
(24) |
Sep
(23) |
Oct
(13) |
Nov
(23) |
Dec
(39) |
2009 |
Jan
(23) |
Feb
(39) |
Mar
(15) |
Apr
(56) |
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jonas B. <jb...@us...> - 2004-08-18 12:28:34
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27625 Modified Files: ChangeLog Log Message: ADDED: useraction: new Placeholder %_Sync("synchronizer-profile")% Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.280 retrieving revision 1.281 diff -C2 -d -r1.280 -r1.281 *** ChangeLog 18 Aug 2004 11:32:58 -0000 1.280 --- ChangeLog 18 Aug 2004 12:28:23 -0000 1.281 *************** *** 1,3 **** --- 1,4 ---- ====================== + ADDED: useraction: new Placeholder %_Sync("synchronizer-profile")% ADDED: synchronizer: profile handling ADDED: synchronizer: swap sides |
From: Jonas B. <jb...@us...> - 2004-08-18 11:50:26
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19460 Modified Files: CVSNEWS Log Message: Spaces in %_Path%, %_Current% and %_List% are now per default escaped Index: CVSNEWS =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/CVSNEWS,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** CVSNEWS 17 Aug 2004 12:31:16 -0000 1.9 --- CVSNEWS 18 Aug 2004 11:50:16 -0000 1.10 *************** *** 51,53 **** --- 51,55 ---- Clipboard manipulates the clipboard Copy copies a file, useful for quick, local, backups + Sync opens the Synchronizer with a given profile A GUI-based helper for placeholder-adding is provided. + In Path, Current and List spaces are per default automaticly escaped. |
From: Jonas B. <jb...@us...> - 2004-08-18 11:50:25
|
Update of /cvsroot/krusader/krusader_kde3/krusader/UserAction In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19460/krusader/UserAction Modified Files: expander.cpp expander.h Log Message: Spaces in %_Path%, %_Current% and %_List% are now per default escaped Index: expander.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/UserAction/expander.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** expander.h 11 Aug 2004 22:08:38 -0000 1.2 --- expander.h 18 Aug 2004 11:50:15 -0000 1.3 *************** *** 92,96 **** QString description; ///< A description of the placeholder EXPANDER expFunc; ///< The function used to expand it ! Parameter parameter[4]; ///< All Parameter of this placeholder (WARNING: max 4; if needed more, change it in the header) int parameterCount; ///< How many parameter are realy defined bool needPanel; ///< true if the placeholder needs a panel to operate on --- 92,96 ---- QString description; ///< A description of the placeholder EXPANDER expFunc; ///< The function used to expand it ! Parameter parameter[5]; ///< All Parameter of this placeholder (WARNING: max 4; if needed more, change it in the header) int parameterCount; ///< How many parameter are realy defined bool needPanel; ///< true if the placeholder needs a panel to operate on *************** *** 107,111 **** static QStringList expand( const QString& stringToExpand, bool useUrl, bool callEach ); ! static const int numOfPlaceholder = 12; ///< How many Placeholder are realy defined /** * A List of all Placeholder and thier Parameter. This is used to generate the AddPlaceholderPopup as well as by the expand function --- 107,111 ---- static QStringList expand( const QString& stringToExpand, bool useUrl, bool callEach ); ! static const int numOfPlaceholder = 13; ///< How many Placeholder are realy defined /** * A List of all Placeholder and thier Parameter. This is used to generate the AddPlaceholderPopup as well as by the expand function *************** *** 154,157 **** --- 154,161 ---- */ static QString exp_Copy( const ListPanel* panel, const QStringList& parameter, const bool& useUrl, const int& currentItem ); + /** + * This opens the synchronizer with a given profile + */ + static QString exp_Sync( const ListPanel* panel, const QStringList& parameter, const bool& useUrl, const int& currentItem ); Index: expander.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/UserAction/expander.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** expander.cpp 11 Aug 2004 22:08:37 -0000 1.3 --- expander.cpp 18 Aug 2004 11:50:15 -0000 1.4 *************** *** 18,21 **** --- 18,22 ---- #include "../Panel/listpanel.h" #include "../Panel/panelfunc.h" + #include "../Synchronizer/synchronizergui.h" #include <kdebug.h> *************** *** 50,54 **** // parameter: { "description", "default", nessesary }, ... (max 5, see .h) {"Path", i18n("panel's path"), exp_Path, { ! }, 0, true}, {"Count", i18n("number of ..."), exp_Count, { {i18n("count all:"), "__choose:All;Files;Dirs;Selected", false} --- 51,56 ---- // parameter: { "description", "default", nessesary }, ... (max 5, see .h) {"Path", i18n("panel's path"), exp_Path, { ! {i18n("Automatic escape spaces"), "__yes", false} ! }, 1, true}, {"Count", i18n("number of ..."), exp_Count, { {i18n("count all:"), "__choose:All;Files;Dirs;Selected", false} *************** *** 57,68 **** }, 0, true}, {"Current", i18n("current file (!= selected file)"), exp_Current, { ! {i18n("Ommit the current path (optional)"), "__no", false} ! }, 1, true}, {"List", i18n("Itemlist of ..."), exp_List, { {i18n("Which items"), "__choose:All;Files;Dirs;Selected", false}, {i18n("Separator between the items (optional)"), " ", false}, {i18n("Ommit the current path (optional)"), "__no", false}, ! {i18n("Mask (optional, all but 'Selected')"), "__select", false} ! }, 4, true}, //--------- Internals -------------- {"", "", 0, {}, 0, true}, // Separator --- 59,72 ---- }, 0, true}, {"Current", i18n("current file (!= selected file)"), exp_Current, { ! {i18n("Ommit the current path (optional)"), "__no", false}, ! {i18n("Automatic escape spaces"), "__yes", false} ! }, 2, true}, {"List", i18n("Itemlist of ..."), exp_List, { {i18n("Which items"), "__choose:All;Files;Dirs;Selected", false}, {i18n("Separator between the items (optional)"), " ", false}, {i18n("Ommit the current path (optional)"), "__no", false}, ! {i18n("Mask (optional, all but 'Selected')"), "__select", false}, ! {i18n("Automatic escape spaces"), "__yes", false} ! }, 5, true}, //--------- Internals -------------- {"", "", 0, {}, 0, true}, // Separator *************** *** 93,96 **** --- 97,103 ---- {i18n("Where it should be copied"), "__placeholder", true}, }, 2, false}, + {"Sync", i18n("Opens a synchronizer-profile"), exp_Sync, { + {i18n("Choose a profile"), "__syncprofile", true}, + }, 1, false}, {"Run", i18n("Execute a script"), 0, { {i18n("Script"), "__file", true}, *************** *** 104,116 **** ///////// expander functions ////////////////////////////////////////////////////////// ! QString Expander::exp_Path( const ListPanel* panel, const QStringList&, const bool& useUrl, const int& ) { if ( panel == 0 ) { kdWarning() << "Expander: no panel specified for %_Path%; ignoring..." << endl; return QString::null; } if ( useUrl ) ! return panel->func->files()->vfs_getOrigin().url(); else ! return panel->func->files()->vfs_getOrigin().path(); } --- 111,131 ---- ///////// expander functions ////////////////////////////////////////////////////////// ! QString Expander::exp_Path( const ListPanel* panel, const QStringList& parameter, const bool& useUrl, const int& ) { if ( panel == 0 ) { kdWarning() << "Expander: no panel specified for %_Path%; ignoring..." << endl; return QString::null; } + + QString result; + if ( useUrl ) ! result = panel->func->files()->vfs_getOrigin().url(); else ! result = panel->func->files()->vfs_getOrigin().path(); ! ! if ( parameter[0].lower() == "no" ) // don't escape spaces ! return result; ! else ! return result.replace(" ", "\\ "); } *************** *** 165,176 **** } if ( parameter[0].lower() == "yes" ) // ommit the current path ! return item; ! KURL url = panel->func->files()->vfs_getFile( item ); ! if ( useUrl ) ! return url.url(); else ! return url.path(); } --- 180,199 ---- } + QString result; + if ( parameter[0].lower() == "yes" ) // ommit the current path ! result = item; ! else { ! KURL url = panel->func->files()->vfs_getFile( item ); ! if ( useUrl ) ! result = url.url(); ! else ! result = url.path(); ! } ! if ( parameter[1].lower() == "no" ) // don't escape spaces ! return result; else ! return result.replace(" ", "\\ "); } *************** *** 213,217 **** if ( ! result.isEmpty() ) result += separator; ! result += *it; } } --- 236,243 ---- if ( ! result.isEmpty() ) result += separator; ! if ( parameter[4].lower() == "no" ) // don't escape spaces ! result += *it; ! else ! result += (*it).replace(" ", "\\ "); } } *************** *** 223,227 **** if ( ! result.isEmpty() ) result += separator; ! result += ((useUrl ? (*it).url() : (*it).path()) ); } } --- 249,256 ---- if ( ! result.isEmpty() ) result += separator; ! if ( parameter[4].lower() == "no" ) // don't escape spaces ! result += ( (useUrl ? (*it).url() : (*it).path()) ); ! else ! result += ( (useUrl ? (*it).url() : (*it).path()) ).replace(" ", "\\ "); } } *************** *** 317,320 **** --- 346,371 ---- } + QString Expander::exp_Sync( const ListPanel*, const QStringList& parameter, const bool&, const int& ) { + if ( parameter[0].isEmpty() ) { + kdWarning() << "Expander: no profile specified for %_Sync(profile)%; ignoring..." << endl; + return QString::null; + } + + SynchronizerGUI *sync = new SynchronizerGUI( krApp->mainView, parameter[0] ); + + bool refresh = sync->wasSynchronization(); + delete sync; + + // refresh both panels: + if( refresh ) { + // first the other, then the active; else the focus would change + getPanel( 'o' )->func->refresh(); + getPanel( 'a' )->func->refresh(); + } + + return QString::null; // this doesn't return everything, that's normal! + } + + ///////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////// end of expander functions ////////////////////////////// |
From: Karai C. <ck...@us...> - 2004-08-18 11:35:45
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16766/krusader_kde3/krusader/Synchronizer Modified Files: synchronizergui.cpp Log Message: Modification for cooperating with the UserMenu Index: synchronizergui.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** synchronizergui.cpp 17 Aug 2004 12:31:17 -0000 1.19 --- synchronizergui.cpp 18 Aug 2004 11:35:35 -0000 1.20 *************** *** 1483,1491 **** } ! while( isShown() ) ! { ! qApp->processEvents(); ! qApp->eventLoop()->processEvents( QEventLoop::AllEvents|QEventLoop::WaitForMore); ! } } --- 1483,1487 ---- } ! exec(); } |
From: Karai C. <ck...@us...> - 2004-08-18 11:33:14
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16315/krusader_kde3 Modified Files: ChangeLog Log Message: Accidentaly removed from ChangeLog Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.279 retrieving revision 1.280 diff -C2 -d -r1.279 -r1.280 *** ChangeLog 17 Aug 2004 17:03:38 -0000 1.279 --- ChangeLog 18 Aug 2004 11:32:58 -0000 1.280 *************** *** 26,29 **** --- 26,32 ---- FIXED: internationalization bugs, illegal usage of QString::latin1() + FIXED: krarc, problem with copying / moving inside the archive + FIXED: krarc, problem with international characters in put/mkdir + FIXED: krarc, problems at copying subdirectories from the archive FIXED: [ 1005533 ] stepping onto a subfs device crashes krusader FIXED: [ 988835 ] window size of synchronize dirs is not stored |
From: Karai C. <ck...@us...> - 2004-08-17 23:08:34
|
Update of /cvsroot/krusader/krusader_kde3/krusader/KViewer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28257/krusader_kde3/krusader/KViewer Modified Files: krviewer.cpp Log Message: FIXED: internationalization bugs, illegal usage of QString::latin1() Index: krviewer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/krviewer.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** krviewer.cpp 30 May 2004 14:20:03 -0000 1.22 --- krviewer.cpp 17 Aug 2004 17:03:38 -0000 1.23 *************** *** 307,311 **** return; } ! } else file = url.url().mid(url.url().find("/")); --- 307,311 ---- return; } ! } else file = url.path(); *************** *** 315,319 **** QDataStream in( &f_in ); ! FILE *out = KDE_fopen(tmpFile.name().mid(tmpFile.name().find("/")).latin1(),"w"); KIO::filesize_t fileSize = f_in.size(); --- 315,319 ---- QDataStream in( &f_in ); ! FILE *out = KDE_fopen(tmpFile.name().local8Bit(),"w"); KIO::filesize_t fileSize = f_in.size(); |
From: Karai C. <ck...@us...> - 2004-08-17 23:03:50
|
Update of /cvsroot/krusader/krusader_kde3/krusader/VFS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28257/krusader_kde3/krusader/VFS Modified Files: krarchandler.cpp Log Message: FIXED: internationalization bugs, illegal usage of QString::latin1() Index: krarchandler.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/VFS/krarchandler.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** krarchandler.cpp 27 Jul 2004 22:31:28 -0000 1.9 --- krarchandler.cpp 17 Aug 2004 17:03:39 -0000 1.10 *************** *** 304,308 **** // check the return value if ( !proc.normalExit() || proc.exitStatus() != 0 ) { ! KMessageBox::error( krApp, i18n( "Failed to pack: " ) + dest.latin1(), i18n( "Error" ) ); return false; } --- 304,308 ---- // check the return value if ( !proc.normalExit() || proc.exitStatus() != 0 ) { ! KMessageBox::error( krApp, i18n( "Failed to pack: " ) + dest, i18n( "Error" ) ); return false; } *************** *** 311,315 **** if ( krConfig->readBoolEntry( "Test Archives", _TestArchives ) && !test( dest, type, count ) ) { ! KMessageBox::error( krApp, i18n( "Failed to pack" ) + dest.latin1(), i18n( "Error" ) ); return false; } --- 311,315 ---- if ( krConfig->readBoolEntry( "Test Archives", _TestArchives ) && !test( dest, type, count ) ) { ! KMessageBox::error( krApp, i18n( "Failed to pack: " ) + dest, i18n( "Error" ) ); return false; } |
From: Karai C. <ck...@us...> - 2004-08-17 22:46:18
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Panel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28257/krusader_kde3/krusader/Panel Modified Files: panelfunc.cpp Log Message: FIXED: internationalization bugs, illegal usage of QString::latin1() Index: panelfunc.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/panelfunc.cpp,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** panelfunc.cpp 3 Aug 2004 11:07:24 -0000 1.73 --- panelfunc.cpp 17 Aug 2004 17:03:39 -0000 1.74 *************** *** 161,165 **** // on local file system change the working directory if( files()->vfs_getType() == vfs::NORMAL ) ! chdir( files()->vfs_getOrigin().path().latin1() ); } --- 161,165 ---- // on local file system change the working directory if( files()->vfs_getType() == vfs::NORMAL ) ! chdir( files()->vfs_getOrigin().path().local8Bit() ); } *************** *** 210,219 **** // delete the current link if ( unlink( file.local8Bit() ) == -1 ) { ! KMessageBox::sorry( krApp, i18n( "Can't remove old link: " ) + file.latin1() ); return ; } // try to create a new symlink if ( symlink( newLink.local8Bit(), file.local8Bit() ) == -1 ) { ! KMessageBox::/* --=={ Patch by Heiner <h.e...@gm...> }==-- */sorry( krApp, i18n( "Failed to create a new link: " ) + file.latin1() ); return ; } --- 210,219 ---- // delete the current link if ( unlink( file.local8Bit() ) == -1 ) { ! KMessageBox::sorry( krApp, i18n( "Can't remove old link: " ) + file ); return ; } // try to create a new symlink if ( symlink( newLink.local8Bit(), file.local8Bit() ) == -1 ) { ! KMessageBox::/* --=={ Patch by Heiner <h.e...@gm...> }==-- */sorry( krApp, i18n( "Failed to create a new link: " ) + file ); return ; } *************** *** 231,235 **** bool ok = false; QString linkName = ! KInputDialog::getText( i18n("New link"),i18n( "Create a new link to: " ) + name.latin1(), name.latin1(), &ok, krApp ); // if the user canceled - quit --- 231,235 ---- bool ok = false; QString linkName = ! KInputDialog::getText( i18n("New link"),i18n( "Create a new link to: " ) + name, name, &ok, krApp ); // if the user canceled - quit *************** *** 250,258 **** if ( sym ) { ! if ( symlink( name.latin1(), linkName.latin1() ) == -1 ) KMessageBox::sorry( krApp, i18n( "Failed to create a new symlink: " ) + linkName + i18n( " To: " ) + name ); } else { ! if ( link( name.latin1(), linkName.latin1() ) == -1 ) KMessageBox::sorry( krApp, i18n( "Failed to create a new link: " ) + linkName + i18n( " To: " ) + name ); --- 250,258 ---- if ( sym ) { ! if ( symlink( name.local8Bit(), linkName.local8Bit() ) == -1 ) KMessageBox::sorry( krApp, i18n( "Failed to create a new symlink: " ) + linkName + i18n( " To: " ) + name ); } else { ! if ( link( name.local8Bit(), linkName.local8Bit() ) == -1 ) KMessageBox::sorry( krApp, i18n( "Failed to create a new link: " ) + linkName + i18n( " To: " ) + name ); *************** *** 531,535 **** if ( dir.count() > 2 ) { switch ( KMessageBox::warningYesNoCancel( krApp, ! i18n( "Directory " ) + ( *name ).latin1() + i18n( " is not empty !\nSkip this one or Delete All ?" ), QString::null, i18n( "&Skip" ), i18n( "&Delete All" ) ) ) { case KMessageBox::Cancel : --- 531,535 ---- if ( dir.count() > 2 ) { switch ( KMessageBox::warningYesNoCancel( krApp, ! i18n( "Directory " ) + ( *name ) + i18n( " is not empty !\nSkip this one or Delete All ?" ), QString::null, i18n( "&Skip" ), i18n( "&Delete All" ) ) ) { case KMessageBox::Cancel : |
From: Karai C. <ck...@us...> - 2004-08-17 22:26:36
|
Update of /cvsroot/krusader/krusader_kde3/krusader/VFS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3481/krusader_kde3/krusader/VFS Modified Files: normal_vfs.cpp Log Message: FIXED: another internationalization bug Index: normal_vfs.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/VFS/normal_vfs.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** normal_vfs.cpp 13 Aug 2004 16:31:46 -0000 1.36 --- normal_vfs.cpp 17 Aug 2004 17:38:57 -0000 1.37 *************** *** 257,262 **** endOfName=readlink(path.local8Bit(),symDest,256); if ( endOfName != -1 ){ ! if ( QDir(symDest).exists() || mime.contains("directory") ) perm[0] = 'd'; ! if ( !QDir(vfs_workingDir()).exists(symDest) ) mime = "Broken Link !"; } else kdWarning() << "Failed to read link: "<< path<<endl; --- 257,262 ---- endOfName=readlink(path.local8Bit(),symDest,256); if ( endOfName != -1 ){ ! if ( QDir(QString::fromLocal8Bit( symDest ) ).exists() || mime.contains("directory") ) perm[0] = 'd'; ! if ( !QDir(vfs_workingDir()).exists( QString::fromLocal8Bit ( symDest ) ) ) mime = "Broken Link !"; } else kdWarning() << "Failed to read link: "<< path<<endl; |
From: Karai C. <ck...@us...> - 2004-08-17 17:09:51
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28257/krusader_kde3 Modified Files: ChangeLog Log Message: FIXED: internationalization bugs, illegal usage of QString::latin1() Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.278 retrieving revision 1.279 diff -C2 -d -r1.278 -r1.279 *** ChangeLog 17 Aug 2004 12:31:16 -0000 1.278 --- ChangeLog 17 Aug 2004 17:03:38 -0000 1.279 *************** *** 25,28 **** --- 25,29 ---- REACTIVATED: usermenu (now using the new useraction-system) + FIXED: internationalization bugs, illegal usage of QString::latin1() FIXED: [ 1005533 ] stepping onto a subfs device crashes krusader FIXED: [ 988835 ] window size of synchronize dirs is not stored |
From: Karai C. <ck...@us...> - 2004-08-17 17:09:45
|
Update of /cvsroot/krusader/krusader_kde3/krusader/MountMan In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28257/krusader_kde3/krusader/MountMan Modified Files: kmountman.cpp Log Message: FIXED: internationalization bugs, illegal usage of QString::latin1() Index: kmountman.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/MountMan/kmountman.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** kmountman.cpp 27 Jul 2004 22:32:26 -0000 1.29 --- kmountman.cpp 17 Aug 2004 17:03:39 -0000 1.30 *************** *** 375,379 **** #if defined(BSD) || defined(_OS_SOLARIS_) ! if ( name.left( 2 ) == "//" && !strcasecmp( followLink( it->name() ).latin1(), followLink( name ).latin1() ) ) break; // FreeBSD: ignore case due to smbfs mounts #endif --- 375,379 ---- #if defined(BSD) || defined(_OS_SOLARIS_) ! if ( name.left( 2 ) == "//" && !strcasecmp( followLink( it->name() ).local8Bit(), followLink( name ).local8Bit() ) ) break; // FreeBSD: ignore case due to smbfs mounts #endif *************** *** 599,603 **** KProcess mountProc; ! mountProc << KrServices::fullPathName( "mount" ) << mntPoint.latin1(); // connect all outputs to collectOutput, to be displayed later connect( &mountProc, SIGNAL( receivedStderr( KProcess*, char*, int ) ), --- 599,603 ---- KProcess mountProc; ! mountProc << KrServices::fullPathName( "mount" ) << mntPoint.local8Bit(); // connect all outputs to collectOutput, to be displayed later connect( &mountProc, SIGNAL( receivedStderr( KProcess*, char*, int ) ), *************** *** 639,646 **** if ( ro ) mountProc << "-r"; // read only ! mountProc << "-t" << p->type().latin1(); // latin1 == normal ascii if ( !p->options.isEmpty() ) mountProc << "-o" << p->options; // -o options ! mountProc << p->name().latin1() << p->mntPoint().latin1(); // don't allow mounting 'supermount' filesystems --- 639,646 ---- if ( ro ) mountProc << "-r"; // read only ! mountProc << "-t" << p->type().local8Bit(); // local8Bit == normal ascii if ( !p->options.isEmpty() ) mountProc << "-o" << p->options; // -o options ! mountProc << p->name().local8Bit() << p->mntPoint().local8Bit(); // don't allow mounting 'supermount' filesystems *************** *** 688,692 **** KProcess umountProc; umountProc << KrServices::fullPathName( "umount" ); ! umountProc << p->mntPoint().latin1(); // don't allow unmounting 'supermount' filesystems --- 688,692 ---- KProcess umountProc; umountProc << KrServices::fullPathName( "umount" ); ! umountProc << p->mntPoint().local8Bit(); // don't allow unmounting 'supermount' filesystems |
From: Karai C. <ck...@us...> - 2004-08-17 12:42:39
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9527/krusader_kde3/krusader/Synchronizer Modified Files: synchronizer.cpp synchronizer.h synchronizergui.cpp synchronizergui.h Log Message: ADDED: synchronizer: profile handling Index: synchronizer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** synchronizer.h 16 Aug 2004 17:08:26 -0000 1.11 --- synchronizer.h 17 Aug 2004 12:31:17 -0000 1.12 *************** *** 147,150 **** --- 147,151 ---- void resume(); void swapSides(); + void reset(); void exclude( SynchronizerFileItem * ); Index: synchronizergui.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** synchronizergui.h 16 Aug 2004 17:08:26 -0000 1.10 --- synchronizergui.h 17 Aug 2004 12:31:17 -0000 1.11 *************** *** 84,88 **** public: ! SynchronizerGUI(QWidget* parent, QString leftDirectory, QString rightDirectory ); ~SynchronizerGUI(); --- 84,89 ---- public: ! // if rightDirectory is null, leftDirectory is actually the profile name to load ! SynchronizerGUI(QWidget* parent, QString leftDirectory, QString rightDirectory = QString::null ); ~SynchronizerGUI(); *************** *** 97,100 **** --- 98,102 ---- void refresh(); void swapSides(); + void profiles(); protected slots: *************** *** 111,115 **** void disableMarkButtons(); void enableMarkButtons(); ! void rightMenuCompareFiles( KURL url1, KURL url2 ); --- 113,121 ---- void disableMarkButtons(); void enableMarkButtons(); ! QString encodeName( QString ); ! QString decodeName( QString ); ! void loadProfile( QString ); ! void saveProfile( QString, int ); ! void rightMenuCompareFiles( KURL url1, KURL url2 ); *************** *** 132,135 **** --- 138,142 ---- QCheckBox *cbAutoScroll; + QPushButton *btnProfiles; QPushButton *btnSwapSides; QPushButton *btnCompareDirs; Index: synchronizergui.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** synchronizergui.cpp 16 Aug 2004 17:08:26 -0000 1.18 --- synchronizergui.cpp 17 Aug 2004 12:31:17 -0000 1.19 *************** *** 50,53 **** --- 50,54 ---- #include <qregexp.h> #include <qheader.h> + #include <kinputdialog.h> static const char * const right_arrow_button_data[] = { *************** *** 753,757 **** static const char * const swap_sides_data[] = { ! "31 16 228 2", " c None", ". c #03090E", --- 754,758 ---- static const char * const swap_sides_data[] = { ! "27 20 228 2", " c None", ". c #03090E", *************** *** 982,1002 **** "d+ c #094706", "e+ c #0D3A57", ! " . + @ # ", ! " $ % & @ * @ ", ! " = - ; > @ , ' @ ", ! " ) ! ~ { ] @ ^ / ( @ ", ! " _ : < [ } | 1 2 3 3 4 5 @ @ @ @ @ @ @ @ 6 7 8 9 @ ", ! " 0 a b c d e f g h i i i j @ k l l l m k n o p q r s @ ", ! " t u v w x y z A B C D E F G @ H I J K L M N O P Q R S T @ ", ! "U V W X Y Z ` ...+.@.#.$.%.&.@ *.=.-.;.>.,.'.).!.~.{.].^./.@ ", ! "(._.:.<.[.}.|.1.2.3.4.5.6.7.8.@ 9.0.a.b.c.d.e.f.g.h.i.j.k.l.@ ", ! " m.n.o.p.q.r.s.t.u.v.w.x.y.z.@ A.B.C.D.E.F.G.H.I.J.K.L.M.@ ", ! " N.O.P.Q.R.S.T.U.V.W.X.W.Y.@ Z.`. +`..+++@+d.#+$+%+&+@ ", ! " *+=+-+;+>+,+'+)+!+~+{+]+^+@ @ @ @ @ @ @ /+(+_+:+@ ", ! " <+[+}+|+1+ @ 2+3+4+@ ", ! " 5+6+7+8+ @ 9+0+@ ", ! " a+b+c+ @ d+@ ", ! " . e+ @ @ "}; SynchronizerGUI::SynchronizerGUI(QWidget* parent, QString leftDirectory, QString rightDirectory ) : --- 983,1140 ---- "d+ c #094706", "e+ c #0D3A57", ! " ", ! " ", ! " . + @ # ", ! " $ % & @ * @ ", ! " = - ; > @ , ' @ ", ! " ) ! ~ { ] @ ^ / ( @ ", ! " _ : < [ } | 1 3 4 5 @ @ @ @ @ @ 6 7 8 9 @ ", ! " 0 a b c d e f g i i j @ k l l k n o p q r s @ ", ! " t u v w x y z A B E F G @ H I K M N O P Q R S T @ ", ! "U V W X Y Z ` ...+.$.%.&.@ *.=.;.,.'.).!.~.{.].^./.@ ", ! "(._.:.<.[.}.|.1.2.3.6.7.8.@ 9.0.b.d.e.f.g.h.i.j.k.l.@ ", ! " m.n.o.p.q.r.s.t.u.x.y.z.@ A.B.D.F.G.H.I.J.K.L.M.@ ", ! " N.O.P.Q.R.S.T.U.X.W.Y.@ Z.`.`.++@+d.#+$+%+&+@ ", ! " *+=+-+;+>+,+'+~+{+]+^+@ @ @ @ @ /+(+_+:+@ ", ! " <+[+}+|+1+ @ 2+3+4+@ ", ! " 5+6+7+8+ @ 9+0+@ ", ! " a+b+c+ @ d+@ ", ! " . e+ @ @ ", ! " ", ! " "}; + static const char * const profiles_data[] = { + "20 20 111 2", + " g None", + ". g #B9B9B9", + "+ g #BEBEBE", + "@ g #C7C7C7", + "# g #C4C4C4", + "$ g #CECECE", + "% g #B7B7B7", + "& g #A1A1A1", + "* g #C1C1C1", + "= g #ADADAD", + "- g #A5A5A5", + "; g #AAAAAA", + "> g #CACACA", + ", g #B0B0B0", + "' g #ACACAC", + ") g #CCCCCC", + "! g #ABABAB", + "~ g #B3B3B3", + "{ g #AFAFAF", + "] g #CDCDCD", + "^ g #B6B6B6", + "/ g #A9A9A9", + "( g #B4B4B4", + "_ g #888888", + ": g #7A7A7A", + "< g #858585", + "[ g #9B9B9B", + "} g #898989", + "| g #9C9C9C", + "1 g #A8A8A8", + "2 g #B1B1B1", + "3 g #989898", + "4 g #959595", + "5 g #8B8B8B", + "6 g #8E8E8E", + "7 g #9D9D9D", + "8 g #8C8C8C", + "9 g #808080", + "0 g #7F7F7F", + "a g #B5B5B5", + "b g #848484", + "c g #5C5C5C", + "d g #565656", + "e g #656565", + "f g #999999", + "g g #9E9E9E", + "h g #8A8A8A", + "i g #B8B8B8", + "j g #C8C8C8", + "k g #A4A4A4", + "l g #868686", + "m g #B2B2B2", + "n g #111111", + "o g #000000", + "p g #020202", + "q g #353535", + "r g #9F9F9F", + "s g #969696", + "t g #8D8D8D", + "u g #919191", + "v g #9A9A9A", + "w g #090909", + "x g #212121", + "y g #A6A6A6", + "z g #646464", + "A g #929292", + "B g #4F4F4F", + "C g #181818", + "D g #C5C5C5", + "E g #7C7C7C", + "F g #191919", + "G g #0F0F0F", + "H g #BDBDBD", + "I g #909090", + "J g #C0C0C0", + "K g #BABABA", + "L g #333333", + "M g #1A1A1A", + "N g #AEAEAE", + "O g #D1D1D1", + "P g #555555", + "Q g #585858", + "R g #A7A7A7", + "S g #626262", + "T g #242424", + "U g #C3C3C3", + "V g #A2A2A2", + "W g #7E7E7E", + "X g #151515", + "Y g #CBCBCB", + "Z g #7D7D7D", + "` g #040404", + " . g #010101", + ".. g #CFCFCF", + "+. g #A3A3A3", + "@. g #979797", + "#. g #030303", + "$. g #939393", + "%. g #8F8F8F", + "&. g #C9C9C9", + "*. g #7B7B7B", + "=. g #878787", + "-. g #414141", + ";. g #3E3E3E", + ">. g #3F3F3F", + ",. g #949494", + "'. g #838383", + "). g #C6C6C6", + "!. g #D4D4D4", + "~. g #D2D2D2", + "{. g #BCBCBC", + " . + @ # ", + "$ % & * = - ; > , ' ; ) ! ~ { ] ^ / ' ", + " ( _ : < [ } | 1 % / 2 3 & _ [ 4 5 6 ) ", + " 7 8 9 0 5 1 a b c d e f + g h } 6 i ", + "j k l h } m h n o o o o p q ( r l < s # ", + " [ t u v 1 w o o o o o o o x ^ 7 : y ", + " ; 5 b ; z o o o o o o o o o d , 9 A j ", + " y < l ^ B o o o o o o o o o C a t a ", + "D y E & . F o o o o o o o o o G H I | J ", + " A h K L o o o o o o o o o o M J I N ", + "O ( 4 K P o o o o o o o o o o Q ^ 6 - j ", + " R t 2 S o o o o o o o o o T H 7 5 K ", + "U V W y W o o o o o o o o X , R l s u Y ", + " | I N Z ` .o o o o o o < ; < h I g ", + "..+.Z @.i ( t X o o o o #.; $.b _ %.@.&.", + " 3 *.9 %.u { Z o o o o o =.V u 6 t ~ ", + "* f _ 0 9 %.f 2 -.;.>.;.;.: ~ ,.t A V &.", + " $.l ,.'.< ,.J % a ( U K i ' f : < +. ", + "..{ 8 + - | 9 + V 3 u ).{ k %.H +.g 1 ", + " + ..# U !.) D ~.] {.] .. "}; SynchronizerGUI::SynchronizerGUI(QWidget* parent, QString leftDirectory, QString rightDirectory ) : *************** *** 1004,1007 **** --- 1142,1153 ---- wasSync( false ), firstResize( true ), sizeX( -1 ), sizeY( -1 ) { + QString profileName = QString::null; + + if( rightDirectory.isNull() ) // if rightDirectory is null, leftDirectory is actually the profile name to load + { + profileName = leftDirectory; + leftDirectory = rightDirectory = "/"; + } + setCaption( i18n("Krusader::Synchronize Directories") ); QGridLayout *synchGrid = new QGridLayout( this ); *************** *** 1024,1028 **** grid->setSpacing( 6 ); grid->setMargin( 11 ); - leftDirLabel = new QLabel( compareDirs, "leftDirLabel" ); --- 1170,1173 ---- *************** *** 1242,1245 **** --- 1387,1396 ---- buttons->setMargin( 0 ); + QPixmap profiles( ( const char** ) profiles_data ); + btnProfiles = new QPushButton( this, "btnProfiles" ); + btnProfiles->setPixmap( profiles ); + QToolTip::add( btnProfiles, i18n( "Profiles" ) ); + buttons->addWidget( btnProfiles ); + QPixmap swapSides( ( const char** ) swap_sides_data ); btnSwapSides = new QPushButton( this, "btnSwapSides" ); *************** *** 1280,1283 **** --- 1431,1435 ---- this, SLOT(rightMouseClicked(QListViewItem *))); + connect( btnProfiles, SIGNAL( clicked() ), this, SLOT( profiles() ) ); connect( btnSwapSides, SIGNAL( clicked() ), this, SLOT( swapSides() ) ); connect( btnCompareDirs, SIGNAL( clicked() ), this, SLOT( compare() ) ); *************** *** 1316,1319 **** --- 1468,1486 ---- show(); + if( !profileName.isNull() ) + { + krConfig->setGroup("Synchronize"); + int profileNum = krConfig->readNumEntry( "Profile Number", 0 ); + for( int i = 0; i != profileNum; i++ ) + { + QString profileData = krConfig->readEntry( QString( "Profile%1" ).arg( i + 1 ) ); + if( decodeName(profileData.left( profileData.find( ',' ) )) == profileName ) + { + loadProfile( profileData ); + break; + } + } + } + while( isShown() ) { *************** *** 1570,1573 **** --- 1737,1741 ---- btnCompareDirs->setEnabled( false ); + btnProfiles->setEnabled( false ); btnSwapSides->setEnabled( false ); btnStopComparing->setEnabled( isComparing = true ); *************** *** 1581,1584 **** --- 1749,1753 ---- btnStopComparing->setEnabled( isComparing = false ); btnCompareDirs->setEnabled( true ); + btnProfiles->setEnabled( true ); btnSwapSides->setEnabled( true ); if( fileCount ) *************** *** 1737,1740 **** --- 1906,1910 ---- setMarkFlags(); btnCompareDirs->setEnabled( false ); + btnProfiles->setEnabled( false ); btnSwapSides->setEnabled( false ); btnSynchronize->setEnabled( false ); *************** *** 1743,1746 **** --- 1913,1917 ---- enableMarkButtons(); btnCompareDirs->setEnabled( true ); + btnProfiles->setEnabled( true ); btnSwapSides->setEnabled( true ); if( fileCount ) *************** *** 1890,1891 **** --- 2061,2205 ---- QDialog::keyPressEvent( e ); } + + QString SynchronizerGUI::encodeName( QString name ) + { + name.replace( "\\", "\\\\" ); + name.replace( ",","\\_" ); + return name; + } + + QString SynchronizerGUI::decodeName( QString name ) + { + name.replace( "\\_","," ); + name.replace( "\\\\", "\\" ); + return name; + } + + void SynchronizerGUI::loadProfile( QString profileData ) + { + synchronizer.reset(); + syncList->clear(); + isComparing = wasClosed = false; + btnSynchronize->setEnabled( false ); + + QStringList datas = QStringList::split( ",", profileData ); + + leftLocation->setCurrentText( decodeName( datas[1] ) ); + fileFilter->setCurrentText( decodeName( datas[2] ) ); + rightLocation->setCurrentText( decodeName( datas[3] ) ); + + int checkboxes = datas[4].toInt(); + int showoptions = datas[5].toInt(); + + cbSubdirs-> setChecked( !!(checkboxes & 32) ); + cbSymlinks-> setChecked( !!(checkboxes & 16) ); + cbByContent-> setChecked( !!(checkboxes & 8) ); + cbIgnoreDate->setChecked( !!(checkboxes & 4) ); + cbAsymmetric->setChecked( !!(checkboxes & 2) ); + cbAutoScroll->setChecked( !!(checkboxes & 1) ); + + btnLeftToRight->setOn( !!(showoptions & 64) ); + btnEquals ->setOn( !!(showoptions & 32) ); + btnDifferents ->setOn( !!(showoptions & 16) ); + btnRightToLeft->setOn( !!(showoptions & 8) ); + btnDeletable ->setOn( !!(showoptions & 4) ); + btnDuplicates ->setOn( !!(showoptions & 2) ); + btnSingles ->setOn( !!(showoptions & 1) ); + + refresh(); + } + + void SynchronizerGUI::saveProfile( QString name, int profileNum ) + { + krConfig->setGroup("Synchronize"); + + int checkboxes = ( cbSubdirs->isChecked() ? 32 : 0 ) | + ( cbSymlinks->isChecked() ? 16 : 0 ) | + ( cbByContent->isChecked() ? 8 : 0 ) | + ( cbIgnoreDate->isChecked() ? 4 : 0 ) | + ( cbAsymmetric->isChecked() ? 2 : 0 ) | + ( cbAutoScroll->isChecked() ? 1 : 0 ); + int showoptions = ( btnLeftToRight->isOn() ? 64 : 0 ) | + ( btnEquals->isOn() ? 32 : 0 ) | + ( btnDifferents->isOn() ? 16 : 0 ) | + ( btnRightToLeft->isOn() ? 8 : 0 ) | + ( btnDeletable->isOn() ? 4 : 0 ) | + ( btnDuplicates->isOn() ? 2 : 0 ) | + ( btnSingles->isOn() ? 1 : 0 ); + + krConfig->writeEntry( QString( "Profile%1" ).arg( profileNum ), + encodeName( name ) + "," + + encodeName( leftLocation->currentText() ) + "," + + encodeName( fileFilter->currentText() ) + "," + + encodeName( rightLocation->currentText() ) + "," + + QString( "%1,%1" ).arg( checkboxes ).arg( showoptions ) ); + krConfig->sync(); + } + + void SynchronizerGUI::profiles() + { + krConfig->setGroup("Synchronize"); + + int profileNum = krConfig->readNumEntry( "Profile Number", 0 ); + int i; + QStringList profileList; + + for( i = 0; i != profileNum; i++ ) + profileList.push_back( krConfig->readEntry( QString( "Profile%1" ).arg( i + 1 ) ) ); + + // profile menu identifiers + #define ADD_NEW_ENTRY_ID 1000 + #define LOAD_ENTRY_ID 2000 + #define REMOVE_ENTRY_ID 3000 + #define OVERWRITE_ENTRY_ID 4000 + + // create the menu + KPopupMenu popup, removePopup, overwritePopup; + popup.insertTitle(i18n("Synchronizer Profiles")); + + for( i=0; i != profileNum ; i++ ) + { + QString name = decodeName(profileList[i].left( profileList[i].find( ',' ) )); + popup.insertItem( name, LOAD_ENTRY_ID + i ); + removePopup.insertItem( name, REMOVE_ENTRY_ID + i ); + overwritePopup.insertItem( name, OVERWRITE_ENTRY_ID + i ); + } + + popup.insertSeparator(); + + if( profileNum ) + { + popup.insertItem( i18n("Remove entry"), &removePopup ); + popup.insertItem( i18n("Overwrite entry"), &overwritePopup ); + } + + popup.insertItem(i18n("Add new entry"),ADD_NEW_ENTRY_ID); + + int result=popup.exec(QCursor::pos()); + + // check out the user's selection + if( result == ADD_NEW_ENTRY_ID ) + { + QString profile = KInputDialog::getText( i18n( "Krusader::Synchronizer" ), i18n( "Enter the profile name:" ) ); + if( !profile.isEmpty() ) + { + krConfig->writeEntry( "Profile Number", ++profileNum ); + saveProfile( profile, profileNum ); + } + }else if( result >= LOAD_ENTRY_ID && result < LOAD_ENTRY_ID + profileNum ) + { + loadProfile( profileList[ result - LOAD_ENTRY_ID ] ); + }else if( result >= REMOVE_ENTRY_ID && result < REMOVE_ENTRY_ID + profileNum ) + { + krConfig->writeEntry( "Profile Number", --profileNum ); + for( i = result - REMOVE_ENTRY_ID; i != profileNum; i++ ) + krConfig->writeEntry( QString( "Profile%1" ).arg( i+1 ), profileList[ i + 1 ] ); + krConfig->deleteEntry( QString( "Profile%1" ).arg( profileNum + 1 ) ); + krConfig->sync(); + }else if( result >= OVERWRITE_ENTRY_ID && result < OVERWRITE_ENTRY_ID + profileNum ) + { + i = result - OVERWRITE_ENTRY_ID; + QString name = decodeName(profileList[i].left( profileList[i].find( ',' ) )); + saveProfile( name, i + 1); + } + } Index: synchronizer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** synchronizer.cpp 16 Aug 2004 17:08:25 -0000 1.16 --- synchronizer.cpp 17 Aug 2004 12:31:16 -0000 1.17 *************** *** 58,61 **** --- 58,79 ---- } + void Synchronizer::reset() + { + displayUpdateCount = 0; + markEquals = markDiffers = markCopyToLeft = markCopyToRight = markDeletable = true; + leftURL = rightURL = KURL(); + compareFinished = compareResult = statusLineChanged = errorPrinted = stopped = false; + recurseSubDirs = followSymLinks = ignoreDate = asymmetric = cmpByContent = autoScroll = false; + markEquals = markDiffers = markCopyToLeft = markCopyToRight = markDeletable = markDuplicates = markSingles = false; + leftCopyEnabled = rightCopyEnabled = deleteEnabled = overWrite = autoSkip = paused = false; + leftCopyNr = rightCopyNr = deleteNr = 0; + leftCopySize = rightCopySize = deleteSize = 0; + scannedDirs = fileCount = 0; + leftBaseDir = rightBaseDir = QString::null; + inclusionFilter.clear(); + exclusionFilter.clear(); + resultList.clear(); + } + int Synchronizer::compare( QString leftURL, QString rightURL, QString filter, bool subDirs, bool symLinks, bool igDate, bool asymm, bool cmpByCnt, bool autoSc ) |
From: Karai C. <ck...@us...> - 2004-08-17 12:41:56
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9527/krusader_kde3 Modified Files: CVSNEWS ChangeLog Log Message: ADDED: synchronizer: profile handling Index: CVSNEWS =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/CVSNEWS,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** CVSNEWS 15 Aug 2004 19:05:24 -0000 1.8 --- CVSNEWS 17 Aug 2004 12:31:16 -0000 1.9 *************** *** 5,8 **** --- 5,13 ---- When closing krusader, the tabs are saved and restored + Synchronizer profiles: + From now krusader handles synchronizer profiles. In synchronizer press + the 'profile' button, and you'll be able to add/ load / save / remove + synchronizer profiles. + Synchronize with kget: If you want to synchronize a local directory with an instable ftp server, Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.277 retrieving revision 1.278 diff -C2 -d -r1.277 -r1.278 *** ChangeLog 16 Aug 2004 17:08:25 -0000 1.277 --- ChangeLog 17 Aug 2004 12:31:16 -0000 1.278 *************** *** 1,3 **** --- 1,4 ---- ====================== + ADDED: synchronizer: profile handling ADDED: synchronizer: swap sides ADDED: useraction: new Placeholder %_Copy("from", "to")% |
From: Karai C. <ck...@us...> - 2004-08-16 17:08:39
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18246/krusader_kde3/krusader/Synchronizer Modified Files: synchronizer.cpp synchronizer.h synchronizergui.cpp synchronizergui.h Log Message: ADDED: synchronizer: swap sides Index: synchronizer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** synchronizer.h 15 Aug 2004 19:03:42 -0000 1.10 --- synchronizer.h 16 Aug 2004 17:08:26 -0000 1.11 *************** *** 46,49 **** --- 46,65 ---- } TaskType; + #define SWAP( A, B, TYPE ) {TYPE TMP = A; A = B; B = TMP;} + #define REVERSE_TASK( A, asym ) {switch( A ) \ + { \ + case TT_COPY_TO_LEFT: \ + if( asym ) \ + A = !m_existsRight ? TT_DELETE : TT_COPY_TO_LEFT; \ + else \ + A = TT_COPY_TO_RIGHT; \ + break; \ + case TT_COPY_TO_RIGHT: \ + case TT_DELETE: \ + A = TT_COPY_TO_LEFT; \ + default: \ + break; \ + }}; + class SynchronizerFileItem { *************** *** 104,107 **** --- 120,128 ---- inline void restoreOriginalTask() {m_task = m_originalTask;} inline void setTask( TaskType t ) {m_task = t;} + inline void swap( bool asym=false ) {SWAP( m_existsLeft, m_existsRight, bool ); + SWAP( m_leftSize, m_rightSize, KIO::filesize_t ); + SWAP( m_leftDate, m_rightDate, time_t ); + REVERSE_TASK( m_originalTask, asym ); + REVERSE_TASK( m_task, asym );} }; *************** *** 125,128 **** --- 146,150 ---- void pause(); void resume(); + void swapSides(); void exclude( SynchronizerFileItem * ); Index: synchronizergui.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** synchronizergui.h 12 Aug 2004 21:14:59 -0000 1.9 --- synchronizergui.h 16 Aug 2004 17:08:26 -0000 1.10 *************** *** 96,99 **** --- 96,100 ---- void closeDialog(); void refresh(); + void swapSides(); protected slots: *************** *** 131,134 **** --- 132,136 ---- QCheckBox *cbAutoScroll; + QPushButton *btnSwapSides; QPushButton *btnCompareDirs; QPushButton *btnStopComparing; Index: synchronizergui.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** synchronizergui.cpp 15 Aug 2004 19:03:42 -0000 1.17 --- synchronizergui.cpp 16 Aug 2004 17:08:26 -0000 1.18 *************** *** 752,755 **** --- 752,1003 ---- " "}; + static const char * const swap_sides_data[] = { + "31 16 228 2", + " c None", + ". c #03090E", + "+ c #0C3652", + "@ c #000000", + "# c #030D03", + "$ c #0F2731", + "% c #163E50", + "& c #0E3E5C", + "* c #184F16", + "= c #0C222B", + "- c #2B5A6D", + "; c #5A98B4", + "> c #164867", + ", c #5DB45A", + "' c #2E6C2A", + ") c #03161D", + "! c #2F5F73", + "~ c #9AC3D5", + "{ c #8EBED3", + "] c #1A4A68", + "^ c #90D28D", + "/ c #9CD59A", + "( c #32732E", + "_ c #0D2B38", + ": c #426D80", + "< c #C3DAE5", + "[ c #BCDCEA", + "} c #90BDD0", + "| c #144361", + "1 c #002745", + "2 c #00213F", + "3 c #001F3E", + "4 c #00203F", + "5 c #002643", + "6 c #92CF8F", + "7 c #BDE9BB", + "8 c #C4E5C3", + "9 c #447F41", + "0 c #091A21", + "a c #457589", + "b c #C2D8E2", + "c c #D4ECF2", + "d c #80CCDF", + "e c #8ABFD3", + "f c #0C7497", + "g c #086E90", + "h c #086C8E", + "i c #086B8E", + "j c #086D90", + "k c #108F08", + "l c #0F8E08", + "m c #108E08", + "n c #14970B", + "o c #8DD289", + "p c #87DF7F", + "q c #D6F1D3", + "r c #C3E1C1", + "s c #488844", + "t c #143341", + "u c #56859A", + "v c #DCEAF0", + "w c #CCEAF2", + "x c #5EC2D9", + "y c #1BA7C8", + "z c #66C4DA", + "A c #B1DBEB", + "B c #DBEEF6", + "C c #EFF6FC", + "D c #F7FAFE", + "E c #F3F8FC", + "F c #D0EAF4", + "G c #6CBCD5", + "H c #73D56C", + "I c #D1F4D0", + "J c #F3FCF3", + "K c #F7FEF7", + "L c #EFFCEF", + "M c #DCF6DB", + "N c #B4EAB0", + "O c #70D965", + "P c #2AC71B", + "Q c #68D85D", + "R c #CFF1CB", + "S c #DCEFDB", + "T c #589955", + "U c #0A212C", + "V c #467B92", + "W c #B6D9E8", + "X c #B6E2ED", + "Y c #69C7DC", + "Z c #19A2C5", + "` c #0796BC", + " . c #13A5C5", + ".. c #59BBD7", + "+. c #6BC5DD", + "@. c #98D8E8", + "#. c #B4E2EE", + "$. c #A6DCE9", + "%. c #98CFDF", + "&. c #6DBCD4", + "*. c #74D46D", + "=. c #9DDF98", + "-. c #ABE8A5", + ";. c #B8EEB4", + ">. c #9EE797", + ",. c #74DD6A", + "'. c #62D758", + "). c #23C512", + "!. c #15BC07", + "~. c #27C519", + "{. c #73DC69", + "]. c #BAEDB6", + "^. c #B8E7B6", + "/. c #499145", + "(. c #061D28", + "_. c #125F7C", + ":. c #29A6C3", + "<. c #4BD4E3", + "[. c #4BC5DA", + "}. c #129FC4", + "|. c #0D95BC", + "1. c #0F90B7", + "2. c #16A2C5", + "3. c #0FA3C4", + "4. c #26A8C5", + "5. c #37A8C4", + "6. c #2DA9C7", + "7. c #75C1D9", + "8. c #71BED6", + "9. c #77D671", + "0. c #7BD874", + "a. c #3AC72C", + "b. c #42C437", + "c. c #34C526", + "d. c #1FC40F", + "e. c #24C516", + "f. c #1AB70E", + "g. c #1ABC0D", + "h. c #20C411", + "i. c #5AD94B", + "j. c #5DE24A", + "k. c #36C229", + "l. c #177B11", + "m. c #052837", + "n. c #0D617F", + "o. c #25ABC7", + "p. c #3BD0E1", + "q. c #1DC0D9", + "r. c #14A8CC", + "s. c #11A3C5", + "t. c #11ABCC", + "u. c #17AAC8", + "v. c #23ACC6", + "w. c #1FA8C0", + "x. c #1AAAC5", + "y. c #7CCDE1", + "z. c #76C4DB", + "A. c #7DDA75", + "B. c #84E07B", + "C. c #2BC519", + "D. c #2FBF1F", + "E. c #33C623", + "F. c #28C716", + "G. c #22CC11", + "H. c #20C511", + "I. c #23CC13", + "J. c #31D81C", + "K. c #4FE03B", + "L. c #34C725", + "M. c #137F0D", + "N. c #04151E", + "O. c #0D5672", + "P. c #1E99B8", + "Q. c #39CEDF", + "R. c #22C5DC", + "S. c #10A1C4", + "T. c #0E799B", + "U. c #0E5976", + "V. c #0D516D", + "W. c #0F4E6B", + "X. c #0F4D6A", + "Y. c #0F607D", + "Z. c #157C0E", + "`. c #126B0F", + " + c #126A0E", + ".+ c #116C0C", + "++ c #13760E", + "@+ c #179A0E", + "#+ c #37DC22", + "$+ c #4DDF38", + "%+ c #2AB71D", + "&+ c #12720D", + "*+ c #062332", + "=+ c #0D506B", + "-+ c #209FBD", + ";+ c #33CBDF", + ">+ c #16ACC8", + ",+ c #0C4968", + "'+ c #061F2D", + ")+ c #031721", + "!+ c #041621", + "~+ c #051721", + "{+ c #021621", + "]+ c #031B27", + "^+ c #010C00", + "/+ c #28C715", + "(+ c #47DF32", + "_+ c #2DBD1F", + ":+ c #116B0D", + "<+ c #04121A", + "[+ c #0C4A62", + "}+ c #198AAD", + "|+ c #2291B2", + "1+ c #104564", + "2+ c #2CB122", + "3+ c #23AD18", + "4+ c #10620C", + "5+ c #051C26", + "6+ c #0F455C", + "7+ c #237191", + "8+ c #104363", + "9+ c #289023", + "0+ c #125B0E", + "a+ c #041F2B", + "b+ c #073347", + "c+ c #0D3C5A", + "d+ c #094706", + "e+ c #0D3A57", + " . + @ # ", + " $ % & @ * @ ", + " = - ; > @ , ' @ ", + " ) ! ~ { ] @ ^ / ( @ ", + " _ : < [ } | 1 2 3 3 4 5 @ @ @ @ @ @ @ @ 6 7 8 9 @ ", + " 0 a b c d e f g h i i i j @ k l l l m k n o p q r s @ ", + " t u v w x y z A B C D E F G @ H I J K L M N O P Q R S T @ ", + "U V W X Y Z ` ...+.@.#.$.%.&.@ *.=.-.;.>.,.'.).!.~.{.].^./.@ ", + "(._.:.<.[.}.|.1.2.3.4.5.6.7.8.@ 9.0.a.b.c.d.e.f.g.h.i.j.k.l.@ ", + " m.n.o.p.q.r.s.t.u.v.w.x.y.z.@ A.B.C.D.E.F.G.H.I.J.K.L.M.@ ", + " N.O.P.Q.R.S.T.U.V.W.X.W.Y.@ Z.`. +`..+++@+d.#+$+%+&+@ ", + " *+=+-+;+>+,+'+)+!+~+{+]+^+@ @ @ @ @ @ @ /+(+_+:+@ ", + " <+[+}+|+1+ @ 2+3+4+@ ", + " 5+6+7+8+ @ 9+0+@ ", + " a+b+c+ @ d+@ ", + " . e+ @ @ "}; + + SynchronizerGUI::SynchronizerGUI(QWidget* parent, QString leftDirectory, QString rightDirectory ) : QDialog( parent, "Krusader::SynchronizerGUI", false, 0 ), isComparing( false ), wasClosed( false ), *************** *** 993,996 **** --- 1241,1250 ---- buttons->setSpacing( 6 ); buttons->setMargin( 0 ); + + QPixmap swapSides( ( const char** ) swap_sides_data ); + btnSwapSides = new QPushButton( this, "btnSwapSides" ); + btnSwapSides->setPixmap( swapSides ); + QToolTip::add( btnSwapSides, i18n( "Swap sides" ) ); + buttons->addWidget( btnSwapSides ); statusLabel = new QLabel( this, "statusLabel" ); *************** *** 1026,1029 **** --- 1280,1284 ---- this, SLOT(rightMouseClicked(QListViewItem *))); + connect( btnSwapSides, SIGNAL( clicked() ), this, SLOT( swapSides() ) ); connect( btnCompareDirs, SIGNAL( clicked() ), this, SLOT( compare() ) ); connect( btnStopComparing, SIGNAL( clicked() ), this, SLOT( stop() ) ); *************** *** 1315,1318 **** --- 1570,1574 ---- btnCompareDirs->setEnabled( false ); + btnSwapSides->setEnabled( false ); btnStopComparing->setEnabled( isComparing = true ); btnSynchronize->setEnabled( false ); *************** *** 1325,1328 **** --- 1581,1585 ---- btnStopComparing->setEnabled( isComparing = false ); btnCompareDirs->setEnabled( true ); + btnSwapSides->setEnabled( true ); if( fileCount ) btnSynchronize->setEnabled( true ); *************** *** 1402,1407 **** --- 1659,1687 ---- if( listItem ) { + QString leftName="", rightName="", leftDate="", rightDate="", leftSize="", rightSize=""; + bool isDir = item->isDir(); + + if( item->existsInLeft() ) + { + leftName = item->name(); + leftSize = isDir ? i18n("<DIR>")+" " : KRpermHandler::parseSize( item->leftSize() ); + leftDate = SynchronizerGUI::convertTime( item->leftDate() ); + } + + if( item->existsInRight() ) + { + rightName = item->name(); + rightSize = isDir ? i18n("<DIR>")+" " : KRpermHandler::parseSize( item->rightSize() ); + rightDate = SynchronizerGUI::convertTime( item->rightDate() ); + } + listItem->setVisible( item->isMarked() ); + listItem->setText( 0, leftName ); + listItem->setText( 1, leftSize ); + listItem->setText( 2, leftDate ); listItem->setText( 3, Synchronizer::getTaskTypeName( item->task() ) ); + listItem->setText( 4, rightDate ); + listItem->setText( 5, rightSize ); + listItem->setText( 6, rightName ); } } *************** *** 1457,1460 **** --- 1737,1741 ---- setMarkFlags(); btnCompareDirs->setEnabled( false ); + btnSwapSides->setEnabled( false ); btnSynchronize->setEnabled( false ); disableMarkButtons(); *************** *** 1462,1465 **** --- 1743,1747 ---- enableMarkButtons(); btnCompareDirs->setEnabled( true ); + btnSwapSides->setEnabled( true ); if( fileCount ) btnSynchronize->setEnabled( true ); *************** *** 1557,1560 **** --- 1839,1854 ---- } + void SynchronizerGUI::swapSides() + { + if( btnCompareDirs->isEnabled() ) + { + QString leftCurrent = leftLocation->currentText(); + leftLocation->setCurrentText( rightLocation->currentText() ); + rightLocation->setCurrentText( leftCurrent ); + synchronizer.swapSides(); + refresh(); + } + } + void SynchronizerGUI::keyPressEvent( QKeyEvent *e ) { *************** *** 1562,1588 **** { case Key_F3 : ! QListViewItem *listItem = syncList->currentItem(); ! if( listItem == 0 ) ! break; ! SynchronizerFileItem *item = ((SyncViewItem *)listItem)->synchronizerItemRef(); ! QString dirName = item->directory().isEmpty() ? "" : item->directory() + "/"; ! if( item->isDir() ) ! return; ! if ( e->state() == ShiftButton && item->existsInRight() ) ! { ! KURL rightURL = vfs::fromPathOrURL( synchronizer.rightBaseDirectory() + dirName + item->name() ); ! KrViewer::view( rightURL ); // view the file ! return; ! } ! else if ( e->state() == 0 && item->existsInLeft() ) ! { ! KURL leftURL = vfs::fromPathOrURL( synchronizer.leftBaseDirectory() + dirName + item->name() ); ! KrViewer::view( leftURL ); // view the file ! return; } break; } --- 1856,1889 ---- { case Key_F3 : ! { ! QListViewItem *listItem = syncList->currentItem(); ! if( listItem == 0 ) ! break; ! SynchronizerFileItem *item = ((SyncViewItem *)listItem)->synchronizerItemRef(); ! QString dirName = item->directory().isEmpty() ? "" : item->directory() + "/"; ! if( item->isDir() ) ! return; ! if ( e->state() == ShiftButton && item->existsInRight() ) ! { ! KURL rightURL = vfs::fromPathOrURL( synchronizer.rightBaseDirectory() + dirName + item->name() ); ! KrViewer::view( rightURL ); // view the file ! return; ! } ! else if ( e->state() == 0 && item->existsInLeft() ) ! { ! KURL leftURL = vfs::fromPathOrURL( synchronizer.leftBaseDirectory() + dirName + item->name() ); ! KrViewer::view( leftURL ); // view the file ! return; ! } } break; + case Key_U : + if( e->state() != ControlButton ) + break; + swapSides(); + return; } Index: synchronizer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** synchronizer.cpp 15 Aug 2004 19:03:42 -0000 1.15 --- synchronizer.cpp 16 Aug 2004 17:08:25 -0000 1.16 *************** *** 671,674 **** --- 671,693 ---- } + void Synchronizer::swapSides() + { + QString leftTmp = leftBaseDir; + leftBaseDir = rightBaseDir; + rightBaseDir = leftTmp; + + KURL leftTmpURL = leftURL; + leftURL = rightURL; + rightURL = leftTmpURL; + + SynchronizerFileItem *item = resultList.first(); + + while( item ) + { + item->swap( asymmetric ); + item = resultList.next(); + } + } + void Synchronizer::synchronize( bool leftCopyEnabled, bool rightCopyEnabled, bool deleteEnabled, bool overWrite ) |
From: Karai C. <ck...@us...> - 2004-08-16 17:08:38
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18246/krusader_kde3 Modified Files: ChangeLog Log Message: ADDED: synchronizer: swap sides Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.276 retrieving revision 1.277 diff -C2 -d -r1.276 -r1.277 *** ChangeLog 15 Aug 2004 19:03:42 -0000 1.276 --- ChangeLog 16 Aug 2004 17:08:25 -0000 1.277 *************** *** 1,4 **** ====================== ! ADDED: synchronizer: synchronize with kget ADDED: useraction: new Placeholder %_Copy("from", "to")% ADDED: 3rd hand: new panel that does quick selection --- 1,4 ---- ====================== ! ADDED: synchronizer: swap sides ADDED: useraction: new Placeholder %_Copy("from", "to")% ADDED: 3rd hand: new panel that does quick selection *************** *** 24,30 **** REACTIVATED: usermenu (now using the new useraction-system) - FIXED: krarc, problem with copying / moving inside the archive - FIXED: krarc, problem with international characters in put/mkdir - FIXED: krarc, problems at copying subdirectories from the archive FIXED: [ 1005533 ] stepping onto a subfs device crashes krusader FIXED: [ 988835 ] window size of synchronize dirs is not stored --- 24,27 ---- |
From: Karai C. <ck...@us...> - 2004-08-16 06:19:41
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Konfigurator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6416/krusader_kde3/krusader/Konfigurator Modified Files: kgdependencies.cpp Log Message: Adding kget into the dependencies Index: kgdependencies.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Konfigurator/kgdependencies.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** kgdependencies.cpp 12 Feb 2004 08:11:31 -0000 1.7 --- kgdependencies.cpp 16 Aug 2004 06:19:32 -0000 1.8 *************** *** 58,69 **** addApplication( "eject", pathsGrid, 1, general_tab ); addApplication( "kdesu", pathsGrid, 2, general_tab ); ! addApplication( "kmail", pathsGrid, 3, general_tab ); ! addApplication( "kompare", pathsGrid, 4, general_tab ); ! addApplication( "krename", pathsGrid, 5, general_tab ); ! addApplication( "krusader", pathsGrid, 6, general_tab ); ! addApplication( "locate", pathsGrid, 7, general_tab ); ! addApplication( "mount", pathsGrid, 8, general_tab ); ! addApplication( "umount", pathsGrid, 9, general_tab ); ! addApplication( "updatedb", pathsGrid,10, general_tab ); // ---------------------------- PACKERS TAB ------------------------------------- --- 58,70 ---- addApplication( "eject", pathsGrid, 1, general_tab ); addApplication( "kdesu", pathsGrid, 2, general_tab ); ! addApplication( "kget", pathsGrid, 3, general_tab ); ! addApplication( "kmail", pathsGrid, 4, general_tab ); ! addApplication( "kompare", pathsGrid, 5, general_tab ); ! addApplication( "krename", pathsGrid, 6, general_tab ); ! addApplication( "krusader", pathsGrid, 7, general_tab ); ! addApplication( "locate", pathsGrid, 8, general_tab ); ! addApplication( "mount", pathsGrid, 9, general_tab ); ! addApplication( "umount", pathsGrid,10, general_tab ); ! addApplication( "updatedb", pathsGrid,11, general_tab ); // ---------------------------- PACKERS TAB ------------------------------------- |
From: Karai C. <ck...@us...> - 2004-08-15 19:05:32
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5409/krusader_kde3 Modified Files: CVSNEWS Log Message: FIXED: misspelling Index: CVSNEWS =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/CVSNEWS,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** CVSNEWS 15 Aug 2004 19:03:42 -0000 1.7 --- CVSNEWS 15 Aug 2004 19:05:24 -0000 1.8 *************** *** 5,14 **** When closing krusader, the tabs are saved and restored ! Synchronize with kget If you want to synchronize a local directory with an instable ftp server, kget is a much better solution than simple file copying. After comparing you may right click on the result list and select 'Synchronize with kget' to execute the synchronization, after that the listed files will be ! download with kget instead of krusader. Dropping URL-s onto the status / totals line: --- 5,14 ---- When closing krusader, the tabs are saved and restored ! Synchronize with kget: If you want to synchronize a local directory with an instable ftp server, kget is a much better solution than simple file copying. After comparing you may right click on the result list and select 'Synchronize with kget' to execute the synchronization, after that the listed files will be ! downloaded with kget instead of krusader. Dropping URL-s onto the status / totals line: |
From: Karai C. <ck...@us...> - 2004-08-15 19:03:53
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4757/krusader_kde3/krusader/Synchronizer Modified Files: synchronizer.cpp synchronizer.h synchronizergui.cpp Log Message: ADDED: synchronizer: synchronize with kget Index: synchronizer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** synchronizer.h 28 Jul 2004 17:13:34 -0000 1.9 --- synchronizer.h 15 Aug 2004 19:03:42 -0000 1.10 *************** *** 122,125 **** --- 122,126 ---- bool totalSizes( int *, KIO::filesize_t *, int *, KIO::filesize_t *, int *, KIO::filesize_t * ); void synchronize( bool leftCopyEnabled, bool rightCopyEnabled, bool deleteEnabled, bool overWrite ); + void synchronizeWithKGet(); void pause(); void resume(); Index: synchronizergui.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** synchronizergui.cpp 12 Aug 2004 21:14:59 -0000 1.16 --- synchronizergui.cpp 15 Aug 2004 19:03:42 -0000 1.17 *************** *** 35,38 **** --- 35,39 ---- #include "../KViewer/krviewer.h" #include "../Dialogs/krspwidgets.h" + #include "../krservices.h" #include "synchronizedialog.h" #include <qlayout.h> *************** *** 1101,1104 **** --- 1102,1106 ---- #define DESELECT_ITEMS_ID 100 #define INVERT_SELECTION_ID 101 + #define SYNCH_WITH_KGET_ID 102 ////////////////////////////////////////////////////////// if (!itemIn) *************** *** 1153,1156 **** --- 1155,1170 ---- popup.setItemEnabled(INVERT_SELECTION_ID, true ); + KURL leftBDir = vfs::fromPathOrURL( synchronizer.leftBaseDirectory() ); + KURL rightBDir = vfs::fromPathOrURL( synchronizer.rightBaseDirectory() ); + + if( KrServices::cmdExist( "kget" ) && + ( ( !leftBDir.isLocalFile() && rightBDir.isLocalFile() && btnLeftToRight->isOn() ) || + ( leftBDir.isLocalFile() && !rightBDir.isLocalFile() && btnRightToLeft->isOn() ) ) ) + { + popup.insertSeparator(); + popup.insertItem(i18n("Synchronize with KGet"),SYNCH_WITH_KGET_ID); + popup.setItemEnabled(SYNCH_WITH_KGET_ID, true ); + } + int result=popup.exec(QCursor::pos()); *************** *** 1233,1236 **** --- 1247,1254 ---- syncList->invertSelection(); break; + case SYNCH_WITH_KGET_ID: + synchronizer.synchronizeWithKGet(); + closeDialog(); + break; case -1 : return; // the user clicked outside of the menu } Index: synchronizer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** synchronizer.cpp 28 Jul 2004 17:13:34 -0000 1.14 --- synchronizer.cpp 15 Aug 2004 19:03:42 -0000 1.15 *************** *** 34,37 **** --- 34,38 ---- #include "../VFS/vfile.h" #include "../krusader.h" + #include "../krservices.h" #include <kurl.h> #include <kmessagebox.h> *************** *** 39,42 **** --- 40,44 ---- #include <qapplication.h> #include <qregexp.h> + #include <qdir.h> #include <kio/job.h> #include <kdialogbase.h> *************** *** 46,49 **** --- 48,52 ---- #include <unistd.h> #include <qeventloop.h> + #include <qprogressdialog.h> #define DISPLAY_UPDATE_PERIOD 2 *************** *** 1097,1098 **** --- 1100,1189 ---- waitWindow->setProgress( percent ); } + + void Synchronizer::synchronizeWithKGet() + { + bool isLeftLocal = vfs::fromPathOrURL( leftBaseDirectory() ).isLocalFile(); + QProgressDialog *progDlg = 0; + int processedCount = 0, totalCount = 0; + + SynchronizerFileItem *item = resultList.first(); + for(; item; item = resultList.next() ) + if( item->isMarked() ) + totalCount++; + + item = resultList.first(); + while( item ) + { + if( item->isMarked() ) + { + KURL downloadURL, destURL; + QString dirName = item->directory().isEmpty() ? "" : item->directory() + "/"; + QString destDir; + + if( progDlg == 0 ) + { + progDlg = new QProgressDialog( i18n( "Feeding the URL-s to kget" ), i18n("Cancel"), + totalCount, krApp, "Synchronizer Progress Dlg", true ); + progDlg->setCaption( i18n( "Krusader::Synchronizer" ) ); + progDlg->setAutoClose( false ); + progDlg->show(); + qApp->processEvents(); + } + + if( item->task() == TT_COPY_TO_RIGHT && !isLeftLocal ) + { + downloadURL = vfs::fromPathOrURL( leftBaseDirectory() + dirName + item->name() ); + destDir = rightBaseDirectory() + dirName; + destURL = vfs::fromPathOrURL( destDir + item->name() ); + } + if( item->task() == TT_COPY_TO_LEFT && isLeftLocal ) + { + downloadURL = vfs::fromPathOrURL( rightBaseDirectory() + dirName + item->name() ); + destDir = leftBaseDirectory() + dirName; + destURL = vfs::fromPathOrURL( destDir + item->name() ); + } + + if( item->isDir() ) + destDir += item->name(); + + // creating the directory system + for( int i=0; i >= 0 ; i= destDir.find('/',i+1) ) + if( !QDir( destDir.left(i) ).exists() ) + QDir().mkdir( destDir.left(i) ); + + if( !item->isDir() && !downloadURL.isEmpty() ) + { + if( QFile( destURL.path() ).exists() ) + QFile( destURL.path() ).remove(); + + QString source = downloadURL.prettyURL(); + if( source.contains( '@' ) >= 2 ) /* is this an ftp proxy URL? */ + { + int lastAt = source.findRev( '@' ); + QString startString = source.left( lastAt ); + QString endString = source.mid( lastAt ); + startString.replace( "@", "%40" ); + source = startString+endString; + } + + KProcess p; + + p << KrServices::fullPathName( "kget" ) << source << destURL.path(); + if (!p.start(KProcess::Block)) + KMessageBox::error(0,i18n("Error executing ")+KrServices::fullPathName( "kget" )+" !"); + else + p.detach(); + } + + progDlg->setProgress( ++processedCount ); + qApp->processEvents(); + + if( progDlg->wasCanceled() ) + break; + } + item = resultList.next(); + } + + if( progDlg ) + delete progDlg; + } |
From: Karai C. <ck...@us...> - 2004-08-15 19:03:52
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4757/krusader_kde3 Modified Files: CVSNEWS ChangeLog Log Message: ADDED: synchronizer: synchronize with kget Index: CVSNEWS =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/CVSNEWS,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** CVSNEWS 11 Aug 2004 22:08:38 -0000 1.6 --- CVSNEWS 15 Aug 2004 19:03:42 -0000 1.7 *************** *** 5,8 **** --- 5,15 ---- When closing krusader, the tabs are saved and restored + Synchronize with kget + If you want to synchronize a local directory with an instable ftp server, + kget is a much better solution than simple file copying. After comparing + you may right click on the result list and select 'Synchronize with kget' + to execute the synchronization, after that the listed files will be + download with kget instead of krusader. + Dropping URL-s onto the status / totals line: If a directory contains a lot of subdirectories, it may not possible to drop Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.275 retrieving revision 1.276 diff -C2 -d -r1.275 -r1.276 *** ChangeLog 13 Aug 2004 17:21:11 -0000 1.275 --- ChangeLog 15 Aug 2004 19:03:42 -0000 1.276 *************** *** 1,3 **** --- 1,4 ---- ====================== + ADDED: synchronizer: synchronize with kget ADDED: useraction: new Placeholder %_Copy("from", "to")% ADDED: 3rd hand: new panel that does quick selection |
From: Karai C. <ck...@us...> - 2004-08-13 17:21:24
|
Update of /cvsroot/krusader/krusader_kde3/krArc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4893/krusader_kde3/krArc Modified Files: krarc.cpp krarc.h Log Message: FIXED: problem with international chars and copying/moving inside the zip Index: krarc.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krArc/krarc.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** krarc.cpp 12 Aug 2004 20:52:53 -0000 1.16 --- krarc.cpp 13 Aug 2004 17:21:13 -0000 1.17 *************** *** 120,124 **** if( permissions == -1 ) permissions = 0777; //set default permissions for( unsigned int i=arcTempDir.length();i<tmpDir.length(); i=tmpDir.find("/",i+1)){ ! ::mkdir(tmpDir.left(i).latin1(),permissions); } --- 120,124 ---- if( permissions == -1 ) permissions = 0777; //set default permissions for( unsigned int i=arcTempDir.length();i<tmpDir.length(); i=tmpDir.find("/",i+1)){ ! ::mkdir(tmpDir.left(i).local8Bit(),permissions); } *************** *** 159,163 **** int fd; if ( resume ) { ! fd = KDE_open( tmpFile.latin1(), O_RDWR ); // append if resuming KDE_lseek(fd, 0, SEEK_END); // Seek to end } else { --- 159,163 ---- int fd; if ( resume ) { ! fd = KDE_open( tmpFile.local8Bit(), O_RDWR ); // append if resuming KDE_lseek(fd, 0, SEEK_END); // Seek to end } else { *************** *** 170,174 **** initialMode = 0666; ! fd = KDE_open(tmpFile.latin1(), O_CREAT | O_TRUNC | O_WRONLY, initialMode); } QByteArray buffer; --- 170,174 ---- initialMode = 0666; ! fd = KDE_open(tmpFile.local8Bit(), O_CREAT | O_TRUNC | O_WRONLY, initialMode); } QByteArray buffer; *************** *** 343,347 **** } ! void kio_krarcProtocol::stat( const KURL & url ){ KRDEBUG(url.path()); if( !setArcFile(url.path()) ) return; --- 343,347 ---- } ! void kio_krarcProtocol::stat( const KURL & url ){ KRDEBUG(url.path()); if( !setArcFile(url.path()) ) return; *************** *** 362,366 **** if( QFileInfo(path).exists() ){ KDE_struct_stat buff; ! KDE_stat( path.latin1(), &buff ); QString mime = KMimeType::findByPath(path,buff.st_mode)->name(); statEntry(KFileItem(path,mime,buff.st_mode).entry()); --- 362,366 ---- if( QFileInfo(path).exists() ){ KDE_struct_stat buff; ! KDE_stat( path.local8Bit(), &buff ); QString mime = KMimeType::findByPath(path,buff.st_mode)->name(); statEntry(KFileItem(path,mime,buff.st_mode).entry()); *************** *** 419,430 **** bool kio_krarcProtocol::setArcFile(const QString& path){ archiveChanged = true; // is the file already set ? ! if( arcFile && arcFile->url().path() == path.left(arcFile->url().path().length()) ){ // Has it changed ? KFileItem* newArcFile = new KFileItem(arcFile->url(),QString::null,0); ! if( newArcFile->time(UDS_MODIFICATION_TIME) != arcFile->time(UDS_MODIFICATION_TIME) ){ ! delete arcFile; ! password = QString::null; arcFile = newArcFile; } --- 419,431 ---- bool kio_krarcProtocol::setArcFile(const QString& path){ + time_t currTime = time( 0 ); archiveChanged = true; // is the file already set ? ! if( arcFile && arcFile->url().path(-1) == path.left(arcFile->url().path(-1).length()) ){ // Has it changed ? KFileItem* newArcFile = new KFileItem(arcFile->url(),QString::null,0); ! if( !newArcFile->cmp( *arcFile ) ){ ! delete arcFile; ! password = QString::null; arcFile = newArcFile; } *************** *** 454,465 **** } } arcType = arcFile->mimetype(); arcType = arcType.mid(arcType.findRev("-")+1); ! arcPath = "\""+arcFile->url().path()+"\""; arcPath.replace(QRegExp(" "),"\\ "); return initArcParameters(); } ! bool kio_krarcProtocol::initDirDict(const KURL&, bool forced){ // set the archive location //if( !setArcFile(url.path()) ) return false; --- 455,478 ---- } } + + /* FIX: file change can only be detected if the timestamp between the two consequent + changes is more than 1s. If the archive is continuously changing (check: move files + inside the archive), krarc may erronously think, that the archive file is unchanged, + because the timestamp is the same as the previous one. This situation can only occur + if the modification time equals with the current time. While this condition is true, + we can say, that the archive is changing, so content reread is always necessary + during that period. */ + if( archiveChanging ) + archiveChanged = true; + archiveChanging = ( currTime == arcFile->time( UDS_MODIFICATION_TIME ) ); + arcType = arcFile->mimetype(); arcType = arcType.mid(arcType.findRev("-")+1); ! arcPath = "\""+arcFile->url().path(-1)+"\""; arcPath.replace(QRegExp(" "),"\\ "); return initArcParameters(); } ! bool kio_krarcProtocol::initDirDict(const KURL&url, bool forced){ // set the archive location //if( !setArcFile(url.path()) ) return false; *************** *** 467,470 **** --- 480,485 ---- if( !archiveChanged && !forced ) return true; + setArcFile( url.path() ); /* if the archive was changed refresh the file information */ + // write the temp file KShellProcess proc; *************** *** 472,476 **** temp.setAutoDelete(true); if( arcType != "bzip2" ){ ! proc << listCmd << "\""+arcFile->url().path()+"\"" <<" > " << temp.name(); proc.start(KProcess::Block); if( !proc.normalExit() || !proc.exitStatus() == 0 ) return false; --- 487,491 ---- temp.setAutoDelete(true); if( arcType != "bzip2" ){ ! proc << listCmd << "\""+arcFile->url().path(-1)+"\"" <<" > " << temp.name(); proc.start(KProcess::Block); if( !proc.normalExit() || !proc.exitStatus() == 0 ) return false; Index: krarc.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krArc/krarc.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** krarc.h 30 Apr 2004 18:53:28 -0000 1.4 --- krarc.h 13 Aug 2004 17:21:13 -0000 1.5 *************** *** 76,79 **** --- 76,80 ---- QDict<KIO::UDSEntryList> dirDict; //< the directoris data structure. bool archiveChanged; //< true if the archive was changed. + bool archiveChanging; //< true if the archive is currently changing. KFileItem* arcFile; //< the archive file item. QString arcPath; //< the archive location |
From: Karai C. <ck...@us...> - 2004-08-13 17:21:21
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4893/krusader_kde3 Modified Files: ChangeLog Log Message: FIXED: problem with international chars and copying/moving inside the zip Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.274 retrieving revision 1.275 diff -C2 -d -r1.274 -r1.275 *** ChangeLog 12 Aug 2004 20:52:52 -0000 1.274 --- ChangeLog 13 Aug 2004 17:21:11 -0000 1.275 *************** *** 23,27 **** REACTIVATED: usermenu (now using the new useraction-system) ! FIXED: krarc problems at copying subdirectories from the archive FIXED: [ 1005533 ] stepping onto a subfs device crashes krusader FIXED: [ 988835 ] window size of synchronize dirs is not stored --- 23,29 ---- REACTIVATED: usermenu (now using the new useraction-system) ! FIXED: krarc, problem with copying / moving inside the archive ! FIXED: krarc, problem with international characters in put/mkdir ! FIXED: krarc, problems at copying subdirectories from the archive FIXED: [ 1005533 ] stepping onto a subfs device crashes krusader FIXED: [ 988835 ] window size of synchronize dirs is not stored |
From: Karai C. <ck...@us...> - 2004-08-13 16:37:14
|
Update of /cvsroot/krusader/krusader_kde3/krusader/VFS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29330/krusader_kde3/krusader/VFS Modified Files: ftp_vfs.cpp Log Message: FIXED: problem with erronous FTP URL-s Index: ftp_vfs.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/VFS/ftp_vfs.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** ftp_vfs.cpp 23 Jul 2004 17:28:36 -0000 1.33 --- ftp_vfs.cpp 13 Aug 2004 16:37:05 -0000 1.34 *************** *** 121,125 **** if( job && job->error()){ // we failed to refresh ! listError = false; // display error message if ( !quietMode ) job->showErrorDialog(krApp); --- 121,125 ---- if( job && job->error()){ // we failed to refresh ! listError = true; // display error message if ( !quietMode ) job->showErrorDialog(krApp); *************** *** 175,179 **** //QTimer::singleShot( 0,this,SLOT(startLister()) ); ! listError = false; startLister(); --- 175,179 ---- //QTimer::singleShot( 0,this,SLOT(startLister()) ); ! listError = false; startLister(); |
From: Karai C. <ck...@us...> - 2004-08-13 16:31:54
|
Update of /cvsroot/krusader/krusader_kde3/krusader/VFS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28377/krusader_kde3/krusader/VFS Modified Files: normal_vfs.cpp Log Message: FIXED: [ 1007381 ] incorrent handling of dirs with national characters Index: normal_vfs.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/VFS/normal_vfs.cpp,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** normal_vfs.cpp 11 Aug 2004 06:08:45 -0000 1.35 --- normal_vfs.cpp 13 Aug 2004 16:31:46 -0000 1.36 *************** *** 239,243 **** vfile* normal_vfs::vfileFromName(const QString& name,bool mimeTypeMagic){ ! QString path = vfs_workingDir().local8Bit()+"/"+name.local8Bit(); KDE_struct_stat stat_p; --- 239,243 ---- vfile* normal_vfs::vfileFromName(const QString& name,bool mimeTypeMagic){ ! QString path = vfs_workingDir()+"/"+name; KDE_struct_stat stat_p; |
From: Karai C. <ck...@us...> - 2004-08-12 21:15:07
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6042/krusader_kde3/krusader/Synchronizer Modified Files: synchronizergui.cpp synchronizergui.h Log Message: ADDED: synchronizer: using target/source dir instead of left/right in asymmetric mode Index: synchronizergui.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** synchronizergui.h 26 Jul 2004 18:49:58 -0000 1.8 --- synchronizergui.h 12 Aug 2004 21:14:59 -0000 1.9 *************** *** 103,106 **** --- 103,107 ---- void statusInfo( QString ); void subdirsChecked( bool ); + void setPanelLabels(); private: *************** *** 143,146 **** --- 144,149 ---- QLabel *statusLabel; + QLabel *leftDirLabel; + QLabel *rightDirLabel; private: Index: synchronizergui.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** synchronizergui.cpp 29 Jul 2004 20:31:04 -0000 1.15 --- synchronizergui.cpp 12 Aug 2004 21:14:59 -0000 1.16 *************** *** 777,782 **** ! QLabel *leftDirLabel = new QLabel( compareDirs, "leftDirLabel" ); ! leftDirLabel->setText( i18n( "Left directory:" ) ); leftDirLabel->setAlignment( Qt::AlignHCenter ); grid->addWidget( leftDirLabel, 0 ,0 ); --- 777,781 ---- ! leftDirLabel = new QLabel( compareDirs, "leftDirLabel" ); leftDirLabel->setAlignment( Qt::AlignHCenter ); grid->addWidget( leftDirLabel, 0 ,0 ); *************** *** 787,792 **** grid->addWidget( filterLabel, 0 ,1 ); ! QLabel *rightDirLabel = new QLabel( compareDirs, "rightDirLabel" ); ! rightDirLabel->setText( i18n( "Right directory:" ) ); rightDirLabel->setAlignment( Qt::AlignHCenter ); grid->addWidget( rightDirLabel, 0 ,2 ); --- 786,790 ---- grid->addWidget( filterLabel, 0 ,1 ); ! rightDirLabel = new QLabel( compareDirs, "rightDirLabel" ); rightDirLabel->setAlignment( Qt::AlignHCenter ); grid->addWidget( rightDirLabel, 0 ,2 ); *************** *** 1033,1036 **** --- 1031,1035 ---- connect( cbSubdirs, SIGNAL( toggled(bool) ), this, SLOT( subdirsChecked( bool ) ) ); + connect( cbAsymmetric, SIGNAL( toggled(bool) ), this, SLOT( setPanelLabels() ) ); connect( &synchronizer, SIGNAL( comparedFileData( SynchronizerFileItem * ) ), this, *************** *** 1047,1051 **** connect( btnDuplicates, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); connect( btnSingles, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); ! int sx = krConfig->readNumEntry( "Window Width", -1 ); int sy = krConfig->readNumEntry( "Window Height", -1 ); --- 1046,1052 ---- connect( btnDuplicates, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); connect( btnSingles, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); ! ! setPanelLabels(); ! int sx = krConfig->readNumEntry( "Window Width", -1 ); int sy = krConfig->readNumEntry( "Window Height", -1 ); *************** *** 1071,1074 **** --- 1072,1089 ---- } + void SynchronizerGUI::setPanelLabels() + { + if( cbAsymmetric->isChecked() ) + { + leftDirLabel->setText( i18n( "Target directory:" ) ); + rightDirLabel->setText( i18n( "Source directory:" ) ); + } + else + { + leftDirLabel->setText( i18n( "Left directory:" ) ); + rightDirLabel->setText( i18n( "Right directory:" ) ); + } + } + void SynchronizerGUI::rightMouseClicked(QListViewItem *itemIn) { |
From: Karai C. <ck...@us...> - 2004-08-12 20:53:02
|
Update of /cvsroot/krusader/krusader_kde3/krArc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2212/krusader_kde3/krArc Modified Files: krarc.cpp Log Message: FIXED: krarc problems at copying subdirectories from the archive Index: krarc.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krArc/krarc.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** krarc.cpp 30 Apr 2004 18:53:28 -0000 1.15 --- krarc.cpp 12 Aug 2004 20:52:53 -0000 1.16 *************** *** 350,359 **** i18n("Accessing files is not supported with the %1 archives").arg(arcType) ); return; ! } ! QString path = url.path(); KURL newUrl = url; // but treat the archive itself as the archive root ! if( path == arcFile->url().path() ){ newUrl.setPath(path+"/"); path = newUrl.path(); --- 350,359 ---- i18n("Accessing files is not supported with the %1 archives").arg(arcType) ); return; ! } ! QString path = url.path(-1); KURL newUrl = url; // but treat the archive itself as the archive root ! if( path == arcFile->url().path(-1) ){ newUrl.setPath(path+"/"); path = newUrl.path(); *************** *** 559,563 **** } QString name = url.path(); ! if( name.right(1) == "/" && arcDir == "/" ) name = "."; // the "/" case else{ if( name.right(1) == "/" ) name.truncate(name.length()-1); --- 559,563 ---- } QString name = url.path(); ! if( arcFile->url().path(-1) == url.path(-1) ) name = "."; // the "/" case else{ if( name.right(1) == "/" ) name.truncate(name.length()-1); |