//___________________________________________________ bool Factory::reset(unsigned long changed) { if( changed & SettingColors ) { shadowCache().invalidateCaches(); } // read in the configuration setInitialized( false ); bool _configurationchanged = readConfig(); setInitialized( true ); if( _configurationchanged || (changed & (SettingDecoration | SettingButtons | SettingBorder)) ) { // returning true triggers all decorations to be re-created return true; } else { // no need to re-create the decorations // trigger repaint only resetDecorations(changed); return false; } }
//_______________________________________________________ void ShadowHelper::reloadConfig( void ) { // shadow cache shadowCache().readConfig(); // reset reset(); // retrieve shadow pixmap _size = shadowCache().shadowSize(); QPixmap pixmap( shadowCache().pixmap( ShadowCache::Key() ) ); if( !pixmap.isNull() ) { QPainter painter( &pixmap ); // add transparency painter.setCompositionMode(QPainter::CompositionMode_DestinationIn); painter.fillRect( pixmap.rect(), QColor( 0, 0, 0, 150 ) ); } // recreate tileset _tiles = TileSet( pixmap, pixmap.width()/2, pixmap.height()/2, 1, 1 ); if( !pixmap.isNull() ) { QPainter painter( &pixmap ); // add round corners const QRect cornerRect( (pixmap.width()-10)/2, (pixmap.height()-10)/2, 10, 10 ); _helper.roundCorner( QPalette().color( QPalette::Window ) )->render( cornerRect, &painter ); } // recreate tileset _dockTiles = TileSet( pixmap, pixmap.width()/2, pixmap.height()/2, 1, 1 ); // update property for registered widgets for( QMap<QWidget*,WId>::const_iterator iter = _widgets.constBegin(); iter != _widgets.constEnd(); ++iter ) { installX11Shadows( iter.key() ); } }
//___________________________________________________ bool Factory::readConfig() { bool changed( false ); /* always reload helper this is needed to properly handle color contrast settings changed */ helper().invalidateCaches(); helper().reloadConfig(); // create a config object KConfig config("oxygenrc"); KConfigGroup group( config.group("Windeco") ); Configuration configuration( group ); if( configuration.opacityFromStyle() ) { configuration.readBackgroundOpacity( config.group("Common") ); } if( !( configuration == defaultConfiguration() ) ) { setDefaultConfiguration( configuration ); changed = true; } // read exceptionsreadConfig ExceptionList exceptions( config ); if( !( exceptions == _exceptions ) ) { _exceptions = exceptions; changed = true; } // read shadowCache configuration changed |= shadowCache().readConfig( config ); // background pixmap { KConfigGroup group( config.group("Common") ); helper().setBackgroundPixmap( group.readEntry( "BackgroundPixmap", "" ) ); } return changed; }