23 #include <tqdragobject.h> 27 #include <tqtooltip.h> 29 #include <tqpainter.h> 31 #include <kglobalsettings.h> 34 #include <kapplication.h> 38 #include "klistview.h" 39 #include "klistviewlineedit.h" 41 class KListView::Tooltip :
public TQToolTip
44 Tooltip (
KListView* parent, TQToolTipGroup* group = 0L);
45 virtual ~Tooltip () {}
51 virtual void maybeTip (
const TQPoint&);
57 KListView::Tooltip::Tooltip (
KListView* parent, TQToolTipGroup* group)
58 : TQToolTip (parent, group),
63 void KListView::Tooltip::maybeTip (
const TQPoint&)
68 class KListView::KListViewPrivate
77 cursorInExecuteArea(false),
79 selectedBySimpleMove(false),
80 selectedUsingMouse(false),
81 itemsRenameable (false),
85 disableAutoSelection (false),
86 dropVisualizer (true),
87 dropHighlighter (false),
88 createChildren (true),
89 pressedOnSelected (false),
90 wasShiftEvent (false),
95 selectionDirection(0),
98 selectionMode (Single),
101 mDropVisualizerWidth (4),
107 initialFileManagerItem(0)
109 renameable.append(0);
110 connect(editor, TQT_SIGNAL(done(TQListViewItem*,
int)), listview, TQT_SLOT(doneEditing(TQListViewItem*,
int)));
118 TQListViewItem* pCurrentItem;
124 TQListViewItem* dragOverItem;
125 TQPoint dragOverPoint;
127 TQPoint startDragPos;
131 TQValueList<int> renameable;
133 bool cursorInExecuteArea:1;
135 bool bChangeCursorOverItem:1;
137 bool selectedBySimpleMove : 1;
138 bool selectedUsingMouse:1;
139 bool itemsRenameable:1;
143 bool disableAutoSelection:1;
144 bool dropVisualizer:1;
145 bool dropHighlighter:1;
146 bool createChildren:1;
147 bool pressedOnSelected:1;
148 bool wasShiftEvent:1;
150 bool sortAscending:1;
156 int selectionDirection;
160 SelectionModeExt selectionMode;
162 bool showContextMenusOnPress;
164 TQRect mOldDropVisualizer;
165 int mDropVisualizerWidth;
166 TQRect mOldDropHighlighter;
167 TQListViewItem *afterItemDrop;
168 TQListViewItem *parentItemDrop;
170 TQListViewItem *paintAbove;
171 TQListViewItem *paintCurrent;
172 TQListViewItem *paintBelow;
174 bool shadeSortColumn:1;
176 TQColor alternateBackground;
178 TQListViewItem *initialFileManagerItem;
182 KListViewLineEdit::KListViewLineEdit(
KListView *parent)
183 :
KLineEdit(parent->viewport()), item(0), col(0), p(parent)
187 connect( parent, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( slotSelectionChanged() ));
188 connect( parent, TQT_SIGNAL( itemRemoved( TQListViewItem * ) ),
189 TQT_SLOT( slotItemRemoved( TQListViewItem * ) ));
192 KListViewLineEdit::~KListViewLineEdit()
196 TQListViewItem *KListViewLineEdit::currentItem()
const 201 void KListViewLineEdit::load(TQListViewItem *i,
int c)
206 TQRect rect(p->itemRect(i));
207 setText(item->text(c));
210 int fieldX = rect.x() - 1;
211 int fieldW = p->columnWidth(col) + 2;
213 TQHeader*
const pHeader = p->header();
215 const int pos = pHeader->mapToIndex(col);
216 for (
int index = 0; index < pos; ++index )
217 fieldX += p->columnWidth( pHeader->mapToSection( index ));
220 int d = i->depth() + (p->rootIsDecorated() ? 1 : 0);
221 d *= p->treeStepSize();
226 if ( i->pixmap( col ) ) {
227 int d = i->pixmap( col )->width();
232 setGeometry(fieldX, rect.y() - 1, fieldW, rect.height() + 2);
241 static int nextCol (
KListView *pl, TQListViewItem *pi,
int start,
int dir)
246 for (; ((dir == +1) ? (start < pl->columns()) : (start >= 0)); start += dir)
254 static TQListViewItem *prevItem (TQListViewItem *pi)
256 TQListViewItem *pa = pi->itemAbove();
261 if (pa && pa->parent() == pi->parent())
267 static TQListViewItem *lastQChild (TQListViewItem *pi)
275 for (TQListViewItem *pt = pi->nextSibling(); pt; pt = pt->nextSibling())
284 const int ncols = p->columns();
285 const int dir = forward ? +1 : -1;
286 const int restart = forward ? 0 : (ncols - 1);
287 TQListViewItem *top = (pitem && pitem->parent())
288 ? pitem->parent()->firstChild()
290 TQListViewItem *pi = pitem;
302 if ((column = nextCol(p, pi, column + dir, dir)) != -1 ||
303 (column = nextCol(p, (pi = (forward ? pi->nextSibling() : prevItem(pi))), restart, dir)) != -1 ||
304 (column = nextCol(p, (pi = (forward ? top : lastQChild(pitem))), restart, dir)) != -1)
308 p->setCurrentItem(pi);
309 p->rename(pi, column);
330 bool KListViewLineEdit::event (TQEvent *pe)
332 if (pe->type() == TQEvent::KeyPress)
334 TQKeyEvent *k = (TQKeyEvent *) pe;
336 if ((k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab) &&
337 p->tabOrderedRenaming() && p->itemsRenameable() &&
338 !(k->state() & ControlButton || k->state() & AltButton))
340 selectNextCell(item, col,
341 (k->key() == Key_Tab && !(k->state() & ShiftButton)));
346 return KLineEdit::event(pe);
351 if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter )
353 else if(e->key() == Qt::Key_Escape)
355 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Up)
364 void KListViewLineEdit::terminate()
369 void KListViewLineEdit::terminate(
bool commit)
375 item->setText(col, text());
377 TQListViewItem *i=item;
389 TQFocusEvent * focusEv =
static_cast<TQFocusEvent*
>(ev);
391 if (focusEv->reason() != TQFocusEvent::Popup && focusEv->reason() != TQFocusEvent::ActiveWindow)
397 void KListViewLineEdit::paintEvent( TQPaintEvent *e )
399 KLineEdit::paintEvent( e );
403 p.setClipRegion( e->region() );
404 p.drawRect( rect() );
411 void KListViewLineEdit::slotSelectionChanged()
422 if (currentItem() != i)
432 : TQListView( parent, name ),
433 d (new KListViewPrivate (this))
435 setDragAutoScroll(
true);
437 connect(
this, TQT_SIGNAL( onViewport() ),
439 connect(
this, TQT_SIGNAL( onItem( TQListViewItem * ) ),
440 this, TQT_SLOT(
slotOnItem( TQListViewItem * ) ) );
442 connect (
this, TQT_SIGNAL(contentsMoving(
int,
int)),
444 connect (
this, TQT_SIGNAL(contentsMoving(
int,
int)),
451 kapp->addKipcEventMask( KIPC::SettingsChanged );
454 connect(&d->autoSelect, TQT_SIGNAL( timeout() ),
456 connect(&d->dragExpand, TQT_SIGNAL( timeout() ),
457 this, TQT_SLOT( slotDragExpand() ) );
460 if (d->showContextMenusOnPress)
462 connect (
this, TQT_SIGNAL (rightButtonPressed (TQListViewItem*,
const TQPoint&,
int)),
463 this, TQT_SLOT (
emitContextMenu (TQListViewItem*,
const TQPoint&,
int)));
467 connect (
this, TQT_SIGNAL (rightButtonClicked (TQListViewItem*,
const TQPoint&,
int)),
468 this, TQT_SLOT (
emitContextMenu (TQListViewItem*,
const TQPoint&,
int)));
483 TQListViewItem* item = itemAt( point );
498 if ( allColumnsShowFocus() ) {
503 int width = columnWidth( 0 );
505 TQHeader*
const thisHeader = header();
506 const int pos = thisHeader->mapToIndex( 0 );
508 for (
int index = 0; index < pos; ++index ) {
509 offset += columnWidth( thisHeader->mapToSection( index ) );
518 width = treeStepSize()*( item->depth() + ( rootIsDecorated() ? 1 : 0 ) );
519 width += itemMargin();
520 int ca = AlignHorizontal_Mask & columnAlignment( 0 );
521 if ( ca == AlignLeft || ca == AlignAuto ) {
522 width += item->width( fontMetrics(),
this, 0 );
523 if ( width > columnWidth( 0 ) ) {
524 width = columnWidth( 0 );
530 if (!allColumnsShowFocus()) {
531 offset += treeStepSize()*( item->depth() + ( rootIsDecorated() ? 1 : 0 ) );
535 return ( x > offset && x < ( offset + width ) );
541 TQPoint vp = viewport()->mapFromGlobal( TQCursor::pos() );
542 if ( item &&
isExecuteArea( vp.x() ) && (d->autoSelectDelay > -1) && d->bUseSingle ) {
543 d->autoSelect.start( d->autoSelectDelay,
true );
544 d->pCurrentItem = item;
550 if ( d->bChangeCursorOverItem )
551 viewport()->unsetCursor();
553 d->autoSelect.stop();
554 d->pCurrentItem = 0L;
561 case KApplication::SETTINGS_MOUSE:
565 disconnect(
this, TQT_SIGNAL (mouseButtonClicked (
int, TQListViewItem*,
const TQPoint &,
int)),
566 this, TQT_SLOT (slotMouseButtonClicked (
int, TQListViewItem*,
const TQPoint &,
int)));
569 connect (
this, TQT_SIGNAL (mouseButtonClicked (
int, TQListViewItem*,
const TQPoint &,
int)),
570 this, TQT_SLOT (slotMouseButtonClicked(
int, TQListViewItem*,
const TQPoint &,
int)));
573 if ( !d->disableAutoSelection )
576 if( !d->bUseSingle || !d->bChangeCursorOverItem )
577 viewport()->unsetCursor();
581 case KApplication::SETTINGS_POPUPMENU:
585 if (d->showContextMenusOnPress)
587 disconnect (0L, 0L,
this, TQT_SLOT (
emitContextMenu (TQListViewItem*,
const TQPoint&,
int)));
589 connect(
this, TQT_SIGNAL (rightButtonPressed (TQListViewItem*,
const TQPoint&,
int)),
590 this, TQT_SLOT (
emitContextMenu (TQListViewItem*,
const TQPoint&,
int)));
594 disconnect (0L, 0L,
this, TQT_SLOT (
emitContextMenu (TQListViewItem*,
const TQPoint&,
int)));
596 connect(
this, TQT_SIGNAL (rightButtonClicked (TQListViewItem*,
const TQPoint&,
int)),
597 this, TQT_SLOT (
emitContextMenu (TQListViewItem*,
const TQPoint&,
int)));
612 if (!isActiveWindow())
614 d->autoSelect.stop();
624 TQListViewItem* previousItem = currentItem();
625 setCurrentItem( d->pCurrentItem );
627 if( d->pCurrentItem ) {
629 if( (keybstate & TQt::ShiftButton) ) {
630 bool block = signalsBlocked();
631 blockSignals(
true );
634 if( !(keybstate & TQt::ControlButton) )
637 bool select = !d->pCurrentItem->isSelected();
638 bool update = viewport()->isUpdatesEnabled();
639 viewport()->setUpdatesEnabled(
false );
641 bool down = previousItem->itemPos() < d->pCurrentItem->itemPos();
642 TQListViewItemIterator lit( down ? previousItem : d->pCurrentItem );
643 for ( ; lit.current(); ++lit ) {
644 if ( down && lit.current() == d->pCurrentItem ) {
645 d->pCurrentItem->setSelected( select );
648 if ( !down && lit.current() == previousItem ) {
649 previousItem->setSelected( select );
652 lit.current()->setSelected( select );
655 blockSignals( block );
656 viewport()->setUpdatesEnabled( update );
659 emit selectionChanged();
661 if( selectionMode() == TQListView::Single )
662 emit selectionChanged( d->pCurrentItem );
664 else if( (keybstate & KApplication::ControlModifier) )
665 setSelected( d->pCurrentItem, !d->pCurrentItem->isSelected() );
667 bool block = signalsBlocked();
668 blockSignals(
true );
670 if( !d->pCurrentItem->isSelected() )
673 blockSignals( block );
675 setSelected( d->pCurrentItem,
true );
679 kdDebug() <<
"KListView::slotAutoSelect: That�s not supposed to happen!!!!" <<
endl;
685 const int colCount = columns();
686 if (d->fullWidth && colCount)
689 const int lastColumn = colCount - 1;
690 for (
int i = 0; i < lastColumn; ++i) w += columnWidth(i);
691 setColumnWidth( lastColumn, viewport()->width() - w - 1 );
701 if ( !d->bUseSingle )
703 viewport()->unsetCursor();
711 d->autoSelect.stop();
714 if( !( ((keybstate & TQt::ShiftButton) || (keybstate & TQt::ControlButton)) ) ) {
715 viewport()->unsetCursor();
726 TQListView::focusInEvent( fe );
727 if ((d->selectedBySimpleMove)
728 && (d->selectionMode == FileManager)
729 && (fe->reason()!=TQFocusEvent::Popup)
730 && (fe->reason()!=TQFocusEvent::ActiveWindow)
733 currentItem()->setSelected(
true);
734 currentItem()->repaint();
735 emit selectionChanged();
744 d->autoSelect.stop();
746 if ((d->selectedBySimpleMove)
747 && (d->selectionMode == FileManager)
748 && (fe->reason()!=TQFocusEvent::Popup)
749 && (fe->reason()!=TQFocusEvent::ActiveWindow)
751 && (!d->editor->isVisible()))
753 currentItem()->setSelected(
false);
754 currentItem()->repaint();
755 emit selectionChanged();
758 TQListView::focusOutEvent( fe );
763 d->autoSelect.stop();
765 TQListView::leaveEvent( e );
770 if (e->type() == TQEvent::ApplicationPaletteChange)
773 return TQListView::event(e);
778 if( (
selectionModeExt() == Extended) && (e->state() & ShiftButton) && !(e->state() & ControlButton) )
780 bool block = signalsBlocked();
781 blockSignals(
true );
785 blockSignals( block );
789 d->selectedBySimpleMove=
false;
790 d->selectedUsingMouse=
true;
793 currentItem()->setSelected(
false);
794 currentItem()->repaint();
799 TQPoint p( contentsToViewport( e->pos() ) );
800 TQListViewItem *at = itemAt (p);
803 bool rootDecoClicked = at
804 && ( p.x() <= header()->cellPos( header()->mapToActual( 0 ) ) +
805 treeStepSize() * ( at->depth() + ( rootIsDecorated() ? 1 : 0) ) + itemMargin() )
806 && ( p.x() >= header()->cellPos( header()->mapToActual( 0 ) ) );
808 if (e->button() == Qt::LeftButton && !rootDecoClicked)
811 d->startDragPos = e->pos();
816 d->pressedOnSelected = at->isSelected();
820 TQListView::contentsMousePressEvent( e );
825 if (!
dragEnabled() || d->startDragPos.isNull() || !d->validDrag)
826 TQListView::contentsMouseMoveEvent (e);
828 TQPoint vp = contentsToViewport(e->pos());
829 TQListViewItem *item = itemAt( vp );
832 if ( item && d->bChangeCursorOverItem && d->bUseSingle )
835 if( (item != d->pCurrentItem) ||
840 if( d->cursorInExecuteArea )
843 viewport()->unsetCursor();
848 TQPoint newPos = e->pos();
849 if (dragOn && d->validDrag &&
850 (newPos.x() > d->startDragPos.x()+d->dragDelay ||
851 newPos.x() < d->startDragPos.x()-d->dragDelay ||
852 newPos.y() > d->startDragPos.y()+d->dragDelay ||
853 newPos.y() < d->startDragPos.y()-d->dragDelay))
856 TQListView::contentsMouseReleaseEvent( 0 );
858 d->startDragPos = TQPoint();
859 d->validDrag =
false;
865 if (e->button() == Qt::LeftButton)
870 TQPoint p( contentsToViewport( e->pos() ) );
871 TQListViewItem *at = itemAt (p);
875 bool rootDecoClicked =
876 ( p.x() <= header()->cellPos( header()->mapToActual( 0 ) ) +
877 treeStepSize() * ( at->depth() + ( rootIsDecorated() ? 1 : 0) ) + itemMargin() )
878 && ( p.x() >= header()->cellPos( header()->mapToActual( 0 ) ) );
880 if (!rootDecoClicked)
882 int col = header()->mapToLogical( header()->cellAt( p.x() ) );
883 if ( d->renameable.contains(col) )
889 d->pressedOnSelected =
false;
890 d->validDrag =
false;
891 d->startDragPos = TQPoint();
893 TQListView::contentsMouseReleaseEvent( e );
901 if ( !e || e->button() != Qt::LeftButton ) {
905 TQPoint vp = contentsToViewport(e->pos());
906 TQListViewItem *item = itemAt( vp );
907 emit TQListView::doubleClicked( item );
909 int col = item ? header()->mapToLogical( header()->cellAt( vp.x() ) ) : -1;
914 if( (e->button() == Qt::LeftButton) && !d->bUseSingle ) {
920 void KListView::slotMouseButtonClicked(
int btn, TQListViewItem *item,
const TQPoint &pos,
int c )
922 if( (btn == Qt::LeftButton) && item ) {
931 d->dragExpand.stop();
936 TQListViewItem *afterme;
937 TQListViewItem *parent;
939 findDrop(e->pos(), parent, afterme);
946 emit
dropped(
this, e, afterme);
947 emit
dropped(e, parent, afterme);
948 emit
dropped(
this, e, parent, afterme);
955 TQPtrList<TQListViewItem> items, afterFirsts, afterNows;
956 TQListViewItem *current=currentItem();
958 for (TQListViewItem *i = firstChild(), *iNext=0; i; i = iNext)
960 iNext=i->itemBelow();
961 if (!i->isSelected())
969 i->setSelected(
false);
971 TQListViewItem *afterFirst = i->itemAbove();
983 emit
moved(i, afterFirst, afterme);
986 afterFirsts.append (afterFirst);
987 afterNows.append (afterme);
992 for (TQListViewItem *i=items.first(); i; i=items.next() )
993 i->setSelected(
true);
995 setCurrentItem(current);
997 emit
moved(items,afterFirsts,afterNows);
1007 event->acceptAction();
1010 findDrop(event->pos(), d->parentItemDrop, d->afterItemDrop);
1011 TQPoint vp = contentsToViewport( event->pos() );
1012 TQListViewItem *item =
isExecuteArea( vp ) ? itemAt( vp ) : 0L;
1014 if ( item != d->dragOverItem )
1016 d->dragExpand.stop();
1017 d->dragOverItem = item;
1018 d->dragOverPoint = vp;
1019 if ( d->dragOverItem && d->dragOverItem->isExpandable() && !d->dragOverItem->isOpen() )
1020 d->dragExpand.start( TQApplication::startDragTime(),
true );
1025 if (tmpRect != d->mOldDropVisualizer)
1028 d->mOldDropVisualizer=tmpRect;
1029 viewport()->repaint(tmpRect);
1035 if (tmpRect != d->mOldDropHighlighter)
1038 d->mOldDropHighlighter=tmpRect;
1039 viewport()->repaint(tmpRect);
1047 void KListView::slotDragExpand()
1049 if ( itemAt( d->dragOverPoint ) == d->dragOverItem )
1050 d->dragOverItem->setOpen(
true );
1055 d->dragExpand.stop();
1062 if (d->mOldDropVisualizer.isValid())
1064 TQRect rect=d->mOldDropVisualizer;
1065 d->mOldDropVisualizer = TQRect();
1066 viewport()->repaint(rect,
true);
1072 return treeStepSize() * ( depth + (rootIsDecorated() ? 1 : 0) ) + itemMargin();
1077 TQPoint p (contentsToViewport(pos));
1080 TQListViewItem *atpos = itemAt(p);
1082 TQListViewItem *above;
1088 if (p.y() - itemRect(atpos).topLeft().y() < (atpos->height()/2))
1089 above = atpos->itemAbove();
1098 if (above->firstChild() && above->isOpen())
1107 if (above->isExpandable())
1111 (above->isOpen() && above->childCount() > 0) )
1121 TQListViewItem * betterAbove = above->parent();
1122 TQListViewItem * last = above;
1123 while ( betterAbove )
1127 if ( !last->nextSibling() )
1130 above = betterAbove;
1134 betterAbove = betterAbove->parent();
1141 parent = after ? after->parent() : 0L ;
1146 TQListViewItem* lastchild = firstChild();
1149 for (; lastchild->nextSibling(); lastchild = lastchild->nextSibling());
1158 for (TQListViewItemIterator it (last); it.current(); ++it)
1159 last = it.current();
1176 if (drag->drag() && drag->target() != viewport())
1186 return new TQStoredDrag(
"application/x-qlistviewitem", viewport());
1196 return d->itemsMovable;
1201 d->itemsRenameable=b;
1206 return d->itemsRenameable;
1217 return d->dragEnabled;
1232 return d->dropVisualizer;
1237 d->dropVisualizer=b;
1247 TQPtrList<TQListViewItem> list;
1253 switch(selectionMode())
1258 if(selectedItem() && (includeHiddenItems || selectedItem()->isVisible()))
1259 list.append(selectedItem());
1263 int flags = TQListViewItemIterator::Selected;
1264 if (!includeHiddenItems)
1266 flags |= TQListViewItemIterator::Visible;
1269 TQListViewItemIterator it(const_cast<KListView *>(
this), flags);
1271 for(; it.current(); ++it)
1272 list.append(it.current());
1285 TQListViewItem *i = parent;
1295 item->moveItem(after);
1302 item->parent()->takeItem(item);
1307 parent->insertItem(item);
1320 d->mDropVisualizerWidth = w > 0 ? w : 1;
1324 TQListViewItem *after)
1326 TQRect insertmarker;
1328 if (!after && !parent)
1329 insertmarker = TQRect (0, 0, viewport()->width(), d->mDropVisualizerWidth/2);
1335 TQListViewItem* it = 0L;
1336 if (after->isOpen())
1339 it = after->firstChild();
1341 while (it->nextSibling() || it->firstChild())
1342 if ( it->nextSibling() )
1343 it = it->nextSibling();
1345 it = it->firstChild();
1348 insertmarker = itemRect (it ? it : after);
1349 level = after->depth();
1353 insertmarker = itemRect (parent);
1354 level = parent->depth() + 1;
1356 insertmarker.setLeft( treeStepSize() * ( level + (rootIsDecorated() ? 1 : 0) ) + itemMargin() );
1357 insertmarker.setRight (viewport()->width());
1358 insertmarker.setTop (insertmarker.bottom() - d->mDropVisualizerWidth/2 + 1);
1359 insertmarker.setBottom (insertmarker.bottom() + d->mDropVisualizerWidth/2);
1365 p->fillRect(insertmarker, Dense4Pattern);
1367 return insertmarker;
1377 r.setLeft(r.left()+(item->depth()+(rootIsDecorated() ? 1 : 0))*treeStepSize());
1379 style().tqdrawPrimitive(TQStyle::PE_FocusRect, painter, r, colorGroup(),
1380 TQStyle::Style_FocusAtBorder, colorGroup().highlight());
1388 if (d->mOldDropHighlighter.isValid())
1390 TQRect rect=d->mOldDropHighlighter;
1391 d->mOldDropHighlighter = TQRect();
1392 viewport()->repaint(rect,
true);
1398 if (d->renameable.contains(c))
1400 ensureItemVisible(item);
1401 d->editor->load(item,c);
1407 return d->renameable.contains(col);
1412 if (col>=header()->count())
return;
1414 d->renameable.remove(col);
1419 void KListView::doneEditing(TQListViewItem *item,
int row)
1427 return acceptDrops() &&
itemsMovable() && (e->source()==viewport());
1432 d->createChildren=b;
1437 return d->createChildren;
1443 return d->tooltipColumn;
1448 d->tooltipColumn=column;
1453 d->dropHighlighter=b;
1458 return d->dropHighlighter;
1468 return item->text(column);
1478 return d->tabRename;
1484 if (e->key() == d->contextMenuKey)
1490 if (d->selectionMode != FileManager)
1491 TQListView::keyPressEvent (e);
1498 d->selectedBySimpleMove=
true;
1499 d->selectedUsingMouse=
false;
1502 currentItem()->setSelected(
true);
1503 currentItem()->repaint();
1504 emit selectionChanged();
1510 d->selectedBySimpleMove=
false;
1515 return d->selectedBySimpleMove;
1520 d->wasShiftEvent =
false;
1521 d->selectionDirection = 0;
1525 TQListViewItem* origItem = currentItem();
1526 if (!d->initialFileManagerItem) {
1527 d->initialFileManagerItem = origItem;
1529 setCurrentItem(item);
1535 int e_state=(e->state() & ~Keypad);
1538 if ((e->key()!=Key_Shift) && (e->key()!=Key_Control)
1539 && (e->key()!=Key_Meta) && (e->key()!=Key_Alt)) {
1540 if ((e_state==ShiftButton) && (!d->wasShiftEvent) && (!d->selectedBySimpleMove)) {
1542 d->selectionRegion = 0;
1543 d->initialFileManagerItem = NULL;
1545 d->selectionDirection=0;
1546 d->wasShiftEvent = (e_state == ShiftButton);
1551 TQListViewItem* item = currentItem();
1556 TQListViewItem* repaintItem1 = item;
1557 TQListViewItem* repaintItem2 = 0L;
1558 TQListViewItem* visItem = 0L;
1560 TQListViewItem* nextItem = 0L;
1563 bool shiftOrCtrl((e_state==ControlButton) || (e_state==ShiftButton));
1565 for (TQListViewItem *tmpItem=firstChild(); tmpItem; tmpItem=tmpItem->nextSibling()) {
1566 if (tmpItem->isSelected()) selectedItems++;
1569 if (((!selectedItems) || ((selectedItems==1) && (d->selectedUsingMouse)))
1570 && (e_state==Qt::NoButton)
1571 && ((e->key()==Key_Down)
1572 || (e->key()==Key_Up)
1573 || (e->key()==Key_Next)
1574 || (e->key()==Key_Prior)
1575 || (e->key()==Key_Home)
1576 || (e->key()==Key_End))) {
1577 d->selectedBySimpleMove=
true;
1578 d->selectedUsingMouse=
false;
1580 else if (selectedItems>1) {
1581 d->selectedBySimpleMove=
false;
1584 bool emitSelectionChanged(
false);
1589 emitSelectionChanged=
true;
1594 if (d->selectedBySimpleMove) {
1595 d->selectedBySimpleMove=
false;
1597 item->setSelected(!item->isSelected());
1598 emitSelectionChanged=
true;
1603 if (d->selectedBySimpleMove) {
1604 d->selectedBySimpleMove=
false;
1605 if (!item->isSelected()) item->setSelected(
true);
1608 item->setSelected(!item->isSelected());
1611 nextItem=item->itemBelow();
1614 repaintItem2=nextItem;
1616 setCurrentItem(nextItem);
1618 d->selectionDirection=1;
1619 emitSelectionChanged=
true;
1623 nextItem=item->itemBelow();
1625 d->selectionDirection=1;
1626 d->selectedBySimpleMove=
false;
1627 if (!d->initialFileManagerItem) {
1628 d->initialFileManagerItem = item;
1629 item->setSelected(
true);
1631 nextItem->setSelected(
true);
1633 emitSelectionChanged=
true;
1634 d->selectionRegion=1;
1637 if (item == d->initialFileManagerItem) {
1638 item->setSelected(
true);
1640 nextItem->setSelected(
true);
1642 emitSelectionChanged=
true;
1643 d->selectionRegion=1;
1646 if (d->selectionRegion == 1) {
1648 nextItem->setSelected(
true);
1650 emitSelectionChanged=
true;
1652 else if (d->selectionRegion == -1) {
1653 item->setSelected(
false);
1654 emitSelectionChanged=
true;
1659 else if ((d->selectedBySimpleMove) && (nextItem)) {
1660 item->setSelected(
false);
1661 emitSelectionChanged=
true;
1665 if (d->selectedBySimpleMove) {
1666 nextItem->setSelected(
true);
1668 repaintItem2=nextItem;
1670 setCurrentItem(nextItem);
1675 nextItem=item->itemAbove();
1677 d->selectionDirection=-1;
1678 d->selectedBySimpleMove=
false;
1679 if (!d->initialFileManagerItem) {
1680 d->initialFileManagerItem = item;
1681 item->setSelected(
true);
1683 nextItem->setSelected(
true);
1685 emitSelectionChanged=
true;
1686 d->selectionRegion=-1;
1689 if (item == d->initialFileManagerItem) {
1690 item->setSelected(
true);
1692 nextItem->setSelected(
true);
1694 emitSelectionChanged=
true;
1695 d->selectionRegion=-1;
1698 if (d->selectionRegion == -1) {
1700 nextItem->setSelected(
true);
1702 emitSelectionChanged=
true;
1704 else if (d->selectionRegion == 1) {
1705 item->setSelected(
false);
1706 emitSelectionChanged=
true;
1711 else if ((d->selectedBySimpleMove) && (nextItem)) {
1712 item->setSelected(
false);
1713 emitSelectionChanged=
true;
1717 if (d->selectedBySimpleMove) {
1718 nextItem->setSelected(
true);
1720 repaintItem2=nextItem;
1722 setCurrentItem(nextItem);
1729 if (d->selectedBySimpleMove) {
1730 item->setSelected(
false);
1733 d->selectedBySimpleMove=
false;
1738 if (!d->initialFileManagerItem) {
1739 d->initialFileManagerItem = nextItem;
1740 nextItem->setSelected(
true);
1741 emitSelectionChanged=
true;
1742 d->selectionRegion=1;
1745 if (nextItem == d->initialFileManagerItem) {
1746 nextItem->setSelected(
true);
1747 emitSelectionChanged=
true;
1748 d->selectionRegion=1;
1751 if (d->selectionRegion == 1) {
1752 nextItem->setSelected(
true);
1753 emitSelectionChanged=
true;
1755 else if (d->selectionRegion == -1) {
1756 nextItem->setSelected(
false);
1757 emitSelectionChanged=
true;
1762 if (!nextItem->itemBelow()) {
1763 if (d->selectedBySimpleMove) {
1764 nextItem->setSelected(
true);
1766 repaintItem2=nextItem;
1768 setCurrentItem(nextItem);
1770 nextItem=nextItem->itemBelow();
1772 emitSelectionChanged=
true;
1778 if (d->selectedBySimpleMove) {
1779 item->setSelected(
false);
1782 d->selectedBySimpleMove=
false;
1787 if (!d->initialFileManagerItem) {
1788 d->initialFileManagerItem = nextItem;
1789 nextItem->setSelected(
true);
1790 emitSelectionChanged=
true;
1791 d->selectionRegion=-1;
1794 if (nextItem == d->initialFileManagerItem) {
1795 nextItem->setSelected(
true);
1796 emitSelectionChanged=
true;
1797 d->selectionRegion=-1;
1800 if (d->selectionRegion == -1) {
1801 nextItem->setSelected(
true);
1802 emitSelectionChanged=
true;
1804 else if (d->selectionRegion == 1) {
1805 nextItem->setSelected(
false);
1806 emitSelectionChanged=
true;
1811 if (!nextItem->itemAbove()) {
1812 if (d->selectedBySimpleMove) {
1813 nextItem->setSelected(
true);
1815 repaintItem2=nextItem;
1817 setCurrentItem(nextItem);
1819 nextItem=nextItem->itemAbove();
1821 emitSelectionChanged=
true;
1825 items=visibleHeight()/item->height();
1827 if (d->selectedBySimpleMove) {
1828 item->setSelected(
false);
1831 d->selectedBySimpleMove=
false;
1832 d->selectionDirection=1;
1835 for (
int i=0; i<items; i++) {
1837 if (!d->initialFileManagerItem) {
1838 d->initialFileManagerItem = nextItem;
1839 nextItem->setSelected(
true);
1840 emitSelectionChanged=
true;
1841 d->selectionRegion=1;
1844 if (nextItem == d->initialFileManagerItem) {
1845 nextItem->setSelected(
true);
1846 emitSelectionChanged=
true;
1847 d->selectionRegion=1;
1850 if (d->selectionRegion == 1) {
1851 nextItem->setSelected(
true);
1852 emitSelectionChanged=
true;
1854 else if (d->selectionRegion == -1) {
1856 nextItem->setSelected(
true);
1859 nextItem->setSelected(
false);
1861 emitSelectionChanged=
true;
1867 if ((i==items-1) || (!nextItem->itemBelow())) {
1868 if (d->selectedBySimpleMove) {
1869 nextItem->setSelected(
true);
1871 ensureItemVisible(nextItem);
1872 setCurrentItem(nextItem);
1874 if ((shiftOrCtrl) || (d->selectedBySimpleMove)) {
1875 emit selectionChanged();
1879 nextItem=nextItem->itemBelow();
1884 items=visibleHeight()/item->height();
1886 if (d->selectedBySimpleMove) {
1887 item->setSelected(
false);
1890 d->selectionDirection=-1;
1891 d->selectedBySimpleMove=
false;
1894 for (
int i=0; i<items; i++) {
1896 if (!d->initialFileManagerItem) {
1897 d->initialFileManagerItem = nextItem;
1898 nextItem->setSelected(
true);
1899 emitSelectionChanged=
true;
1900 d->selectionRegion=-1;
1903 if (nextItem == d->initialFileManagerItem) {
1904 nextItem->setSelected(
true);
1905 emitSelectionChanged=
true;
1906 d->selectionRegion=-1;
1909 if (d->selectionRegion == -1) {
1910 nextItem->setSelected(
true);
1911 emitSelectionChanged=
true;
1913 else if (d->selectionRegion == 1) {
1915 nextItem->setSelected(
true);
1918 nextItem->setSelected(
false);
1920 emitSelectionChanged=
true;
1926 if ((i==items-1) || (!nextItem->itemAbove())) {
1927 if (d->selectedBySimpleMove) {
1928 nextItem->setSelected(
true);
1930 ensureItemVisible(nextItem);
1931 setCurrentItem(nextItem);
1933 if ((shiftOrCtrl) || (d->selectedBySimpleMove)) {
1934 emit selectionChanged();
1938 nextItem=nextItem->itemAbove();
1943 if ( item->isOpen() ) {
1944 setOpen( item,
false );
1948 if ( !item->isOpen() && (item->isExpandable() || item->childCount()) ) {
1949 setOpen( item,
true );
1953 bool realKey = ((e->key()!=Key_Shift) && (e->key()!=Key_Control)
1954 && (e->key()!=Key_Meta) && (e->key()!=Key_Alt));
1956 bool selectCurrentItem = (d->selectedBySimpleMove) && (item->isSelected());
1957 if (realKey && selectCurrentItem) {
1958 item->setSelected(
false);
1961 TQListView::SelectionMode oldSelectionMode = selectionMode();
1962 setSelectionMode (TQListView::Multi);
1963 TQListView::keyPressEvent (e);
1964 setSelectionMode (oldSelectionMode);
1965 if (realKey && selectCurrentItem) {
1966 currentItem()->setSelected(
true);
1967 emitSelectionChanged=
true;
1969 repaintItem2=currentItem();
1971 visItem=currentItem();
1977 ensureItemVisible(visItem);
1982 ir = ir.unite( itemRect(repaintItem1) );
1985 ir = ir.unite( itemRect(repaintItem2) );
1988 if ( !ir.isEmpty() ) {
1991 ir.moveBy( -ir.x(), 0 );
1993 viewport()->repaint( ir,
false );
2003 if (emitSelectionChanged) {
2004 emit selectionChanged();
2010 d->selectionMode = mode;
2018 setSelectionMode (static_cast<TQListView::SelectionMode>(static_cast<int>(mode)));
2022 setSelectionMode (TQListView::Extended);
2026 kdWarning () <<
"Warning: illegal selection mode " << int(mode) <<
" set!" <<
endl;
2033 return d->selectionMode;
2041 if ( item == firstChild() )
2044 TQListViewItemIterator it(firstChild());
2046 for (; it.current() && it.current() != item; ++it, ++j );
2061 for (TQListViewItemIterator it=firstChild(); it.current(); ++it)
2064 return it.current();
2076 p = viewport()->mapToGlobal(itemRect(i).center());
2078 p = mapToGlobal(rect().center());
2090 TQListView::setAcceptDrops (val);
2091 viewport()->setAcceptDrops (val);
2096 return d->mDropVisualizerWidth;
2103 d->paintCurrent = 0;
2107 TQListView::viewportPaintEvent(e);
2109 if (d->mOldDropVisualizer.isValid() && e->rect().intersects(d->mOldDropVisualizer))
2111 TQPainter painter(viewport());
2114 painter.fillRect(d->mOldDropVisualizer, Dense4Pattern);
2116 if (d->mOldDropHighlighter.isValid() && e->rect().intersects(d->mOldDropHighlighter))
2118 TQPainter painter(viewport());
2121 style().tqdrawPrimitive(TQStyle::PE_FocusRect, &painter, d->mOldDropHighlighter, colorGroup(),
2122 TQStyle::Style_FocusAtBorder);
2124 d->painting =
false;
2135 header()->setStretchEnabled(fullWidth, columns()-1);
2140 return d->fullWidth;
2145 int result = TQListView::addColumn(label, width);
2147 header()->setStretchEnabled(
false, columns()-2);
2148 header()->setStretchEnabled(
true, columns()-1);
2155 int result = TQListView::addColumn(iconset, label, width);
2157 header()->setStretchEnabled(
false, columns()-2);
2158 header()->setStretchEnabled(
true, columns()-1);
2165 TQListView::removeColumn(index);
2166 if (d->fullWidth && index == columns()) header()->setStretchEnabled(
true, columns()-1);
2171 TQListView::viewportResizeEvent(e);
2176 return d->alternateBackground;
2181 d->alternateBackground = c;
2193 return d->shadeSortColumn;
2199 TQStringList widths, order;
2201 const int colCount = columns();
2202 TQHeader*
const thisHeader = header();
2203 for (
int i = 0; i < colCount; ++i)
2205 widths << TQString::number(columnWidth(i));
2206 order << TQString::number(thisHeader->mapToIndex(i));
2210 config->
writeEntry(
"SortColumn", d->sortColumn);
2211 config->
writeEntry(
"SortAscending", d->sortAscending);
2220 TQStringList::ConstIterator it = cols.constBegin();
2221 const TQStringList::ConstIterator itEnd = cols.constEnd();
2222 for (; it != itEnd; ++it)
2223 setColumnWidth(i++, (*it).toInt());
2230 const int colCount = columns();
2231 for (i = 0; i < colCount; ++i)
2233 TQStringList::ConstIterator it = cols.constBegin();
2234 const TQStringList::ConstIterator itEnd = cols.constEnd();
2237 for (; (it != itEnd) && ((*it).toInt() != i); ++it, ++section) ;
2239 if ( it != itEnd ) {
2241 header()->moveSection(section, i);
2245 if (config->
hasKey(
"SortColumn"))
2251 TQListViewItem *selected = 0;
2253 if (selectionMode() == TQListView::Single) {
2254 selected = selectedItem();
2255 if (selected && !selected->isVisible())
2258 else if (selectionMode() != TQListView::NoSelection) {
2259 TQListViewItem *item = firstChild();
2260 while (item && !selected) {
2261 if (item->isSelected() && item->isVisible())
2263 item = item->itemBelow();
2267 d->sortColumn = column;
2268 d->sortAscending = ascending;
2269 TQListView::setSorting(column, ascending);
2272 ensureItemVisible(selected);
2274 TQListViewItem* item = firstChild();
2277 if (kItem) kItem->m_known =
false;
2278 item = item->itemBelow();
2284 return d->sortColumn;
2289 return d->sortAscending;
2294 if(item && item == d->editor->currentItem())
2295 d->editor->terminate();
2297 TQListView::takeItem(item);
2302 if ( d->disableAutoSelection )
2305 d->disableAutoSelection =
true;
2306 d->autoSelect.stop();
2307 d->autoSelectDelay = -1;
2312 if ( !d->disableAutoSelection )
2315 d->disableAutoSelection =
false;
2321 emit TQListView::doubleClicked( item, pos, c );
2325 : TQListViewItem(parent)
2331 : TQListViewItem(parent)
2337 : TQListViewItem(parent, after)
2343 : TQListViewItem(parent, after)
2349 TQString label1, TQString label2, TQString label3, TQString label4,
2350 TQString label5, TQString label6, TQString label7, TQString label8)
2351 : TQListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8)
2357 TQString label1, TQString label2, TQString label3, TQString label4,
2358 TQString label5, TQString label6, TQString label7, TQString label8)
2359 : TQListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8)
2365 TQString label1, TQString label2, TQString label3, TQString label4,
2366 TQString label5, TQString label6, TQString label7, TQString label8)
2367 : TQListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8)
2373 TQString label1, TQString label2, TQString label3, TQString label4,
2374 TQString label5, TQString label6, TQString label7, TQString label8)
2375 : TQListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8)
2380 KListViewItem::~KListViewItem()
2383 emit
static_cast<KListView *
>(listView())->itemRemoved(
this);
2386 void KListViewItem::init()
2388 m_odd = m_known =
false;
2390 setDragEnabled( dragEnabled() || lv->dragEnabled() );
2391 emit lv->itemAdded(
this);
2394 void KListViewItem::insertItem(TQListViewItem *item)
2396 TQListViewItem::insertItem(item);
2398 emit
static_cast<KListView *
>(listView())->itemAdded(item);
2401 void KListViewItem::takeItem(TQListViewItem *item)
2403 TQListViewItem::takeItem(item);
2405 emit
static_cast<KListView *
>(listView())->itemRemoved(item);
2411 return static_cast< KListView*
>(listView())->alternateBackground();
2412 return listView()->viewport()->colorGroup().base();
2419 view->alternateBackground() :
2420 view->viewport()->colorGroup().base();
2423 if ( (view->columns() > 1) && view->shadeSortColumn() && (column == view->
columnSorted()) )
2425 if ( color == Qt::black )
2426 color = TQColor(55, 55, 55);
2430 color.hsv(&h, &s, &v);
2432 color = color.dark(104);
2434 color = color.light(120);
2444 if (lv && lv->alternateBackground().isValid())
2448 KListView::KListViewPrivate*
const lvD = lv->d;
2467 if (lvD->painting) {
2468 if (lvD->paintCurrent !=
this)
2470 lvD->paintAbove = lvD->paintBelow ==
this ? lvD->paintCurrent : itemAbove();
2471 lvD->paintCurrent =
this;
2472 lvD->paintBelow = itemBelow();
2482 m_known = above ? above->m_known :
true;
2485 m_odd = above ? !above->m_odd :
false;
2490 bool previous =
true;
2495 previous = item->m_odd;
2496 item =
dynamic_cast<KListViewItem *
>(parent()->firstChild());
2505 previous = !previous;
2506 item->m_odd = previous;
2507 item->m_known =
true;
2516 void KListViewItem::paintCell(TQPainter *p,
const TQColorGroup &cg,
int column,
int width,
int alignment)
2518 TQColorGroup _cg = cg;
2519 TQListView* lv = listView();
2520 const TQPixmap *pm = lv->viewport()->backgroundPixmap();
2522 if (pm && !pm->isNull())
2524 _cg.setBrush(TQColorGroup::Base, TQBrush(
backgroundColor(column), *pm));
2525 TQPoint o = p->brushOrigin();
2526 p->setBrushOrigin( o.x()-lv->contentsX(), o.y()-lv->contentsY() );
2530 _cg.setColor((lv->viewport()->backgroundMode() == TQt::FixedColor) ?
2531 TQColorGroup::Background : TQColorGroup::Base,
2534 TQListViewItem::paintCell(p, _cg, column, width, alignment);
2547 bool b = signalsBlocked();
2548 blockSignals( TRUE );
2549 bool anything = FALSE;
2550 TQListViewItemIterator it(
this );
2551 while ( it.current() ) {
2552 TQListViewItem *i = it.current();
2553 if ( select == TRUE ) {
2554 if ( (
bool)i->isVisible() == TRUE ) {
2555 i->setSelected( TRUE );
2558 if ( (
bool)i->isVisible() == FALSE ) {
2559 i->setSelected( FALSE );
2564 if ( (
bool)i->isSelected() != select ) {
2565 i->setSelected( select );
2573 emit selectionChanged();
2577 }
else if ( currentItem() ) {
2578 TQListViewItem * i = currentItem();
2579 setSelected( i, select );
2583 void KListView::virtual_hook(
int,
void* )
2586 #include "klistview.moc" 2587 #include "klistviewlineedit.moc" virtual void leaveEvent(TQEvent *e)
Reimplemented for internal reasons.
virtual void keyPressEvent(TQKeyEvent *)
Re-implemented for internal reasons.
virtual void setDragEnabled(bool b)
Enable/Disable the dragging of items.
static TQColor alternateBackgroundColor()
int dropVisualizerWidth() const
The dropVisualizerWidth defaults to 4.
void activateAutomaticSelection()
In FileManager selection mode: explicitly activate the mode in which the current item is automaticall...
virtual void focusOutEvent(TQFocusEvent *)
Re-implemented for internal reasons.
void setRenameable(int column, bool yesno=true)
By default, if you called setItemsRenameable(true), only the first column is renameable.
bool hasKey(const TQString &key) const
void slotOnViewport()
Accessory slot for AutoSelect/ChangeCursorOverItem.
void slotAutoSelect()
Process AutoSelection.
bool createChildren() const KDE_DEPRECATED
For future expansions.
virtual void movableDropEvent(TQListViewItem *parent, TQListViewItem *afterme)
Handle dropEvent when itemsMovable() is set to true.
A listview item with support for alternate background colors.
TQListViewItem * lastChild() const
void moved()
This signal is emitted when ever the user moves an item in the list via DnD.
virtual void findDrop(const TQPoint &pos, TQListViewItem *&parent, TQListViewItem *&after)
Where is the nearest TQListViewItem that I'm going to drop?
static bool singleClick()
void setActiveMultiSelectItem(TQListViewItem *item)
In FileManager selection mode: set the current keyboard cursor selection item; e.g.
bool itemsMovable() const
void setTabOrderedRenaming(bool b)
Enable/disable tabbing between editable cells.
bool automaticSelection() const
In FileManager selection mode: return whether it is currently in the mode where the current item is s...
void setFullWidth() KDE_DEPRECATED
virtual void contentsDragLeaveEvent(TQDragLeaveEvent *event)
Reimplemented for internal reasons.
bool readBoolEntry(const TQString &pKey, bool bDefault=false) const
virtual TQRect drawDropVisualizer(TQPainter *p, TQListViewItem *parent, TQListViewItem *after)
Paint the drag line.
void slotHeaderChanged()
Reacts to header changes in full width mode.
virtual void selectAll(bool select)
Override TQListView selectAll() so that filtered items are not selected.
void writeEntry(const TQString &pKey, const TQString &pValue, bool bPersistent=true, bool bGlobal=false, bool bNLS=false)
virtual TQRect drawItemHighlighter(TQPainter *painter, TQListViewItem *item)
Paint the drag rectangle.
SelectionModeExt selectionModeExt() const
virtual void contentsMouseMoveEvent(TQMouseEvent *e)
Reimplemented for internal reasons.
virtual bool acceptDrag(TQDropEvent *event) const
virtual void setItemsMovable(bool b)
Set whether items in the list view can be moved.
static bool showContextMenusOnPress()
kdbgstream kdDebug(int area=0)
bool tabOrderedRenaming() const
Returns whether tab ordered renaming is enabled.
virtual void contentsDropEvent(TQDropEvent *)
Reimplemented for internal reasons.
bool itemsRenameable() const
void restoreLayout(KConfig *config, const TQString &group)
Reads the list view's layout from a KConfig group as stored with saveLayout.
virtual bool showTooltip(TQListViewItem *item, const TQPoint &pos, int column) const
virtual ~KListView()
Destructor.
int readNumEntry(const TQString &pKey, int nDefault=0) const
This Widget extends the functionality of TQListView to honor the system wide settings for Single Clic...
void setSelectionModeExt(SelectionModeExt mode)
Set the selection mode.
void cleanDropVisualizer()
Repaint the rect where I was drawing the drop line.
virtual void setAutoOpen(bool b)
Enable/Disable AutoOpen (not implemented currently).
void slotSettingsChanged(int)
Update internal settings whenever the global ones change.
virtual void focusOutEvent(TQFocusEvent *)
Re-implemented for internal reasons.
virtual void contentsMousePressEvent(TQMouseEvent *e)
Reimplemented for internal reasons.
void emitContextMenu(TQListViewItem *, const TQPoint &, int)
Emit the contextMenu signal.
int columnSorted(void) const
virtual void setAcceptDrops(bool)
Reimplemented for internal reasons.
bool isAlternate()
returns true if this item is to be drawn with the alternate background
virtual void viewportResizeEvent(TQResizeEvent *e)
Reimplemented for setFullWidth()
bool dropHighlighter() const
void contextMenu(KListView *l, TQListViewItem *i, const TQPoint &p)
This signal is emitted whenever a context-menu should be shown for item i.
virtual void setDropHighlighter(bool b)
Enable/Disable the drawing of a drop-highlighter (a rectangle around the item under the mouse cursor)...
kdbgstream kdWarning(int area=0)
virtual void rename(TQListViewItem *item, int c)
Rename column c of item.
virtual void focusInEvent(TQFocusEvent *fe)
Reimplemented for internal reasons.
virtual void contentsMouseReleaseEvent(TQMouseEvent *)
Reimplemented for internal reasons.
virtual int addColumn(const TQString &label, int width=-1)
Reimplemented for full width support.
SelectionModeExt
Possible selection modes.
virtual void focusOutEvent(TQFocusEvent *fe)
Reimplemented for internal reasons.
virtual TQString tooltip(TQListViewItem *item, int column) const
void saveLayout(KConfig *config, const TQString &group) const
Saves the list view's layout (column widtsh, column order, sort column) to a KConfig group...
virtual void removeColumn(int index)
Reimplemented for full width support.
bool fullWidth() const
Returns whether the last column is set to fit the available width.
TQListViewItem * lastItem() const
bool ascendingSort(void) const
virtual void startDrag()
This method calls dragObject() and starts the drag.
void resetKeyboardSelectionOperation()
In FileManager selection mode: reset the keyboard selection operation; e.g.
virtual void setSorting(int column, bool ascending=true)
Reimplemented to remember the current sort column and order.
bool dropVisualizer() const
int itemIndex(const TQListViewItem *item) const
Returns the index of item within the item tree or -1 if item doesn't exist in this list view...
virtual void viewportPaintEvent(TQPaintEvent *)
Reimplemented for internal reasons.
static bool changeCursorOverIcon()
void resetAutoSelection()
Reset AutoSelection to the system wide setting.
virtual void contentsMouseDoubleClickEvent(TQMouseEvent *e)
Reimplemented for internal reasons.
An enhanced TQLineEdit widget for inputting text.
const TQColor & alternateBackground() const
void setShadeSortColumn(bool shadeSortColumn)
Set to true if the currently sorted column should be drawn shaded.
virtual void contentsDragMoveEvent(TQDragMoveEvent *event)
Reimplemented for internal reasons.
virtual void takeItem(TQListViewItem *i)
Reimplemented for internal reasons.
static int contextMenuKey()
void doubleClicked(TQListViewItem *item, const TQPoint &pos, int c)
TQPtrList< TQListViewItem > selectedItems() const
void deactivateAutomaticSelection()
In FileManager selection mode: explicitly deactivate the mode in which the current item is automatica...
virtual void setItemsRenameable(bool b)
Enables inplace-renaming of items.
virtual void keyPressEvent(TQKeyEvent *e)
Re-implemented for internal reasons.
void slotItemRemoved(TQListViewItem *i)
void moveItem(TQListViewItem *item, TQListViewItem *parent, TQListViewItem *after)
Arbitrarily move item to parent, positioned immediately after item after.
void menuShortCutPressed(KListView *list, TQListViewItem *item)
This signal is emitted when the shortcut key for popup-menus is pressed.
const TQColor & backgroundColor() KDE_DEPRECATED
returns the background color for this item
virtual void setDropVisualizer(bool b)
Enable/Disable the drawing of a drop-visualizer (a bar that shows where a dropped item would be inser...
the editor for a KListView.
int tooltipColumn() const
KLineEdit * renameLineEdit() const
virtual void setCreateChildren(bool b) KDE_DEPRECATED
For future expansions.
static int autoSelectDelay()
void selectNextCell(TQListViewItem *pi, int column, bool forward)
static TQCursor handCursor()
Returns the proper hand cursor according to the current GUI style (static function).
void fileManagerKeyPressEvent(TQKeyEvent *)
A special keyPressEvent (for FileManager selection mode).
virtual void setTooltipColumn(int column)
Set which column should be used for automatic tooltips.
virtual void contentsDragEnterEvent(TQDragEnterEvent *)
Reimplemented for internal reasons.
void dropped(TQDropEvent *e, TQListViewItem *after)
This signal gets emitted whenever something acceptable is dropped onto the listview.
void cleanItemHighlighter()
Repaint the rect where I was drawing the drop rectangle.
virtual TQDragObject * dragObject()
void itemRenamed(TQListViewItem *item, const TQString &str, int col)
This signal gets emitted when an item is renamed via in-place renaming.
bool isRenameable(int column) const
virtual void keyPressEvent(TQKeyEvent *)
Reimplemented for internal reasons.
bool shadeSortColumn(void) const
See if the sort column should be drawn shaded.
KListView(TQWidget *parent=0, const char *name=0)
Constructor.
void aboutToMove()
Connect to this signal if you want to do some preprocessing before a move is made, for example, to disable sorting.
kndbgstream & endl(kndbgstream &s)
virtual bool isExecuteArea(const TQPoint &point)
This function determines whether the given coordinates are within the execute area.
void setAlternateBackground(const TQColor &c)
sets the alternate background background color.
int depthToPixels(int depth)
Convert the depth of an item into its indentation in pixels.
int readListEntry(const TQString &pKey, TQStrList &list, char sep=',') const
void setDropVisualizerWidth(int w)
Set the width of the (default) drop-visualizer.
static int dndEventDelay()
void disableAutoSelection()
Disable AutoSelection.
KListViewItem(TQListView *parent)
constructors.
virtual bool event(TQEvent *)
Reimplemented to reload the alternate background in palette changes.
void slotOnItem(TQListViewItem *item)
Accessory slot for AutoSelect.
TQListViewItem * itemAtIndex(int index)
Returns the item of index within the item tree or 0 if index doesn't exist in this list view...
void executed(TQListViewItem *item)
This signal is emitted whenever the user executes an listview item.
static ButtonState keyboardMouseState()
void emitExecute(TQListViewItem *item, const TQPoint &pos, int c)
Emit signal executed.