• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeio/tdefile
 

tdeio/tdefile

  • tdeio
  • tdefile
tdefiledetailview.cpp
1 /* This file is part of the KDE libraries
2  Copyright (C) 1997 Stephan Kulow <coolo@kde.org>
3  2000, 2001 Carsten Pfeiffer <pfeiffer@kde.org>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Library General Public License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 
21 #include <tqevent.h>
22 #include <tqkeycode.h>
23 #include <tqheader.h>
24 #include <tqpainter.h>
25 #include <tqpixmap.h>
26 
27 #include <tdeapplication.h>
28 #include <tdefileitem.h>
29 #include <tdeglobal.h>
30 #include <tdeglobalsettings.h>
31 #include <kiconloader.h>
32 #include <kicontheme.h>
33 #include <tdelocale.h>
34 #include <kdebug.h>
35 #include <kurldrag.h>
36 
37 #include "tdefiledetailview.h"
38 #include "config-tdefile.h"
39 
40 #define COL_NAME 0
41 #define COL_SIZE 1
42 #define COL_DATE 2
43 #define COL_PERM 3
44 #define COL_OWNER 4
45 #define COL_GROUP 5
46 
47 class KFileDetailView::KFileDetailViewPrivate
48 {
49 public:
50  KFileDetailViewPrivate() : dropItem(0)
51  { }
52 
53  KFileListViewItem *dropItem;
54  TQTimer autoOpenTimer;
55 };
56 
57 KFileDetailView::KFileDetailView(TQWidget *parent, const char *name)
58  : TDEListView(parent, name), KFileView(), d(new KFileDetailViewPrivate())
59 {
60  // this is always the static section, not the index depending on column order
61  m_sortingCol = COL_NAME;
62  m_blockSortingSignal = false;
63  setViewName( i18n("Detailed View") );
64 
65  addColumn( i18n( "Name" ) );
66  addColumn( i18n( "Size" ) );
67  addColumn( i18n( "Date" ) );
68  addColumn( i18n( "Permissions" ) );
69  addColumn( i18n( "Owner" ) );
70  addColumn( i18n( "Group" ) );
71  setShowSortIndicator( true );
72  setAllColumnsShowFocus( true );
73  setDragEnabled(true);
74 
75  connect( header(), TQT_SIGNAL( clicked(int)),
76  TQT_SLOT(slotSortingChanged(int) ));
77 
78 
79  connect( this, TQT_SIGNAL( returnPressed(TQListViewItem *) ),
80  TQT_SLOT( slotActivate( TQListViewItem *) ) );
81 
82  connect( this, TQT_SIGNAL( clicked(TQListViewItem *, const TQPoint&, int)),
83  TQT_SLOT( selected( TQListViewItem *) ) );
84  connect( this, TQT_SIGNAL( doubleClicked(TQListViewItem *, const TQPoint&, int)),
85  TQT_SLOT( slotActivate( TQListViewItem *) ) );
86 
87  connect( this, TQT_SIGNAL(contextMenuRequested( TQListViewItem *,
88  const TQPoint &, int )),
89  this, TQT_SLOT( slotActivateMenu( TQListViewItem *, const TQPoint& )));
90 
91  KFile::SelectionMode sm = KFileView::selectionMode();
92  switch ( sm ) {
93  case KFile::Multi:
94  TQListView::setSelectionMode( TQListView::Multi );
95  break;
96  case KFile::Extended:
97  TQListView::setSelectionMode( TQListView::Extended );
98  break;
99  case KFile::NoSelection:
100  TQListView::setSelectionMode( TQListView::NoSelection );
101  break;
102  default: // fall through
103  case KFile::Single:
104  TQListView::setSelectionMode( TQListView::Single );
105  break;
106  }
107 
108  // for highlighting
109  if ( sm == KFile::Multi || sm == KFile::Extended )
110  connect( this, TQT_SIGNAL( selectionChanged() ),
111  TQT_SLOT( slotSelectionChanged() ));
112  else
113  connect( this, TQT_SIGNAL( selectionChanged( TQListViewItem * ) ),
114  TQT_SLOT( highlighted( TQListViewItem * ) ));
115 
116  // DND
117  connect( &(d->autoOpenTimer), TQT_SIGNAL( timeout() ),
118  this, TQT_SLOT( slotAutoOpen() ));
119 
120  setSorting( sorting() );
121 
122  m_resolver =
123  new KMimeTypeResolver<KFileListViewItem,KFileDetailView>( this );
124 }
125 
126 KFileDetailView::~KFileDetailView()
127 {
128  delete m_resolver;
129  delete d;
130 }
131 
132 void KFileDetailView::readConfig( TDEConfig *config, const TQString& group )
133 {
134  restoreLayout( config, group );
135 }
136 
137 void KFileDetailView::writeConfig( TDEConfig *config, const TQString& group )
138 {
139  saveLayout( config, group );
140 }
141 
142 void KFileDetailView::setSelected( const KFileItem *info, bool enable )
143 {
144  if ( !info )
145  return;
146 
147  // we can only hope that this casts works
148  KFileListViewItem *item = (KFileListViewItem*)info->extraData( this );
149 
150  if ( item )
151  TDEListView::setSelected( item, enable );
152 }
153 
154 void KFileDetailView::setCurrentItem( const KFileItem *item )
155 {
156  if ( !item )
157  return;
158  KFileListViewItem *it = (KFileListViewItem*) item->extraData( this );
159  if ( it )
160  TDEListView::setCurrentItem( it );
161 }
162 
163 KFileItem * KFileDetailView::currentFileItem() const
164 {
165  KFileListViewItem *current = static_cast<KFileListViewItem*>( currentItem() );
166  if ( current )
167  return current->fileInfo();
168 
169  return 0L;
170 }
171 
172 void KFileDetailView::clearSelection()
173 {
174  TDEListView::clearSelection();
175 }
176 
177 void KFileDetailView::selectAll()
178 {
179  if (KFileView::selectionMode() == KFile::NoSelection ||
180  KFileView::selectionMode() == KFile::Single)
181  return;
182 
183  TDEListView::selectAll( true );
184 }
185 
186 void KFileDetailView::invertSelection()
187 {
188  TDEListView::invertSelection();
189 }
190 
191 void KFileDetailView::slotActivateMenu (TQListViewItem *item,const TQPoint& pos )
192 {
193  if ( !item ) {
194  sig->activateMenu( 0, pos );
195  return;
196  }
197  KFileListViewItem *i = (KFileListViewItem*) item;
198  sig->activateMenu( i->fileInfo(), pos );
199 }
200 
201 void KFileDetailView::clearView()
202 {
203  m_resolver->m_lstPendingMimeIconItems.clear();
204  TDEListView::clear();
205 }
206 
207 void KFileDetailView::insertItem( KFileItem *i )
208 {
209  KFileView::insertItem( i );
210 
211  KFileListViewItem *item = new KFileListViewItem( (TQListView*) this, i );
212 
213  setSortingKey( item, i );
214 
215  i->setExtraData( this, item );
216 
217  if ( !i->isMimeTypeKnown() )
218  m_resolver->m_lstPendingMimeIconItems.append( item );
219 }
220 
221 void KFileDetailView::slotActivate( TQListViewItem *item )
222 {
223  if ( !item )
224  return;
225 
226  const KFileItem *fi = ( (KFileListViewItem*)item )->fileInfo();
227  if ( fi )
228  sig->activate( fi );
229 }
230 
231 void KFileDetailView::selected( TQListViewItem *item )
232 {
233  if ( !item )
234  return;
235 
236  if ( TDEGlobalSettings::singleClick() ) {
237  const KFileItem *fi = ( (KFileListViewItem*)item )->fileInfo();
238  if ( fi && (fi->isDir() || !onlyDoubleClickSelectsFiles()) )
239  sig->activate( fi );
240  }
241 }
242 
243 void KFileDetailView::highlighted( TQListViewItem *item )
244 {
245  if ( !item )
246  return;
247 
248  const KFileItem *fi = ( (KFileListViewItem*)item )->fileInfo();
249  if ( fi )
250  sig->highlightFile( fi );
251 }
252 
253 
254 void KFileDetailView::setSelectionMode( KFile::SelectionMode sm )
255 {
256  disconnect( this, TQT_SIGNAL( selectionChanged() ));
257  disconnect( this, TQT_SIGNAL( selectionChanged( TQListViewItem * ) ));
258 
259  KFileView::setSelectionMode( sm );
260 
261  switch ( KFileView::selectionMode() ) {
262  case KFile::Multi:
263  TQListView::setSelectionMode( TQListView::Multi );
264  break;
265  case KFile::Extended:
266  TQListView::setSelectionMode( TQListView::Extended );
267  break;
268  case KFile::NoSelection:
269  TQListView::setSelectionMode( TQListView::NoSelection );
270  break;
271  default: // fall through
272  case KFile::Single:
273  TQListView::setSelectionMode( TQListView::Single );
274  break;
275  }
276 
277  if ( sm == KFile::Multi || sm == KFile::Extended )
278  connect( this, TQT_SIGNAL( selectionChanged() ),
279  TQT_SLOT( slotSelectionChanged() ));
280  else
281  connect( this, TQT_SIGNAL( selectionChanged( TQListViewItem * )),
282  TQT_SLOT( highlighted( TQListViewItem * )));
283 }
284 
285 bool KFileDetailView::isSelected( const KFileItem *i ) const
286 {
287  if ( !i )
288  return false;
289 
290  KFileListViewItem *item = (KFileListViewItem*) i->extraData( this );
291  return (item && item->isSelected());
292 }
293 
294 
295 void KFileDetailView::updateView( bool b )
296 {
297  if ( !b )
298  return;
299 
300  TQListViewItemIterator it( (TQListView*)this );
301  for ( ; it.current(); ++it ) {
302  KFileListViewItem *item=static_cast<KFileListViewItem *>(it.current());
303  item->setPixmap( 0, item->fileInfo()->pixmap(TDEIcon::SizeSmall) );
304  }
305 }
306 
307 void KFileDetailView::updateView( const KFileItem *i )
308 {
309  if ( !i )
310  return;
311 
312  KFileListViewItem *item = (KFileListViewItem*) i->extraData( this );
313  if ( !item )
314  return;
315 
316  item->init();
317  setSortingKey( item, i );
318 
319  //item->repaint(); // only repaints if visible
320 }
321 
322 void KFileDetailView::setSortingKey( KFileListViewItem *item,
323  const KFileItem *i )
324 {
325  // see also setSorting()
326  TQDir::SortSpec spec = KFileView::sorting();
327 
328  if ( spec & TQDir::Time )
329  item->setKey( sortingKey( i->time( TDEIO::UDS_MODIFICATION_TIME ),
330  i->isDir(), spec ));
331  else if ( spec & TQDir::Size )
332  item->setKey( sortingKey( i->size(), i->isDir(), spec ));
333 
334  else // Name or Unsorted
335  item->setKey( sortingKey( i->text(), i->isDir(), spec ));
336 }
337 
338 
339 void KFileDetailView::removeItem( const KFileItem *i )
340 {
341  if ( !i )
342  return;
343 
344  KFileListViewItem *item = (KFileListViewItem*) i->extraData( this );
345  m_resolver->m_lstPendingMimeIconItems.remove( item );
346  delete item;
347 
348  KFileView::removeItem( i );
349 }
350 
351 void KFileDetailView::slotSortingChanged( int col )
352 {
353  // col is the section here, not the index!
354 
355  TQDir::SortSpec sort = sorting();
356  int sortSpec = -1;
357  bool reversed = (col == m_sortingCol) && (sort & TQDir::Reversed) == 0;
358  m_sortingCol = col;
359 
360  switch( col ) {
361  case COL_NAME:
362  sortSpec = ((sort & ~TQDir::SortByMask) | TQDir::Name);
363  break;
364  case COL_SIZE:
365  sortSpec = ((sort & ~TQDir::SortByMask) | TQDir::Size);
366  break;
367  case COL_DATE:
368  sortSpec = ((sort & ~TQDir::SortByMask) | TQDir::Time);
369  break;
370 
371  // the following columns have no equivalent in TQDir, so we set it
372  // to TQDir::Unsorted and remember the column (m_sortingCol)
373  case COL_OWNER:
374  case COL_GROUP:
375  case COL_PERM:
376  // grmbl, TQDir::Unsorted == SortByMask.
377  sortSpec = (sort & ~TQDir::SortByMask);// | TQDir::Unsorted;
378  break;
379  default:
380  break;
381  }
382 
383  if ( reversed )
384  sortSpec |= TQDir::Reversed;
385  else
386  sortSpec &= ~TQDir::Reversed;
387 
388  if ( sort & TQDir::IgnoreCase )
389  sortSpec |= TQDir::IgnoreCase;
390  else
391  sortSpec &= ~TQDir::IgnoreCase;
392 
393 
394  KFileView::setSorting( static_cast<TQDir::SortSpec>( sortSpec ) );
395 
396  KFileItem *item;
397  KFileItemListIterator it( *items() );
398 
399  if ( sortSpec & TQDir::Time ) {
400  for ( ; (item = it.current()); ++it )
401  viewItem(item)->setKey( sortingKey( item->time( TDEIO::UDS_MODIFICATION_TIME ), item->isDir(), sortSpec ));
402  }
403 
404  else if ( sortSpec & TQDir::Size ) {
405  for ( ; (item = it.current()); ++it )
406  viewItem(item)->setKey( sortingKey( item->size(), item->isDir(),
407  sortSpec ));
408  }
409  else { // Name or Unsorted -> use column text
410  for ( ; (item = it.current()); ++it ) {
411  KFileListViewItem *i = viewItem( item );
412  i->setKey( sortingKey( i->text(m_sortingCol), item->isDir(),
413  sortSpec ));
414  }
415  }
416 
417  TDEListView::setSorting( m_sortingCol, !reversed );
418  TDEListView::sort();
419 
420  if ( !m_blockSortingSignal )
421  sig->changeSorting( static_cast<TQDir::SortSpec>( sortSpec ) );
422 }
423 
424 
425 void KFileDetailView::setSorting( TQDir::SortSpec spec )
426 {
427  int col = 0;
428  if ( spec & TQDir::Time )
429  col = COL_DATE;
430  else if ( spec & TQDir::Size )
431  col = COL_SIZE;
432  else if ( spec & TQDir::Unsorted )
433  col = m_sortingCol;
434  else
435  col = COL_NAME;
436 
437  // inversed, because slotSortingChanged will reverse it
438  if ( spec & TQDir::Reversed )
439  spec = (TQDir::SortSpec) (spec & ~TQDir::Reversed);
440  else
441  spec = (TQDir::SortSpec) (spec | TQDir::Reversed);
442 
443  m_sortingCol = col;
444  KFileView::setSorting( (TQDir::SortSpec) spec );
445 
446 
447  // don't emit sortingChanged() when called via setSorting()
448  m_blockSortingSignal = true; // can't use blockSignals()
449  slotSortingChanged( col );
450  m_blockSortingSignal = false;
451 }
452 
453 void KFileDetailView::ensureItemVisible( const KFileItem *i )
454 {
455  if ( !i )
456  return;
457 
458  KFileListViewItem *item = (KFileListViewItem*) i->extraData( this );
459 
460  if ( item )
461  TDEListView::ensureItemVisible( item );
462 }
463 
464 // we're in multiselection mode
465 void KFileDetailView::slotSelectionChanged()
466 {
467  sig->highlightFile( 0L );
468 }
469 
470 KFileItem * KFileDetailView::firstFileItem() const
471 {
472  KFileListViewItem *item = static_cast<KFileListViewItem*>( firstChild() );
473  if ( item )
474  return item->fileInfo();
475  return 0L;
476 }
477 
478 KFileItem * KFileDetailView::nextItem( const KFileItem *fileItem ) const
479 {
480  if ( fileItem ) {
481  KFileListViewItem *item = viewItem( fileItem );
482  if ( item && item->itemBelow() )
483  return ((KFileListViewItem*) item->itemBelow())->fileInfo();
484  else
485  return 0L;
486  }
487  else
488  return firstFileItem();
489 }
490 
491 KFileItem * KFileDetailView::prevItem( const KFileItem *fileItem ) const
492 {
493  if ( fileItem ) {
494  KFileListViewItem *item = viewItem( fileItem );
495  if ( item && item->itemAbove() )
496  return ((KFileListViewItem*) item->itemAbove())->fileInfo();
497  else
498  return 0L;
499  }
500  else
501  return firstFileItem();
502 }
503 
504 void KFileDetailView::keyPressEvent( TQKeyEvent *e )
505 {
506  TDEListView::keyPressEvent( e );
507 
508  if ( e->key() == Key_Return || e->key() == Key_Enter ) {
509  if ( e->state() & ControlButton )
510  e->ignore();
511  else
512  e->accept();
513  }
514 }
515 
516 //
517 // mimetype determination on demand
518 //
519 void KFileDetailView::mimeTypeDeterminationFinished()
520 {
521  // anything to do?
522 }
523 
524 void KFileDetailView::determineIcon( KFileListViewItem *item )
525 {
526  (void) item->fileInfo()->determineMimeType();
527  updateView( item->fileInfo() );
528 }
529 
530 void KFileDetailView::listingCompleted()
531 {
532  m_resolver->start();
533 }
534 
535 TQDragObject *KFileDetailView::dragObject()
536 {
537  // create a list of the URL:s that we want to drag
538  KURL::List urls;
539  KFileItemListIterator it( * KFileView::selectedItems() );
540  for ( ; it.current(); ++it ){
541  urls.append( (*it)->url() );
542  }
543  TQPixmap pixmap;
544  if( urls.count() > 1 )
545  pixmap = DesktopIcon( "application-vnd.tde.tdemultiple", TDEIcon::SizeSmall );
546  if( pixmap.isNull() )
547  pixmap = currentFileItem()->pixmap( TDEIcon::SizeSmall );
548 
549  TQPoint hotspot;
550  hotspot.setX( pixmap.width() / 2 );
551  hotspot.setY( pixmap.height() / 2 );
552  TQDragObject* myDragObject = new KURLDrag( urls, widget() );
553  myDragObject->setPixmap( pixmap, hotspot );
554  return myDragObject;
555 }
556 
557 void KFileDetailView::slotAutoOpen()
558 {
559  d->autoOpenTimer.stop();
560  if( !d->dropItem )
561  return;
562 
563  KFileItem *fileItem = d->dropItem->fileInfo();
564  if (!fileItem)
565  return;
566 
567  if( fileItem->isFile() )
568  return;
569 
570  if ( fileItem->isDir() || fileItem->isLink())
571  sig->activate( fileItem );
572 }
573 
574 bool KFileDetailView::acceptDrag(TQDropEvent* e) const
575 {
576  return KURLDrag::canDecode( e ) &&
577  (e->source()!= const_cast<KFileDetailView*>(this)) &&
578  ( e->action() == TQDropEvent::Copy
579  || e->action() == TQDropEvent::Move
580  || e->action() == TQDropEvent::Link );
581 }
582 
583 void KFileDetailView::contentsDragEnterEvent( TQDragEnterEvent *e )
584 {
585  if ( ! acceptDrag( e ) ) { // can we decode this ?
586  e->ignore(); // No
587  return;
588  }
589  e->acceptAction(); // Yes
590 
591  if ((dropOptions() & AutoOpenDirs) == 0)
592  return;
593 
594  KFileListViewItem *item = dynamic_cast<KFileListViewItem*>(itemAt( contentsToViewport( e->pos() ) ));
595  if ( item ) { // are we over an item ?
596  d->dropItem = item;
597  d->autoOpenTimer.start( autoOpenDelay() ); // restart timer
598  }
599  else
600  {
601  d->dropItem = 0;
602  d->autoOpenTimer.stop();
603  }
604 }
605 
606 void KFileDetailView::contentsDragMoveEvent( TQDragMoveEvent *e )
607 {
608  if ( ! acceptDrag( e ) ) { // can we decode this ?
609  e->ignore(); // No
610  return;
611  }
612  e->acceptAction(); // Yes
613 
614  if ((dropOptions() & AutoOpenDirs) == 0)
615  return;
616 
617  KFileListViewItem *item = dynamic_cast<KFileListViewItem*>(itemAt( contentsToViewport( e->pos() ) ));
618  if ( item ) { // are we over an item ?
619  if (d->dropItem != item)
620  {
621  d->dropItem = item;
622  d->autoOpenTimer.start( autoOpenDelay() ); // restart timer
623  }
624  }
625  else
626  {
627  d->dropItem = 0;
628  d->autoOpenTimer.stop();
629  }
630 }
631 
632 void KFileDetailView::contentsDragLeaveEvent( TQDragLeaveEvent * )
633 {
634  d->dropItem = 0;
635  d->autoOpenTimer.stop();
636 }
637 
638 void KFileDetailView::contentsDropEvent( TQDropEvent *e )
639 {
640  d->dropItem = 0;
641  d->autoOpenTimer.stop();
642 
643  if ( ! acceptDrag( e ) ) { // can we decode this ?
644  e->ignore(); // No
645  return;
646  }
647  e->acceptAction(); // Yes
648 
649  KFileListViewItem *item = dynamic_cast<KFileListViewItem*>(itemAt( contentsToViewport( e->pos() ) ));
650  KFileItem * fileItem = 0;
651  if (item)
652  fileItem = item->fileInfo();
653 
654  emit dropped(e, fileItem);
655 
656  KURL::List urls;
657  if (KURLDrag::decode( e, urls ) && !urls.isEmpty())
658  {
659  emit dropped(e, urls, fileItem ? fileItem->url() : KURL());
660  sig->dropURLs(fileItem, e, urls);
661  }
662 }
663 
664 
666 
667 
668 void KFileListViewItem::init()
669 {
670  KFileListViewItem::setPixmap( COL_NAME, inf->pixmap(TDEIcon::SizeSmall));
671 
672  setText( COL_NAME, inf->text() );
673  setText( COL_SIZE, TDEGlobal::locale()->formatNumber( inf->size(), 0));
674  setText( COL_DATE, inf->timeString() );
675  setText( COL_PERM, inf->permissionsString() );
676  setText( COL_OWNER, inf->user() );
677  setText( COL_GROUP, inf->group() );
678 }
679 
680 
681 void KFileDetailView::virtual_hook( int id, void* data )
682 { TDEListView::virtual_hook( id, data );
683  KFileView::virtual_hook( id, data ); }
684 
685 #include "tdefiledetailview.moc"
KFileViewSignaler::activate
void activate(const KFileItem *item)
Call this method when an item is selected (depends on single click / double click configuration)...
Definition: tdefileview.h:45
KFileDetailView::isSelected
virtual bool isSelected(const KFileItem *i) const
Definition: tdefiledetailview.cpp:285
KFileView::onlyDoubleClickSelectsFiles
bool onlyDoubleClickSelectsFiles() const
Definition: tdefileview.h:329
KFileDetailView::widget
virtual TQWidget * widget()
a pure virtual function to get a TQWidget, that can be added to other widgets.
Definition: tdefiledetailview.h:116
KFileDetailView::invertSelection
virtual void invertSelection()
Inverts the current selection, i.e.
Definition: tdefiledetailview.cpp:186
KFileDetailView::ensureItemVisible
void ensureItemVisible(const KFileItem *)
pure virtual function, that should be implemented to make item i visible, i.e.
Definition: tdefiledetailview.cpp:453
KFileView::items
const KFileItemList * items() const
Definition: tdefileview.cpp:283
KFileDetailView::listingCompleted
virtual void listingCompleted()
This hook is called when all items of the currently listed directory are listed and inserted into the...
Definition: tdefiledetailview.cpp:530
KFileViewSignaler::highlightFile
void highlightFile(const KFileItem *i)
emits the highlighted signal for item.
Definition: tdefileview.h:55
KFileView::insertItem
virtual void insertItem(KFileItem *i)
The derived view must implement this function to add the file in the widget.
Definition: tdefileview.cpp:147
KFileDetailView::insertItem
virtual void insertItem(KFileItem *i)
The derived view must implement this function to add the file in the widget.
Definition: tdefiledetailview.cpp:207
KFileDetailView::currentFileItem
virtual KFileItem * currentFileItem() const
Definition: tdefiledetailview.cpp:163
KFileView
This class defines an interface to all file views.
Definition: tdefileview.h:97
KFileDetailView::selectAll
virtual void selectAll()
Selects all items.
Definition: tdefiledetailview.cpp:177
KFileView::sorting
TQDir::SortSpec sorting() const
Returns the sorting order of the internal list.
Definition: tdefileview.h:176
KFileView::selectedItems
const KFileItemList * selectedItems() const
Definition: tdefileview.cpp:296
KFileDetailView::clearView
virtual void clearView()
pure virtual function, that should be implemented to clear the view.
Definition: tdefiledetailview.cpp:201
KFileDetailView::setCurrentItem
virtual void setCurrentItem(const KFileItem *)
Reimplement this to set item the current item in the view, e.g.
Definition: tdefiledetailview.cpp:154
KFileDetailView::clearSelection
virtual void clearSelection()
Clears any selection, unhighlights everything.
Definition: tdefiledetailview.cpp:172
KFileView::dropOptions
int dropOptions()
Returns the DND options in effect.
Definition: tdefileview.cpp:407
KFileView::removeItem
virtual void removeItem(const KFileItem *item)
Removes an item from the list; has to be implemented by the view.
Definition: tdefileview.cpp:346
KFileDetailView::setSelected
virtual void setSelected(const KFileItem *, bool)
Tells the view that it should highlight the item.
Definition: tdefiledetailview.cpp:142
KFileView::setSorting
virtual void setSorting(TQDir::SortSpec sort)
Sets the sorting order of the view.
Definition: tdefileview.cpp:151
KFileDetailView::updateView
virtual void updateView(bool)
does a repaint of the view.
Definition: tdefiledetailview.cpp:295
KFileDetailView::setSorting
virtual void setSorting(TQDir::SortSpec)
Sets the sorting order of the view.
Definition: tdefiledetailview.cpp:425
KFileListViewItem::init
void init()
Definition: tdefiledetailview.cpp:668
KFileListViewItem
An item for the listiew, that has a reference to its corresponding KFileItem.
Definition: tdefiledetailview.h:36
KFileView::sortingKey
static TQString sortingKey(const TQString &value, bool isDir, int sortSpec)
This method calculates a TQString from the given parameters, that is suitable for sorting with e...
Definition: tdefileview.cpp:380
KFileDetailView::removeItem
virtual void removeItem(const KFileItem *)
Removes an item from the list; has to be implemented by the view.
Definition: tdefiledetailview.cpp:339
KFileListViewItem::fileInfo
KFileItem * fileInfo() const
Definition: tdefiledetailview.h:68
KFileDetailView::dropped
void dropped(TQDropEvent *event, KFileItem *fileItem)
The user dropped something.
KFileDetailView
A list-view capable of showing KFileItem'.
Definition: tdefiledetailview.h:108

tdeio/tdefile

Skip menu "tdeio/tdefile"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

tdeio/tdefile

Skip menu "tdeio/tdefile"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  •     tdecore
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  • tdeioslave
  •   http
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeio/tdefile by doxygen 1.8.8
This website is maintained by Timothy Pearson.