summaryrefslogtreecommitdiffstats
path: root/tdeui
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-06-01 21:19:21 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-06-01 21:19:21 -0500
commitb282a7bb897aef54980dc0996a842a2253f013da (patch)
treec2ec573c8c62db883c74790da00bbbfa92255b60 /tdeui
parentf04d5a36adcd7ed3849108fca0ee9e6899eccb1c (diff)
downloadtdelibs-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.cpp2
-rw-r--r--tdeui/tdelistview.cpp78
-rw-r--r--tdeui/tdelistview.h2
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.