diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-06-01 21:19:21 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-06-01 21:19:21 -0500 |
commit | b282a7bb897aef54980dc0996a842a2253f013da (patch) | |
tree | c2ec573c8c62db883c74790da00bbbfa92255b60 /tdeui | |
parent | f04d5a36adcd7ed3849108fca0ee9e6899eccb1c (diff) | |
download | tdelibs-b282a7bb897aef54980dc0996a842a2253f013da.tar.gz tdelibs-b282a7bb897aef54980dc0996a842a2253f013da.zip |
Reduce CPU usage of triggerless device polling routine
Fix TDEListView not emitting executed signal for part of entire highlighted item area
Diffstat (limited to 'tdeui')
-rw-r--r-- | tdeui/kiconview.cpp | 2 | ||||
-rw-r--r-- | tdeui/tdelistview.cpp | 78 | ||||
-rw-r--r-- | tdeui/tdelistview.h | 2 |
3 files changed, 47 insertions, 35 deletions
diff --git a/tdeui/kiconview.cpp b/tdeui/kiconview.cpp index cd19f4030..31de273c7 100644 --- a/tdeui/kiconview.cpp +++ b/tdeui/kiconview.cpp @@ -247,7 +247,7 @@ void TDEIconView::emitExecute( TQIconViewItem *item, const TQPoint &pos ) m_pAutoSelect->stop(); - //Don�t emit executed if in SC mode and Shift or Ctrl are pressed + //Don't emit executed if in SC mode and Shift or Ctrl are pressed if( !( m_bUseSingle && ((keybstate & ShiftButton) || (keybstate & ControlButton)) ) ) { setSelected( item, false ); viewport()->unsetCursor(); diff --git a/tdeui/tdelistview.cpp b/tdeui/tdelistview.cpp index 4750a7138..b4529722b 100644 --- a/tdeui/tdelistview.cpp +++ b/tdeui/tdelistview.cpp @@ -489,36 +489,45 @@ bool TDEListView::isExecuteArea( int x ) bool TDEListView::isExecuteArea( int x, TQListViewItem* item ) { - if( allColumnsShowFocus() ) - return true; - else { - int offset = 0; - - - int width = columnWidth( 0 ); - - TQHeader* const thisHeader = header(); - const int pos = thisHeader->mapToIndex( 0 ); - - for ( int index = 0; index < pos; ++index ) - offset += columnWidth( thisHeader->mapToSection( index ) ); - - x += contentsX(); // in case of a horizontal scrollbar - - if ( item ) - { - width = treeStepSize()*( item->depth() + ( rootIsDecorated() ? 1 : 0 ) ); - width += itemMargin(); - int ca = AlignHorizontal_Mask & columnAlignment( 0 ); - if ( ca == AlignLeft || ca == AlignAuto ) { - width += item->width( fontMetrics(), this, 0 ); - if ( width > columnWidth( 0 ) ) - width = columnWidth( 0 ); + if ( allColumnsShowFocus() ) { + return true; + } + else { + int offset = 0; + int width = columnWidth( 0 ); + + TQHeader* const thisHeader = header(); + const int pos = thisHeader->mapToIndex( 0 ); + + for ( int index = 0; index < pos; ++index ) { + offset += columnWidth( thisHeader->mapToSection( index ) ); + } + + x += contentsX(); // in case of a horizontal scrollbar + + // What was this supposed to do??? + // Just use the column width, as at least one entire column is highlighted on row selection! +#if 0 + if ( item ) { + width = treeStepSize()*( item->depth() + ( rootIsDecorated() ? 1 : 0 ) ); + width += itemMargin(); + int ca = AlignHorizontal_Mask & columnAlignment( 0 ); + if ( ca == AlignLeft || ca == AlignAuto ) { + width += item->width( fontMetrics(), this, 0 ); + if ( width > columnWidth( 0 ) ) { + width = columnWidth( 0 ); + } + } + } +#endif + if ( item ) { + if (!allColumnsShowFocus()) { + offset += treeStepSize()*( item->depth() + ( rootIsDecorated() ? 1 : 0 ) ); + } + } + + return ( x > offset && x < ( offset + width ) ); } - } - - return ( x > offset && x < ( offset + width ) ); - } } void TDEListView::slotOnItem( TQListViewItem *item ) @@ -883,8 +892,9 @@ void TDEListView::contentsMouseDoubleClickEvent ( TQMouseEvent *e ) // We don't want to call the parent method because it does setOpen, // whereas we don't do it in single click mode... (David) //TQListView::contentsMouseDoubleClickEvent( e ); - if ( !e || e->button() != Qt::LeftButton ) + if ( !e || e->button() != Qt::LeftButton ) { return; + } TQPoint vp = contentsToViewport(e->pos()); TQListViewItem *item = itemAt( vp ); @@ -895,15 +905,17 @@ void TDEListView::contentsMouseDoubleClickEvent ( TQMouseEvent *e ) if( item ) { emit doubleClicked( item, e->globalPos(), col ); - if( (e->button() == Qt::LeftButton) && !d->bUseSingle ) + if( (e->button() == Qt::LeftButton) && !d->bUseSingle ) { emitExecute( item, e->globalPos(), col ); + } } } void TDEListView::slotMouseButtonClicked( int btn, TQListViewItem *item, const TQPoint &pos, int c ) { - if( (btn == Qt::LeftButton) && item ) + if( (btn == Qt::LeftButton) && item ) { emitExecute(item, pos, c); + } } void TDEListView::contentsDropEvent(TQDropEvent* e) @@ -2365,7 +2377,7 @@ void TDEListViewItem::paintCell(TQPainter *p, const TQColorGroup &cg, int column void TDEListView::selectAll( bool select ) { - if ( selectionMode() == Multi || selectionMode() == Extended ) { + if ( ((SelectionModeExt)selectionMode() == Multi) || ((SelectionModeExt)selectionMode() == Extended) ) { bool b = signalsBlocked(); blockSignals( TRUE ); bool anything = FALSE; diff --git a/tdeui/tdelistview.h b/tdeui/tdelistview.h index 995e2b678..bd0473304 100644 --- a/tdeui/tdelistview.h +++ b/tdeui/tdelistview.h @@ -37,7 +37,7 @@ class KLineEdit; * There is a new signal executed(). It gets connected to either * TQListView::clicked() or TQListView::doubleClicked() depending on the KDE * wide Single Click/Double Click settings. It is strongly recommended that - * you use this signal instead of the above mentioned. This way you don´t + * you use this signal instead of the above mentioned. This way you don't * need to care about the current settings. * If you want to get informed when the user selects something connect to the * TQListView::selectionChanged() signal. |