diff --git a/clients/oxygen/config/oxygenconfig.cpp b/clients/oxygen/config/oxygenconfig.cpp index a570025e0a..ee4abd7430 100644 --- a/clients/oxygen/config/oxygenconfig.cpp +++ b/clients/oxygen/config/oxygenconfig.cpp @@ -117,8 +117,7 @@ namespace Oxygen else if( ui->ui.separatorMode->currentIndex() != configuration.separatorMode() ) modified = true; else if( ui->ui.titleOutline->isChecked() != configuration.drawTitleOutline() ) modified = true; - else if( ui->ui.useAnimations->isChecked() != configuration.useAnimations() ) modified = true; - else if( ui->ui.animateTitleChange->isChecked() != configuration.animateTitleChange() ) modified = true; + else if( ui->ui.animationsEnabled->isChecked() != configuration.animationsEnabled() ) modified = true; else if( ui->ui.narrowButtonSpacing->isChecked() != configuration.useNarrowButtonSpacing() ) modified = true; // shadow configurations @@ -152,8 +151,7 @@ namespace Oxygen configuration.setDrawTitleOutline( ui->ui.titleOutline->isChecked() ); configuration.setUseDropShadows( ui->shadowConfigurations[1]->isChecked() ); configuration.setUseOxygenShadows( ui->shadowConfigurations[0]->isChecked() ); - configuration.setUseAnimations( ui->ui.useAnimations->isChecked() ); - configuration.setAnimateTitleChange( ui->ui.animateTitleChange->isChecked() ); + configuration.setAnimationsEnabled( ui->ui.animationsEnabled->isChecked() ); configuration.setUseNarrowButtonSpacing( ui->ui.narrowButtonSpacing->isChecked() ); // save standard configuration @@ -229,8 +227,7 @@ namespace Oxygen ui->ui.titleOutline->setChecked( configuration.drawTitleOutline() ); ui->shadowConfigurations[0]->setChecked( configuration.useOxygenShadows() ); ui->shadowConfigurations[1]->setChecked( configuration.useDropShadows() ); - ui->ui.useAnimations->setChecked( configuration.useAnimations() ); - ui->ui.animateTitleChange->setChecked( configuration.animateTitleChange() ); + ui->ui.animationsEnabled->setChecked( configuration.animationsEnabled() ); ui->ui.narrowButtonSpacing->setChecked( configuration.useNarrowButtonSpacing() ); } diff --git a/clients/oxygen/config/oxygenconfigurationui.cpp b/clients/oxygen/config/oxygenconfigurationui.cpp index 3234b7b22b..4fa813da17 100644 --- a/clients/oxygen/config/oxygenconfigurationui.cpp +++ b/clients/oxygen/config/oxygenconfigurationui.cpp @@ -104,14 +104,12 @@ namespace Oxygen connect( ui.blendColor, SIGNAL(currentIndexChanged(int)), SIGNAL(changed()) ); connect( ui.sizeGripMode, SIGNAL(currentIndexChanged(int)), SIGNAL(changed()) ); - connect( ui.useAnimations, SIGNAL(clicked()), SIGNAL(changed()) ); - connect( ui.animateTitleChange, SIGNAL(clicked()), SIGNAL(changed()) ); + connect( ui.animationsEnabled, SIGNAL(clicked()), SIGNAL(changed()) ); connect( ui.narrowButtonSpacing, SIGNAL(clicked()), SIGNAL(changed()) ); connect( ui.separatorMode, SIGNAL(currentIndexChanged(int)), SIGNAL(changed()) ); connect( ui.titleOutline, SIGNAL(clicked()), SIGNAL(changed()) ); connect( ui.exceptions, SIGNAL(changed()), SIGNAL(changed()) ); - connect( ui.useAnimations, SIGNAL( toggled( bool ) ), ui.animateTitleChange, SLOT( setEnabled( bool ) ) ); connect( ui._expertModeButton, SIGNAL( pressed( void ) ), SLOT( toggleExpertModeInternal( void ) ) ); ui._expertModeButton->setIcon( KIcon("configure") ); @@ -137,7 +135,6 @@ namespace Oxygen // update button text ui._expertModeButton->setText( _expertMode ? i18n( "Hide Advanced Configuration Options" ):i18n( "Show Advanced Configuration Options" ) ); - ui.animateTitleChange->setVisible( _expertMode ); ui.narrowButtonSpacing->setVisible( _expertMode ); // size grip mode diff --git a/clients/oxygen/config/ui/oxygenconfigurationui.ui b/clients/oxygen/config/ui/oxygenconfigurationui.ui index 3a08405f4c..50436b1eef 100644 --- a/clients/oxygen/config/ui/oxygenconfigurationui.ui +++ b/clients/oxygen/config/ui/oxygenconfigurationui.ui @@ -92,23 +92,13 @@ - + Enable animations - - - - false - - - Enable title transition animations - - - - + Qt::Vertical diff --git a/clients/oxygen/oxygenbutton.cpp b/clients/oxygen/oxygenbutton.cpp index 14fa7ed9e7..f382ccb8ff 100644 --- a/clients/oxygen/oxygenbutton.cpp +++ b/clients/oxygen/oxygenbutton.cpp @@ -95,8 +95,8 @@ namespace Oxygen { return (!_forceInactive) && _client.isActive(); } //___________________________________________________ - bool Button::animateButtonHover( void ) const - { return _client.useAnimations(); } + bool Button::buttonAnimationsEnabled( void ) const + { return _client.animationsEnabled() && _client.configuration().buttonAnimationsEnabled(); } //___________________________________________________ QSize Button::sizeHint() const @@ -107,7 +107,7 @@ namespace Oxygen //___________________________________________________ void Button::reset( unsigned long ) - { _glowAnimation->setDuration( _client.configuration().animationsDuration() ); } + { _glowAnimation->setDuration( _client.configuration().buttonAnimationsDuration() ); } //___________________________________________________ @@ -116,7 +116,7 @@ namespace Oxygen KCommonDecorationButton::enterEvent( event ); if( _status != Oxygen::Pressed ) _status = Oxygen::Hovered; - if( animateButtonHover() ) + if( buttonAnimationsEnabled() ) { _glowAnimation->setDirection( Animation::Forward ); @@ -132,7 +132,7 @@ namespace Oxygen KCommonDecorationButton::leaveEvent( event ); - if( _status == Oxygen::Hovered && animateButtonHover() ) + if( _status == Oxygen::Hovered && buttonAnimationsEnabled() ) { _glowAnimation->setDirection( Animation::Backward ); if( !isAnimated() ) _glowAnimation->start(); diff --git a/clients/oxygen/oxygenbutton.h b/clients/oxygen/oxygenbutton.h index ca8bbed523..e937896347 100644 --- a/clients/oxygen/oxygenbutton.h +++ b/clients/oxygen/oxygenbutton.h @@ -149,7 +149,7 @@ namespace Oxygen bool isActive( void ) const; //! true if buttons hover are animated - bool animateButtonHover( void ) const; + bool buttonAnimationsEnabled( void ) const; //!@name button properties //@{ diff --git a/clients/oxygen/oxygenclient.cpp b/clients/oxygen/oxygenclient.cpp index 8cd3be9096..3c06d8deeb 100644 --- a/clients/oxygen/oxygenclient.cpp +++ b/clients/oxygen/oxygenclient.cpp @@ -142,11 +142,15 @@ namespace Oxygen _configuration = _factory->configuration( *this ); - // animations duration - _glowAnimation->setDuration( configuration().animationsDuration() ); - _titleAnimationData->setDuration( configuration().animationsDuration() ); - _itemData.animation().data()->setDuration( configuration().animationsDuration() ); - _itemData.setAnimationsEnabled( useAnimations() ); + // glow animations + _glowAnimation->setDuration( configuration().shadowAnimationsDuration() ); + + // title transitions + _titleAnimationData->setDuration( configuration().titleAnimationsDuration() ); + + // tabs + _itemData.setAnimationsEnabled( animationsEnabled() && configuration().tabAnimationsEnabled() ); + _itemData.animation().data()->setDuration( configuration().tabAnimationsDuration() ); // reset title transitions _titleAnimationData->reset(); @@ -1193,7 +1197,7 @@ namespace Oxygen _itemData.setDirty( true ); // reset animation - if( animateActiveChange() ) + if( shadowAnimationsEnabled() ) { _glowAnimation->setDirection( isActive() ? Animation::Forward : Animation::Backward ); if(!glowIsAnimated()) { _glowAnimation->start(); } @@ -1230,7 +1234,7 @@ namespace Oxygen KCommonDecorationUnstable::captionChange(); _itemData.setDirty( true ); - if( animateTitleChange() ) + if( titleAnimationsEnabled() ) { _titleAnimationData->setDirty( true ); } } diff --git a/clients/oxygen/oxygenclient.h b/clients/oxygen/oxygenclient.h index 163115efae..42b91c4e5f 100644 --- a/clients/oxygen/oxygenclient.h +++ b/clients/oxygen/oxygenclient.h @@ -79,10 +79,9 @@ namespace Oxygen virtual bool isMaximized( void ) const { return maximizeMode()==MaximizeFull && !options()->moveResizeMaximizedWindows(); } - //! true if animations are used - bool useAnimations( void ) const - { return configuration().useAnimations(); } + bool animationsEnabled( void ) const + { return configuration().animationsEnabled(); } //! true if glow is animated bool glowIsAnimated( void ) const @@ -341,15 +340,15 @@ namespace Oxygen QPixmap itemDragPixmap( int, const QRect& ); //! return true when activity change are animated - bool animateActiveChange( void ) const - { return ( useAnimations() && !isPreview() ); } + bool shadowAnimationsEnabled( void ) const + { return ( animationsEnabled() && configuration().shadowAnimationsEnabled() && !isPreview() ); } //! return true when activity change are animated - bool animateTitleChange( void ) const + bool titleAnimationsEnabled( void ) const { return - useAnimations() && - configuration().animateTitleChange() && + animationsEnabled() && + configuration().titleAnimationsEnabled() && !configuration().drawTitleOutline() && !hideTitleBar() && !isPreview(); diff --git a/clients/oxygen/oxygenconfiguration.cpp b/clients/oxygen/oxygenconfiguration.cpp index 7515fc639c..c7659062ba 100644 --- a/clients/oxygen/oxygenconfiguration.cpp +++ b/clients/oxygen/oxygenconfiguration.cpp @@ -47,10 +47,16 @@ namespace Oxygen _hideTitleBar( false ), _useDropShadows( true ), _useOxygenShadows( true ), - _useAnimations( true ), - _animateTitleChange( true ), - _animationsDuration( 150 ), - _useNarrowButtonSpacing( false ) + _useNarrowButtonSpacing( false ), + _animationsEnabled( true ), + _buttonAnimationsEnabled( true ), + _titleAnimationsEnabled( true ), + _shadowAnimationsEnabled( true ), + _tabAnimationsEnabled( true ), + _buttonAnimationsDuration( 150 ), + _titleAnimationsDuration( 150 ), + _shadowAnimationsDuration( 150 ), + _tabAnimationsDuration( 150 ) {} //__________________________________________________ @@ -121,26 +127,49 @@ namespace Oxygen OxygenConfig::USE_OXYGEN_SHADOWS, defaultConfiguration.useOxygenShadows() ) ); - // animations - setUseAnimations( group.readEntry( - OxygenConfig::USE_ANIMATIONS, - defaultConfiguration.useAnimations() ) ); - - // animations - setAnimateTitleChange( group.readEntry( - OxygenConfig::ANIMATE_TITLE_CHANGE, - defaultConfiguration.animateTitleChange() ) ); - - // animations - setAnimationsDuration( group.readEntry( - OxygenConfig::ANIMATIONS_DURATION, - defaultConfiguration.animationsDuration() ) ); - // buttonSpacing setUseNarrowButtonSpacing( group.readEntry( OxygenConfig::NARROW_BUTTON_SPACING, defaultConfiguration.useNarrowButtonSpacing() ) ); + // animations + setAnimationsEnabled( group.readEntry( + OxygenConfig::ANIMATIONS_ENABLED, + defaultConfiguration.animationsEnabled() ) ); + + setButtonAnimationsEnabled( group.readEntry( + OxygenConfig::BUTTON_ANIMATIONS_ENABLED, + defaultConfiguration.buttonAnimationsEnabled() ) ); + + setTitleAnimationsEnabled( group.readEntry( + OxygenConfig::TITLE_ANIMATIONS_ENABLED, + defaultConfiguration.titleAnimationsEnabled() ) ); + + setShadowAnimationsEnabled( group.readEntry( + OxygenConfig::SHADOW_ANIMATIONS_ENABLED, + defaultConfiguration.shadowAnimationsEnabled() ) ); + + setTabAnimationsEnabled( group.readEntry( + OxygenConfig::TAB_ANIMATIONS_ENABLED, + defaultConfiguration.tabAnimationsEnabled() ) ); + + // animations duration + setButtonAnimationsDuration( group.readEntry( + OxygenConfig::BUTTON_ANIMATIONS_DURATION, + defaultConfiguration.buttonAnimationsDuration() ) ); + + setTitleAnimationsDuration( group.readEntry( + OxygenConfig::TITLE_ANIMATIONS_DURATION, + defaultConfiguration.titleAnimationsDuration() ) ); + + setShadowAnimationsDuration( group.readEntry( + OxygenConfig::SHADOW_ANIMATIONS_DURATION, + defaultConfiguration.shadowAnimationsDuration() ) ); + + setTabAnimationsDuration( group.readEntry( + OxygenConfig::TAB_ANIMATIONS_DURATION, + defaultConfiguration.tabAnimationsDuration() ) ); + } //__________________________________________________ @@ -179,11 +208,21 @@ namespace Oxygen 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( useAnimations() != defaultConfiguration.useAnimations() ) group.writeEntry( OxygenConfig::USE_ANIMATIONS, useAnimations() ); - if( animateTitleChange() != defaultConfiguration.animateTitleChange() ) group.writeEntry( OxygenConfig::ANIMATE_TITLE_CHANGE, animateTitleChange() ); - if( animationsDuration() != defaultConfiguration.animationsDuration() ) group.writeEntry( OxygenConfig::ANIMATIONS_DURATION, animationsDuration() ); if( useNarrowButtonSpacing() != defaultConfiguration.useNarrowButtonSpacing() ) group.writeEntry( OxygenConfig::NARROW_BUTTON_SPACING, useNarrowButtonSpacing() ); + // 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() ); + } //__________________________________________________ @@ -362,10 +401,16 @@ namespace Oxygen hideTitleBar() == other.hideTitleBar() && useDropShadows() == other.useDropShadows() && useOxygenShadows() == other.useOxygenShadows() && - useAnimations() == other.useAnimations() && - animateTitleChange() == other.animateTitleChange() && - animationsDuration() == other.animationsDuration() && - useNarrowButtonSpacing() == other.useNarrowButtonSpacing(); + useNarrowButtonSpacing() == other.useNarrowButtonSpacing() && + 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(); } diff --git a/clients/oxygen/oxygenconfiguration.h b/clients/oxygen/oxygenconfiguration.h index 20485e16b3..231d26ac3f 100644 --- a/clients/oxygen/oxygenconfiguration.h +++ b/clients/oxygen/oxygenconfiguration.h @@ -42,9 +42,25 @@ namespace OxygenConfig static const QString BLEND_COLOR = "BlendColor"; static const QString SIZE_GRIP_MODE = "SizeGripMode"; static const QString HIDE_TITLEBAR = "HideTitleBar"; - static const QString USE_ANIMATIONS = "UseAnimations"; - static const QString ANIMATE_TITLE_CHANGE = "AnimateTitleChange"; + static const QString ANIMATIONS_ENABLED = "AnimationsEnabled"; static const QString NARROW_BUTTON_SPACING = "UseNarrowButtonSpacing"; + + //!@name animation flags + //@{ + static const QString BUTTON_ANIMATIONS_ENABLED = "ButtonAnimationsEnabled"; + static const QString TITLE_ANIMATIONS_ENABLED = "TitleAnimationsEnabled"; + static const QString SHADOW_ANIMATIONS_ENABLED = "ShadowAnimationsEnabled"; + static const QString TAB_ANIMATIONS_ENABLED = "TabAnimationsEnabled"; + //@} + + //!@name animations duration + //@{ + static const QString BUTTON_ANIMATIONS_DURATION = "ButtonAnimationsDuration"; + static const QString TITLE_ANIMATIONS_DURATION = "TitleAnimationsDuration"; + static const QString SHADOW_ANIMATIONS_DURATION = "ShadowAnimationsDuration"; + static const QString TAB_ANIMATIONS_DURATION = "TabAnimationsDuration"; + //@} + } namespace Oxygen @@ -284,29 +300,82 @@ namespace Oxygen virtual void setUseOxygenShadows( bool value ) { _useOxygenShadows = value; } - //! animations - virtual bool useAnimations( void ) const - { return _useAnimations; } + //!@name animations + //@{ - //! animations - virtual void setUseAnimations( bool value ) - { _useAnimations = value; } + //! global flag + virtual bool animationsEnabled( void ) const + { return _animationsEnabled; } - //! animations - virtual bool animateTitleChange( void ) const - { return _animateTitleChange; } + //! global flag + virtual void setAnimationsEnabled( bool value ) + { _animationsEnabled = value; } - //! animations - virtual void setAnimateTitleChange( bool value ) - { _animateTitleChange = value; } + //! buttons + virtual bool buttonAnimationsEnabled( void ) const + { return _buttonAnimationsEnabled; } - //! animations - virtual int animationsDuration( void ) const - { return _animationsDuration; } + //! buttons + virtual void setButtonAnimationsEnabled( bool value ) + { _buttonAnimationsEnabled = value; } - //! animations - virtual void setAnimationsDuration( int value ) - { _animationsDuration = value; } + //! buttons + virtual int buttonAnimationsDuration( void ) const + { return _buttonAnimationsDuration; } + + //! buttons + virtual void setButtonAnimationsDuration( int value ) + { _buttonAnimationsDuration = value; } + + //! titles + virtual bool titleAnimationsEnabled( void ) const + { return _titleAnimationsEnabled; } + + //! title + virtual void setTitleAnimationsEnabled( bool value ) + { _titleAnimationsEnabled = value; } + + //! title + virtual int titleAnimationsDuration( void ) const + { return _titleAnimationsDuration; } + + //! title + virtual void setTitleAnimationsDuration( int value ) + { _titleAnimationsDuration = value; } + + //! shadows + virtual bool shadowAnimationsEnabled( void ) const + { return _shadowAnimationsEnabled; } + + //! shadows + virtual void setShadowAnimationsEnabled( bool value ) + { _shadowAnimationsEnabled = value; } + + //! shadows + virtual int shadowAnimationsDuration( void ) const + { return _shadowAnimationsDuration; } + + //! shadows + virtual void setShadowAnimationsDuration( int value ) + { _shadowAnimationsDuration = value; } + + //! tabs + virtual bool tabAnimationsEnabled( void ) const + { return _tabAnimationsEnabled; } + + //! tabs + virtual void setTabAnimationsEnabled( bool value ) + { _tabAnimationsEnabled = value; } + + //! tabs + virtual int tabAnimationsDuration( void ) const + { return _tabAnimationsDuration; } + + //! tabs + virtual void setTabAnimationsDuration( int value ) + { _tabAnimationsDuration = value; } + + //@} private: @@ -343,18 +412,26 @@ namespace Oxygen //! oxygen shadows bool _useOxygenShadows; - //! animations - bool _useAnimations; - - //! animations - bool _animateTitleChange; - - //! animations - int _animationsDuration; - //! narrow button spacing bool _useNarrowButtonSpacing; + //!@name animation flags + //@{ + bool _animationsEnabled; + bool _buttonAnimationsEnabled; + bool _titleAnimationsEnabled; + bool _shadowAnimationsEnabled; + bool _tabAnimationsEnabled; + //@} + + //!@name animation durations + //@{ + int _buttonAnimationsDuration; + int _titleAnimationsDuration; + int _shadowAnimationsDuration; + int _tabAnimationsDuration; + //@} + }; }