summaryrefslogtreecommitdiffstats
path: root/kwin/data/update_default_rules.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/data/update_default_rules.cpp')
-rw-r--r--kwin/data/update_default_rules.cpp56
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()", "");
+ }