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

tdeio/tdefile

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

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
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeio/tdefile by doxygen 1.8.11
This website is maintained by Timothy Pearson.