-rw-r--r-- | noncore/apps/advancedfm/advancedfm.cpp | 71 | ||||
-rw-r--r-- | noncore/apps/advancedfm/advancedfmMenu.cpp | 267 |
2 files changed, 150 insertions, 188 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp index 60558e7..77dca49 100644 --- a/noncore/apps/advancedfm/advancedfm.cpp +++ b/noncore/apps/advancedfm/advancedfm.cpp | |||
@@ -100,139 +100,125 @@ void AdvancedFm::tabChanged(QWidget *w) | |||
100 | +checkDiskSpace( (const QString &) path )+ " kB free" ); | 100 | +checkDiskSpace( (const QString &) path )+ " kB free" ); |
101 | chdir( path.latin1()); | 101 | chdir( path.latin1()); |
102 | } | 102 | } |
103 | 103 | ||
104 | 104 | ||
105 | void AdvancedFm::populateView() | 105 | void AdvancedFm::populateView() |
106 | { | 106 | { |
107 | QPixmap pm; | 107 | QPixmap pm; |
108 | QListView *thisView = CurrentView(); | 108 | QListView *thisView = CurrentView(); |
109 | QDir *thisDir = CurrentDir(); | 109 | QDir *thisDir = CurrentDir(); |
110 | QString path = thisDir->canonicalPath(); | 110 | QString path = thisDir->canonicalPath(); |
111 | 111 | ||
112 | thisView->clear(); | 112 | thisView->clear(); |
113 | thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 113 | thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
114 | thisDir->setMatchAllDirs(TRUE); | 114 | thisDir->setMatchAllDirs(TRUE); |
115 | thisDir->setNameFilter(filterStr); | 115 | thisDir->setNameFilter(filterStr); |
116 | QString fileL, fileS, fileDate; | 116 | QString fileL, fileS, fileDate; |
117 | QString fs= getFileSystemType((const QString &) path); | 117 | QString fs= getFileSystemType((const QString &) path); |
118 | setCaption("AdvancedFm :: "+fs+" :: " | 118 | setCaption("AdvancedFm :: "+fs+" :: " |
119 | +checkDiskSpace((const QString &) path)+" kB free" ); | 119 | +checkDiskSpace((const QString &) path)+" kB free" ); |
120 | bool isDir=FALSE; | 120 | bool isDir=FALSE; |
121 | const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); | 121 | const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); |
122 | QFileInfoListIterator it(*list); | 122 | QFileInfoListIterator it(*list); |
123 | QFileInfo *fi; | 123 | QFileInfo *fi; |
124 | while ( (fi=it.current()) ) | 124 | while ( (fi=it.current()) ) { |
125 | { | 125 | if (fi->isSymLink() ) { |
126 | if (fi->isSymLink() ) | ||
127 | { | ||
128 | QString symLink=fi->readLink(); | 126 | QString symLink=fi->readLink(); |
129 | QFileInfo sym( symLink); | 127 | QFileInfo sym( symLink); |
130 | fileS.sprintf( "%10i", sym.size() ); | 128 | fileS.sprintf( "%10i", sym.size() ); |
131 | fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.filePath().data() ); | 129 | fileL = fi->fileName() +" -> " + sym.filePath().data(); |
132 | fileDate = sym.lastModified().toString(); | 130 | fileDate = sym.lastModified().toString(); |
133 | } | 131 | } else { |
134 | else | ||
135 | { | ||
136 | fileS.sprintf( "%10i", fi->size() ); | 132 | fileS.sprintf( "%10i", fi->size() ); |
137 | fileL.sprintf( "%s",fi->fileName().data() ); | 133 | fileL = fi->fileName(); |
138 | fileDate= fi->lastModified().toString(); | 134 | fileDate= fi->lastModified().toString(); |
139 | if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) | 135 | if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { |
140 | { | ||
141 | fileL+="/"; | 136 | fileL+="/"; |
142 | isDir=TRUE; | 137 | isDir=TRUE; |
143 | } | 138 | } |
144 | } | 139 | } |
145 | |||
146 | QFileInfo fileInfo( path + "/" + fileL); | 140 | QFileInfo fileInfo( path + "/" + fileL); |
147 | 141 | ||
148 | if(fileL !="./" && fi->exists()) | 142 | if(fileL !="./" && fi->exists()) { |
149 | { | 143 | item = new QListViewItem( thisView, fileL, fileS , fileDate); |
150 | item= new QListViewItem( thisView, fileL, fileS , fileDate); | ||
151 | 144 | ||
152 | if(isDir || fileL.find("/",0,TRUE) != -1) | 145 | if(isDir || fileL.find("/",0,TRUE) != -1) { |
153 | { | ||
154 | 146 | ||
155 | if( !QDir( fi->filePath() ).isReadable()) //is directory | 147 | if( !QDir( fi->filePath() ).isReadable()) //is directory |
156 | pm = Resource::loadPixmap( "lockedfolder" ); | 148 | pm = Resource::loadPixmap( "lockedfolder" ); |
157 | else | 149 | else |
158 | pm= Resource::loadPixmap( "folder" ); | 150 | pm= Resource::loadPixmap( "folder" ); |
159 | } | 151 | } |
160 | else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) | 152 | else if ( fs == "vfat" && fileInfo.filePath().contains("/bin") ) { |
161 | { | 153 | pm = Resource::loadPixmap( "exec"); |
162 | pm = Resource::loadPixmap( "exec"); | ||
163 | } | 154 | } |
164 | else if( (fileInfo.permission( QFileInfo::ExeUser) | 155 | else if( (fileInfo.permission( QFileInfo::ExeUser) |
165 | | fileInfo.permission( QFileInfo::ExeGroup) | 156 | | fileInfo.permission( QFileInfo::ExeGroup) |
166 | | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) | 157 | | fileInfo.permission( QFileInfo::ExeOther)) && fs != "vfat" ) { |
167 | { | ||
168 | pm = Resource::loadPixmap( "exec"); | 158 | pm = Resource::loadPixmap( "exec"); |
169 | } | 159 | } |
170 | else if( !fi->isReadable() ) | 160 | else if( !fi->isReadable() ) { |
171 | { | ||
172 | pm = Resource::loadPixmap( "locked" ); | 161 | pm = Resource::loadPixmap( "locked" ); |
173 | } | 162 | } |
174 | else { //everything else goes by mimetype | 163 | else { //everything else goes by mimetype |
175 | MimeType mt(fi->filePath()); | 164 | MimeType mt(fi->filePath()); |
176 | pm=mt.pixmap(); //sets the correct pixmap for mimetype | 165 | pm=mt.pixmap(); //sets the correct pixmap for mimetype |
177 | if(pm.isNull()) { | 166 | if(pm.isNull()) { |
178 | pm = unknownXpm; | 167 | pm = unknownXpm; |
179 | } | 168 | } |
180 | } | 169 | } |
181 | if( fi->isSymLink() && fileL.find("->",0,TRUE) != -1) | 170 | if( fi->isSymLink() || fileL.find("->",0,TRUE) != -1) { |
182 | { | 171 | // qDebug(" overlay link image"); |
183 | // overlay link image | 172 | pm= Resource::loadPixmap( "advancedfm/symlink" ); |
184 | pm= Resource::loadPixmap( "folder" ); | 173 | // pm= Resource::loadPixmap( "folder" ); |
185 | QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); | 174 | // QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); |
186 | QPainter painter( &pm ); | 175 | // QPainter painter( &pm ); |
187 | painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); | 176 | // painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); |
188 | pm.setMask( pm.createHeuristicMask( FALSE ) ); | 177 | // pm.setMask( pm.createHeuristicMask( FALSE ) ); |
189 | } | 178 | } |
190 | item->setPixmap( 0,pm); | 179 | item->setPixmap( 0,pm); |
191 | 180 | ||
192 | } | 181 | } |
193 | isDir=FALSE; | 182 | isDir=FALSE; |
194 | ++it; | 183 | ++it; |
195 | } | 184 | } |
196 | 185 | ||
197 | if( path.find("dev",0,TRUE) != -1) | 186 | if( path.find("dev",0,TRUE) != -1) { |
198 | { | ||
199 | struct stat buf; | 187 | struct stat buf; |
200 | dev_t devT; | 188 | dev_t devT; |
201 | DIR *dir; | 189 | DIR *dir; |
202 | struct dirent *mydirent; | 190 | struct dirent *mydirent; |
203 | 191 | ||
204 | if((dir = opendir( path.latin1())) != NULL) | 192 | if((dir = opendir( path.latin1())) != NULL) |
205 | while ((mydirent = readdir(dir)) != NULL) | 193 | while ((mydirent = readdir(dir)) != NULL) { |
206 | { | ||
207 | lstat( mydirent->d_name, &buf); | 194 | lstat( mydirent->d_name, &buf); |
208 | // qDebug(mydirent->d_name); | 195 | // qDebug(mydirent->d_name); |
209 | fileL.sprintf("%s", mydirent->d_name); | 196 | fileL.sprintf("%s", mydirent->d_name); |
210 | devT = buf.st_dev; | 197 | devT = buf.st_dev; |
211 | fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); | 198 | fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); |
212 | fileDate.sprintf("%s", ctime( &buf.st_mtime)); | 199 | fileDate.sprintf("%s", ctime( &buf.st_mtime)); |
213 | if( fileL.find(".") == -1 ) | 200 | if( fileL.find(".") == -1 ) { |
214 | { | ||
215 | item= new QListViewItem( thisView, fileL, fileS, fileDate); | 201 | item= new QListViewItem( thisView, fileL, fileS, fileDate); |
216 | pm = unknownXpm; | 202 | pm = unknownXpm; |
217 | item->setPixmap( 0,pm); | 203 | item->setPixmap( 0,pm); |
218 | } | 204 | } |
219 | } | 205 | } |
220 | 206 | ||
221 | closedir(dir); | 207 | closedir(dir); |
222 | } | 208 | } |
223 | 209 | ||
224 | thisView->setSorting( 3,FALSE); | 210 | thisView->setSorting( 3,FALSE); |
225 | fillCombo( (const QString &) path ); | 211 | fillCombo( (const QString &) path ); |
226 | } | 212 | } |
227 | 213 | ||
228 | void AdvancedFm::rePopulate() | 214 | void AdvancedFm::rePopulate() |
229 | { | 215 | { |
230 | int tmpTab = whichTab; | 216 | int tmpTab = whichTab; |
231 | qDebug("%d", tmpTab); | 217 | qDebug("%d", tmpTab); |
232 | 218 | ||
233 | for(int i =1; i < 3; i++) | 219 | for(int i =1; i < 3; i++) |
234 | { | 220 | { |
235 | TabWidget->setCurrentTab(i - 1); | 221 | TabWidget->setCurrentTab(i - 1); |
236 | populateView(); | 222 | populateView(); |
237 | } | 223 | } |
238 | TabWidget->setCurrentTab( tmpTab - 1); | 224 | TabWidget->setCurrentTab( tmpTab - 1); |
@@ -659,58 +645,57 @@ QString AdvancedFm::checkDiskSpace(const QString &path) | |||
659 | { | 645 | { |
660 | struct statfs fss; | 646 | struct statfs fss; |
661 | if ( !statfs( path.latin1(), &fss ) ) | 647 | if ( !statfs( path.latin1(), &fss ) ) |
662 | { | 648 | { |
663 | int blkSize = fss.f_bsize; | 649 | int blkSize = fss.f_bsize; |
664 | // int totalBlks = fs.f_blocks; | 650 | // int totalBlks = fs.f_blocks; |
665 | int availBlks = fss.f_bavail; | 651 | int availBlks = fss.f_bavail; |
666 | 652 | ||
667 | long mult = blkSize / 1024; | 653 | long mult = blkSize / 1024; |
668 | long div = 1024 / blkSize; | 654 | long div = 1024 / blkSize; |
669 | if ( !mult ) mult = 1; | 655 | if ( !mult ) mult = 1; |
670 | if ( !div ) div = 1; | 656 | if ( !div ) div = 1; |
671 | 657 | ||
672 | 658 | ||
673 | return QString::number(availBlks * mult / div); | 659 | return QString::number(availBlks * mult / div); |
674 | } | 660 | } |
675 | return ""; | 661 | return ""; |
676 | } | 662 | } |
677 | 663 | ||
678 | void AdvancedFm::addToDocs() | 664 | void AdvancedFm::addToDocs() |
679 | { | 665 | { |
680 | QStringList strListPaths = getPath(); | 666 | QStringList strListPaths = getPath(); |
681 | QDir *thisDir = CurrentDir(); | 667 | QDir *thisDir = CurrentDir(); |
682 | 668 | ||
683 | if( strListPaths.count() > 0) | 669 | if( strListPaths.count() > 0) { |
684 | { | ||
685 | QString curFile; | 670 | QString curFile; |
686 | for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) | 671 | for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) { |
687 | { | ||
688 | curFile = thisDir->canonicalPath()+"/"+(*it); | 672 | curFile = thisDir->canonicalPath()+"/"+(*it); |
689 | // qDebug(curFile); | 673 | // qDebug(curFile); |
674 | QFileInfo fi(curFile); | ||
690 | DocLnk f; | 675 | DocLnk f; |
691 | // curFile.replace(QRegExp("\\..*"),""); | 676 | // curFile.replace(QRegExp("\\..*"),""); |
692 | f.setName((*it)); | 677 | f.setName(fi.baseName() ); |
693 | f.setFile( curFile); | 678 | f.setFile( curFile); |
694 | f.writeLink(); | 679 | f.writeLink(); |
695 | } | 680 | } |
696 | } | 681 | } |
697 | } | 682 | } |
698 | 683 | ||
699 | 684 | ||
700 | void AdvancedFm::customDirsToMenu() | 685 | void AdvancedFm::customDirsToMenu() |
701 | { | 686 | { |
702 | 687 | ||
703 | Config cfg("AdvancedFm"); | 688 | Config cfg("AdvancedFm"); |
704 | cfg.setGroup("Menu"); | 689 | cfg.setGroup("Menu"); |
705 | 690 | ||
706 | QStringList list = cfg.readListEntry( "CustomDir", ','); | 691 | QStringList list = cfg.readListEntry( "CustomDir", ','); |
707 | menuButton->insertItems(list ); | 692 | menuButton->insertItems(list ); |
708 | 693 | ||
709 | // for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) | 694 | // for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) |
710 | // { | 695 | // { |
711 | // customDirMenu->insertItem(*it ); | 696 | // customDirMenu->insertItem(*it ); |
712 | // } | 697 | // } |
713 | } | 698 | } |
714 | 699 | ||
715 | void AdvancedFm::dirMenuSelected(int item) | 700 | void AdvancedFm::dirMenuSelected(int item) |
716 | { | 701 | { |
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp index 9f21245..00d0e07 100644 --- a/noncore/apps/advancedfm/advancedfmMenu.cpp +++ b/noncore/apps/advancedfm/advancedfmMenu.cpp | |||
@@ -17,55 +17,57 @@ | |||
17 | #include <opie/oprocess.h> | 17 | #include <opie/oprocess.h> |
18 | 18 | ||
19 | #include <qpe/lnkproperties.h> | 19 | #include <qpe/lnkproperties.h> |
20 | #include <qpe/qpeapplication.h> | 20 | #include <qpe/qpeapplication.h> |
21 | #include <qpe/resource.h> | 21 | #include <qpe/resource.h> |
22 | #include <qpe/qcopenvelope_qws.h> | 22 | #include <qpe/qcopenvelope_qws.h> |
23 | #include <qpe/applnk.h> | 23 | #include <qpe/applnk.h> |
24 | #include <qpe/ir.h> | 24 | #include <qpe/ir.h> |
25 | 25 | ||
26 | #include <qmessagebox.h> | 26 | #include <qmessagebox.h> |
27 | #include <qmultilineedit.h> | 27 | #include <qmultilineedit.h> |
28 | 28 | ||
29 | #include <qstring.h> | 29 | #include <qstring.h> |
30 | 30 | ||
31 | #include <qlayout.h> | 31 | #include <qlayout.h> |
32 | #include <qpixmap.h> | 32 | #include <qpixmap.h> |
33 | #include <qcombobox.h> | 33 | #include <qcombobox.h> |
34 | #include <qpopupmenu.h> | 34 | #include <qpopupmenu.h> |
35 | #include <qtabwidget.h> | 35 | #include <qtabwidget.h> |
36 | #include <qtoolbutton.h> | 36 | #include <qtoolbutton.h> |
37 | #include <qtabwidget.h> | 37 | #include <qtabwidget.h> |
38 | #include <qlineedit.h> | 38 | #include <qlineedit.h> |
39 | #include <qlistview.h> | 39 | #include <qlistview.h> |
40 | 40 | ||
41 | #include <errno.h> | ||
41 | #include <stdlib.h> | 42 | #include <stdlib.h> |
42 | #include <unistd.h> | 43 | #include <unistd.h> |
43 | #include <sys/stat.h> | 44 | #include <sys/stat.h> |
44 | #include <dirent.h> | 45 | #include <dirent.h> |
45 | #include <sys/sendfile.h> | 46 | #include <sys/sendfile.h> |
46 | #include <fcntl.h> | 47 | #include <fcntl.h> |
47 | 48 | ||
49 | |||
48 | void AdvancedFm::doDirChange() | 50 | void AdvancedFm::doDirChange() |
49 | { | 51 | { |
50 | ListClicked( CurrentView()->currentItem()); | 52 | ListClicked( CurrentView()->currentItem()); |
51 | } | 53 | } |
52 | 54 | ||
53 | void AdvancedFm::showMenuHidden() | 55 | void AdvancedFm::showMenuHidden() |
54 | { | 56 | { |
55 | if (b) | 57 | if (b) |
56 | { | 58 | { |
57 | CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); | 59 | CurrentDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); |
58 | OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); | 60 | OtherDir()->setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); |
59 | fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); | 61 | fileMenu->setItemChecked( fileMenu->idAt(0),TRUE); |
60 | // b=FALSE; | 62 | // b=FALSE; |
61 | 63 | ||
62 | } | 64 | } |
63 | else | 65 | else |
64 | { | 66 | { |
65 | CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); | 67 | CurrentDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); |
66 | OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); | 68 | OtherDir()->setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); |
67 | fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); | 69 | fileMenu->setItemChecked( fileMenu->idAt(0),FALSE); |
68 | // b=TRUE; | 70 | // b=TRUE; |
69 | } | 71 | } |
70 | rePopulate(); | 72 | rePopulate(); |
71 | // if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true"); | 73 | // if(b) qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<< true"); |
@@ -149,131 +151,127 @@ void AdvancedFm::runText() | |||
149 | if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink | 151 | if( curFile.find("@",0,TRUE) !=-1 || curFile.find("->",0,TRUE) !=-1 ) //if symlink |
150 | curFile = dealWithSymName((const QString&)curFile); | 152 | curFile = dealWithSymName((const QString&)curFile); |
151 | curFile = CurrentDir()->canonicalPath()+"/"+curFile; | 153 | curFile = CurrentDir()->canonicalPath()+"/"+curFile; |
152 | QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); | 154 | QCopEnvelope e("QPE/Application/textedit", "setDocument(QString)" ); |
153 | e << curFile; | 155 | e << curFile; |
154 | } | 156 | } |
155 | } | 157 | } |
156 | 158 | ||
157 | void AdvancedFm::makeDir() | 159 | void AdvancedFm::makeDir() |
158 | { | 160 | { |
159 | InputDialog *fileDlg; | 161 | InputDialog *fileDlg; |
160 | fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); | 162 | fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); |
161 | fileDlg->exec(); | 163 | fileDlg->exec(); |
162 | if( fileDlg->result() == 1 ) | 164 | if( fileDlg->result() == 1 ) |
163 | { | 165 | { |
164 | QDir *thisDir = CurrentDir(); | 166 | QDir *thisDir = CurrentDir(); |
165 | QString filename = fileDlg->LineEdit1->text(); | 167 | QString filename = fileDlg->LineEdit1->text(); |
166 | thisDir->mkdir( thisDir->canonicalPath()+"/"+filename); | 168 | thisDir->mkdir( thisDir->canonicalPath()+"/"+filename); |
167 | } | 169 | } |
168 | populateView(); | 170 | populateView(); |
169 | } | 171 | } |
170 | 172 | ||
171 | void AdvancedFm::doDelete() | 173 | void AdvancedFm::doDelete() |
172 | { | 174 | { |
173 | 175 | QStringList curFileList = getPath(); | |
174 | QStringList curFileList = getPath(); | 176 | bool doMsg=true; |
175 | bool doMsg=true; | 177 | int count = curFileList.count(); |
176 | int count = curFileList.count(); | 178 | if( count > 0) { |
177 | if( count > 0) | 179 | if(count > 1 ) { |
178 | { | 180 | QString msg; |
179 | if(count > 1 ) | 181 | msg=tr("Really delete\n%1 files?").arg(count); |
180 | { | 182 | switch ( QMessageBox::warning(this,tr("Delete"),msg |
181 | QString msg; | 183 | ,tr("Yes"),tr("No"),0,0,1) ) |
182 | msg=tr("Really delete\n%1 files?").arg(count); | 184 | { |
183 | switch ( QMessageBox::warning(this,tr("Delete"),msg | 185 | case 0: |
184 | ,tr("Yes"),tr("No"),0,0,1) ) | 186 | doMsg=false; |
185 | { | 187 | break; |
186 | case 0: | 188 | case 1: |
187 | doMsg=false; | 189 | return; |
188 | break; | 190 | break; |
189 | case 1: | 191 | }; |
190 | return; | ||
191 | break; | ||
192 | }; | ||
193 | } | 192 | } |
194 | 193 | ||
195 | QString myFile; | 194 | QString myFile; |
196 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) | ||
197 | { | ||
198 | myFile = (*it); | ||
199 | if( myFile.find(" -> ",0,TRUE) != -1) | ||
200 | myFile = myFile.left( myFile.find(" -> ",0,TRUE)); | ||
201 | |||
202 | QString f = CurrentDir()->canonicalPath(); | ||
203 | if(f.right(1).find("/",0,TRUE) == -1) | ||
204 | f += "/"; | ||
205 | f += myFile; | ||
206 | if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) //if file is a directory | ||
207 | { | ||
208 | switch ( QMessageBox::warning( this, tr("Delete Directory?"), | ||
209 | tr("Really delete %1\nand all it's contents ?" ).arg( f ) , | ||
210 | tr("Yes"), | ||
211 | tr("No"), | ||
212 | 0, | ||
213 | 0, | ||
214 | 1) ) | ||
215 | { | ||
216 | case 0: | ||
217 | { | ||
218 | f=f.left(f.length()-1); | ||
219 | QString cmd="rm -rf "+f; | ||
220 | startProcess( (const QString)cmd.latin1() ); | ||
221 | populateView(); | ||
222 | } | ||
223 | break; | ||
224 | case 1: | ||
225 | // exit | ||
226 | break; | ||
227 | }; | ||
228 | 195 | ||
229 | } else { | 196 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
230 | if(doMsg) { | 197 | myFile = (*it); |
231 | switch ( QMessageBox::warning(this,tr("Delete"), | 198 | if( myFile.find(" -> ",0,TRUE) != -1) |
232 | tr("Really delete\n%1?").arg( f ), | 199 | myFile = myFile.left( myFile.find(" -> ",0,TRUE)); |
233 | tr("Yes"), | 200 | |
234 | tr("No"), | 201 | QString f = CurrentDir()->canonicalPath(); |
235 | 0, | 202 | if(f.right(1).find("/",0,TRUE) == -1) |
236 | 0, | 203 | f += "/"; |
237 | 1) ) { | 204 | f += myFile; |
238 | case 1: | 205 | if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { |
239 | return; | 206 | //if file is a directory |
240 | break; | 207 | |
241 | }; | 208 | switch ( QMessageBox::warning( this, tr("Delete Directory?"), |
242 | } | 209 | tr("Really delete %1\nand all it's contents ?" ).arg( f ) , |
243 | QString cmd="rm "+f; | 210 | tr("Yes"), tr("No"), 0, 0, 1) ) { |
244 | QFile file(f); | 211 | case 0: |
245 | if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) { | 212 | { |
246 | qDebug("remove link files "+f); | 213 | f=f.left(f.length()-1); |
247 | // AppLnk lnk(f); | 214 | QString cmd="rm -rf "+f; |
248 | // qDebug(lnk.linkFile()); | 215 | startProcess( (const QString)cmd.latin1() ); |
249 | // lnk.removeLinkFile(); | 216 | populateView(); |
250 | file.remove(); | 217 | } |
251 | } | 218 | break; |
219 | case 1: | ||
220 | // exit | ||
221 | break; | ||
222 | }; | ||
223 | |||
224 | } else { | ||
225 | if(doMsg) { | ||
226 | switch ( QMessageBox::warning(this,tr("Delete"), | ||
227 | tr("Really delete\n%1?").arg( myFile ), | ||
228 | tr("Yes"), tr("No"), 0, 0, 1) ) { | ||
229 | case 1: | ||
230 | return; | ||
231 | break; | ||
232 | }; | ||
233 | } | ||
234 | |||
235 | QString cmd="rm "+f; | ||
236 | QFile file(f); | ||
237 | QFileInfo fi(myFile); | ||
238 | if( fi.fileName().find("../",0,TRUE)==-1) { | ||
239 | qDebug("remove link files "+myFile); | ||
240 | |||
241 | // DocLnk lnk(f); | ||
242 | DocLnk *lnk; | ||
243 | lnk = new DocLnk(f); | ||
244 | qDebug("Deleting doclnk " + lnk->linkFile()); | ||
245 | if(lnk->isValid()) | ||
246 | lnk->removeLinkFile(); | ||
247 | // delete lnk; | ||
248 | file.remove(); | ||
249 | } | ||
250 | } | ||
252 | } | 251 | } |
253 | } | 252 | } |
254 | } | 253 | populateView(); |
255 | populateView(); | ||
256 | } | 254 | } |
257 | 255 | ||
258 | void AdvancedFm::filePerms() | 256 | void AdvancedFm::filePerms() |
259 | { | 257 | { |
260 | QStringList curFileList = getPath(); | 258 | QStringList curFileList = getPath(); |
261 | QString filePath; | 259 | QString filePath; |
262 | 260 | ||
263 | filePath = CurrentDir()->canonicalPath()+"/"; | 261 | filePath = CurrentDir()->canonicalPath()+"/"; |
264 | 262 | ||
265 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) | 263 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) |
266 | { | 264 | { |
267 | filePermissions *filePerm; | 265 | filePermissions *filePerm; |
268 | filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it)); | 266 | filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(filePath+*it)); |
269 | filePerm->showMaximized(); | 267 | filePerm->showMaximized(); |
270 | filePerm->exec(); | 268 | filePerm->exec(); |
271 | if( filePerm) | 269 | if( filePerm) |
272 | delete filePerm; | 270 | delete filePerm; |
273 | } | 271 | } |
274 | populateView(); | 272 | populateView(); |
275 | } | 273 | } |
276 | 274 | ||
277 | void AdvancedFm::doProperties() | 275 | void AdvancedFm::doProperties() |
278 | { | 276 | { |
279 | #if defined(QT_QWS_OPIE) | 277 | #if defined(QT_QWS_OPIE) |
@@ -346,50 +344,49 @@ void AdvancedFm::copy() | |||
346 | 344 | ||
347 | curFile = thisDir->canonicalPath()+"/"+ item; | 345 | curFile = thisDir->canonicalPath()+"/"+ item; |
348 | destFile = thatDir->canonicalPath()+"/"+ item; | 346 | destFile = thatDir->canonicalPath()+"/"+ item; |
349 | 347 | ||
350 | qDebug("Destination file is "+destFile); | 348 | qDebug("Destination file is "+destFile); |
351 | qDebug("CurrentFile file is " + curFile); | 349 | qDebug("CurrentFile file is " + curFile); |
352 | 350 | ||
353 | QFile f(destFile); | 351 | QFile f(destFile); |
354 | if( f.exists()) | 352 | if( f.exists()) |
355 | { | 353 | { |
356 | if(doMsg) | 354 | if(doMsg) |
357 | { | 355 | { |
358 | switch ( QMessageBox::warning(this,tr("File Exists!"), | 356 | switch ( QMessageBox::warning(this,tr("File Exists!"), |
359 | tr("%1 exists. Ok to overwrite?").arg( item ), | 357 | tr("%1 exists. Ok to overwrite?").arg( item ), |
360 | tr("Yes"),tr("No"),0,0,1) ) | 358 | tr("Yes"),tr("No"),0,0,1) ) |
361 | { | 359 | { |
362 | case 1: | 360 | case 1: |
363 | return; | 361 | return; |
364 | break; | 362 | break; |
365 | }; | 363 | }; |
366 | } | 364 | } |
367 | f.remove(); | 365 | f.remove(); |
368 | } | 366 | } |
369 | 367 | ||
370 | if( !copyFile( curFile, destFile) ) | 368 | if( !copyFile( curFile, destFile) ) { |
371 | { | ||
372 | QMessageBox::message("AdvancedFm", | 369 | QMessageBox::message("AdvancedFm", |
373 | tr( "Could not copy %1 to %2").arg( curFile ).arg( destFile ) ); | 370 | tr( "Could not copy %1 to %2").arg( curFile ).arg( destFile ) ); |
374 | return; | 371 | return; |
375 | } | 372 | } |
376 | } | 373 | } |
377 | setOtherTabCurrent(); | 374 | setOtherTabCurrent(); |
378 | populateView(); | 375 | populateView(); |
379 | } | 376 | } |
380 | } | 377 | } |
381 | 378 | ||
382 | void AdvancedFm::copyAs() | 379 | void AdvancedFm::copyAs() |
383 | { | 380 | { |
384 | qApp->processEvents(); | 381 | qApp->processEvents(); |
385 | 382 | ||
386 | QStringList curFileList = getPath(); | 383 | QStringList curFileList = getPath(); |
387 | QString curFile, item; | 384 | QString curFile, item; |
388 | InputDialog *fileDlg; | 385 | InputDialog *fileDlg; |
389 | 386 | ||
390 | QDir *thisDir = CurrentDir(); | 387 | QDir *thisDir = CurrentDir(); |
391 | QDir *thatDir = OtherDir(); | 388 | QDir *thatDir = OtherDir(); |
392 | 389 | ||
393 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) | 390 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) |
394 | { | 391 | { |
395 | QString destFile; | 392 | QString destFile; |
@@ -399,50 +396,49 @@ void AdvancedFm::copyAs() | |||
399 | 396 | ||
400 | fileDlg->setInputText((const QString &) destFile ); | 397 | fileDlg->setInputText((const QString &) destFile ); |
401 | fileDlg->exec(); | 398 | fileDlg->exec(); |
402 | 399 | ||
403 | if( fileDlg->result() == 1 ) | 400 | if( fileDlg->result() == 1 ) |
404 | { | 401 | { |
405 | QString filename = fileDlg->LineEdit1->text(); | 402 | QString filename = fileDlg->LineEdit1->text(); |
406 | destFile = thatDir->canonicalPath()+"/"+filename; | 403 | destFile = thatDir->canonicalPath()+"/"+filename; |
407 | 404 | ||
408 | QFile f( destFile); | 405 | QFile f( destFile); |
409 | if( f.exists()) | 406 | if( f.exists()) |
410 | { | 407 | { |
411 | switch (QMessageBox::warning(this,tr("File Exists!"), | 408 | switch (QMessageBox::warning(this,tr("File Exists!"), |
412 | item+tr("\nexists. Ok to overwrite?"), | 409 | item+tr("\nexists. Ok to overwrite?"), |
413 | tr("Yes"),tr("No"),0,0,1) ) | 410 | tr("Yes"),tr("No"),0,0,1) ) |
414 | { | 411 | { |
415 | case 0: | 412 | case 0: |
416 | f.remove(); | 413 | f.remove(); |
417 | break; | 414 | break; |
418 | case 1: | 415 | case 1: |
419 | return; | 416 | return; |
420 | break; | 417 | break; |
421 | }; | 418 | }; |
422 | } | 419 | } |
423 | if( !copyFile( curFile, destFile) ) | 420 | if( !copyFile( curFile, destFile) ) { |
424 | { | ||
425 | QMessageBox::message("AdvancedFm",tr("Could not copy\n") | 421 | QMessageBox::message("AdvancedFm",tr("Could not copy\n") |
426 | +curFile +tr("to\n")+destFile); | 422 | +curFile +tr("to\n")+destFile); |
427 | return; | 423 | return; |
428 | } | 424 | } |
429 | } | 425 | } |
430 | delete fileDlg; | 426 | delete fileDlg; |
431 | 427 | ||
432 | } | 428 | } |
433 | setOtherTabCurrent(); | 429 | setOtherTabCurrent(); |
434 | populateView(); | 430 | populateView(); |
435 | } | 431 | } |
436 | 432 | ||
437 | void AdvancedFm::copySameDir() | 433 | void AdvancedFm::copySameDir() |
438 | { | 434 | { |
439 | qApp->processEvents(); | 435 | qApp->processEvents(); |
440 | QStringList curFileList = getPath(); | 436 | QStringList curFileList = getPath(); |
441 | QString curFile, item, destFile; | 437 | QString curFile, item, destFile; |
442 | InputDialog *fileDlg; | 438 | InputDialog *fileDlg; |
443 | 439 | ||
444 | QDir *thisDir = CurrentDir(); | 440 | QDir *thisDir = CurrentDir(); |
445 | 441 | ||
446 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) | 442 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) |
447 | { | 443 | { |
448 | item=(*it); | 444 | item=(*it); |
@@ -452,162 +448,150 @@ void AdvancedFm::copySameDir() | |||
452 | fileDlg->setInputText((const QString &) destFile ); | 448 | fileDlg->setInputText((const QString &) destFile ); |
453 | fileDlg->exec(); | 449 | fileDlg->exec(); |
454 | 450 | ||
455 | if( fileDlg->result() == 1 ) | 451 | if( fileDlg->result() == 1 ) |
456 | { | 452 | { |
457 | 453 | ||
458 | QString filename = fileDlg->LineEdit1->text(); | 454 | QString filename = fileDlg->LineEdit1->text(); |
459 | destFile = thisDir->canonicalPath()+"/"+filename; | 455 | destFile = thisDir->canonicalPath()+"/"+filename; |
460 | 456 | ||
461 | QFile f(destFile); | 457 | QFile f(destFile); |
462 | if( f.exists()) | 458 | if( f.exists()) |
463 | { | 459 | { |
464 | switch (QMessageBox::warning(this,tr("Delete"), | 460 | switch (QMessageBox::warning(this,tr("Delete"), |
465 | destFile+tr(" already exists.\nDo you really want to delete it?"), | 461 | destFile+tr(" already exists.\nDo you really want to delete it?"), |
466 | tr("Yes"),tr("No"),0,0,1) ) { | 462 | tr("Yes"),tr("No"),0,0,1) ) { |
467 | case 0: | 463 | case 0: |
468 | 464 | ||
469 | f.remove(); | 465 | f.remove(); |
470 | break; | 466 | break; |
471 | case 1: | 467 | case 1: |
472 | return; | 468 | return; |
473 | break; | 469 | break; |
474 | }; | 470 | }; |
475 | } | 471 | } |
476 | if(!copyFile( curFile,destFile) ) | 472 | if(!copyFile( curFile,destFile) ) { |
477 | { | ||
478 | QMessageBox::message("AdvancedFm",tr("Could not copy\n") | 473 | QMessageBox::message("AdvancedFm",tr("Could not copy\n") |
479 | +curFile +tr("to\n")+destFile); | 474 | +curFile +tr("to\n")+destFile); |
480 | return; | 475 | return; |
481 | } | 476 | } |
482 | 477 | ||
483 | qDebug("copy "+curFile+" as "+destFile); | 478 | qDebug("copy "+curFile+" as "+destFile); |
484 | } | 479 | } |
485 | delete fileDlg; | 480 | delete fileDlg; |
486 | } | 481 | } |
487 | populateView(); | 482 | populateView(); |
488 | } | 483 | } |
489 | 484 | ||
490 | void AdvancedFm::move() | 485 | void AdvancedFm::move() |
491 | { | 486 | { |
492 | qApp->processEvents(); | 487 | qApp->processEvents(); |
493 | 488 | ||
494 | QStringList curFileList = getPath(); | 489 | QStringList curFileList = getPath(); |
495 | if( curFileList.count() > 0) | 490 | if( curFileList.count() > 0) |
496 | { | 491 | { |
497 | QString curFile, destFile, item; | 492 | QString curFile, destFile, item; |
498 | 493 | ||
499 | QDir *thisDir = CurrentDir(); | 494 | QDir *thisDir = CurrentDir(); |
500 | QDir *thatDir = OtherDir(); | 495 | QDir *thatDir = OtherDir(); |
501 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) | 496 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) |
502 | { | 497 | { |
503 | item=(*it); | 498 | item=(*it); |
504 | QString destFile = thatDir->canonicalPath(); | 499 | QString destFile = thatDir->canonicalPath(); |
505 | 500 | ||
506 | if(destFile.right(1).find("/",0,TRUE) == -1) | 501 | if(destFile.right(1).find("/",0,TRUE) == -1) |
507 | destFile+="/"; | 502 | destFile+="/"; |
508 | destFile += item; | 503 | destFile += item; |
509 | qDebug("Destination file is "+destFile); | 504 | qDebug("Destination file is "+destFile); |
510 | 505 | ||
511 | curFile = thisDir->canonicalPath(); | 506 | curFile = thisDir->canonicalPath(); |
512 | if(curFile.right(1).find("/",0,TRUE) == -1) | 507 | if(curFile.right(1).find("/",0,TRUE) == -1) |
513 | curFile +="/"; | 508 | curFile +="/"; |
514 | curFile+= item; | 509 | curFile+= item; |
515 | qDebug("CurrentFile file is " + curFile); | 510 | qDebug("CurrentFile file is " + curFile); |
516 | 511 | ||
517 | QFile f( curFile); | 512 | QFile f( curFile); |
518 | if( f.exists()) { | 513 | if( f.exists()) { |
519 | if( !copyFile( curFile, destFile) ) | 514 | if( !copyFile( curFile, destFile) ) { |
520 | { | ||
521 | QMessageBox::message(tr("Note"),tr("Could not move\n")+curFile); | 515 | QMessageBox::message(tr("Note"),tr("Could not move\n")+curFile); |
522 | return; | 516 | return; |
523 | } else | 517 | } else |
524 | QFile::remove(curFile); | 518 | QFile::remove(curFile); |
525 | } | 519 | } |
526 | } | 520 | } |
527 | 521 | ||
528 | } | 522 | } |
529 | setOtherTabCurrent(); | 523 | setOtherTabCurrent(); |
530 | populateView(); | 524 | populateView(); |
531 | // populateLocalView(); | 525 | // populateLocalView(); |
532 | } | 526 | } |
533 | 527 | ||
534 | bool AdvancedFm::copyFile( const QString & src, const QString & dest ) | 528 | bool AdvancedFm::copyFile( const QString & src, const QString & dest ) |
535 | { | 529 | { |
536 | // char bf[ 50000 ]; | ||
537 | // int bytesRead; | ||
538 | bool success = true; | 530 | bool success = true; |
539 | struct stat status; | 531 | struct stat status; |
540 | 532 | QFile srcFile(src); | |
541 | // QFile s( src ); | 533 | QFile destFile(dest); |
542 | // QFile d( dest ); | 534 | int err=0; |
543 | |||
544 | int read_fd=0; | 535 | int read_fd=0; |
545 | int write_fd=0; | 536 | int write_fd=0; |
546 | struct stat stat_buf; | 537 | struct stat stat_buf; |
547 | off_t offset = 0; | 538 | off_t offset = 0; |
548 | read_fd = ::open(src.latin1(), O_RDONLY); | 539 | if(!srcFile.open( IO_ReadOnly|IO_Raw)) { |
540 | qWarning("open failed"); | ||
541 | return success = false; | ||
542 | } | ||
543 | read_fd = srcFile.handle(); | ||
549 | if(read_fd != -1) { | 544 | if(read_fd != -1) { |
550 | fstat (read_fd, &stat_buf); | 545 | fstat (read_fd, &stat_buf); |
551 | write_fd = ::open(dest.latin1(), O_WRONLY | O_CREAT, stat_buf.st_mode); | 546 | if( !destFile.open( IO_WriteOnly|IO_Raw ) ) { |
547 | qWarning("destfile open failed"); | ||
548 | return success = false; | ||
549 | } | ||
550 | write_fd = destFile.handle(); | ||
552 | if(write_fd != -1) { | 551 | if(write_fd != -1) { |
553 | if(sendfile(write_fd, read_fd, &offset, stat_buf.st_size) == -1) { | 552 | err =sendfile(write_fd, read_fd, &offset, stat_buf.st_size); |
554 | success = false; | 553 | if( err == -1) { |
554 | QString msg; | ||
555 | switch(err) { | ||
556 | case EBADF : msg = "The input file was not opened for reading or the output file was not opened for writing. "; | ||
557 | case EINVAL: msg = "Descriptor is not valid or locked. "; | ||
558 | case ENOMEM: msg = "Insufficient memory to read from in_fd."; | ||
559 | case EIO: msg = "Unspecified error while reading from in_fd."; | ||
560 | }; | ||
561 | success = false; | ||
562 | qWarning(msg); | ||
555 | } | 563 | } |
556 | } else { | 564 | } else { |
557 | success = false; | 565 | success = false; |
558 | } | 566 | } |
559 | } else { | 567 | } else { |
560 | success = false; | 568 | success = false; |
561 | } | 569 | } |
562 | 570 | srcFile.close(); | |
563 | ::close (read_fd); | 571 | destFile.close(); |
564 | ::close (write_fd); | ||
565 | |||
566 | |||
567 | // if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) | ||
568 | // { | ||
569 | // while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) | ||
570 | // { | ||
571 | // if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){ | ||
572 | // success = FALSE; | ||
573 | // break; | ||
574 | // } | ||
575 | // } | ||
576 | // if( success && (bytesRead > 0) ) | ||
577 | // { | ||
578 | // d.writeBlock( bf, bytesRead ); | ||
579 | // } | ||
580 | |||
581 | // } | ||
582 | // else | ||
583 | // { | ||
584 | // success = FALSE; | ||
585 | // } | ||
586 | |||
587 | // Set file permissions | 572 | // Set file permissions |
588 | if( stat( (const char *) src, &status ) == 0 ) | 573 | if( stat( (const char *) src, &status ) == 0 ) { |
589 | { | ||
590 | chmod( (const char *) dest, status.st_mode ); | 574 | chmod( (const char *) dest, status.st_mode ); |
591 | } | 575 | } |
592 | 576 | ||
593 | return success; | 577 | return success; |
594 | } | 578 | } |
595 | 579 | ||
596 | void AdvancedFm::runCommand() | 580 | void AdvancedFm::runCommand() |
597 | { | 581 | { |
598 | QDir *thisDir = CurrentDir(); | 582 | QDir *thisDir = CurrentDir(); |
599 | 583 | ||
600 | QString curFile; | 584 | QString curFile; |
601 | curFile = thisDir->canonicalPath() +"/"+ CurrentView()->currentItem()->text(0); | 585 | curFile = thisDir->canonicalPath() +"/"+ CurrentView()->currentItem()->text(0); |
602 | 586 | ||
603 | InputDialog *fileDlg; | 587 | InputDialog *fileDlg; |
604 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); | 588 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); |
605 | fileDlg->setInputText(curFile); | 589 | fileDlg->setInputText(curFile); |
606 | fileDlg->exec(); | 590 | fileDlg->exec(); |
607 | //QString command; | 591 | //QString command; |
608 | 592 | ||
609 | if( fileDlg->result() == 1 ) | 593 | if( fileDlg->result() == 1 ) |
610 | { | 594 | { |
611 | qDebug(fileDlg->LineEdit1->text()); | 595 | qDebug(fileDlg->LineEdit1->text()); |
612 | QStringList command; | 596 | QStringList command; |
613 | 597 | ||
@@ -691,72 +675,65 @@ void AdvancedFm::mkSym() | |||
691 | QString destName = thatDir->canonicalPath()+"/"+(*it); | 675 | QString destName = thatDir->canonicalPath()+"/"+(*it); |
692 | if(destName.right(1) == "/") | 676 | if(destName.right(1) == "/") |
693 | { | 677 | { |
694 | destName = destName.left( destName.length() -1); | 678 | destName = destName.left( destName.length() -1); |
695 | } | 679 | } |
696 | 680 | ||
697 | QString curFile = thisDir->canonicalPath()+"/"+(*it); | 681 | QString curFile = thisDir->canonicalPath()+"/"+(*it); |
698 | 682 | ||
699 | if( curFile.right(1) == "/") | 683 | if( curFile.right(1) == "/") |
700 | { | 684 | { |
701 | curFile = curFile.left( curFile.length() -1); | 685 | curFile = curFile.left( curFile.length() -1); |
702 | } | 686 | } |
703 | 687 | ||
704 | cmd = "ln -s "+curFile+" "+destName; | 688 | cmd = "ln -s "+curFile+" "+destName; |
705 | qDebug(cmd); | 689 | qDebug(cmd); |
706 | startProcess( (const QString)cmd ); | 690 | startProcess( (const QString)cmd ); |
707 | } | 691 | } |
708 | setOtherTabCurrent(); | 692 | setOtherTabCurrent(); |
709 | populateView(); | 693 | populateView(); |
710 | } | 694 | } |
711 | } | 695 | } |
712 | 696 | ||
713 | void AdvancedFm::doBeam() | 697 | void AdvancedFm::doBeam() |
714 | { | 698 | { |
715 | Ir ir; | 699 | Ir ir; |
716 | if(!ir.supported()) | 700 | if(!ir.supported()) { |
717 | { | 701 | } else { |
718 | } | ||
719 | else | ||
720 | { | ||
721 | QStringList curFileList = getPath(); | 702 | QStringList curFileList = getPath(); |
722 | if( curFileList.count() > 0) | 703 | if( curFileList.count() > 0) { |
723 | { | 704 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
724 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) | 705 | QString curFile = (*it); |
725 | { | 706 | QString curFilePath = CurrentDir()->canonicalPath()+"/"+curFile; |
726 | 707 | if( curFilePath.right(1) == "/") { | |
727 | QString curFile = CurrentDir()->canonicalPath()+"/"+(*it); | 708 | curFilePath = curFilePath.left( curFilePath.length() -1); |
728 | if( curFile.right(1) == "/") | ||
729 | { | ||
730 | curFile = curFile.left( curFile.length() -1); | ||
731 | } | ||
732 | Ir *file = new Ir(this, "IR"); | ||
733 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); | ||
734 | file->send( curFile, curFile ); | ||
735 | } | 709 | } |
736 | } | 710 | Ir *file = new Ir(this, "IR"); |
737 | } | 711 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); |
738 | 712 | file->send( curFilePath, curFile ); | |
713 | } | ||
714 | } | ||
715 | } | ||
739 | } | 716 | } |
740 | 717 | ||
741 | void AdvancedFm::fileBeamFinished( Ir *) | 718 | void AdvancedFm::fileBeamFinished( Ir *) |
742 | { | 719 | { |
743 | QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); | 720 | QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); |
744 | } | 721 | } |
745 | 722 | ||
746 | void AdvancedFm::selectAll() | 723 | void AdvancedFm::selectAll() |
747 | { | 724 | { |
748 | // if (TabWidget->currentTab() == 0) { | 725 | // if (TabWidget->currentTab() == 0) { |
749 | QListView *thisView = CurrentView(); | 726 | QListView *thisView = CurrentView(); |
750 | thisView->selectAll(true); | 727 | thisView->selectAll(true); |
751 | thisView->setSelected( thisView->firstChild(),false); | 728 | thisView->setSelected( thisView->firstChild(),false); |
752 | // } else { | 729 | // } else { |
753 | // Remote_View->selectAll(true); | 730 | // Remote_View->selectAll(true); |
754 | // Remote_View->setSelected( Remote_View->firstChild(),false); | 731 | // Remote_View->setSelected( Remote_View->firstChild(),false); |
755 | // } | 732 | // } |
756 | } | 733 | } |
757 | 734 | ||
758 | void AdvancedFm::startProcess(const QString & cmd) | 735 | void AdvancedFm::startProcess(const QString & cmd) |
759 | { | 736 | { |
760 | QStringList command; | 737 | QStringList command; |
761 | OProcess *process; | 738 | OProcess *process; |
762 | process = new OProcess(); | 739 | process = new OProcess(); |