//________________________________________________________
    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();

    }
예제 #2
0
    //_______________________________________________
    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 );

    }
예제 #3
0
    //_______________________________________________
    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;

    }
예제 #6
0
    //_______________________________________________
    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() );
    }