Return KKeyEntry to its original self (for BC reasons).

Description

Return KKeyEntry to its original self (for BC reasons).

Index: kdecore/kaccel.cpp

RCS file: /home/kde/kdelibs/kdecore/kaccel.cpp,v
retrieving revision 1.82
diff -u -3 -d -p -r1.82 kaccel.cpp

  • kdecore/kaccel.cpp 2001/06/15 13:33:50 1.82

+++ kdecore/kaccel.cpp 2001/06/19 18:50:51
@@ -67,7 +67,7 @@ QString KKey::toString() { return KAcce
void KKeyEntry::operator=(const KKeyEntry& e) {

aCurrentKeyCode = e.aCurrentKeyCode;
aDefaultKeyCode = e.aDefaultKeyCode;
  • aDefaultKeyCode4 = e.aDefaultKeyCode4;

+ //aDefaultKeyCode4 = e.aDefaultKeyCode4;

aConfigKeyCode = e.aConfigKeyCode;
bConfigurable = e.bConfigurable;
bEnabled = e.bEnabled;

@@ -77,14 +77,12 @@ void KKeyEntry::operator=(const KKeyEntr

descr = e.descr;
menuId = e.menuId;
menu = e.menu;
  • keyCodeNative = e.keyCodeNative;
  • keyModNative = e.keyModNative; }

    KKeyEntry::KKeyEntry() { aCurrentKeyCode = 0; aDefaultKeyCode = 0;
  • aDefaultKeyCode4 = 0;

+ //aDefaultKeyCode4 = 0;

aConfigKeyCode = 0;
bConfigurable = false;
bEnabled = false;

@@ -93,8 +91,6 @@ KKeyEntry::KKeyEntry() {

member = 0;
menuId = 0;
menu = 0;
  • keyCodeNative = 0;
  • keyModNative = 0; }

    KKeyEntry::KKeyEntry(const KKeyEntry& e) {

@@ -227,8 +223,8 @@ bool KAccel::insertItem( const QString&

KKeyEntry entry;

entry.aDefaultKeyCode = defaultKeyCode3.key();
  • entry.aDefaultKeyCode4 = defaultKeyCode4.key();
  • entry.aCurrentKeyCode = entry.aConfigKeyCode = useFourModifierKeys() ? defaultKeyCode4.key() : defaultKeyCode3.key();

+ //entry.aDefaultKeyCode4 = defaultKeyCode4.key();
+ entry.aCurrentKeyCode = /*entry.aConfigKeyCode = useFourModifierKeys() ? defaultKeyCode4.key() : */ defaultKeyCode3.key();

kdDebug(125) << "useFourModifierKeys() = " << useFourModifierKeys() << " entry.aCurrentKeyCode = " << entry.aCurrentKeyCode << endl;
entry.bConfigurable = configurable;
entry.descr = descr;

@@ -381,7 +377,7 @@ void KAccel::readKeyMap( KKeyEntryMap &m

s = pConfig->readEntry(it.key());

if ( s.isNull() || s.startsWith( "default" ))
  • (*it).aConfigKeyCode = useFourModifierKeys() ? (*it).aDefaultKeyCode4 : (*it).aDefaultKeyCode;

+ (*it).aConfigKeyCode = /*useFourModifierKeys() ? (*it).aDefaultKeyCode4 :*/ (*it).aDefaultKeyCode;

else if( s == "none" )
    (*it).aConfigKeyCode = 0;
else

Index: kdecore/kaccel.h

RCS file: /home/kde/kdelibs/kdecore/kaccel.h,v
retrieving revision 1.54
diff -u -3 -d -p -r1.54 kaccel.h

  • kdecore/kaccel.h 2001/06/15 13:33:50 1.54

+++ kdecore/kaccel.h 2001/06/19 18:50:53
@@ -67,7 +67,7 @@ struct KKeyEntry {

public:
   int aCurrentKeyCode;
   int aDefaultKeyCode;		// For keyboards with no meta key
  • int aDefaultKeyCode4; // For keyboards with meta key (4 modifiers)

+ int aDefaultKeyCode4; For keyboards with meta key (4 modifiers)

int aConfigKeyCode;
bool bConfigurable;
bool bEnabled;

@@ -77,7 +77,6 @@ struct KKeyEntry {

QString descr;
int menuId;
QPopupMenu *menu;
  • uint keyCodeNative, keyModNative; // For storing the X11 codes (for global shortcuts)

    void operator=(const KKeyEntry& e); KKeyEntry();

Index: kdecore/kglobalaccel.cpp

RCS file: /home/kde/kdelibs/kdecore/kglobalaccel.cpp,v
retrieving revision 1.60
diff -u -3 -d -p -r1.60 kglobalaccel.cpp

  • kdecore/kglobalaccel.cpp 2001/06/19 14:54:45 1.60

+++ kdecore/kglobalaccel.cpp 2001/06/19 18:50:54
@@ -48,6 +48,13 @@ const int XKeyPress = KeyPress;
NOTE ABOUT CONFIGURATION CHANGES
Test if keys enabled because these keys have made X server grabs

+struct KKeyNative {
+ uint keyCode, keyMod; // For storing the X11 codes (for global shortcuts)
+
+ KKeyNative() : keyCode(0), keyMod(0) { }
+};
+typedef QMap<QString, KKeyNative> KKeyNativeMap;
+
class KGlobalAccelPrivate : public QWidget
{
public:
@@ -73,6 +80,7 @@ private:
public:

QStringList* rawModeList;
static bool g_bKeyEventsEnabled;

+ KKeyNativeMap keyNativeMap;
};

bool KGlobalAccelPrivate::g_bKeyEventsEnabled = true;
@@ -167,7 +175,7 @@ QString KGlobalAccel::findKey( int key )
}

bool KGlobalAccel::insertItem( const QString& descr, const QString& action,

  • KKey defaultKeyCode3, KKey defaultKeyCode4,

+ KKey defaultKeyCode3, KKey /*defaultKeyCode4*/,

bool configurable )

{

if (aKeyMap.contains(action))

@@ -175,8 +183,8 @@ bool KGlobalAccel::insertItem( const QS

KKeyEntry entry;
entry.aDefaultKeyCode = defaultKeyCode3.key();
  • entry.aDefaultKeyCode4 = defaultKeyCode4.key();
  • entry.aCurrentKeyCode = entry.aConfigKeyCode = KAccel::useFourModifierKeys() ? defaultKeyCode4.key() : defaultKeyCode3.key();

+ //entry.aDefaultKeyCode4 = defaultKeyCode4.key();
+ entry.aCurrentKeyCode = /*try.aConfigKeyCode = KAccel::useFourModifierKeys() ? defaultKeyCode4.key() : */ defaultKeyCode3.key();

entry.bConfigurable = configurable;
entry.bEnabled = false;
entry.aAccelId = 0;

@@ -218,7 +226,7 @@ KKeyEntryMap KGlobalAccel::keyDict() con
void KGlobalAccel::readSettings(KConfig* config)
{

	kdDebug(125) << "KGlobalAccel::readSettings()\n";
  • QArray<KKeyEntry*> aKeysToGrab( aKeyMap.count() );

+ QMap<int, QString> aKeysToGrab;

	int cKeysToGrab = 0;

	KConfigBase *pConfig = config ? config : KGlobal::config();

@@ -232,20 +240,26 @@ void KGlobalAccel::readSettings(KConfig*

		uint keyQt;
		uchar keyCodeX;
		uint keyModX;

+ KKeyNative keyNative;

		if ( keyStr.isEmpty() || keyStr.startsWith( "default" ))
  • keyQt = KAccel::useFourModifierKeys() ? (*it).aDefaultKeyCode4 : (*it).aDefaultKeyCode;

+ keyQt = /*KAccel::useFourModifierKeys() ? (*it).aDefaultKeyCode4 :*/ (*it).aDefaultKeyCode;

		else
			keyQt = KAccel::stringToKey( keyStr );

+ if( d->keyNativeMap.contains( it.key() ) )
+ keyNative = d->keyNativeMap[ it.key() ];
+
+ // Get X keycodes for current X keymap.

		KAccel::keyQtToKeyX( keyQt, &keyCodeX, 0, &keyModX );

		kdDebug(125) << QString( it.key()+" = "+keyStr+" key: 0x%1 curKey: 0x%2 enabled: %3\n" )
			.arg( keyQt, 0, 16 ). arg( (*it).aCurrentKeyCode, 0, 16 ).arg( (*it).bEnabled );

		// If the X codes have changed,
  • if( (*it).bEnabled && (keyCodeX != (*it).keyCodeNative || keyModX != (*it).keyModNative) && keyCodeX != 0 ) {
  • grabKey( &(*it), false );
  • aKeysToGrab[cKeysToGrab++] = &(*it);

+ if( (*it).bEnabled && (keyCodeX != keyNative.keyCode || keyModX != keyNative.keyMod) ) {
+ if( keyNative.keyCode )
+ grabKey( it.key(), false );
+ aKeysToGrab[cKeysToGrab++] = it.key();

		}
		(*it).aConfigKeyCode = (*it).aCurrentKeyCode = keyQt;
	}

@@ -303,17 +317,11 @@ void KGlobalAccel::setItemEnabled( const

}

KKeyEntry& entry = aKeyMap[action];
  • if( entry.bEnabled == activate )
  • return;
  • aKeyMap[action].bEnabled = activate; -
  • if ( entry.aCurrentKeyCode == 0 ) return; -
  • if ( entry.bEnabled )
  • grabKey( &entry, true );
  • else
  • grabKey( &entry, false ); -

+ if ( entry.bEnabled != activate ) {
+ aKeyMap[action].bEnabled = activate;
+ if ( entry.aCurrentKeyCode )
+ grabKey( action, activate );
+ }
}

bool KGlobalAccel::setKeyDict( const KKeyEntryMap& nKeyMap )
@@ -323,11 +331,12 @@ bool KGlobalAccel::setKeyDict( const KKe

	// ungrab all connected and enabled keys
        QString s;
        if ( (*it).bEnabled )
  • grabKey( (KKeyEntry*)&(*it), false );

+ grabKey( it.key(), false );

}

// Clear the dictionary
aKeyMap.clear();

+ d->keyNativeMap.clear();

// Insert the new items into the dictionary and reconnect if neccessary
// Note also swap config and current key codes !!!!!!

@@ -341,7 +350,7 @@ bool KGlobalAccel::setKeyDict( const KKe

aKeyMap[it.key()] = entry;
if ( entry.bEnabled )
  • grabKey( &entry, true );

+ grabKey( it.key(), true );

}
return true;

}
@@ -397,29 +406,39 @@ static void calculateGrabMasks()

	g_keyModMaskXAlwaysOff |= KAccel::keyModXModeSwitch();

}

-bool KGlobalAccel::grabKey( KKeyEntry *pKeyEntry, bool bGrab )
+bool KGlobalAccel::grabKey( const QString &action, bool bGrab )
{

  • if (do_not_grab)
  • return true;
  • if( !pKeyEntry )

+ if( action.isEmpty() )

		return false;

+ if( bGrab ) {
+ if( do_not_grab )
+ return true;
+ if( !aKeyMap.contains( action ) )
+ return false;
+ } else if( !d->keyNativeMap.contains( action ) ) {
+ kdDebug(125) << "Tried to ungrab an action (" << action <<") which is not is d->keyNativeMap." << endl;
+ return false;
+ }

	// Make sure that grab masks have been initialized.
	if( g_keyModMaskXOnOrOff == 0 )
		calculateGrabMasks();

	// Get the X equivalents.
  • KKey key = pKeyEntry->aCurrentKeyCode;

+ KKey key;
+ KKeyNative keyNative;

	uchar keyCodeX;
	uint keyModX;

	if( bGrab ) {

+ key = aKeyMap[action].aCurrentKeyCode;

		KAccel::keyQtToKeyX( key.key(), &keyCodeX, 0, &keyModX );
  • pKeyEntry->keyCodeNative = keyCodeX;
  • pKeyEntry->keyModNative = keyModX;

+ keyNative.keyCode = keyCodeX;
+ keyNative.keyMod = keyModX;
+ d->keyNativeMap[action] = keyNative;

	} else {
  • keyCodeX = pKeyEntry->keyCodeNative;
  • keyModX = pKeyEntry->keyModNative;

+ keyCodeX = d->keyNativeMap[action].keyCode;
+ keyModX = d->keyNativeMap[action].keyMod;

	}

	keyModX &= g_keyModMaskXAccel; // Get rid of any non-relevant bits in mod

@@ -427,7 +446,7 @@ bool KGlobalAccel::grabKey( KKeyEntry *p
#ifndef osf
// this crashes under Tru64 so .....

	kdDebug(125) << QString( "grabKey( key: 0x%1, bGrab: %2 ): %3 keyCodeX: %4 keyModX: %5\n" )
  • .arg( key.key(), 0, 16 ).arg( bGrab ).arg( bGrab ? key.toString() : "" )

+ .arg( key.key(), 0, 16 ).arg( bGrab ).arg( action )

		.arg( keyCodeX, 0, 16 ).arg( keyModX, 0, 16 );

#endif

@@ -456,16 +475,17 @@ bool KGlobalAccel::grabKey( KKeyEntry *p

				// If grab failed, then ungrab any previously successful grabs.
				if( grabFailed ) {
					kdDebug(125) << "grab failed!\n";
  • pKeyEntry->keyCodeNative = 0;
  • pKeyEntry->keyModNative = 0;

+ d->keyNativeMap.remove( action );

					for( uint m = 0; m < irrelevantBitsMask; m++ ) {
						if( m & keyModMaskX == 0 )
							XUngrabKey( qt_xdisplay(), keyCodeX, keyModX | m, qt_xrootwin() );
					}
					break;
				}
  • } else

+ } else {
+ d->keyNativeMap.remove( action );

				XUngrabKey( qt_xdisplay(), keyCodeX, keyModX | irrelevantBitsMask, qt_xrootwin() );

+ }

		}
	}

Index: kdecore/kglobalaccel.h

RCS file: /home/kde/kdelibs/kdecore/kglobalaccel.h,v
retrieving revision 1.22
diff -u -3 -d -p -r1.22 kglobalaccel.h

  • kdecore/kglobalaccel.h 2001/06/19 14:54:45 1.22

+++ kdecore/kglobalaccel.h 2001/06/19 18:50:55
@@ -290,7 +290,7 @@ protected:

	//  Return true if successful.
	// Modifications with NumLock, CapsLock, ScrollLock, and ModeSwitch are
	//  also grabbed.
  • bool grabKey( KKeyEntry *pKeyEntry, bool bGrab );

+ bool grabKey( const QString& action, bool bGrab );

    	/**
	 * Filters X11 events ev for key bindings in the accelerator dictionary.

Index: kdeui/kkeydialog.cpp

RCS file: /home/kde/kdelibs/kdeui/kkeydialog.cpp,v
retrieving revision 1.84
diff -u -3 -d -p -r1.84 kkeydialog.cpp

  • kdeui/kkeydialog.cpp 2001/06/12 20:00:28 1.84

+++ kdeui/kkeydialog.cpp 2001/06/19 18:50:59
@@ -527,7 +527,7 @@ void KKeyChooser::init( KKeyEntryMap *aK

				delete pProgramItem;
			pProgramItem = pParentItem = pItem;
		} else if( it.key().contains("Group:") ) {
  • pItem = new QListViewItem( pProgramItem, pItem, (*it).descr );

+ pItem = new QListViewItem( pProgramItem, pParentItem, (*it).descr );

			pItem->setSelectable( false );
			pItem->setExpandable( true );
			pItem->setOpen( true );

@@ -736,7 +736,7 @@ void KKeyChooser::toChange( QListViewIte

} else {
    /* get the entry */
    KKeyEntryMap::Iterator it = d->actionMap[item];
  • int keyDefault = d->bPreferFourModifierKeys ? (*it).aDefaultKeyCode4 : (*it).aDefaultKeyCode;

+ int keyDefault = /*d->bPreferFourModifierKeys ? (*it).aDefaultKeyCode4 :*/ (*it).aDefaultKeyCode;

	// Set key strings
	QString keyStrCfg = KAccel::keyToString( (*it).aConfigKeyCode, true );

@@ -814,8 +814,8 @@ void KKeyChooser::defaultKey()

/* update the list and the change area */
if( d->actionMap.contains( item ) ) {
    (*d->actionMap[item]).aConfigKeyCode =
  • (d->bPreferFourModifierKeys) ?
  • (*d->actionMap[item]).aDefaultKeyCode4 :

+ /*(d->bPreferFourModifierKeys) ?
+ (*d->actionMap[item]).aDefaultKeyCode4 :*/

        (*d->actionMap[item]).aDefaultKeyCode;

item->setText( 1,

@@ -844,7 +844,7 @@ void KKeyChooser::allDefault( bool useFo

	    //kdDebug(125) << QString( "allDefault: %1 3:%2 4:%3\n" ).arg(it.key()).arg((*it).aDefaultKeyCode).arg((*it).aDefaultKeyCode4);
            if ( (*it).bConfigurable ) {
                (*it).aCurrentKeyCode = (*it).aConfigKeyCode =
  • (useFourModifierKeys) ? (*it).aDefaultKeyCode4 : (*it).aDefaultKeyCode;

+ /*(useFourModifierKeys) ? (*it).aDefaultKeyCode4 :*/ (*it).aDefaultKeyCode;

        }
        at->setText(1, KAccel::keyToString((*it).aConfigKeyCode, true));
}

Details

Committed
ellisJun 19 2001, 6:59 PM
Parents
R883:103063: qDebug() -> kdDebug(125)
Branches
Unknown
Tags
Unknown