summaryrefslogtreecommitdiff
path: root/noncore/unsupported/filebrowser
Unidiff
Diffstat (limited to 'noncore/unsupported/filebrowser') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/filebrowser/filebrowser.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/noncore/unsupported/filebrowser/filebrowser.cpp b/noncore/unsupported/filebrowser/filebrowser.cpp
index 8cf8a60..92a688a 100644
--- a/noncore/unsupported/filebrowser/filebrowser.cpp
+++ b/noncore/unsupported/filebrowser/filebrowser.cpp
@@ -71,388 +71,388 @@ FileItem::FileItem( QListView * parent, const QFileInfo & fi )
71 else if( fi.isDir() ) 71 else if( fi.isDir() )
72 setText( 3, "directory" ); 72 setText( 3, "directory" );
73 else if( isLib() ) 73 else if( isLib() )
74 setText( 3, "library" ); 74 setText( 3, "library" );
75 else 75 else
76 setText( 3, mt.description() ); 76 setText( 3, mt.description() );
77 77
78 QPixmap pm; 78 QPixmap pm;
79 if( fi.isDir() ){ 79 if( fi.isDir() ){
80 if( !QDir( fi.filePath() ).isReadable() ) 80 if( !QDir( fi.filePath() ).isReadable() )
81 pm = Resource::loadPixmap( "lockedfolder" ); 81 pm = Resource::loadPixmap( "lockedfolder" );
82 else 82 else
83 pm = Resource::loadPixmap( "folder" ); 83 pm = Resource::loadPixmap( "folder" );
84 } 84 }
85 else if( !fi.isReadable() ) 85 else if( !fi.isReadable() )
86 pm = Resource::loadPixmap( "locked" ); 86 pm = Resource::loadPixmap( "locked" );
87 else if( isLib() ) 87 else if( isLib() )
88 pm = Resource::loadPixmap( "library" ); 88 pm = Resource::loadPixmap( "library" );
89 else if( ((FileView* )parent)->getShowThumbnails() && mt.id().contains(QRegExp("^image/", FALSE, FALSE)) ) 89 else if( ((FileView* )parent)->getShowThumbnails() && mt.id().contains(QRegExp("^image/", FALSE, FALSE)) )
90 pm = drawThumbnail(fi); 90 pm = drawThumbnail(fi);
91 else 91 else
92 pm = mt.pixmap(); 92 pm = mt.pixmap();
93 if ( pm.isNull() ) 93 if ( pm.isNull() )
94 pm = Resource::loadPixmap("UnknownDocument-14"); 94 pm = Resource::loadPixmap("UnknownDocument-14");
95 95
96 if( fi.isSymLink() ){ 96 if( fi.isSymLink() ){
97 // overlay link image 97 // overlay link image
98 QPixmap lnk = Resource::loadPixmap( "filebrowser/symlink" ); 98 QPixmap lnk = Resource::loadPixmap( "filebrowser/symlink" );
99 QPainter painter( &pm ); 99 QPainter painter( &pm );
100 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 100 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
101 pm.setMask( pm.createHeuristicMask( FALSE ) ); 101 pm.setMask( pm.createHeuristicMask( FALSE ) );
102 } 102 }
103 setPixmap(0,pm); 103 setPixmap(0,pm);
104} 104}
105 105
106QString FileItem::sizeString( unsigned int s ) 106QString FileItem::sizeString( unsigned int s )
107{ 107{
108 double size = s; 108 double size = s;
109 109
110 if ( size > 1024 * 1024 * 1024 ) 110 if ( size > 1024 * 1024 * 1024 )
111 return QString().sprintf( "%.1f", size / ( 1024 * 1024 * 1024 ) ) + "G"; 111 return QString().sprintf( "%.1f", size / ( 1024 * 1024 * 1024 ) ) + "G";
112 else if ( size > 1024 * 1024 ) 112 else if ( size > 1024 * 1024 )
113 return QString().sprintf( "%.1f", size / ( 1024 * 1024 ) ) + "M"; 113 return QString().sprintf( "%.1f", size / ( 1024 * 1024 ) ) + "M";
114 else if ( size > 1024 ) 114 else if ( size > 1024 )
115 return QString().sprintf( "%.1f", size / ( 1024 ) ) + "K"; 115 return QString().sprintf( "%.1f", size / ( 1024 ) ) + "K";
116 else 116 else
117 return QString::number( size ) + "B"; 117 return QString::number( size ) + "B";
118} 118}
119 119
120QString FileItem::key( int column, bool ascending ) const 120QString FileItem::key( int column, bool ascending ) const
121{ 121{
122 QString tmp; 122 QString tmp;
123 123
124 ascending = ascending; 124 ascending = ascending;
125 125
126 if( (column == 0) && fileInfo.isDir() ){ // Sort by name 126 if( (column == 0) && fileInfo.isDir() ){ // Sort by name
127 // We want the directories to appear at the top of the list 127 // We want the directories to appear at the top of the list
128 tmp = (char) 0; 128 tmp = (char) 0;
129 return (tmp + text( column ).lower()); 129 return (tmp + text( column ).lower());
130 } 130 }
131 else if( column == 2 ) { // Sort by date 131 else if( column == 2 ) { // Sort by date
132 QDateTime epoch( QDate( 1980, 1, 1 ) ); 132 QDateTime epoch( QDate( 1980, 1, 1 ) );
133 tmp.sprintf( "%08d", epoch.secsTo( fileInfo.lastModified() ) ); 133 tmp.sprintf( "%08d", epoch.secsTo( fileInfo.lastModified() ) );
134 return tmp; 134 return tmp;
135 } 135 }
136 else if( column == 1 ) { // Sort by size 136 else if( column == 1 ) { // Sort by size
137 return tmp.sprintf( "%08d", fileInfo.size() ); 137 return tmp.sprintf( "%08d", fileInfo.size() );
138 } 138 }
139 139
140 return text( column ).lower(); 140 return text( column ).lower();
141} 141}
142 142
143bool FileItem::isLib() 143bool FileItem::isLib()
144{ 144{
145 // This is of course not foolproof 145 // This is of course not foolproof
146 if( !qstrncmp("lib", fileInfo.baseName(), 3) && 146 if( !qstrncmp("lib", fileInfo.baseName(), 3) &&
147 ( fileInfo.extension().contains( "so" ) || 147 ( fileInfo.extension().contains( "so" ) ||
148 fileInfo.extension().contains( "a" ) ) ) 148 fileInfo.extension().contains( "a" ) ) )
149 return TRUE; 149 return TRUE;
150 else 150 else
151 return FALSE; 151 return FALSE;
152} 152}
153 153
154int FileItem::launch() 154int FileItem::launch()
155{ 155{
156 DocLnk doc( fileInfo.filePath(), FALSE ); 156 DocLnk doc( fileInfo.filePath(), FALSE );
157 doc.execute(); 157 doc.execute();
158 listView()->clearSelection(); 158 listView()->clearSelection();
159 return 1; 159 return 1;
160} 160}
161 161
162bool FileItem::rename( const QString & name ) 162bool FileItem::rename( const QString & name )
163{ 163{
164 QString oldpath, newpath; 164 QString oldpath, newpath;
165 165
166 if ( name.isEmpty() ) 166 if ( name.isEmpty() )
167 return FALSE; 167 return FALSE;
168 168
169 if ( name.contains( QRegExp("[/\\$\"\'\\*\\?]") ) ) 169 if ( name.contains( QRegExp("[/\\$\"\'\\*\\?]") ) )
170 return FALSE; 170 return FALSE;
171 171
172 oldpath = fileInfo.filePath(); 172 oldpath = fileInfo.filePath();
173 newpath = fileInfo.dirPath() + "/" + name; 173 newpath = fileInfo.dirPath() + "/" + name;
174 174
175 if ( ::rename( (const char *) oldpath, (const char *) newpath ) != 0 ) 175 if ( ::rename( (const char *) oldpath, (const char *) newpath ) != 0 )
176 return FALSE; 176 return FALSE;
177 else 177 else
178 return TRUE; 178 return TRUE;
179} 179}
180 180
181QPixmap FileItem::drawThumbnail(const QFileInfo &file) { 181QPixmap FileItem::drawThumbnail(const QFileInfo &file) {
182 182
183 /* 183 /*
184 * this thing is sloooooow, and it also doesn't load 184 * this thing is sloooooow, and it also doesn't load
185 * dynamicly (like a web browser). if anyone knows how to 185 * dynamicly (like a web browser). if anyone knows how to
186 * do that, please do! 186 * do that, please do!
187 */ 187 */
188 QString cacheDir = "/tmp/filebrowserThumbnailCache"; 188 QString cacheDir = "/tmp/filebrowserThumbnailCache";
189 QFileInfo cachedFile (cacheDir + file.filePath()); 189 QFileInfo cachedFile (cacheDir + file.filePath());
190 190
191 if (cachedFile.exists() && cachedFile.lastModified() == file.lastModified()) { 191 if (cachedFile.exists() && cachedFile.lastModified() == file.lastModified()) {
192 192
193 QPixmap cachedImage (cachedFile.filePath()); 193 QPixmap cachedImage (cachedFile.filePath());
194 return cachedImage; 194 return cachedImage;
195 } 195 }
196 else { 196 else {
197 197
198 QImage image (file.filePath()); 198 QImage image (file.filePath());
199 199
200 // if inside of cache dir, don't render thumbnails! recursive error! 200 // if inside of cache dir, don't render thumbnails! recursive error!
201 if (image.isNull() || file.filePath().contains(QRegExp("^" + cacheDir))) { 201 if (image.isNull() || file.filePath().contains(QRegExp("^" + cacheDir))) {
202 DocLnk doc (file.filePath()); 202 DocLnk doc (file.filePath());
203 return doc.pixmap(); 203 return doc.pixmap();
204 } 204 }
205 Config cfg("Filebrowser"); 205 Config cfg("Filebrowser");
206 cfg.setGroup("View"); 206 cfg.setGroup("View");
207 int size; 207 int size;
208 size =cfg.readNumEntry("ThumbSize", 72); 208 size =cfg.readNumEntry("ThumbSize", 72);
209 QPixmap thumb (size, size); 209 QPixmap thumb (size, size);
210 210
211 double scale = (double)image.height() / (double)image.width(); 211 double scale = (double)image.height() / (double)image.width();
212 int newHeight = int(size * scale); 212 int newHeight = int(size * scale);
213 thumb.convertFromImage (image.smoothScale(size, newHeight)); 213 thumb.convertFromImage (image.smoothScale(size, newHeight));
214 214
215 if (!cachedFile.dir().exists()) { 215 if (!cachedFile.dir().exists()) {
216 QString cmd = "/bin/mkdir -p \"" + cachedFile.dirPath() +"\""; 216 QString cmd = "/bin/mkdir -p \"" + cachedFile.dirPath() +"\"";
217 system( (const char *) cmd ); 217 system( (const char *) cmd );
218 } 218 }
219 219
220 if (thumb.save(cachedFile.filePath(), QPixmap::imageFormat(file.filePath()), 70)) { 220 if (thumb.save(cachedFile.filePath(), QPixmap::imageFormat(file.filePath()), 70)) {
221 // make thumbnail modify time the same as the image 221 // make thumbnail modify time the same as the image
222 QString cmd = "/bin/touch -r \"" + file.filePath() +"\" " + 222 QString cmd = "/bin/touch -r \"" + file.filePath() +"\" " +
223 "\"" + cachedFile.filePath() + "\""; 223 "\"" + cachedFile.filePath() + "\"";
224 system( (const char *) cmd ); 224 system( (const char *) cmd );
225 225
226 } 226 }
227 227
228 return thumb; 228 return thumb;
229 } 229 }
230} 230}
231 231
232// 232//
233// FileView 233// FileView
234// 234//
235FileView::FileView( const QString & dir, QWidget * parent, 235FileView::FileView( const QString & dir, QWidget * parent,
236 const char * name, 236 const char * name,
237 bool hidden, bool symlinks, bool thumbnails ) 237 bool hidden, bool symlinks, bool thumbnails )
238 : QListView( parent, name ), 238 : QListView( parent, name ),
239 menuTimer( this ), 239 menuTimer( this ),
240 le( NULL ), 240 le( NULL ),
241 itemToRename( NULL ), 241 itemToRename( NULL ),
242 showHidden( hidden ), 242 showHidden( hidden ),
243 showSymlinks( symlinks ), 243 showSymlinks( symlinks ),
244 showThumbnails( thumbnails ), 244 showThumbnails( thumbnails ),
245 menuKeepsOpen( FALSE ) 245 menuKeepsOpen( FALSE )
246{ 246{
247 addColumn( "Name" ); 247 addColumn( "Name" );
248 addColumn( "Size" ); 248 addColumn( "Size" );
249 addColumn( "Date" ); 249 addColumn( "Date" );
250 addColumn( "Type" ); 250 addColumn( "Type" );
251 251
252 setMultiSelection( TRUE ); 252 setMultiSelection( TRUE );
253 //header()->hide(); 253 //header()->hide();
254 254
255 setColumnWidthMode( 0, Manual ); 255 setColumnWidthMode( 0, Manual );
256 setColumnWidthMode( 3, Manual ); 256 setColumnWidthMode( 3, Manual );
257 257
258 // right align yize column 258 // right align yize column
259 setColumnAlignment( 1, AlignRight ); 259 setColumnAlignment( 1, AlignRight );
260 260
261 generateDir( dir ); 261 generateDir( dir );
262 262
263 connect( this, SIGNAL( clicked( QListViewItem * )), 263 connect( this, SIGNAL( clicked(QListViewItem*)),
264 SLOT( itemClicked( QListViewItem * )) ); 264 SLOT( itemClicked(QListViewItem*)) );
265 connect( this, SIGNAL( doubleClicked( QListViewItem * )), 265 connect( this, SIGNAL( doubleClicked(QListViewItem*)),
266 SLOT( itemDblClicked( QListViewItem * )) ); 266 SLOT( itemDblClicked(QListViewItem*)) );
267 connect( this, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) ); 267 connect( this, SIGNAL( selectionChanged() ), SLOT( cancelMenuTimer() ) );
268 connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) ); 268 connect( &menuTimer, SIGNAL( timeout() ), SLOT( showFileMenu() ) );
269} 269}
270 270
271void FileView::resizeEvent( QResizeEvent *e ) 271void FileView::resizeEvent( QResizeEvent *e )
272{ 272{
273 setColumnWidth( 0, width() - 2 * lineWidth() - 20 - columnWidth( 1 ) - columnWidth( 2 ) ); 273 setColumnWidth( 0, width() - 2 * lineWidth() - 20 - columnWidth( 1 ) - columnWidth( 2 ) );
274 274
275 // hide type column, we use it for "sort by type" only 275 // hide type column, we use it for "sort by type" only
276 //setColumnWidth( 3, 0 ); 276 //setColumnWidth( 3, 0 );
277 QListView::resizeEvent( e ); 277 QListView::resizeEvent( e );
278} 278}
279 279
280void FileView::updateDir() 280void FileView::updateDir()
281{ 281{
282 generateDir( currentDir ); 282 generateDir( currentDir );
283} 283}
284 284
285void FileView::setDir( const QString & dir ) 285void FileView::setDir( const QString & dir )
286{ 286{
287 if ( dir.startsWith( "/dev" ) ) { 287 if ( dir.startsWith( "/dev" ) ) {
288 QMessageBox::warning( this, tr( "File Manager" ), 288 QMessageBox::warning( this, tr( "File Manager" ),
289 tr( "Can't show /dev/ directory." ), tr( "&Ok" ) ); 289 tr( "Can't show /dev/ directory." ), tr( "&Ok" ) );
290 return; 290 return;
291 } 291 }
292 dirHistory += currentDir; 292 dirHistory += currentDir;
293 generateDir( dir ); 293 generateDir( dir );
294} 294}
295 295
296void FileView::generateDir( const QString & dir ) 296void FileView::generateDir( const QString & dir )
297{ 297{
298 if(menuKeepsOpen){ 298 if(menuKeepsOpen){
299 cancelMenuTimer(); 299 cancelMenuTimer();
300 } 300 }
301 QDir d( dir ); 301 QDir d( dir );
302 302
303 if( d.exists() && !d.isReadable() ) return; 303 if( d.exists() && !d.isReadable() ) return;
304 304
305 currentDir = d.canonicalPath(); 305 currentDir = d.canonicalPath();
306 306
307 if( !showHidden) 307 if( !showHidden)
308 d.setFilter( QDir::Dirs | QDir::Files ); 308 d.setFilter( QDir::Dirs | QDir::Files );
309 else 309 else
310 d.setFilter( QDir::Dirs | QDir::Files |QDir::Hidden | QDir::All); 310 d.setFilter( QDir::Dirs | QDir::Files |QDir::Hidden | QDir::All);
311 311
312 d.setSorting( QDir::Name | QDir::DirsFirst | QDir::IgnoreCase | QDir::Reversed ); 312 d.setSorting( QDir::Name | QDir::DirsFirst | QDir::IgnoreCase | QDir::Reversed );
313 313
314 const QFileInfoList * list = d.entryInfoList(); 314 const QFileInfoList * list = d.entryInfoList();
315 QFileInfoListIterator it( *list ); 315 QFileInfoListIterator it( *list );
316 QFileInfo *fi; 316 QFileInfo *fi;
317 317
318 QProgressBar *thumbProgress = 0; 318 QProgressBar *thumbProgress = 0;
319 if (showThumbnails) { 319 if (showThumbnails) {
320 320
321 thumbProgress = new QProgressBar(it.count(), this); 321 thumbProgress = new QProgressBar(it.count(), this);
322 thumbProgress->show(); 322 thumbProgress->show();
323 } 323 }
324 324
325 clear(); 325 clear();
326 326
327 int fileCount = 1; // used in the thumbnail progress meter 327 int fileCount = 1; // used in the thumbnail progress meter
328 while( (fi = it.current()) ){ 328 while( (fi = it.current()) ){
329 if( (fi->fileName() == ".") || (fi->fileName() == "..") ){ 329 if( (fi->fileName() == ".") || (fi->fileName() == "..") ){
330 ++it; 330 ++it;
331 continue; 331 continue;
332 } 332 }
333 if(!showSymlinks && fi->isSymLink()){ 333 if(!showSymlinks && fi->isSymLink()){
334 ++it; 334 ++it;
335 continue; 335 continue;
336 } 336 }
337 // thumbnail progress 337 // thumbnail progress
338 if (showThumbnails) { 338 if (showThumbnails) {
339 339
340 thumbProgress->setProgress(fileCount); 340 thumbProgress->setProgress(fileCount);
341 } 341 }
342 (void) new FileItem( (QListView *) this, *fi ); 342 (void) new FileItem( (QListView *) this, *fi );
343 343
344 ++it; 344 ++it;
345 ++fileCount; 345 ++fileCount;
346 } 346 }
347 347
348 if (showThumbnails) { 348 if (showThumbnails) {
349 thumbProgress->close(); 349 thumbProgress->close();
350 } 350 }
351 emit dirChanged(); 351 emit dirChanged();
352 352
353} 353}
354 354
355void FileView::rename() 355void FileView::rename()
356{ 356{
357 itemToRename = (FileItem *) currentItem(); 357 itemToRename = (FileItem *) currentItem();
358 const QPixmap * pm; 358 const QPixmap * pm;
359 int pmw; 359 int pmw;
360 360
361 if( itemToRename == NULL ) return; 361 if( itemToRename == NULL ) return;
362 362
363 if( ( pm = itemToRename->pixmap( 0 ) ) == NULL ) 363 if( ( pm = itemToRename->pixmap( 0 ) ) == NULL )
364 pmw = 0; 364 pmw = 0;
365 else 365 else
366 pmw = pm->width(); 366 pmw = pm->width();
367 367
368 ensureItemVisible( itemToRename ); 368 ensureItemVisible( itemToRename );
369 horizontalScrollBar()->setValue( 0 ); 369 horizontalScrollBar()->setValue( 0 );
370 horizontalScrollBar()->setEnabled( FALSE ); 370 horizontalScrollBar()->setEnabled( FALSE );
371 verticalScrollBar()->setEnabled( FALSE ); 371 verticalScrollBar()->setEnabled( FALSE );
372 372
373 selected = isSelected( itemToRename ); 373 selected = isSelected( itemToRename );
374 setSelected( itemToRename, FALSE ); 374 setSelected( itemToRename, FALSE );
375 375
376 if( le == NULL ){ 376 if( le == NULL ){
377 le = new InlineEdit( this ); 377 le = new InlineEdit( this );
378 le->setFrame( FALSE ); 378 le->setFrame( FALSE );
379 connect( le, SIGNAL( lostFocus() ), SLOT( endRenaming() ) ); 379 connect( le, SIGNAL( lostFocus() ), SLOT( endRenaming() ) );
380 } 380 }
381 381
382 QRect r = itemRect( itemToRename ); 382 QRect r = itemRect( itemToRename );
383 r.setTop( r.top() + frameWidth() + 1 ); 383 r.setTop( r.top() + frameWidth() + 1 );
384 r.setLeft( r.left() + frameWidth() + pmw ); 384 r.setLeft( r.left() + frameWidth() + pmw );
385 r.setBottom( r.bottom() + frameWidth() ); 385 r.setBottom( r.bottom() + frameWidth() );
386 r.setWidth( columnWidth( 0 ) - pmw ); 386 r.setWidth( columnWidth( 0 ) - pmw );
387 387
388 le->setGeometry( r ); 388 le->setGeometry( r );
389 le->setText( itemToRename->text( 0 ) ); 389 le->setText( itemToRename->text( 0 ) );
390 le->selectAll(); 390 le->selectAll();
391 le->show(); 391 le->show();
392 le->setFocus(); 392 le->setFocus();
393} 393}
394 394
395void FileView::endRenaming() 395void FileView::endRenaming()
396{ 396{
397 if( le && itemToRename ){ 397 if( le && itemToRename ){
398 le->hide(); 398 le->hide();
399 setSelected( itemToRename, selected ); 399 setSelected( itemToRename, selected );
400 400
401 if( !itemToRename->rename( le->text() ) ){ 401 if( !itemToRename->rename( le->text() ) ){
402 QMessageBox::warning( this, tr( "Rename file" ), 402 QMessageBox::warning( this, tr( "Rename file" ),
403 tr( "Rename failed!" ), tr( "&Ok" ) ); 403 tr( "Rename failed!" ), tr( "&Ok" ) );
404 } else { 404 } else {
405 updateDir(); 405 updateDir();
406 } 406 }
407 itemToRename = NULL; 407 itemToRename = NULL;
408 horizontalScrollBar()->setEnabled( TRUE ); 408 horizontalScrollBar()->setEnabled( TRUE );
409 verticalScrollBar()->setEnabled( TRUE ); 409 verticalScrollBar()->setEnabled( TRUE );
410 } 410 }
411} 411}
412 412
413void FileView::copy() 413void FileView::copy()
414{ 414{
415 // dont keep cut files any longer than necessary 415 // dont keep cut files any longer than necessary
416 // ##### a better inmplementation might be to rename the CUT file 416 // ##### a better inmplementation might be to rename the CUT file
417 // ##### to ".QPE-FILEBROWSER-MOVING" rather than copying it. 417 // ##### to ".QPE-FILEBROWSER-MOVING" rather than copying it.
418 system ( "rm -rf /tmp/qpemoving" ); 418 system ( "rm -rf /tmp/qpemoving" );
419 419
420 FileItem * i; 420 FileItem * i;
421 421
422 if((i = (FileItem *) firstChild()) == 0) return; 422 if((i = (FileItem *) firstChild()) == 0) return;
423 423
424 flist.clear(); 424 flist.clear();
425 while( i ){ 425 while( i ){
426 if( i->isSelected() /*&& !i->isDir()*/ ){ 426 if( i->isSelected() /*&& !i->isDir()*/ ){
427 flist += i->getFilePath(); 427 flist += i->getFilePath();
428 } 428 }
429 i = (FileItem *) i->nextSibling(); 429 i = (FileItem *) i->nextSibling();
430 } 430 }
431} 431}
432 432
433void FileView::paste() 433void FileView::paste()
434{ 434{
435 int i, err; 435 int i, err;
436 QString cmd, dest, basename, cd = currentDir; 436 QString cmd, dest, basename, cd = currentDir;
437 437
438 if(cd == "/") cd = ""; 438 if(cd == "/") cd = "";
439 439
440 for ( QStringList::Iterator it = flist.begin(); it != flist.end(); ++it ) { 440 for ( QStringList::Iterator it = flist.begin(); it != flist.end(); ++it ) {
441 basename = (*it).mid((*it).findRev("/") + 1, (*it).length()); 441 basename = (*it).mid((*it).findRev("/") + 1, (*it).length());
442 442
443 dest = cd + "/" + basename; 443 dest = cd + "/" + basename;
444 if( QFile( dest ).exists() ){ 444 if( QFile( dest ).exists() ){
445 i = 1; 445 i = 1;
446 dest = cd + "/Copy of " + basename; 446 dest = cd + "/Copy of " + basename;
447 while( QFile( dest ).exists() ){ 447 while( QFile( dest ).exists() ){
448 dest.sprintf( "%s/Copy (%d) of %s", (const char *) cd, i++, 448 dest.sprintf( "%s/Copy (%d) of %s", (const char *) cd, i++,
449 (const char *) basename ); 449 (const char *) basename );
450 } 450 }
451 } 451 }
452 452
453 // 453 //
454 // Copy a directory recursively using the "cp" command - 454 // Copy a directory recursively using the "cp" command -
455 // may have to be changed 455 // may have to be changed
456 // 456 //
457 if( QFileInfo( (*it) ).isDir() ){ 457 if( QFileInfo( (*it) ).isDir() ){
458 cmd = "/bin/cp -fpR \"" + (*it) +"\" " + "\"" + dest + "\""; 458 cmd = "/bin/cp -fpR \"" + (*it) +"\" " + "\"" + dest + "\"";
@@ -719,373 +719,373 @@ void FileView::cancelMenuTimer()
719void FileView::addToDocuments() 719void FileView::addToDocuments()
720{ 720{
721 FileItem * i = (FileItem *) currentItem(); 721 FileItem * i = (FileItem *) currentItem();
722 DocLnk f; 722 DocLnk f;
723 QString n = i->text(0); 723 QString n = i->text(0);
724 n.replace(QRegExp("\\..*"),""); 724 n.replace(QRegExp("\\..*"),"");
725 f.setName( n ); 725 f.setName( n );
726 f.setFile( i->getFilePath() ); 726 f.setFile( i->getFilePath() );
727 f.writeLink(); 727 f.writeLink();
728} 728}
729 729
730void FileView::run() 730void FileView::run()
731{ 731{
732 FileItem * i = (FileItem *) currentItem(); 732 FileItem * i = (FileItem *) currentItem();
733 i->launch(); 733 i->launch();
734} 734}
735 735
736void FileView::showFileMenu() 736void FileView::showFileMenu()
737{ 737{
738 FileItem * i = (FileItem *) currentItem(); 738 FileItem * i = (FileItem *) currentItem();
739 if ( !i ) 739 if ( !i )
740 return; 740 return;
741 741
742 QPopupMenu * m = new QPopupMenu( this ); 742 QPopupMenu * m = new QPopupMenu( this );
743 743
744 if ( !i->isDir() ) { 744 if ( !i->isDir() ) {
745 m->insertItem( tr( "Add to Documents" ), this, SLOT( addToDocuments() ) ); 745 m->insertItem( tr( "Add to Documents" ), this, SLOT( addToDocuments() ) );
746 m->insertSeparator(); 746 m->insertSeparator();
747 } 747 }
748 748
749 MimeType mt(i->getFilePath()); 749 MimeType mt(i->getFilePath());
750 const AppLnk* app = mt.application(); 750 const AppLnk* app = mt.application();
751 751
752 if ( !i->isDir() ) { 752 if ( !i->isDir() ) {
753 if ( app ) 753 if ( app )
754 m->insertItem( app->pixmap(), tr( "Open in " + app->name() ), this, SLOT( run() ) ); 754 m->insertItem( app->pixmap(), tr( "Open in " + app->name() ), this, SLOT( run() ) );
755 else if( i->isExecutable() ) 755 else if( i->isExecutable() )
756 m->insertItem( Resource::loadPixmap( i->text( 0 ) ), tr( "Run" ), this, SLOT( run() ) ); 756 m->insertItem( Resource::loadPixmap( i->text( 0 ) ), tr( "Run" ), this, SLOT( run() ) );
757 757
758 m->insertItem( Resource::loadPixmap( "txt" ), tr( "View as text" ), 758 m->insertItem( Resource::loadPixmap( "txt" ), tr( "View as text" ),
759 this, SLOT( viewAsText() ) ); 759 this, SLOT( viewAsText() ) );
760 760
761 m->insertSeparator(); 761 m->insertSeparator();
762 } 762 }
763 763
764 m->insertItem( tr( "Rename" ), this, SLOT( rename() ) ); 764 m->insertItem( tr( "Rename" ), this, SLOT( rename() ) );
765 m->insertItem( Resource::loadPixmap("cut"), 765 m->insertItem( Resource::loadPixmap("cut"),
766 tr( "Cut" ), this, SLOT( cut() ) ); 766 tr( "Cut" ), this, SLOT( cut() ) );
767 m->insertItem( Resource::loadPixmap("copy"), 767 m->insertItem( Resource::loadPixmap("copy"),
768 768
769 tr( "Copy" ), this, SLOT( copy() ) ); 769 tr( "Copy" ), this, SLOT( copy() ) );
770 m->insertItem( Resource::loadPixmap("paste"), 770 m->insertItem( Resource::loadPixmap("paste"),
771 tr( "Paste" ), this, SLOT( paste() ) ); 771 tr( "Paste" ), this, SLOT( paste() ) );
772 m->insertItem( tr( "Change Permissions" ), this, SLOT( chPerm() ) ); 772 m->insertItem( tr( "Change Permissions" ), this, SLOT( chPerm() ) );
773 m->insertItem(Resource::loadPixmap( "close" ), tr( "Delete" ), this, SLOT( del() ) ); 773 m->insertItem(Resource::loadPixmap( "close" ), tr( "Delete" ), this, SLOT( del() ) );
774 m->insertSeparator(); 774 m->insertSeparator();
775 m->insertItem( tr( "Select all" ), this, SLOT( selectAll() ) ); 775 m->insertItem( tr( "Select all" ), this, SLOT( selectAll() ) );
776 m->insertItem( tr( "Deselect all" ), this, SLOT( deselectAll() ) ); 776 m->insertItem( tr( "Deselect all" ), this, SLOT( deselectAll() ) );
777 m->popup( QCursor::pos() ); 777 m->popup( QCursor::pos() );
778} 778}
779 779
780// 780//
781// FileBrowser 781// FileBrowser
782// 782//
783 783
784void FileView::setShowHidden(bool hidden) 784void FileView::setShowHidden(bool hidden)
785{ 785{
786 showHidden=hidden; 786 showHidden=hidden;
787} 787}
788 788
789void FileView::setShowSymlinks(bool symlinks) 789void FileView::setShowSymlinks(bool symlinks)
790{ 790{
791 showSymlinks=symlinks; 791 showSymlinks=symlinks;
792} 792}
793 793
794void FileView::setShowThumbnails(bool thumbnails) 794void FileView::setShowThumbnails(bool thumbnails)
795{ 795{
796 showThumbnails=thumbnails; 796 showThumbnails=thumbnails;
797} 797}
798 798
799void FileView::setMenuKeepsOpen(bool keepOpen) 799void FileView::setMenuKeepsOpen(bool keepOpen)
800{ 800{
801 menuKeepsOpen=keepOpen; 801 menuKeepsOpen=keepOpen;
802} 802}
803 803
804FileBrowser::FileBrowser( QWidget * parent, 804FileBrowser::FileBrowser( QWidget * parent,
805 const char * name, WFlags f ) : 805 const char * name, WFlags f ) :
806 QMainWindow( parent, name, f ) 806 QMainWindow( parent, name, f )
807{ 807{
808 init( QDir::current().canonicalPath() ); 808 init( QDir::current().canonicalPath() );
809} 809}
810 810
811FileBrowser::FileBrowser( const QString & dir, QWidget * parent, 811FileBrowser::FileBrowser( const QString & dir, QWidget * parent,
812 const char * name, WFlags f ) : 812 const char * name, WFlags f ) :
813 QMainWindow( parent, name, f ) 813 QMainWindow( parent, name, f )
814{ 814{
815 init( dir ); 815 init( dir );
816} 816}
817 817
818void FileBrowser::init(const QString & dir) 818void FileBrowser::init(const QString & dir)
819{ 819{
820 setCaption( tr("File Manager") ); 820 setCaption( tr("File Manager") );
821 setIcon( Resource::loadPixmap( "filebrowser_icon" ) ); 821 setIcon( Resource::loadPixmap( "filebrowser_icon" ) );
822 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 822 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
823 823
824 824
825 Config cfg("Filebrowser"); 825 Config cfg("Filebrowser");
826 cfg.setGroup("View"); 826 cfg.setGroup("View");
827 bool showHidden=(cfg.readEntry("Hidden","FALSE") == "TRUE"); 827 bool showHidden=(cfg.readEntry("Hidden","FALSE") == "TRUE");
828 bool showSymlinks=(cfg.readEntry("Symlinks","FALSE") == "TRUE"); 828 bool showSymlinks=(cfg.readEntry("Symlinks","FALSE") == "TRUE");
829 bool showThumbnails=(cfg.readEntry("Thumbnails","FALSE") == "TRUE"); 829 bool showThumbnails=(cfg.readEntry("Thumbnails","FALSE") == "TRUE");
830 830
831 cfg.setGroup("Menu"); 831 cfg.setGroup("Menu");
832 bool menuKeepsOpen=(cfg.readEntry("KeepOpen", "FALSE") == "TRUE"); 832 bool menuKeepsOpen=(cfg.readEntry("KeepOpen", "FALSE") == "TRUE");
833 833
834 834
835 fileView = new FileView( dir, this, 0, showHidden, showSymlinks, showThumbnails ); 835 fileView = new FileView( dir, this, 0, showHidden, showSymlinks, showThumbnails );
836 fileView->setAllColumnsShowFocus( TRUE ); 836 fileView->setAllColumnsShowFocus( TRUE );
837 fileView->setMenuKeepsOpen(menuKeepsOpen); 837 fileView->setMenuKeepsOpen(menuKeepsOpen);
838 838
839 setCentralWidget( fileView ); 839 setCentralWidget( fileView );
840 setToolBarsMovable( FALSE ); 840 setToolBarsMovable( FALSE );
841 841
842 QToolBar* toolBar = new QToolBar( this ); 842 QToolBar* toolBar = new QToolBar( this );
843 toolBar->setHorizontalStretchable( TRUE ); 843 toolBar->setHorizontalStretchable( TRUE );
844 844
845 QMenuBar* menuBar = new QMenuBar( toolBar ); 845 QMenuBar* menuBar = new QMenuBar( toolBar );
846 846
847 dirMenu = new QPopupMenu( this ); 847 dirMenu = new QPopupMenu( this );
848 menuBar->insertItem( tr( "Dir" ), dirMenu ); 848 menuBar->insertItem( tr( "Dir" ), dirMenu );
849 849
850 sortMenu = new QPopupMenu( this ); 850 sortMenu = new QPopupMenu( this );
851 menuBar->insertItem( tr( "Sort" ), sortMenu ); 851 menuBar->insertItem( tr( "Sort" ), sortMenu );
852 sortMenu->insertItem( tr( "by Name "), this, SLOT( sortName() ) ); 852 sortMenu->insertItem( tr( "by Name "), this, SLOT( sortName() ) );
853 sortMenu->insertItem( tr( "by Size "), this, SLOT( sortSize() ) ); 853 sortMenu->insertItem( tr( "by Size "), this, SLOT( sortSize() ) );
854 sortMenu->insertItem( tr( "by Date "), this, SLOT( sortDate() ) ); 854 sortMenu->insertItem( tr( "by Date "), this, SLOT( sortDate() ) );
855 sortMenu->insertItem( tr( "by Type "), this, SLOT( sortType() ) ); 855 sortMenu->insertItem( tr( "by Type "), this, SLOT( sortType() ) );
856 sortMenu->insertSeparator(); 856 sortMenu->insertSeparator();
857 sortMenu->insertItem( tr( "Ascending" ), this, SLOT( updateSorting() ) ); 857 sortMenu->insertItem( tr( "Ascending" ), this, SLOT( updateSorting() ) );
858 858
859 sortMenu->setItemChecked( sortMenu->idAt( 5 ), TRUE ); 859 sortMenu->setItemChecked( sortMenu->idAt( 5 ), TRUE );
860 sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE ); 860 sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE );
861 861
862 viewMenu = new QPopupMenu( this); 862 viewMenu = new QPopupMenu( this);
863 viewMenu->insertItem( tr( "Hidden"), this, SLOT( updateShowHidden() ) ); 863 viewMenu->insertItem( tr( "Hidden"), this, SLOT( updateShowHidden() ) );
864 viewMenu->insertItem( tr( "Symlinks"), this, SLOT( updateShowSymlinks() ) ); 864 viewMenu->insertItem( tr( "Symlinks"), this, SLOT( updateShowSymlinks() ) );
865 viewMenu->insertItem( tr( "Thumbnails"), this, SLOT( updateShowThumbnails() ) ); 865 viewMenu->insertItem( tr( "Thumbnails"), this, SLOT( updateShowThumbnails() ) );
866 viewMenu->setItemChecked( viewMenu->idAt( 0 ), showHidden ); 866 viewMenu->setItemChecked( viewMenu->idAt( 0 ), showHidden );
867 viewMenu->setItemChecked( viewMenu->idAt( 1 ), showSymlinks ); 867 viewMenu->setItemChecked( viewMenu->idAt( 1 ), showSymlinks );
868 viewMenu->setItemChecked( viewMenu->idAt( 2 ), showThumbnails ); 868 viewMenu->setItemChecked( viewMenu->idAt( 2 ), showThumbnails );
869 869
870 menuBar->insertItem( tr("View"), viewMenu ); 870 menuBar->insertItem( tr("View"), viewMenu );
871 871
872 toolBar = new QToolBar( this ); 872 toolBar = new QToolBar( this );
873 873
874 lastAction = new QAction( tr("Previous dir"), Resource::loadIconSet( "back" ), 874 lastAction = new QAction( tr("Previous dir"), Resource::loadIconSet( "back" ),
875 QString::null, 0, this, 0 ); 875 QString::null, 0, this, 0 );
876 connect( lastAction, SIGNAL( activated() ), fileView, SLOT( lastDir() ) ); 876 connect( lastAction, SIGNAL( activated() ), fileView, SLOT( lastDir() ) );
877 lastAction->addTo( toolBar ); 877 lastAction->addTo( toolBar );
878 lastAction->setEnabled( FALSE ); 878 lastAction->setEnabled( FALSE );
879 879
880 upAction = new QAction( tr("Parent dir"), Resource::loadIconSet( "up" ), 880 upAction = new QAction( tr("Parent dir"), Resource::loadIconSet( "up" ),
881 QString::null, 0, this, 0 ); 881 QString::null, 0, this, 0 );
882 connect( upAction, SIGNAL( activated() ), fileView, SLOT( parentDir() ) ); 882 connect( upAction, SIGNAL( activated() ), fileView, SLOT( parentDir() ) );
883 upAction->addTo( toolBar ); 883 upAction->addTo( toolBar );
884 884
885 QAction *a = new QAction( tr("New folder"), Resource::loadPixmap( "newfolder" ), 885 QAction *a = new QAction( tr("New folder"), Resource::loadPixmap( "newfolder" ),
886 QString::null, 0, this, 0 ); 886 QString::null, 0, this, 0 );
887 connect( a, SIGNAL( activated() ), fileView, SLOT( newFolder() ) ); 887 connect( a, SIGNAL( activated() ), fileView, SLOT( newFolder() ) );
888 a->addTo( toolBar ); 888 a->addTo( toolBar );
889 889
890 a = new QAction( tr("Cut"), Resource::loadPixmap( "cut" ), 890 a = new QAction( tr("Cut"), Resource::loadPixmap( "cut" ),
891 QString::null, 0, this, 0 ); 891 QString::null, 0, this, 0 );
892 connect( a, SIGNAL( activated() ), fileView, SLOT( cut() ) ); 892 connect( a, SIGNAL( activated() ), fileView, SLOT( cut() ) );
893 a->addTo( toolBar ); 893 a->addTo( toolBar );
894 894
895 a = new QAction( tr("Copy"), Resource::loadPixmap( "copy" ), 895 a = new QAction( tr("Copy"), Resource::loadPixmap( "copy" ),
896 QString::null, 0, this, 0 ); 896 QString::null, 0, this, 0 );
897 connect( a, SIGNAL( activated() ), fileView, SLOT( copy() ) ); 897 connect( a, SIGNAL( activated() ), fileView, SLOT( copy() ) );
898 a->addTo( toolBar ); 898 a->addTo( toolBar );
899 899
900 pasteAction = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ), 900 pasteAction = new QAction( tr("Paste"), Resource::loadPixmap( "paste" ),
901 QString::null, 0, this, 0 ); 901 QString::null, 0, this, 0 );
902 connect( pasteAction, SIGNAL( activated() ), fileView, SLOT( paste() ) ); 902 connect( pasteAction, SIGNAL( activated() ), fileView, SLOT( paste() ) );
903 pasteAction->addTo( toolBar ); 903 pasteAction->addTo( toolBar );
904 904
905// dirLabel = new QLabel(this, "DirLabel"); 905// dirLabel = new QLabel(this, "DirLabel");
906 906
907 connect( fileView, SIGNAL( dirChanged() ), SLOT( updateDirMenu() ) ); 907 connect( fileView, SIGNAL( dirChanged() ), SLOT( updateDirMenu() ) );
908 updateDirMenu(); 908 updateDirMenu();
909 909
910 QCopChannel* pcmciaChannel = new QCopChannel( "QPE/Card", this ); 910 QCopChannel* pcmciaChannel = new QCopChannel( "QPE/Card", this );
911 connect( pcmciaChannel, SIGNAL(received(const QCString &, const QByteArray &)), 911 connect( pcmciaChannel, SIGNAL(received(const QCString&,const QByteArray&)),
912 this, SLOT(pcmciaMessage( const QCString &, const QByteArray &)) ); 912 this, SLOT(pcmciaMessage(const QCString&,const QByteArray&)) );
913} 913}
914 914
915void FileBrowser::pcmciaMessage( const QCString &msg, const QByteArray &) 915void FileBrowser::pcmciaMessage( const QCString &msg, const QByteArray &)
916{ 916{
917 if ( msg == "mtabChanged()" ) { 917 if ( msg == "mtabChanged()" ) {
918 // ## Only really needed if current dir is on a card 918 // ## Only really needed if current dir is on a card
919 fileView->updateDir(); 919 fileView->updateDir();
920 } 920 }
921} 921}
922 922
923void FileBrowser::changeCaption(const QString & dir) { 923void FileBrowser::changeCaption(const QString & dir) {
924 setCaption( dir); 924 setCaption( dir);
925} 925}
926 926
927void FileBrowser::dirSelected( int id ) 927void FileBrowser::dirSelected( int id )
928{ 928{
929 int i = 0, j; 929 int i = 0, j;
930 QString dir; 930 QString dir;
931 931
932 // Bulid target dir from menu 932 // Bulid target dir from menu
933 while( (j = dirMenu->idAt( i )) != id ){ 933 while( (j = dirMenu->idAt( i )) != id ){
934 dir += dirMenu->text( j ).stripWhiteSpace(); 934 dir += dirMenu->text( j ).stripWhiteSpace();
935 if( dirMenu->text( j ) != "/" ) dir += "/"; 935 if( dirMenu->text( j ) != "/" ) dir += "/";
936 i++; 936 i++;
937 } 937 }
938 dir += dirMenu->text( dirMenu->idAt( i ) ).stripWhiteSpace(); 938 dir += dirMenu->text( dirMenu->idAt( i ) ).stripWhiteSpace();
939 939
940 fileView->setDir( dir ); 940 fileView->setDir( dir );
941} 941}
942 942
943void FileBrowser::updateDirMenu() 943void FileBrowser::updateDirMenu()
944{ 944{
945 QString spc, cd = fileView->cd(); 945 QString spc, cd = fileView->cd();
946 QStringList l = QStringList::split( "/", cd ); 946 QStringList l = QStringList::split( "/", cd );
947 int i = 0; 947 int i = 0;
948 948
949 dirMenu->clear(); 949 dirMenu->clear();
950 dirMenu->insertItem( tr( "/" ), this, SLOT( dirSelected(int) ) ); 950 dirMenu->insertItem( tr( "/" ), this, SLOT( dirSelected(int) ) );
951 951
952 for ( QStringList::Iterator it = l.begin(); it != l.end(); ++it ) { 952 for ( QStringList::Iterator it = l.begin(); it != l.end(); ++it ) {
953 spc.fill( ' ', i++); 953 spc.fill( ' ', i++);
954 dirMenu->insertItem( spc + (*it), this, 954 dirMenu->insertItem( spc + (*it), this,
955 SLOT( dirSelected(int) ) ); 955 SLOT( dirSelected(int) ) );
956 } 956 }
957 dirMenu->setItemChecked( dirMenu->idAt( l.count() ), TRUE ); 957 dirMenu->setItemChecked( dirMenu->idAt( l.count() ), TRUE );
958 958
959 lastAction->setEnabled( fileView->history().count() != 0 ); 959 lastAction->setEnabled( fileView->history().count() != 0 );
960 upAction->setEnabled( cd != "/" ); 960 upAction->setEnabled( cd != "/" );
961} 961}
962 962
963void FileBrowser::sortName() 963void FileBrowser::sortName()
964{ 964{
965 fileView->setSorting( 0, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); 965 fileView->setSorting( 0, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) );
966 fileView->sort(); 966 fileView->sort();
967 sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE ); 967 sortMenu->setItemChecked( sortMenu->idAt( 0 ), TRUE );
968 sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); 968 sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE );
969 sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); 969 sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE );
970 sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); 970 sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE );
971} 971}
972 972
973void FileBrowser::sortSize() 973void FileBrowser::sortSize()
974{ 974{
975 fileView->setSorting( 1, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); 975 fileView->setSorting( 1, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) );
976 fileView->sort(); 976 fileView->sort();
977 sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); 977 sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE );
978 sortMenu->setItemChecked( sortMenu->idAt( 1 ), TRUE ); 978 sortMenu->setItemChecked( sortMenu->idAt( 1 ), TRUE );
979 sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); 979 sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE );
980 sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); 980 sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE );
981} 981}
982 982
983void FileBrowser::sortDate() 983void FileBrowser::sortDate()
984{ 984{
985 fileView->setSorting( 2, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); 985 fileView->setSorting( 2, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) );
986 fileView->sort(); 986 fileView->sort();
987 sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); 987 sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE );
988 sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); 988 sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE );
989 sortMenu->setItemChecked( sortMenu->idAt( 2 ), TRUE ); 989 sortMenu->setItemChecked( sortMenu->idAt( 2 ), TRUE );
990 sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE ); 990 sortMenu->setItemChecked( sortMenu->idAt( 3 ), FALSE );
991} 991}
992 992
993void FileBrowser::sortType() 993void FileBrowser::sortType()
994{ 994{
995 fileView->setSorting( 3, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); 995 fileView->setSorting( 3, sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) );
996 fileView->sort(); 996 fileView->sort();
997 sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE ); 997 sortMenu->setItemChecked( sortMenu->idAt( 0 ), FALSE );
998 sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE ); 998 sortMenu->setItemChecked( sortMenu->idAt( 1 ), FALSE );
999 sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE ); 999 sortMenu->setItemChecked( sortMenu->idAt( 2 ), FALSE );
1000 sortMenu->setItemChecked( sortMenu->idAt( 3 ), TRUE ); 1000 sortMenu->setItemChecked( sortMenu->idAt( 3 ), TRUE );
1001} 1001}
1002 1002
1003void FileBrowser::updateSorting() 1003void FileBrowser::updateSorting()
1004{ 1004{
1005 sortMenu->setItemChecked( sortMenu->idAt( 5 ), !sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) ); 1005 sortMenu->setItemChecked( sortMenu->idAt( 5 ), !sortMenu->isItemChecked( sortMenu->idAt( 5 ) ) );
1006 1006
1007 if ( sortMenu->isItemChecked( sortMenu->idAt( 0 ) ) ) 1007 if ( sortMenu->isItemChecked( sortMenu->idAt( 0 ) ) )
1008 sortName(); 1008 sortName();
1009 else if ( sortMenu->isItemChecked( sortMenu->idAt( 1 ) ) ) 1009 else if ( sortMenu->isItemChecked( sortMenu->idAt( 1 ) ) )
1010 sortSize(); 1010 sortSize();
1011 else if ( sortMenu->isItemChecked( sortMenu->idAt( 2 ) ) ) 1011 else if ( sortMenu->isItemChecked( sortMenu->idAt( 2 ) ) )
1012 sortDate(); 1012 sortDate();
1013 else 1013 else
1014 sortType(); 1014 sortType();
1015} 1015}
1016 1016
1017void FileView::chPerm() { 1017void FileView::chPerm() {
1018 FileItem * i; 1018 FileItem * i;
1019 QStringList fl; 1019 QStringList fl;
1020 QString cmd; 1020 QString cmd;
1021 1021
1022 if((i = (FileItem *) firstChild()) == 0) return; 1022 if((i = (FileItem *) firstChild()) == 0) return;
1023 1023
1024 while( i ){ 1024 while( i ){
1025 if( i->isSelected() ){ 1025 if( i->isSelected() ){
1026 fl += i->getFilePath(); 1026 fl += i->getFilePath();
1027 } 1027 }
1028 i = (FileItem *) i->nextSibling(); 1028 i = (FileItem *) i->nextSibling();
1029 } 1029 }
1030 if( fl.count() < 1 ) return; 1030 if( fl.count() < 1 ) return;
1031 if( QMessageBox::warning( this, tr("Change permissions"), tr("Are you sure?"), 1031 if( QMessageBox::warning( this, tr("Change permissions"), tr("Are you sure?"),
1032 tr("Yes"), tr("No") ) == 0) { 1032 tr("Yes"), tr("No") ) == 0) {
1033 for ( QStringList::Iterator it = fl.begin(); it != fl.end(); ++it ) { 1033 for ( QStringList::Iterator it = fl.begin(); it != fl.end(); ++it ) {
1034 filePermissions *filePerm; 1034 filePermissions *filePerm;
1035 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(*it)); 1035 filePerm = new filePermissions(this, "Permissions",true,0,(const QString &)(*it));
1036 filePerm->exec(); 1036 filePerm->exec();
1037 if( filePerm) 1037 if( filePerm)
1038 delete filePerm; 1038 delete filePerm;
1039 break; 1039 break;
1040 } 1040 }
1041 updateDir(); 1041 updateDir();
1042 } 1042 }
1043} 1043}
1044 1044
1045void FileBrowser::updateShowHidden() 1045void FileBrowser::updateShowHidden()
1046{ 1046{
1047 bool valShowHidden=viewMenu->isItemChecked( viewMenu->idAt( 0 ) ); 1047 bool valShowHidden=viewMenu->isItemChecked( viewMenu->idAt( 0 ) );
1048 valShowHidden=!valShowHidden; 1048 valShowHidden=!valShowHidden;
1049 viewMenu->setItemChecked( viewMenu->idAt( 0 ), valShowHidden ); 1049 viewMenu->setItemChecked( viewMenu->idAt( 0 ), valShowHidden );
1050 fileView->setShowHidden(valShowHidden); 1050 fileView->setShowHidden(valShowHidden);
1051 1051
1052 Config cfg("Filebrowser"); 1052 Config cfg("Filebrowser");
1053 cfg.setGroup("View"); 1053 cfg.setGroup("View");
1054 cfg.writeEntry("Hidden",valShowHidden?"TRUE":"FALSE"); 1054 cfg.writeEntry("Hidden",valShowHidden?"TRUE":"FALSE");
1055 1055
1056 fileView->updateDir(); 1056 fileView->updateDir();
1057} 1057}
1058 1058
1059void FileBrowser::updateShowSymlinks() 1059void FileBrowser::updateShowSymlinks()
1060{ 1060{
1061 bool valShowSymlinks=viewMenu->isItemChecked( viewMenu->idAt( 1 ) ); 1061 bool valShowSymlinks=viewMenu->isItemChecked( viewMenu->idAt( 1 ) );
1062 valShowSymlinks=!valShowSymlinks; 1062 valShowSymlinks=!valShowSymlinks;
1063 viewMenu->setItemChecked( viewMenu->idAt( 1 ), valShowSymlinks ); 1063 viewMenu->setItemChecked( viewMenu->idAt( 1 ), valShowSymlinks );
1064 fileView->setShowSymlinks(valShowSymlinks); 1064 fileView->setShowSymlinks(valShowSymlinks);
1065 1065
1066 Config cfg("Filebrowser"); 1066 Config cfg("Filebrowser");
1067 cfg.setGroup("View"); 1067 cfg.setGroup("View");
1068 cfg.writeEntry("Symlinks",valShowSymlinks?"TRUE":"FALSE"); 1068 cfg.writeEntry("Symlinks",valShowSymlinks?"TRUE":"FALSE");
1069 1069
1070 fileView->updateDir(); 1070 fileView->updateDir();
1071} 1071}
1072 1072
1073void FileBrowser::updateShowThumbnails() 1073void FileBrowser::updateShowThumbnails()
1074{ 1074{
1075 bool valShowThumbnails=viewMenu->isItemChecked( viewMenu->idAt( 2 ) ); 1075 bool valShowThumbnails=viewMenu->isItemChecked( viewMenu->idAt( 2 ) );
1076 valShowThumbnails=!valShowThumbnails; 1076 valShowThumbnails=!valShowThumbnails;
1077 viewMenu->setItemChecked( viewMenu->idAt( 2 ), valShowThumbnails ); 1077 viewMenu->setItemChecked( viewMenu->idAt( 2 ), valShowThumbnails );
1078 fileView->setShowThumbnails(valShowThumbnails); 1078 fileView->setShowThumbnails(valShowThumbnails);
1079 1079
1080 Config cfg("Filebrowser"); 1080 Config cfg("Filebrowser");
1081 cfg.setGroup("View"); 1081 cfg.setGroup("View");
1082 cfg.writeEntry("Thumbnails",valShowThumbnails?"TRUE":"FALSE"); 1082 cfg.writeEntry("Thumbnails",valShowThumbnails?"TRUE":"FALSE");
1083 1083
1084 fileView->updateDir(); 1084 fileView->updateDir();
1085} 1085}
1086 1086
1087void FileBrowser::cleanUp() { 1087void FileBrowser::cleanUp() {
1088 QString cmdr = "rm -rf /tmp/filebrowserThumbnailCache"; 1088 QString cmdr = "rm -rf /tmp/filebrowserThumbnailCache";
1089// qDebug("exit"); 1089// qDebug("exit");
1090 system(cmdr.latin1()); 1090 system(cmdr.latin1());
1091} 1091}