907d8b7d | 2014-03-18 19:16:10 | Darrell Anderson |
Add secondary logout fadeaway control This resolves Bug 1999 This relates to Bug 258 |
||
M kcontrol/smserver/kcmsmserver.cpp M kcontrol/smserver/smserverconfigdlg.ui M ksmserver/shutdowndlg.cpp |
||
diff --git a/kcontrol/smserver/kcmsmserver.cpp b/kcontrol/smserver/kcmsmserver.cpp index b81e41c..99f1b72 100644 --- a/kcontrol/smserver/kcmsmserver.cpp +++ b/kcontrol/smserver/kcmsmserver.cpp @@ -94,7 +94,9 @@ c->setGroup("Logout"); dialog->showLogoutStatusDialog->setChecked(c->readBoolEntry("showLogoutStatusDlg", true)); + dialog->showFadeAway->setChecked(c->readBoolEntry("doFadeaway", true)); dialog->showFancyFadeAway->setChecked(c->readBoolEntry("doFancyLogout", true)); + dialog->showFancyFadeAway->setEnabled(dialog->confirmLogoutCheck->isChecked() && dialog->showFadeAway->isChecked()), delete c; @@ -124,6 +126,7 @@ c->writeEntry("excludeApps", dialog->excludeLineedit->text()); c->setGroup("Logout"); c->writeEntry( "showLogoutStatusDlg", dialog->showLogoutStatusDialog->isChecked()); + c->writeEntry( "doFadeaway", dialog->showFadeAway->isChecked()); c->writeEntry( "doFancyLogout", dialog->showFancyFadeAway->isChecked()); c->sync(); delete c; diff --git a/kcontrol/smserver/smserverconfigdlg.ui b/kcontrol/smserver/smserverconfigdlg.ui index d222fef..654156f 100644 --- a/kcontrol/smserver/smserverconfigdlg.ui +++ b/kcontrol/smserver/smserverconfigdlg.ui @@ -55,18 +55,32 @@ </property> </widget> <widget class="TQCheckBox"> - <property name="name"> - <cstring>showFancyFadeAway</cstring> - </property> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Show fancy &logout fadeaway</string> - </property> - <property name="whatsThis" stdset="0"> - <string>Check this option if you want to see a fancy fadeaway when displaying a logout confirmation dialog box.</string> - </property> + <property name="name"> + <cstring>showFadeAway</cstring> + </property> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Show &logout fadeaway</string> + </property> + <property name="whatsThis" stdset="0"> + <string>Check this option if you want to see a fadeaway when displaying a logout confirmation dialog box.</string> + </property> + </widget> + <widget class="TQCheckBox"> + <property name="name"> + <cstring>showFancyFadeAway</cstring> + </property> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Sho&w fancy logout fadeaway</string> + </property> + <property name="whatsThis" stdset="0"> + <string>Check this option if you want to see a fancy fadeaway when displaying a logout confirmation dialog box.</string> + </property> </widget> <widget class="TQCheckBox"> <property name="name"> @@ -235,16 +249,34 @@ <slot>configChanged()</slot> </connection> <connection> - <sender>confirmLogoutCheck</sender> - <signal>toggled(bool)</signal> - <receiver>showFancyFadeAway</receiver> - <slot>setEnabled(bool)</slot> + <sender>confirmLogoutCheck</sender> + <signal>toggled(bool)</signal> + <receiver>showFadeAway</receiver> + <slot>setEnabled(bool)</slot> </connection> <connection> - <sender>showFancyFadeAway</sender> - <signal>toggled(bool)</signal> - <receiver>SMServerConfigDlg</receiver> - <slot>configChanged()</slot> + <sender>confirmLogoutCheck</sender> + <signal>toggled(bool)</signal> + <receiver>showFancyFadeAway</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>showFadeAway</sender> + <signal>toggled(bool)</signal> + <receiver>showFancyFadeAway</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>showFadeAway</sender> + <signal>toggled(bool)</signal> + <receiver>SMServerConfigDlg</receiver> + <slot>configChanged()</slot> + </connection> + <connection> + <sender>showFancyFadeAway</sender> + <signal>toggled(bool)</signal> + <receiver>SMServerConfigDlg</receiver> + <slot>configChanged()</slot> </connection> <connection> <sender>showLogoutStatusDialog</sender> diff --git a/ksmserver/shutdowndlg.cpp b/ksmserver/shutdowndlg.cpp index 55e49e4..f4b1ca8 100644 --- a/ksmserver/shutdowndlg.cpp +++ b/ksmserver/shutdowndlg.cpp @@ -113,7 +113,8 @@ void KSMShutdownFeedback::slotPaintEffect() { // determine which fade to use - if (TDEConfigGroup(TDEGlobal::config(), "Logout").readBoolEntry("doFancyLogout", true)) { + if ( (TDEConfigGroup(TDEGlobal::config(), "Logout").readBoolEntry("doFadeaway", true)) && + (TDEConfigGroup(TDEGlobal::config(), "Logout").readBoolEntry("doFancyLogout", true)) ) { // fancy logout fade float doFancyLogoutAdditionalDarkness = (float)TDEConfigGroup(TDEGlobal::config(), "Logout").readDoubleNumEntry("doFancyLogoutAdditionalDarkness", 0.6); float doFancyLogoutFadeTime = (float)TDEConfigGroup(TDEGlobal::config(), "Logout").readDoubleNumEntry("doFancyLogoutFadeTime", 4000); @@ -363,149 +364,151 @@ } } else { - // standard logout fade - if (kapp->isX11CompositionAvailable()) { - // We can do this in a different (simpler) manner because we have compositing support! - // The end effect will be very similar to the old style logout - float doFancyLogoutFadeTime = 1000; - float doFancyLogoutFadeBackTime = 0; - if ( m_greyImageCreated == false ) { - m_greyImageCreated = true; - - // eliminate nasty flicker on first show - m_root.resize( width(), height() ); - TQImage blendedImage = m_grayImage; - TQPainter p; - p.begin( &m_root ); - blendedImage.setAlphaBuffer(false); - p.drawImage( 0, 0, blendedImage ); - p.end(); - - setBackgroundPixmap( m_root ); - setGeometry( TQApplication::desktop()->geometry() ); - setBackgroundMode( TQWidget::NoBackground ); - - m_unfadedImage = m_grayImage.copy(); - - register uchar * r = m_grayImage.bits(); - uchar * end = m_grayImage.bits() + m_grayImage.numBytes(); - - while ( r != end ) { - *reinterpret_cast<TQRgb*>(r) = tqRgba(0, 0, 0, 107); - r += 4; + if (TDEConfigGroup(TDEGlobal::config(), "Logout").readBoolEntry("doFadeaway", true)) { + // standard logout fade + if (kapp->isX11CompositionAvailable()) { + // We can do this in a different (simpler) manner because we have compositing support! + // The end effect will be very similar to the old style logout + float doFancyLogoutFadeTime = 1000; + float doFancyLogoutFadeBackTime = 0; + if ( m_greyImageCreated == false ) { + m_greyImageCreated = true; + + // eliminate nasty flicker on first show + m_root.resize( width(), height() ); + TQImage blendedImage = m_grayImage; + TQPainter p; + p.begin( &m_root ); + blendedImage.setAlphaBuffer(false); + p.drawImage( 0, 0, blendedImage ); + p.end(); + + setBackgroundPixmap( m_root ); + setGeometry( TQApplication::desktop()->geometry() ); + setBackgroundMode( TQWidget::NoBackground ); + + m_unfadedImage = m_grayImage.copy(); + + register uchar * r = m_grayImage.bits(); + uchar * end = m_grayImage.bits() + m_grayImage.numBytes(); + + while ( r != end ) { + *reinterpret_cast<TQRgb*>(r) = tqRgba(0, 0, 0, 107); + r += 4; + } + + // start timer which is used for cpu-speed-independent fading + m_fadeTime.start(); + m_rowsDone = 0; } - - // start timer which is used for cpu-speed-independent fading - m_fadeTime.start(); - m_rowsDone = 0; - } - - // return if fading is completely done... - if ( ( m_grayOpacity >= 1.0f && m_fadeBackwards == FALSE ) || ( m_grayOpacity <= 0.0f && m_fadeBackwards == TRUE ) ) { - return; - } - - if ( m_fadeBackwards == FALSE ) { - m_grayOpacity = m_fadeTime.elapsed() / doFancyLogoutFadeTime; - if ( m_grayOpacity > 1.0f ) - m_grayOpacity = 1.0f; - } - else { - m_grayOpacity = 1.0f - m_fadeTime.elapsed() / doFancyLogoutFadeBackTime - m_compensation; - if ( m_grayOpacity < 0.0f ) - m_grayOpacity = 0.0f; - } - - const int imgWidth = m_unfadedImage.width(); - int imgHeight = m_unfadedImage.height(); - int heightUnit = imgHeight / 3; - if( heightUnit < 1 ) - heightUnit = 1; - - int y1 = static_cast<int>( imgHeight*m_grayOpacity - heightUnit + m_grayOpacity*heightUnit*2.0f ); - if( y1 > imgHeight ) { - y1 = imgHeight; - } - - int y2 = y1+heightUnit; - if( y2 > imgHeight ) { - y2 = imgHeight; - } - - if( m_fadeBackwards == FALSE ) - { - if( y1 > 0 && y1 < imgHeight && y1-m_rowsDone > 0 && m_rowsDone < imgHeight ) - { - TQImage img( imgWidth, y1-m_rowsDone, 32 ); - memcpy( img.bits(), m_grayImage.scanLine( m_rowsDone ), imgWidth*(y1-m_rowsDone)*4 ); - bitBlt( this, 0, m_rowsDone, &img ); - m_rowsDone = y1; + + // return if fading is completely done... + if ( ( m_grayOpacity >= 1.0f && m_fadeBackwards == FALSE ) || ( m_grayOpacity <= 0.0f && m_fadeBackwards == TRUE ) ) { + return; } ** Diff limit reached (max: 250 lines) ** |