summaryrefslogtreecommitdiff
path: root/core/apps/textedit/fileBrowser.cpp
Unidiff
Diffstat (limited to 'core/apps/textedit/fileBrowser.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/fileBrowser.cpp117
1 files changed, 62 insertions, 55 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp
index 8c942a1..8ea8067 100644
--- a/core/apps/textedit/fileBrowser.cpp
+++ b/core/apps/textedit/fileBrowser.cpp
@@ -121,7 +121,7 @@ fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags
121 121
122 QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold); 122 QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold);
123 connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 123 connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
124 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); 124 this, SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) );
125 125
126 connect( ListView, SIGNAL( clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); 126 connect( ListView, SIGNAL( clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
127 127
@@ -171,6 +171,7 @@ void fileBrowser::setFileView( int selection )
171void fileBrowser::populateList() 171void fileBrowser::populateList()
172{ 172{
173 ListView->clear(); 173 ListView->clear();
174 QListViewItem * item;
174 bool isDir=FALSE; 175 bool isDir=FALSE;
175//qDebug(currentDir.canonicalPath()); 176//qDebug(currentDir.canonicalPath());
176 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 177 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
@@ -182,58 +183,58 @@ void fileBrowser::populateList()
182 QFileInfoListIterator it(*list); 183 QFileInfoListIterator it(*list);
183 QFileInfo *fi; 184 QFileInfo *fi;
184 while ( (fi=it.current()) ) { 185 while ( (fi=it.current()) ) {
185 186 if (fi->isSymLink() ){
186 if (fi->isSymLink() ){ 187 QString symLink=fi->readLink();
187 QString symLink=fi->readLink();
188// qDebug("Symlink detected "+symLink); 188// qDebug("Symlink detected "+symLink);
189 QFileInfo sym( symLink); 189 QFileInfo sym( symLink);
190 fileS.sprintf( "%10li", sym.size() ); 190 fileS.sprintf( "%10li", sym.size() );
191 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() ); 191 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() );
192 fileDate = sym.lastModified().toString(); 192 fileDate = sym.lastModified().toString();
193 } else { 193 } else {
194// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); 194// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL);
195 fileS.sprintf( "%10li", fi->size() ); 195 fileS.sprintf( "%10li", fi->size() );
196 fileL.sprintf( "%s",fi->fileName().data() ); 196 fileL.sprintf( "%s",fi->fileName().data() );
197 fileDate= fi->lastModified().toString(); 197 fileDate= fi->lastModified().toString();
198 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { 198 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
199 fileL+="/"; 199 fileL+="/";
200 isDir=TRUE; 200 isDir=TRUE;
201// qDebug( fileL); 201// qDebug( fileL);
202 }
202 } 203 }
203 } 204 if(fileL !="./" && fi->exists()) {
204 if(fileL !="./") { 205 item= new QListViewItem( ListView,fileL,fileS , fileDate);
205 item= new QListViewItem( ListView,fileL,fileS , fileDate); 206 QPixmap pm;
206 QPixmap pm;
207 207
208 if(isDir || fileL.find("/",0,TRUE) != -1) { 208 if(isDir || fileL.find("/",0,TRUE) != -1) {
209 if( !QDir( fi->filePath() ).isReadable()) 209 if( !QDir( fi->filePath() ).isReadable())
210 pm = Resource::loadPixmap( "lockedfolder" ); 210 pm = Resource::loadPixmap( "lockedfolder" );
211 else 211 else
212 pm= Resource::loadPixmap( "folder" );
213 item->setPixmap( 0,pm );
214 } else {
215 if( !fi->isReadable() )
216 pm = Resource::loadPixmap( "locked" );
217 else {
218 MimeType mt(fi->filePath());
219 pm=mt.pixmap();
220 if(pm.isNull())
221 pm = Resource::loadPixmap( "UnknownDocument-14" );
222 item->setPixmap( 0,pm);
223 }
224 }
225 if( fileL.find("->",0,TRUE) != -1) {
226 // overlay link image
212 pm= Resource::loadPixmap( "folder" ); 227 pm= Resource::loadPixmap( "folder" );
213 item->setPixmap( 0,pm ); 228 QPixmap lnk = Resource::loadPixmap( "symlink" );
214 } else { 229 QPainter painter( &pm );
215 if( !fi->isReadable() ) 230 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
216 pm = Resource::loadPixmap( "locked" ); 231 pm.setMask( pm.createHeuristicMask( FALSE ) );
217 else { 232 item->setPixmap( 0, pm);
218 MimeType mt(fi->filePath());
219 pm=mt.pixmap();
220 if(pm.isNull())
221 pm = Resource::loadPixmap( "UnknownDocument-14" );
222 item->setPixmap( 0,pm);
223 } 233 }
224 } 234 }
225 if( fileL.find("->",0,TRUE) != -1) { 235 isDir=FALSE;
226 // overlay link image 236 ++it;
227 pm= Resource::loadPixmap( "folder" ); 237// }
228 QPixmap lnk = Resource::loadPixmap( "symlink" );
229 QPainter painter( &pm );
230 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
231 pm.setMask( pm.createHeuristicMask( FALSE ) );
232 item->setPixmap( 0, pm);
233 }
234 }
235 isDir=FALSE;
236 ++it;
237 } 238 }
238 ListView->setSorting( 3, FALSE); 239 ListView->setSorting( 3, FALSE);
239 QString currentPath = currentDir.canonicalPath(); 240 QString currentPath = currentDir.canonicalPath();
@@ -263,6 +264,7 @@ void fileBrowser::upDir()
263// you may want to switch these 2 functions. I like single clicks 264// you may want to switch these 2 functions. I like single clicks
264void fileBrowser::listClicked(QListViewItem *selectedItem) 265void fileBrowser::listClicked(QListViewItem *selectedItem)
265{ 266{
267 if(selectedItem) {
266 QString strItem=selectedItem->text(0); 268 QString strItem=selectedItem->text(0);
267 QString strSize=selectedItem->text(1); 269 QString strSize=selectedItem->text(1);
268// qDebug("strItem is "+strItem); 270// qDebug("strItem is "+strItem);
@@ -302,6 +304,7 @@ void fileBrowser::listClicked(QListViewItem *selectedItem)
302 } //end not symlink 304 } //end not symlink
303 chdir(strItem.latin1()); 305 chdir(strItem.latin1());
304 } 306 }
307 }
305} 308}
306 309
307void fileBrowser::OnOK() 310void fileBrowser::OnOK()
@@ -378,16 +381,20 @@ void fileBrowser::ListPressed( int mouse, QListViewItem *item, const QPoint &poi
378void fileBrowser::showListMenu(QListViewItem *item) { 381void fileBrowser::showListMenu(QListViewItem *item) {
379 382
380 QPopupMenu m;// = new QPopupMenu( Local_View ); 383 QPopupMenu m;// = new QPopupMenu( Local_View );
381 if( item->text(0).find("/",0,TRUE)) 384 if(item) {
382 m.insertItem( tr( "Change Directory" ), this, SLOT( doCd() )); 385 if( item->text(0).find("/",0,TRUE))
383 else 386 m.insertItem( tr( "Change Directory" ), this, SLOT( doCd() ));
384 m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() )); 387 m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() ));
385 m.insertItem( tr( "Rescan" ), this, SLOT( populateList() )); 388 m.insertItem( tr( "Rescan" ), this, SLOT( populateList() ));
386 m.insertItem( tr( "Rename" ), this, SLOT( localRename() )); 389 m.insertItem( tr( "Rename" ), this, SLOT( localRename() ));
387 m.insertSeparator(); 390 m.insertSeparator();
388 m.insertItem( tr( "Delete" ), this, SLOT( localDelete() )); 391 m.insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
392 } else {
393 m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() ));
394 m.insertItem( tr( "Rescan" ), this, SLOT( populateList() ));
395
396 }
389 m.exec( QCursor::pos() ); 397 m.exec( QCursor::pos() );
390
391} 398}
392 399
393void fileBrowser::doCd() { 400void fileBrowser::doCd() {
@@ -400,6 +407,7 @@ void fileBrowser::makDir() {
400 fileDlg->exec(); 407 fileDlg->exec();
401 if( fileDlg->result() == 1 ) { 408 if( fileDlg->result() == 1 ) {
402 QString filename = fileDlg->LineEdit1->text(); 409 QString filename = fileDlg->LineEdit1->text();
410 qDebug("Make dir");
403 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); 411 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
404 } 412 }
405 populateList(); 413 populateList();
@@ -436,7 +444,6 @@ void fileBrowser::localDelete() {
436 // exit 444 // exit
437 break; 445 break;
438 }; 446 };
439
440 } else { 447 } else {
441 switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f 448 switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f
442 +" ?","Yes","No",0,0,1) ) { 449 +" ?","Yes","No",0,0,1) ) {