summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp200
-rw-r--r--noncore/apps/advancedfm/advancedfm.h6
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp102
3 files changed, 87 insertions, 221 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index 74654fc..fc6c3bf 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -75,6 +75,8 @@ AdvancedFm::AdvancedFm( )
75 75
76 initConnections(); 76 initConnections();
77 populateLocalView(); 77 TabWidget->setCurrentTab(1);
78 populateRemoteView(); 78 populateView();
79 TabWidget->setCurrentTab(0);
80 populateView();
79 currentPathCombo->setFocus(); 81 currentPathCombo->setFocus();
80} 82}
@@ -116,20 +118,25 @@ void AdvancedFm::tabChanged(QWidget *w)
116 +checkDiskSpace( (const QString &) path )+ " kB free" ); 118 +checkDiskSpace( (const QString &) path )+ " kB free" );
117 chdir( path.latin1()); 119 chdir( path.latin1());
120 //2populateView();
118} 121}
119 122
120 123
121void AdvancedFm::populateLocalView() 124void AdvancedFm::populateView()
122{ 125{
123 QPixmap pm; 126 QPixmap pm;
124 Local_View->clear(); 127 QListView *thisView = CurrentView();
125 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 128 QDir *thisDir = CurrentDir();
126 currentDir.setMatchAllDirs(TRUE); 129 QString path = thisDir->canonicalPath();
127 currentDir.setNameFilter(filterStr); 130
131 thisView->clear();
132 thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
133 thisDir->setMatchAllDirs(TRUE);
134 thisDir->setNameFilter(filterStr);
128 QString fileL, fileS, fileDate; 135 QString fileL, fileS, fileDate;
129 QString fs= getFileSystemType((const QString &) currentDir.canonicalPath()); 136 QString fs= getFileSystemType((const QString &) path);
130 setCaption("AdvancedFm :: "+fs+" :: " 137 setCaption("AdvancedFm :: "+fs+" :: "
131 +checkDiskSpace((const QString &) currentDir.canonicalPath())+" kB free" ); 138 +checkDiskSpace((const QString &) path)+" kB free" );
132 bool isDir=FALSE; 139 bool isDir=FALSE;
133 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 140 const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
134 QFileInfoListIterator it(*list); 141 QFileInfoListIterator it(*list);
135 QFileInfo *fi; 142 QFileInfo *fi;
@@ -149,5 +156,5 @@ void AdvancedFm::populateLocalView()
149 fileL.sprintf( "%s",fi->fileName().data() ); 156 fileL.sprintf( "%s",fi->fileName().data() );
150 fileDate= fi->lastModified().toString(); 157 fileDate= fi->lastModified().toString();
151 if( QDir(QDir::cleanDirPath( currentDir.canonicalPath()+"/"+fileL)).exists() ) 158 if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() )
152 { 159 {
153 fileL+="/"; 160 fileL+="/";
@@ -155,8 +162,10 @@ void AdvancedFm::populateLocalView()
155 } 162 }
156 } 163 }
157 QFileInfo fileInfo( currentDir.canonicalPath()+"/"+fileL); 164
165 QFileInfo fileInfo( path + "/" + fileL);
166
158 if(fileL !="./" && fi->exists()) 167 if(fileL !="./" && fi->exists())
159 { 168 {
160 item= new QListViewItem( Local_View, fileL, fileS , fileDate); 169 item= new QListViewItem( thisView, fileL, fileS , fileDate);
161 170
162 if(isDir || fileL.find("/",0,TRUE) != -1) 171 if(isDir || fileL.find("/",0,TRUE) != -1)
@@ -204,5 +213,5 @@ void AdvancedFm::populateLocalView()
204 } 213 }
205 214
206 if(currentDir.canonicalPath().find("dev",0,TRUE) != -1) 215 if( path.find("dev",0,TRUE) != -1)
207 { 216 {
208 struct stat buf; 217 struct stat buf;
@@ -211,5 +220,5 @@ void AdvancedFm::populateLocalView()
211 struct dirent *mydirent; 220 struct dirent *mydirent;
212 221
213 if((dir = opendir( currentDir.canonicalPath().latin1())) != NULL) 222 if((dir = opendir( path.latin1())) != NULL)
214 while ((mydirent = readdir(dir)) != NULL) 223 while ((mydirent = readdir(dir)) != NULL)
215 { 224 {
@@ -222,5 +231,5 @@ void AdvancedFm::populateLocalView()
222 if( fileL.find(".") == -1 ) 231 if( fileL.find(".") == -1 )
223 { 232 {
224 item= new QListViewItem( Local_View, fileL, fileS, fileDate); 233 item= new QListViewItem( thisView, fileL, fileS, fileDate);
225 pm = Resource::loadPixmap( "UnknownDocument-14" ); 234 pm = Resource::loadPixmap( "UnknownDocument-14" );
226 item->setPixmap( 0,pm); 235 item->setPixmap( 0,pm);
@@ -231,130 +240,9 @@ void AdvancedFm::populateLocalView()
231 } 240 }
232 241
233 Local_View->setSorting( 3,FALSE); 242 thisView->setSorting( 3,FALSE);
234 fillCombo( (const QString &) currentDir.canonicalPath()); 243 fillCombo( (const QString &) path );
235} 244}
236 245
237 246
238void AdvancedFm::populateRemoteView()
239{
240 QPixmap pm;
241 Remote_View->clear();
242 currentRemoteDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
243 currentRemoteDir.setMatchAllDirs(TRUE);
244 currentRemoteDir.setNameFilter(filterStr);
245 QString fileL, fileS, fileDate;
246
247 QString fs= getFileSystemType((const QString &) currentRemoteDir.canonicalPath());
248 setCaption("AdvancedFm :: "+fs+" :: "
249 +checkDiskSpace((const QString &) currentRemoteDir.canonicalPath())+" kB free" );
250 bool isDir=FALSE;
251 const QFileInfoList *list = currentRemoteDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
252 QFileInfoListIterator it(*list);
253 QFileInfo *fi;
254 while ( (fi=it.current()) )
255 {
256 if (fi->isSymLink() )
257 {
258 QString symLink=fi->readLink();
259 // qDebug("Symlink detected "+symLink);
260 QFileInfo sym( symLink);
261 fileS.sprintf( "%10i", sym.size() );
262 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.filePath().data() );
263 fileDate = sym.lastModified().toString();
264 }
265 else
266 {
267 // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL);
268 fileS.sprintf( "%10i", fi->size() );
269 fileL.sprintf( "%s",fi->fileName().data() );
270 fileDate= fi->lastModified().toString();
271
272 if( QDir(QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+fileL)).exists() )
273 {
274 fileL+="/";
275 isDir=TRUE;
276 // qDebug( fileL);
277 }
278 }
279
280 QFileInfo fileInfo( currentRemoteDir.canonicalPath()+"/"+fileL);
281 if(fileL !="./" && fi->exists())
282 {
283 item= new QListViewItem( Remote_View, fileL, fileS, fileDate);
284 QPixmap pm;
285
286 if(isDir || fileL.find("/",0,TRUE) != -1)
287 {
288 if( !QDir( fi->filePath() ).isReadable())
289 pm = Resource::loadPixmap( "lockedfolder" );
290 else
291 pm= Resource::loadPixmap( "folder" );
292 }
293 else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") )
294 {
295 pm = Resource::loadPixmap( "exec");
296 }
297 else if( (fileInfo.permission( QFileInfo::ExeUser)
298 | fileInfo.permission( QFileInfo::ExeGroup)
299 | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" )
300 {
301 pm = Resource::loadPixmap( "exec");
302 }
303 else if( !fi->isReadable() )
304 {
305 pm = Resource::loadPixmap( "locked" );
306 }
307 else
308 {
309 MimeType mt(fi->filePath());
310 pm=mt.pixmap(); //sets the correct pixmap for mimetype
311 if(pm.isNull())
312 pm = Resource::loadPixmap( "UnknownDocument-14" );
313 }
314 if( fi->isSymLink() && fileL.find("->",0,TRUE) != -1)
315 {
316 // overlay link image
317 pm= Resource::loadPixmap( "folder" );
318 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
319 QPainter painter( &pm );
320 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
321 pm.setMask( pm.createHeuristicMask( FALSE ) );
322 }
323 item->setPixmap( 0, pm);
324 }
325 isDir=FALSE;
326 ++it;
327 }
328
329 if(currentRemoteDir.canonicalPath().find("dev",0,TRUE) != -1)
330 {
331 struct stat buf;
332 DIR *dir;
333 struct dirent *mydirent;
334 if((dir = opendir( currentRemoteDir.canonicalPath().latin1())) != NULL)
335
336 while ((mydirent = readdir(dir)) != NULL)
337 {
338 lstat( mydirent->d_name, &buf);
339// qDebug(mydirent->d_name);
340 fileL.sprintf("%s", mydirent->d_name);
341 fileS.sprintf("%d,%d", (int) (buf.st_dev>>8)&0xFF, (int) buf.st_dev &0xFF);
342 fileDate.sprintf("%s", ctime( &buf.st_mtime));
343
344 if( fileL.find(".") == -1 )
345 {
346 item= new QListViewItem( Remote_View, fileL, fileS, fileDate);
347 pm = Resource::loadPixmap( "UnknownDocument-14" );
348 item->setPixmap( 0,pm);
349 }
350 }
351
352 closedir(dir);
353 }
354
355 Remote_View->setSorting( 3,FALSE);
356 fillCombo( (const QString &) currentRemoteDir.canonicalPath() );
357}
358
359void AdvancedFm::ListClicked(QListViewItem *selectedItem) 247void AdvancedFm::ListClicked(QListViewItem *selectedItem)
360{ 248{
@@ -384,5 +272,5 @@ void AdvancedFm::ListClicked(QListViewItem *selectedItem)
384 { 272 {
385 CurrentDir()->cd( strItem, TRUE); 273 CurrentDir()->cd( strItem, TRUE);
386 PopulateView(); 274 populateView();
387 CurrentView()->ensureItemVisible( CurrentView()->firstChild()); 275 CurrentView()->ensureItemVisible( CurrentView()->firstChild());
388 } 276 }
@@ -435,5 +323,5 @@ void AdvancedFm::currentPathComboChanged()
435 { 323 {
436 CurrentDir()->setPath( currentPathCombo->lineEdit()->text() ); 324 CurrentDir()->setPath( currentPathCombo->lineEdit()->text() );
437 PopulateView(); 325 populateView();
438 } 326 }
439 else 327 else
@@ -472,5 +360,5 @@ void AdvancedFm::currentPathComboActivated(const QString & currentPath)
472 chdir( currentPath.latin1() ); 360 chdir( currentPath.latin1() );
473 CurrentDir()->cd( currentPath, TRUE); 361 CurrentDir()->cd( currentPath, TRUE);
474 PopulateView(); 362 populateView();
475 update(); 363 update();
476} 364}
@@ -498,5 +386,5 @@ void AdvancedFm::homeButtonPushed()
498 chdir( current.latin1() ); 386 chdir( current.latin1() );
499 CurrentDir()->cd( current, TRUE); 387 CurrentDir()->cd( current, TRUE);
500 PopulateView(); 388 populateView();
501 update(); 389 update();
502} 390}
@@ -508,5 +396,5 @@ void AdvancedFm::docButtonPushed()
508 396
509 CurrentDir()->cd( current, TRUE); 397 CurrentDir()->cd( current, TRUE);
510 PopulateView(); 398 populateView();
511 update(); 399 update();
512} 400}
@@ -517,5 +405,5 @@ void AdvancedFm::SDButtonPushed()
517 chdir( current.latin1() ); 405 chdir( current.latin1() );
518 CurrentDir()->cd( current, TRUE); 406 CurrentDir()->cd( current, TRUE);
519 PopulateView(); 407 populateView();
520 update(); 408 update();
521} 409}
@@ -531,5 +419,5 @@ void AdvancedFm::CFButtonPushed()
531 chdir( current.latin1() ); 419 chdir( current.latin1() );
532 CurrentDir()->cd( current, TRUE); 420 CurrentDir()->cd( current, TRUE);
533 PopulateView(); 421 populateView();
534 update(); 422 update();
535} 423}
@@ -632,5 +520,5 @@ void AdvancedFm::QPEButtonPushed()
632 chdir( current.latin1() ); 520 chdir( current.latin1() );
633 CurrentDir()->cd( current, TRUE); 521 CurrentDir()->cd( current, TRUE);
634 PopulateView(); 522 populateView();
635 update(); 523 update();
636} 524}
@@ -949,5 +837,5 @@ void AdvancedFm::gotoCustomDir(const QString &dir)
949 chdir( curDir.latin1() ); 837 chdir( curDir.latin1() );
950 thisDir->cd( curDir, TRUE); 838 thisDir->cd( curDir, TRUE);
951 PopulateView(); 839 populateView();
952 } 840 }
953 } 841 }
@@ -978,12 +866,4 @@ QDir *AdvancedFm::OtherDir()
978} 866}
979 867
980void AdvancedFm::PopulateView()
981{
982 if ( whichTab == 1)
983 populateLocalView();
984 else
985 populateRemoteView();
986}
987
988QListView * AdvancedFm::CurrentView() 868QListView * AdvancedFm::CurrentView()
989{ 869{
@@ -1001,2 +881,10 @@ QListView * AdvancedFm::OtherView()
1001 return Local_View; 881 return Local_View;
1002} 882}
883
884void AdvancedFm::setOtherTabCurrent()
885{
886 if ( whichTab == 1)
887 TabWidget->setCurrentTab(1);
888 else
889 TabWidget->setCurrentTab(0);
890}
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h
index 8eec6ba..024ab29 100644
--- a/noncore/apps/advancedfm/advancedfm.h
+++ b/noncore/apps/advancedfm/advancedfm.h
@@ -64,9 +64,7 @@ protected slots:
64 void del(); 64 void del();
65 void rn(); 65 void rn();
66 void populateLocalView(); 66 void populateView();
67 void populateRemoteView();
68 void showHidden(); 67 void showHidden();
69 void showMenuHidden(); 68 void showMenuHidden();
70// void showRemoteHidden();
71 void writeConfig(); 69 void writeConfig();
72 void readConfig(); 70 void readConfig();
@@ -126,5 +124,5 @@ protected:
126 QListView *CurrentView(); 124 QListView *CurrentView();
127 QListView *OtherView(); 125 QListView *OtherView();
128 void PopulateView(); 126 void setOtherTabCurrent();
129 127
130protected slots: 128protected slots:
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index 13dad33..c553017 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -69,6 +69,6 @@ void AdvancedFm::showMenuHidden()
69// b=TRUE; 69// b=TRUE;
70 } 70 }
71 populateLocalView(); 71 populateView();
72 populateRemoteView(); 72// populateRemoteView();
73// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true"); 73// if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true");
74 if(b) b = false; else b = true; 74 if(b) b = false; else b = true;
@@ -90,5 +90,5 @@ void AdvancedFm::showHidden()
90// b=TRUE; 90// b=TRUE;
91 } 91 }
92 PopulateView(); 92 populateView();
93} 93}
94 94
@@ -166,5 +166,5 @@ void AdvancedFm::makeDir()
166 thisDir->mkdir( thisDir->canonicalPath()+"/"+filename); 166 thisDir->mkdir( thisDir->canonicalPath()+"/"+filename);
167 } 167 }
168 PopulateView(); 168 populateView();
169} 169}
170 170
@@ -215,5 +215,5 @@ void AdvancedFm::doDelete()
215 QString cmd="rm -rf "+f; 215 QString cmd="rm -rf "+f;
216 startProcess( (const QString)cmd.latin1() ); 216 startProcess( (const QString)cmd.latin1() );
217 PopulateView(); 217 populateView();
218 } 218 }
219 break; 219 break;
@@ -239,5 +239,5 @@ void AdvancedFm::doDelete()
239 } 239 }
240 } 240 }
241 PopulateView(); 241 populateView();
242} 242}
243 243
@@ -258,5 +258,5 @@ void AdvancedFm::filePerms()
258 delete filePerm; 258 delete filePerm;
259 } 259 }
260 PopulateView(); 260 populateView();
261} 261}
262 262
@@ -294,5 +294,5 @@ void AdvancedFm::upDir()
294 thisDir->cd( current, TRUE); 294 thisDir->cd( current, TRUE);
295 295
296 PopulateView(); 296 populateView();
297 update(); 297 update();
298} 298}
@@ -361,7 +361,6 @@ void AdvancedFm::copy()
361 } 361 }
362 } 362 }
363 363 setOtherTabCurrent();
364 PopulateView(); 364 populateView();
365 // TabWidget->setCurrentTab(1);
366 } 365 }
367} 366}
@@ -418,5 +417,6 @@ void AdvancedFm::copyAs()
418 417
419 } 418 }
420 PopulateView(); 419 setOtherTabCurrent();
420 populateView();
421} 421}
422 422
@@ -471,5 +471,5 @@ void AdvancedFm::copySameDir()
471 delete fileDlg; 471 delete fileDlg;
472 } 472 }
473 PopulateView(); 473 populateView();
474} 474}
475 475
@@ -513,6 +513,7 @@ void AdvancedFm::move()
513 513
514 } 514 }
515 populateRemoteView(); 515 setOtherTabCurrent();
516 populateLocalView(); 516 populateView();
517 // populateLocalView();
517} 518}
518 519
@@ -644,50 +645,30 @@ void AdvancedFm::mkSym()
644 if( curFileList.count() > 0) 645 if( curFileList.count() > 0)
645 { 646 {
646 if ( whichTab == 1) 647 QDir *thisDir = CurrentDir();
647 { 648 QDir * thatDir = OtherDir();
648 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
649 {
650 649
651 QString destName = currentRemoteDir.canonicalPath()+"/"+(*it); 650 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it )
652 if(destName.right(1) == "/")
653 {
654 destName = destName.left( destName.length() -1);
655 }
656 QString curFile = currentDir.canonicalPath()+"/"+(*it);
657 if( curFile.right(1) == "/")
658 {
659 curFile = curFile.left( curFile.length() -1);
660 }
661 cmd = "ln -s "+curFile+" "+destName;
662 qDebug(cmd);
663 startProcess( (const QString)cmd );
664 }
665 populateRemoteView();
666 TabWidget->setCurrentTab(1);
667 }
668 else
669 { 651 {
670 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) 652
653 QString destName = thatDir->canonicalPath()+"/"+(*it);
654 if(destName.right(1) == "/")
671 { 655 {
656 destName = destName.left( destName.length() -1);
657 }
672 658
673 QString destName = currentDir.canonicalPath()+"/"+(*it); 659 QString curFile = thisDir->canonicalPath()+"/"+(*it);
674 if(destName.right(1) == "/")
675 {
676 destName = destName.left( destName.length() -1);
677 }
678 QString curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
679 if( curFile.right(1) == "/")
680 {
681 curFile = curFile.left( curFile.length() -1);
682 }
683 660
684 cmd = "ln -s "+curFile+" "+destName; 661 if( curFile.right(1) == "/")
685 qDebug(cmd); 662 {
686 startProcess( (const QString)cmd ); 663 curFile = curFile.left( curFile.length() -1);
687 } 664 }
688 populateLocalView(); 665
689 TabWidget->setCurrentTab(0); 666 cmd = "ln -s "+curFile+" "+destName;
690 } 667 qDebug(cmd);
691 } 668 startProcess( (const QString)cmd );
669 }
670 setOtherTabCurrent();
671 populateView();
672 }
692} 673}
693 674
@@ -700,5 +681,4 @@ void AdvancedFm::doBeam()
700 else 681 else
701 { 682 {
702
703 QStringList curFileList = getPath(); 683 QStringList curFileList = getPath();
704 if( curFileList.count() > 0) 684 if( curFileList.count() > 0)
@@ -756,6 +736,6 @@ void AdvancedFm::startProcess(const QString & cmd)
756void AdvancedFm::processEnded() 736void AdvancedFm::processEnded()
757{ 737{
758 populateLocalView(); 738// populateLocalView();
759 populateRemoteView(); 739 populateView();
760} 740}
761 741
@@ -844,5 +824,5 @@ void AdvancedFm::renameIt()
844 oldName = thisView->currentItem()->text(0); 824 oldName = thisView->currentItem()->text(0);
845 doRename( thisView ); 825 doRename( thisView );
846 PopulateView(); 826 populateView();
847} 827}
848 828
@@ -866,4 +846,4 @@ void AdvancedFm::okRename()
866 view->takeItem( view->currentItem() ); 846 view->takeItem( view->currentItem() );
867 delete view->currentItem(); 847 delete view->currentItem();
868 PopulateView(); 848 populateView();
869} 849}