Removed now unneeded temporary config workaround from kcmkwincompositing.

If there appears any new, possibly related bug, be quick to suspect this commit, because it is not really tested, but should help to track the plugin selection bug down.

svn path=/trunk/KDE/kdebase/workspace/; revision=893010
icc-effect-5.14.5
David Nadlinger 2008-12-05 18:13:42 +00:00
parent 5413d0ec5d
commit 81966b29e9
2 changed files with 13 additions and 46 deletions

View File

@ -111,17 +111,11 @@ KWinCompositingConfig::KWinCompositingConfig(QWidget *parent, const QVariantList
// config. It will be written to disk before a new config is loaded and is deleted after // config. It will be written to disk before a new config is loaded and is deleted after
// the user has confirmed the new settings. // the user has confirmed the new settings.
mBackupConfig = new KConfig( mNewConfig->name() + '~', KConfig::SimpleConfig ); mBackupConfig = new KConfig( mNewConfig->name() + '~', KConfig::SimpleConfig );
updateBackupWithNewConfig();
// If the backup file already exists, it is a residue we want to clean up; it would // If the backup file already exists, it is a residue we want to clean up; it would
// probably be in an invalid state anyway. // probably be in an invalid state anyway.
deleteBackupConfigFile(); deleteBackupConfigFile();
// Open the temporary config file
// Temporary conf file is used to synchronize effect checkboxes with effect
// selector by loading/saving effects from/to temp config when active tab
// changes.
mTmpConfigFile.open();
mTmpConfig = KSharedConfig::openConfig(mTmpConfigFile.fileName());
if( CompositingPrefs::compositingPossible() ) if( CompositingPrefs::compositingPossible() )
{ {
// Driver-specific config detection // Driver-specific config detection
@ -210,14 +204,14 @@ void KWinCompositingConfig::initEffectSelector()
QList<KPluginInfo> effectinfos = KPluginInfo::fromServices(offers); QList<KPluginInfo> effectinfos = KPluginInfo::fromServices(offers);
// Add them to the plugin selector // Add them to the plugin selector
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Appearance"), "Appearance", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Appearance"), "Appearance", mNewConfig);
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Accessibility"), "Accessibility", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Accessibility"), "Accessibility", mNewConfig);
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Focus"), "Focus", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Focus"), "Focus", mNewConfig);
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Window Management"), "Window Management", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Window Management"), "Window Management", mNewConfig);
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Candy"), "Candy", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Candy"), "Candy", mNewConfig);
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Demos"), "Demos", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Demos"), "Demos", mNewConfig);
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Tests"), "Tests", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Tests"), "Tests", mNewConfig);
ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Tools"), "Tools", mTmpConfig); ui.effectSelector->addPlugins(effectinfos, KPluginSelector::ReadConfigFile, i18n("Tools"), "Tools", mNewConfig);
} }
void KWinCompositingConfig::currentTabChanged(int tab) void KWinCompositingConfig::currentTabChanged(int tab)
@ -251,7 +245,7 @@ void KWinCompositingConfig::loadGeneralTab()
ui.animationSpeedCombo->setCurrentIndex(config.readEntry("AnimationSpeed", 3 )); ui.animationSpeedCombo->setCurrentIndex(config.readEntry("AnimationSpeed", 3 ));
// Load effect settings // Load effect settings
KConfigGroup effectconfig(mTmpConfig, "Plugins"); KConfigGroup effectconfig(mNewConfig, "Plugins");
#define LOAD_EFFECT_CONFIG(effectname) effectconfig.readEntry("kwin4_effect_" effectname "Enabled", true) #define LOAD_EFFECT_CONFIG(effectname) effectconfig.readEntry("kwin4_effect_" effectname "Enabled", true)
int winManagementEnabled = LOAD_EFFECT_CONFIG("presentwindows") int winManagementEnabled = LOAD_EFFECT_CONFIG("presentwindows")
+ LOAD_EFFECT_CONFIG("desktopgrid") + LOAD_EFFECT_CONFIG("desktopgrid")
@ -331,12 +325,8 @@ void KWinCompositingConfig::loadAdvancedTab()
void KWinCompositingConfig::load() void KWinCompositingConfig::load()
{ {
mNewConfig->reparseConfiguration(); // Discard any unsaved changes.
resetNewToBackupConfig();
updateBackupWithNewConfig();
// Copy the plugin settings from the main config file to the temp config.
copyPluginsToTmpConfig();
loadGeneralTab(); loadGeneralTab();
loadElectricBorders(); loadElectricBorders();
@ -354,7 +344,7 @@ void KWinCompositingConfig::saveGeneralTab()
config.writeEntry("AnimationSpeed", ui.animationSpeedCombo->currentIndex()); config.writeEntry("AnimationSpeed", ui.animationSpeedCombo->currentIndex());
// Save effects // Save effects
KConfigGroup effectconfig(mTmpConfig, "Plugins"); KConfigGroup effectconfig( mNewConfig, "Plugins" );
#define WRITE_EFFECT_CONFIG(effectname, widget) effectconfig.writeEntry("kwin4_effect_" effectname "Enabled", widget->isChecked()) #define WRITE_EFFECT_CONFIG(effectname, widget) effectconfig.writeEntry("kwin4_effect_" effectname "Enabled", widget->isChecked())
if (ui.effectWinManagement->checkState() != Qt::PartiallyChecked) if (ui.effectWinManagement->checkState() != Qt::PartiallyChecked)
{ {
@ -472,7 +462,6 @@ void KWinCompositingConfig::save()
loadGeneralTab(); loadGeneralTab();
saveGeneralTab(); saveGeneralTab();
} }
copyPluginsToNewConfig();
saveElectricBorders(); saveElectricBorders();
saveAdvancedTab(); saveAdvancedTab();
@ -733,7 +722,6 @@ void KWinCompositingConfig::activateNewConfig()
else else
{ {
// Copy back the old config and load it into the ui. // Copy back the old config and load it into the ui.
resetNewToBackupConfig();
load(); load();
// Tell KWin to reload the (old) config. // Tell KWin to reload the (old) config.
sendKWinReloadSignal(); sendKWinReloadSignal();
@ -850,22 +838,6 @@ void KWinCompositingConfig::deleteBackupConfigFile()
QFile::remove( backupFileName ); QFile::remove( backupFileName );
} }
void KWinCompositingConfig::copyPluginsToTmpConfig()
{
KConfigGroup newGroup( mNewConfig, "Plugins" );
KConfigGroup tmpGroup( mTmpConfig, "Plugins" );
tmpGroup.deleteGroup();
newGroup.copyTo( &tmpGroup );
}
void KWinCompositingConfig::copyPluginsToNewConfig()
{
KConfigGroup newGroup( mNewConfig, "Plugins" );
KConfigGroup tmpGroup( mTmpConfig, "Plugins" );
newGroup.deleteGroup();
tmpGroup.copyTo( &newGroup );
}
} // namespace } // namespace
#include "main.moc" #include "main.moc"

View File

@ -89,16 +89,11 @@ class KWinCompositingConfig : public KCModule
void resetNewToBackupConfig(); void resetNewToBackupConfig();
void deleteBackupConfigFile(); void deleteBackupConfigFile();
void copyPluginsToTmpConfig();
void copyPluginsToNewConfig();
Ui::KWinCompositingConfig ui; Ui::KWinCompositingConfig ui;
CompositingPrefs mDefaultPrefs; CompositingPrefs mDefaultPrefs;
KSharedConfigPtr mNewConfig; KSharedConfigPtr mNewConfig;
KConfig* mBackupConfig; KConfig* mBackupConfig;
KTemporaryFile mTmpConfigFile;
KSharedConfigPtr mTmpConfig;
enum ElectricBorderEffects enum ElectricBorderEffects
{ {