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: <ya...@us...> - 2003-12-25 23:55:39
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Panel In directory sc8-pr-cvs1:/tmp/cvs-serv19471/krusader/Panel Modified Files: listpanel.cpp listpanel.h panelfunc.cpp panelfunc.h Log Message: Major code clean up and re-write of the refresh mechanism Index: listpanel.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/listpanel.cpp,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** listpanel.cpp 9 Dec 2003 23:05:57 -0000 1.44 --- listpanel.cpp 25 Dec 2003 23:55:35 -0000 1.45 *************** *** 271,281 **** void ListPanel::slotStartUpdate() { - // if the vfs couldn't make it - go back - if ( func->files() ->vfs_error() ) { - func->inRefresh = false; - func->dirUp(); - return ; - } - while ( func->inRefresh ); // wait until the last refresh finish func->inRefresh = true; // make sure the next refresh wait for this one --- 271,274 ---- *************** *** 292,298 **** emit pathChanged( this ); emit cmdLineUpdate( realPath ); // update the command line - } - void ListPanel::slotEndUpdate() { slotGetStats( virtualPath ); slotUpdate(); --- 285,289 ---- Index: listpanel.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/listpanel.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** listpanel.h 6 Dec 2003 13:10:55 -0000 1.13 --- listpanel.h 25 Dec 2003 23:55:35 -0000 1.14 *************** *** 88,92 **** void slotUpdateTotals(); void slotStartUpdate(); // internal - void slotEndUpdate(); // internal void slotGetStats(QString path); // get the disk-free stats void setFilter(KrView::FilterSpec f); --- 88,91 ---- Index: panelfunc.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/panelfunc.cpp,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** panelfunc.cpp 9 Dec 2003 23:05:57 -0000 1.45 --- panelfunc.cpp 25 Dec 2003 23:55:35 -0000 1.46 *************** *** 58,61 **** --- 58,62 ---- #include "../VFS/krarchandler.h" #include "../VFS/krpermhandler.h" + #include "../VFS/krvfshandler.h" #include "../Dialogs/packgui.h" #include "../Dialogs/krdialogs.h" *************** *** 194,201 **** ListPanelFunc::ListPanelFunc( ListPanel *parent ) : ! panel( parent ), inRefresh( false ) { ! vfsStack.setAutoDelete( true ); ! vfsStack.push( new normal_vfs( "/", panel ) ); ! //files() ->vfs_refresh(); } --- 195,200 ---- ListPanelFunc::ListPanelFunc( ListPanel *parent ) : ! panel( parent ), inRefresh( false ), vfsP(0){ ! urlStack.push( "file:/" ); } *************** *** 206,209 **** --- 205,226 ---- void ListPanelFunc::openUrl( const KURL& url,const QString& nameToMakeCurrent) { + kdDebug() << "openUrl: " << url.url() << endl; + + // check for special cases: + if( !url.isValid() ){ + if( url.url() == "~" ){ + openUrl(QDir::homeDirPath()); + } + else if( !url.url().startsWith("/") ){ // possible relative URL + KURL u = files()->vfs_getOrigin(); + u.addPath(url.url()); + openUrl(u); + } + else panel->slotStartUpdate(); // refresh the panel + return; + } + // change the cursor to busy + krApp->setCursor( KCursor::waitCursor() ); + panel->slotFocusOnMe(); *************** *** 214,296 **** } ! // remote file systems ! if ( !url.isLocalFile() ) { ! // first close all open archives / remote connections ! while ( files() ->vfs_getType() != vfs::NORMAL ) vfsStack.remove(); ! vfs* v = new ftp_vfs(url,panel); ! if ( v->vfs_error() ) { ! kdWarning() << "Failed to create vfs: " << url.prettyURL() << endl; ! delete v; ! refresh(); ! return ; ! } ! // save the current vfs ! files() ->blockSignals( true ); ! vfsStack.push( v ); ! } else { // local directories ! // first close all open archives / remote connections ! while ( files() ->vfs_getType() != vfs::NORMAL ) ! vfsStack.remove(); ! // now we have a normal vfs- refresh it. ! QString mypath = url.path(-1); ! if( mypath == "~" ) mypath = QDir::homeDirPath(); ! //if( !mypath.startsWith("/") ) mypath = files()->vfs_getOrigin().prettyURL(1)+mypath; ! ! mypath = QDir::cleanDirPath(mypath); ! ! while ( !KRpermHandler::dirExist(mypath) ) { ! panel->view->setNameToMakeCurrent( mypath.mid(mypath.findRev('/')+1 ) ); ! mypath = mypath.left( mypath.findRev( '/' ) ); ! if ( mypath.isEmpty() ) ! mypath = "/"; ! } ! ! chdir( mypath.latin1() ); ! refresh( KURL::fromPathOrURL(mypath) ); } } - void ListPanelFunc::refresh( const KURL& url ) { - // change the cursor to busy - krApp->setCursor( KCursor::waitCursor() ); ! // if we could not refresh try to dir up ! QString origin = url.prettyURL(-1); ! if ( !files() ->vfs_refresh( origin ) ) { ! panel->virtualPath = origin; ! dirUp(); ! return ; // dirUp() calls refresh again... ! } ! // update the backStack ! if ( backStack.last() != panel->realPath ) { ! krBack->setEnabled( true ); ! backStack.append( panel->realPath ); ! //the size of the backStack is hard coded - 30 ! if ( backStack.count() > 30 ) ! backStack.remove( backStack.begin() ); ! } } - void ListPanelFunc::goBack() { - if ( backStack.isEmpty() ) - return ; ! if ( backStack.last() == "//WARNING//" ) { ! KMessageBox::information( 0, i18n( "Can't re-enter archive. Going to the nearest path" ), QString::null, "BackArchiveWarning" ); ! backStack.remove( backStack.fromLast() ); //remove the //WARNING// entry ! } ! // avoid going back to the same place ! while ( !backStack.isEmpty() && backStack.last() == panel->realPath ) ! backStack.remove( backStack.fromLast() ); ! ! if ( backStack.isEmpty() ) ! return ; ! QString path = backStack.last(); ! refresh( path ); ! backStack.remove( backStack.fromLast() ); ! if ( backStack.isEmpty() ) ! krBack->setEnabled( false ); } --- 231,270 ---- } ! vfs* v = 0; ! if( !urlStack.top().equals(url) ) urlStack.push( url ); ! while( true ){ ! KURL u = urlStack.pop(); ! u.adjustPath(-1); // remove trailing "/" ! u.cleanPath(); // Resolves "." and ".." components in path. ! v = KrVfsHandler::getVfs(u,panel,files()); ! if( !v ) continue; //this should not happen ! ! if( v != vfsP ){ ! delete vfsP; ! vfsP = v; // v != 0 so this is safe ! } ! if( vfsP->vfs_refresh(u) ) break; // we have a valid refreshed URL now } + // update the urls stack + if( !files()->vfs_getOrigin().equals(urlStack.top()) ){ + urlStack.push( files()->vfs_getOrigin() ); + } + // on local file system change the working directory + if( files()->vfs_getType() == vfs::NORMAL ) + chdir( files()->vfs_getOrigin().path().latin1() ); } ! void ListPanelFunc::refresh( const KURL& url ) { ! openUrl(url); } ! void ListPanelFunc::goBack() { ! if ( urlStack.isEmpty() ) return ; ! urlStack.pop(); ! openUrl( urlStack.top() ); ! if ( urlStack.isEmpty() ) krBack->setEnabled( false ); } *************** *** 686,690 **** path.setProtocol("tar"); } else { ! path.setProtocol("krarc:"); } openUrl( path ); --- 660,664 ---- path.setProtocol("tar"); } else { ! path.setProtocol("krarc"); } openUrl( path ); *************** *** 696,737 **** void ListPanelFunc::dirUp() { ! QString origin = panel->virtualPath; ! QString newOrigin = origin; ! // remove one dir from the new path ! newOrigin.truncate( newOrigin.findRev('/') ); ! ! // Do we need to change vfs ? ! bool changeVFS = files()->vfs_error(); ! ! if( origin.contains(":/") ){ // ftp_vfs ! if( QFileInfo(origin.mid(origin.find(":/")+1)).exists() ){ ! changeVFS = true; ! // make the current archive the current item on the new list ! panel->view->setNameToMakeCurrent(origin.mid(origin.findRev('/')+1) ); ! } ! } ! ! // clear the view - to avoid a repaint crash ! panel->view->clear(); ! ! if( changeVFS ){ ! vfsStack.remove(); ! files()->blockSignals( false ); ! files()->vfs_refresh(); ! return ; ! } ! ! // make the current dir the current item on the new list ! panel->view->setNameToMakeCurrent(origin.mid(origin.findRev("/")+1)); ! ! ! // check the '/' case ! if ( newOrigin == "" ) newOrigin = "/"; ! // and the '/' case for urls ! if ( newOrigin.contains( ":/" ) && newOrigin.find( "/", newOrigin.find( ":/" ) + 3 ) == -1 ) ! newOrigin = newOrigin + "/"; ! ! // change dir.. ! refresh( newOrigin ); } --- 670,674 ---- void ListPanelFunc::dirUp() { ! openUrl(files()->vfs_getOrigin().upURL()); } *************** *** 876,891 **** void ListPanelFunc::FTPDisconnect() { - // clear the view - to avoid a repaint crash - panel->view->clear(); - // you can disconnect only if connected ! if ( files() ->vfs_getType() == vfs::FTP ) { ! vfsStack.remove(); ! files() ->blockSignals( false ); ! if ( files() ->vfs_getType() != vfs::FTP ) ! krFTPDiss->setEnabled( false ); ! krFTPNew->setEnabled( true ); panel->view->setNameToMakeCurrent( QString::null ); ! files() ->vfs_refresh(); } } --- 813,821 ---- void ListPanelFunc::FTPDisconnect() { // you can disconnect only if connected ! if ( files() ->vfs_getType() == vfs::FTP ) { ! krFTPDiss->setEnabled( false ); panel->view->setNameToMakeCurrent( QString::null ); ! openUrl(panel->realPath); // open the last local URL } } *************** *** 948,960 **** // clear the view - to avoid a repaint crash panel->view->clear(); ! while ( vfsStack.remove() ); // delete all vfs objects } vfs* ListPanelFunc::files() { ! // make sure we return a valid VFS* ! if ( vfsStack.isEmpty() ) { ! vfsStack.push( new normal_vfs( "/", panel ) ); ! } ! return vfsStack.top(); } --- 878,887 ---- // clear the view - to avoid a repaint crash panel->view->clear(); ! delete files(); // delete all vfs objects } vfs* ListPanelFunc::files() { ! if( !vfsP ) vfsP = new normal_vfs(panel); ! return vfsP; } Index: panelfunc.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/panelfunc.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** panelfunc.h 9 Dec 2003 23:05:57 -0000 1.16 --- panelfunc.h 25 Dec 2003 23:55:35 -0000 1.17 *************** *** 35,39 **** #include "listpanel.h" #include <qobject.h> ! #include <qptrstack.h> #include <qthread.h> --- 35,39 ---- #include "listpanel.h" #include <qobject.h> ! #include <qvaluestack.h> #include <qthread.h> *************** *** 140,147 **** void refresh(const KURL& url); ! ListPanel *panel; // our ListPanel ! QStringList backStack; // Path stack for the "back" button ! bool inRefresh; // true when we are in refresh() ! QPtrStack<vfs> vfsStack; // the vfs stack. }; --- 140,147 ---- void refresh(const KURL& url); ! ListPanel* panel; // our ListPanel ! QValueStack<KURL> urlStack; // Path stack for the "back" button ! bool inRefresh; // true when we are in refresh() ! vfs* vfsP; // pointer to vfs. }; |
From: <ya...@us...> - 2003-12-25 23:51:55
|
Update of /cvsroot/krusader/krusader_kde3/krusader/BookMan In directory sc8-pr-cvs1:/tmp/cvs-serv19019/krusader/BookMan Modified Files: kbookmarkhandler.cpp Log Message: Removed debug line Index: kbookmarkhandler.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/BookMan/kbookmarkhandler.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** kbookmarkhandler.cpp 9 Dec 2003 23:05:57 -0000 1.3 --- kbookmarkhandler.cpp 25 Dec 2003 23:51:52 -0000 1.4 *************** *** 58,62 **** void KBookmarkHandler::openBookmarkURL(const KURL& url) { - kdDebug() << "Opening url: " << url.url() << endl; emit openUrl( url ); } --- 58,61 ---- |
From: <ya...@us...> - 2003-12-25 23:50:03
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1:/tmp/cvs-serv18646 Modified Files: krusader.kdevprj Log Message: Added usermenu.lib to the link flags Index: krusader.kdevprj =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader.kdevprj,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** krusader.kdevprj 18 Dec 2003 23:05:40 -0000 1.44 --- krusader.kdevprj 25 Dec 2003 23:50:00 -0000 1.45 *************** *** 23,28 **** cppflags=-DKDE_NO_COMPAT -D_LARGEFILE64_SOURCE cxxflags=\s-O0 -Wall ! ldadd=VFS/libVFS.a KViewer/libKViewer.a Dialogs/libDialogs.a BookMan/libBookMan.a $(LIB_KPARTS) $(LIB_KFILE) $(LIB_KHTML) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) ! ldflags=\s \s [General] --- 23,28 ---- cppflags=-DKDE_NO_COMPAT -D_LARGEFILE64_SOURCE cxxflags=\s-O0 -Wall ! ldadd=UserMenu/libUserMenu.a VFS/libVFS.a KViewer/libKViewer.a Dialogs/libDialogs.a BookMan/libBookMan.a $(LIB_KPARTS) $(LIB_KFILE) $(LIB_KHTML) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) ! ldflags=\s \s [General] *************** *** 34,38 **** lfv_open_groups= make_options=\s-j1 ! makefiles=Makefile.am,krusader/Makefile.am,doc/Makefile.am,doc/en/Makefile.am,po/Makefile.am,pics/Makefile.am,doc/pics/Makefile.am,krusader/BookMan/Makefile.am,krusader/Dialogs/Makefile.am,krusader/GUI/Makefile.am,krusader/Konfigurator/Makefile.am,krusader/KViewer/Makefile.am,krusader/MountMan/Makefile.am,krusader/Panel/Makefile.am,krusader/RemoteMan/Makefile.am,krusader/VFS/Makefile.am,krusader/Search/Makefile.am,krusader/Splitter/Makefile.am,krusader/Synchronizer/Makefile.am,krusader/UserMenu/Makefile.am modifyMakefiles=true project_name=Krusader --- 34,38 ---- lfv_open_groups= make_options=\s-j1 ! makefiles=Makefile.am,krusader/Makefile.am,doc/Makefile.am,doc/en/Makefile.am,po/Makefile.am,pics/Makefile.am,doc/pics/Makefile.am,krusader/BookMan/Makefile.am,krusader/Dialogs/Makefile.am,krusader/GUI/Makefile.am,krusader/Konfigurator/Makefile.am,krusader/KViewer/Makefile.am,krusader/MountMan/Makefile.am,krusader/Panel/Makefile.am,krusader/RemoteMan/Makefile.am,krusader/VFS/Makefile.am,krusader/Search/Makefile.am,krusader/Splitter/Makefile.am,krusader/Synchronizer/Makefile.am modifyMakefiles=true project_name=Krusader *************** *** 730,734 **** [krusader/Makefile.am] files=krusader/krusader.desktop,krusader/lo32-app-krusader.png,krusader/lo16-app-krusader.png,krusader/defaults.h,krusader/kicons.cpp,krusader/kicons.h,krusader/krslots.cpp,krusader/krslots.h,krusader/krusader.cpp,krusader/krusader.h,krusader/krusaderui.rc,krusader/krusaderview.cpp,krusader/krusaderview.h,krusader/lo32-app-krusader2.png,krusader/main.cpp,krusader/resources.h,krusader/x-ace.desktop,krusader/krservices.cpp,krusader/krservices.h,krusader/panelmanager.cpp,krusader/panelmanager.h,krusader/paneltabbar.cpp,krusader/paneltabbar.h ! sub_dirs=BookMan,Dialogs,GUI,Konfigurator,KViewer,MountMan,Panel,RemoteMan,VFS,Search,Splitter,Synchronizer,UserMenu type=prog_main --- 730,734 ---- [krusader/Makefile.am] files=krusader/krusader.desktop,krusader/lo32-app-krusader.png,krusader/lo16-app-krusader.png,krusader/defaults.h,krusader/kicons.cpp,krusader/kicons.h,krusader/krslots.cpp,krusader/krslots.h,krusader/krusader.cpp,krusader/krusader.h,krusader/krusaderui.rc,krusader/krusaderview.cpp,krusader/krusaderview.h,krusader/lo32-app-krusader2.png,krusader/main.cpp,krusader/resources.h,krusader/x-ace.desktop,krusader/krservices.cpp,krusader/krservices.h,krusader/panelmanager.cpp,krusader/panelmanager.h,krusader/paneltabbar.cpp,krusader/paneltabbar.h ! sub_dirs=BookMan,Dialogs,GUI,Konfigurator,KViewer,MountMan,Panel,RemoteMan,VFS,Search,Splitter,Synchronizer type=prog_main *************** *** 1042,1064 **** type=HEADER - [krusader/UserMenu/Makefile.am] - files=krusader/UserMenu/usermenu.cpp,krusader/UserMenu/usermenu.h - sharedlib_LDFLAGS=-version-info 0:0:0 - sharedlib_rootname=UserMenu - sub_dirs= - type=static_library - - [krusader/UserMenu/usermenu.cpp] - dist=true - install=false - install_location= - type=SOURCE - - [krusader/UserMenu/usermenu.h] - dist=true - install=false - install_location= - type=HEADER - [krusader/VFS/Makefile.am] files=krusader/VFS/ftp_vfs.cpp,krusader/VFS/ftp_vfs.h,krusader/VFS/krarchandler.cpp,krusader/VFS/krarchandler.h,krusader/VFS/krdirwatch.cpp,krusader/VFS/krdirwatch.h,krusader/VFS/krpermhandler.cpp,krusader/VFS/krpermhandler.h,krusader/VFS/normal_vfs.cpp,krusader/VFS/normal_vfs.h,krusader/VFS/temp_vfs.cpp,krusader/VFS/temp_vfs.h,krusader/VFS/vfile.cpp,krusader/VFS/vfile.h,krusader/VFS/vfs.cpp,krusader/VFS/vfs.h,krusader/VFS/virt_vfs.cpp,krusader/VFS/virt_vfs.h,krusader/VFS/krvfshandler.cpp,krusader/VFS/krvfshandler.h --- 1042,1045 ---- *************** *** 1334,1338 **** [pics/Makefile.am] dist=true ! files=pics/about.png,pics/arc_pack16x16.png,pics/arc_pack22x22.png,pics/arc_pack32x32.png,pics/arc_test16x16.png,pics/arc_test22x22.png,pics/arc_test32x32.png,pics/arc_unpack16x16.png,pics/arc_unpack22x22.png,pics/arc_unpack32x32.png,pics/calc16x16.png,pics/calc22x22.png,pics/calc32x32.png,pics/compare16x16.png,pics/compare22x22.png,pics/compare32x32.png,pics/comparedirs16x16.png,pics/comparedirs22x22.png,pics/comparedirs32x32.png,pics/ftp_connect16x16.png,pics/ftp_connect22x22.png,pics/ftp_connect32x32.png,pics/ftp_disconnect16x16.png,pics/ftp_disconnect22x22.png,pics/ftp_disconnect32x32.png,pics/ftp_new16x16.png,pics/ftp_new22x22.png,pics/ftp_new32x32.png,pics/konfig_small.jpg,pics/kr_addbookmark16x16.png,pics/kr_addbookmark22x22.png,pics/kr_addbookmark32x32.png,pics/kr_bookman16x16.png,pics/kr_bookman22x22.png,pics/kr_bookman32x32.png,pics/kr_bookmark16x16.png,pics/kr_bookmark22x22.png,pics/kr_bookmark32x32.png,pics/kr_fullview16x16.png,pics/kr_fullview22x22.png,pics/kr_fullview32x32.png,pics/kr_hwinfo16x16.png,pics/kr_hwinfo22x22.png,pics/kr_hwinfo32x32.png,pics/kr_invert16x16.png,pics/kr_invert22x22.png,pics/kr_invert32x32.png,pics/kr_treeview16x16.png,pics/kr_treeview22x22.png,pics/kr_treeview32x32.png,pics/kr_unselect16x16.png,pics/kr_unselect22x22.png,pics/kr_unselect32x32.png,pics/Makefile,pics/Makefile.am,pics/Makefile.in,pics/mountman16x16.png,pics/mountman22x22.png,pics/mountman32x32.png,pics/properties16x16.png,pics/properties22x22.png,pics/properties32x32.png,pics/select16x16.png,pics/select22x22.png,pics/select32x32.png,pics/selectall16x16.png,pics/selectall22x22.png,pics/selectall32x32.png,pics/terminal16x16.png,pics/terminal22x22.png,pics/terminal32x32.png,pics/unselectall16x16.png,pics/unselectall22x22.png,pics/unselectall32x32.png,pics/kr_split16x16.png,pics/kr_split22x22.png,pics/kr_split32x32.png,pics/kr_combine16x16.png,pics/kr_combine22x22.png,pics/kr_combine32x32.png,pics/kr_syncdirs16x16.png,pics/kr_syncdirs22x22.png,pics/kr_syncdirs32x32.png install=false install_location= --- 1315,1319 ---- [pics/Makefile.am] dist=true ! files=pics/about.png,pics/arc_pack16x16.png,pics/arc_pack22x22.png,pics/arc_pack32x32.png,pics/arc_test16x16.png,pics/arc_test22x22.png,pics/arc_test32x32.png,pics/arc_unpack16x16.png,pics/arc_unpack22x22.png,pics/arc_unpack32x32.png,pics/calc16x16.png,pics/calc22x22.png,pics/calc32x32.png,pics/compare16x16.png,pics/compare22x22.png,pics/compare32x32.png,pics/comparedirs16x16.png,pics/comparedirs22x22.png,pics/comparedirs32x32.png,pics/ftp_connect16x16.png,pics/ftp_connect22x22.png,pics/ftp_connect32x32.png,pics/ftp_disconnect16x16.png,pics/ftp_disconnect22x22.png,pics/ftp_disconnect32x32.png,pics/ftp_new16x16.png,pics/ftp_new22x22.png,pics/ftp_new32x32.png,pics/konfig_small.jpg,pics/kr_addbookmark16x16.png,pics/kr_addbookmark22x22.png,pics/kr_addbookmark32x32.png,pics/kr_bookman16x16.png,pics/kr_bookman22x22.png,pics/kr_bookman32x32.png,pics/kr_bookmark16x16.png,pics/kr_bookmark22x22.png,pics/kr_bookmark32x32.png,pics/kr_fullview16x16.png,pics/kr_fullview22x22.png,pics/kr_fullview32x32.png,pics/kr_hwinfo16x16.png,pics/kr_hwinfo22x22.png,pics/kr_hwinfo32x32.png,pics/kr_invert16x16.png,pics/kr_invert22x22.png,pics/kr_invert32x32.png,pics/kr_treeview16x16.png,pics/kr_treeview22x22.png,pics/kr_treeview32x32.png,pics/kr_unselect16x16.png,pics/kr_unselect22x22.png,pics/kr_unselect32x32.png,pics/Makefile,pics/Makefile.am,pics/Makefile.in,pics/mountman16x16.png,pics/mountman22x22.png,pics/mountman32x32.png,pics/properties16x16.png,pics/properties22x22.png,pics/properties32x32.png,pics/select16x16.png,pics/select22x22.png,pics/select32x32.png,pics/selectall16x16.png,pics/selectall22x22.png,pics/selectall32x32.png,pics/terminal16x16.png,pics/terminal22x22.png,pics/terminal32x32.png,pics/unselectall16x16.png,pics/unselectall22x22.png,pics/unselectall32x32.png,pics/kr_split16x16.png,pics/kr_split22x22.png,pics/kr_split32x32.png,pics/kr_combine16x16.png,pics/kr_combine22x22.png,pics/kr_combine32x32.png install=false install_location= *************** *** 1806,1827 **** install=true install_location=$$(kde_datadir)/krusader/icons/hicolor/32x32/actions/kr_unselectall.png - type=DATA - - [pics/kr_syncdirs16x16.png] - dist=true - install=true - install_location=$$(kde_datadir)/krusader/icons/hicolor/16x16/actions/kr_syncdirs.png - type=DATA - - [pics/kr_syncdirs22x22.png] - dist=true - install=true - install_location=$$(kde_datadir)/krusader/icons/hicolor/22x22/actions/kr_syncdirs.png - type=DATA - - [pics/kr_syncdirs32x32.png] - dist=true - install=true - install_location=$$(kde_datadir)/krusader/icons/hicolor/32x32/actions/kr_syncdirs.png type=DATA --- 1787,1790 ---- |
Update of /cvsroot/krusader/krusader_kde3/doc/en In directory sc8-pr-cvs1:/tmp/cvs-serv28701/doc/en Modified Files: commands.sgml credits.sgml faq.sgml index.docbook installation.sgml introduction.sgml konfigurator.sgml krusader-tools.sgml using-krusader.sgml Log Message: Handbook 1.00.05 Index: commands.sgml =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/en/commands.sgml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** commands.sgml 30 Nov 2003 20:01:27 -0000 1.4 --- commands.sgml 25 Dec 2003 20:50:18 -0000 1.5 *************** *** 20,175 **** *********************************************************************** --> <title>Command Reference</title> - <!-- updated by Frank 1.29 --> <sect1 id="file-menu"> <title>The <guimenu>file</guimenu> menu</title> ! <variablelist> ! <varlistentry><term><menuchoice> ! <guimenu>Properties</guimenu> ! </menuchoice></term> ! <listitem><para>Pop up the file properties dialog which allows you to change the file's permissions [...1104 lines suppressed...] ! <guimenuitem>About Krusader</guimenuitem> ! </menuchoice></term> ! <listitem><para>This will display version, author and Licence information.</para> ! </listitem> ! </varlistentry> ! ! <varlistentry> ! <term><menuchoice> ! <!-- <shortcut><keycombo action="simul">&Shift;<keycap>F1</keycap></keycombo></shortcut> --> ! <guimenu>Help</guimenu> ! <guimenuitem>About KDE</guimenuitem> ! </menuchoice></term> ! <listitem><para>This displays the &kde; version and basic information.</para> ! </listitem> ! </varlistentry> ! ! </variablelist> ! </sect1> Index: credits.sgml =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/en/credits.sgml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** credits.sgml 30 Nov 2003 20:01:27 -0000 1.5 --- credits.sgml 25 Dec 2003 20:50:19 -0000 1.6 *************** *** 21,32 **** <title>Credits and License</title> ! <para>Krusader</para> <para> Program copyright 2000-2003 Shie Erlich and Rafi Yanai <email>kru...@us...</email> </para> ! <!-- added by Frank --> <para> ! Krusader is developed by a dedicated team of individuals, known as the Krusader Krew. <itemizedlist> <listitem><para>Shie Erlich, author <email>ma...@us...</email></para></listitem> --- 21,32 ---- <title>Credits and License</title> ! <para>&krusader;</para> <para> Program copyright 2000-2003 Shie Erlich and Rafi Yanai <email>kru...@us...</email> </para> ! <para> ! &krusader; is developed by a dedicated team of individuals, known as the &krusader; Krew. <itemizedlist> <listitem><para>Shie Erlich, author <email>ma...@us...</email></para></listitem> *************** *** 39,59 **** <email>cod...@us...</email></para></listitem> </itemizedlist> ! The project is written using KDevelop and QT Designer. </para> <para>We would especially like to thank Dirk Eschler <email>des...@us...</email> ! the krusader web master. If you'll visit the &kruwebsite; you'll appreciate as much as we do the hard work and effort that Dirk has put into the site.</para> <para> Contributors: ! We would like to thank all the Krusader users who submitted bugs, wishes and patches. Sorry we can't mention you all.</para> - <!-- added by Frank --> <para>Special thanks to: <itemizedlist> <listitem><para>Heiner Eichmann <email>h.e...@gm...</email> The 6th Beatle: FreeBSD port, patches and general help</para></listitem> ! <listitem><para>Mark Eatough <email>mar...@ya...</email> Krusader handbook proof reader </para></listitem> <listitem><para>Mikolaj Machowski <email>mi...@wp...</email> Usability and QA</para></listitem> --- 39,58 ---- <email>cod...@us...</email></para></listitem> </itemizedlist> ! The project is written using <application>KDevelop</application> and <application>&Qt; Designer</application>. </para> <para>We would especially like to thank Dirk Eschler <email>des...@us...</email> ! the &krusader; web master. If you'll visit the &kruwebsite_url; you'll appreciate as much as we do the hard work and effort that Dirk has put into the site.</para> <para> Contributors: ! We would like to thank all the &krusader; users who submitted bugs, wishes and patches. Sorry we can't mention you all.</para> <para>Special thanks to: <itemizedlist> <listitem><para>Heiner Eichmann <email>h.e...@gm...</email> The 6th Beatle: FreeBSD port, patches and general help</para></listitem> ! <listitem><para>Mark Eatough <email>mar...@ya...</email> &krusader; handbook proof reader </para></listitem> <listitem><para>Mikolaj Machowski <email>mi...@wp...</email> Usability and QA</para></listitem> *************** *** 64,107 **** </para> - <!-- updated by Frank --> <para>Thanks to the translators: <itemizedlist> ! <listitem><para>Czech translator: Mitek <email>mi...@em...</email></para> </listitem> ! <listitem><para>Danish translator: Anders Bruun Olsen <email>an...@br...</email></para> </listitem> ! <listitem><para>Dutch translator: Frank Schoolmeesters <email>cod...@us...</email></para> </listitem> ! <listitem><para>French translator: René-Pierre Lehmann <email>ri...@le...</email></para> </listitem> ! <listitem><para>German translator: Christoph Thielecke <email>cri...@gm...</email></para> </listitem> ! <listitem><para>Hungarian translator: Kukk Zoltan <email>kuk...@fr...</email></para> </listitem> ! <listitem><para>Italian translator: Giuseppe Bordoni <email>ge...@ge...</email></para> </listitem> ! <listitem><para>Japanese translator: UTUMI Hirosi <email>ut...@mx...</email></para> </listitem> ! <listitem><para>Polish translator: Lukasz Janyst <email>lj...@wp...</email></para> </listitem> ! <listitem><para>Russian translator: Dmitry V. Chernyak <email>dv...@ma...</email></para> </listitem> ! <listitem><para>Slovak translator: Zdenko Podobna <email>zd...@ma...</email></para> </listitem> ! <listitem><para>Spanish translator: Rafael Munoz Rodriguez <email>raf...@ne...</email></para> </listitem> ! <listitem><para>Swedish translator: Eric Johanssen <email>er...@te...</email></para> </listitem> ! <listitem><para>Updated Swedish translation: Anders Linden <email>con...@gm...</email></para> </listitem> </itemizedlist> ! And all the translators who submitted some minor fixes. </para> ! <para>If your native language is not listed above, you maybe like to translate Krusader to your native ! language, please read the <ulink url="http://krusader.sourceforge.net/phpBB/viewtopic.php?t=389">Krusader ! translation howto</ulink>.</para> ! <para>Look also at the "ChangeLog" file in the Krusader sources to see more credits.</para> <para> --- 63,107 ---- </para> <para>Thanks to the translators: <itemizedlist> ! <listitem><para>Czech translation: Mitek <email>mi...@em...</email></para> </listitem> ! <listitem><para>Updated Czech translation: Martin Sixta <email>luk...@se...</email></para> </listitem> ! <listitem><para>Danish translation: Anders Bruun Olsen <email>an...@br...</email></para> </listitem> ! <listitem><para>Dutch translation: Frank Schoolmeesters <email>cod...@us...</email></para> </listitem> ! <listitem><para>French translation: René-Pierre Lehmann <email>ri...@le...</email></para> </listitem> ! <listitem><para>German translation: Christoph Thielecke <email>cri...@gm...</email></para> </listitem> ! <listitem><para>Hungarian translation: Kukk Zoltan <email>kuk...@fr...</email></para> </listitem> ! <listitem><para>Italian translation: Giuseppe Bordoni <email>ge...@ge...</email></para> </listitem> ! <listitem><para>Japanese translation: UTUMI Hirosi <email>ut...@mx...</email></para> </listitem> ! <listitem><para>Polish translation: Lukasz Janyst <email>lj...@wp...</email></para> </listitem> ! <listitem><para>Russian translation: Dmitry V. Chernyak <email>dv...@ma...</email></para> </listitem> ! <listitem><para>Slovak translation: Zdenko Podobna <email>zd...@ma...</email></para> </listitem> ! <listitem><para>Spanish translation: Rafael Munoz Rodriguez <email>mu...@ho...</email></para> </listitem> ! <listitem><para>Swedish translation: Eric Johanssen <email>er...@te...</email></para> ! </listitem> ! <listitem><para>Updated Swedish translation: Anders Lindén <email>con...@gm...</email></para> </listitem> </itemizedlist> ! And all the translators who submitted some minor fixes, sorry we can't mention you all. </para> ! <para>If your native language is not listed above, you maybe like to translate &krusader; to your native ! language, please read the &i18howto_url;.</para> ! <para>Look also at the <filename>ChangeLog</filename> file in the &krusader; sources to see more ! credits.</para> <para> *************** *** 110,115 **** </para> ! &underGPL; <!-- GPL License --> ! &underFDL; <!-- FDL: do not remove --> </chapter> --- 110,115 ---- </para> ! &underGPL; <!-- GPL License --> ! &underFDL; <!-- FDL: do not remove --> </chapter> Index: faq.sgml =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/en/faq.sgml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** faq.sgml 30 Nov 2003 20:01:28 -0000 1.4 --- faq.sgml 25 Dec 2003 20:50:19 -0000 1.5 *************** *** 28,38 **** <answer><para>An open source project greatest strength is derived from getting user feedback. That's why we'd love to hear what you have to say. For information on what remains to be done look at the ! &kruwebsite; and click on the "TODO List" button. ! Posting to the TODO list is for developers only, but feel free to post to the ! <ulink url="http://krusader.sourceforge.net/phpBB/viewforum.php?f=6">Future Krusader Version discussion Forum</ulink> ! for things that aren't on the list, but should be. If you have a nice feature request, the Krusader Krew ! will add your request to the todo list. You can reach us by ! <ulink url="mailto:kru...@us...">mail</ulink> ! or drop us a note in our &kruforum;. </para> </answer> --- 28,36 ---- <answer><para>An open source project greatest strength is derived from getting user feedback. That's why we'd love to hear what you have to say. For information on what remains to be done look at the ! &online_todolist_url;. ! Posting to the online todo list is for developers only, but feel free to post to the &kru2forum_url; ! for things that aren't on the list, but should be. If you have a nice feature request, the &krusader; Krew ! will add your request to the online todo list. You can reach us by &mail_url; ! or drop us a note in our &kruforum_url;. </para> </answer> *************** *** 43,98 **** <answer><para>We have a online Bug Tracking System.</para> <para>Using the online bug-tracker helps us have a clear and orderly way to know how many bugs are open, ! bug priority and follow-ups. It saves us the long time needed to browse the entire Krusader forum, searching for yesterday's bug. Please use this system.</para> <para>Before reporting a bug, please regard the following: <orderedlist> ! <listitem><para><keycap>Search</keycap> the &kruforum; ! , your bug might be solved already. Please DO NOT post new bugs to the ! <ulink url="http://krusader.sourceforge.net/phpBB/viewforum.php?f=3/">bug discussions forum</ulink>. We keep it open to allow discussions.</para></listitem> ! <listitem><para><keycap>Check</keycap> if the bug is already posted in the online Bug Tracking System, ! look at the &kruwebsite; and click on the ! "Report Bugs" button.</para></listitem> <listitem><para>If you can't find this bug mentioned, please <keycap>submit</keycap> it into the bug tracker by clicking the "Submit New" button in the bug-tracker window.</para></listitem> </orderedlist></para> <para>Thanks for your cooperation!</para> ! <note><para><remark>If you've got bugs to report please do not use KDE's bugzilla http://bugs.kde.org/, ! KDE's Bug Tracking System.</remark></para></note></answer> </qandaentry> <qandaentry> ! <question><para>Does Krusader have a mailing list ?</para></question> ! <answer><para>Yes, it is called ! <ulink url="http://lists.sourceforge.net/lists/listinfo/krusader-news/">Krusader-news</ulink>. ! This list is used to notify Krusader users about new releases, major bugfixes etc. ! No spam, no bother, just Krusader. To see the collection of prior postings to the list, visit the ! <ulink url="http://sourceforge.net/mailarchive/forum.php?forum=krusader-news/">Krusader-news Archives</ulink>. ! </para><para>See also <ulink url="http://krusader.sourceforge.net/index.php?nav=news.php/">latest news</ulink> ! for the online announcements. ! </para><para>If you want to follow the Krusader development ... live ! A mailing list is available for commits. That means that everything the development team puts into CVS is reported in the list. Want to keep track? ! Waiting for a certain feature/bugfix? Feel free to subscribe, click ! <ulink url="http://lists.sourceforge.net/lists/listinfo/krusader-commits/">here</ulink>. ! To see the collection of prior cvs commits visit the ! <ulink url="http://sourceforge.net/mailarchive/forum.php?forum=krusader-commits/"> ! Krusader cvs commits Archives</ulink>. </para></answer> </qandaentry> ! <qandaentry> ! <question><para>I've installed Krusader from RPM, but when I run it, the menus don't appear. Why ?</para></question> ! <answer><para>Some distributions put the 'krusaderrc.ui' file in the wrong place. ! To solve the problem, just copy the file (form the package or the installed path) ! to either $KDEDIR/share/apps/krusader or ~/.kde/share/apps/krusader and re-run the ! program.</para></answer> </qandaentry> <qandaentry> ! <question><para>Why can't I change the colors in Krusader ?</para></question> <answer><para>In versions prior to 0.75, we supported changing some of the colors ! in Krusader. After some debates in the KDE mailing-list regarding the matter, we decided ! that Krusader's colors will match KDE's current color-scheme. This makes Krusader more compatible and coherent. As a result, we don't support changing colors inside the program. Sorry.</para></answer> --- 41,100 ---- <answer><para>We have a online Bug Tracking System.</para> <para>Using the online bug-tracker helps us have a clear and orderly way to know how many bugs are open, ! bug priority and follow-ups. It saves us the long time needed to browse the entire &krusader; forum, searching for yesterday's bug. Please use this system.</para> <para>Before reporting a bug, please regard the following: <orderedlist> ! <listitem><para><keycap>Search</keycap> the &kruforum_url; ! , your bug might be solved already. Please DO NOT post new bugs to the &bugforum_url;. We keep it open to allow discussions.</para></listitem> ! <listitem><para><keycap>Check</keycap> if the bug is already posted in the &online_buglist_url; of the ! Bug Tracking System.</para></listitem> <listitem><para>If you can't find this bug mentioned, please <keycap>submit</keycap> it into the bug tracker by clicking the "Submit New" button in the bug-tracker window.</para></listitem> </orderedlist></para> <para>Thanks for your cooperation!</para> ! <note><para><remark>If you've got bugs to report please do not use &kde;'s bugzilla http://bugs.kde.org/, ! &kde;'s Bug Tracking System.</remark></para></note></answer> </qandaentry> <qandaentry> ! <question><para>Does &krusader; have a mailing list ?</para></question> ! <answer><para>Yes, it is called &krunews_url;. ! This list is used to notify &krusader; users about new releases, major bugfixes etc. ! No spam, no bother, just &krusader;. To see the collection of prior postings to the list, visit the ! &krunewsarch_url;. ! </para><para>See also &krulatestnews_url; for online announcements. ! </para><para>If you want to follow the &krusader; development ... live ! A &krucommits_url; is available. That means that everything the development team puts into CVS is reported in the list. Want to keep track? ! Waiting for a certain feature/bugfix? Feel free to subscribe. ! To see the collection of prior CVS commits visit the &krucommitsarch_url;. </para></answer> </qandaentry> ! <qandaentry id="krusaderrc_ui"> ! <question><para>I've installed &krusader;, but when I run it, the menus don't appear. Why ?</para></question> ! <answer><para>Probably only the <guimenuitem>help</guimenuitem> menu is visible and all the other ! menu's are gone. Some distributions put the <filename>krusaderrc.ui</filename> file in the wrong place. ! To solve the problem, just copy the <filename>krusaderrc.ui</filename> file ! (from the package or the installed path) to either ! <userinput>$KDEDIR/share/apps/krusader</userinput> ! or <userinput>~/.kde/share/apps/krusader</userinput> and re-run the program. ! If you have compiled &krusader; from sources this is often caused when the ! &kdeqtdir_lnk; enviroment variables are not right set.</para></answer> </qandaentry> + <qandaentry> + <question><para>Some menu items are missing, what is wrong ?</para></question> + <answer><para>When upgrading to a newer Krusader version the <filename>krusaderrc.ui</filename> + must be upgraded to, sometimes this is not the case. The solution is explained in the previous + question.</para></answer> + </qandaentry> + <qandaentry> ! <question><para>Why can't I change the colors in &krusader; ?</para></question> <answer><para>In versions prior to 0.75, we supported changing some of the colors ! in &krusader;. After some debates in the &kde; mailing-list regarding the matter, we decided ! that &krusader;'s colors will match &kde;'s current color-scheme. This makes &krusader; more compatible and coherent. As a result, we don't support changing colors inside the program. Sorry.</para></answer> *************** *** 100,104 **** <qandaentry> ! <question><para>When I try to mount/unmount my cdrom/floppy, Krusader says something about supermount, what's this about ? </para></question> <answer><para>Supermount is a daemon which handles mounting/unmounting of removable --- 102,106 ---- <qandaentry> ! <question><para>When I try to mount/unmount my cdrom/floppy, &krusader; says something about supermount, what's this about ? </para></question> <answer><para>Supermount is a daemon which handles mounting/unmounting of removable *************** *** 106,128 **** the mount for you automatically and transparently. All this is great, however, supermount manipulates the system into thinking that the floppy/cdrom is mounted ! at all times ! This creates a few problems for Krusader, as it can't really know what's ! going on - is there really a floppy in the drive ? Of course, this can be solved, but as for now, we don't consider it a priority.</para></answer> </qandaentry> <qandaentry> ! <question><para>When I try to resize Krusader, so that it'd be smaller, I discover that I can't resize it below a certain size. Basically, it doesn't get much smaller. Why?</para></question> ! <answer><para>See the F1, F2 (etc.) buttons ? They are not allowing Krusader to downsize as they have a minimum size. Just disable them (view->Show FN Keys Bar) and you'll be able to ! resize krusader to your liking.</para></answer> </qandaentry> <qandaentry> ! <question><para>When I do some file operation, Krusader's panel doesn't refresh / I'm using ! Krusader with fam installed, but updates to the panel are now shown.</para></question> <answer><para>The bad news is that we're not sure why, but seems that fam doesn't always seem to work for us. We've tried the same source code on two different Gentoo installation: one worked, ! the other did not. The good news is that if you disable fam, Krusader will automatically revert to its internal mechanism (which is less efficient, but works) without needing to recompile. You can disable fam (file alteration monitor) with: --- 108,130 ---- the mount for you automatically and transparently. All this is great, however, supermount manipulates the system into thinking that the floppy/cdrom is mounted ! at all times! This creates a few problems for &krusader;, as it can't really know what's ! going on - is there really a floppy in the drive? Of course, this can be solved, but as for now, we don't consider it a priority.</para></answer> </qandaentry> <qandaentry> ! <question><para>When I try to resize &krusader;, so that it'd be smaller, I discover that I can't resize it below a certain size. Basically, it doesn't get much smaller. Why?</para></question> ! <answer><para>See the F1, F2 (etc.) buttons ? They are not allowing &krusader; to downsize as they have a minimum size. Just disable them (view->Show FN Keys Bar) and you'll be able to ! resize &krusader; to your liking.</para></answer> </qandaentry> <qandaentry> ! <question><para>When I do some file operation, &krusader;'s panel doesn't refresh / I'm using ! &krusader; with fam installed, but updates to the panel are now shown.</para></question> <answer><para>The bad news is that we're not sure why, but seems that fam doesn't always seem to work for us. We've tried the same source code on two different Gentoo installation: one worked, ! the other did not. The good news is that if you disable fam, &krusader; will automatically revert to its internal mechanism (which is less efficient, but works) without needing to recompile. You can disable fam (file alteration monitor) with: *************** *** 132,138 **** <qandaentry> ! <question><para>When i run 'make' it complains about 'libfam.la'</para></question> <answer><para>The './configure' script does not check for the presence of 'libfam.la', and ! make needs 'libfam.la' to compile Krusader. Install 'libfam0-devel-foo.rpm'. Note: when you install Mandrake 9.1 with the default settings, this package is not installed. If you need more information click --- 134,141 ---- <qandaentry> ! <question><para>When i run <command>make</command> it complains about ! <filename>libfam.la</filename></para></question> <answer><para>The './configure' script does not check for the presence of 'libfam.la', and ! make needs 'libfam.la' to compile &krusader;. Install 'libfam0-devel-foo.rpm'. Note: when you install Mandrake 9.1 with the default settings, this package is not installed. If you need more information click *************** *** 140,162 **** </qandaentry> <!-- Thanks to Karai Csaba --> <qandaentry> ! <question><para>Samba ISO 8859-x codepage / What to do if Krusader does not read shared directories containing national characters?</para></question> ! <answer><para>Krusader does not handle (yet) samba ISO 8859-x codepages, if you use a codepage different than 8859-1 you will have to do a manual configuration. Create or modify the file: ~/.smb/smb.conf ! <screen> ! [global] workgroup = MyWorkGroup (ex. WORKGROUP) client code page = MyCodePage (ex. 852) ! character set = MyCharSet (ex. ISO8859-2)</screen> ! Unfortunately kcontrol (KDE 3.1.1) fails to configure it properly, so this step must be done with a text editor.</para></answer> </qandaentry> <qandaentry> ! <question><para>Krusader reports "krarc:... protocol not supported" error at opening an archive file. </para></question> <answer><para>Solution: install the krarc slave properly:</para> --- 143,173 ---- </qandaentry> + <qandaentry> + <question><para>I have trouble with compiling and installing &krusader;, what to do now ?</para></question> + <answer><para>Please read our detailed <link linkend="compilation">installation procedure</link>. + If you can't find any solution for your problem then feel free to post a help request at our + &kruforum_url;.</para></answer> + </qandaentry> + <!-- Thanks to Karai Csaba --> <qandaentry> ! <question><para>Samba ISO 8859-x codepage / What to do if &krusader; does not read shared directories containing national characters?</para></question> ! <answer><para>&krusader; does not handle (yet) Samba ISO 8859-x codepages, if you use a codepage different than 8859-1 you will have to do a manual configuration. Create or modify the file: ~/.smb/smb.conf ! <programlisting> ! [global] workgroup = MyWorkGroup (ex. WORKGROUP) client code page = MyCodePage (ex. 852) ! character set = MyCharSet (ex. ISO8859-2)</programlisting> ! Unfortunately kcontrol (&kde; 3.1.1) fails to configure it properly, so this step must be done with a text editor.</para></answer> </qandaentry> + <!-- Thanks to Karai Csaba --> <qandaentry> ! <question><para>&krusader; reports "krarc:... protocol not supported" error at opening an archive file. </para></question> <answer><para>Solution: install the krarc slave properly:</para> *************** *** 166,169 **** --- 177,190 ---- </para></answer> </qandaentry> + + <qandaentry> + <question><para>When i try a to establish a ftp-connection, i get an error message after 'Connect OK' + saying 'Could not connect to host'.</para></question> + <answer><para>You are probably behind a firewall/proxy and haven't enabled Passive Mode. + Enable Passive FTP through &kde;'s Control Center and try again. + Network -> Preferences -> 'Use Passive Mode' has to be checked. + </para></answer> + </qandaentry> + <!-- Index: index.docbook =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/en/index.docbook,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** index.docbook 30 Nov 2003 20:01:28 -0000 1.4 --- index.docbook 25 Dec 2003 20:50:19 -0000 1.5 *************** *** 1,22 **** <?xml version="1.0" ?> <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd" [ ! <!ENTITY krusader '<application>Krusader</application>'> ! <!ENTITY kapp "&krusader;"><!-- replace test here --> ! <!ENTITY kruforum '<ulink url="http://krusader.sourceforge.net/phpBB/index.php/">Krusader forum</ulink>'> ! <!ENTITY kruwebsite '<ulink url="http://krusader.sourceforge.net/">Krusader website</ulink>'> ! <!ENTITY krudownload '<ulink url="http://krusader.sourceforge.net/index.php?nav=down.php">Krusader downloadpage</ulink>'> ! <!ENTITY KonfigStartPg '<link linkend="konfig-startup">Konfigurator Startup page</link>'> ! <!ENTITY % addindex "IGNORE"> ! <!ENTITY % English "INCLUDE"><!-- change language only here --> ! <!-- each chapter is in a seperate sgml file --> ! <!ENTITY introduction SYSTEM "introduction.sgml"> ! <!ENTITY using-krusader SYSTEM "using-krusader.sgml"> ! <!ENTITY commands SYSTEM "commands.sgml"> ! <!ENTITY konfigurator SYSTEM "konfigurator.sgml"> ! <!ENTITY krusader-tools SYSTEM "krusader-tools.sgml"> ! <!ENTITY faq SYSTEM "faq.sgml"> ! <!ENTITY credits SYSTEM "credits.sgml"> ! <!ENTITY installation SYSTEM "installation.sgml"> ! ]> <!-- ********************************************************************** index.docbook --- 1,5 ---- <?xml version="1.0" ?> <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd" [ ! <!-- ********************************************************************** index.docbook *************** *** 27,31 **** web site : http://krusader.sourceforge.net description : a Krusader Documentation File ! *************************************************************************** * Permission is granted to copy, distribute and/or modify this * --- 10,14 ---- web site : http://krusader.sourceforge.net description : a Krusader Documentation File ! *************************************************************************** * Permission is granted to copy, distribute and/or modify this * *************** *** 38,41 **** --- 21,104 ---- * MA 02111-1307, USA. * *********************************************************************** --> + + <!ENTITY krusader 'Krusader'> + <!ENTITY kapp "&krusader;"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"><!-- change language only here --> + <!ENTITY package "kdeextragear-1"> + <!-- internet links --> + <!ENTITY kruforum_url '<ulink url="http://krusader.sourceforge.net/phpBB/index.php">&krusader; forum</ulink>'> + <!ENTITY kruwebsite_url '<ulink url="http://krusader.sourceforge.net">Krusader website</ulink>'> + <!ENTITY krudownload_url '<ulink url="http://krusader.sourceforge.net/index.php?nav=down.php">&krusader; downloadpage</ulink>'> + + <!ENTITY xxdiff '<ulink url="http://xxdiff.sourceforge.net">xxdiff</ulink>'> + + <!ENTITY krename_url '<ulink url="http://www.krename.net"><application>Krename</application></ulink>'> + <!ENTITY freshmeat_url '<ulink url="http://www.freshmeat.net">freshmeat</ulink>'> + <!ENTITY rpmfind_url '<ulink url="http://www.rpmfind.net">Rpmfind</ulink>'> + <!ENTITY krucutedge_url '<ulink url="http://krusader.sourceforge.net/index.php?nav=cvs.php">&krusader;'s Cutting Edge page</ulink>'> + <!ENTITY viewcvs_url '<ulink url="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/krusader">ViewCVS</ulink>'> + <!ENTITY sfmirrors_url '<ulink url="http://sourceforge.net/project/showfiles.php?group_id=6488">Sourceforge mirrors</ulink>'> + <!ENTITY online_changelog_url '<ulink url="http://cvs.sourceforge.net/viewcvs.py/krusader/krusader_kde3">online <filename>ChangeLog</filename></ulink>'> + <!ENTITY i18howto_url '<ulink url="http://krusader.sourceforge.net/phpBB/viewtopic.php?t=389">Krusader translation howto</ulink>'> + <!ENTITY kru2forum_url '<ulink url="http://krusader.sourceforge.net/phpBB/viewforum.php?f=6">Future Krusader discussion Forum</ulink>'> + <!ENTITY mail_url '<ulink url="mailto:kru...@us...">mail</ulink>'> + <!ENTITY bugforum_url '<ulink url="http://krusader.sourceforge.net/phpBB/viewforum.php?f=3">bug discussions forum</ulink>'> + <!ENTITY krunews_url '<ulink url="http://lists.sourceforge.net/lists/listinfo/krusader-news">&krusader;-news</ulink>'> + <!ENTITY krunewsarch_url '<ulink url="http://sourceforge.net/mailarchive/forum.php?forum=krusader-news">&krusader;-news Archives</ulink>'> + <!ENTITY krulatestnews_url '<ulink url="http://krusader.sourceforge.net/index.php?nav=news.php">latest news</ulink>'> + <!ENTITY krucommits_url '<ulink url="http://lists.sourceforge.net/lists/listinfo/krusader-commits">commits mailing list</ulink>'> + <!ENTITY krucommitsarch_url '<ulink url="http://sourceforge.net/mailarchive/forum.php?forum=krusader-commits">&krusader; commits Archives</ulink>'> + <!ENTITY xbel_url '<ulink url="http://grail.sourceforge.net/info/xbel.html">XBEL standard</ulink>'> + + <!ENTITY online_todolist_url '<ulink url="http://sourceforge.net/tracker/?atid=560746&group_id=6488&func=browse">online todo list</ulink>'> + <!ENTITY online_buglist_url '<ulink url="http://sourceforge.net/tracker/?atid=106488&group_id=6488&func=browse">online bug list</ulink>'> + <!ENTITY krufreebsd_port_url '<ulink url="http://www.freebsd.org/cgi/ports.cgi?query=krusader&stype=all">FreeBSD port</ulink>'> + + <!-- bad links, need to be changed --> + <!ENTITY bad_link1 '<ulink url="http://apps.kde.com">apps.kde.com</ulink>.'> + <!ENTITY bad_link2 '<ulink url="http://members.home.nl/bruggie/kdiff2">kdiff2</ulink>'> + + <!-- documentation links --> + <!ENTITY konfigstartpg_lnk '<link linkend="konfig-startup">Konfigurator Startup page</link>'> + <!ENTITY konfiglookandfeel_lnk '<link linkend="konfig-looknfeel">Konfigurator look and feel page</link>'> + <!ENTITY konfiggereral_lnk '<link linkend="konfig-general">Konfigurator general page</link>'> + <!ENTITY viewmenu_lnk '<link linkend="view-menu">view menu</link>'> + <!ENTITY markmenu_lnk '<link linkend="mark-menu">mark menu</link>'> + <!ENTITY comparemode_lnk '<link linkend="compare-dir">compare mode</link>'> + <!ENTITY fnkeybar_lnk '<link linkend="fnkeys">FN Keys Bar</link>'> + <!ENTITY toolbar_lnk '<link linkend="toolbar">Toolbar</link>'> + <!ENTITY rootmode_lnk '<link linkend="root-mode">Root mode</link>'> + <!ENTITY settingsmenu_lnk '<link linkend="settings-menu">settings menu</link>'> + <!ENTITY keybindigs_lnk '<link linkend="key_bindings">Key-Bindings</link>'> + <!ENTITY syncdirs_lnk '<link linkend="synchronize_dirs">Synchronize Directories</link>'> + <!ENTITY splitfile_lnk '<link linkend="split">Split file</link>'> + <!ENTITY combinefiles_lnk '<link linkend="combine">Combine files</link>'> + <!ENTITY kdeqtdir_lnk '<link linkend="kde_qt_dir"><envar>KDEDIR</envar> - <envar>QTDIR</envar></link>'> + <!ENTITY usermenu_lnk '<link linkend="user_menu">User menu</link>'> + + <!-- other ENTITIES --> + <!ENTITY keditbookmarks '<application>KeditBookmarks</application>'> + <!ENTITY konqueror '<application>Konqueror</application>'> + <!ENTITY mc '<application>Midnight Commander</application>'> + <!ENTITY nc '<application>Norton Commander</application>'> + <!ENTITY kompare '<application>Kompare</application>'> + <!ENTITY xxdiff '<application>xxdiff</application>'> + <!ENTITY konsole '<application>konsole</application>'> + <!ENTITY disablenote '<note><para>This feature is temporarily disabled and will be rewritten sorry.</para></note>'> + <!ENTITY bugreport_lnk 'Don't hesitate to send <link linkend="bug_report">Bug reports</link>.'> + <!ENTITY newfeaturenote '<note><para>This is a new feature under development, some descriptions can be obsolete when + functionality can change during the development. &bugreport_lnk;</para></note>'> + + <!-- each chapter is in a seperate sgml file --> + <!ENTITY introduction SYSTEM "introduction.sgml"> + <!ENTITY using-krusader SYSTEM "using-krusader.sgml"> + <!ENTITY commands SYSTEM "commands.sgml"> + <!ENTITY konfigurator SYSTEM "konfigurator.sgml"> + <!ENTITY krusader-tools SYSTEM "krusader-tools.sgml"> + <!ENTITY faq SYSTEM "faq.sgml"> + <!ENTITY credits SYSTEM "credits.sgml"> + <!ENTITY installation SYSTEM "installation.sgml"> + ]> <book lang="&language;"> <bookinfo> *************** *** 58,62 **** </author> <author> ! <firstname>Frank</firstname> <!-- added by Frank --> <surname>Schoolmeesters</surname> <affiliation> --- 121,125 ---- </author> <author> ! <firstname>Frank</firstname> <surname>Schoolmeesters</surname> <affiliation> *************** *** 69,100 **** <year>2001</year> <year>2002</year> ! <year>2003</year> <!-- added by Frank --> <holder>Rafi Yanai</holder> <holder>Shie Erlich</holder> </copyright> - <legalnotice>&FDLNotice;</legalnotice> ! ! <date>26/11/2003</date> ! <releaseinfo>1.00.04</releaseinfo> <abstract> <para> ! Krusader is a file-manager for KDE 3.x, ! patterned after old-school managers like midnight commander and norton commander. It features basically all your file-management needs, plus extensive archive handling, mounted filesystems support, built-in advanced search module that can search in archives, internal viewer, ftp/samba client and much much more. </para> ! ! <para> ! NOTE: We are busy with updating the The Krusader Handbook. ! At this moment some nice features are not (yet) documented. Check out the ! <ulink url="http://cvs.sourceforge.net/viewcvs.py/krusader/krusader_kde3/">online ChangeLog</ulink> ! file or the ChangeLog file in the Krusader sources to find out the latest features. Please read also the ! <link linkend="editors_note">Note from the Editors</link>, if you have ideas on how to improve the content ! or like to contribute at the Krusader Handbook. ! </para> ! <para>Thank you for using Krusader.</para> </abstract> --- 132,152 ---- <year>2001</year> <year>2002</year> ! <year>2003</year> <holder>Rafi Yanai</holder> <holder>Shie Erlich</holder> </copyright> <legalnotice>&FDLNotice;</legalnotice> ! <date>21/12/2003</date> ! <releaseinfo>1.00.05</releaseinfo> <abstract> <para> ! &krusader; is a twin-panel &Linux; file-manager for the &kde; 3.x desktop environment, ! patterned after old-school managers like &mc; and &nc;. It features basically all your file-management needs, plus extensive archive handling, mounted filesystems support, built-in advanced search module that can search in archives, internal viewer, ftp/samba client and much much more. </para> ! <para>Thank you for using &krusader;.</para> </abstract> *************** *** 106,115 **** --- 158,245 ---- <keyword>file</keyword> <keyword>manager</keyword> + <keyword>filemanager</keyword> + <keyword>twinpanel</keyword> <keyword>archive</keyword> <keyword>ftp</keyword> <keyword>mount</keyword> + <keyword>midnight</keyword> + <keyword>handbook</keyword> + <keyword>documentation</keyword> </keywordset> </bookinfo> + + <preface><title>Foreword</title> + + <note><para> + We are busy with updating the The Krusader Handbook. + At this moment some nice features are not (yet) documented. Check out the &online_changelog_url; + file or the <filename>ChangeLog</filename> file in the Krusader sources to find out the latest features. + Please read also the <link linkend="editors_note">Note from the Editors</link>, + if you have ideas on how to improve the content or like to contribute at the Krusader Handbook. + </para></note> + + <para> + Our aim is to give you a tool that does the two most important things: + manage your files the way you want it, and look great doing it ! + To do just that, Krusader wears a great looking GUI, + supports drag n' drop and mimetypes (with or without magic!) - + all you need to feel right at home using it. + Krusader is packed with cool features, is fast and handles archives transparently, + basically, all you'd come to expect from tools like &mc;. + Krusader is open-source, free and is released under the + <link linkend="credits">GNU Public License (GPL)</link>, + although we (the developers) still retain the copyright for the project and it's name. + </para> + + <para> + The project's target is to create an all-in-one file-manager, which will do all + the things you'd expect from it, and then some... ;-) + Since the principle behind Krusader is based on the "old-school" managers + (&mc;, &nc;), + virtual filesystems became a main focus. + Virtual filesystems (VFSs) are an abstracted layer over all kinds of archived + information (ZIP files, FTP servers, NFS filesystems, SAMBA shares), + which allows the user to access all the information transparently - + just like entering a sub-directory. + Krusader currently supports VFSs for archives (Zip, Tar, GZip, BZip2, Ace, Rar, Arj), + packages (RPM) and filesystems (FTP, NFS, Samba). + Krusader also includes a built-in Mount-Manager, which enables you to + (un)mount filesystems with a single mouse click, and get usage information. + A Bookmark-Manager Remote-Connections Manager and Advanced Search module are also included. + We are planning to develop more modules in the near future, + thereby enhancing Krusader greatly. (eg: samba browser). + </para> + + <para>We hope you'll enjoy it, we do !</para> + + </preface> + + <preface id="editors_note"> + <title>Note from the Editors</title> + + <para>As you may notice this handbook is written by various authors. + Whe have taken much care in insuring technical and vocabulary consistency.</para> + + <para>Most of the authors write in English even though it is not their native language. + Therefore, you may notice strange sentence constructions. + Do not hesitate to let us know if something is not clear to you.</para> + + <para>An open source project greatest strength is derived from getting user + feedback. That's why we'd love to hear what you have to say. + Documentation contributors are always welcome. + If you have ideas on how to improve the content, + if you like to write about a ondocumented &krusader; feature, + if you have remarks or suggestions about the &krusader; Handbook. Please let us know. + You can contact us even if you find typos!</para> + + <para>Download the latest <link linkend="krusader_cvs">&krusader; CVS build</link> + to obtain the latest version of the &krusader; handbook.</para> + + <para>For information about the &krusader; documentation project, + please contact the &krusader; documentation coordinator Frank Schoolmeesters + <email>cod...@us...</email>.</para> + + </preface> &introduction; Index: installation.sgml =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/en/installation.sgml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** installation.sgml 30 Nov 2003 20:01:29 -0000 1.4 --- installation.sgml 25 Dec 2003 20:50:19 -0000 1.5 *************** *** 22,31 **** <sect1 id = "getting-Krusader"> ! <title>How to obtain Krusader</title> ! <sect2 id="Krusader_stable"> ! <title>Latest stable and beta release</title> <para> ! The most updated version can be found on the &krudownload;. It contains the source tarballs and RPM packages to whatever distro we are currently using. There might be some other packages on the site, but that depends on --- 22,32 ---- <sect1 id = "getting-Krusader"> ! <title>How to obtain &krusader;</title> ! <sect2 id="krusader_stable"> ! <title>Stable version</title> ! <para><filename>krusader-x.xx.tar.gz</filename></para> <para> ! The most updated stable version can be found on the &krudownload_url;. It contains the source tarballs and RPM packages to whatever distro we are currently using. There might be some other packages on the site, but that depends on *************** *** 33,62 **** <para>You may also find copies on &Linux; software archives such as ! <ulink url="http://www.freshmeat.net">freshmeat</ulink> or <ulink url="http://apps.kde.com">apps.kde.com</ulink>. If you can't find a RPM package for your &Linux; distribution, ! we recommend searching for it with ! <ulink url="http://www.rpmfind.net">Rpmfind</ulink>. </para> ! <para>A FreeBSD port of Krusader is maintained. Click on the FreeBSD link in our &krudownload;, ! the Search tab will lead you to the latest BSD version. ! Many thanks to Heiner Eichmann ! </para> - </sect2> <sect2 id="krusader_devel"> ! <title>Development version</title> <para> ! We provide daily (sometimes weekly) builds of Krusader's development version (CVS versions). ! For those who are interested. The <keycap>Nightly tarball</keycap> can be found on the ! <ulink url="http://krusader.sourceforge.net/index.php?nav=cvs.php">Krusader's Cutting Edge page</ulink>. ! These builds are untested and come without any warranty. You have been warned! ! They can contain a new feature or a bugfix where you are looking for. </para> ! <para><keycap>Checkout from cvs</keycap>. ! This project's SourceForge CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the modulename. When prompted for a password for anonymous, simply press the Enter key.</para> --- 34,109 ---- <para>You may also find copies on &Linux; software archives such as ! &freshmeat_url; or <ulink url="http://apps.kde.com">apps.kde.com</ulink>. If you can't find a RPM package for your &Linux; distribution, ! we recommend searching for it with &rpmfind_url;. </para> ! <para>A &krufreebsd_port_url; of &krusader; is maintained, the Search button will lead you to the latest BSD version. ! Many thanks to <link linkend="credits">Heiner Eichmann</link> ! </para> </sect2> <sect2 id="krusader_devel"> ! <title>Development version (beta release)</title> ! <para><filename>krusader-x.xx-betax.tar.gz</filename></para> <para> ! The most updated development version can be found on the &krudownload_url;. ! It contains the source tarballs and sometimes even RPM packages to whatever distro we are currently ! using.</para> ! ! <caution><para>This releases are beta releases and can contain some bugs.</para></caution> ! ! <para>This version has 2 goals: ! <itemizedlist> ! <listitem> ! <para>provide the latest new features to &krusader; users, but these new features might lead to ! some unfortunate bugs</para> ! </listitem> ! <listitem> ! <para>have feedback from &krusader; users so that we can fix the bugs</para> ! </listitem> ! </itemizedlist> </para> + <para>Before every stable release we release at least one development version, so that we can hunt down + the bugs. This is the ideal moment for updating the translations, so that the stable version is 100% + translated.</para> ! </sect2> ! ! <sect2 id="krusader_cvs"> ! <title>CVS builds</title> ! <para><filename>krusader-cvs-yyyy-mm-dd.tar.gz</filename></para> ! <warning><para>These builds are untested and come without any warranty. ! They may contain bugfixes, new features or new bugs!</para> ! </warning> ! ! <para> ! We provide daily (sometimes weekly) builds of &krusader;'s CVS version. ! For those who are interested. The <keycap>nightly tarball</keycap> can be found on the ! &krucutedge_url;. ! Depending on the moment this version will be stable or unstable. Just before a stable release, the cvs version ! is almost stable. After a stable release new features will be added in cvs, so that it might lead to ! some unfortunate bugs. In some rare cases this builds will even not compile if we make a mistake, in that case ! we try to fix the mistake as soon as possible. ! </para> ! ! <para>&krusader; provides 2 nightly builds (snapshots): ! <orderedlist numeration="arabic"> ! <listitem> ! <para><command>make -f Makefile.cvs</command> must be run before the <command>./configure</command> ! script is available</para> ! </listitem> ! <listitem> ! <para>for uses who have problems with the <command>make -f Makefile.cvs</command> command, ! we have already done this for you and the <command>./configure</command> script is included ! in the tarball (This tarball is a bit bigger then the first one). ! </para> ! </listitem> ! </orderedlist> ! </para> ! ! <para><keycap>Checkout from CVS</keycap>. ! This projects SourceForge CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the modulename. When prompted for a password for anonymous, simply press the Enter key.</para> *************** *** 67,85 **** <listitem><para>krusader_kde3: the KDE3 branch</para></listitem> </itemizedlist></para> ! <para>To checkout the Krusader KDE3 version from cvs: <screen><prompt>$</prompt> <userinput><command>cvs</command> <option>-d:pserver:ano...@cv...:/cvsroot/krusader login</option></userinput></screen> <screen><prompt>$</prompt> <userinput><command>cvs</command> <option>-z3 -d:pserver:ano...@cv...:/cvsroot/krusader co krusader_kde3</option></userinput></screen> ! (note: updates from within the module's directory do not need the -d parameter) </para> ! <para>We have also <ulink url="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/krusader/">ViewCVS</ulink> ! to browse the cvs repository.</para> </sect2> <sect2 id="Krusader_old"> <title>Older releases</title> ! <para>Looking for older releases? Try the ! <ulink url="http://sourceforge.net/project/showfiles.php?group_id=6488">Sourceforge mirrors</ulink> ! available from our project page.</para> </sect2> </sect1> --- 114,129 ---- <listitem><para>krusader_kde3: the KDE3 branch</para></listitem> </itemizedlist></para> ! <para>To checkout the &krusader; KDE3 version from cvs: <screen><prompt>$</prompt> <userinput><command>cvs</command> <option>-d:pserver:ano...@cv...:/cvsroot/krusader login</option></userinput></screen> <screen><prompt>$</prompt> <userinput><command>cvs</command> <option>-z3 -d:pserver:ano...@cv...:/cvsroot/krusader co krusader_kde3</option></userinput></screen> ! (note: updates from within the modules directory do not need the -d parameter) </para> ! <para>We have also &viewcvs_url; to browse the CVS repository.</para> </sect2> <sect2 id="Krusader_old"> <title>Older releases</title> ! <para>Looking for older releases? Try the &sfmirrors_url; available from our project page.</para> </sect2> </sect1> *************** *** 87,96 **** <sect1 id="requirements"> <title>Requirements</title> ! <!-- changed by Frank --> <para> ! In order to successfully use Krusader, you need KDE 3.x.x.</para> ! <para><remark>For KDE 2.x.x there is krusader v1.01, stable but there are no planned changes.</remark></para> ! <para>Note: all versions >=1.02 are KDE 3.x.x only.</para> ! <para>Krusader uses about 10 megs of memory to run, but this may vary depending on your platform and configuration. In order to handle archives the archivers must be installed to your PATH. --- 131,140 ---- <sect1 id="requirements"> <title>Requirements</title> ! <para> ! In order to successfully use &krusader;, you need &kde; 3.x.x.</para> ! <para><remark>For &kde; 2.x.x there is &krusader; v1.01, stable but there are no planned changes.</remark></para> ! <para>Note: all versions >=1.02 are &kde; 3.x.x only.</para> ! <para>&krusader; uses about 10 megs of memory to run, but this may vary depending on your platform and configuration. In order to handle archives the archivers must be installed to your PATH. *************** *** 98,108 **** <para> ! A package of popular (un)packers, Krusader itself and adons can be found on the &krudownload;. </para> <para> ! You can find a list of changes in the ! <ulink url="http://cvs.sourceforge.net/viewcvs.py/krusader/krusader_kde3/">online ChangeLog</ulink> ! file or in the ChangeLog file of the Krusader sources. </para> </sect1> --- 142,151 ---- <para> ! A package of popular (un)packers, &krusader; itself and adons can be found on the &krudownload_url;. </para> <para> ! You can find a list of changes in the &online_changelog_url; file or in the <filename>ChangeLog</filename> ! file of the &krusader; sources. </para> </sect1> *************** *** 111,139 **** <title>Compilation and installation</title> ! <sect2 id="sourcedownload"> <!-- changed by Frank --> ! <title>I have downloaded the Sources for Krusader. What now?</title> ! <para>Check the environment variables <envar>QTDIR</envar> and <envar>KDEDIR</envar>.</para> ! <para>In order to compile and install Krusader on your system, type the ! following in the base directory of the Krusader distribution:</para> <screen> <prompt>$</prompt> <userinput><command>./configure</command></userinput> <prompt>$</prompt> <userinput><command>make</command></userinput> ! <prompt>$</prompt> <userinput><command>su -c 'make</command> <option>install'</option></userinput> ! </screen> ! <para>Since Krusader uses <command>autoconf</command> and <command>automake</command> you should have no trouble compiling it. Should you run into problems please read the detailed installation instructions below.</para> ! <para>The next procedure will explain step by step howto install Krusader. This question has been asked many times and especially users new to &Linux; often have problems compiling software from source. Therefore we are trying to keep the explanations as ! detailed as possible even if they are mostly not Krusader specific. Experienced users may ! easily skip most of the steps. Feel free to ask for help at our Forum if anything is unclear. <orderedlist> ! <listitem><para>Open your favourite terminal emulation (e.g. konsole).</para></listitem> <listitem><para>We recommend to create a separate directory which keeps all the sources you compile. This will give you a better overview of installed programs and makes it easier to uninstall them --- 154,181 ---- <title>Compilation and installation</title> ! <sect2 id="sourcedownload"> ! <title>I have downloaded the Sources for &krusader;. What now?</title> ! <para>Check the environment variables &kdeqtdir_lnk;.</para> ! <para>In order to compile and install &krusader; on your system, type the ! following in the base directory of the &krusader; distribution:</para> <screen> <prompt>$</prompt> <userinput><command>./configure</command></userinput> <prompt>$</prompt> <userinput><command>make</command></userinput> ! <prompt>$</prompt> <userinput><command>su -c 'make</command> <option>install'</option></userinput></screen> ! <para>Since &krusader; uses <command>autoconf</command> and <command>automake</command> you should have no trouble compiling it. Should you run into problems please read the detailed installation instructions below.</para> ! <para>The next procedure will explain step by step in detail how to install &krusader;. This question has been asked many times and especially users new to &Linux; often have problems compiling software from source. Therefore we are trying to keep the explanations as ! detailed as possible even if they are mostly not &krusader; specific. Experienced users may ! easily skip most of the steps. Feel free to ask for help at our &kruforum_url; if anything is unclear. <orderedlist> ! <listitem><para>Open your favourite terminal emulation (e.g. &konsole;).</para></listitem> <listitem><para>We recommend to create a separate directory which keeps all the sources you compile. This will give you a better overview of installed programs and makes it easier to uninstall them *************** *** 149,155 **** <listitem><para>Change to the directory containing the sources. <screen><prompt>$</prompt> <userinput><command>cd</command> krusader-x.xx</userinput></screen></para></listitem> ! <listitem id="kde_qt_dir"><para>Determine your QT and KDE directories. Krusader's configure script uses the environment variables <envar>QTDIR</envar> and <envar>KDEDIR</envar>. ! <screen><envar>QTDIR</envar> : <replaceable><path to your QT installation></replaceable> (e.g. /usr/qt3)</screen> <screen><envar>KDEDIR</envar> : <replaceable><path to your KDE installation></replaceable> (e.g. /usr or /opt/kde3)</screen> Normally your distribution will set them for you, but experience has shown that some don't. You can --- 191,197 ---- <listitem><para>Change to the directory containing the sources. <screen><prompt>$</prompt> <userinput><command>cd</command> krusader-x.xx</userinput></screen></para></listitem> ! <listitem id="kde_qt_dir"><para>Determine your &Qt; and &kde; directories. &krusader;'s configure script uses the environment variables <envar>QTDIR</envar> and <envar>KDEDIR</envar>. ! <screen><envar>QTDIR</envar> : <replaceable><path to your Qt installation></replaceable> (e.g. /usr/qt3)</screen> <screen><envar>KDEDIR</envar> : <replaceable><path to your KDE installation></replaceable> (e.g. /usr or /opt/kde3)</screen> Normally your distribution will set them for you, but experience has shown that some don't. You can *************** *** 172,196 **** Note, that the variables are only set for the lifetime of your current shell. If you close your terminal and open a new one they will be gone. ! Assuming Krusader is not the only QT/KDE program you want to compile, we recommend to make these settings permanent (e.g. append both export commands to your /etc/profile).</para></listitem> ! <listitem><para>If you have download from CVS "krusader-cvs-yyyy-mm-dd.tar.gz" you wil have to run the following command to create the "./configure" script: <screen><prompt>$</prompt> <userinput><command>make</command> <option>-f</option> Makefile.cvs</userinput></screen> ! You can skip this item if you have download "krusader-x.xx.tar.gz"</para></listitem> <listitem><para>Now you should be ready to run the configure script. <screen><prompt>$</prompt> <userinput><command>./configure</command></userinput></screen> ! If configure fails, take a look at ! <link linkend="missing_libs">missing libs or headers</link></para></listitem> <listitem><para>Start the compilation process with make. <screen><prompt>$</prompt> <userinput><command>make</command></userinput></screen> ! If configure was successful and make failed for some reason, then feel free to post a help request ! at our &kruforum;.</para></listitem> ! <listitem><para>If nothing went wrong, finally install Krusader. <screen><prompt>$</prompt> <userinput><command>su -c 'make</command> <option> install'</option></userinput></screen> You will be asked to enter your root password.</para></listitem> <listitem><para>You can if you want: clean up to save some diskspace. <screen><prompt>$</prompt> <userinput><command>make</command> <option>clean</option></userinput></screen> This step is optional.</para></listitem> ! <listitem><para>If you ever want to uninstall Krusader, just use <screen><prompt>$</prompt> <userinput><command>su -c 'make</command> <option... [truncated message content] |
From: <cod...@us...> - 2003-12-25 20:48:20
|
Update of /cvsroot/krusader/krusader_kde3/doc In directory sc8-pr-cvs1:/tmp/cvs-serv28508/doc Modified Files: ChangeLog Log Message: Handbook 1.00.05 Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ChangeLog 30 Nov 2003 20:01:26 -0000 1.5 --- ChangeLog 25 Dec 2003 20:48:16 -0000 1.6 *************** *** 2,5 **** --- 2,19 ---- ------------------------------- + 1.00.05 + ====================== + Date:xx.12.2003 + + ADDED: file splitter (using-krusader.sgml) + ADDED: directory synchronisation (using-krusader.sgml) + UPDATED: Commands Reference (commands.sgml) + UPDATED: install procedure (installation.sgml) + UPDATED: Questions and Answers (faq.sgml) + UPDATED: manny small issues + FIXED: manny small issues + FIXED: spelling mistakes/typos corrections + proof reading, thanks to Mark Eatough + 1.00.04 ====================== |
From: <cod...@us...> - 2003-12-25 20:46:19
|
Update of /cvsroot/krusader/krusader_kde3/doc/pics In directory sc8-pr-cvs1:/tmp/cvs-serv28257/doc/pics Modified Files: bookmanadd.png fnkeys.png listpanel.png mainwindow.png Log Message: Handbook 1.00.05 Index: bookmanadd.png =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/pics/bookmanadd.png,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvsZM1ETx and /tmp/cvsOnkmuV differ Index: fnkeys.png =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/pics/fnkeys.png,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvsua7hVC and /tmp/cvssLYcD5 differ Index: listpanel.png =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/pics/listpanel.png,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvs7d98TD and /tmp/cvsoq5Sw7 differ Index: mainwindow.png =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/pics/mainwindow.png,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvsAyFFPE and /tmp/cvs0CaUj9 differ |
From: <ck...@us...> - 2003-12-25 20:14:12
|
Update of /cvsroot/krusader/krusader_kde3/krusader/GUI In directory sc8-pr-cvs1:/tmp/cvs-serv24420/krusader_kde3/krusader/GUI Modified Files: kcmdline.cpp Log Message: FIXED: font size problems in KCmdLine and KrMaskChoice Index: kcmdline.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/GUI/kcmdline.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** kcmdline.cpp 3 Oct 2003 08:18:18 -0000 1.17 --- kcmdline.cpp 25 Dec 2003 20:14:09 -0000 1.18 *************** *** 53,57 **** #include <qsizepolicy.h> - KCMDLine::KCMDLine( QWidget *parent, const char *name ) : QWidget( parent, name ) { QGridLayout * layout = new QGridLayout( this, 1, 3 ); --- 53,56 ---- *************** *** 63,67 **** path->setLineWidth( 1 ); path->setFont( KGlobalSettings::generalFont() ); ! path->setMaximumHeight( QFontMetrics( path->font() ).height() + 4 ); path->setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred)); layout->addWidget( path, 0, 0 ); --- 62,68 ---- path->setLineWidth( 1 ); path->setFont( KGlobalSettings::generalFont() ); ! int height = QFontMetrics( KGlobalSettings::generalFont() ).height(); ! height = height + 5*(height > 14) + 6; ! path->setMaximumHeight( height ); path->setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred)); layout->addWidget( path, 0, 0 ); *************** *** 72,76 **** cmdLine->setMaxCount(100); // remember 100 commands cmdLine->setFont( KGlobalSettings::generalFont() ); ! cmdLine->setMaximumHeight( QFontMetrics( cmdLine->font() ).height() + 4 ); cmdLine->setCompletionObject( &completion ); cmdLine->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred)); --- 73,77 ---- cmdLine->setMaxCount(100); // remember 100 commands cmdLine->setFont( KGlobalSettings::generalFont() ); ! cmdLine->setMaximumHeight( height ); cmdLine->setCompletionObject( &completion ); cmdLine->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred)); |
From: <ck...@us...> - 2003-12-25 20:14:12
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Dialogs In directory sc8-pr-cvs1:/tmp/cvs-serv24420/krusader_kde3/krusader/Dialogs Modified Files: krmaskchoice.cpp Log Message: FIXED: font size problems in KCmdLine and KrMaskChoice Index: krmaskchoice.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Dialogs/krmaskchoice.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** krmaskchoice.cpp 14 Oct 2003 23:41:52 -0000 1.4 --- krmaskchoice.cpp 25 Dec 2003 20:14:09 -0000 1.5 *************** *** 60,64 **** selection = new QComboBox( FALSE, this, "selection" ); ! selection->setGeometry( QRect( 12, 48, 377, selection->font().pointSize()*2 + 4) ); selection->setEditable( TRUE ); selection->setInsertionPolicy( QComboBox::AtTop ); --- 60,66 ---- selection = new QComboBox( FALSE, this, "selection" ); ! int height = QFontMetrics( selection->font() ).height(); ! height = height + 5*(height > 14) + 6; ! selection->setGeometry( QRect( 12, 48, 377, height) ); selection->setEditable( TRUE ); selection->setInsertionPolicy( QComboBox::AtTop ); |
From: <ck...@us...> - 2003-12-25 20:14:12
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1:/tmp/cvs-serv24420/krusader_kde3 Modified Files: ChangeLog Log Message: FIXED: font size problems in KCmdLine and KrMaskChoice Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.151 retrieving revision 1.152 diff -C2 -d -r1.151 -r1.152 *** ChangeLog 23 Dec 2003 19:08:14 -0000 1.151 --- ChangeLog 25 Dec 2003 20:14:09 -0000 1.152 *************** *** 1,4 **** --- 1,5 ---- ADDED: directory synchronizer ADDED: file splitter + FIXED: font size problems in KCmdLine and KrMaskChoice FIXED: internal editor quits without notification even if the edited file was not saved FIXED: no i18n for Name, Ext, Size, Modified |
From: <er...@us...> - 2003-12-23 21:55:45
|
Update of /cvsroot/krusader/krusader_kde3/krusader/UserMenu In directory sc8-pr-cvs1:/tmp/cvs-serv29896/krusader/UserMenu Modified Files: usermenu.h Log Message: implemented 3 modes of execution Index: usermenu.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/UserMenu/usermenu.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** usermenu.h 22 Dec 2003 23:21:59 -0000 1.6 --- usermenu.h 23 Dec 2003 21:55:41 -0000 1.7 *************** *** 45,58 **** Q_OBJECT public: ! UserMenuProc(bool terminal = true, bool enableStderr = false); ~UserMenuProc(); bool start( QString cmdLine ); - bool kill() { return _proc->kill( SIGINT ); } protected slots: void processExited( KProcess *proc ); private: ! bool _terminal; bool _enableStderr; KProcess *_proc; --- 45,61 ---- Q_OBJECT public: ! ! enum ExecType { Terminal, OutputOnly, None }; ! ! UserMenuProc(ExecType execType = Terminal, bool enableStderr = false); ~UserMenuProc(); bool start( QString cmdLine ); protected slots: + void kill() { _proc->kill( SIGINT ); } void processExited( KProcess *proc ); private: ! ExecType _execType; bool _enableStderr; KProcess *_proc; |
From: <er...@us...> - 2003-12-23 21:55:25
|
Update of /cvsroot/krusader/krusader_kde3/krusader/UserMenu In directory sc8-pr-cvs1:/tmp/cvs-serv29853/krusader/UserMenu Modified Files: usermenu.cpp Log Message: implemented 3 modes of execution Index: usermenu.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/UserMenu/usermenu.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** usermenu.cpp 22 Dec 2003 23:25:29 -0000 1.6 --- usermenu.cpp 23 Dec 2003 21:55:22 -0000 1.7 *************** *** 1,8 **** /*************************************************************************** ! _expressionsu.cpp - description ! ------------------- ! begin : Sat Dec 6 2003 ! copyright : (C) 2003 by Shie Erlich & Rafi Yanai ! email : ***************************************************************************/ --- 1,8 ---- /*************************************************************************** ! _expressionsu.cpp - description ! ------------------- ! begin : Sat Dec 6 2003 ! copyright : (C) 2003 by Shie Erlich & Rafi Yanai ! email : ***************************************************************************/ *************** *** 49,53 **** %_and% - number of folders %_fm% - filter mask (for example: *, *.cpp, *.h etc.) ! */ UMCmd UserMenu::_expressions[ NUM_EXPS ] = { --- 49,53 ---- %_and% - number of folders %_fm% - filter mask (for example: *, *.cpp, *.h etc.) ! */ UMCmd UserMenu::_expressions[ NUM_EXPS ] = { *************** *** 83,87 **** //proc.start( KProcess::DontCare ); ! UserMenuProc *proc = new UserMenuProc(false, true); proc->start( cmd ); //===> chdir( save.local8Bit() ); // chdir back --- 83,87 ---- //proc.start( KProcess::DontCare ); ! UserMenuProc *proc = new UserMenuProc( UserMenuProc::Terminal, true ); proc->start( cmd ); //===> chdir( save.local8Bit() ); // chdir back *************** *** 189,192 **** --- 189,194 ---- setButtonOKText( "Close", i18n( "Close this window" ) ); + enableButtonOK( false ); // disable the close button, until the process finishes + setButtonCancelText( "Kill", i18n( "Kill the running process" ) ); *************** *** 195,212 **** if ( enableStderr ) { // create stdout ! QLabel * label1 = new QLabel( i18n( "Standard Output (stdout)" ), page ); _stdout = new QTextEdit( page ); ! _stdout->setReadOnly(true); _stdout->setMinimumWidth( fontMetrics().maxWidth() * 40 ); // create stderr ! QLabel *label2 = new QLabel( i18n( "Standard Error (stderr)" ), page ); _stderr = new QTextEdit( page ); ! _stderr->setReadOnly(true); _stderr->setMinimumWidth( fontMetrics().maxWidth() * 40 ); } else { // create stdout ! QLabel *label = new QLabel( i18n( "Output" ), page ); _stdout = new QTextEdit( page ); ! _stdout->setReadOnly(true); _stdout->setMinimumWidth( fontMetrics().maxWidth() * 40 ); } --- 197,214 ---- if ( enableStderr ) { // create stdout ! new QLabel( i18n( "Standard Output (stdout)" ), page ); _stdout = new QTextEdit( page ); ! _stdout->setReadOnly( true ); _stdout->setMinimumWidth( fontMetrics().maxWidth() * 40 ); // create stderr ! new QLabel( i18n( "Standard Error (stderr)" ), page ); _stderr = new QTextEdit( page ); ! _stderr->setReadOnly( true ); _stderr->setMinimumWidth( fontMetrics().maxWidth() * 40 ); } else { // create stdout ! new QLabel( i18n( "Output" ), page ); _stdout = new QTextEdit( page ); ! _stdout->setReadOnly( true ); _stdout->setMinimumWidth( fontMetrics().maxWidth() * 40 ); } *************** *** 214,222 **** void UserMenuProcDlg::addStderr( KProcess *proc, char *buffer, int buflen ) { ! _stderr->append(QString::fromLatin1( buffer, buflen )); } void UserMenuProcDlg::addStdout( KProcess *proc, char *buffer, int buflen ) { ! _stdout->append(QString::fromLatin1( buffer, buflen )); } --- 216,224 ---- void UserMenuProcDlg::addStderr( KProcess *proc, char *buffer, int buflen ) { ! _stderr->append( QString::fromLatin1( buffer, buflen ) ); } void UserMenuProcDlg::addStdout( KProcess *proc, char *buffer, int buflen ) { ! _stdout->append( QString::fromLatin1( buffer, buflen ) ); } *************** *** 226,231 **** ! UserMenuProc::UserMenuProc( bool terminal, bool enableStderr ) : QObject(), _terminal( terminal ), ! _enableStderr( enableStderr ), _proc( new KProcess() ) { _proc->setUseShell( true ); --- 228,233 ---- ! UserMenuProc::UserMenuProc( ExecType execType, bool enableStderr ) : QObject(), _execType( execType ), ! _enableStderr( enableStderr ), _proc( new KProcess() ), _output( 0 ) { _proc->setUseShell( true ); *************** *** 241,250 **** bool UserMenuProc::start( QString cmdLine ) { _proc->clearArguments(); - ( *_proc ) << cmdLine; // run in terminal or in custom-window ! if (_terminal) { ! } else { ! _output = new UserMenuProcDlg( cmdLine, _enableStderr); // connect the output to the dialog connect( _proc, SIGNAL( receivedStderr( KProcess*, char*, int ) ), --- 243,253 ---- bool UserMenuProc::start( QString cmdLine ) { _proc->clearArguments(); // run in terminal or in custom-window ! if ( _execType == Terminal ) { ! ( *_proc ) << "konsole" << "--noclose" << "-e" << cmdLine; ! } else if ( _execType == OutputOnly ) { // output only - collect output ! ( *_proc ) << cmdLine; ! _output = new UserMenuProcDlg( cmdLine, _enableStderr ); // connect the output to the dialog connect( _proc, SIGNAL( receivedStderr( KProcess*, char*, int ) ), *************** *** 252,266 **** connect( _proc, SIGNAL( receivedStdout( KProcess*, char*, int ) ), _output, SLOT( addStdout( KProcess*, char *, int ) ) ); ! _output->show(); } ! return _proc->start( KProcess::NotifyOnExit, (KProcess::Communication)(KProcess::Stdout | KProcess::Stderr) ); } void UserMenuProc::processExited( KProcess *proc ) { ! kdWarning() << ">>>>>>>>> process done <<<<<<<<<<<" << endl; ! kdWarning() << "stdout:" << endl << _stdout << endl; ! kdWarning() << "stderr:" << endl << _stderr << endl; ! ! delete this; } --- 255,272 ---- connect( _proc, SIGNAL( receivedStdout( KProcess*, char*, int ) ), _output, SLOT( addStdout( KProcess*, char *, int ) ) ); ! connect( _output, SIGNAL( cancelClicked() ), this, SLOT( kill() ) ); _output->show(); + } else { // no terminal, no output collection + ( *_proc ) << cmdLine; } ! return _proc->start( KProcess::NotifyOnExit, ( KProcess::Communication ) ( KProcess::Stdout | KProcess::Stderr ) ); } void UserMenuProc::processExited( KProcess *proc ) { ! // enable the 'close' button on the dialog (if active), disable 'kill' button ! if ( _output ) { ! _output->enableButtonOK( true ); ! _output->enableButtonCancel( false); ! } ! delete this; // banzai!! } |
From: <ck...@us...> - 2003-12-23 19:08:17
|
Update of /cvsroot/krusader/krusader_kde3/krusader/KViewer In directory sc8-pr-cvs1:/tmp/cvs-serv2230/krusader_kde3/krusader/KViewer Modified Files: krviewer.cpp krviewer.h Log Message: FIXED: internal editor quit without notification Index: krviewer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/krviewer.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** krviewer.cpp 26 Sep 2003 21:46:09 -0000 1.12 --- krviewer.cpp 23 Dec 2003 19:08:14 -0000 1.13 *************** *** 300,301 **** --- 300,315 ---- } + + bool KrViewer::queryClose() + { + if( !editor_part || !editor_part->isModified() ) + return true; + + switch ( KMessageBox::warningYesNo( this, i18n("The Document has been changed. Do you want to quit loosing the modifications?")) ) + { + case KMessageBox::Yes : + return true; + default: + return false; + } + } Index: krviewer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/KViewer/krviewer.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** krviewer.h 26 Sep 2003 21:46:09 -0000 1.5 --- krviewer.h 23 Dec 2003 19:08:14 -0000 1.6 *************** *** 51,54 **** --- 51,58 ---- void handleOpenURLRequest( const KURL &url, const KParts::URLArgs & ); + + protected: + virtual bool queryClose(); + private: KrViewer(QWidget *parent=0, const char *name=0); |
From: <ck...@us...> - 2003-12-23 19:08:17
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1:/tmp/cvs-serv2230/krusader_kde3 Modified Files: ChangeLog Log Message: FIXED: internal editor quit without notification Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.150 retrieving revision 1.151 diff -C2 -d -r1.150 -r1.151 *** ChangeLog 22 Dec 2003 20:32:31 -0000 1.150 --- ChangeLog 23 Dec 2003 19:08:14 -0000 1.151 *************** *** 1,4 **** --- 1,5 ---- ADDED: directory synchronizer ADDED: file splitter + FIXED: internal editor quits without notification even if the edited file was not saved FIXED: no i18n for Name, Ext, Size, Modified FIXED: obsolete QT header files |
From: <er...@us...> - 2003-12-22 23:25:33
|
Update of /cvsroot/krusader/krusader_kde3/krusader/UserMenu In directory sc8-pr-cvs1:/tmp/cvs-serv4857/krusader/UserMenu Modified Files: usermenu.cpp Log Message: add: stdout/stderr collection dialog Index: usermenu.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/UserMenu/usermenu.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** usermenu.cpp 15 Dec 2003 22:05:42 -0000 1.5 --- usermenu.cpp 22 Dec 2003 23:25:29 -0000 1.6 *************** *** 1,8 **** /*************************************************************************** ! usermenu.cpp - description ! ------------------- ! begin : Sat Dec 6 2003 ! copyright : (C) 2003 by Shie Erlich & Rafi Yanai ! email : ***************************************************************************/ --- 1,8 ---- /*************************************************************************** ! _expressionsu.cpp - description ! ------------------- ! begin : Sat Dec 6 2003 ! copyright : (C) 2003 by Shie Erlich & Rafi Yanai ! email : ***************************************************************************/ *************** *** 23,26 **** --- 23,28 ---- #include <kdebug.h> #include <kstandarddirs.h> + #include <klocale.h> + #include <qvbox.h> /** *************** *** 47,51 **** %_and% - number of folders %_fm% - filter mask (for example: *, *.cpp, *.h etc.) ! */ UMCmd UserMenu::_expressions[ NUM_EXPS ] = { --- 49,53 ---- %_and% - number of folders %_fm% - filter mask (for example: *, *.cpp, *.h etc.) ! */ UMCmd UserMenu::_expressions[ NUM_EXPS ] = { *************** *** 74,85 **** // ............... run the cmd from the shell ............. QString save = getcwd( 0, 0 ); - KShellProcess proc; //===> chdir( panelPath.local8Bit() ); // run the command in the panel's path // run in terminal ! proc.setUseShell(true); ! proc << "konsole" << "--noclose" << "-e" << cmd; ! proc.start( KProcess::DontCare ); //===> chdir( save.local8Bit() ); // chdir back } --- 76,88 ---- // ............... run the cmd from the shell ............. QString save = getcwd( 0, 0 ); //===> chdir( panelPath.local8Bit() ); // run the command in the panel's path // run in terminal ! //proc.setUseShell(true); ! //proc << "konsole" << "--noclose" << "-e" << cmd; ! //proc.start( KProcess::DontCare ); ! UserMenuProc *proc = new UserMenuProc(false, true); ! proc->start( cmd ); //===> chdir( save.local8Bit() ); // chdir back } *************** *** 178,179 **** --- 181,266 ---- } + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + UserMenuProcDlg::UserMenuProcDlg( QString caption, bool enableStderr, QWidget *parent ) : + KDialogBase( parent, 0, false, caption, KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Cancel ) { + + setButtonOKText( "Close", i18n( "Close this window" ) ); + setButtonCancelText( "Kill", i18n( "Kill the running process" ) ); + + QVBox *page = makeVBoxMainWidget(); + // do we need to separate stderr and stdout? + if ( enableStderr ) { + // create stdout + QLabel * label1 = new QLabel( i18n( "Standard Output (stdout)" ), page ); + _stdout = new QTextEdit( page ); + _stdout->setReadOnly(true); + _stdout->setMinimumWidth( fontMetrics().maxWidth() * 40 ); + // create stderr + QLabel *label2 = new QLabel( i18n( "Standard Error (stderr)" ), page ); + _stderr = new QTextEdit( page ); + _stderr->setReadOnly(true); + _stderr->setMinimumWidth( fontMetrics().maxWidth() * 40 ); + } else { + // create stdout + QLabel *label = new QLabel( i18n( "Output" ), page ); + _stdout = new QTextEdit( page ); + _stdout->setReadOnly(true); + _stdout->setMinimumWidth( fontMetrics().maxWidth() * 40 ); + } + } + + void UserMenuProcDlg::addStderr( KProcess *proc, char *buffer, int buflen ) { + _stderr->append(QString::fromLatin1( buffer, buflen )); + } + + void UserMenuProcDlg::addStdout( KProcess *proc, char *buffer, int buflen ) { + _stdout->append(QString::fromLatin1( buffer, buflen )); + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + + UserMenuProc::UserMenuProc( bool terminal, bool enableStderr ) : QObject(), _terminal( terminal ), + _enableStderr( enableStderr ), _proc( new KProcess() ) { + _proc->setUseShell( true ); + + connect( _proc, SIGNAL( processExited( KProcess* ) ), + this, SLOT( processExited( KProcess* ) ) ) ; + } + + + UserMenuProc::~UserMenuProc() { + delete _proc; + } + + bool UserMenuProc::start( QString cmdLine ) { + _proc->clearArguments(); + ( *_proc ) << cmdLine; + + // run in terminal or in custom-window + if (_terminal) { + } else { + _output = new UserMenuProcDlg( cmdLine, _enableStderr); + // connect the output to the dialog + connect( _proc, SIGNAL( receivedStderr( KProcess*, char*, int ) ), + _output, SLOT( addStderr( KProcess*, char *, int ) ) ); + connect( _proc, SIGNAL( receivedStdout( KProcess*, char*, int ) ), + _output, SLOT( addStdout( KProcess*, char *, int ) ) ); + + _output->show(); + } + return _proc->start( KProcess::NotifyOnExit, (KProcess::Communication)(KProcess::Stdout | KProcess::Stderr) ); + } + + void UserMenuProc::processExited( KProcess *proc ) { + kdWarning() << ">>>>>>>>> process done <<<<<<<<<<<" << endl; + kdWarning() << "stdout:" << endl << _stdout << endl; + kdWarning() << "stderr:" << endl << _stderr << endl; + + delete this; + } |
From: <er...@us...> - 2003-12-22 23:22:02
|
Update of /cvsroot/krusader/krusader_kde3/krusader/UserMenu In directory sc8-pr-cvs1:/tmp/cvs-serv4180/krusader/UserMenu Modified Files: usermenu.h Log Message: add: a stdout/stderr collection dialog box Index: usermenu.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/UserMenu/usermenu.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** usermenu.h 15 Dec 2003 21:01:07 -0000 1.5 --- usermenu.h 22 Dec 2003 23:21:59 -0000 1.6 *************** *** 1,8 **** /*************************************************************************** ! usermenu.h - description ! ------------------- ! begin : Sat Dec 6 2003 ! copyright : (C) 2003 by Shie Erlich & Rafi Yanai ! email : ***************************************************************************/ --- 1,8 ---- /*************************************************************************** ! usermenu.h - description ! ------------------- ! begin : Sat Dec 6 2003 ! copyright : (C) 2003 by Shie Erlich & Rafi Yanai ! email : ***************************************************************************/ *************** *** 23,26 **** --- 23,66 ---- #include <qstringlist.h> #include <kaction.h> + #include <kprocess.h> + #include <kdialogbase.h> + #include <qtextedit.h> + + class KDialogBase; + + class UserMenuProcDlg: public KDialogBase { + Q_OBJECT + public: + UserMenuProcDlg( QString caption, bool enableStderr = false, QWidget *parent = 0 ); + + protected slots: + void addStderr( KProcess *proc, char *buffer, int buflen ); + void addStdout( KProcess *proc, char *buffer, int buflen ); + + private: + QTextEdit *_stdout, *_stderr; + }; + + class UserMenuProc: public QObject { + Q_OBJECT + public: + UserMenuProc(bool terminal = true, bool enableStderr = false); + ~UserMenuProc(); + bool start( QString cmdLine ); + bool kill() { return _proc->kill( SIGINT ); } + + protected slots: + void processExited( KProcess *proc ); + + private: + bool _terminal; + bool _enableStderr; + KProcess *_proc; + QString _stdout; + QString _stderr; + UserMenuProcDlg *_output; + }; + + /////////////////////////////////////////////////////////////////////////////// class UserMenuGui: public KPopupMenu { |
From: <ck...@us...> - 2003-12-22 20:32:34
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Panel In directory sc8-pr-cvs1:/tmp/cvs-serv2331/krusader_kde3/krusader/Panel Modified Files: krdetailedview.cpp Log Message: FIXED: no i18n for Name, Ext, Size, Modified Index: krdetailedview.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/krdetailedview.cpp,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** krdetailedview.cpp 29 Nov 2003 17:06:53 -0000 1.51 --- krdetailedview.cpp 22 Dec 2003 20:32:31 -0000 1.52 *************** *** 75,85 **** ////////////////////////////////////////////////////////////////////////// ! QString KrDetailedView::ColumnName[] = { i18n( "Name" ), i18n( "Ext" ), i18n( "Type" ), ! i18n( "Size" ), i18n( "Modified" ), i18n( "Perms" ), i18n( "rwx" ), ! i18n( "Owner" ), i18n( "Group" ) }; KrDetailedView::KrDetailedView( QWidget *parent, bool left, KConfig *cfg, const char *name ) : KListView( parent, name ), KrView( cfg ), _focused( false ), _currDragItem( 0L ), _nameInKConfig( QString( "KrDetailedView" ) + QString( ( left ? "Left" : "Right" ) ) ), _left( left ) { KConfigGroupSaver grpSvr( _config, nameInKConfig() ); // setup the default sort and filter --- 75,96 ---- ////////////////////////////////////////////////////////////////////////// ! QString KrDetailedView::ColumnName[ MAX_COLUMNS ]; KrDetailedView::KrDetailedView( QWidget *parent, bool left, KConfig *cfg, const char *name ) : KListView( parent, name ), KrView( cfg ), _focused( false ), _currDragItem( 0L ), _nameInKConfig( QString( "KrDetailedView" ) + QString( ( left ? "Left" : "Right" ) ) ), _left( left ) { + + if( ColumnName[ 0 ].isEmpty() ) { + ColumnName[ 0 ] = i18n( "Name" ); + ColumnName[ 1 ] = i18n( "Ext" ); + ColumnName[ 2 ] = i18n( "Type" ); + ColumnName[ 3 ] = i18n( "Size" ); + ColumnName[ 4 ] = i18n( "Modified" ); + ColumnName[ 5 ] = i18n( "Perms" ); + ColumnName[ 6 ] = i18n( "rwx" ); + ColumnName[ 7 ] = i18n( "Owner" ); + ColumnName[ 8 ] = i18n( "Group" ); + } + KConfigGroupSaver grpSvr( _config, nameInKConfig() ); // setup the default sort and filter |
From: <ck...@us...> - 2003-12-22 20:32:34
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1:/tmp/cvs-serv2331/krusader_kde3 Modified Files: ChangeLog Log Message: FIXED: no i18n for Name, Ext, Size, Modified Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.149 retrieving revision 1.150 diff -C2 -d -r1.149 -r1.150 *** ChangeLog 21 Dec 2003 19:04:44 -0000 1.149 --- ChangeLog 22 Dec 2003 20:32:31 -0000 1.150 *************** *** 1,4 **** --- 1,5 ---- ADDED: directory synchronizer ADDED: file splitter + FIXED: no i18n for Name, Ext, Size, Modified FIXED: obsolete QT header files FIXED: crash at closing the progressbar window at packing |
From: <er...@us...> - 2003-12-22 18:46:31
|
Update of /cvsroot/krusader/krusader_kde3/doc/pics In directory sc8-pr-cvs1:/tmp/cvs-serv11894/pics Modified Files: Makefile.am Log Message: fixed: 2 pictures got lost Index: Makefile.am =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/doc/pics/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 9 Dec 2003 23:05:56 -0000 1.3 --- Makefile.am 22 Dec 2003 18:46:28 -0000 1.4 *************** *** 2,6 **** ! EXTRA_DIST = bookmanadd.png bookmanedit.png cmdline.png fnkeys.png kgadvanced.png kgarchives.png kggeneral.png kglookfeel.png kgstartup.png krusader1.png listpanel.png mainwindow.png mountman.png remoteman.png search_advanced.png search_general.png terminalEmu.png toolbar.png tabbed_browsing.png krusader_title.png install-data-local: --- 2,6 ---- ! EXTRA_DIST = bookmanadd.png bookmanedit.png cmdline.png fnkeys.png kgadvanced.png kgarchives.png kggeneral.png kglookfeel.png kgstartup.png krusader1.png listpanel.png mainwindow.png mountman.png remoteman.png search_advanced.png search_general.png terminalEmu.png toolbar.png tabbed_browsing.png krusader_title.png install-data-local: *************** *** 41,44 **** --- 41,48 ---- $(mkinstalldirs) $(kde_htmldir)/en/krusader/ $(INSTALL_DATA) $(srcdir)/toolbar.png $(kde_htmldir)/en/krusader/toolbar.png + $(mkinstalldirs) $(kde_htmldir)/en/krusader/ + $(INSTALL_DATA) $(srcdir)/krusader_title.png $(kde_htmldir)/en/krusader/krusader_title.png + $(mkinstalldirs) $(kde_htmldir)/en/krusader/ + $(INSTALL_DATA) $(srcdir)/tabbed_browsing.png $(kde_htmldir)/en/krusader/tabbed_browsing.png uninstall-local: |
From: <ck...@us...> - 2003-12-21 19:04:49
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1:/tmp/cvs-serv23462/krusader_kde3/krusader/Synchronizer Modified Files: synchronizer.cpp synchronizer.h synchronizergui.cpp synchronizergui.h Log Message: FINISHED: synchronize directories Index: synchronizer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** synchronizer.cpp 16 Dec 2003 20:20:28 -0000 1.6 --- synchronizer.cpp 21 Dec 2003 19:04:45 -0000 1.7 *************** *** 45,48 **** --- 45,49 ---- #include <kio/skipdlg.h> #include <unistd.h> + #include <qeventloop.h> #define DISPLAY_UPDATE_PERIOD 2 *************** *** 216,220 **** { qApp->processEvents(); ! usleep( 10000 ); } } --- 217,221 ---- { qApp->processEvents(); ! qApp->eventLoop()->processEvents( QEventLoop::AllEvents|QEventLoop::WaitForMore); } } *************** *** 470,473 **** --- 471,618 ---- } + void Synchronizer::operate( SynchronizerFileItem *item, + void (*executeOperation)(SynchronizerFileItem *) ) + { + executeOperation( item ); + + if( item->isDir() ) + { + QString dirName = ( item->directory() == "" ) ? + item->name() : item->directory() + "/" + item->name() ; + + item = resultList.first(); + while( item ) + { + if( item->directory() == dirName || item->directory().startsWith( dirName + "/" ) ) + executeOperation( item ); + + item = resultList.next(); + } + } + } + + void Synchronizer::excludeOperation( SynchronizerFileItem *item ) + { + item->setTask( TT_DIFFERS ); + } + + void Synchronizer::exclude( SynchronizerFileItem *item ) + { + if( !item->parent() || item->parent()->task() != TT_DELETE ) + operate( item, excludeOperation ); /* exclude only if the parent task is not DEL */ + } + + void Synchronizer::restoreOperation( SynchronizerFileItem *item ) + { + item->restoreOriginalTask(); + } + + void Synchronizer::restore( SynchronizerFileItem *item ) + { + operate( item, restoreOperation ); + + while( ( item = item->parent() ) != 0 ) /* in case of restore, the parent directories */ + { /* must be changed for being consistent */ + if( item->task() != TT_DIFFERS ) + break; + + if( item->originalTask() == TT_DELETE ) /* if the parent original task is delete */ + break; /* don't touch it */ + + item->restoreOriginalTask(); /* restore */ + } + } + + void Synchronizer::reverseDirectionOperation( SynchronizerFileItem *item ) + { + if( item->existsInRight() && item->existsInLeft() ) + { + if( item->task() == TT_COPY_TO_LEFT ) + item->setTask( TT_COPY_TO_RIGHT ); + else if( item->task() == TT_COPY_TO_RIGHT ) + item->setTask( TT_COPY_TO_LEFT ); + } + } + + void Synchronizer::reverseDirection( SynchronizerFileItem *item ) + { + operate( item, reverseDirectionOperation ); + } + + void Synchronizer::deleteLeftOperation( SynchronizerFileItem *item ) + { + if( !item->existsInRight() && item->existsInLeft() ) + item->setTask( TT_DELETE ); + } + + void Synchronizer::deleteLeft( SynchronizerFileItem *item ) + { + operate( item, deleteLeftOperation ); + } + + void Synchronizer::copyToLeftOperation( SynchronizerFileItem *item ) + { + if( item->existsInRight() ) + { + if( !item->isDir() ) + item->setTask( TT_COPY_TO_LEFT ); + else + { + if( item->existsInLeft() && item->existsInRight() ) + item->setTask( TT_EQUALS ); + else if( !item->existsInLeft() && item->existsInRight() ) + item->setTask( TT_COPY_TO_LEFT ); + } + } + } + + void Synchronizer::copyToLeft( SynchronizerFileItem *item ) + { + operate( item, copyToLeftOperation ); + + while( ( item = item->parent() ) != 0 ) + { + if( item->task() != TT_DIFFERS ) + break; + + if( item->existsInLeft() && item->existsInRight() ) + item->setTask( TT_EQUALS ); + else if( !item->existsInLeft() && item->existsInRight() ) + item->setTask( TT_COPY_TO_LEFT ); + } + } + + void Synchronizer::copyToRightOperation( SynchronizerFileItem *item ) + { + if( item->existsInLeft() ) + { + if( !item->isDir() ) + item->setTask( TT_COPY_TO_RIGHT ); + else + { + if( item->existsInLeft() && item->existsInRight() ) + item->setTask( TT_EQUALS ); + else if( item->existsInLeft() && !item->existsInRight() ) + item->setTask( TT_COPY_TO_RIGHT ); + } + } + } + + void Synchronizer::copyToRight( SynchronizerFileItem *item ) + { + operate( item, copyToRightOperation ); + + while( ( item = item->parent() ) != 0 ) + { + if( item->task() != TT_DIFFERS && item->task() != TT_DELETE ) + break; + + if( item->existsInLeft() && item->existsInRight() ) + item->setTask( TT_EQUALS ); + else if( item->existsInLeft() && !item->existsInRight() ) + item->setTask( TT_COPY_TO_RIGHT ); + } + } + bool Synchronizer::totalSizes( int * leftCopyNr, KIO::filesize_t *leftCopySize, int * rightCopyNr, KIO::filesize_t *rightCopySize, int *deleteNr, KIO::filesize_t *deletableSize ) *************** *** 760,763 **** --- 905,918 ---- paused = false; executeTask(); + } + + QString Synchronizer::leftBaseDirectory() + { + return leftBaseDir; + } + + QString Synchronizer::rightBaseDirectory() + { + return rightBaseDir; } Index: synchronizer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** synchronizer.h 16 Dec 2003 20:20:28 -0000 1.6 --- synchronizer.h 21 Dec 2003 19:04:45 -0000 1.7 *************** *** 65,68 **** --- 65,69 ---- QString m_destination; // the destination URL at rename bool m_temporary; // flag indicates temporary directory + TaskType m_originalTask; // the original task type public: *************** *** 76,80 **** m_rightDate( rightDate ),m_task( tsk ), m_isDir( isDir ), m_parent(parent), m_userData( 0 ), m_overWrite( false ), ! m_destination( QString::null ), m_temporary( tmp ) {} inline bool isMarked() {return m_marked;} --- 77,82 ---- m_rightDate( rightDate ),m_task( tsk ), m_isDir( isDir ), m_parent(parent), m_userData( 0 ), m_overWrite( false ), ! m_destination( QString::null ), m_temporary( tmp ), ! m_originalTask( tsk ) {} inline bool isMarked() {return m_marked;} *************** *** 99,102 **** --- 101,107 ---- inline bool isTemporary() {return m_temporary;} inline void setPermanent() {m_temporary = false;} + inline TaskType originalTask() {return m_originalTask;} + inline void restoreOriginalTask() {m_task = m_originalTask;} + inline void setTask( TaskType t ) {m_task = t;} }; *************** *** 120,125 **** --- 125,142 ---- void resume(); + void exclude( SynchronizerFileItem * ); + void restore( SynchronizerFileItem * ); + void reverseDirection( SynchronizerFileItem * ); + void copyToLeft( SynchronizerFileItem * ); + void copyToRight( SynchronizerFileItem * ); + void deleteLeft( SynchronizerFileItem * ); + + KURL fromPathOrURL( QString url ); + QString leftBaseDirectory(); + QString rightBaseDirectory(); static QString getTaskTypeName( TaskType taskType ); + SynchronizerFileItem *getItemAt( unsigned ndx ) {return resultList.at(ndx);} + signals: void comparedFileData( SynchronizerFileItem * ); *************** *** 159,166 **** bool markParentDirectories( SynchronizerFileItem * ); void executeTask(); - KURL fromPathOrURL( QString url ); bool compareByContent( QString, QString ); void abortContentComparing(); void setPermanent( SynchronizerFileItem * ); protected: --- 176,190 ---- bool markParentDirectories( SynchronizerFileItem * ); void executeTask(); bool compareByContent( QString, QString ); void abortContentComparing(); void setPermanent( SynchronizerFileItem * ); + void operate( SynchronizerFileItem *item, void (*)(SynchronizerFileItem *) ); + + static void excludeOperation( SynchronizerFileItem *item ); + static void restoreOperation( SynchronizerFileItem *item ); + static void reverseDirectionOperation( SynchronizerFileItem *item ); + static void copyToLeftOperation( SynchronizerFileItem *item ); + static void copyToRightOperation( SynchronizerFileItem *item ); + static void deleteLeftOperation( SynchronizerFileItem *item ); protected: Index: synchronizergui.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** synchronizergui.cpp 16 Dec 2003 16:35:03 -0000 1.6 --- synchronizergui.cpp 21 Dec 2003 19:04:45 -0000 1.7 *************** *** 33,36 **** --- 33,37 ---- #include "../defaults.h" #include "../VFS/krpermhandler.h" + #include "../KViewer/krviewer.h" #include "synchronizedialog.h" #include <qlayout.h> *************** *** 42,45 **** --- 43,49 ---- #include <time.h> #include <kmessagebox.h> + #include <kio/netaccess.h> + #include <qeventloop.h> + #include <qtooltip.h> static const char * const right_arrow_button_data[] = { *************** *** 745,749 **** SynchronizerGUI::SynchronizerGUI(QWidget* parent, QString leftDirectory, QString rightDirectory ) : ! QDialog( parent, "Krusader::SynchronizerGUI", true, 0 ), isComparing( false ), wasClosed( false ), wasSync( false ) { --- 749,753 ---- SynchronizerGUI::SynchronizerGUI(QWidget* parent, QString leftDirectory, QString rightDirectory ) : ! QDialog( parent, "Krusader::SynchronizerGUI", false, 0 ), isComparing( false ), wasClosed( false ), wasSync( false ) { *************** *** 796,799 **** --- 800,804 ---- leftUrlReq->setMode( KFile::Directory ); grid->addWidget( leftUrlReq, 1 ,0 ); + QToolTip::add( leftLocation, i18n( "The left base directory" ) ); fileFilter = new KHistoryCombo(false, compareDirs, "SynchronizerFilter"); *************** *** 804,807 **** --- 809,813 ---- fileFilter->setEditText("*"); grid->addWidget( fileFilter, 1 ,1 ); + QToolTip::add( fileFilter, i18n( "Filtering by the filename" ) ); rightLocation = new KHistoryCombo(compareDirs, "SynchronizerHistoryRight"); *************** *** 814,817 **** --- 820,824 ---- rightUrlReq->setMode( KFile::Directory ); grid->addWidget( rightUrlReq, 1 ,2 ); + QToolTip::add( rightLocation, i18n( "The right base directory" ) ); QHBox *optionBox = new QHBox( compareDirs ); *************** *** 819,833 **** --- 826,848 ---- cbSubdirs = new QCheckBox( i18n( "Recurse subdirectories" ), optionGrid, "cbSubdirs" ); cbSubdirs->setChecked( krConfig->readBoolEntry( "Recurse Subdirectories", _RecurseSubdirs ) ); + QToolTip::add( cbSubdirs, i18n( "Compares not only the base directories but their subdirectories as well" ) ); cbSymlinks = new QCheckBox( i18n( "Follow symlinks" ), optionGrid, "cbSymlinks" ); cbSymlinks->setChecked( krConfig->readBoolEntry( "Follow Symlinks", _FollowSymlinks ) ); cbSymlinks->setEnabled( cbSubdirs->isChecked() ); + QToolTip::add( cbSymlinks, i18n( "Follows the symbolic links also at comparing" ) ); cbByContent = new QCheckBox( i18n( "Compare by content" ), optionGrid, "cbByContent" ); cbByContent->setChecked( krConfig->readBoolEntry( "Compare By Content", _CompareByContent ) ); + QToolTip::add( cbByContent, i18n( "Compares the duplicate files with the same size by their content" ) ); cbIgnoreDate = new QCheckBox( i18n( "Ignore Date" ), optionGrid, "cbIgnoreDate" ); cbIgnoreDate->setChecked( krConfig->readBoolEntry( "Ignore Date", _IgnoreDate ) ); + QToolTip::add( cbIgnoreDate, i18n( "Ignores the date information at comparing (good if the files\nwere fetched from ftp, smb, archive, ... file systems)" ) ); cbAsymmetric = new QCheckBox( i18n( "Asymmetric" ), optionGrid, "cbAsymmetric" ); cbAsymmetric->setChecked( krConfig->readBoolEntry( "Asymmetric", _Asymmetric ) ); + QToolTip::add( cbAsymmetric, i18n( "Asymmetric mode. The left side is the destination, the right is the source directory.\n" + "The files existed only in the left directory will be deleted, the other differing ones\n" + "will be copied from right to left (useful at updating a directory from a file server)." ) ); cbAutoScroll = new QCheckBox( i18n( "Automatic Scrolling" ), optionGrid, "cbAutoScroll" ); cbAutoScroll->setChecked( krConfig->readBoolEntry( "Automatic Scrolling", _AutoScroll ) ); + QToolTip::add( cbAutoScroll, i18n( "Scrolls the results of comparing (slow)" ) ); /* =========================== Show options groupbox ============================= */ *************** *** 854,857 **** --- 869,873 ---- btnLeftToRight->setToggleButton( true ); btnLeftToRight->setOn( krConfig->readBoolEntry( "LeftToRight Button", _BtnLeftToRight ) ); + QToolTip::add( btnLeftToRight, i18n( "Lists the files marked to copy from left to right" ) ); showOptionsLayout->addWidget( btnLeftToRight, 0, 0); *************** *** 861,864 **** --- 877,881 ---- btnEquals->setToggleButton( true ); btnEquals->setOn( krConfig->readBoolEntry( "Equals Button", _BtnEquals ) ); + QToolTip::add( btnEquals, i18n( "Lists the files considered to be identical" ) ); showOptionsLayout->addWidget( btnEquals, 0, 1); *************** *** 868,871 **** --- 885,889 ---- btnDifferents->setToggleButton( true ); btnDifferents->setOn( krConfig->readBoolEntry( "Differents Button", _BtnDifferents ) ); + QToolTip::add( btnDifferents, i18n( "Lists the excluded files" ) ); showOptionsLayout->addWidget( btnDifferents, 0, 2); *************** *** 875,878 **** --- 893,897 ---- btnRightToLeft->setToggleButton( true ); btnRightToLeft->setOn( krConfig->readBoolEntry( "RightToLeft Button", _BtnRightToLeft ) ); + QToolTip::add( btnRightToLeft, i18n( "Lists the files marked to copy from right to left" ) ); showOptionsLayout->addWidget( btnRightToLeft, 0, 3); *************** *** 882,885 **** --- 901,905 ---- btnDeletable->setToggleButton( true ); btnDeletable->setOn( krConfig->readBoolEntry( "Deletable Button", _BtnDeletable ) ); + QToolTip::add( btnDeletable, i18n( "Lists the files marked to delete" ) ); showOptionsLayout->addWidget( btnDeletable, 0, 4); *************** *** 889,892 **** --- 909,913 ---- btnDuplicates->setToggleButton( true ); btnDuplicates->setOn( krConfig->readBoolEntry( "Duplicates Button", _BtnDuplicates ) ); + QToolTip::add( btnDuplicates, i18n( "Lists those files that exist in both side" ) ); showOptionsLayout->addWidget( btnDuplicates, 0, 5); *************** *** 896,899 **** --- 917,921 ---- btnSingles->setToggleButton( true ); btnSingles->setOn( krConfig->readBoolEntry( "Singles Button", _BtnSingles ) ); + QToolTip::add( btnSingles, i18n( "Lists those files that exist only in either side" ) ); showOptionsLayout->addWidget( btnSingles, 0, 6); *************** *** 1006,1010 **** connect( btnDuplicates, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); connect( btnSingles, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); ! exec(); } --- 1028,1038 ---- connect( btnDuplicates, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); connect( btnSingles, SIGNAL( toggled(bool) ), this, SLOT( refresh() ) ); ! show(); ! ! while( isShown() ) ! { ! qApp->processEvents(); ! qApp->eventLoop()->processEvents( QEventLoop::AllEvents|QEventLoop::WaitForMore); ! } } *************** *** 1017,1033 **** { // these are the values that will exist in the menu ! #define TODO_ID 90 ////////////////////////////////////////////////////////// if (!itemIn) return; ! // SyncViewItem *item = (SyncViewItem *)itemIn; // create the menu KPopupMenu popup; popup.insertTitle(i18n("Synchronize Directories")); ! popup.insertItem(i18n("TODO"),TODO_ID); ! popup.setItemEnabled(TODO_ID,false); int result=popup.exec(QCursor::pos()); --- 1045,1099 ---- { // these are the values that will exist in the menu ! #define EXCLUDE_ID 90 ! #define RESTORE_ID 91 ! #define COPY_TO_LEFT_ID 92 ! #define COPY_TO_RIGHT_ID 93 ! #define REVERSE_DIR_ID 94 ! #define DELETE_ID 95 ! #define VIEW_LEFT_FILE_ID 96 ! #define VIEW_RIGHT_FILE_ID 97 ! #define COMPARE_FILES_ID 98 ////////////////////////////////////////////////////////// if (!itemIn) return; ! SyncViewItem *syncItem = (SyncViewItem *)itemIn; ! if( syncItem == 0 ) ! return; ! ! SynchronizerFileItem *item = syncItem->synchronizerItemRef(); + bool isDuplicate = item->existsInLeft() && item->existsInRight(); + bool isDir = item->isDir(); + QString dirName = item->directory().isEmpty() ? "" : item->directory() + "/"; + + KURL leftURL = synchronizer.fromPathOrURL( synchronizer.leftBaseDirectory() + dirName + item->name() ); + KURL rightURL = synchronizer.fromPathOrURL( synchronizer.rightBaseDirectory() + dirName + item->name() ); + // create the menu KPopupMenu popup; popup.insertTitle(i18n("Synchronize Directories")); ! popup.insertItem(i18n("Exclude"),EXCLUDE_ID); ! popup.setItemEnabled(EXCLUDE_ID, true ); ! popup.insertItem(i18n("Restore original operation"),RESTORE_ID); ! popup.setItemEnabled(RESTORE_ID, true ); ! popup.insertItem(i18n("Reverse direction"),REVERSE_DIR_ID); ! popup.setItemEnabled(REVERSE_DIR_ID, true ); ! popup.insertItem(i18n("Copy from right to left"),COPY_TO_LEFT_ID); ! popup.setItemEnabled(COPY_TO_LEFT_ID, true ); ! popup.insertItem(i18n("Copy from left to right"),COPY_TO_RIGHT_ID); ! popup.setItemEnabled(COPY_TO_RIGHT_ID, true ); ! popup.insertItem(i18n("Delete (left single)"),DELETE_ID); ! popup.setItemEnabled(DELETE_ID, true ); ! ! popup.insertSeparator(); ! ! popup.insertItem(i18n("View left file"),VIEW_LEFT_FILE_ID); ! popup.setItemEnabled(VIEW_LEFT_FILE_ID, !isDir && item->existsInLeft() ); ! popup.insertItem(i18n("View right file"),VIEW_RIGHT_FILE_ID); ! popup.setItemEnabled(VIEW_RIGHT_FILE_ID, !isDir && item->existsInRight() ); ! popup.insertItem(i18n("Compare Files"),COMPARE_FILES_ID); ! popup.setItemEnabled(COMPARE_FILES_ID, !isDir && isDuplicate ); int result=popup.exec(QCursor::pos()); *************** *** 1036,1042 **** switch (result) { ! case -1 : return; // the user clicked outside of the menu ! case TODO_ID : break; } } --- 1102,1158 ---- switch (result) { ! case EXCLUDE_ID: ! case RESTORE_ID: ! case COPY_TO_LEFT_ID: ! case COPY_TO_RIGHT_ID: ! case REVERSE_DIR_ID: ! case DELETE_ID: ! { ! unsigned ndx = 0; ! SynchronizerFileItem *currentItem; ! ! while( ( currentItem = synchronizer.getItemAt( ndx++ ) ) != 0 ) ! { ! SyncViewItem *viewItem = (SyncViewItem *)currentItem->userData(); ! ! if( !viewItem || !viewItem->isSelected() || !viewItem->isVisible() ) ! continue; ! ! switch( result ) ! { ! case EXCLUDE_ID: ! synchronizer.exclude( viewItem->synchronizerItemRef() ); ! break; ! case RESTORE_ID: ! synchronizer.restore( viewItem->synchronizerItemRef() ); ! break; ! case REVERSE_DIR_ID: ! synchronizer.reverseDirection( viewItem->synchronizerItemRef() ); ! break; ! case COPY_TO_LEFT_ID: ! synchronizer.copyToLeft( viewItem->synchronizerItemRef() ); ! break; ! case COPY_TO_RIGHT_ID: ! synchronizer.copyToRight( viewItem->synchronizerItemRef() ); ! break; ! case DELETE_ID: ! synchronizer.deleteLeft( viewItem->synchronizerItemRef() ); ! break; ! } ! } ! ! refresh(); ! } break; + case VIEW_LEFT_FILE_ID: + KrViewer::view( leftURL ); // view the file + break; + case VIEW_RIGHT_FILE_ID: + KrViewer::view( rightURL ); // view the file + break; + case COMPARE_FILES_ID: + rightMenuCompareFiles( leftURL, rightURL ); + break; + case -1 : return; // the user clicked outside of the menu } } *************** *** 1176,1180 **** --- 1292,1299 ---- SyncViewItem *listItem = (SyncViewItem *)item->userData(); if( listItem ) + { listItem->setVisible( item->isMarked() ); + listItem->setText( 3, Synchronizer::getTaskTypeName( item->task() ) ); + } } *************** *** 1226,1229 **** --- 1345,1349 ---- if( !isComparing ) { + syncList->clearSelection(); setMarkFlags(); btnCompareDirs->setEnabled( false ); *************** *** 1246,1250 **** &deleteNr, &deleteSize ) ) { ! KMessageBox::sorry(0, i18n("The directories are identical!")); return; } --- 1366,1370 ---- &deleteNr, &deleteSize ) ) { ! KMessageBox::sorry(0, i18n("Synchronizer has nothing to do!")); return; } *************** *** 1265,1267 **** --- 1385,1426 ---- statusLabel->setText( info ); qApp->processEvents(); + } + + void SynchronizerGUI::rightMenuCompareFiles( KURL url1, KURL url2 ) + { + QString diffProg; + QStringList lst = Krusader::supportedTools(); + if (lst.contains("DIFF")) diffProg=lst[lst.findIndex("DIFF") + 1]; + else { + KMessageBox::error(0,i18n("Krusader can't find any of the supported diff-frontends. Please install one to your path. Hint: Krusader supports kdiff and xxdiff.")); + return; + } + + // else implied: all ok, let's call kdiff + // but if one of the files isn't local, download them first + + QString tmp1 = QString::null, tmp2 = QString::null; + if (!url1.isLocalFile()) { + if( !KIO::NetAccess::download( url1, tmp1 ) ){ + KMessageBox::sorry(krApp,i18n("Krusader is unable to download: ")+url1.path()); + return; + } + } else tmp1 = url1.path(); + if (!url2.isLocalFile()) { + if( !KIO::NetAccess::download( url2, tmp2 ) ){ + KMessageBox::sorry(krApp,i18n("Krusader is unable to download: ")+url2.path()); + return; + } + } else tmp2 = url2.path(); + + KProcess p; + p << diffProg << tmp1 << tmp2; + if (!p.start(KProcess::DontCare)) + KMessageBox::error(0,i18n("Error executing ")+diffProg+" !"); + else + p.detach(); + sleep(3); + + if( tmp1 != url1.path() ) KIO::NetAccess::removeTempFile( tmp1 ); + if( tmp2 != url2.path() ) KIO::NetAccess::removeTempFile( tmp2 ); } Index: synchronizergui.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizergui.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** synchronizergui.h 16 Dec 2003 16:35:03 -0000 1.4 --- synchronizergui.h 21 Dec 2003 19:04:45 -0000 1.5 *************** *** 109,113 **** void disableMarkButtons(); void enableMarkButtons(); ! protected: KHistoryCombo *leftLocation; --- 109,115 ---- void disableMarkButtons(); void enableMarkButtons(); ! ! void rightMenuCompareFiles( KURL url1, KURL url2 ); ! protected: KHistoryCombo *leftLocation; |
From: <ck...@us...> - 2003-12-21 19:04:47
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1:/tmp/cvs-serv23462/krusader_kde3 Modified Files: ChangeLog Log Message: FINISHED: synchronize directories Index: ChangeLog =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/ChangeLog,v retrieving revision 1.148 retrieving revision 1.149 diff -C2 -d -r1.148 -r1.149 *** ChangeLog 15 Dec 2003 18:03:34 -0000 1.148 --- ChangeLog 21 Dec 2003 19:04:44 -0000 1.149 *************** *** 1,3 **** ! ADDED: directory synchronizer beta (no right click) ADDED: file splitter FIXED: obsolete QT header files --- 1,3 ---- ! ADDED: directory synchronizer ADDED: file splitter FIXED: obsolete QT header files |
Update of /cvsroot/krusader/krusader_kde3/krusader/Splitter In directory sc8-pr-cvs1:/tmp/cvs-serv1782/krusader_kde3/krusader/Splitter Modified Files: Makefile.am combiner.cpp combiner.h splitter.cpp splitter.h Added Files: crc32.cpp crc32.h Log Message: FIXED: 100% compatibility with TC crc files + combining files with split -b --- NEW FILE: crc32.cpp --- /*************************************************************************** crc32.cpp - description ------------------- copyright : (C) 2003 by Csaba Karai e-mail : kru...@us... web site : http://krusader.sourceforge.net --------------------------------------------------------------------------- Description *************************************************************************** A db dD d8888b. db db .d8888. .d8b. d8888b. d88888b d8888b. 88 ,8P' 88 `8D 88 88 88' YP d8' `8b 88 `8D 88' 88 `8D 88,8P 88oobY' 88 88 `8bo. 88ooo88 88 88 88ooooo 88oobY' 88`8b 88`8b 88 88 `Y8b. 88~~~88 88 88 88~~~~~ 88`8b 88 `88. 88 `88. 88b d88 db 8D 88 88 88 .8D 88. 88 `88. YP YD 88 YD ~Y8888P' `8888Y' YP YP Y8888D' Y88888P 88 YD S o u r c e F i l e *************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "crc32.h" #define MASK1 0x00FFFFFF #define MASK2 0xFFFFFFFF #define POLYNOMIAL 0xEDB88320 bool CRC32::crc_initialized = false; unsigned long CRC32::crc_table[ 256 ]; CRC32::CRC32( unsigned long initialValue ) { crc_accum = initialValue; if( !crc_initialized ) { for( int byte = 0; byte != 256; byte++ ) { unsigned long data = byte; for( int i = 8; i > 0 ; --i ) data = data & 1 ? ( data >> 1 ) ^ POLYNOMIAL : data >> 1; crc_table[ byte ] = data; } crc_initialized = true; } } void CRC32::update( unsigned char *buffer, int bufferLen ) { while( bufferLen-- > 0 ) crc_accum = ( (crc_accum >> 8) & MASK1 ) ^ crc_table[ (crc_accum & 0xff) ^ *buffer++ ]; } unsigned long CRC32::result() { return ( ~crc_accum ) & MASK2; } --- NEW FILE: crc32.h --- /*************************************************************************** crc32.h - description ------------------- copyright : (C) 2003 by Csaba Karai e-mail : kru...@us... web site : http://krusader.sourceforge.net --------------------------------------------------------------------------- Description *************************************************************************** A db dD d8888b. db db .d8888. .d8b. d8888b. d88888b d8888b. 88 ,8P' 88 `8D 88 88 88' YP d8' `8b 88 `8D 88' 88 `8D 88,8P 88oobY' 88 88 `8bo. 88ooo88 88 88 88ooooo 88oobY' 88`8b 88`8b 88 88 `Y8b. 88~~~88 88 88 88~~~~~ 88`8b 88 `88. 88 `88. 88b d88 db 8D 88 88 88 .8D 88. 88 `88. YP YD 88 YD ~Y8888P' `8888Y' YP YP Y8888D' Y88888P 88 YD H e a d e r F i l e *************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef __CRC32_H__ #define __CRC32_H__ class CRC32 { private: unsigned long crc_accum; static unsigned long crc_table[ 256 ]; static bool crc_initialized; public: CRC32( unsigned long initialValue = (unsigned long)-1 ); void update( unsigned char *buffer, int bufferLen ); unsigned long result(); }; #endif /* __CRC32_H__ */ Index: Makefile.am =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile.am 29 Nov 2003 11:09:24 -0000 1.1 --- Makefile.am 18 Dec 2003 23:05:40 -0000 1.2 *************** *** 6,13 **** libSplitter_a_METASOURCES = AUTO ! libSplitter_a_SOURCES = splittergui.cpp splitter.cpp combiner.cpp ! EXTRA_DIST = combiner.cpp combiner.h splitter.cpp splitter.h splittergui.cpp splittergui.h ####### kdevelop will overwrite this part!!! (end)############ --- 6,13 ---- libSplitter_a_METASOURCES = AUTO ! libSplitter_a_SOURCES = crc32.cpp splittergui.cpp splitter.cpp combiner.cpp ! EXTRA_DIST = combiner.cpp combiner.h splitter.cpp splitter.h splittergui.cpp splittergui.h crc32.cpp crc32.h ####### kdevelop will overwrite this part!!! (end)############ Index: combiner.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/combiner.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** combiner.cpp 12 Dec 2003 20:44:37 -0000 1.2 --- combiner.cpp 18 Dec 2003 23:05:40 -0000 1.3 *************** *** 36,43 **** #include <qfileinfo.h> ! Combiner::Combiner( QWidget* parent, QString fileNameIn, QString destinationDirIn ) : QProgressDialog( parent, "Krusader::Combiner", true, 0 ), hasValidSplitFile( false ), fileCounter ( 0 ), permissions( -1 ), receivedSize( 0 ), ! combineReadJob( 0 ), combineWriteJob( 0 ) { fileName = fileNameIn; --- 36,43 ---- #include <qfileinfo.h> ! Combiner::Combiner( QWidget* parent, QString fileNameIn, QString destinationDirIn, bool unixNamingIn ) : QProgressDialog( parent, "Krusader::Combiner", true, 0 ), hasValidSplitFile( false ), fileCounter ( 0 ), permissions( -1 ), receivedSize( 0 ), ! combineReadJob( 0 ), combineWriteJob( 0 ), unixNaming( unixNamingIn ), readFileName( QString::null ) { fileName = fileNameIn; *************** *** 47,52 **** destinationDir += "/"; ! md5Context = new KMD5( "" ); ! md5Context->reset(); splitFile = ""; --- 47,51 ---- destinationDir += "/"; ! crcContext = new CRC32(); splitFile = ""; *************** *** 60,64 **** { combineAbortJobs(); ! delete md5Context; } --- 59,63 ---- { combineAbortJobs(); ! delete crcContext; } *************** *** 68,73 **** setLabelText( i18n("Combining the file %1...").arg( fileName )); ! /* check whether the .spl file exists */ ! splURL = KURL::fromPathOrURL( fileName + ".spl" ); KFileItem file(KFileItem::Unknown, KFileItem::Unknown, splURL ); file.refresh(); --- 67,72 ---- setLabelText( i18n("Combining the file %1...").arg( fileName )); ! /* check whether the .crc file exists */ ! splURL = KURL::fromPathOrURL( fileName + ".crc" ); KFileItem file(KFileItem::Unknown, KFileItem::Unknown, splURL ); file.refresh(); *************** *** 75,79 **** if( !file.isReadable() ) { ! int ret = KMessageBox::questionYesNo(0, i18n("The SPL information file (%1) is missing!\n" "Validity checking is impossible without it. Continue combining?").arg( splURL.path() ) ); --- 74,78 ---- if( !file.isReadable() ) { ! int ret = KMessageBox::questionYesNo(0, i18n("The CRC information file (%1) is missing!\n" "Validity checking is impossible without it. Continue combining?").arg( splURL.path() ) ); *************** *** 110,130 **** combineReadJob = 0; QString error; ! if( job->error() ) ! error = i18n("Error at reading the split file (%1)!").arg( splURL.path() ); else { QStringList splitFileContent = QStringList::split( '\n', splitFile ); ! if( splitFileContent.count() != 4 || splitFileContent[0] != "[Krusader splitfile]" || ! !splitFileContent[1].startsWith("filename=") || !splitFileContent[2].startsWith("size=") || ! !splitFileContent[3].startsWith("md5sum=") ) ! error = i18n("Not a valid Krusader splitfile!"); else { hasValidSplitFile = true; ! expectedFileName = splitFileContent[1].mid( 9 ); ! expectedMd5Sum = splitFileContent[3].mid( 7 ); ! QString size = splitFileContent[2].mid( 5 ); sscanf( size.ascii(), "%llu", &expectedSize ); } --- 109,130 ---- combineReadJob = 0; QString error; ! if( job->error() ) ! error = i18n("Error at reading the CRC file (%1)!").arg( splURL.path() ); else { QStringList splitFileContent = QStringList::split( '\n', splitFile ); ! if( splitFileContent.count() != 3 || !splitFileContent[0].startsWith("filename=") || ! !splitFileContent[1].startsWith("size=") || ! !splitFileContent[2].startsWith("crc32=") ) ! error = i18n("Not a valid CRC file!"); else { hasValidSplitFile = true; ! expectedFileName = splitFileContent[0].mid( 9 ); ! expectedCrcSum = splitFileContent[2].mid( 6 ).rightJustify( 8, '0' ); ! ! QString size = splitFileContent[1].mid( 5 ); sscanf( size.ascii(), "%llu", &expectedSize ); } *************** *** 134,138 **** { int ret = KMessageBox::questionYesNo( 0, error+ "\n" + ! i18n("Validity checking is impossible without a good spl file. Continue combining?") ); if( ret == KMessageBox::No ) { --- 134,138 ---- { int ret = KMessageBox::questionYesNo( 0, error+ "\n" + ! i18n("Validity checking is impossible without a good CRC file. Continue combining?") ); if( ret == KMessageBox::No ) { *************** *** 146,153 **** void Combiner::openNextFile() ! { ! QString index( "%1" ); /* determining the filename */ ! index = index.arg(++fileCounter).rightJustify( 3, '0' ); ! QString readFileName = fileName + "." + index; readURL = KURL::fromPathOrURL( readFileName ); --- 146,177 ---- void Combiner::openNextFile() ! { ! if( unixNaming ) ! { ! if( readFileName.isNull() ) ! readFileName = fileName; ! else ! { ! int pos = readFileName.length()-1; ! QChar ch; ! ! do ! { ! ch = readFileName.at( pos ).latin1() + 1; ! if( ch == QChar( 'Z' + 1 ) ) ! ch = 'A'; ! if( ch == QChar( 'z' + 1 ) ) ! ch = 'a'; ! readFileName[ pos ] = ch; ! pos--; ! } while( pos >=0 && ch.upper() == QChar( 'A' ) ); ! } ! } ! else ! { ! QString index( "%1" ); /* determining the filename */ ! index = index.arg(++fileCounter).rightJustify( 3, '0' ); ! readFileName = fileName + "." + index; ! } readURL = KURL::fromPathOrURL( readFileName ); *************** *** 170,175 **** if( byteArray.size() == 0 ) return; ! ! md5Context->update( byteArray ); transferArray = byteArray.copy(); --- 194,199 ---- if( byteArray.size() == 0 ) return; ! ! crcContext->update( (unsigned char *)byteArray.data(), byteArray.size() ); transferArray = byteArray.copy(); *************** *** 179,182 **** --- 203,211 ---- { writeURL = KURL::fromPathOrURL(destinationDir + KURL::fromPathOrURL( fileName ).fileName() ); + if( hasValidSplitFile ) + writeURL.setFileName( expectedFileName ); + else if( unixNaming ) + writeURL.setFileName( KURL::fromPathOrURL( fileName ).fileName() + ".out" ); + combineWriteJob = KIO::put( writeURL, permissions, true, false, false ); *************** *** 210,223 **** emit reject(); return; ! } ! if( hasValidSplitFile ) { if( receivedSize != expectedSize ) error = i18n("Incorrect filesize! The file might have been corrupted!"); ! else if( KURL::fromPathOrURL( fileName ).fileName() != expectedFileName ) ! error = i18n("Incorrect filename! The file might have been corrupted!"); ! else if ( QString( md5Context->hexDigest() ) != expectedMd5Sum ) ! error = i18n("Incorrect file digest! The file might have been corrupted!"); } return; --- 239,253 ---- emit reject(); return; ! } ! if( hasValidSplitFile ) { + QString crcResult = QString( "%1" ).arg( crcContext->result(), 0, 16 ).upper().stripWhiteSpace() + .rightJustify(8, '0'); + if( receivedSize != expectedSize ) error = i18n("Incorrect filesize! The file might have been corrupted!"); ! else if ( crcResult != expectedCrcSum.upper().stripWhiteSpace() ) ! error = i18n("Incorrect CRC checksum! The file might have been corrupted!"); } return; Index: combiner.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/combiner.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** combiner.h 29 Nov 2003 09:09:08 -0000 1.1 --- combiner.h 18 Dec 2003 23:05:40 -0000 1.2 *************** *** 32,40 **** #define __COMBINER_H__ #include <qstring.h> #include <qprogressdialog.h> #include <kurl.h> #include <kio/jobclasses.h> - #include <kmdcodec.h> class Combiner : public QProgressDialog --- 32,40 ---- #define __COMBINER_H__ + #include "crc32.h" #include <qstring.h> #include <qprogressdialog.h> #include <kurl.h> #include <kio/jobclasses.h> class Combiner : public QProgressDialog *************** *** 49,53 **** QString fileName; QString destinationDir; ! KMD5 *md5Context; QByteArray transferArray; --- 49,53 ---- QString fileName; QString destinationDir; ! CRC32 *crcContext; QByteArray transferArray; *************** *** 59,63 **** QString expectedFileName; KIO::filesize_t expectedSize; ! QString expectedMd5Sum; int fileCounter; --- 59,63 ---- QString expectedFileName; KIO::filesize_t expectedSize; ! QString expectedCrcSum; int fileCounter; *************** *** 68,73 **** KIO::TransferJob *combineWriteJob; public: ! Combiner( QWidget* parent, QString fileNameIn, QString destinationDirIn ); ~Combiner(); --- 68,76 ---- KIO::TransferJob *combineWriteJob; + bool unixNaming; + QString readFileName; + public: ! Combiner( QWidget* parent, QString fileNameIn, QString destinationDirIn, bool unixNamingIn=false ); ~Combiner(); Index: splitter.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/splitter.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** splitter.cpp 29 Nov 2003 09:09:08 -0000 1.1 --- splitter.cpp 18 Dec 2003 23:05:40 -0000 1.2 *************** *** 46,51 **** destinationDir += "/"; ! md5Context = new KMD5( "" ); ! md5Context->reset(); setTotalSteps( 100 ); --- 46,50 ---- destinationDir += "/"; ! crcContext = new CRC32(); setTotalSteps( 100 ); *************** *** 57,61 **** { splitAbortJobs(); ! delete md5Context; } --- 56,60 ---- { splitAbortJobs(); ! delete crcContext; } *************** *** 101,105 **** return; ! md5Context->update( byteArray ); fileSize += byteArray.size(); --- 100,104 ---- return; ! crcContext->update( (unsigned char *)byteArray.data(), byteArray.size() ); fileSize += byteArray.size(); *************** *** 130,138 **** } ! char buf[50]; /* creating the content of the split information file */ ! sprintf(buf,"%llu",fileSize); ! splitFile = QString( "[Krusader splitfile]\nfilename=" ) + fileName.fileName() + ! QString( "\nsize=%1" ).arg( buf )+ "\nmd5sum="+ QString( md5Context->hexDigest() )+"\n"; } --- 129,138 ---- } ! QString crcResult = QString( "%1" ).arg( crcContext->result(), 0, 16 ).upper().stripWhiteSpace() ! .rightJustify(8, '0'); ! splitFile = QString( "filename=%1\n" ).arg( fileName.fileName() )+ ! QString( "size=%1\n" ) .arg( KIO::number( fileSize ) )+ ! QString( "crc32=%1\n" ) .arg( crcResult ); } *************** *** 208,212 **** { /* writing the split information file out */ ! writeURL = KURL::fromPathOrURL( destinationDir + fileName.fileName() + ".spl" ); splitWriteJob = KIO::put( writeURL, permissions, true, false, false ); connect(splitWriteJob, SIGNAL(dataReq(KIO::Job *, QByteArray &)), --- 208,212 ---- { /* writing the split information file out */ ! writeURL = KURL::fromPathOrURL( destinationDir + fileName.fileName() + ".crc" ); splitWriteJob = KIO::put( writeURL, permissions, true, false, false ); connect(splitWriteJob, SIGNAL(dataReq(KIO::Job *, QByteArray &)), Index: splitter.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Splitter/splitter.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** splitter.h 29 Nov 2003 09:09:08 -0000 1.1 --- splitter.h 18 Dec 2003 23:05:40 -0000 1.2 *************** *** 32,40 **** #define __SPLITTER_H__ #include <qstring.h> #include <qprogressdialog.h> #include <kurl.h> #include <kio/jobclasses.h> - #include <kmdcodec.h> class Splitter : public QProgressDialog --- 32,40 ---- #define __SPLITTER_H__ + #include "crc32.h" #include <qstring.h> #include <qprogressdialog.h> #include <kurl.h> #include <kio/jobclasses.h> class Splitter : public QProgressDialog *************** *** 55,59 **** KIO::filesize_t outputFileSize; bool noValidWriteJob; ! KMD5 *md5Context; QByteArray transferArray; --- 55,59 ---- KIO::filesize_t outputFileSize; bool noValidWriteJob; ! CRC32 *crcContext; QByteArray transferArray; |
From: <ck...@us...> - 2003-12-18 23:05:43
|
Update of /cvsroot/krusader/krusader_kde3/krusader In directory sc8-pr-cvs1:/tmp/cvs-serv1782/krusader_kde3/krusader Modified Files: krslots.cpp Log Message: FIXED: 100% compatibility with TC crc files + combining files with split -b Index: krslots.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/krslots.cpp,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** krslots.cpp 15 Dec 2003 21:01:54 -0000 1.37 --- krslots.cpp 18 Dec 2003 23:05:40 -0000 1.38 *************** *** 538,543 **** void KRslots::slotCombine() { ! QStringList list; ! QString fileName; ((ListPanel*)ACTIVE_PANEL)->getSelectedNames(&list); --- 538,547 ---- void KRslots::slotCombine() { ! QStringList list; ! QString fileName; ! bool unixStyle = false; ! bool windowsStyle = false; ! QString commonName = QString::null; ! unsigned int commonLength = 0; ((ListPanel*)ACTIVE_PANEL)->getSelectedNames(&list); *************** *** 548,551 **** --- 552,556 ---- } + /* checking splitter names */ for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { *************** *** 559,582 **** } ! int extPos = name.findRev( '.' ); ! QString ext = name.mid( extPos + 1 ); ! bool isExtInt; ! ext.toInt( &isExtInt, 10 ); ! if( extPos < 1 || ext.isEmpty() || ( ext != "spl" && !isExtInt ) ) ! { ! KMessageBox::error(0,i18n("Not a splitted file %1!").arg( name )); ! return; ! } ! name.truncate( extPos ); ! if( fileName.isEmpty() ) ! fileName = name; ! else if( fileName != name ) { ! KMessageBox::error(0,i18n("Select only one splitted file!")); ! return; } } --- 564,645 ---- } ! if( !unixStyle ) ! { ! int extPos = name.findRev( '.' ); ! QString ext = name.mid( extPos + 1 ); ! bool isExtInt; ! ext.toInt( &isExtInt, 10 ); ! if( extPos < 1 || ext.isEmpty() || ( ext != "crc" && !isExtInt ) ) ! { ! if( windowsStyle ) ! { ! KMessageBox::error(0,i18n("Not a splitted file %1!").arg( name )); ! return; ! } ! unixStyle = true; ! } ! else ! { ! name.truncate( extPos ); ! if( ext != "crc" ) ! windowsStyle = true; ! if( fileName.isEmpty() ) ! fileName = name; ! else if( fileName != name ) ! { ! KMessageBox::error(0,i18n("Select only one splitted file!")); ! return; ! } ! } ! } ! ! if( unixStyle ) { ! bool error = true; ! ! do ! { ! QString shortName = *it; ! QChar lastChar = shortName.at( shortName.length()-1 ); ! ! if( lastChar.isLetter() ) ! { ! char fillLetter = ( lastChar.upper() == lastChar ) ? 'A' : 'a'; ! ! if( commonName.isNull() ) ! { ! commonLength = shortName.length(); ! commonName = shortName; ! ! while ( commonName.length() ) ! { ! QString shorter = commonName.left( commonName.length() - 1 ); ! QString testFile = shorter.leftJustify( commonLength, fillLetter ); ! ! if( ACTIVE_FUNC->files()->vfs_search( testFile ) == 0 ) ! break; ! else ! { ! commonName = shorter; ! fileName = ACTIVE_FUNC->files()->vfs_getOrigin().path(1) + testFile; ! } ! } ! ! error = ( commonName == shortName ); ! } ! else if( commonLength == shortName.length() && shortName.startsWith( commonName ) ) ! error = false; ! } ! }while ( false ); ! ! if( error ) ! { ! KMessageBox::error(0,i18n("Not a splitted file %1!").arg( name )); ! return; ! } } } *************** *** 591,595 **** bool combineToOtherPanel = ( dest == ACTIVE_PANEL->otherPanel->virtualPath ); ! Combiner combine( MAIN_VIEW, fileName, dest ); combine.combine(); --- 654,658 ---- bool combineToOtherPanel = ( dest == ACTIVE_PANEL->otherPanel->virtualPath ); ! Combiner combine( MAIN_VIEW, fileName, dest, unixStyle ); combine.combine(); |
From: <ck...@us...> - 2003-12-18 23:05:43
|
Update of /cvsroot/krusader/krusader_kde3 In directory sc8-pr-cvs1:/tmp/cvs-serv1782/krusader_kde3 Modified Files: krusader.kdevprj Log Message: FIXED: 100% compatibility with TC crc files + combining files with split -b Index: krusader.kdevprj =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader.kdevprj,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** krusader.kdevprj 13 Dec 2003 23:19:58 -0000 1.43 --- krusader.kdevprj 18 Dec 2003 23:05:40 -0000 1.44 *************** *** 948,952 **** [krusader/Splitter/Makefile.am] ! files=krusader/Splitter/combiner.cpp,krusader/Splitter/combiner.h,krusader/Splitter/splitter.cpp,krusader/Splitter/splitter.h,krusader/Splitter/splittergui.cpp,krusader/Splitter/splittergui.h type=static_library --- 948,952 ---- [krusader/Splitter/Makefile.am] ! files=krusader/Splitter/combiner.cpp,krusader/Splitter/combiner.h,krusader/Splitter/splitter.cpp,krusader/Splitter/splitter.h,krusader/Splitter/splittergui.cpp,krusader/Splitter/splittergui.h,krusader/Splitter/crc32.cpp,krusader/Splitter/crc32.h type=static_library *************** *** 958,961 **** --- 958,973 ---- [krusader/Splitter/combiner.h] + dist=true + install=false + install_location= + type=HEADER + + [krusader/Splitter/crc32.cpp] + dist=true + install=false + install_location= + type=SOURCE + + [krusader/Splitter/crc32.h] dist=true install=false |
From: <ck...@us...> - 2003-12-16 20:20:31
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1:/tmp/cvs-serv20001/krusader_kde3/krusader/Synchronizer Modified Files: synchronizer.cpp synchronizer.h Log Message: FIXED: file filtering bug Index: synchronizer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** synchronizer.cpp 16 Dec 2003 17:15:03 -0000 1.5 --- synchronizer.cpp 16 Dec 2003 20:20:28 -0000 1.6 *************** *** 72,76 **** scannedDirs = fileCount = 0; ! compareDirectory( 0, leftBaseDir = leftURL, rightBaseDir = rightURL, "" ); --- 72,76 ---- scannedDirs = fileCount = 0; ! compareDirectory( 0, leftBaseDir = leftURL, rightBaseDir = rightURL, "" ); *************** *** 99,103 **** if( !dir.isEmpty() ) ! parent = addDuplicateItem( parent, addName, addDir, 0, 0, addLTime, addRTime, true ); /* walking through in the left directory */ --- 99,103 ---- if( !dir.isEmpty() ) ! parent = addDuplicateItem( parent, addName, addDir, 0, 0, addLTime, addRTime, true, !checkName( addName ) ); /* walking through in the left directory */ *************** *** 173,177 **** } } ! delete left_directory; delete right_directory; --- 173,180 ---- } } ! ! if( parent && parent->isTemporary() ) ! delete parent; ! delete left_directory; delete right_directory; *************** *** 239,253 **** QString dir, bool existsLeft, bool existsRight, KIO::filesize_t leftSize, KIO::filesize_t rightSize, ! time_t leftDate, time_t rightDate, TaskType tsk, bool isDir ) { bool marked = autoScroll ? isMarked( tsk, existsLeft && existsRight ) : false; SynchronizerFileItem *item = new SynchronizerFileItem( file_name, dir, marked, ! existsLeft, existsRight, leftSize, rightSize, leftDate, rightDate, tsk, isDir, parent ); - resultList.append( item ); if( marked ) { ! if( markParentDirectories( item ) ) { int oldFileCount = fileCount; --- 242,257 ---- QString dir, bool existsLeft, bool existsRight, KIO::filesize_t leftSize, KIO::filesize_t rightSize, ! time_t leftDate, time_t rightDate, TaskType tsk, ! bool isDir, bool isTemp ) { bool marked = autoScroll ? isMarked( tsk, existsLeft && existsRight ) : false; SynchronizerFileItem *item = new SynchronizerFileItem( file_name, dir, marked, ! existsLeft, existsRight, leftSize, rightSize, leftDate, rightDate, tsk, isDir, ! isTemp, parent ); if( marked ) { ! if( markParentDirectories( item ) && autoScroll ) { int oldFileCount = fileCount; *************** *** 258,280 **** } ! emit comparedFileData( item ); ! ! if( marked && (displayUpdateCount++ % DISPLAY_UPDATE_PERIOD == (DISPLAY_UPDATE_PERIOD-1) ) ) ! qApp->processEvents(); return item; } SynchronizerFileItem * Synchronizer::addLeftOnlyItem( SynchronizerFileItem *parent, QString file_name, ! QString dir, KIO::filesize_t size, time_t date, bool isDir ) { return addItem( parent, file_name, dir, true, false, size, 0, date, 0, ! asymmetric ? TT_DELETE : TT_COPY_TO_RIGHT, isDir ); } SynchronizerFileItem * Synchronizer::addRightOnlyItem( SynchronizerFileItem *parent, QString file_name, ! QString dir, KIO::filesize_t size, time_t date, bool isDir ) { ! return addItem( parent, file_name, dir, false, true, 0, size, 0, date, TT_COPY_TO_LEFT, isDir ); } --- 262,301 ---- } ! if( !isTemp ) ! { ! while( parent && parent->isTemporary() ) ! setPermanent( parent ); ! ! resultList.append( item ); ! emit comparedFileData( item ); ! ! if( marked && (displayUpdateCount++ % DISPLAY_UPDATE_PERIOD == (DISPLAY_UPDATE_PERIOD-1) ) ) ! qApp->processEvents(); ! } return item; } + void Synchronizer::setPermanent( SynchronizerFileItem *item ) + { + if( item->parent() && item->parent()->isTemporary() ) + setPermanent( item->parent() ); + + item->setPermanent(); + resultList.append( item ); + emit comparedFileData( item ); + } + SynchronizerFileItem * Synchronizer::addLeftOnlyItem( SynchronizerFileItem *parent, QString file_name, ! QString dir, KIO::filesize_t size, time_t date, bool isDir, bool isTemp ) { return addItem( parent, file_name, dir, true, false, size, 0, date, 0, ! asymmetric ? TT_DELETE : TT_COPY_TO_RIGHT, isDir, isTemp ); } SynchronizerFileItem * Synchronizer::addRightOnlyItem( SynchronizerFileItem *parent, QString file_name, ! QString dir, KIO::filesize_t size, time_t date, bool isDir, bool isTemp ) { ! return addItem( parent, file_name, dir, false, true, 0, size, 0, date, TT_COPY_TO_LEFT, isDir, isTemp ); } *************** *** 282,286 **** QString dir, KIO::filesize_t leftSize, KIO::filesize_t rightSize, time_t leftDate, time_t rightDate, ! bool isDir ) { TaskType task; --- 303,307 ---- QString dir, KIO::filesize_t leftSize, KIO::filesize_t rightSize, time_t leftDate, time_t rightDate, ! bool isDir, bool isTemp ) { TaskType task; *************** *** 310,314 **** }while( false ); ! return addItem( parent, file_name, dir, true, true, leftSize, rightSize, leftDate, rightDate, task, isDir ); } --- 331,335 ---- }while( false ); ! return addItem( parent, file_name, dir, true, true, leftSize, rightSize, leftDate, rightDate, task, isDir, isTemp ); } *************** *** 327,333 **** if( isLeft ) ! parent = addLeftOnlyItem( parent, name, dir, 0, date, true ); else ! parent = addRightOnlyItem( parent, name, dir, 0, date, true ); /* walking through the directory files */ --- 348,354 ---- if( isLeft ) ! parent = addLeftOnlyItem( parent, name, dir, 0, date, true, !checkName( name ) ); else ! parent = addRightOnlyItem( parent, name, dir, 0, date, true, !checkName( name ) ); /* walking through the directory files */ *************** *** 358,361 **** --- 379,385 ---- } + if( parent && parent->isTemporary() ) + delete parent; + delete directory; } Index: synchronizer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** synchronizer.h 16 Dec 2003 17:15:03 -0000 1.5 --- synchronizer.h 16 Dec 2003 20:20:28 -0000 1.6 *************** *** 64,73 **** bool m_overWrite; // overwrite flag QString m_destination; // the destination URL at rename ! public: SynchronizerFileItem(QString nam, QString dir, bool mark, bool exL, bool exR, KIO::filesize_t leftSize, KIO::filesize_t rightSize, time_t leftDate, time_t rightDate, TaskType tsk, bool isDir, ! SynchronizerFileItem *parent ) : m_name( nam ), m_directory( dir ), m_marked( mark ), m_existsLeft( exL ), m_existsRight( exR ), m_leftSize( leftSize ), --- 64,74 ---- bool m_overWrite; // overwrite flag QString m_destination; // the destination URL at rename ! bool m_temporary; // flag indicates temporary directory ! public: SynchronizerFileItem(QString nam, QString dir, bool mark, bool exL, bool exR, KIO::filesize_t leftSize, KIO::filesize_t rightSize, time_t leftDate, time_t rightDate, TaskType tsk, bool isDir, ! bool tmp, SynchronizerFileItem *parent ) : m_name( nam ), m_directory( dir ), m_marked( mark ), m_existsLeft( exL ), m_existsRight( exR ), m_leftSize( leftSize ), *************** *** 75,79 **** m_rightDate( rightDate ),m_task( tsk ), m_isDir( isDir ), m_parent(parent), m_userData( 0 ), m_overWrite( false ), ! m_destination( QString::null ) {} inline bool isMarked() {return m_marked;} --- 76,80 ---- m_rightDate( rightDate ),m_task( tsk ), m_isDir( isDir ), m_parent(parent), m_userData( 0 ), m_overWrite( false ), ! m_destination( QString::null ), m_temporary( tmp ) {} inline bool isMarked() {return m_marked;} *************** *** 96,99 **** --- 97,102 ---- inline QString destination() {return m_destination;} inline void setDestination(QString d) {m_destination = d;} + inline bool isTemporary() {return m_temporary;} + inline void setPermanent() {m_temporary = false;} }; *************** *** 144,155 **** SynchronizerFileItem * addItem( SynchronizerFileItem *, QString, QString, bool, bool, KIO::filesize_t, KIO::filesize_t, ! time_t, time_t, TaskType, bool); SynchronizerFileItem * addLeftOnlyItem( SynchronizerFileItem *, QString, QString, ! KIO::filesize_t, time_t, bool isDir = false ); SynchronizerFileItem * addRightOnlyItem( SynchronizerFileItem *, QString, QString, ! KIO::filesize_t, time_t, bool isDir = false ); SynchronizerFileItem * addDuplicateItem( SynchronizerFileItem *, QString, QString, KIO::filesize_t, KIO::filesize_t, time_t, ! time_t, bool isDir = false ); bool checkName( QString name ); bool isMarked( TaskType task, bool dupl ); --- 147,158 ---- SynchronizerFileItem * addItem( SynchronizerFileItem *, QString, QString, bool, bool, KIO::filesize_t, KIO::filesize_t, ! time_t, time_t, TaskType, bool, bool); SynchronizerFileItem * addLeftOnlyItem( SynchronizerFileItem *, QString, QString, ! KIO::filesize_t, time_t, bool isDir = false, bool isTemp = false ); SynchronizerFileItem * addRightOnlyItem( SynchronizerFileItem *, QString, QString, ! KIO::filesize_t, time_t, bool isDir = false, bool isTemp = false ); SynchronizerFileItem * addDuplicateItem( SynchronizerFileItem *, QString, QString, KIO::filesize_t, KIO::filesize_t, time_t, ! time_t, bool isDir = false, bool isTemp = false ); bool checkName( QString name ); bool isMarked( TaskType task, bool dupl ); *************** *** 159,162 **** --- 162,166 ---- bool compareByContent( QString, QString ); void abortContentComparing(); + void setPermanent( SynchronizerFileItem * ); protected: |
From: <ck...@us...> - 2003-12-16 17:15:06
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Synchronizer In directory sc8-pr-cvs1:/tmp/cvs-serv5386/krusader_kde3/krusader/Synchronizer Modified Files: synchronizer.cpp synchronizer.h Log Message: FIXED: visibility turmoil with child listview items Index: synchronizer.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** synchronizer.cpp 16 Dec 2003 16:35:03 -0000 1.4 --- synchronizer.cpp 16 Dec 2003 17:15:03 -0000 1.5 *************** *** 249,253 **** if( marked ) { ! markParentDirectories( item ); fileCount++; } --- 249,258 ---- if( marked ) { ! if( markParentDirectories( item ) ) ! { ! int oldFileCount = fileCount; ! refresh( true ); ! fileCount = oldFileCount; ! } fileCount++; } *************** *** 394,410 **** } ! void Synchronizer::markParentDirectories( SynchronizerFileItem *item ) { if( item->parent() == 0 || item->parent()->isMarked() ) ! return; markParentDirectories( item->parent() ); item->parent()->setMarked( true ); fileCount++; emit markChanged( item->parent() ); } ! int Synchronizer::refresh() { fileCount = 0; --- 399,417 ---- } ! bool Synchronizer::markParentDirectories( SynchronizerFileItem *item ) { if( item->parent() == 0 || item->parent()->isMarked() ) ! return false; markParentDirectories( item->parent() ); item->parent()->setMarked( true ); + fileCount++; emit markChanged( item->parent() ); + return true; } ! int Synchronizer::refresh(bool nostatus) { fileCount = 0; *************** *** 414,419 **** while( item ) { - item->noteMark(); - bool marked = isMarked( item->task(), item->existsInLeft() && item->existsInRight() ); item->setMarked( marked ); --- 421,424 ---- *************** *** 431,441 **** while( item ) { ! if( item->isMarkChanged() ) ! emit markChanged( item ); ! item = resultList.next(); } ! emit statusInfo( i18n( "File number:%1" ).arg( fileCount ) ); return fileCount; } --- 436,446 ---- while( item ) { ! emit markChanged( item ); item = resultList.next(); } ! if( !nostatus ) ! emit statusInfo( i18n( "File number:%1" ).arg( fileCount ) ); ! return fileCount; } Index: synchronizer.h =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Synchronizer/synchronizer.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** synchronizer.h 16 Dec 2003 16:35:03 -0000 1.4 --- synchronizer.h 16 Dec 2003 17:15:03 -0000 1.5 *************** *** 64,69 **** bool m_overWrite; // overwrite flag QString m_destination; // the destination URL at rename ! bool m_lastMark; // the previous mark flag ! public: SynchronizerFileItem(QString nam, QString dir, bool mark, bool exL, --- 64,68 ---- bool m_overWrite; // overwrite flag QString m_destination; // the destination URL at rename ! public: SynchronizerFileItem(QString nam, QString dir, bool mark, bool exL, *************** *** 76,80 **** m_rightDate( rightDate ),m_task( tsk ), m_isDir( isDir ), m_parent(parent), m_userData( 0 ), m_overWrite( false ), ! m_destination( QString::null ), m_lastMark( false ) {} inline bool isMarked() {return m_marked;} --- 75,79 ---- m_rightDate( rightDate ),m_task( tsk ), m_isDir( isDir ), m_parent(parent), m_userData( 0 ), m_overWrite( false ), ! m_destination( QString::null ) {} inline bool isMarked() {return m_marked;} *************** *** 97,102 **** inline QString destination() {return m_destination;} inline void setDestination(QString d) {m_destination = d;} - inline void noteMark() {m_lastMark = m_marked;} - inline bool isMarkChanged() {return m_lastMark != m_marked;} }; --- 96,99 ---- *************** *** 114,118 **** void stop() {stopped = true;} void setMarkFlags( bool left, bool equal, bool differs, bool right, bool dup, bool sing, bool del ); ! int refresh(); bool totalSizes( int *, KIO::filesize_t *, int *, KIO::filesize_t *, int *, KIO::filesize_t * ); void synchronize( bool leftCopyEnabled, bool rightCopyEnabled, bool deleteEnabled, bool overWrite ); --- 111,115 ---- void stop() {stopped = true;} void setMarkFlags( bool left, bool equal, bool differs, bool right, bool dup, bool sing, bool del ); ! int refresh( bool nostatus=false ); bool totalSizes( int *, KIO::filesize_t *, int *, KIO::filesize_t *, int *, KIO::filesize_t * ); void synchronize( bool leftCopyEnabled, bool rightCopyEnabled, bool deleteEnabled, bool overWrite ); *************** *** 157,161 **** bool checkName( QString name ); bool isMarked( TaskType task, bool dupl ); ! void markParentDirectories( SynchronizerFileItem * ); void executeTask(); KURL fromPathOrURL( QString url ); --- 154,158 ---- bool checkName( QString name ); bool isMarked( TaskType task, bool dupl ); ! bool markParentDirectories( SynchronizerFileItem * ); void executeTask(); KURL fromPathOrURL( QString url ); |