diff options
Diffstat (limited to 'twin/data/update_default_rules.cpp')
-rw-r--r-- | twin/data/update_default_rules.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/twin/data/update_default_rules.cpp b/twin/data/update_default_rules.cpp new file mode 100644 index 000000000..a5e018ba1 --- /dev/null +++ b/twin/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 twinrulesrc + +#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( "twin_update_default_rules" ); + TQString file = locate( "data", TQString( "twin/default_rules/" ) + argv[ 1 ] ); + if( file.isEmpty()) + { + kdWarning() << "File " << argv[ 1 ] << " not found!" << endl; + return 1; + } + KConfig src_cfg( file ); + KConfig dest_cfg( "twinrulesrc" ); + 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 ) + { + TQMap< TQString, TQString > entries = src_cfg.entryMap( TQString::number( group )); + ++pos; + dest_cfg.deleteGroup( TQString::number( pos )); + dest_cfg.setGroup( TQString::number( pos )); + for( TQMap< TQString, TQString >::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("twin*", "", "reconfigure()", TQString("")); + } |