[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdeui/widgets
From: David Arturo Palacio <dpalacio () uninorte ! edu ! co>
Date: 2010-09-03 11:41:02
Message-ID: 20100903114102.4B582AC883 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1171318 by davidp:
Move tab switching by mouse wheel scrolling from KTabWidget to KTabBar.
Skip disabled pages.
BUG: 248617
BUG: 248962
M +24 -3 ktabbar.cpp
M +2 -8 ktabwidget.cpp
--- trunk/KDE/kdelibs/kdeui/widgets/ktabbar.cpp #1171317:1171318
@@ -315,11 +315,32 @@
#ifndef QT_NO_WHEELEVENT
void KTabBar::wheelEvent( QWheelEvent *event )
{
- if ( event->orientation() == Qt::Horizontal )
+ if ( !( event->orientation() == Qt::Horizontal ) ) {
+ if ( receivers( SIGNAL(wheelDelta(int)) ) ) {
+ emit( wheelDelta( event->delta() ) );
return;
-
- emit( wheelDelta( event->delta() ) );
}
+ int lastIndex = count() - 1;
+ //Set an invalid index as base case
+ int targetIndex = -1;
+ bool forward = event->delta() < 0;
+ if ( forward && lastIndex == currentIndex() ) {
+ targetIndex = 0;
+ }
+ else if ( !forward && 0 == currentIndex() ) {
+ targetIndex = lastIndex;
+ }
+ //Will not move when targetIndex is invalid
+ setCurrentIndex( targetIndex );
+ //If it has not moved yet (targetIndex == -1), or if it moved but current tab is \
disabled + if ( targetIndex != currentIndex() || !isTabEnabled( targetIndex ) ) {
+ QTabBar::wheelEvent( event );
+ }
+ event->accept();
+ } else {
+ event->ignore();
+ }
+}
#endif
bool KTabBar::isTabReorderingEnabled() const
--- trunk/KDE/kdelibs/kdeui/widgets/ktabwidget.cpp #1171317:1171318
@@ -236,9 +236,6 @@
connect(tabBar(), SIGNAL(receivedDropEvent( int, QDropEvent * )), \
SLOT(receivedDropEvent( int, QDropEvent * ))); connect(tabBar(), SIGNAL(moveTab( \
int, int )), SLOT(moveTab( int, int ))); connect(tabBar(), SIGNAL(tabCloseRequested( \
int )), SLOT(closeRequest( int )));
-#ifndef QT_NO_WHEELEVENT
- connect(tabBar(), SIGNAL(wheelDelta( int )), SLOT(wheelDelta( int )));
-#endif
}
KTabWidget::~KTabWidget()
@@ -448,13 +445,10 @@
#ifndef QT_NO_WHEELEVENT
void KTabWidget::wheelEvent( QWheelEvent *event )
{
- if ( event->orientation() == Qt::Horizontal )
- return;
-
if ( d->isEmptyTabbarSpace( event->pos() ) )
- wheelDelta( event->delta() );
+ QCoreApplication::sendEvent( tabBar(), event );
else
- event->ignore();
+ QTabWidget::wheelEvent( event );
}
void KTabWidget::wheelDelta( int delta )
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic