summaryrefslogtreecommitdiffstats
path: root/kwin/data/update_window_settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/data/update_window_settings.cpp')
-rw-r--r--kwin/data/update_window_settings.cpp168
1 files changed, 0 insertions, 168 deletions
diff --git a/kwin/data/update_window_settings.cpp b/kwin/data/update_window_settings.cpp
deleted file mode 100644
index a82e26492..000000000
--- a/kwin/data/update_window_settings.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/*****************************************************************
- KWin - the KDE window manager
- This file is part of the KDE project.
-
-Copyright (C) 2004 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.
-******************************************************************/
-
-// updates per-window settings from KDE3.2 to KDE3.3
-
-#include <netwm_def.h>
-#include <kconfig.h>
-#include <kinstance.h>
-#include <dcopclient.h>
-
-struct SessionInfo
- {
- TQCString sessionId;
- TQCString windowRole;
- TQCString wmCommand;
- TQCString wmClientMachine;
- TQCString resourceName;
- TQCString resourceClass;
-
- TQRect geometry;
- TQRect restore;
- TQRect fsrestore;
- int maximized;
- int fullscreen;
- int desktop;
- bool minimized;
- bool onAllDesktops;
- bool shaded;
- bool keepAbove;
- bool keepBelow;
- bool skipTaskbar;
- bool skipPager;
- bool userNoBorder;
- NET::WindowType windowType;
- bool active; // means 'was active in the saved session', not used otherwise
- bool fake; // fake session, i.e. 'save window settings', not SM restored
- };
-
-TQPtrList<SessionInfo> fakeSession;
-
-static const char* const window_type_names[] =
- {
- "Unknown", "Normal" , "Desktop", "Dock", "Toolbar", "Menu", "Dialog",
- "Override", "TopMenu", "Utility", "Splash"
- };
- // change also the two functions below when adding new entries
-
-NET::WindowType txtToWindowType( const char* txt )
- {
- for( int i = NET::Unknown;
- i <= NET::Splash;
- ++i )
- if( qstrcmp( txt, window_type_names[ i + 1 ] ) == 0 ) // +1
- return static_cast< NET::WindowType >( i );
- return static_cast< NET::WindowType >( -2 ); // undefined
- }
-
-void loadFakeSessionInfo( KConfig* config )
- {
- fakeSession.clear();
- config->setGroup("FakeSession" );
- int count = config->readNumEntry( "count" );
- for ( int i = 1; i <= count; i++ )
- {
- TQString n = TQString::number(i);
- SessionInfo* info = new SessionInfo;
- fakeSession.append( info );
- info->windowRole = config->readEntry( TQString("windowRole")+n ).latin1();
- info->resourceName = config->readEntry( TQString("resourceName")+n ).latin1();
- info->resourceClass = config->readEntry( TQString("resourceClass")+n ).lower().latin1();
- info->wmClientMachine = config->readEntry( TQString("clientMachine")+n ).latin1();
- info->geometry = config->readRectEntry( TQString("geometry")+n );
- info->restore = config->readRectEntry( TQString("restore")+n );
- info->fsrestore = config->readRectEntry( TQString("fsrestore")+n );
- info->maximized = config->readNumEntry( TQString("maximize")+n, 0 );
- info->fullscreen = config->readNumEntry( TQString("fullscreen")+n, 0 );
- info->desktop = config->readNumEntry( TQString("desktop")+n, 0 );
- info->minimized = config->readBoolEntry( TQString("iconified")+n, FALSE );
- info->onAllDesktops = config->readBoolEntry( TQString("sticky")+n, FALSE );
- info->shaded = config->readBoolEntry( TQString("shaded")+n, FALSE );
- info->keepAbove = config->readBoolEntry( TQString("staysOnTop")+n, FALSE );
- info->keepBelow = config->readBoolEntry( TQString("keepBelow")+n, FALSE );
- info->skipTaskbar = config->readBoolEntry( TQString("skipTaskbar")+n, FALSE );
- info->skipPager = config->readBoolEntry( TQString("skipPager")+n, FALSE );
- info->userNoBorder = config->readBoolEntry( TQString("userNoBorder")+n, FALSE );
- info->windowType = txtToWindowType( config->readEntry( TQString("windowType")+n ).latin1());
- info->active = false;
- info->fake = true;
- }
- config->deleteGroup( "FakeSession" );
- }
-
-void writeRules( KConfig& cfg )
- {
- cfg.setGroup( "General" );
- int pos = cfg.readNumEntry( "count" );
- for ( SessionInfo* info = fakeSession.first(); info; info = fakeSession.next() )
- {
- if( info->resourceName.isEmpty() && info->resourceClass.isEmpty())
- continue;
- ++pos;
- cfg.setGroup( TQString::number( pos ));
- cfg.writeEntry( "description", ( const char* ) ( info->resourceClass + " (KDE3.2)" ));
- cfg.writeEntry( "wmclass", ( const char* )( info->resourceName + ' ' + info->resourceClass ));
- cfg.writeEntry( "wmclasscomplete", true );
- cfg.writeEntry( "wmclassmatch", 1 ); // 1 == exact match
- if( !info->windowRole.isEmpty())
- {
- cfg.writeEntry( "windowrole", ( const char* ) info->windowRole );
- cfg.writeEntry( "windowrolematch", 1 );
- }
- if( info->windowType == static_cast< NET::WindowType >( -2 )) // undefined
- {} // all types
- if( info->windowType == NET::Unknown )
- cfg.writeEntry( "types", NET::NormalMask );
- else
- cfg.writeEntry( "types", 1 << info->windowType );
- cfg.writeEntry( "position", info->geometry.topLeft());
- cfg.writeEntry( "positionrule", 4 ); // 4 == remember
- cfg.writeEntry( "size", info->geometry.size());
- cfg.writeEntry( "sizerule", 4 );
- cfg.writeEntry( "maximizevert", info->maximized & NET::MaxVert );
- cfg.writeEntry( "maximizevertrule", 4 );
- cfg.writeEntry( "maximizehoriz", info->maximized & NET::MaxHoriz );
- cfg.writeEntry( "maximizehorizrule", 4 );
- cfg.writeEntry( "fullscreen", info->fullscreen );
- cfg.writeEntry( "fullscreenrule", 4 );
- cfg.writeEntry( "desktop", info->desktop );
- cfg.writeEntry( "desktoprule", 4 );
- cfg.writeEntry( "minimize", info->minimized );
- cfg.writeEntry( "minimizerule", 4 );
- cfg.writeEntry( "shade", info->shaded );
- cfg.writeEntry( "shaderule", 4 );
- cfg.writeEntry( "above", info->keepAbove );
- cfg.writeEntry( "aboverule", 4 );
- cfg.writeEntry( "below", info->keepBelow );
- cfg.writeEntry( "belowrule", 4 );
- cfg.writeEntry( "skiptaskbar", info->skipTaskbar );
- cfg.writeEntry( "skiptaskbarrule", 4 );
- cfg.writeEntry( "skippager", info->skipPager );
- cfg.writeEntry( "skippagerrule", 4 );
- cfg.writeEntry( "noborder", info->userNoBorder );
- cfg.writeEntry( "noborderrule", 4 );
- }
- cfg.setGroup( "General" );
- cfg.writeEntry( "count", pos );
- }
-
-int main()
- {
- KInstance inst( "twin_update_window_settings" );
- KConfig src_cfg( "twinrc" );
- KConfig dest_cfg( "twinrulesrc" );
- loadFakeSessionInfo( &src_cfg );
- writeRules( dest_cfg );
- src_cfg.sync();
- dest_cfg.sync();
- DCOPClient client;
- client.attach();
- client.send("twin*", "", "reconfigure()", TQString(""));
- }