[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/kdecore
From: Luboš Luňák <l.lunak () kde ! org>
Date: 2005-03-29 13:41:27
Message-ID: 20050329134127.E3E9C3CF () office ! kde ! org
[Download RAW message or body]
CVS commit by lunakl:
Decode properly also shortcuts expressed as the Macintosh keyboard shortcuts.
M +13 -0 kkeyserver_x11.cpp 1.34
M +8 -0 kkeyserver_x11.h 1.16
M +5 -1 kshortcut.cpp 1.26
--- kdelibs/kdecore/kkeyserver_x11.cpp #1.33:1.34
@@ -792,4 +792,17 @@ QString modToStringInternal( uint mod )
QString modToStringUser( uint mod ) { return modToString( mod, true ); }
+uint stringUserToMod( const QString& mod )
+{
+ if( !g_bInitializedKKeyLabels )
+ intializeKKeyLabels();
+
+ QString s;
+ for( int i = KKey::MOD_FLAG_COUNT-1; i >= 0; i-- ) {
+ if( mod.lower() == g_rgModInfo[i].sLabel.lower())
+ return g_rgModInfo[i].mod;
+ }
+ return 0;
+}
+
/*void keySymModToKeyX( uint sym, uint mod, unsigned char *pKeyCodeX, uint *pKeySymX, uint *pKeyModX )
{
--- kdelibs/kdecore/kkeyserver_x11.h #1.15:1.16
@@ -447,4 +447,12 @@ namespace KKeyServer
/**
+ * Converts the modifier given as user-readable string
+ * to KKey::ModFlag modifier, or 0.
+ * @internal
+ * @since 3.5
+ */
+ KDECORE_EXPORT uint stringUserToMod( const QString& mod );
+
+ /**
* @internal
* Unimplemented?
--- kdelibs/kdecore/kshortcut.cpp #1.25:1.26
@@ -124,6 +124,10 @@ bool KKey::init( const QString& sSpec )
else if( s == "win" ) m_mod |= KKey::WIN;
else if( s == "meta" ) m_mod |= KKey::WIN;
+ else {
+ uint m = KKeyServer::stringUserToMod( s );
+ if( m != 0 ) m_mod |= m;
else break;
}
+ }
// If there is one non-blank key left:
if( (i == rgs.size() - 1 && !rgs[i].isEmpty()) ) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic