//______________________________________________ bool HeaderViewData::updateState( const QPoint& position , bool hovered ) { if( !enabled() ) return false; const QHeaderView* local( qobject_cast<const QHeaderView*>( target().data() ) ); if( !local ) return false; int index( local->logicalIndexAt( position ) ); if( index < 0 ) return false; if( hovered ) { if( index != currentIndex() ) { if( currentIndex() >= 0 ) { setPreviousIndex( currentIndex() ); setCurrentIndex( -1 ); previousIndexAnimation().data()->restart(); } setCurrentIndex( index ); /* for now animation is only triggered when hovering the sorting section, since no hover effect is implemented for all other sections */ if( index == local->sortIndicatorSection() ) { currentIndexAnimation().data()->restart(); } return true; } else return false; } else if( index == currentIndex() ) { setPreviousIndex( currentIndex() ); setCurrentIndex( -1 ); previousIndexAnimation().data()->restart(); return true; } else return false; }
//______________________________________________ bool TabBarData::updateState( const QPoint& position , bool hovered ) { if( !enabled() ) return false; const QTabBar* local( qobject_cast<const QTabBar*>( target().data() ) ); if( !local ) return false; int index( local->tabAt( position ) ); if( index < 0 ) return false; if( hovered ) { if( index != currentIndex() ) { if( currentIndex() >= 0 ) { setPreviousIndex( currentIndex() ); setCurrentIndex( -1 ); previousIndexAnimation().data()->restart(); } setCurrentIndex( index ); currentIndexAnimation().data()->restart(); return true; } else return false; } else if( index == currentIndex() ) { setPreviousIndex( currentIndex() ); setCurrentIndex( -1 ); previousIndexAnimation().data()->restart(); return true; } else return false; }