//________________________________________________________ bool Configuration::operator == (const Configuration& other ) const { return titleAlignment() == other.titleAlignment() && centerTitleOnFullWidth() == other.centerTitleOnFullWidth() && buttonSize() == other.buttonSize() && frameBorder() == other.frameBorder() && blendColor() == other.blendColor() && sizeGripMode() == other.sizeGripMode() && backgroundOpacity() == other.backgroundOpacity()&& separatorMode() == other.separatorMode() && drawTitleOutline() == other.drawTitleOutline() && hideTitleBar() == other.hideTitleBar() && useDropShadows() == other.useDropShadows() && useOxygenShadows() == other.useOxygenShadows() && closeFromMenuButton() == other.closeFromMenuButton() && transparencyEnabled() == other.transparencyEnabled() && useNarrowButtonSpacing() == other.useNarrowButtonSpacing() && useExtendedWindowBorder() == other.useExtendedWindowBorder() && opacityFromStyle() == other.opacityFromStyle() && backgroundOpacity() == other.backgroundOpacity() && animationsEnabled() == other.animationsEnabled() && buttonAnimationsEnabled() == other.buttonAnimationsEnabled() && titleAnimationsEnabled() == other.titleAnimationsEnabled() && shadowAnimationsEnabled() == other.shadowAnimationsEnabled() && tabAnimationsEnabled() == other.tabAnimationsEnabled() && buttonAnimationsDuration() == other.buttonAnimationsDuration() && titleAnimationsDuration() == other.titleAnimationsDuration() && shadowAnimationsDuration() == other.shadowAnimationsDuration() && tabAnimationsDuration() == other.tabAnimationsDuration(); }
//_______________________________________________ void AnimationConfigWidget::updateChanged( void ) { bool modified( false ); if( animationsEnabled()->isChecked() != StyleConfigData::animationsEnabled() ) modified = true; else if( _genericAnimations->enabled() != StyleConfigData::genericAnimationsEnabled() ) modified = true; else if( _genericAnimations->duration() != StyleConfigData::genericAnimationsDuration() ) modified = true; else if( _toolBarAnimations->duration() != StyleConfigData::genericAnimationsDuration() ) modified = true; else if( _toolBarAnimations->followMouseDuration() != StyleConfigData::toolBarAnimationsDuration() ) modified = true; else if( StyleConfigData::toolBarAnimationType() == StyleConfigData::TB_NONE && _toolBarAnimations->enabled() ) modified = true; else if( StyleConfigData::toolBarAnimationType() == StyleConfigData::TB_FOLLOW_MOUSE && !( _toolBarAnimations->type() == 1 && _toolBarAnimations->enabled() ) ) modified = true; else if( StyleConfigData::toolBarAnimationType() == StyleConfigData::TB_FADE && !( _toolBarAnimations->type() == 0 && _toolBarAnimations->enabled() )) modified = true; else if( _menuBarAnimations->duration() != StyleConfigData::menuBarAnimationsDuration() ) modified = true; else if( _menuBarAnimations->followMouseDuration() != StyleConfigData::menuBarFollowMouseAnimationsDuration() ) modified = true; else if( StyleConfigData::menuBarAnimationType() == StyleConfigData::MB_NONE && _menuBarAnimations->enabled() ) modified = true; else if( StyleConfigData::menuBarAnimationType() == StyleConfigData::MB_FOLLOW_MOUSE && !( _menuBarAnimations->type() == 1 && _menuBarAnimations->enabled() ) ) modified = true; else if( StyleConfigData::menuBarAnimationType() == StyleConfigData::MB_FADE && !( _menuBarAnimations->type() == 0 && _menuBarAnimations->enabled() ) ) modified = true; else if( _menuAnimations->duration() != StyleConfigData::menuAnimationsDuration() ) modified = true; else if( _menuAnimations->followMouseDuration() != StyleConfigData::menuFollowMouseAnimationsDuration() ) modified = true; else if( StyleConfigData::menuAnimationType() == StyleConfigData::ME_NONE && _menuAnimations->enabled() ) modified = true; else if( StyleConfigData::menuAnimationType() == StyleConfigData::ME_FOLLOW_MOUSE && !( _menuAnimations->type() == 1 && _menuAnimations->enabled() ) ) modified = true; else if( StyleConfigData::menuAnimationType() == StyleConfigData::ME_FADE && !( _menuAnimations->type() == 0 && _menuAnimations->enabled() ) ) modified = true; else if( _progressBarAnimations->enabled() != StyleConfigData::progressBarAnimationsEnabled() ) modified = true; else if( _progressBarAnimations->duration() != StyleConfigData::progressBarAnimationsDuration() ) modified = true; else if( _progressBarBusyAnimations->enabled() != StyleConfigData::progressBarAnimated() ) modified = true; else if( _progressBarBusyAnimations->duration() != StyleConfigData::progressBarBusyStepDuration() ) modified = true; else if( _stackedWidgetAnimations->enabled() != StyleConfigData::stackedWidgetTransitionsEnabled() ) modified = true; else if( _stackedWidgetAnimations->duration() != StyleConfigData::stackedWidgetTransitionsDuration() ) modified = true; else if( _labelAnimations->enabled() != StyleConfigData::labelTransitionsEnabled() ) modified = true; else if( _labelAnimations->duration() != StyleConfigData::labelTransitionsDuration() ) modified = true; else if( _lineEditAnimations->enabled() != StyleConfigData::lineEditTransitionsEnabled() ) modified = true; else if( _lineEditAnimations->duration() != StyleConfigData::lineEditTransitionsDuration() ) modified = true; else if( _comboBoxAnimations->enabled() != StyleConfigData::comboBoxTransitionsEnabled() ) modified = true; else if( _comboBoxAnimations->duration() != StyleConfigData::comboBoxTransitionsDuration() ) modified = true; setChanged( modified ); }
//_______________________________________________ void AnimationConfigWidget::save( void ) { StyleConfigData::setAnimationsEnabled( animationsEnabled()->isChecked() ); StyleConfigData::setGenericAnimationsEnabled( _genericAnimations->enabled() ); StyleConfigData::setGenericAnimationsDuration( _genericAnimations->duration() ); StyleConfigData::setToolBarAnimationsDuration( _toolBarAnimations->followMouseDuration() ); if( !_toolBarAnimations->enabled() ) StyleConfigData::setToolBarAnimationType( StyleConfigData::TB_NONE ); else if( _toolBarAnimations->type() == 1 ) StyleConfigData::setToolBarAnimationType( StyleConfigData::TB_FOLLOW_MOUSE ); else StyleConfigData::setToolBarAnimationType( StyleConfigData::TB_FADE ); StyleConfigData::setMenuBarAnimationsDuration( _menuBarAnimations->duration() ); StyleConfigData::setMenuBarFollowMouseAnimationsDuration( _menuBarAnimations->followMouseDuration() ); if( !_menuBarAnimations->enabled() ) StyleConfigData::setMenuBarAnimationType( StyleConfigData::MB_NONE ); else if( _menuBarAnimations->type() == 1 ) StyleConfigData::setMenuBarAnimationType( StyleConfigData::MB_FOLLOW_MOUSE ); else StyleConfigData::setMenuBarAnimationType( StyleConfigData::MB_FADE ); StyleConfigData::setMenuAnimationsDuration( _menuAnimations->duration() ); StyleConfigData::setMenuFollowMouseAnimationsDuration( _menuAnimations->followMouseDuration() ); if( !_menuAnimations->enabled() ) StyleConfigData::setMenuAnimationType( StyleConfigData::ME_NONE ); else if( _menuAnimations->type() == 1 ) StyleConfigData::setMenuAnimationType( StyleConfigData::ME_FOLLOW_MOUSE ); else StyleConfigData::setMenuAnimationType( StyleConfigData::ME_FADE ); StyleConfigData::setProgressBarAnimationsEnabled( _progressBarAnimations->enabled() ); StyleConfigData::setProgressBarAnimationsDuration( _progressBarAnimations->duration() ); StyleConfigData::setProgressBarAnimated( _progressBarBusyAnimations->enabled() ); StyleConfigData::setProgressBarBusyStepDuration( _progressBarBusyAnimations->duration() ); StyleConfigData::setStackedWidgetTransitionsEnabled( _stackedWidgetAnimations->enabled() ); StyleConfigData::setStackedWidgetTransitionsDuration( _stackedWidgetAnimations->duration() ); StyleConfigData::setLabelTransitionsEnabled( _labelAnimations->enabled() ); StyleConfigData::setLabelTransitionsDuration( _labelAnimations->duration() ); StyleConfigData::setLineEditTransitionsEnabled( _lineEditAnimations->enabled() ); StyleConfigData::setLineEditTransitionsDuration( _lineEditAnimations->duration() ); StyleConfigData::setComboBoxTransitionsEnabled( _comboBoxAnimations->enabled() ); StyleConfigData::setComboBoxTransitionsDuration( _comboBoxAnimations->duration() ); setChanged( false ); }
//__________________________________________________ void Configuration::write( KConfigGroup& group ) const { Configuration defaultConfiguration; if( titleAlignment() != defaultConfiguration.titleAlignment() ) group.writeEntry( OxygenConfig::TITLE_ALIGNMENT, titleAlignmentName( false ) ); if( centerTitleOnFullWidth() != defaultConfiguration.centerTitleOnFullWidth() ) group.writeEntry( OxygenConfig::CENTER_TITLE_ON_FULL_WIDTH, centerTitleOnFullWidth() ); if( buttonSize() != defaultConfiguration.buttonSize() ) group.writeEntry( OxygenConfig::BUTTON_SIZE, buttonSizeName( false ) ); if( blendColor() != defaultConfiguration.blendColor() ) group.writeEntry( OxygenConfig::BLEND_COLOR, blendColorName( false ) ); if( frameBorder() != defaultConfiguration.frameBorder() ) group.writeEntry( OxygenConfig::FRAME_BORDER, frameBorderName( false ) ); if( sizeGripMode() != defaultConfiguration.sizeGripMode() ) group.writeEntry( OxygenConfig::SIZE_GRIP_MODE, sizeGripModeName( false ) ); if( backgroundOpacity() != defaultConfiguration.backgroundOpacity() ) group.writeEntry( OxygenConfig::BACKGROUND_OPACITY, backgroundOpacity() ); if( opacityFromStyle() != defaultConfiguration.opacityFromStyle() ) group.writeEntry( OxygenConfig::OPACITY_FROM_STYLE, opacityFromStyle() ); if( separatorMode() != defaultConfiguration.separatorMode() ) { group.writeEntry( OxygenConfig::DRAW_SEPARATOR, separatorMode() != SeparatorNever ); group.writeEntry( OxygenConfig::SEPARATOR_ACTIVE_ONLY, separatorMode() == SeparatorActive ); } if( drawTitleOutline() != defaultConfiguration.drawTitleOutline() ) group.writeEntry( OxygenConfig::DRAW_TITLE_OUTLINE, drawTitleOutline() ); if( hideTitleBar() != defaultConfiguration.hideTitleBar() ) group.writeEntry( OxygenConfig::HIDE_TITLEBAR, hideTitleBar() ); if( useDropShadows() != defaultConfiguration.useDropShadows() ) group.writeEntry( OxygenConfig::USE_DROP_SHADOWS, useDropShadows() ); if( useOxygenShadows() != defaultConfiguration.useOxygenShadows() ) group.writeEntry( OxygenConfig::USE_OXYGEN_SHADOWS, useOxygenShadows() ); if( closeFromMenuButton() != defaultConfiguration.closeFromMenuButton() ) group.writeEntry( OxygenConfig::CLOSE_FROM_MENU_BUTTON, closeFromMenuButton() ); if( useNarrowButtonSpacing() != defaultConfiguration.useNarrowButtonSpacing() ) group.writeEntry( OxygenConfig::NARROW_BUTTON_SPACING, useNarrowButtonSpacing() ); if( useExtendedWindowBorder() != defaultConfiguration.useExtendedWindowBorder() ) group.writeEntry( OxygenConfig::EXTENDED_WINDOW_BORDERS, useExtendedWindowBorder() ); // animations if( animationsEnabled() != defaultConfiguration.animationsEnabled() ) group.writeEntry( OxygenConfig::ANIMATIONS_ENABLED, animationsEnabled() ); if( buttonAnimationsEnabled() != defaultConfiguration.buttonAnimationsEnabled() ) group.writeEntry( OxygenConfig::BUTTON_ANIMATIONS_ENABLED, buttonAnimationsEnabled() ); if( titleAnimationsEnabled() != defaultConfiguration.titleAnimationsEnabled() ) group.writeEntry( OxygenConfig::TITLE_ANIMATIONS_ENABLED, titleAnimationsEnabled() ); if( shadowAnimationsEnabled() != defaultConfiguration.shadowAnimationsEnabled() ) group.writeEntry( OxygenConfig::SHADOW_ANIMATIONS_ENABLED, shadowAnimationsEnabled() ); if( tabAnimationsEnabled() != defaultConfiguration.tabAnimationsEnabled() ) group.writeEntry( OxygenConfig::TAB_ANIMATIONS_ENABLED, tabAnimationsEnabled() ); // animations duration if( buttonAnimationsDuration() != defaultConfiguration.buttonAnimationsDuration() ) group.writeEntry( OxygenConfig::BUTTON_ANIMATIONS_DURATION, buttonAnimationsDuration() ); if( titleAnimationsDuration() != defaultConfiguration.titleAnimationsDuration() ) group.writeEntry( OxygenConfig::TITLE_ANIMATIONS_DURATION, titleAnimationsDuration() ); if( shadowAnimationsDuration() != defaultConfiguration.shadowAnimationsDuration() ) group.writeEntry( OxygenConfig::SHADOW_ANIMATIONS_DURATION, shadowAnimationsDuration() ); if( tabAnimationsDuration() != defaultConfiguration.tabAnimationsDuration() ) group.writeEntry( OxygenConfig::TAB_ANIMATIONS_DURATION, tabAnimationsDuration() ); }
//____________________________________________________________________________ void ClientGroupItemDataList::animate( AnimationTypes type, int target ) { // store animation type animationType_ = type; if( type == AnimationNone ) { if( isAnimationRunning() ) animation().data()->stop(); targetItem_ = NoItem; draggedItem_ = NoItem; targetRect_ = QRect(); } else if( type & (AnimationEnter|AnimationMove ) ) { // store dragged item bool animate( true ); if( (type&AnimationSameTarget) && draggedItem_ == NoItem ) { animate = false; draggedItem_ = target; } else if( (type&AnimationMove) && targetItem_ == target ) return; // check animation state if( isAnimationRunning() ) animation().data()->stop(); targetItem_ = target; targetRect_ = QRect(); QRect titleRect( _client.titleRect() ); int left( titleRect.left() ); int width = (type&AnimationSameTarget) ? titleRect.width()/count(): titleRect.width()/(count()+1); if( (type&AnimationSameTarget) && draggedItem_ < target ) { target++; if( target >= count() ) target = NoItem; } // loop over items and update bounding rects for( int index = 0; index < count(); index++ ) { ClientGroupItemData& item( ClientGroupItemDataList::operator[](index) ); if( index == target ) { targetRect_ = item._refBoundingRect; targetRect_.setLeft( left ); targetRect_.setWidth( width ); left+=width; } item._startBoundingRect = item._boundingRect; item._endBoundingRect = item._refBoundingRect; item._endBoundingRect.setLeft( left ); if( (type&AnimationSameTarget) && index == draggedItem_ ) { item._endBoundingRect.setWidth( 0 ); } else { item._endBoundingRect.setWidth( width ); left+=width; } } if( targetRect_.isNull() ) { targetRect_ = back()._refBoundingRect; targetRect_.setLeft( left ); targetRect_.setWidth( width ); } if( animate ) { if( animationsEnabled() ) animation().data()->start(); else { // change progress to maximum progress_ = 1; updateBoundingRects(); } } else { for( int index = 0; index < count(); index++ ) { ClientGroupItemData& item( ClientGroupItemDataList::operator[](index) ); item._boundingRect = item._endBoundingRect; } updateButtons( true ); } } else if( type & AnimationLeave ) { // stop animation state if( isAnimationRunning() ) animation().data()->stop(); // reset target targetItem_ = NoItem; targetRect_ = QRect(); if( type & AnimationSameTarget ) { // store dragged item draggedItem_ = target; // do nothing if only one item if( count() <= 1 ) return; QRect titleRect( _client.titleRect() ); int left( titleRect.left() ); int width = titleRect.width()/(count()-1); // loop over items and update bounding rects for( int index = 0; index < count(); index++ ) { ClientGroupItemData& item( ClientGroupItemDataList::operator[](index) ); item._startBoundingRect = item._boundingRect; item._endBoundingRect = item._refBoundingRect; item._endBoundingRect.setLeft( left ); if( index != target ) { if( count() <= 2 ) { item._endBoundingRect = _client.defaultTitleRect( _client.tabId(index) == _client.currentTabId() ); } else { item._endBoundingRect.setWidth( width ); left+=width; } } else { item._endBoundingRect.setWidth( 0 ); } } } else { // loop over items and update bounding rects for( int index = 0; index < count(); index++ ) { ClientGroupItemData& item( ClientGroupItemDataList::operator[](index) ); item._startBoundingRect = item._boundingRect; item._endBoundingRect = item._refBoundingRect; } } if( animationsEnabled() ) animation().data()->start(); else { // change progress to maximum progress_ = 1; updateBoundingRects(); } } return; }
//_______________________________________________ void AnimationConfigWidget::load( void ) { animationsEnabled()->setChecked( StyleConfigData::animationsEnabled() ); _genericAnimations->setEnabled( StyleConfigData::genericAnimationsEnabled() ); _genericAnimations->setDuration( StyleConfigData::genericAnimationsDuration() ); _toolBarAnimations->setEnabled( StyleConfigData::toolBarAnimationType() != StyleConfigData::TB_NONE ); _toolBarAnimations->setDuration( StyleConfigData::genericAnimationsDuration() ); _toolBarAnimations->setFollowMouseDuration( StyleConfigData::toolBarAnimationsDuration() ); switch( StyleConfigData::toolBarAnimationType() ) { case StyleConfigData::TB_FOLLOW_MOUSE: _toolBarAnimations->setType( 1 ); break; case StyleConfigData::TB_FADE: default: _toolBarAnimations->setType( 0 ); break; } _menuBarAnimations->setEnabled( StyleConfigData::menuBarAnimationType() != StyleConfigData::MB_NONE ); _menuBarAnimations->setDuration( StyleConfigData::menuBarAnimationsDuration() ); _menuBarAnimations->setFollowMouseDuration( StyleConfigData::menuBarFollowMouseAnimationsDuration() ); switch( StyleConfigData::menuBarAnimationType() ) { case StyleConfigData::MB_FOLLOW_MOUSE: _menuBarAnimations->setType( 1 ); break; case StyleConfigData::MB_FADE: default: _menuBarAnimations->setType( 0 ); break; } _menuAnimations->setEnabled( StyleConfigData::menuAnimationType() != StyleConfigData::ME_NONE ); _menuAnimations->setDuration( StyleConfigData::menuAnimationsDuration() ); _menuAnimations->setFollowMouseDuration( StyleConfigData::menuFollowMouseAnimationsDuration() ); switch( StyleConfigData::menuAnimationType() ) { case StyleConfigData::ME_FOLLOW_MOUSE: _menuAnimations->setType( 1 ); break; case StyleConfigData::ME_FADE: default: _menuAnimations->setType( 0 ); break; } _progressBarAnimations->setEnabled( StyleConfigData::progressBarAnimationsEnabled() ); _progressBarAnimations->setDuration( StyleConfigData::progressBarAnimationsDuration() ); _progressBarBusyAnimations->setEnabled( StyleConfigData::progressBarAnimated() ); _progressBarBusyAnimations->setDuration( StyleConfigData::progressBarBusyStepDuration() ); _stackedWidgetAnimations->setEnabled( StyleConfigData::stackedWidgetTransitionsEnabled() ); _stackedWidgetAnimations->setDuration( StyleConfigData::stackedWidgetTransitionsDuration() ); _labelAnimations->setEnabled( StyleConfigData::labelTransitionsEnabled() ); _labelAnimations->setDuration( StyleConfigData::labelTransitionsDuration() ); _lineEditAnimations->setEnabled( StyleConfigData::lineEditTransitionsEnabled() ); _lineEditAnimations->setDuration( StyleConfigData::lineEditTransitionsDuration() ); _comboBoxAnimations->setEnabled( StyleConfigData::comboBoxTransitionsEnabled() ); _comboBoxAnimations->setDuration( StyleConfigData::comboBoxTransitionsDuration() ); }