diff options
Diffstat (limited to 'kwin/data/update_default_rules.cpp')
-rw-r--r-- | kwin/data/update_default_rules.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/kwin/data/update_default_rules.cpp b/kwin/data/update_default_rules.cpp new file mode 100644 index 000000000..78adc6164 --- /dev/null +++ b/kwin/data/update_default_rules.cpp @@ -0,0 +1,56 @@ +/***************************************************************** + KWin - the KDE window manager + This file is part of the KDE project. + +Copyright (C) 2005 Lubos Lunak <l.lunak@kde.org> + +You can Freely distribute this program under the GNU General Public +License. See the file "COPYING" for the exact licensing terms. +******************************************************************/ + +// read addtional window rules and add them to kwinrulesrc + +#include <dcopclient.h> +#include <kconfig.h> +#include <kdebug.h> +#include <kinstance.h> +#include <kstandarddirs.h> + +int main( int argc, char* argv[] ) + { + if( argc != 2 ) + return 1; + KInstance inst( "kwin_update_default_rules" ); + QString file = locate( "data", QString( "kwin/default_rules/" ) + argv[ 1 ] ); + if( file.isEmpty()) + { + kdWarning() << "File " << argv[ 1 ] << " not found!" << endl; + return 1; + } + KConfig src_cfg( file ); + KConfig dest_cfg( "kwinrulesrc" ); + src_cfg.setGroup( "General" ); + dest_cfg.setGroup( "General" ); + int count = src_cfg.readNumEntry( "count", 0 ); + int pos = dest_cfg.readNumEntry( "count", 0 ); + for( int group = 1; + group <= count; + ++group ) + { + QMap< QString, QString > entries = src_cfg.entryMap( QString::number( group )); + ++pos; + dest_cfg.deleteGroup( QString::number( pos )); + dest_cfg.setGroup( QString::number( pos )); + for( QMap< QString, QString >::ConstIterator it = entries.begin(); + it != entries.end(); + ++it ) + dest_cfg.writeEntry( it.key(), *it ); + } + dest_cfg.setGroup( "General" ); + dest_cfg.writeEntry( "count", pos ); + src_cfg.sync(); + dest_cfg.sync(); + DCOPClient client; + client.attach(); + client.send("kwin*", "", "reconfigure()", ""); + } |