diff --git a/effects/wobblywindows.cpp b/effects/wobblywindows.cpp index 4346ab5ff0..6f27e7d9c1 100644 --- a/effects/wobblywindows.cpp +++ b/effects/wobblywindows.cpp @@ -39,86 +39,225 @@ License. See the file "COPYING" for the exact licensing terms. namespace KWin { +struct ParameterSet +{ + qreal stiffness; + qreal drag; + qreal move_factor; + + qreal xTesselation; + qreal yTesselation; + + WobblyWindowsEffect::GridFilter velocityFilter; + WobblyWindowsEffect::GridFilter accelerationFilter; + + qreal minVelocity; + qreal maxVelocity; + qreal stopVelocity; + qreal minAcceleration; + qreal maxAcceleration; + qreal stopAcceleration; + + bool moveEffectEnabled; + bool openEffectEnabled; + bool closeEffectEnabled; +}; + +ParameterSet set_0 = +{ + 0.1, + 0.8, + 0.1, + 20.0, + 20.0, + WobblyWindowsEffect::FourRingLinearMean, + WobblyWindowsEffect::HeightRingLinearMean, + 0.0, + 1000.0, + 1.0, + 0.0, + 1000.0, + 2.0, + true, + false, + false +}; + +ParameterSet set_1 = +{ + 0.15, + 0.85, + 0.1, + 20.0, + 20.0, + WobblyWindowsEffect::HeightRingLinearMean, + WobblyWindowsEffect::MeanWithMean, + 0.0, + 1000.0, + 1.0, + 0.0, + 1000.0, + 2.0, + true, + false, + false +}; + +ParameterSet set_2 = +{ + 0.06, + 0.9, + 0.1, + 20.0, + 20.0, + WobblyWindowsEffect::HeightRingLinearMean, + WobblyWindowsEffect::NoFilter, + 0.0, + 1000.0, + 1.0, + 0.0, + 1000.0, + 2.0, + true, + false, + false +}; + +ParameterSet set_3 = +{ + 0.03, + 0.92, + 0.1, + 20.0, + 20.0, + WobblyWindowsEffect::HeightRingLinearMean, + WobblyWindowsEffect::HeightRingLinearMean, + 0.0, + 1000.0, + 1.0, + 0.0, + 1000.0, + 2.0, + true, + false, + false +}; + +ParameterSet set_4 = +{ + 0.03, + 0.92, + 0.1, + 20.0, + 20.0, + WobblyWindowsEffect::HeightRingLinearMean, + WobblyWindowsEffect::HeightRingLinearMean, + 0.0, + 1000.0, + 1.0, + 0.0, + 1000.0, + 2.0, + true, + false, + false +}; + +ParameterSet pset[5] = { set_0, set_1, set_2, set_3, set_4 }; + KWIN_EFFECT(wobblywindows, WobblyWindowsEffect) WobblyWindowsEffect::WobblyWindowsEffect() { KConfigGroup conf = effects->effectConfig("Wobbly"); - m_stiffness = conf.readEntry("Stiffness", STIFFNESS); - m_drag = conf.readEntry("Drag", DRAG); - m_move_factor = conf.readEntry("MoveFactor", MOVEFACTOR); - m_xTesselation = conf.readEntry("XTesselation", XTESSELATION); - m_yTesselation = conf.readEntry("YTesselation", YTESSELATION); + QString settingsMode = conf.readEntry("Settings", "Auto"); + if (settingsMode != "Custom") + { + unsigned int wobblynessLevel = conf.readEntry("WobblynessLevel", 2); + if (wobblynessLevel > 4) + { + kDebug() << "Wrong value for \"WobblynessLevel\" : " << wobblynessLevel; + wobblynessLevel = 4; + } + setParameterSet(pset[wobblynessLevel]); + } + else // Custom method, read all values from config file. + { + m_stiffness = conf.readEntry("Stiffness", STIFFNESS); + m_drag = conf.readEntry("Drag", DRAG); + m_move_factor = conf.readEntry("MoveFactor", MOVEFACTOR); - m_minVelocity = conf.readEntry("MinVelocity", MINVELOCITY); - m_maxVelocity = conf.readEntry("MaxVelocity", MAXVELOCITY); - m_stopVelocity = conf.readEntry("StopVelocity", STOPVELOCITY); - m_minAcceleration = conf.readEntry("MinAcceleration", MINACCELERATION); - m_maxAcceleration = conf.readEntry("MaxAcceleration", MAXACCELERATION); - m_stopAcceleration = conf.readEntry("StopAcceleration", STOPACCELERATION); + m_xTesselation = conf.readEntry("XTesselation", XTESSELATION); + m_yTesselation = conf.readEntry("YTesselation", YTESSELATION); - QString velFilter = conf.readEntry("VelocityFilter", VELOCITYFILTER); - if (velFilter == "NoFilter") - { - m_velocityFilter = NoFilter; - } - else if (velFilter == "FourRingLinearMean") - { - m_velocityFilter = FourRingLinearMean; - } - else if (velFilter == "HeightRingLinearMean") - { - m_velocityFilter = HeightRingLinearMean; - } - else if (velFilter == "MeanWithMean") - { - m_velocityFilter = MeanWithMean; - } - else if (velFilter == "MeanWithMedian") - { - m_velocityFilter = MeanWithMedian; - } - else - { - m_velocityFilter = FourRingLinearMean; - kDebug() << "Unknown config value for VelocityFilter : " << velFilter; - } + m_minVelocity = conf.readEntry("MinVelocity", MINVELOCITY); + m_maxVelocity = conf.readEntry("MaxVelocity", MAXVELOCITY); + m_stopVelocity = conf.readEntry("StopVelocity", STOPVELOCITY); + m_minAcceleration = conf.readEntry("MinAcceleration", MINACCELERATION); + m_maxAcceleration = conf.readEntry("MaxAcceleration", MAXACCELERATION); + m_stopAcceleration = conf.readEntry("StopAcceleration", STOPACCELERATION); + QString velFilter = conf.readEntry("VelocityFilter", VELOCITYFILTER); + if (velFilter == "NoFilter") + { + m_velocityFilter = NoFilter; + } + else if (velFilter == "FourRingLinearMean") + { + m_velocityFilter = FourRingLinearMean; + } + else if (velFilter == "HeightRingLinearMean") + { + m_velocityFilter = HeightRingLinearMean; + } + else if (velFilter == "MeanWithMean") + { + m_velocityFilter = MeanWithMean; + } + else if (velFilter == "MeanWithMedian") + { + m_velocityFilter = MeanWithMedian; + } + else + { + m_velocityFilter = FourRingLinearMean; + kDebug() << "Unknown config value for VelocityFilter : " << velFilter; + } - QString accFilter = conf.readEntry("AccelerationFilter", ACCELERATIONFILTER); - if (accFilter == "NoFilter") - { - m_accelerationFilter = NoFilter; - } - else if (accFilter == "FourRingLinearMean") - { - m_accelerationFilter = FourRingLinearMean; - } - else if (accFilter == "HeightRingLinearMean") - { - m_accelerationFilter = HeightRingLinearMean; - } - else if (accFilter == "MeanWithMean") - { - m_accelerationFilter = MeanWithMean; - } - else if (accFilter == "MeanWithMedian") - { - m_accelerationFilter = MeanWithMedian; - } - else - { - m_accelerationFilter = NoFilter; - kDebug() << "Unknown config value for accelerationFilter : " << accFilter; - } - - m_moveEffectEnabled = conf.readEntry("MoveEffect", true); - m_openEffectEnabled = conf.readEntry("OpenEffect", false); - // disable close effect by default for now as it doesn't do what I want. - m_closeEffectEnabled = conf.readEntry("CloseEffect", false); + QString accFilter = conf.readEntry("AccelerationFilter", ACCELERATIONFILTER); + if (accFilter == "NoFilter") + { + m_accelerationFilter = NoFilter; + } + else if (accFilter == "FourRingLinearMean") + { + m_accelerationFilter = FourRingLinearMean; + } + else if (accFilter == "HeightRingLinearMean") + { + m_accelerationFilter = HeightRingLinearMean; + } + else if (accFilter == "MeanWithMean") + { + m_accelerationFilter = MeanWithMean; + } + else if (accFilter == "MeanWithMedian") + { + m_accelerationFilter = MeanWithMedian; + } + else + { + m_accelerationFilter = NoFilter; + kDebug() << "Unknown config value for accelerationFilter : " << accFilter; + } + m_moveEffectEnabled = conf.readEntry("MoveEffect", true); + m_openEffectEnabled = conf.readEntry("OpenEffect", false); + // disable close effect by default for now as it doesn't do what I want. + m_closeEffectEnabled = conf.readEntry("CloseEffect", false); + } #if defined VERBOSE_MODE kDebug() << "Parameters :\n" << @@ -145,6 +284,30 @@ WobblyWindowsEffect::~WobblyWindowsEffect() } } +void WobblyWindowsEffect::setParameterSet(ParameterSet& pset) +{ + m_stiffness = pset.stiffness; + m_drag = pset.drag; + m_move_factor = pset.move_factor; + + m_xTesselation = pset.xTesselation; + m_yTesselation = pset.yTesselation; + + m_velocityFilter = pset.velocityFilter ; + m_accelerationFilter = pset.accelerationFilter; + + m_minVelocity = pset.minVelocity; + m_maxVelocity = pset.maxVelocity; + m_stopVelocity = pset.stopVelocity; + m_minAcceleration = pset.minAcceleration; + m_maxAcceleration = pset.maxAcceleration; + m_stopAcceleration = pset.stopAcceleration; + + m_moveEffectEnabled = pset.moveEffectEnabled; + m_openEffectEnabled = pset.openEffectEnabled; + m_closeEffectEnabled = pset.closeEffectEnabled; +} + void WobblyWindowsEffect::setVelocityThreshold(qreal m_minVelocity) { this->m_minVelocity = m_minVelocity; diff --git a/effects/wobblywindows.h b/effects/wobblywindows.h index 0c6682be15..e5d5f3a0c7 100644 --- a/effects/wobblywindows.h +++ b/effects/wobblywindows.h @@ -17,6 +17,8 @@ License. See the file "COPYING" for the exact licensing terms. namespace KWin { +struct ParameterSet; + /** * Effect which wobble windows **/ @@ -62,10 +64,6 @@ class WobblyWindowsEffect : public Effect qreal y; }; - private: - - bool updateWindowWobblyDatas(EffectWindow* w, qreal time); - enum WindowStatus { Free, @@ -74,6 +72,10 @@ class WobblyWindowsEffect : public Effect Closing }; + private: + + bool updateWindowWobblyDatas(EffectWindow* w, qreal time); + struct WindowWobblyInfos { Pair* origin; @@ -141,6 +143,8 @@ class WobblyWindowsEffect : public Effect static void heightRingLinearMean(Pair** datas, WindowWobblyInfos& wwi); static void meanWithMean(Pair** datas, WindowWobblyInfos& wwi); static void meanWithMedian(Pair** datas, WindowWobblyInfos& wwi); + + void setParameterSet(ParameterSet& pset); }; } // namespace KWin diff --git a/effects/wobblywindows_config.cpp b/effects/wobblywindows_config.cpp index 141b3ce787..e1983a12d8 100644 --- a/effects/wobblywindows_config.cpp +++ b/effects/wobblywindows_config.cpp @@ -19,7 +19,6 @@ along with this program. If not, see . *********************************************************************/ #include "wobblywindows_config.h" -#include "wobblywindows_constants.h" #include @@ -43,33 +42,7 @@ KCModule(EffectFactory::componentData(), parent, args) { m_ui.setupUi(this); - connect(m_ui.spStiffness, SIGNAL(valueChanged(double)), this, SLOT(slotSpStiffness(double))); - connect(m_ui.slStiffness, SIGNAL(sliderMoved(int)), this, SLOT(slotSlStiffness(int))); - connect(m_ui.spDrag, SIGNAL(valueChanged(double)), this, SLOT(slotSpDrag(double))); - connect(m_ui.slDrag, SIGNAL(sliderMoved(int)), this, SLOT(slotSlDrag(int))); - connect(m_ui.spMovFactor, SIGNAL(valueChanged(double)), this, SLOT(slotSpMovFactor(double))); - connect(m_ui.slMovFactor, SIGNAL(sliderMoved(int)), this, SLOT(slotSlMovFactor(int))); - - connect(m_ui.cbGridFilter, SIGNAL(activated(int)), this, SLOT(slotGridParameterSelected(int))); - - connect(m_ui.rbNone, SIGNAL(toggled(bool)), this, SLOT(slotRbNone(bool))); - connect(m_ui.rbFourRingMean, SIGNAL(toggled(bool)), this, SLOT(slotRbFourRingMean(bool))); - connect(m_ui.rbHeightRingMean, SIGNAL(toggled(bool)), this, SLOT(slotRbHeightRingMean(bool))); - connect(m_ui.rbMeanMean, SIGNAL(toggled(bool)), this, SLOT(slotRbMeanMean(bool))); - connect(m_ui.rbMeanMedian, SIGNAL(toggled(bool)), this, SLOT(slotRbMeanMedian(bool))); - - connect(m_ui.spMinVel, SIGNAL(valueChanged(double)), this, SLOT(slotSpMinVel(double))); - connect(m_ui.slMinVel, SIGNAL(sliderMoved(int)), this, SLOT(slotSlMinVel(int))); - connect(m_ui.spMaxVel, SIGNAL(valueChanged(double)), this, SLOT(slotSpMaxVel(double))); - connect(m_ui.slMaxVel, SIGNAL(sliderMoved(int)), this, SLOT(slotSlMaxVel(int))); - connect(m_ui.spStopVel, SIGNAL(valueChanged(double)), this, SLOT(slotSpStopVel(double))); - connect(m_ui.slStopVel, SIGNAL(sliderMoved(int)), this, SLOT(slotSlStopVel(int))); - connect(m_ui.spMinAcc, SIGNAL(valueChanged(double)), this, SLOT(slotSpMinAcc(double))); - connect(m_ui.slMinAcc, SIGNAL(sliderMoved(int)), this, SLOT(slotSlMinAcc(int))); - connect(m_ui.spMaxAcc, SIGNAL(valueChanged(double)), this, SLOT(slotSpMaxAcc(double))); - connect(m_ui.slMaxAcc, SIGNAL(sliderMoved(int)), this, SLOT(slotSlMaxAcc(int))); - connect(m_ui.spStopAcc, SIGNAL(valueChanged(double)), this, SLOT(slotSpStopAcc(double))); - connect(m_ui.slStopAcc, SIGNAL(sliderMoved(int)), this, SLOT(slotSlStopAcc(int))); + connect(m_ui.slWobblyness, SIGNAL(valueChanged(int)), this, SLOT(slotSlWobblyness(int))); load(); } @@ -83,170 +56,33 @@ void WobblyWindowsEffectConfig::load() KCModule::load(); KConfigGroup conf = EffectsHandler::effectConfig("Wobbly"); - qreal stiffness = conf.readEntry("Stiffness", STIFFNESS); - qreal drag = conf.readEntry("Drag", DRAG); - qreal move_factor = conf.readEntry("MoveFactor", MOVEFACTOR); + bool change = true; - m_ui.spStiffness->setValue(stiffness); - m_ui.slStiffness->setSliderPosition(stiffness*50); - - m_ui.spDrag->setValue(drag); - m_ui.slDrag->setSliderPosition(drag*100); - - m_ui.spMovFactor->setValue(move_factor); - m_ui.slMovFactor->setValue(move_factor*100); - - int xTesselation = conf.readEntry("XTesselation", XTESSELATION); - int yTesselation = conf.readEntry("YTesselation", YTESSELATION); - - m_ui.spHNodes->setValue(xTesselation); - m_ui.spVNodes->setValue(yTesselation); - - //squareRootMasterAcceleration = conf.readEntry("SquareRootMasterAcceleration", false); - - QString velFilter = conf.readEntry("VelocityFilter", VELOCITYFILTER); - if (velFilter == "NoFilter") + unsigned int wobblynessLevel = 2; + QString settingsMode = conf.readEntry("Settings", "Auto"); + if (settingsMode != "Custom") { - velocityFilter = NoFilter; - } - else if (velFilter == "FourRingLinearMean") - { - velocityFilter = FourRingLinearMean; - } - else if (velFilter == "HeightRingLinearMean") - { - velocityFilter = HeightRingLinearMean; - } - else if (velFilter == "MeanWithMean") - { - velocityFilter = MeanWithMean; - } - else if (velFilter == "MeanWithMedian") - { - velocityFilter = MeanWithMedian; - } - else - { - velocityFilter = FourRingLinearMean; - kDebug() << "Unknown config value for VelocityFilter : " << velFilter; + wobblynessLevel = conf.readEntry("WobblynessLevel", 2); + change = false; } - - QString accFilter = conf.readEntry("AccelerationFilter", ACCELERATIONFILTER); - if (accFilter == "NoFilter") + if (wobblynessLevel > 4) { - accelerationFilter = NoFilter; - } - else if (accFilter == "FourRingLinearMean") - { - accelerationFilter = FourRingLinearMean; - } - else if (accFilter == "HeightRingLinearMean") - { - accelerationFilter = HeightRingLinearMean; - } - else if (accFilter == "MeanWithMean") - { - accelerationFilter = MeanWithMean; - } - else if (accFilter == "MeanWithMedian") - { - accelerationFilter = MeanWithMedian; - } - else - { - accelerationFilter = NoFilter; - kDebug() << "Unknown config value for accelerationFilter : " << accFilter; + wobblynessLevel = 4; + change = true; } - qreal minVel = conf.readEntry("MinVelocity", MINVELOCITY); - qreal maxVel = conf.readEntry("MaxVelocity", MAXVELOCITY); - qreal stopVel = conf.readEntry("StopVelocity", STOPVELOCITY); - qreal minAcc = conf.readEntry("MinAcceleration", MINACCELERATION); - qreal maxAcc = conf.readEntry("MaxAcceleration", MAXACCELERATION); - qreal stopAcc = conf.readEntry("StopAcceleration", STOPACCELERATION); + m_ui.slWobblyness->setSliderPosition(wobblynessLevel); - m_ui.spMinVel->setValue(minVel); - m_ui.slMinVel->setSliderPosition(minVel*100); - m_ui.spMaxVel->setValue(maxVel); - m_ui.slMaxVel->setSliderPosition(maxVel/10); - m_ui.spStopVel->setValue(stopVel); - m_ui.slStopVel->setSliderPosition(stopVel*10); - m_ui.spMinAcc->setValue(minAcc); - m_ui.slMinAcc->setSliderPosition(minAcc*100); - m_ui.spMaxAcc->setValue(maxAcc); - m_ui.slMaxAcc->setSliderPosition(maxAcc/10); - m_ui.spStopAcc->setValue(stopAcc); - m_ui.slStopAcc->setSliderPosition(stopAcc*10); - - emit changed(false); + emit changed(change); } void WobblyWindowsEffectConfig::save() { KConfigGroup conf = EffectsHandler::effectConfig("Wobbly"); - conf.writeEntry("Stiffness", m_ui.spStiffness->value()); - conf.writeEntry("Drag", m_ui.spDrag->value()); - conf.writeEntry("MoveFactor", m_ui.spMovFactor->value()); - - conf.writeEntry("XTesselation", m_ui.spHNodes->value()); - conf.writeEntry("YTesselation", m_ui.spVNodes->value()); - - switch (velocityFilter) - { - case NoFilter: - conf.writeEntry("VelocityFilter", "NoFilter"); - break; - - case FourRingLinearMean: - conf.writeEntry("VelocityFilter", "FourRingLinearMean"); - break; - - case HeightRingLinearMean: - conf.writeEntry("VelocityFilter", "HeightRingLinearMean"); - break; - - case MeanWithMean: - conf.writeEntry("VelocityFilter", "MeanWithMean"); - break; - - case MeanWithMedian: - conf.writeEntry("VelocityFilter", "MeanWithMedian"); - break; - } - - switch (accelerationFilter) - { - case NoFilter: - conf.writeEntry("AccelerationFilter", "NoFilter"); - break; - - case FourRingLinearMean: - conf.writeEntry("AccelerationFilter", "FourRingLinearMean"); - break; - - case HeightRingLinearMean: - conf.writeEntry("AccelerationFilter", "HeightRingLinearMean"); - break; - - case MeanWithMean: - conf.writeEntry("AccelerationFilter", "MeanWithMean"); - break; - - case MeanWithMedian: - conf.writeEntry("AccelerationFilter", "MeanWithMedian"); - break; - } - - conf.writeEntry("MinVelocity", m_ui.spMinVel->value()); - conf.writeEntry("MaxVelocity", m_ui.spMaxVel->value()); - conf.writeEntry("StopVelocity", m_ui.spStopVel->value()); - conf.writeEntry("MinAcceleration", m_ui.spMinAcc->value()); - conf.writeEntry("MaxAcceleration", m_ui.spMaxAcc->value()); - conf.writeEntry("StopAcceleration", m_ui.spStopAcc->value()); - - conf.sync(); + conf.writeEntry("Settings", "Auto"); + conf.writeEntry("WobblynessLevel", m_ui.slWobblyness->value()); emit changed(false); EffectsHandler::sendReloadMessage("kwin4_effect_wobblywindows"); @@ -254,293 +90,16 @@ void WobblyWindowsEffectConfig::save() void WobblyWindowsEffectConfig::defaults() { - m_ui.spStiffness->setValue(STIFFNESS); - m_ui.slStiffness->setSliderPosition(STIFFNESS*50); - - m_ui.spDrag->setValue(DRAG); - m_ui.slDrag->setSliderPosition(DRAG*100); - - m_ui.spMovFactor->setValue(MOVEFACTOR); - m_ui.slMovFactor->setValue(MOVEFACTOR*100); - - m_ui.spHNodes->setValue(XTESSELATION); - m_ui.spVNodes->setValue(YTESSELATION); - - velocityFilter = FourRingLinearMean; - accelerationFilter = NoFilter; - slotGridParameterSelected(m_ui.cbGridFilter->currentIndex()); - - m_ui.spMinVel->setValue(MINVELOCITY); - m_ui.slMinVel->setSliderPosition(MINVELOCITY*100); - - m_ui.spMaxVel->setValue(MAXVELOCITY); - m_ui.slMaxVel->setSliderPosition(MAXVELOCITY/10); - - m_ui.spStopVel->setValue(STOPVELOCITY); - m_ui.slStopVel->setSliderPosition(STOPVELOCITY*10); - - m_ui.spMinAcc->setValue(MINACCELERATION); - m_ui.slMinAcc->setSliderPosition(MINACCELERATION*100); - - m_ui.spMaxAcc->setValue(MAXACCELERATION); - m_ui.slMaxAcc->setSliderPosition(MAXACCELERATION/10); - - m_ui.spStopAcc->setValue(STOPACCELERATION); - m_ui.slStopAcc->setSliderPosition(STOPACCELERATION*10); + m_ui.slWobblyness->setSliderPosition(2); emit changed(true); } -void WobblyWindowsEffectConfig::slotSpStiffness(double value) +void WobblyWindowsEffectConfig::slotSlWobblyness(int) { - m_ui.slStiffness->setSliderPosition(value*50); emit changed(true); } -void WobblyWindowsEffectConfig::slotSlStiffness(int value) -{ - m_ui.spStiffness->setValue(value/50.0); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSpDrag(double value) -{ - m_ui.slDrag->setSliderPosition(value*100); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlDrag(int value) -{ - m_ui.spDrag->setValue(qreal(value)/100.0); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSpMovFactor(double value) -{ - m_ui.slMovFactor->setValue(value*100); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlMovFactor(int value) -{ - m_ui.spMovFactor->setValue(qreal(value)/100.0); - emit changed(true); -} - -// filters - -void WobblyWindowsEffectConfig::slotRbNone(bool toggled) -{ - if (toggled) - { - if (m_ui.cbGridFilter->currentIndex() == 0) // velocity - { - velocityFilter = NoFilter; - } - else if (m_ui.cbGridFilter->currentIndex() == 1) // acceleration - { - accelerationFilter = NoFilter; - } - } - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotRbFourRingMean(bool toggled) -{ - if (toggled) - { - if (m_ui.cbGridFilter->currentIndex() == 0) // velocity - { - velocityFilter = FourRingLinearMean; - } - else if (m_ui.cbGridFilter->currentIndex() == 1) // acceleration - { - accelerationFilter = FourRingLinearMean; - } - } - emit changed(true); -} - - -void WobblyWindowsEffectConfig::slotRbHeightRingMean(bool toggled) -{ - if (toggled) - { - if (m_ui.cbGridFilter->currentIndex() == 0) // velocity - { - velocityFilter = HeightRingLinearMean; - } - else if (m_ui.cbGridFilter->currentIndex() == 1) // acceleration - { - accelerationFilter = HeightRingLinearMean; - } - } - emit changed(true); -} - - -void WobblyWindowsEffectConfig::slotRbMeanMean(bool toggled) -{ - if (toggled) - { - if (m_ui.cbGridFilter->currentIndex() == 0) // velocity - { - velocityFilter = MeanWithMean; - } - else if (m_ui.cbGridFilter->currentIndex() == 1) // acceleration - { - accelerationFilter = MeanWithMean; - } - } - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotRbMeanMedian(bool toggled) -{ - if (toggled) - { - if (m_ui.cbGridFilter->currentIndex() == 0) // velocity - { - velocityFilter = MeanWithMedian; - } - else if (m_ui.cbGridFilter->currentIndex() == 1) // acceleration - { - accelerationFilter = MeanWithMedian; - } - } - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotGridParameterSelected(int index) -{ - if (index == 0) // velocity - { - switch (velocityFilter) - { - case NoFilter: - m_ui.rbNone->setChecked(true); - break; - - case FourRingLinearMean: - m_ui.rbFourRingMean->setChecked(true); - break; - - case HeightRingLinearMean: - m_ui.rbHeightRingMean->setChecked(true); - break; - - case MeanWithMean: - m_ui.rbMeanMean->setChecked(true); - break; - - case MeanWithMedian: - m_ui.rbMeanMedian->setChecked(true); - break; - } - } - else if (index == 1) // acceleration - { - switch (accelerationFilter) - { - case NoFilter: - m_ui.rbNone->setChecked(true); - break; - - case FourRingLinearMean: - m_ui.rbFourRingMean->setChecked(true); - break; - - case HeightRingLinearMean: - m_ui.rbHeightRingMean->setChecked(true); - break; - - case MeanWithMean: - m_ui.rbMeanMean->setChecked(true); - break; - - case MeanWithMedian: - m_ui.rbMeanMedian->setChecked(true); - break; - } - } - emit changed(true); -} - -// thresholds - -void WobblyWindowsEffectConfig::slotSpMinVel(double value) -{ - m_ui.slMinVel->setSliderPosition(value*100); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlMinVel(int value) -{ - m_ui.spMinVel->setValue(qreal(value)/100.0); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSpMaxVel(double value) -{ - m_ui.slMaxVel->setSliderPosition(value/10); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlMaxVel(int value) -{ - m_ui.spMaxVel->setValue(value*10.0); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSpStopVel(double value) -{ - m_ui.slStopVel->setSliderPosition(value*10); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlStopVel(int value) -{ - m_ui.spStopVel->setValue(value/10.0); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSpMinAcc(double value) -{ - m_ui.slMinAcc->setSliderPosition(value*100); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlMinAcc(int value) -{ - m_ui.spMinAcc->setValue(value/100.0); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSpMaxAcc(double value) -{ - m_ui.slMaxAcc->setSliderPosition(value/10); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlMaxAcc(int value) -{ - m_ui.spMaxAcc->setValue(value*10.0); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSpStopAcc(double value) -{ - m_ui.slStopAcc->setSliderPosition(value*10); - emit changed(true); -} - -void WobblyWindowsEffectConfig::slotSlStopAcc(int value) -{ - m_ui.spStopAcc->setValue(value/10.0); - emit changed(true); -} - - } // namespace #include "wobblywindows_config.moc" diff --git a/effects/wobblywindows_config.h b/effects/wobblywindows_config.h index 9598ee5d4c..1efea6e2b4 100644 --- a/effects/wobblywindows_config.h +++ b/effects/wobblywindows_config.h @@ -44,50 +44,11 @@ public slots: virtual void load(); virtual void defaults(); -private: - enum GridFilter - { - NoFilter, - FourRingLinearMean, - HeightRingLinearMean, - MeanWithMean, - MeanWithMedian - }; - private slots: - - void slotSpStiffness(double); - void slotSlStiffness(int); - void slotSpDrag(double); - void slotSlDrag(int); - void slotSpMovFactor(double); - void slotSlMovFactor(int); - - void slotGridParameterSelected(int); - void slotRbNone(bool); - void slotRbFourRingMean(bool); - void slotRbHeightRingMean(bool); - void slotRbMeanMean(bool); - void slotRbMeanMedian(bool); - - void slotSpMinVel(double); - void slotSlMinVel(int); - void slotSpMaxVel(double); - void slotSlMaxVel(int); - void slotSpStopVel(double); - void slotSlStopVel(int); - void slotSpMinAcc(double); - void slotSlMinAcc(int); - void slotSpMaxAcc(double); - void slotSlMaxAcc(int); - void slotSpStopAcc(double); - void slotSlStopAcc(int); + void slotSlWobblyness(int); private: - Ui::WobblyWindowsEffectConfigForm m_ui; - - GridFilter velocityFilter; - GridFilter accelerationFilter; + ::Ui::WobblyWindowsEffectConfigForm m_ui; }; } // namespace diff --git a/effects/wobblywindows_config.ui b/effects/wobblywindows_config.ui index c9e0a084e4..91ef8b714a 100644 --- a/effects/wobblywindows_config.ui +++ b/effects/wobblywindows_config.ui @@ -1,663 +1,79 @@ - KWin::WobblyWindowsEffectConfigForm - + WobblyWindowsEffectConfigForm + 0 0 - 553 - 368 + 274 + 66 - WobblyWindows + WobblyWindowsEffectConfigForm - + - - - 0 + + + Wobblyness : - - - - 0 - 0 - 531 - 321 - - - - Grid Parameters - - - - - - - 0 - 0 - - - - Grid Minimal Tesselation - - - - - - Horizontal Nodes: - - - - - - - 2 - - - 20 - - - - - - - Vertical Nodes: - - - - - - - 2 - - - 20 - - - - - - - - - - - 0 - 0 - - - - Grid Parameters - - - - - - Stiffness: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 2.000000000000000 - - - 0.020000000000000 - - - 0.500000000000000 - - - - - - - 100 - - - 25 - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Drag: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.940000000000000 - - - - - - - 100 - - - 94 - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Move Factor: - - - - - - - Qt::Horizontal - - - - 16 - 20 - - - - - - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.010000000000000 - - - - - - - 100 - - - 1 - - - Qt::Horizontal - - - - - - - - - - - 0 - 0 - - - - Grid Filter - - - - - - - Velocity - - - - - Acceleration - - - - - - - - None - - - true - - - - - - - Ring Mean (4 ways) - - - false - - - - - - - Ring Mean (8 ways) - - - - - - - Mean With Mean - - - - - - - Mean With Median - - - - - - - - - - - - 0 - 0 - 533 - 338 - - - - Thresholds - - - - - - Velocity - - - - - - Min Velocity - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.500000000000000 - - - - - - - 100 - - - 50 - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Max Velocity - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 1000.000000000000000 - - - 10.000000000000000 - - - 500.000000000000000 - - - - - - - 100 - - - 50 - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Velocity Stop - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 10.000000000000000 - - - 0.100000000000000 - - - 3.000000000000000 - - - - - - - 100 - - - 30 - - - Qt::Horizontal - - - - - - - - - - Acceleration - - - - - - Min Acceleration - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.100000000000000 - - - - - - - 100 - - - 10 - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Max Acceleration - - - - - - - Qt::Horizontal - - - - 21 - 20 - - - - - - - - 1000.000000000000000 - - - 10.000000000000000 - - - 500.000000000000000 - - - - - - - 100 - - - 50 - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Acceleration Stop - - - - - - - Qt::Horizontal - - - - 21 - 20 - - - - - - - - 10.000000000000000 - - - 0.100000000000000 - - - 8.000000000000000 - - - - - - - 100 - - - 80 - - - Qt::Horizontal - - - - - - - - + + + + Qt::Horizontal + + + + 184 + 20 + + + + + + + + + + Less + + + + + + + 6 + + + Qt::Horizontal + + + + + + + More + + + + + + + + + Qt::Vertical + + + + 20 + 4 + + + +