-rw-r--r-- | noncore/apps/advancedfm/advancedfm.cpp | 66 | ||||
-rw-r--r-- | noncore/apps/advancedfm/advancedfm.h | 3 |
2 files changed, 19 insertions, 50 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp index 02898de..fec320d 100644 --- a/noncore/apps/advancedfm/advancedfm.cpp +++ b/noncore/apps/advancedfm/advancedfm.cpp | |||
@@ -1,154 +1,145 @@ | |||
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 | #define DEVELOPERS_VERSION | 12 | #define DEVELOPERS_VERSION |
13 | #include "advancedfm.h" | 13 | #include "advancedfm.h" |
14 | 14 | ||
15 | #include <opie2/odebug.h> | 15 | #include <opie2/odebug.h> |
16 | #include <qpe/qpeapplication.h> | 16 | #include <qpe/qpeapplication.h> |
17 | #include <qpe/config.h> | 17 | #include <qpe/config.h> |
18 | #include <qpe/mimetype.h> | 18 | #include <qpe/mimetype.h> |
19 | #include <qpe/applnk.h> | 19 | #include <qpe/applnk.h> |
20 | #include <qpe/resource.h> | 20 | #include <qpe/resource.h> |
21 | #include <qpe/menubutton.h> | 21 | #include <qpe/menubutton.h> |
22 | 22 | ||
23 | #include <qcombobox.h> | 23 | #include <qcombobox.h> |
24 | #include <qpopupmenu.h> | 24 | #include <qpopupmenu.h> |
25 | #include <qlistview.h> | 25 | #include <qlistview.h> |
26 | #include <qmessagebox.h> | 26 | #include <qmessagebox.h> |
27 | #include <qlineedit.h> | 27 | #include <qlineedit.h> |
28 | 28 | ||
29 | 29 | ||
30 | #include <sys/stat.h> | 30 | #include <sys/stat.h> |
31 | #include <time.h> | 31 | #include <time.h> |
32 | #include <dirent.h> | 32 | #include <dirent.h> |
33 | #include <fcntl.h> | 33 | #include <fcntl.h> |
34 | #include <sys/vfs.h> | 34 | #include <sys/vfs.h> |
35 | #include <mntent.h> | 35 | #include <mntent.h> |
36 | 36 | ||
37 | using namespace Opie::Ui; | 37 | using namespace Opie::Ui; |
38 | 38 | ||
39 | AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags ) | 39 | AdvancedFm::AdvancedFm(QWidget *,const char*, WFlags ) |
40 | : QMainWindow( ) { | 40 | : QMainWindow( ) { |
41 | init(); | 41 | init(); |
42 | renameBox = 0; | 42 | renameBox = 0; |
43 | 43 | ||
44 | unknownXpm = Resource::loadImage("UnknownDocument").smoothScale(AppLnk::smallIconSize(),AppLnk::smallIconSize() ); | 44 | unknownXpm = Resource::loadImage("UnknownDocument").smoothScale(AppLnk::smallIconSize(),AppLnk::smallIconSize() ); |
45 | 45 | ||
46 | initConnections(); | 46 | initConnections(); |
47 | 47 | populateView(); | |
48 | whichTab = 1; | ||
49 | populateView(); | ||
50 | // rePopulate(); | ||
51 | // currentPathCombo->setFocus(); | ||
52 | channel = new QCopChannel( "QPE/Application/advancedfm", this ); | 48 | channel = new QCopChannel( "QPE/Application/advancedfm", this ); |
53 | connect(channel,SIGNAL(received(const QCString&,const QByteArray&)),this,SLOT(qcopReceive(const QCString&,const QByteArray&))); | 49 | connect(channel,SIGNAL(received(const QCString&,const QByteArray&)),this,SLOT(qcopReceive(const QCString&,const QByteArray&))); |
54 | |||
55 | // if( CurrentView() == Local_View) | ||
56 | // qDebug("LOCAL VIEW"); | ||
57 | // else | ||
58 | // qDebug("REMOTE VIEW"); | ||
59 | switchToLocalTab(); | 50 | switchToLocalTab(); |
60 | } | 51 | } |
61 | 52 | ||
62 | AdvancedFm::~AdvancedFm() { | 53 | AdvancedFm::~AdvancedFm() { |
63 | } | 54 | } |
64 | 55 | ||
65 | 56 | ||
66 | void AdvancedFm::cleanUp() { | 57 | void AdvancedFm::cleanUp() { |
67 | QString sfile=QDir::homeDirPath(); | 58 | QString sfile=QDir::homeDirPath(); |
68 | if(sfile.right(1) != "/") | 59 | if(sfile.right(1) != "/") |
69 | sfile+="/._temp"; | 60 | sfile+="/._temp"; |
70 | else | 61 | else |
71 | sfile+="._temp"; | 62 | sfile+="._temp"; |
72 | QFile file( sfile); | 63 | QFile file( sfile); |
73 | if(file.exists()) | 64 | if(file.exists()) |
74 | file.remove(); | 65 | file.remove(); |
75 | } | 66 | } |
76 | 67 | ||
77 | void AdvancedFm::tabChanged(QWidget *wd) { | 68 | void AdvancedFm::tabChanged(QWidget *wd) { |
78 | // qDebug("tabChanged"); | 69 | // qDebug("tabChanged"); |
79 | if(wd == tab) { | 70 | if(wd == tab) { |
80 | whichTab = 1; | 71 | whichTab = 1; |
81 | // qDebug("tabchanged: LOCAL VIEW SHOWN"); | 72 | // qDebug("tabchanged: LOCAL VIEW SHOWN"); |
82 | } | 73 | } |
83 | else if(wd == tab_2) { | 74 | else if(wd == tab_2) { |
84 | whichTab = 2; | 75 | whichTab = 2; |
85 | // qDebug("tabchanged: REMOTE VIEW SHOWN"); | 76 | // qDebug("tabchanged: REMOTE VIEW SHOWN"); |
86 | } | 77 | } |
87 | qApp->processEvents(); | 78 | qApp->processEvents(); |
88 | QString path = CurrentDir()->canonicalPath(); | 79 | QString path = CurrentDir()->canonicalPath(); |
89 | // qDebug(path); | 80 | // qDebug(path); |
90 | if ( TabWidget->currentWidget() == tab) { | 81 | if ( TabWidget->currentWidget() == tab) { |
91 | viewMenu->setItemChecked(viewMenu->idAt(0), true); | 82 | viewMenu->setItemChecked(viewMenu->idAt(0), true); |
92 | viewMenu->setItemChecked(viewMenu->idAt(1), false); | 83 | viewMenu->setItemChecked(viewMenu->idAt(1), false); |
93 | } else { | 84 | } else { |
94 | viewMenu->setItemChecked(viewMenu->idAt(0), false); | 85 | viewMenu->setItemChecked(viewMenu->idAt(0), false); |
95 | viewMenu->setItemChecked(viewMenu->idAt(1), true); | 86 | viewMenu->setItemChecked(viewMenu->idAt(1), true); |
96 | } | 87 | } |
97 | 88 | ||
98 | QString fs= getFileSystemType( (const QString &) path); | 89 | QString fs= getFileSystemType( (const QString &) path); |
99 | 90 | ||
100 | setCaption(tr("AdvancedFm :: ")+fs+" :: " | 91 | setCaption(tr("AdvancedFm :: ")+fs+" :: " |
101 | +checkDiskSpace( (const QString &) path )+ tr(" kB free") ); | 92 | +checkDiskSpace( (const QString &) path )+ tr(" kB free") ); |
102 | chdir( path.latin1()); | 93 | chdir( path.latin1()); |
103 | currentPathCombo->lineEdit()->setText(path); | 94 | currentPathCombo->lineEdit()->setText(path); |
104 | } | 95 | } |
105 | 96 | ||
106 | 97 | ||
107 | void AdvancedFm::populateView() { | 98 | void AdvancedFm::populateView() { |
108 | 99 | ||
109 | QPixmap pm; | 100 | QPixmap pm; |
110 | QListView *thisView = CurrentView(); | 101 | QListView *thisView = CurrentView(); |
111 | QDir *thisDir = CurrentDir(); | 102 | QDir *thisDir = CurrentDir(); |
112 | QString path = thisDir->canonicalPath(); | 103 | QString path = thisDir->canonicalPath(); |
113 | 104 | ||
114 | thisView->clear(); | 105 | thisView->clear(); |
115 | thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); | 106 | thisDir->setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); |
116 | thisDir->setMatchAllDirs(TRUE); | 107 | thisDir->setMatchAllDirs(TRUE); |
117 | thisDir->setNameFilter(filterStr); | 108 | thisDir->setNameFilter(filterStr); |
118 | QString fileL, fileS, fileDate; | 109 | QString fileL, fileS, fileDate; |
119 | QString fs= getFileSystemType((const QString &) path); | 110 | QString fs= getFileSystemType((const QString &) path); |
120 | setCaption(tr("AdvancedFm :: ")+fs+" :: " | 111 | setCaption(tr("AdvancedFm :: ")+fs+" :: " |
121 | +checkDiskSpace((const QString &) path)+ tr(" kB free") ); | 112 | +checkDiskSpace((const QString &) path)+ tr(" kB free") ); |
122 | bool isDir=FALSE; | 113 | bool isDir=FALSE; |
123 | const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); | 114 | const QFileInfoList *list = thisDir->entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); |
124 | QFileInfoListIterator it(*list); | 115 | QFileInfoListIterator it(*list); |
125 | QFileInfo *fi; | 116 | QFileInfo *fi; |
126 | while ( (fi=it.current()) ) { | 117 | while ( (fi=it.current()) ) { |
127 | if (fi->isSymLink() ) { | 118 | if (fi->isSymLink() ) { |
128 | QString symLink=fi->readLink(); | 119 | QString symLink=fi->readLink(); |
129 | QFileInfo sym( symLink); | 120 | QFileInfo sym( symLink); |
130 | fileS.sprintf( "%10i", sym.size() ); | 121 | fileS.sprintf( "%10i", sym.size() ); |
131 | fileL = fi->fileName() +" -> " + sym.filePath().data(); | 122 | fileL = fi->fileName() +" -> " + sym.filePath().data(); |
132 | fileDate = sym.lastModified().toString(); | 123 | fileDate = sym.lastModified().toString(); |
133 | } else { | 124 | } else { |
134 | fileS.sprintf( "%10i", fi->size() ); | 125 | fileS.sprintf( "%10i", fi->size() ); |
135 | fileL = fi->fileName(); | 126 | fileL = fi->fileName(); |
136 | fileDate= fi->lastModified().toString(); | 127 | fileDate= fi->lastModified().toString(); |
137 | if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { | 128 | if( QDir(QDir::cleanDirPath( path +"/"+fileL)).exists() ) { |
138 | // if(fileL == "..") | 129 | // if(fileL == "..") |
139 | fileL += "/"; | 130 | fileL += "/"; |
140 | isDir=TRUE; | 131 | isDir=TRUE; |
141 | } | 132 | } |
142 | } | 133 | } |
143 | QFileInfo fileInfo( path + "/" + fileL); | 134 | QFileInfo fileInfo( path + "/" + fileL); |
144 | 135 | ||
145 | if(fileL !="./" && fi->exists()) { | 136 | if(fileL !="./" && fi->exists()) { |
146 | item = new QListViewItem( thisView, fileL, fileS , fileDate); | 137 | item = new QListViewItem( thisView, fileL, fileS , fileDate); |
147 | 138 | ||
148 | if(isDir || fileL.find("/",0,TRUE) != -1) { | 139 | if(isDir || fileL.find("/",0,TRUE) != -1) { |
149 | 140 | ||
150 | if( !QDir( fi->filePath() ).isReadable()) //is directory | 141 | if( !QDir( fi->filePath() ).isReadable()) //is directory |
151 | pm = Resource::loadPixmap( "lockedfolder" ); | 142 | pm = Resource::loadPixmap( "lockedfolder" ); |
152 | else | 143 | else |
153 | pm= Resource::loadPixmap( "folder" ); | 144 | pm= Resource::loadPixmap( "folder" ); |
154 | } | 145 | } |
@@ -197,298 +188,277 @@ void AdvancedFm::populateView() { | |||
197 | lstat( mydirent->d_name, &buf); | 188 | lstat( mydirent->d_name, &buf); |
198 | // odebug << mydirent->d_name << oendl; | 189 | // odebug << mydirent->d_name << oendl; |
199 | fileL.sprintf("%s", mydirent->d_name); | 190 | fileL.sprintf("%s", mydirent->d_name); |
200 | devT = buf.st_dev; | 191 | devT = buf.st_dev; |
201 | fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); | 192 | fileS.sprintf("%d, %d", (int) ( devT >>8) &0xFF, (int)devT &0xFF); |
202 | fileDate.sprintf("%s", ctime( &buf.st_mtime)); | 193 | fileDate.sprintf("%s", ctime( &buf.st_mtime)); |
203 | if( fileL.find(".") == -1 ) { | 194 | if( fileL.find(".") == -1 ) { |
204 | item= new QListViewItem( thisView, fileL, fileS, fileDate); | 195 | item= new QListViewItem( thisView, fileL, fileS, fileDate); |
205 | pm = unknownXpm; | 196 | pm = unknownXpm; |
206 | item->setPixmap( 0,pm); | 197 | item->setPixmap( 0,pm); |
207 | } | 198 | } |
208 | } | 199 | } |
209 | 200 | ||
210 | closedir(dir); | 201 | closedir(dir); |
211 | } | 202 | } |
212 | 203 | ||
213 | thisView->setSorting( 3,FALSE); | 204 | thisView->setSorting( 3,FALSE); |
214 | fillCombo( (const QString &) path ); | 205 | fillCombo( (const QString &) path ); |
215 | } | 206 | } |
216 | 207 | ||
217 | void AdvancedFm::rePopulate() { | 208 | void AdvancedFm::rePopulate() { |
218 | // qDebug("repopulate views"); | 209 | // qDebug("repopulate views"); |
219 | populateView(); | 210 | populateView(); |
220 | setOtherTabCurrent(); | 211 | setOtherTabCurrent(); |
221 | populateView(); | 212 | populateView(); |
222 | 213 | ||
223 | // int tmpTab = whichTab; | 214 | // int tmpTab = whichTab; |
224 | // // odebug << "" << tmpTab << "" << oendl; | 215 | // // odebug << "" << tmpTab << "" << oendl; |
225 | 216 | ||
226 | // for(int i =1; i < 3; i++) { | 217 | // for(int i =1; i < 3; i++) { |
227 | // TabWidget->setCurrentWidget(i - 1); | 218 | // TabWidget->setCurrentWidget(i - 1); |
228 | // populateView(); | 219 | // populateView(); |
229 | // } | 220 | // } |
230 | // TabWidget->setCurrentWidget( tmpTab - 1); | 221 | // TabWidget->setCurrentWidget( tmpTab - 1); |
231 | } | 222 | } |
232 | 223 | ||
233 | void AdvancedFm::ListClicked(QListViewItem *selectedItem) { | 224 | void AdvancedFm::ListClicked(QListViewItem *selectedItem) { |
234 | // if ( TabWidget->currentWidget() == tab) | 225 | // if ( TabWidget->currentWidget() == tab) |
235 | // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked local"); | 226 | // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked local"); |
236 | // else | 227 | // else |
237 | // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked remote"); | 228 | // qDebug("XXXXXXXXXXXXXXXXXXXXXXXX ListClicked remote"); |
238 | 229 | ||
239 | 230 | ||
240 | if(selectedItem) { | 231 | if(selectedItem) { |
241 | QString strItem=selectedItem->text(0); | 232 | QString strItem=selectedItem->text(0); |
242 | // owarn << strItem << oendl; | 233 | // owarn << strItem << oendl; |
243 | QString strSize=selectedItem->text(1); | 234 | QString strSize=selectedItem->text(1); |
244 | strSize=strSize.stripWhiteSpace(); | 235 | strSize=strSize.stripWhiteSpace(); |
245 | bool isDirectory = false; | 236 | bool isDirectory = false; |
246 | QString strItem2; | 237 | QString strItem2; |
247 | 238 | ||
248 | if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) {//if symlink | 239 | if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) {//if symlink |
249 | strItem2 = dealWithSymName((const QString&)strItem); | 240 | strItem2 = dealWithSymName((const QString&)strItem); |
250 | if(QDir(strItem2).exists() ) | 241 | if(QDir(strItem2).exists() ) |
251 | strItem = strItem2; | 242 | strItem = strItem2; |
252 | } | 243 | } |
253 | 244 | ||
254 | if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { | 245 | if( strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { |
255 | 246 | ||
256 | if(QDir(strItem).exists()) | 247 | if(QDir(strItem).exists()) |
257 | isDirectory = true; | 248 | isDirectory = true; |
258 | } | 249 | } |
259 | 250 | ||
260 | if( isDirectory ) { | 251 | if( isDirectory ) { |
261 | CurrentDir()->cd( strItem, TRUE); | 252 | CurrentDir()->cd( strItem, TRUE); |
262 | populateView(); | 253 | populateView(); |
263 | CurrentView()->ensureItemVisible( CurrentView()->firstChild()); | 254 | CurrentView()->ensureItemVisible( CurrentView()->firstChild()); |
264 | } | 255 | } |
265 | chdir( strItem.latin1()); | 256 | chdir( strItem.latin1()); |
266 | } | 257 | } |
267 | } | 258 | } |
268 | 259 | ||
269 | void AdvancedFm::ListPressed( int mouse, QListViewItem *item, const QPoint& , int ) { | 260 | void AdvancedFm::ListPressed( int mouse, QListViewItem *item, const QPoint& , int ) { |
270 | Q_UNUSED(item); | 261 | Q_UNUSED(item); |
271 | switch (mouse) { | 262 | switch (mouse) { |
272 | case 1: | 263 | case 1: |
273 | { | 264 | { |
274 | if(renameBox != 0 ) { | 265 | if(renameBox != 0 ) { |
275 | cancelRename(); | 266 | cancelRename(); |
276 | } | 267 | } |
277 | } | 268 | } |
278 | break; | 269 | break; |
279 | // case 2: | 270 | // case 2: |
280 | // menuTimer.start( 50, TRUE ); | 271 | // menuTimer.start( 50, TRUE ); |
281 | // break; | 272 | // break; |
282 | }; | 273 | }; |
283 | } | 274 | } |
284 | 275 | ||
285 | 276 | ||
286 | void AdvancedFm::refreshCurrentTab() { | 277 | void AdvancedFm::refreshCurrentTab() { |
287 | populateView(); | 278 | populateView(); |
288 | // if ( TabWidget->currentWidget() == tab) { | 279 | // if ( TabWidget->currentWidget() == tab) { |
289 | 280 | ||
290 | } | 281 | } |
291 | 282 | ||
292 | void AdvancedFm::switchToLocalTab() { | 283 | void AdvancedFm::switchToLocalTab() { |
293 | qDebug("switchToLocal "); | 284 | TabWidget->setCurrentWidget(0); |
294 | TabWidget->setCurrentWidget(0); | 285 | Local_View->setFocus(); |
295 | Local_View->setFocus(); | 286 | whichTab = 1; |
296 | whichTab = 1; | ||
297 | |||
298 | } | 287 | } |
299 | 288 | ||
300 | void AdvancedFm::switchToRemoteTab() { | 289 | void AdvancedFm::switchToRemoteTab() { |
301 | qDebug("switchToRemoteTab() "); | 290 | TabWidget->setCurrentWidget(1); |
302 | TabWidget->setCurrentWidget(1); | 291 | Remote_View->setFocus(); |
303 | Remote_View->setFocus(); | 292 | whichTab = 2; |
304 | whichTab = 2; | ||
305 | } | ||
306 | |||
307 | void AdvancedFm::readConfig() { | ||
308 | Config cfg("AdvancedFm"); | ||
309 | } | ||
310 | |||
311 | void AdvancedFm::writeConfig() { | ||
312 | Config cfg("AdvancedFm"); | ||
313 | } | 293 | } |
314 | 294 | ||
315 | void AdvancedFm::currentPathComboChanged() { | 295 | void AdvancedFm::currentPathComboChanged() { |
316 | if(QDir( currentPathCombo->lineEdit()->text()).exists()) { | 296 | if(QDir( currentPathCombo->lineEdit()->text()).exists()) { |
317 | CurrentDir()->setPath( currentPathCombo->lineEdit()->text() ); | 297 | CurrentDir()->setPath( currentPathCombo->lineEdit()->text() ); |
318 | populateView(); | 298 | populateView(); |
319 | } else { | 299 | } else { |
320 | QMessageBox::message(tr("Note"),tr("That directory does not exist")); | 300 | QMessageBox::message(tr("Note"),tr("That directory does not exist")); |
321 | } | 301 | } |
322 | } | 302 | } |
323 | 303 | ||
324 | void AdvancedFm::fillCombo(const QString ¤tPath) { | 304 | void AdvancedFm::fillCombo(const QString ¤tPath) { |
325 | 305 | ||
326 | if ( TabWidget->currentWidget() == tab) { | 306 | if ( TabWidget->currentWidget() == tab) { |
327 | // if ( whichTab == 1) { | 307 | // if ( whichTab == 1) { |
328 | currentPathCombo->lineEdit()->setText( currentPath); | 308 | currentPathCombo->lineEdit()->setText( currentPath); |
329 | if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { | 309 | if( localDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { |
330 | currentPathCombo->clear(); | 310 | currentPathCombo->clear(); |
331 | localDirPathStringList.prepend( currentPath ); | 311 | localDirPathStringList.prepend( currentPath ); |
332 | currentPathCombo->insertStringList( localDirPathStringList,-1); | 312 | currentPathCombo->insertStringList( localDirPathStringList,-1); |
333 | } | 313 | } |
334 | } else { | 314 | } else { |
335 | currentPathCombo->lineEdit()->setText( currentPath); | 315 | currentPathCombo->lineEdit()->setText( currentPath); |
336 | if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { | 316 | if( remoteDirPathStringList.grep( currentPath,TRUE).isEmpty() ) { |
337 | currentPathCombo->clear(); | 317 | currentPathCombo->clear(); |
338 | remoteDirPathStringList.prepend( currentPath ); | 318 | remoteDirPathStringList.prepend( currentPath ); |
339 | currentPathCombo->insertStringList( remoteDirPathStringList,-1); | 319 | currentPathCombo->insertStringList( remoteDirPathStringList,-1); |
340 | } | 320 | } |
341 | } | 321 | } |
342 | } | 322 | } |
343 | 323 | ||
344 | void AdvancedFm::currentPathComboActivated(const QString & currentPath) { | 324 | void AdvancedFm::currentPathComboActivated(const QString & currentPath) { |
345 | chdir( currentPath.latin1() ); | 325 | chdir( currentPath.latin1() ); |
346 | CurrentDir()->cd( currentPath, TRUE); | 326 | CurrentDir()->cd( currentPath, TRUE); |
347 | populateView(); | 327 | populateView(); |
348 | update(); | 328 | update(); |
349 | } | 329 | } |
350 | 330 | ||
351 | QStringList AdvancedFm::getPath() { | 331 | QStringList AdvancedFm::getPath() { |
352 | QStringList strList; | 332 | QStringList strList; |
353 | QListView *thisView=CurrentView(); | 333 | QListView *thisView=CurrentView(); |
354 | QList<QListViewItem> * getSelectedItems( QListView * thisView ); | 334 | QList<QListViewItem> * getSelectedItems( QListView * thisView ); |
355 | QListViewItemIterator it( thisView ); | 335 | QListViewItemIterator it( thisView ); |
356 | for ( ; it.current(); ++it ) { | 336 | for ( ; it.current(); ++it ) { |
357 | if ( it.current()->isSelected() ) { | 337 | if ( it.current()->isSelected() ) { |
358 | strList << it.current()->text(0); | 338 | strList << it.current()->text(0); |
359 | // odebug << it.current()->text(0) << oendl; | 339 | // odebug << it.current()->text(0) << oendl; |
360 | } | 340 | } |
361 | } | 341 | } |
362 | return strList; | 342 | return strList; |
363 | } | 343 | } |
364 | 344 | ||
365 | void AdvancedFm::homeButtonPushed() { | 345 | void AdvancedFm::changeTo(QString dir) { |
366 | QString current = QDir::homeDirPath(); | 346 | chdir( dir.latin1()); |
367 | chdir( current.latin1() ); | 347 | CurrentDir()->cd(dir, TRUE); |
368 | CurrentDir()->cd( current, TRUE); | ||
369 | populateView(); | 348 | populateView(); |
370 | update(); | 349 | update(); |
371 | } | 350 | } |
372 | 351 | ||
352 | void AdvancedFm::homeButtonPushed() { | ||
353 | changeTo(QDir::homeDirPath()); | ||
354 | } | ||
355 | |||
373 | void AdvancedFm::docButtonPushed() { | 356 | void AdvancedFm::docButtonPushed() { |
374 | QString current = QPEApplication::documentDir(); | 357 | changeTo(QPEApplication::documentDir()); |
375 | chdir( current.latin1() ); | ||
376 | CurrentDir()->cd( current, TRUE); | ||
377 | populateView(); | ||
378 | update(); | ||
379 | } | 358 | } |
380 | 359 | ||
381 | void AdvancedFm::SDButtonPushed() { | 360 | void AdvancedFm::SDButtonPushed() { |
382 | QString current = "/mnt/card";// this can change so fix | 361 | changeTo("/mnt/card");// this can change so fix |
383 | chdir( current.latin1() ); | ||
384 | CurrentDir()->cd( current, TRUE); | ||
385 | populateView(); | ||
386 | update(); | ||
387 | } | 362 | } |
388 | 363 | ||
389 | void AdvancedFm::CFButtonPushed() { | 364 | void AdvancedFm::CFButtonPushed() { |
390 | QString current; | ||
391 | if(zaurusDevice) | 365 | if(zaurusDevice) |
392 | current= "/mnt/cf"; //zaurus | 366 | changeTo("/mnt/cf"); //zaurus |
393 | else | 367 | else |
394 | current = "/mnt/hda"; //ipaq | 368 | changeTo("/mnt/hda"); //ipaq |
395 | chdir( current.latin1() ); | ||
396 | CurrentDir()->cd( current, TRUE); | ||
397 | populateView(); | ||
398 | update(); | ||
399 | } | 369 | } |
400 | 370 | ||
401 | 371 | ||
402 | void AdvancedFm::doAbout() { | 372 | void AdvancedFm::doAbout() { |
403 | QMessageBox::message("AdvancedFm",tr("<P>Advanced FileManager is copyright 2002-2003 by L.J.Potter<llornkcor@handhelds.org> and is licensed by the GPL</P>")); | 373 | QMessageBox::message("AdvancedFm",tr("<P>Advanced FileManager is copyright 2002-2003 by L.J.Potter<llornkcor@handhelds.org> and is licensed by the GPL</P>")); |
404 | } | 374 | } |
405 | 375 | ||
406 | void AdvancedFm::keyPressEvent( QKeyEvent *e) { | 376 | void AdvancedFm::keyPressEvent( QKeyEvent *e) { |
407 | // owarn << "key " << e->key() << "" << oendl; | 377 | // owarn << "key " << e->key() << "" << oendl; |
408 | // if( CurrentView()->hasFocus() ) | 378 | // if( CurrentView()->hasFocus() ) |
409 | { | 379 | { |
410 | switch ( e->key() ) { | 380 | switch ( e->key() ) { |
411 | case Key_Left: | 381 | case Key_Left: |
412 | upDir(); | 382 | upDir(); |
413 | break; | 383 | break; |
414 | case Key_Next: | 384 | case Key_Next: |
415 | break; | 385 | break; |
416 | case Key_Return: | 386 | case Key_Return: |
417 | case Key_Enter: | 387 | case Key_Enter: |
418 | navigateToSelected(); | 388 | navigateToSelected(); |
419 | break; | 389 | break; |
420 | case Key_Tab: { | 390 | case Key_Tab: { |
421 | setOtherTabCurrent(); | 391 | setOtherTabCurrent(); |
422 | } | 392 | } |
423 | break; | 393 | break; |
424 | case Key_Delete: | 394 | case Key_Delete: |
425 | del(); | 395 | del(); |
426 | break; | 396 | break; |
427 | case Key_A: | 397 | case Key_A: |
428 | copyAs(); | 398 | copyAs(); |
429 | break; | 399 | break; |
430 | case Key_C: | 400 | case Key_C: |
431 | copy(); | 401 | copy(); |
432 | break; | 402 | break; |
433 | case Key_E: | 403 | case Key_E: |
434 | runThis(); | 404 | runThis(); |
435 | break; | 405 | break; |
436 | case Key_G: | 406 | case Key_G: |
437 | { | 407 | { |
438 | currentPathCombo->lineEdit()->setFocus(); | 408 | currentPathCombo->lineEdit()->setFocus(); |
439 | } | 409 | } |
440 | break; | 410 | break; |
441 | 411 | ||
442 | case Key_H: | 412 | case Key_H: |
443 | showHidden(); | 413 | showHidden(); |
444 | break; | 414 | break; |
445 | case Key_I: | 415 | case Key_I: |
446 | fileStatus(); | 416 | fileStatus(); |
447 | break; | 417 | break; |
448 | case Key_M: | 418 | case Key_M: |
449 | move(); | 419 | move(); |
450 | break; | 420 | break; |
451 | case Key_N: | 421 | case Key_N: |
452 | mkDir(); | 422 | mkDir(); |
453 | break; | 423 | break; |
454 | case Key_P: | 424 | case Key_P: |
455 | filePerms(); | 425 | filePerms(); |
456 | break; | 426 | break; |
457 | case Key_R: | 427 | case Key_R: |
458 | rn(); | 428 | rn(); |
459 | break; | 429 | break; |
460 | case Key_U: | 430 | case Key_U: |
461 | upDir(); | 431 | upDir(); |
462 | break; | 432 | break; |
463 | case Key_1: | 433 | case Key_1: |
464 | switchToLocalTab(); | 434 | switchToLocalTab(); |
465 | break; | 435 | break; |
466 | case Key_2: | 436 | case Key_2: |
467 | switchToRemoteTab(); | 437 | switchToRemoteTab(); |
468 | break; | 438 | break; |
469 | case Key_3: | 439 | case Key_3: |
470 | CFButtonPushed(); | 440 | CFButtonPushed(); |
471 | break; | 441 | break; |
472 | case Key_4: | 442 | case Key_4: |
473 | SDButtonPushed(); | 443 | SDButtonPushed(); |
474 | break; | 444 | break; |
475 | case Key_5: | 445 | case Key_5: |
476 | homeButtonPushed(); | 446 | homeButtonPushed(); |
477 | break; | 447 | break; |
478 | case Key_6: | 448 | case Key_6: |
479 | docButtonPushed(); | 449 | docButtonPushed(); |
480 | break; | 450 | break; |
481 | case Key_7: | 451 | case Key_7: |
482 | break; | 452 | break; |
483 | case Key_8: | 453 | case Key_8: |
484 | break; | 454 | break; |
485 | case Key_9: | 455 | case Key_9: |
486 | break; | 456 | break; |
487 | case Key_0: | 457 | case Key_0: |
488 | break; | 458 | break; |
489 | }; | 459 | }; |
490 | e->accept(); | 460 | e->accept(); |
491 | } | 461 | } |
492 | } | 462 | } |
493 | 463 | ||
494 | void AdvancedFm::keyReleaseEvent( QKeyEvent *e) { | 464 | void AdvancedFm::keyReleaseEvent( QKeyEvent *e) { |
diff --git a/noncore/apps/advancedfm/advancedfm.h b/noncore/apps/advancedfm/advancedfm.h index 2234b3c..c52b853 100644 --- a/noncore/apps/advancedfm/advancedfm.h +++ b/noncore/apps/advancedfm/advancedfm.h | |||
@@ -4,192 +4,191 @@ | |||
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 | #ifndef ADVANCEDFM_H | 12 | #ifndef ADVANCEDFM_H |
13 | #define ADVANCEDFM_H | 13 | #define ADVANCEDFM_H |
14 | #define QTOPIA_INTERNAL_FSLP // to get access to fileproperties | 14 | #define QTOPIA_INTERNAL_FSLP // to get access to fileproperties |
15 | #define QT_QWS_OPIE | 15 | #define QT_QWS_OPIE |
16 | 16 | ||
17 | #include <opie2/oprocess.h> | 17 | #include <opie2/oprocess.h> |
18 | #include <opie2/osplitter.h> | 18 | #include <opie2/osplitter.h> |
19 | 19 | ||
20 | #include <qpe/ir.h> | 20 | #include <qpe/ir.h> |
21 | #include <qpe/qcopenvelope_qws.h> | 21 | #include <qpe/qcopenvelope_qws.h> |
22 | 22 | ||
23 | #include <qvariant.h> | 23 | #include <qvariant.h> |
24 | #include <qdialog.h> | 24 | #include <qdialog.h> |
25 | #include <qmainwindow.h> | 25 | #include <qmainwindow.h> |
26 | #include <qstringlist.h> | 26 | #include <qstringlist.h> |
27 | #include <qdir.h> | 27 | #include <qdir.h> |
28 | #include <qstring.h> | 28 | #include <qstring.h> |
29 | #include <qpoint.h> | 29 | #include <qpoint.h> |
30 | #include <qtimer.h> | 30 | #include <qtimer.h> |
31 | #include <qpixmap.h> | 31 | #include <qpixmap.h> |
32 | 32 | ||
33 | 33 | ||
34 | class QVBoxLayout; | 34 | class QVBoxLayout; |
35 | class QHBoxLayout; | 35 | class QHBoxLayout; |
36 | class QGridLayout; | 36 | class QGridLayout; |
37 | class QComboBox; | 37 | class QComboBox; |
38 | class QListView; | 38 | class QListView; |
39 | class QListviewItem; | 39 | class QListviewItem; |
40 | class QLabel; | 40 | class QLabel; |
41 | class QProgressBar; | 41 | class QProgressBar; |
42 | class QSpinBox; | 42 | class QSpinBox; |
43 | class QWidget; | 43 | class QWidget; |
44 | class QPopupMenu; | 44 | class QPopupMenu; |
45 | class QFile; | 45 | class QFile; |
46 | class QListViewItem; | 46 | class QListViewItem; |
47 | class QLineEdit; | 47 | class QLineEdit; |
48 | class MenuButton; | 48 | class MenuButton; |
49 | 49 | ||
50 | class QToolButton; | 50 | class QToolButton; |
51 | class Ir; | 51 | class Ir; |
52 | 52 | ||
53 | class AdvancedFm : public QMainWindow | 53 | class AdvancedFm : public QMainWindow |
54 | { | 54 | { |
55 | Q_OBJECT | 55 | Q_OBJECT |
56 | public: | 56 | public: |
57 | static QString appName() { return QString::fromLatin1("advancedfm"); } | 57 | static QString appName() { return QString::fromLatin1("advancedfm"); } |
58 | AdvancedFm(QWidget *p = 0, const char* name = 0, WFlags fl = 0); | 58 | AdvancedFm(QWidget *p = 0, const char* name = 0, WFlags fl = 0); |
59 | ~AdvancedFm(); | 59 | ~AdvancedFm(); |
60 | protected: | 60 | protected: |
61 | 61 | ||
62 | Opie::Ui::OSplitter *TabWidget; | 62 | Opie::Ui::OSplitter *TabWidget; |
63 | QCopChannel * channel; | 63 | QCopChannel * channel; |
64 | QPixmap unknownXpm; | 64 | QPixmap unknownXpm; |
65 | int whichTab; | 65 | int whichTab; |
66 | // QTabWidget *TabWidget; | 66 | // QTabWidget *TabWidget; |
67 | QWidget *tab, *tab_2, *tab_3; | 67 | QWidget *tab, *tab_2, *tab_3; |
68 | QListView *Local_View, *Remote_View; | 68 | QListView *Local_View, *Remote_View; |
69 | 69 | ||
70 | QLineEdit *currentPathEdit; | 70 | QLineEdit *currentPathEdit; |
71 | QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/; | 71 | QPopupMenu *fileMenu, *localMenu, *remoteMenu, *viewMenu /*, *customDirMenu*/; |
72 | QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; | 72 | QToolButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; |
73 | // QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; | 73 | // QPushButton *homeButton, *docButton, *cdUpButton, *sdButton, *cfButton, *qpeDirButton; |
74 | QDir currentDir, currentRemoteDir; | 74 | QDir currentDir, currentRemoteDir; |
75 | QComboBox *currentPathCombo; | 75 | QComboBox *currentPathCombo; |
76 | QString filterStr, s_addBookmark, s_removeBookmark; | 76 | QString filterStr, s_addBookmark, s_removeBookmark; |
77 | QListViewItem * item; | 77 | QListViewItem * item; |
78 | bool b; | 78 | bool b; |
79 | QStringList fileSystemTypeList, fsList; | 79 | QStringList fileSystemTypeList, fsList; |
80 | int currentServerConfig; | 80 | int currentServerConfig; |
81 | bool zaurusDevice; | 81 | bool zaurusDevice; |
82 | QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; | 82 | QGridLayout *tabLayout, *tabLayout_2, *tabLayout_3; |
83 | QStringList remoteDirPathStringList, localDirPathStringList; | 83 | QStringList remoteDirPathStringList, localDirPathStringList; |
84 | QLineEdit *renameBox; | 84 | QLineEdit *renameBox; |
85 | 85 | ||
86 | void init(); | 86 | void init(); |
87 | void initConnections(); | 87 | void initConnections(); |
88 | void keyReleaseEvent( QKeyEvent *); | 88 | void keyReleaseEvent( QKeyEvent *); |
89 | void keyPressEvent( QKeyEvent *); | 89 | void keyPressEvent( QKeyEvent *); |
90 | QString getFileSystemType(const QString &); | 90 | QString getFileSystemType(const QString &); |
91 | QString getDiskSpace(const QString &); | 91 | QString getDiskSpace(const QString &); |
92 | void parsetab(const QString &fileName); | 92 | void parsetab(const QString &fileName); |
93 | QString checkDiskSpace(const QString &); | 93 | QString checkDiskSpace(const QString &); |
94 | QString dealWithSymName(const QString &); | 94 | QString dealWithSymName(const QString &); |
95 | QDir *CurrentDir(); | 95 | QDir *CurrentDir(); |
96 | QDir *OtherDir(); | 96 | QDir *OtherDir(); |
97 | QListView *CurrentView(); | 97 | QListView *CurrentView(); |
98 | QListView *OtherView(); | 98 | QListView *OtherView(); |
99 | void setOtherTabCurrent(); | 99 | void setOtherTabCurrent(); |
100 | void changeTo(QString & dir); | ||
100 | 101 | ||
101 | //protected signals: | 102 | //protected signals: |
102 | // void newPath(QString); | 103 | // void newPath(QString); |
103 | 104 | ||
104 | protected slots: | 105 | protected slots: |
105 | void slotSwitchMenu(int); | 106 | void slotSwitchMenu(int); |
106 | void selectAll(); | 107 | void selectAll(); |
107 | void addToDocs(); | 108 | void addToDocs(); |
108 | void doDirChange(); | 109 | void doDirChange(); |
109 | void mkDir(); | 110 | void mkDir(); |
110 | void del(); | 111 | void del(); |
111 | void rn(); | 112 | void rn(); |
112 | void populateView(); | 113 | void populateView(); |
113 | void rePopulate(); | 114 | void rePopulate(); |
114 | void showHidden(); | 115 | void showHidden(); |
115 | void showMenuHidden(); | 116 | void showMenuHidden(); |
116 | void writeConfig(); | ||
117 | void readConfig(); | ||
118 | void ListClicked(QListViewItem *); | 117 | void ListClicked(QListViewItem *); |
119 | void ListPressed( int, QListViewItem *, const QPoint&, int); | 118 | void ListPressed( int, QListViewItem *, const QPoint&, int); |
120 | void makeDir(); | 119 | void makeDir(); |
121 | void doDelete(); | 120 | void doDelete(); |
122 | void tabChanged(QWidget*); | 121 | void tabChanged(QWidget*); |
123 | void cleanUp(); | 122 | void cleanUp(); |
124 | void renameIt(); | 123 | void renameIt(); |
125 | void runThis(); | 124 | void runThis(); |
126 | void runText(); | 125 | void runText(); |
127 | void filePerms(); | 126 | void filePerms(); |
128 | void doProperties(); | 127 | void doProperties(); |
129 | void runCommand(); | 128 | void runCommand(); |
130 | void runCommandStd(); | 129 | void runCommandStd(); |
131 | QStringList getPath(); | 130 | QStringList getPath(); |
132 | void mkSym(); | 131 | void mkSym(); |
133 | void switchToLocalTab(); | 132 | void switchToLocalTab(); |
134 | void switchToRemoteTab(); | 133 | void switchToRemoteTab(); |
135 | void refreshCurrentTab(); | 134 | void refreshCurrentTab(); |
136 | 135 | ||
137 | void openSearch(); | 136 | void openSearch(); |
138 | void dirMenuSelected(int); | 137 | void dirMenuSelected(int); |
139 | void showFileMenu(); | 138 | void showFileMenu(); |
140 | void homeButtonPushed(); | 139 | void homeButtonPushed(); |
141 | void docButtonPushed(); | 140 | void docButtonPushed(); |
142 | void SDButtonPushed(); | 141 | void SDButtonPushed(); |
143 | void CFButtonPushed(); | 142 | void CFButtonPushed(); |
144 | void QPEButtonPushed(); | 143 | void QPEButtonPushed(); |
145 | void upDir(); | 144 | void upDir(); |
146 | void currentPathComboChanged(); | 145 | void currentPathComboChanged(); |
147 | 146 | ||
148 | void copy(); | 147 | void copy(); |
149 | void copyTimer(); | 148 | void copyTimer(); |
150 | void copyAs(); | 149 | void copyAs(); |
151 | void copyAsTimer(); | 150 | void copyAsTimer(); |
152 | void copySameDir(); | 151 | void copySameDir(); |
153 | void copySameDirTimer(); | 152 | void copySameDirTimer(); |
154 | void move(); | 153 | void move(); |
155 | void moveTimer(); | 154 | void moveTimer(); |
156 | 155 | ||
157 | void currentPathComboActivated(const QString &); | 156 | void currentPathComboActivated(const QString &); |
158 | void fillCombo(const QString &); | 157 | void fillCombo(const QString &); |
159 | bool copyFile( const QString & , const QString & ); | 158 | bool copyFile( const QString & , const QString & ); |
160 | void fileStatus(); | 159 | void fileStatus(); |
161 | void doAbout(); | 160 | void doAbout(); |
162 | void doBeam(); | 161 | void doBeam(); |
163 | void fileBeamFinished( Ir *); | 162 | void fileBeamFinished( Ir *); |
164 | bool copyDirectory( const QString & , const QString & ); | 163 | bool copyDirectory( const QString & , const QString & ); |
165 | // void navigateToSelected(); | 164 | // void navigateToSelected(); |
166 | bool moveDirectory( const QString & , const QString & ); | 165 | bool moveDirectory( const QString & , const QString & ); |
167 | 166 | ||
168 | // void slotSwitchtoLocal(int); | 167 | // void slotSwitchtoLocal(int); |
169 | 168 | ||
170 | private: | 169 | private: |
171 | MenuButton *menuButton; | 170 | MenuButton *menuButton; |
172 | QString oldName, localViewDir, remoteViewDir; | 171 | QString oldName, localViewDir, remoteViewDir; |
173 | void startProcess(const QString &); | 172 | void startProcess(const QString &); |
174 | bool eventFilter( QObject * , QEvent * ); | 173 | bool eventFilter( QObject * , QEvent * ); |
175 | void cancelRename(); | 174 | void cancelRename(); |
176 | void doRename(QListView *); | 175 | void doRename(QListView *); |
177 | void okRename(); | 176 | void okRename(); |
178 | void customDirsToMenu(); | 177 | void customDirsToMenu(); |
179 | void addCustomDir(); | 178 | void addCustomDir(); |
180 | void removeCustomDir(); | 179 | void removeCustomDir(); |
181 | void gotoDirectory(const QString &); | 180 | void gotoDirectory(const QString &); |
182 | void navigateToSelected(); | 181 | void navigateToSelected(); |
183 | void findFile(const QString &); | 182 | void findFile(const QString &); |
184 | 183 | ||
185 | private slots: | 184 | private slots: |
186 | void processEnded(Opie::Core::OProcess *); | 185 | void processEnded(Opie::Core::OProcess *); |
187 | void oprocessStderr(Opie::Core::OProcess *, char *, int); | 186 | void oprocessStderr(Opie::Core::OProcess *, char *, int); |
188 | void gotoCustomDir(const QString &); | 187 | void gotoCustomDir(const QString &); |
189 | void qcopReceive(const QCString&, const QByteArray&); | 188 | void qcopReceive(const QCString&, const QByteArray&); |
190 | void setDocument(const QString &); | 189 | void setDocument(const QString &); |
191 | // void doMenu(int | 190 | // void doMenu(int |
192 | 191 | ||
193 | }; | 192 | }; |
194 | 193 | ||
195 | #endif // ADVANCEDFM_H | 194 | #endif // ADVANCEDFM_H |