-rw-r--r-- | noncore/apps/advancedfm/advancedfm.h | 3 | ||||
-rw-r--r-- | noncore/apps/advancedfm/advancedfm.pro | 4 | ||||
-rw-r--r-- | noncore/apps/advancedfm/advancedfmMenu.cpp | 215 | ||||
-rw-r--r-- | noncore/apps/advancedfm/inputDialog.cpp | 44 | ||||
-rw-r--r-- | noncore/apps/advancedfm/inputDialog.h | 35 | ||||
-rw-r--r-- | noncore/apps/advancedfm/output.cpp | 142 | ||||
-rw-r--r-- | noncore/apps/advancedfm/output.h | 32 |
7 files changed, 274 insertions, 201 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h index 7bccce9..9948255 100644 --- a/noncore/apps/advancedfm/advancedfm.h +++ b/noncore/apps/advancedfm/advancedfm.h | |||
@@ -128,27 +128,30 @@ protected: | |||
128 | protected slots: | 128 | protected slots: |
129 | void showFileMenu(); | 129 | void showFileMenu(); |
130 | void cancelMenuTimer(); | 130 | void cancelMenuTimer(); |
131 | void homeButtonPushed(); | 131 | void homeButtonPushed(); |
132 | void docButtonPushed(); | 132 | void docButtonPushed(); |
133 | void SDButtonPushed(); | 133 | void SDButtonPushed(); |
134 | void CFButtonPushed(); | 134 | void CFButtonPushed(); |
135 | void QPEButtonPushed(); | 135 | void QPEButtonPushed(); |
136 | void upDir(); | 136 | void upDir(); |
137 | void currentPathComboChanged(); | 137 | void currentPathComboChanged(); |
138 | void copy(); | 138 | void copy(); |
139 | void copyAs(); | 139 | void copyAs(); |
140 | void copySameDir(); | 140 | void copySameDir(); |
141 | void currentPathComboActivated(const QString &); | 141 | void currentPathComboActivated(const QString &); |
142 | void fillCombo(const QString &); | 142 | void fillCombo(const QString &); |
143 | bool copyFile( const QString & , const QString & ); | 143 | bool copyFile( const QString & , const QString & ); |
144 | void move(); | 144 | void move(); |
145 | void fileStatus(); | 145 | void fileStatus(); |
146 | void doAbout(); | 146 | void doAbout(); |
147 | void doBeam(); | 147 | void doBeam(); |
148 | void fileBeamFinished( Ir *); | 148 | void fileBeamFinished( Ir *); |
149 | 149 | ||
150 | private: | 150 | private: |
151 | QTimer menuTimer; | 151 | QTimer menuTimer; |
152 | void startProcess(const QString &); | ||
153 | private slots: | ||
154 | void processEnded(); | ||
152 | }; | 155 | }; |
153 | 156 | ||
154 | #endif // ADVANCEDFM_H | 157 | #endif // ADVANCEDFM_H |
diff --git a/noncore/apps/advancedfm/advancedfm.pro b/noncore/apps/advancedfm/advancedfm.pro index bda2fdf..0e037a1 100644 --- a/noncore/apps/advancedfm/advancedfm.pro +++ b/noncore/apps/advancedfm/advancedfm.pro | |||
@@ -1,24 +1,24 @@ | |||
1 | TEMPLATE = app | 1 | TEMPLATE = app |
2 | CONFIG += qt warn_on release | 2 | CONFIG += qt warn_on release |
3 | HEADERS = advancedfm.h inputDialog.h filePermissions.h output.h | 3 | HEADERS = advancedfm.h filePermissions.h output.h |
4 | SOURCES = advancedfm.cpp advancedfmData.cpp advancedfmMenu.cpp inputDialog.cpp filePermissions.cpp output.cpp main.cpp | 4 | SOURCES = advancedfm.cpp advancedfmData.cpp advancedfmMenu.cpp filePermissions.cpp output.cpp main.cpp |
5 | TARGET = advancedfm | 5 | TARGET = advancedfm |
6 | INCLUDEPATH += $(OPIEDIR)/include | 6 | INCLUDEPATH += $(OPIEDIR)/include |
7 | DEPENDPATH += $(OPIEDIR)/include | 7 | DEPENDPATH += $(OPIEDIR)/include |
8 | DESTDIR = $(OPIEDIR)/bin | 8 | DESTDIR = $(OPIEDIR)/bin |
9 | LIBS += -lqpe -lopie | 9 | LIBS += -lqpe -lopie |
10 | 10 | ||
11 | TRANSLATIONS = ../../../i18n/de/advancedfm.ts \ | 11 | TRANSLATIONS = ../../../i18n/de/advancedfm.ts \ |
12 | ../../../i18n/en/advancedfm.ts \ | 12 | ../../../i18n/en/advancedfm.ts \ |
13 | ../../../i18n/es/advancedfm.ts \ | 13 | ../../../i18n/es/advancedfm.ts \ |
14 | ../../../i18n/fr/advancedfm.ts \ | 14 | ../../../i18n/fr/advancedfm.ts \ |
15 | ../../../i18n/hu/advancedfm.ts \ | 15 | ../../../i18n/hu/advancedfm.ts \ |
16 | ../../../i18n/ja/advancedfm.ts \ | 16 | ../../../i18n/ja/advancedfm.ts \ |
17 | ../../../i18n/ko/advancedfm.ts \ | 17 | ../../../i18n/ko/advancedfm.ts \ |
18 | ../../../i18n/no/advancedfm.ts \ | 18 | ../../../i18n/no/advancedfm.ts \ |
19 | ../../../i18n/pl/advancedfm.ts \ | 19 | ../../../i18n/pl/advancedfm.ts \ |
20 | ../../../i18n/pt/advancedfm.ts \ | 20 | ../../../i18n/pt/advancedfm.ts \ |
21 | ../../../i18n/pt_BR/advancedfm.ts \ | 21 | ../../../i18n/pt_BR/advancedfm.ts \ |
22 | ../../../i18n/sl/advancedfm.ts \ | 22 | ../../../i18n/sl/advancedfm.ts \ |
23 | ../../../i18n/zh_CN/advancedfm.ts \ | 23 | ../../../i18n/zh_CN/advancedfm.ts \ |
24 | ../../../i18n/zh_TW/advancedfm.ts | 24 | ../../../i18n/zh_TW/advancedfm.ts |
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp index f89ad30..0a9f921 100644 --- a/noncore/apps/advancedfm/advancedfmMenu.cpp +++ b/noncore/apps/advancedfm/advancedfmMenu.cpp | |||
@@ -1,41 +1,41 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | AdvancedFm.cpp | 2 | AdvancedFm.cpp |
3 | ------------------- | 3 | ------------------- |
4 | ** Created: Sat Mar 9 23:33:09 2002 | 4 | ** Created: Sat Mar 9 23:33:09 2002 |
5 | copyright : (C) 2002 by ljp | 5 | copyright : (C) 2002 by ljp |
6 | email : ljp@llornkcor.com | 6 | email : ljp@llornkcor.com |
7 | * This program is free software; you can redistribute it and/or modify * | 7 | * This program is free software; you can redistribute it and/or modify * |
8 | * it under the terms of the GNU General Public License as published by * | 8 | * it under the terms of the GNU General Public License as published by * |
9 | * the Free Software Foundation; either version 2 of the License, or * | 9 | * the Free Software Foundation; either version 2 of the License, or * |
10 | * (at your option) any later version. * | 10 | * (at your option) any later version. * |
11 | ***************************************************************************/ | 11 | ***************************************************************************/ |
12 | #include "advancedfm.h" | 12 | #include "advancedfm.h" |
13 | #include "inputDialog.h" | ||
14 | #include "output.h" | 13 | #include "output.h" |
15 | #include "filePermissions.h" | 14 | #include "filePermissions.h" |
16 | 15 | ||
17 | #include <opie/otabwidget.h> | 16 | #include <opie/otabwidget.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/qpemenubar.h> | 21 | #include <qpe/qpemenubar.h> |
22 | #include <qpe/qpetoolbar.h> | 22 | #include <qpe/qpetoolbar.h> |
23 | #include <qpe/resource.h> | 23 | #include <qpe/resource.h> |
24 | #include <qpe/qcopenvelope_qws.h> | 24 | #include <qpe/qcopenvelope_qws.h> |
25 | #include <qpe/applnk.h> | 25 | #include <qpe/applnk.h> |
26 | #include <qpe/ir.h> | 26 | #include <qpe/ir.h> |
27 | 27 | ||
28 | #include <qmessagebox.h> | 28 | #include <qmessagebox.h> |
29 | #include <qmultilineedit.h> | 29 | #include <qmultilineedit.h> |
30 | 30 | ||
31 | #include <qstring.h> | 31 | #include <qstring.h> |
32 | 32 | ||
33 | #include <qlayout.h> | 33 | #include <qlayout.h> |
34 | #include <qpixmap.h> | 34 | #include <qpixmap.h> |
35 | #include <qcombobox.h> | 35 | #include <qcombobox.h> |
36 | #include <qpopupmenu.h> | 36 | #include <qpopupmenu.h> |
37 | #include <qtabwidget.h> | 37 | #include <qtabwidget.h> |
38 | #include <qtoolbutton.h> | 38 | #include <qtoolbutton.h> |
39 | #include <qtabwidget.h> | 39 | #include <qtabwidget.h> |
40 | #include <qlineedit.h> | 40 | #include <qlineedit.h> |
41 | #include <qlistview.h> | 41 | #include <qlistview.h> |
@@ -212,136 +212,134 @@ void AdvancedFm::localDelete() { | |||
212 | break; | 212 | break; |
213 | case 1: | 213 | case 1: |
214 | return; | 214 | return; |
215 | break; | 215 | break; |
216 | }; | 216 | }; |
217 | } | 217 | } |
218 | 218 | ||
219 | QString myFile; | 219 | QString myFile; |
220 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 220 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
221 | myFile = (*it); | 221 | myFile = (*it); |
222 | if( myFile.find(" -> ",0,TRUE) != -1) | 222 | if( myFile.find(" -> ",0,TRUE) != -1) |
223 | myFile = myFile.left( myFile.find(" -> ",0,TRUE)); | 223 | myFile = myFile.left( myFile.find(" -> ",0,TRUE)); |
224 | 224 | ||
225 | QString f = currentDir.canonicalPath(); | 225 | QString f = currentDir.canonicalPath(); |
226 | if(f.right(1).find("/",0,TRUE) == -1) | 226 | if(f.right(1).find("/",0,TRUE) == -1) |
227 | f+="/"; | 227 | f+="/"; |
228 | f+=myFile; | 228 | f+=myFile; |
229 | if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { | 229 | if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { |
230 | switch ( QMessageBox::warning(this,tr("Delete Directory?"),tr("Really delete\n")+f+ | 230 | switch ( QMessageBox::warning(this,tr("Delete Directory?"),tr("Really delete\n")+f+ |
231 | "\nand all it's contents ?" | 231 | "\nand all it's contents ?" |
232 | ,tr("Yes"),tr("No"),0,0,1) ) { | 232 | ,tr("Yes"),tr("No"),0,0,1) ) { |
233 | case 0: { | 233 | case 0: { |
234 | f=f.left(f.length()-1); | 234 | f=f.left(f.length()-1); |
235 | QString cmd="rm -rf "+f; | 235 | QString cmd="rm -rf "+f; |
236 | system( cmd.latin1()); | 236 | startProcess( (const QString)cmd.latin1() ); |
237 | populateLocalView(); | 237 | populateLocalView(); |
238 | } | 238 | } |
239 | break; | 239 | break; |
240 | case 1: | 240 | case 1: |
241 | // exit | 241 | // exit |
242 | break; | 242 | break; |
243 | }; | 243 | }; |
244 | 244 | ||
245 | } else { | 245 | } else { |
246 | if(doMsg) { | 246 | if(doMsg) { |
247 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f | 247 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f |
248 | +" ?",tr("Yes"),tr("No"),0,0,1) ) { | 248 | +" ?",tr("Yes"),tr("No"),0,0,1) ) { |
249 | case 1: | 249 | case 1: |
250 | return; | 250 | return; |
251 | break; | 251 | break; |
252 | }; | 252 | }; |
253 | } | 253 | } |
254 | QString cmd="rm "+f; | 254 | QString cmd="rm "+f; |
255 | QFile file(f); | 255 | QFile file(f); |
256 | if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) | 256 | if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) |
257 | file.remove(); | 257 | file.remove(); |
258 | // system( cmd.latin1()); | ||
259 | } | 258 | } |
260 | } | 259 | } |
261 | } | 260 | } |
262 | populateLocalView(); | 261 | populateLocalView(); |
263 | } | 262 | } |
264 | 263 | ||
265 | void AdvancedFm::remoteDelete() { | 264 | void AdvancedFm::remoteDelete() { |
266 | QStringList curFileList = getPath(); | 265 | QStringList curFileList = getPath(); |
267 | bool doMsg=true; | 266 | bool doMsg=true; |
268 | int count=curFileList.count(); | 267 | int count=curFileList.count(); |
269 | if( count > 0) { | 268 | if( count > 0) { |
270 | if(count > 1 ){ | 269 | if(count > 1 ){ |
271 | QString msg; | 270 | QString msg; |
272 | msg=tr("Really delete\n%1 files?").arg(count); | 271 | msg=tr("Really delete\n%1 files?").arg(count); |
273 | switch ( QMessageBox::warning(this,tr("Delete"),msg | 272 | switch ( QMessageBox::warning(this,tr("Delete"),msg |
274 | ,tr("Yes"),tr("No"),0,0,1) ) { | 273 | ,tr("Yes"),tr("No"),0,0,1) ) { |
275 | case 0: | 274 | case 0: |
276 | doMsg=false; | 275 | doMsg=false; |
277 | break; | 276 | break; |
278 | case 1: | 277 | case 1: |
279 | return; | 278 | return; |
280 | break; | 279 | break; |
281 | }; | 280 | }; |
282 | } | 281 | } |
283 | 282 | ||
284 | QString myFile; | 283 | QString myFile; |
285 | 284 | ||
286 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 285 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
287 | myFile = (*it); | 286 | myFile = (*it); |
288 | if(myFile.find(" -> ",0,TRUE) != -1) | 287 | if(myFile.find(" -> ",0,TRUE) != -1) |
289 | myFile = myFile.left(myFile.find(" -> ",0,TRUE)); | 288 | myFile = myFile.left(myFile.find(" -> ",0,TRUE)); |
290 | QString f = currentRemoteDir.canonicalPath(); | 289 | QString f = currentRemoteDir.canonicalPath(); |
291 | if(f.right(1).find("/",0,TRUE) == -1) | 290 | if(f.right(1).find("/",0,TRUE) == -1) |
292 | f+="/"; | 291 | f+="/"; |
293 | f+=myFile; | 292 | f+=myFile; |
294 | if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { | 293 | if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { |
295 | switch ( QMessageBox::warning(this,tr("Delete Directory"),tr("Really delete\n")+f+ | 294 | switch ( QMessageBox::warning(this,tr("Delete Directory"),tr("Really delete\n")+f+ |
296 | "\nand all it's contents ?", | 295 | "\nand all it's contents ?", |
297 | tr("Yes"),tr("No"),0,0,1) ) { | 296 | tr("Yes"),tr("No"),0,0,1) ) { |
298 | case 0: { | 297 | case 0: { |
299 | f=f.left(f.length()-1); | 298 | f=f.left(f.length()-1); |
300 | QString cmd="rm -rf "+f; | 299 | QString cmd="rm -rf "+f; |
301 | system( cmd.latin1()); | 300 | startProcess( (const QString)cmd ); |
302 | populateRemoteView(); | 301 | populateRemoteView(); |
303 | } | 302 | } |
304 | break; | 303 | break; |
305 | case 1: | 304 | case 1: |
306 | // exit | 305 | // exit |
307 | break; | 306 | break; |
308 | }; | 307 | }; |
309 | 308 | ||
310 | } else { | 309 | } else { |
311 | if(doMsg) { | 310 | if(doMsg) { |
312 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f | 311 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Really delete\n")+f |
313 | +" ?",tr("Yes"),tr("No"),0,0,1) ) { | 312 | +" ?",tr("Yes"),tr("No"),0,0,1) ) { |
314 | case 1: | 313 | case 1: |
315 | return; | 314 | return; |
316 | break; | 315 | break; |
317 | }; | 316 | }; |
318 | } | 317 | } |
319 | QString cmd="rm "+f; | 318 | QString cmd="rm "+f; |
320 | QFile file(f); | 319 | QFile file(f); |
321 | if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) | 320 | if(QFileInfo(myFile).fileName().find("../",0,TRUE)==-1) |
322 | file.remove(); | 321 | file.remove(); |
323 | // system( cmd.latin1()); | ||
324 | } | 322 | } |
325 | } | 323 | } |
326 | } | 324 | } |
327 | populateRemoteView(); | 325 | populateRemoteView(); |
328 | } | 326 | } |
329 | 327 | ||
330 | void AdvancedFm::localRename() { | 328 | void AdvancedFm::localRename() { |
331 | QString curFile = Local_View->currentItem()->text(0); | 329 | QString curFile = Local_View->currentItem()->text(0); |
332 | qDebug("currentItem "+curFile); | 330 | qDebug("currentItem "+curFile); |
333 | if( curFile !="../") { | 331 | if( curFile !="../") { |
334 | InputDialog *fileDlg; | 332 | InputDialog *fileDlg; |
335 | fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); | 333 | fileDlg = new InputDialog(this,tr("Rename"),TRUE, 0); |
336 | fileDlg->setInputText((const QString &)curFile); | 334 | fileDlg->setInputText((const QString &)curFile); |
337 | fileDlg->exec(); | 335 | fileDlg->exec(); |
338 | if( fileDlg->result() == 1 ) { | 336 | if( fileDlg->result() == 1 ) { |
339 | QString oldname = currentDir.canonicalPath() + "/" + curFile; | 337 | QString oldname = currentDir.canonicalPath() + "/" + curFile; |
340 | QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text(); | 338 | QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text(); |
341 | //+".playlist"; | 339 | //+".playlist"; |
342 | if( rename(oldname.latin1(), newName.latin1())== -1) | 340 | if( rename(oldname.latin1(), newName.latin1())== -1) |
343 | QMessageBox::message(tr("Note"),tr("Could not rename")); | 341 | QMessageBox::message(tr("Note"),tr("Could not rename")); |
344 | } | 342 | } |
345 | populateLocalView(); | 343 | populateLocalView(); |
346 | } | 344 | } |
347 | } | 345 | } |
@@ -789,206 +787,205 @@ bool AdvancedFm::copyFile( const QString & dest, const QString & src ) { | |||
789 | 787 | ||
790 | if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) { | 788 | if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) { |
791 | while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) { | 789 | while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) { |
792 | if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){ | 790 | if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){ |
793 | success = FALSE; | 791 | success = FALSE; |
794 | break; | 792 | break; |
795 | } | 793 | } |
796 | } | 794 | } |
797 | if( success && (bytesRead > 0) ){ | 795 | if( success && (bytesRead > 0) ){ |
798 | d.writeBlock( bf, bytesRead ); | 796 | d.writeBlock( bf, bytesRead ); |
799 | } | 797 | } |
800 | } else { | 798 | } else { |
801 | success = FALSE; | 799 | success = FALSE; |
802 | } | 800 | } |
803 | 801 | ||
804 | // Set file permissions | 802 | // Set file permissions |
805 | if( stat( (const char *) src, &status ) == 0 ){ | 803 | if( stat( (const char *) src, &status ) == 0 ){ |
806 | chmod( (const char *) dest, status.st_mode ); | 804 | chmod( (const char *) dest, status.st_mode ); |
807 | } | 805 | } |
808 | 806 | ||
809 | return success; | 807 | return success; |
810 | } | 808 | } |
811 | 809 | ||
812 | void AdvancedFm::runCommand() { | 810 | void AdvancedFm::runCommand() { |
813 | QString curFile; | 811 | QString curFile; |
814 | if (TabWidget->getCurrentTab() == 0) { | 812 | if (TabWidget->getCurrentTab() == 0) { |
815 | if( Local_View->currentItem()) | 813 | if( Local_View->currentItem()) |
816 | curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); | 814 | curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); |
817 | } else { | ||
818 | if(Remote_View->currentItem()) | ||
819 | curFile = currentRemoteDir.canonicalPath() + "/"+Remote_View->currentItem()->text(0); | ||
820 | } | ||
821 | |||
822 | InputDialog *fileDlg; | ||
823 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); | ||
824 | fileDlg->setInputText(curFile); | ||
825 | fileDlg->exec(); | ||
826 | QString command; | ||
827 | if( fileDlg->result() == 1 ) { | ||
828 | command = fileDlg->LineEdit1->text(); | ||
829 | |||
830 | Output *outDlg; | ||
831 | outDlg = new Output(this, tr("AdvancedFm Output"),FALSE); | ||
832 | outDlg->showMaximized(); | ||
833 | outDlg->show(); | ||
834 | qApp->processEvents(); | ||
835 | FILE *fp; | ||
836 | char line[130]; | ||
837 | sleep(1); | ||
838 | command +=" 2>&1"; | ||
839 | fp = popen( (const char *) command, "r"); | ||
840 | if ( !fp ) { | ||
841 | qDebug("Could not execute '" + command + "'! err=%d", fp); | ||
842 | QMessageBox::warning( this, "AdvancedFm", tr("command failed!"), tr("&OK") ); | ||
843 | pclose(fp); | ||
844 | return; | ||
845 | } else { | 815 | } else { |
846 | while ( fgets( line, sizeof line, fp)) { | 816 | if(Remote_View->currentItem()) |
847 | QString lineStr = line; | 817 | curFile = currentRemoteDir.canonicalPath() + "/"+Remote_View->currentItem()->text(0); |
848 | lineStr=lineStr.left(lineStr.length()-1); | ||
849 | outDlg->OutputEdit->append(lineStr); | ||
850 | outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); | ||
851 | } | ||
852 | } | 818 | } |
853 | pclose(fp); | ||
854 | 819 | ||
855 | } | 820 | InputDialog *fileDlg; |
821 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); | ||
822 | fileDlg->setInputText(curFile); | ||
823 | fileDlg->exec(); | ||
824 | //QString command; | ||
825 | |||
826 | if( fileDlg->result() == 1 ) { | ||
827 | qDebug(fileDlg->LineEdit1->text()); | ||
828 | QStringList command; | ||
829 | |||
830 | command << "/bin/sh"; | ||
831 | command << "-c"; | ||
832 | command << fileDlg->LineEdit1->text(); | ||
833 | Output *outDlg; | ||
834 | outDlg = new Output( command, this, tr("AdvancedFm Output"), true); | ||
835 | outDlg->showMaximized(); | ||
836 | outDlg->exec(); | ||
837 | qApp->processEvents(); | ||
838 | |||
839 | } | ||
856 | } | 840 | } |
857 | 841 | ||
858 | void AdvancedFm::runCommandStd() { | 842 | void AdvancedFm::runCommandStd() { |
859 | QString curFile; | 843 | QString curFile; |
860 | if (TabWidget->getCurrentTab() == 0) { | 844 | if (TabWidget->getCurrentTab() == 0) { |
861 | if( Local_View->currentItem()) | 845 | if( Local_View->currentItem()) |
862 | curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); | 846 | curFile = currentDir.canonicalPath() +"/"+ Local_View->currentItem()->text(0); |
863 | } else { | 847 | } else { |
864 | if(Remote_View->currentItem()) | 848 | if(Remote_View->currentItem()) |
865 | curFile = currentRemoteDir.canonicalPath() +"/" | 849 | curFile = currentRemoteDir.canonicalPath() +"/" |
866 | + Remote_View->currentItem()->text(0); | 850 | + Remote_View->currentItem()->text(0); |
867 | } | 851 | } |
868 | 852 | ||
869 | InputDialog *fileDlg; | 853 | InputDialog *fileDlg; |
870 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); | 854 | fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0); |
871 | fileDlg->setInputText(curFile); | 855 | fileDlg->setInputText(curFile); |
872 | fileDlg->exec(); | 856 | fileDlg->exec(); |
873 | QString command; | 857 | |
874 | if( fileDlg->result() == 1 ) { | 858 | if( fileDlg->result() == 1 ) { |
875 | qApp->processEvents(); | 859 | qApp->processEvents(); |
876 | command = fileDlg->LineEdit1->text() + " &"; | 860 | startProcess( (const QString)fileDlg->LineEdit1->text().latin1()); |
877 | system(command.latin1()); | ||
878 | } | 861 | } |
879 | } | 862 | } |
880 | 863 | ||
881 | void AdvancedFm::fileStatus() { | 864 | void AdvancedFm::fileStatus() { |
882 | QString curFile; | 865 | QString curFile; |
883 | if (TabWidget->getCurrentTab() == 0) { | 866 | if (TabWidget->getCurrentTab() == 0) { |
884 | curFile = Local_View->currentItem()->text(0); | 867 | curFile = Local_View->currentItem()->text(0); |
885 | } else { | 868 | } else { |
886 | curFile = Remote_View->currentItem()->text(0); | 869 | curFile = Remote_View->currentItem()->text(0); |
887 | } | 870 | } |
888 | QString command = " stat -l "+ curFile +" 2>&1"; | ||
889 | Output *outDlg; | ||
890 | outDlg = new Output(this, tr("AdvancedFm Output"),FALSE); | ||
891 | outDlg->showMaximized(); | ||
892 | outDlg->show(); | ||
893 | qApp->processEvents(); | ||
894 | FILE *fp; | ||
895 | char line[130]; | ||
896 | sleep(1); | ||
897 | fp = popen( (const char *) command, "r"); | ||
898 | if ( !fp ) { | ||
899 | qDebug("Could not execute '" + command + "'! err=%d", fp); | ||
900 | QMessageBox::warning( this, "AdvancedFm", tr("command failed!"), tr("&OK") ); | ||
901 | pclose(fp); | ||
902 | return; | ||
903 | } else { | ||
904 | while ( fgets( line, sizeof line, fp)) { | ||
905 | outDlg->OutputEdit->append(line); | ||
906 | outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); | ||
907 | 871 | ||
908 | } | 872 | QStringList command; |
873 | command << "/bin/sh"; | ||
874 | command << "-c"; | ||
875 | command << "stat -l "+ curFile; | ||
909 | 876 | ||
910 | } | 877 | Output *outDlg; |
911 | pclose(fp); | 878 | outDlg = new Output( command, this, tr("AdvancedFm Output"), true); |
879 | outDlg->showMaximized(); | ||
880 | outDlg->exec(); | ||
881 | qApp->processEvents(); | ||
882 | |||
883 | |||
884 | // Output *outDlg; | ||
885 | // outDlg = new Output(this, tr("AdvancedFm Output"),FALSE); | ||
886 | // outDlg->showMaximized(); | ||
887 | // outDlg->show(); | ||
888 | // qApp->processEvents(); | ||
889 | |||
890 | // FILE *fp; | ||
891 | // char line[130]; | ||
892 | // sleep(1); | ||
893 | // fp = popen( (const char *) command, "r"); | ||
894 | // if ( !fp ) { | ||
895 | // qDebug("Could not execute '" + command + "'! err=%d", fp); | ||
896 | // QMessageBox::warning( this, "AdvancedFm", tr("command failed!"), tr("&OK") ); | ||
897 | // pclose(fp); | ||
898 | // return; | ||
899 | // } else { | ||
900 | // while ( fgets( line, sizeof line, fp)) { | ||
901 | // outDlg->OutputEdit->append(line); | ||
902 | // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); | ||
903 | |||
904 | // } | ||
905 | |||
906 | // } | ||
907 | // pclose(fp); | ||
912 | } | 908 | } |
913 | 909 | ||
910 | |||
914 | void AdvancedFm::mkDir() { | 911 | void AdvancedFm::mkDir() { |
915 | if (TabWidget->getCurrentTab() == 0) | 912 | if (TabWidget->getCurrentTab() == 0) |
916 | localMakDir(); | 913 | localMakDir(); |
917 | else | 914 | else |
918 | remoteMakDir(); | 915 | remoteMakDir(); |
919 | 916 | ||
920 | } | 917 | } |
921 | 918 | ||
922 | void AdvancedFm::rn() { | 919 | void AdvancedFm::rn() { |
923 | if (TabWidget->getCurrentTab() == 0) | 920 | if (TabWidget->getCurrentTab() == 0) |
924 | localRename(); | 921 | localRename(); |
925 | else | 922 | else |
926 | remoteRename(); | 923 | remoteRename(); |
927 | 924 | ||
928 | } | 925 | } |
929 | 926 | ||
930 | void AdvancedFm::del() { | 927 | void AdvancedFm::del() { |
931 | if (TabWidget->getCurrentTab() == 0) | 928 | if (TabWidget->getCurrentTab() == 0) |
932 | localDelete(); | 929 | localDelete(); |
933 | else | 930 | else |
934 | remoteDelete(); | 931 | remoteDelete(); |
935 | } | 932 | } |
936 | 933 | ||
937 | void AdvancedFm::mkSym() { | 934 | void AdvancedFm::mkSym() { |
938 | QString cmd; | 935 | QString cmd; |
939 | QStringList curFileList = getPath(); | 936 | QStringList curFileList = getPath(); |
940 | if( curFileList.count() > 0) { | 937 | if( curFileList.count() > 0) { |
941 | 938 | ||
942 | if (TabWidget->getCurrentTab() == 0) { | 939 | if (TabWidget->getCurrentTab() == 0) { |
943 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 940 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
944 | 941 | ||
945 | QString destName = currentRemoteDir.canonicalPath()+"/"+(*it); | 942 | QString destName = currentRemoteDir.canonicalPath()+"/"+(*it); |
946 | if(destName.right(1) == "/") destName = destName.left( destName.length() -1); | 943 | if(destName.right(1) == "/") destName = destName.left( destName.length() -1); |
947 | QString curFile = currentDir.canonicalPath()+"/"+(*it); | 944 | QString curFile = currentDir.canonicalPath()+"/"+(*it); |
948 | if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); | 945 | if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); |
949 | cmd = "ln -s "+curFile+" "+destName; | 946 | cmd = "ln -s "+curFile+" "+destName; |
950 | qDebug(cmd); | 947 | qDebug(cmd); |
951 | system(cmd.latin1() ); | 948 | startProcess( (const QString)cmd ); |
952 | } | 949 | } |
953 | populateRemoteView(); | 950 | populateRemoteView(); |
954 | TabWidget->setCurrentTab(1); | 951 | TabWidget->setCurrentTab(1); |
955 | } else { | 952 | } else { |
956 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 953 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
957 | 954 | ||
958 | QString destName = currentDir.canonicalPath()+"/"+(*it); | 955 | QString destName = currentDir.canonicalPath()+"/"+(*it); |
959 | if(destName.right(1) == "/") destName = destName.left( destName.length() -1); | 956 | if(destName.right(1) == "/") destName = destName.left( destName.length() -1); |
960 | QString curFile = currentRemoteDir.canonicalPath()+"/"+(*it); | 957 | QString curFile = currentRemoteDir.canonicalPath()+"/"+(*it); |
961 | if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); | 958 | if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); |
962 | 959 | ||
963 | cmd = "ln -s "+curFile+" "+destName; | 960 | cmd = "ln -s "+curFile+" "+destName; |
964 | qDebug(cmd); | 961 | qDebug(cmd); |
965 | system(cmd.latin1() ); | 962 | startProcess( (const QString)cmd ); |
966 | } | 963 | } |
967 | populateLocalView(); | 964 | populateLocalView(); |
968 | TabWidget->setCurrentTab(0); | 965 | TabWidget->setCurrentTab(0); |
966 | } | ||
969 | } | 967 | } |
970 | } | ||
971 | } | 968 | } |
972 | 969 | ||
973 | void AdvancedFm::doBeam() { | 970 | void AdvancedFm::doBeam() { |
974 | Ir ir; | 971 | Ir ir; |
975 | if(!ir.supported()){ | 972 | if(!ir.supported()){ |
976 | } else { | 973 | } else { |
977 | 974 | ||
978 | QStringList curFileList = getPath(); | 975 | QStringList curFileList = getPath(); |
979 | if( curFileList.count() > 0) { | 976 | if( curFileList.count() > 0) { |
980 | 977 | ||
981 | if (TabWidget->getCurrentTab() == 0) { | 978 | if (TabWidget->getCurrentTab() == 0) { |
982 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 979 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
983 | 980 | ||
984 | QString curFile = currentDir.canonicalPath()+"/"+(*it); | 981 | QString curFile = currentDir.canonicalPath()+"/"+(*it); |
985 | if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); | 982 | if( curFile.right(1) == "/") curFile = curFile.left( curFile.length() -1); |
986 | Ir *file = new Ir(this, "IR"); | 983 | Ir *file = new Ir(this, "IR"); |
987 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); | 984 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); |
988 | file->send( curFile, curFile ); | 985 | file->send( curFile, curFile ); |
989 | } | 986 | } |
990 | 987 | ||
991 | } else { | 988 | } else { |
992 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { | 989 | for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { |
993 | 990 | ||
994 | QString curFile = currentRemoteDir.canonicalPath()+"/"+(*it); | 991 | QString curFile = currentRemoteDir.canonicalPath()+"/"+(*it); |
@@ -997,24 +994,44 @@ void AdvancedFm::doBeam() { | |||
997 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); | 994 | connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished( Ir * ))); |
998 | file->send( curFile, curFile ); | 995 | file->send( curFile, curFile ); |
999 | 996 | ||
1000 | } | 997 | } |
1001 | } | 998 | } |
1002 | } | 999 | } |
1003 | } | 1000 | } |
1004 | 1001 | ||
1005 | } | 1002 | } |
1006 | 1003 | ||
1007 | void AdvancedFm::fileBeamFinished( Ir *) { | 1004 | void AdvancedFm::fileBeamFinished( Ir *) { |
1008 | QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); | 1005 | QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") ); |
1009 | 1006 | ||
1010 | } | 1007 | } |
1011 | 1008 | ||
1012 | void AdvancedFm::selectAll() { | 1009 | void AdvancedFm::selectAll() { |
1013 | if (TabWidget->getCurrentTab() == 0) { | 1010 | if (TabWidget->getCurrentTab() == 0) { |
1014 | Local_View->selectAll(true); | 1011 | Local_View->selectAll(true); |
1015 | Local_View->setSelected( Local_View->firstChild(),false); | 1012 | Local_View->setSelected( Local_View->firstChild(),false); |
1016 | } else { | 1013 | } else { |
1017 | Remote_View->selectAll(true); | 1014 | Remote_View->selectAll(true); |
1018 | Remote_View->setSelected( Remote_View->firstChild(),false); | 1015 | Remote_View->setSelected( Remote_View->firstChild(),false); |
1019 | } | 1016 | } |
1020 | } | 1017 | } |
1018 | |||
1019 | void AdvancedFm::startProcess(const QString & cmd) { | ||
1020 | QStringList command; | ||
1021 | OProcess *process; | ||
1022 | process = new OProcess(); | ||
1023 | connect(process, SIGNAL(processExited(OProcess *)), | ||
1024 | this, SLOT( processEnded())); | ||
1025 | |||
1026 | command << "/bin/sh"; | ||
1027 | command << "-c"; | ||
1028 | command << cmd.latin1(); | ||
1029 | *process << command; | ||
1030 | if(!process->start(OProcess::NotifyOnExit) ) | ||
1031 | qDebug("could not start process"); | ||
1032 | } | ||
1033 | |||
1034 | void AdvancedFm::processEnded() { | ||
1035 | populateLocalView(); | ||
1036 | populateRemoteView(); | ||
1037 | } | ||
diff --git a/noncore/apps/advancedfm/inputDialog.cpp b/noncore/apps/advancedfm/inputDialog.cpp deleted file mode 100644 index 5af0f72..0000000 --- a/noncore/apps/advancedfm/inputDialog.cpp +++ b/dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | /**************************************************************************** | ||
2 | inputDialog.cpp | ||
3 | ------------------- | ||
4 | ** Created: Sat Mar 9 23:33:09 2002 | ||
5 | copyright : (C) 2002 by ljp | ||
6 | email : ljp@llornkcor.com | ||
7 | * This program is free software; you can redistribute it and/or modify * | ||
8 | * it under the terms of the GNU General Public License as published by * | ||
9 | * the Free Software Foundation; either version 2 of the License, or * | ||
10 | * (at your option) any later version. * | ||
11 | ***************************************************************************/ | ||
12 | |||
13 | #include "inputDialog.h" | ||
14 | |||
15 | #include <qlineedit.h> | ||
16 | #include <qlayout.h> | ||
17 | #include <qvariant.h> | ||
18 | #include <qtooltip.h> | ||
19 | #include <qwhatsthis.h> | ||
20 | |||
21 | |||
22 | InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) | ||
23 | : QDialog( parent, name, modal, fl ) | ||
24 | { | ||
25 | if ( !name ) | ||
26 | setName( "InputDialog" ); | ||
27 | resize( 234, 50 ); | ||
28 | setMaximumSize( QSize( 240, 50 ) ); | ||
29 | setCaption( tr(name ) ); | ||
30 | |||
31 | LineEdit1 = new QLineEdit( this, "LineEdit1" ); | ||
32 | LineEdit1->setGeometry( QRect( 10, 10, 216, 22 ) ); | ||
33 | } | ||
34 | |||
35 | InputDialog::~InputDialog() | ||
36 | { | ||
37 | inputText = LineEdit1->text(); | ||
38 | |||
39 | } | ||
40 | |||
41 | void InputDialog::setInputText(const QString &string) | ||
42 | { | ||
43 | LineEdit1->setText( string); | ||
44 | } | ||
diff --git a/noncore/apps/advancedfm/inputDialog.h b/noncore/apps/advancedfm/inputDialog.h deleted file mode 100644 index 114a3a8..0000000 --- a/noncore/apps/advancedfm/inputDialog.h +++ b/dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | inputDialog.h | ||
3 | ------------------- | ||
4 | ** Created: Sat Mar 9 23:33:09 2002 | ||
5 | copyright : (C) 2002 by ljp | ||
6 | email : ljp@llornkcor.com | ||
7 | * This program is free software; you can redistribute it and/or modify * | ||
8 | * it under the terms of the GNU General Public License as published by * | ||
9 | * the Free Software Foundation; either version 2 of the License, or * | ||
10 | * (at your option) any later version. * | ||
11 | ***************************************************************************/ | ||
12 | #ifndef INPUTDIALOG_H | ||
13 | #define INPUTDIALOG_H | ||
14 | |||
15 | #include <qvariant.h> | ||
16 | #include <qdialog.h> | ||
17 | class QVBoxLayout; | ||
18 | class QHBoxLayout; | ||
19 | class QGridLayout; | ||
20 | class QLineEdit; | ||
21 | |||
22 | class InputDialog : public QDialog | ||
23 | { | ||
24 | Q_OBJECT | ||
25 | |||
26 | public: | ||
27 | InputDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); | ||
28 | ~InputDialog(); | ||
29 | QString inputText; | ||
30 | QLineEdit* LineEdit1; | ||
31 | void setInputText(const QString &); | ||
32 | |||
33 | }; | ||
34 | |||
35 | #endif // INPUTDIALOG_H | ||
diff --git a/noncore/apps/advancedfm/output.cpp b/noncore/apps/advancedfm/output.cpp index 82e78a7..946d038 100644 --- a/noncore/apps/advancedfm/output.cpp +++ b/noncore/apps/advancedfm/output.cpp | |||
@@ -1,44 +1,49 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** outputEdit.cpp | 2 | ** outputEdit.cpp |
3 | ** | 3 | ** |
4 | ** Copyright: Fri Apr 12 15:12:58 2002 L.J. Potter <ljp@llornkcor.com> | 4 | ** Copyright: Fri Apr 12 15:12:58 2002 L.J. Potter <ljp@llornkcor.com> |
5 | ****************************************************************************/ | 5 | ****************************************************************************/ |
6 | #include "output.h" | 6 | #include "output.h" |
7 | #include "inputDialog.h" | 7 | |
8 | #include <opie/oprocess.h> | ||
8 | 9 | ||
9 | #include <qpe/filemanager.h> | 10 | #include <qpe/filemanager.h> |
10 | #include <qpe/qpeapplication.h> | 11 | #include <qpe/qpeapplication.h> |
11 | #include <qpe/applnk.h> | 12 | #include <qpe/applnk.h> |
12 | 13 | ||
14 | #include <qmessagebox.h> | ||
15 | #include <qstringlist.h> | ||
13 | #include <qfile.h> | 16 | #include <qfile.h> |
14 | 17 | #include <qcstring.h> | |
15 | #include <qlineedit.h> | 18 | #include <qlineedit.h> |
16 | #include <qmultilineedit.h> | 19 | #include <qmultilineedit.h> |
17 | #include <qpushbutton.h> | 20 | #include <qpushbutton.h> |
18 | #include <qlayout.h> | 21 | #include <qlayout.h> |
19 | #include <qvariant.h> | 22 | #include <qvariant.h> |
20 | 23 | ||
24 | #include <errno.h> | ||
25 | |||
21 | /* XPM */ | 26 | /* XPM */ |
22 | static char * filesave_xpm[] = { | 27 | static char * filesave_xpm[] = { |
23 | "16 16 78 1", | 28 | "16 16 78 1", |
24 | " c None", | 29 | " c None", |
25 | ". c #343434", | 30 | ". c #343434", |
26 | "+ c #A0A0A0", | 31 | "+ c #A0A0A0", |
27 | "@ c #565656", | 32 | "@ c #565656", |
28 | "# c #9E9E9E", | 33 | "# c #9E9E9E", |
29 | "$ c #525252", | 34 | "$ c #525252", |
30 | "% c #929292", | 35 | "% c #929292", |
31 | "& c #676767", | 36 | "& c #676767", |
32 | "* c #848484", | 37 | "* c #848484", |
33 | "= c #666666", | 38 | "= c #666666", |
34 | "- c #D8D8D8", | 39 | "- c #D8D8D8", |
35 | "; c #FFFFFF", | 40 | "; c #FFFFFF", |
36 | "> c #DBDBDB", | 41 | "> c #DBDBDB", |
37 | ", c #636363", | 42 | ", c #636363", |
38 | "' c #989898", | 43 | "' c #989898", |
39 | ") c #2D2D2D", | 44 | ") c #2D2D2D", |
40 | "! c #909090", | 45 | "! c #909090", |
41 | "~ c #AEAEAE", | 46 | "~ c #AEAEAE", |
42 | "{ c #EAEAEA", | 47 | "{ c #EAEAEA", |
43 | "] c #575757", | 48 | "] c #575757", |
44 | "^ c #585858", | 49 | "^ c #585858", |
@@ -95,86 +100,183 @@ static char * filesave_xpm[] = { | |||
95 | "G c #7D7D7D", | 100 | "G c #7D7D7D", |
96 | "H c #000000", | 101 | "H c #000000", |
97 | "I c #404040", | 102 | "I c #404040", |
98 | "J c #858585", | 103 | "J c #858585", |
99 | "K c #323232", | 104 | "K c #323232", |
100 | "L c #D0D0D0", | 105 | "L c #D0D0D0", |
101 | "M c #1C1C1C", | 106 | "M c #1C1C1C", |
102 | " ...+ ", | 107 | " ...+ ", |
103 | " @#$%&..+ ", | 108 | " @#$%&..+ ", |
104 | " .*=-;;>,..+ ", | 109 | " .*=-;;>,..+ ", |
105 | " ')!~;;;;;;{]..", | 110 | " ')!~;;;;;;{]..", |
106 | " ^/(-;;;;;;;_:<", | 111 | " ^/(-;;;;;;;_:<", |
107 | " [}|;;;;;;;{12$", | 112 | " [}|;;;;;;;{12$", |
108 | " #34-55;;;;678$+", | 113 | " #34-55;;;;678$+", |
109 | " 90ab=c;dd;e1fg ", | 114 | " 90ab=c;dd;e1fg ", |
110 | " [ahij((kbl0mn$ ", | 115 | " [ahij((kbl0mn$ ", |
111 | " op^q^^7r&]s/$+ ", | 116 | " op^q^^7r&]s/$+ ", |
112 | "@btu;vbwxy]zAB ", | 117 | "@btu;vbwxy]zAB ", |
113 | "CzDEvEv;;DssF$ ", | 118 | "CzDEvEv;;DssF$ ", |
114 | "G.H{E{E{IxsJ$+ ", | 119 | "G.H{E{E{IxsJ$+ ", |
115 | " +...vEKxzLM ", | 120 | " +...vEKxzLM ", |
116 | " +...z]n$ ", | 121 | " +...z]n$ ", |
117 | " +... "}; | 122 | " +... "}; |
118 | 123 | ||
119 | Output::Output( QWidget* parent, const char* name, bool modal, WFlags fl ) | 124 | Output::Output( const QStringList commands, QWidget* parent, const char* name, bool modal, WFlags fl) |
120 | : QDialog( parent, name, modal, fl ) | 125 | : QDialog( parent, name, modal, fl ) |
121 | { | 126 | { |
122 | if ( !name ) | 127 | QStringList cmmds; |
123 | setName( "Output" ); | 128 | // cmmds=QStringList::split( " ", commands, false); |
129 | cmmds=commands; | ||
130 | // qDebug("count %d", cmmds.count()); | ||
131 | if ( !name ) | ||
132 | setName( tr("Output")); | ||
124 | resize( 196, 269 ); | 133 | resize( 196, 269 ); |
125 | setCaption( name ); | 134 | setCaption( name ); |
135 | |||
126 | OutputLayout = new QGridLayout( this ); | 136 | OutputLayout = new QGridLayout( this ); |
127 | OutputLayout->setSpacing( 6 ); | 137 | OutputLayout->setSpacing( 2); |
128 | OutputLayout->setMargin( 11 ); | 138 | OutputLayout->setMargin( 2); |
129 | 139 | ||
130 | QPushButton *docButton; | 140 | QPushButton *docButton; |
131 | docButton = new QPushButton( QPixmap(( const char** ) filesave_xpm ) ,"",this,"saveButton"); | 141 | docButton = new QPushButton( QPixmap(( const char** ) filesave_xpm ) ,"",this,"saveButton"); |
132 | docButton->setFixedSize( QSize( 20, 20 ) ); | 142 | docButton->setFixedSize( QSize( 20, 20 ) ); |
133 | connect( docButton,SIGNAL(released()),this,SLOT( saveOutput() )); | 143 | connect( docButton,SIGNAL(released()),this,SLOT( saveOutput() )); |
134 | // docButton->setFlat(TRUE); | 144 | // docButton->setFlat(TRUE); |
135 | OutputLayout->addMultiCellWidget( docButton, 0,0,3,3 ); | 145 | OutputLayout->addMultiCellWidget( docButton, 0,0,3,3 ); |
136 | |||
137 | 146 | ||
138 | OutputEdit = new QMultiLineEdit( this, "OutputEdit" ); | 147 | OutputEdit = new QMultiLineEdit( this, "OutputEdit" ); |
139 | OutputLayout->addMultiCellWidget( OutputEdit, 1,1,0,3 ); | 148 | OutputLayout->addMultiCellWidget( OutputEdit, 1,1,0,3 ); |
140 | 149 | ||
150 | proc = new OProcess(); | ||
151 | |||
152 | connect(proc, SIGNAL(processExited(OProcess *)), | ||
153 | this, SLOT( processFinished())); | ||
154 | |||
155 | connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), | ||
156 | this, SLOT(commandStdout(OProcess *, char *, int))); | ||
157 | |||
158 | connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), | ||
159 | this, SLOT(commandStderr(OProcess *, char *, int))); | ||
160 | |||
161 | // connect( , SIGNAL(received(const QByteArray &)), | ||
162 | // this, SLOT(commandStdin(const QByteArray &))); | ||
163 | |||
164 | // * proc << commands.latin1(); | ||
165 | for ( QStringList::Iterator it = cmmds.begin(); it != cmmds.end(); ++it ) { | ||
166 | qDebug( "%s", (*it).latin1() ); | ||
167 | * proc << (*it).latin1(); | ||
168 | } | ||
141 | 169 | ||
170 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) { | ||
171 | |||
172 | OutputEdit->append("Process could not start"); | ||
173 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | ||
174 | perror("Error: "); | ||
175 | QString errorMsg="Error\n"+(QString)strerror(errno); | ||
176 | OutputEdit->append( errorMsg); | ||
177 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | ||
178 | } | ||
142 | } | 179 | } |
143 | 180 | ||
144 | /* | 181 | Output::~Output() { |
145 | * Destroys the object and frees any allocated resources | ||
146 | */ | ||
147 | Output::~Output() | ||
148 | { | ||
149 | // no need to delete child widgets, Qt does it all for us | ||
150 | } | 182 | } |
151 | 183 | ||
152 | void Output::saveOutput() { | 184 | void Output::saveOutput() { |
153 | 185 | ||
154 | InputDialog *fileDlg; | 186 | InputDialog *fileDlg; |
155 | fileDlg = new InputDialog(this,tr("Save output to file (name only)"),TRUE, 0); | 187 | fileDlg = new InputDialog(this,tr("Save output to file (name only)"),TRUE, 0); |
156 | fileDlg->exec(); | 188 | fileDlg->exec(); |
157 | if( fileDlg->result() == 1 ) { | 189 | if( fileDlg->result() == 1 ) { |
158 | QString filename = QPEApplication::documentDir(); | 190 | QString filename = QPEApplication::documentDir(); |
159 | if(filename.right(1).find('/') == -1) | 191 | if(filename.right(1).find('/') == -1) |
160 | filename+="/"; | 192 | filename+="/"; |
161 | QString name = fileDlg->LineEdit1->text(); | 193 | QString name = fileDlg->LineEdit1->text(); |
162 | filename+="text/plain/"+name; | 194 | filename+="text/plain/"+name; |
163 | qDebug(filename); | 195 | qDebug(filename); |
164 | 196 | ||
165 | QFile f(filename); | 197 | QFile f(filename); |
166 | f.open( IO_WriteOnly); | 198 | f.open( IO_WriteOnly); |
167 | if( f.writeBlock( OutputEdit->text(), qstrlen( OutputEdit->text()) ) != -1) { | 199 | if( f.writeBlock( OutputEdit->text(), qstrlen( OutputEdit->text()) ) != -1) { |
168 | DocLnk lnk; | 200 | DocLnk lnk; |
169 | lnk.setName(name); //sets file name | 201 | lnk.setName(name); //sets file name |
170 | lnk.setFile(filename); //sets File property | 202 | lnk.setFile(filename); //sets File property |
171 | lnk.setType("text/plain"); | 203 | lnk.setType("text/plain"); |
172 | if(!lnk.writeLink()) { | 204 | if(!lnk.writeLink()) { |
173 | qDebug("Writing doclink did not work"); | 205 | qDebug("Writing doclink did not work"); |
174 | } | 206 | } |
175 | } else | 207 | } else |
176 | qWarning("Could not write file"); | 208 | qWarning("Could not write file"); |
177 | f.close(); | 209 | f.close(); |
178 | |||
179 | } | 210 | } |
180 | } | 211 | } |
212 | |||
213 | void Output::commandStdout(OProcess*, char *buffer, int buflen) { | ||
214 | qWarning("received stdout %d bytes", buflen); | ||
215 | |||
216 | // QByteArray data(buflen); | ||
217 | // data.fill(*buffer, buflen); | ||
218 | // for (uint i = 0; i < data.count(); i++ ) { | ||
219 | // printf("%c", buffer[i] ); | ||
220 | // } | ||
221 | // printf("\n"); | ||
222 | |||
223 | QString lineStr = buffer; | ||
224 | lineStr=lineStr.left(lineStr.length()-1); | ||
225 | OutputEdit->append(lineStr); | ||
226 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | ||
227 | } | ||
228 | |||
229 | |||
230 | void Output::commandStdin( const QByteArray &data) { | ||
231 | qWarning("received stdin %d bytes", data.size()); | ||
232 | // recieved data from the io layer goes to sz | ||
233 | proc->writeStdin(data.data(), data.size()); | ||
234 | } | ||
235 | |||
236 | void Output::commandStderr(OProcess*, char *buffer, int buflen) { | ||
237 | qWarning("received stderrt %d bytes", buflen); | ||
238 | |||
239 | QString lineStr = buffer; | ||
240 | // lineStr=lineStr.left(lineStr.length()-1); | ||
241 | OutputEdit->append(lineStr); | ||
242 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | ||
243 | } | ||
244 | |||
245 | void Output::processFinished() { | ||
246 | |||
247 | delete proc; | ||
248 | OutputEdit->append( "\nFinished\n"); | ||
249 | OutputEdit->setCursorPosition( OutputEdit->numLines() + 1,0,FALSE); | ||
250 | // close(); | ||
251 | // disconnect( layer(), SIGNAL(received(const QByteArray &)), | ||
252 | // this, SLOT(commandStdin(const QByteArray &))); | ||
253 | } | ||
254 | |||
255 | //============================== | ||
256 | |||
257 | InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) | ||
258 | : QDialog( parent, name, modal, fl ) | ||
259 | { | ||
260 | if ( !name ) | ||
261 | setName( "InputDialog" ); | ||
262 | resize( 234, 50 ); | ||
263 | setMaximumSize( QSize( 240, 50 ) ); | ||
264 | setCaption( tr(name ) ); | ||
265 | |||
266 | LineEdit1 = new QLineEdit( this, "LineEdit1" ); | ||
267 | LineEdit1->setGeometry( QRect( 10, 10, 216, 22 ) ); | ||
268 | connect(LineEdit1,SIGNAL(returnPressed()),this,SLOT(returned() )); | ||
269 | } | ||
270 | |||
271 | InputDialog::~InputDialog() { | ||
272 | inputText = LineEdit1->text(); | ||
273 | } | ||
274 | |||
275 | void InputDialog::setInputText(const QString &string) { | ||
276 | LineEdit1->setText( string); | ||
277 | } | ||
278 | |||
279 | void InputDialog::returned() { | ||
280 | inputText = LineEdit1->text(); | ||
281 | this->accept(); | ||
282 | } | ||
diff --git a/noncore/apps/advancedfm/output.h b/noncore/apps/advancedfm/output.h index c1e48da..199a684 100644 --- a/noncore/apps/advancedfm/output.h +++ b/noncore/apps/advancedfm/output.h | |||
@@ -1,35 +1,65 @@ | |||
1 | /**************************************************************************** | 1 | /**************************************************************************** |
2 | ** Form interface generated from reading ui file 'outputEdit.ui' | 2 | ** Form interface generated from reading ui file 'outputEdit.ui' |
3 | ** | 3 | ** |
4 | ** Created: Fri Apr 12 15:12:44 2002 | 4 | ** Created: Fri Apr 12 15:12:44 2002 |
5 | ** by: The User Interface Compiler (uic) | 5 | ** by: The User Interface Compiler (uic) |
6 | ** | 6 | ** |
7 | ** WARNING! All changes made in this file will be lost! | 7 | ** WARNING! All changes made in this file will be lost! |
8 | ****************************************************************************/ | 8 | ****************************************************************************/ |
9 | #ifndef OUTPUT_H | 9 | #ifndef OUTPUT_H |
10 | #define OUTPUT_H | 10 | #define OUTPUT_H |
11 | 11 | ||
12 | #include <qvariant.h> | 12 | #include <qvariant.h> |
13 | #include <qdialog.h> | 13 | #include <qdialog.h> |
14 | #include <qcstring.h> | ||
15 | #include <qstringlist.h> | ||
16 | #include <qlineedit.h> | ||
17 | #include <qwhatsthis.h> | ||
18 | |||
19 | #include <opie/oprocess.h> | ||
20 | |||
14 | class QVBoxLayout; | 21 | class QVBoxLayout; |
15 | class QHBoxLayout; | 22 | class QHBoxLayout; |
16 | class QGridLayout; | 23 | class QGridLayout; |
17 | class QMultiLineEdit; | 24 | class QMultiLineEdit; |
18 | 25 | ||
19 | class Output : public QDialog | 26 | class Output : public QDialog |
20 | { | 27 | { |
21 | Q_OBJECT | 28 | Q_OBJECT |
22 | 29 | ||
23 | public: | 30 | public: |
24 | Output( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); | 31 | Output(const QStringList commands=0, QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); |
25 | ~Output(); | 32 | ~Output(); |
26 | 33 | ||
27 | QMultiLineEdit* OutputEdit; | 34 | QMultiLineEdit* OutputEdit; |
28 | 35 | ||
29 | protected: | 36 | protected: |
30 | QGridLayout* OutputLayout; | 37 | QGridLayout* OutputLayout; |
38 | OProcess *proc; | ||
31 | protected slots: | 39 | protected slots: |
32 | void saveOutput(); | 40 | void saveOutput(); |
41 | void commandStdout(OProcess*, char *, int); | ||
42 | void commandStdin(const QByteArray &); | ||
43 | void commandStderr(OProcess*, char *, int); | ||
44 | void processFinished(); | ||
45 | private: | ||
46 | QString cmmd; | ||
47 | |||
48 | }; | ||
49 | |||
50 | class InputDialog : public QDialog | ||
51 | { | ||
52 | Q_OBJECT | ||
53 | |||
54 | public: | ||
55 | InputDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); | ||
56 | ~InputDialog(); | ||
57 | QString inputText; | ||
58 | QLineEdit* LineEdit1; | ||
59 | void setInputText(const QString &); | ||
60 | private slots: | ||
61 | void returned(); | ||
62 | |||
33 | }; | 63 | }; |
34 | 64 | ||
35 | #endif // OUTPUT_H | 65 | #endif // OUTPUT_H |