[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/kcontrol/keyboard
From:       Andriy Rysin <arysin () gmail ! com>
Date:       2010-09-11 13:36:09
Message-ID: 20100911133609.4CF3DAC88C () svn ! kde ! org
[Download RAW message or body]

SVN commit 1174210 by rysin:

don't set the keyboard model if it already has right value

 M  +5 -2      x11_helper.cpp  
 M  +1 -1      x11_helper.h  
 M  +5 -47     xkb_helper.cpp  


--- trunk/KDE/kdebase/workspace/kcontrol/keyboard/x11_helper.cpp #1174209:1174210
@@ -221,6 +221,7 @@
 		return false;
 	}
 
+	if( fetchType == ALL || fetchType == LAYOUTS_ONLY ) {
 	QStringList layouts = names[2].split(OPTIONS_SEPARATOR);
 	QStringList variants = names[3].split(OPTIONS_SEPARATOR);
 
@@ -231,17 +232,19 @@
 	qDebug() << "Fetched layout groups from X server:"
 			<< "\tlayouts:" << xkbConfig->layouts
 			<< "\tvariants:" << xkbConfig->variants;
+	}
 
-	if( fetchType == ALL ) {
+	if( fetchType == ALL || fetchType == MODEL_ONLY ) {
 		xkbConfig->keyboardModel = (names[1] != NULL ? names[1] : "");
 		qDebug() << "Fetched keyboard model from X server:" << xkbConfig->keyboardModel;
+	}
 
+	if( fetchType == ALL ) {
 		if( names.count() >= 5 ) {
 			QString options = (names[4] != NULL ? names[4] : "");
 			xkbConfig->options = options.split(OPTIONS_SEPARATOR);
 			qDebug() << "Fetched xkbOptions from X server:" << options;
 		}
-
 	}
 
 	XFree(prop_data);
--- trunk/KDE/kdebase/workspace/kcontrol/keyboard/x11_helper.h #1174209:1174210
@@ -112,7 +112,7 @@
 	static QList<LayoutUnit> getLayoutsList();
 	static QStringList getLayoutsListAsString(const QList<LayoutUnit>& layoutsList);
 
-	enum FetchType { ALL, LAYOUTS_ONLY };
+	enum FetchType { ALL, LAYOUTS_ONLY, MODEL_ONLY };
 	static bool getGroupNames(Display* dpy, XkbConfig* xkbConfig, FetchType fetchType);
 
 private:
--- trunk/KDE/kdebase/workspace/kcontrol/keyboard/xkb_helper.cpp #1174209:1174210
@@ -22,6 +22,7 @@
 #include <QtCore/QDir>
 #include <QtCore/QString>
 #include <QtCore/QStringList>
+#include <QtGui/QX11Info>
 
 #include <kglobal.h>
 #include <kstandarddirs.h>
@@ -72,26 +73,17 @@
     }
 }
 
-//bool XkbHelper::initializeKeyboardLayouts()
-//{
-//	getSetxkbmapExe();
-//	if( ! setxkbmapNotFound ) {
-//
-//		KeyboardConfig config;
-//		config.load();
-//
-//		return XkbHelper::initializeKeyboardLayouts(config);
-//	}
-//	return false;
-//}
-
 bool XkbHelper::initializeKeyboardLayouts(KeyboardConfig& config)
 {
 	QStringList setxkbmapCommandArguments;
 	if( ! config.keyboardModel.isEmpty() ) {
+		XkbConfig xkbConfig;
+		X11Helper::getGroupNames(QX11Info::display(), &xkbConfig, X11Helper::MODEL_ONLY);
+		if( xkbConfig.keyboardModel != config.keyboardModel ) {
 		setxkbmapCommandArguments.append("-model");
 		setxkbmapCommandArguments.append(config.keyboardModel);
 	}
+	}
 	if( config.configureLayouts ) {
 		QStringList layouts;
 		QStringList variants;
@@ -136,37 +128,3 @@
 	}
 	return false;
 }
-
-//bool XkbHelper::initializeKeyboardHardware(KeyboardConfig& config)
-//{
-//	int numlockState = config.numlockState;
-//	if( config.numlockState != KeyboardConfig::NO_CHANGE ) {
-//		//TODO:
-////		numlockx_change_numlock_state( numlockState == 0 );
-//	}
-//
-//	if( config.keyboardRepeat ) {
-//		//TODO:
-////		set_repeatrate(config.repeatDelay, config.repeatRate);
-//	}
-//
-//	//TODO:
-////	clickVolume
-//}
-//
-//extern "C"
-//{
-//	KDE_EXPORT void kcminit_keyboard()
-//	{
-//		//TODO: better check if xkb is supported?
-//		getSetxkbmapExe();
-//		if( ! setxkbmapNotFound ) {
-//
-//			KeyboardConfig config;
-//			config.load();
-//
-//			KCMInit::initializeKeyboardHardware(config);
-//			KCMInit::initializeKeyboardLayouts(config);
-//		}
-//	}
-//}
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic