File fix_use_system_cert.patch of Package knetworkmanager-kde3

Index: knetworkmanager/src/knetworkmanager-connection_setting_8021x.h
===================================================================
--- knetworkmanager/src/knetworkmanager-connection_setting_8021x.h	(Revision 908142)
+++ knetworkmanager/src/knetworkmanager-connection_setting_8021x.h	(Revision 908143)
@@ -144,6 +144,9 @@
 		QString  getCaPath(void) const;
 		void     setCaPath(QString);
 
+		bool     getUseSystemCaCert(void) const;
+		void     setUseSystemCaCert(bool);
+
 		//FIXME
 		// client cert
 
@@ -166,6 +169,7 @@
 		QString             _identity;
 		QString             _anonIdentity;
 		QByteArray          _caCert;
+		bool                _useSystemCaCert;
 		QString             _caPath;
 		QByteArray          _clientCert;
 		QByteArray          _privateKey;
Index: knetworkmanager/src/knetworkmanager-connection_setting_wireless_security_widget.h
===================================================================
--- knetworkmanager/src/knetworkmanager-connection_setting_wireless_security_widget.h	(Revision 908142)
+++ knetworkmanager/src/knetworkmanager-connection_setting_wireless_security_widget.h	(Revision 908143)
@@ -158,6 +158,7 @@
 			void slotIdentityChanged(const QString&);
 			void slotAnonIdentityChanged(const QString&);
 			void slotPasswordChanged(const QString&);
+			void slotUseSystemCaCertChanged(bool on);
 
 		private:
 			IEEE8021x* _security_setting;
Index: knetworkmanager/src/knetworkmanager-connection_setting_8021x.cpp
===================================================================
--- knetworkmanager/src/knetworkmanager-connection_setting_8021x.cpp	(Revision 908142)
+++ knetworkmanager/src/knetworkmanager-connection_setting_8021x.cpp	(Revision 908143)
@@ -62,6 +62,7 @@
 	, _eapPhase2(EAP_PHASE2_AUTH_NONE)
 	, _phase2AuthEAP(QString::null)
 	, _phase2CaPath(QString::null)
+	, _useSystemCaCert(false)
 {
 	// init eap map
 	_eapMap[EAP_NONE] = QString::null;
@@ -120,6 +121,18 @@
 	return _password;
 }
 
+bool
+IEEE8021x::getUseSystemCaCert(void) const
+{
+	return _useSystemCaCert;
+}
+
+void
+IEEE8021x::setUseSystemCaCert(bool use)
+{
+	_useSystemCaCert = use;
+}
+
 IEEE8021x::EAP_PHASE1
 IEEE8021x::getEAP(void) const
 {
@@ -178,6 +191,8 @@
 	if (!_caPath.isEmpty())
 		map.insert(NM_SETTING_802_1X_CA_PATH, QDBusData::fromString(_caPath));
 
+	map.insert(NM_SETTING_802_1X_SYSTEM_CA_CERTS, QDBusData::fromBool(_useSystemCaCert));
+
 //FIXME
 /*
 	if (!_clientCert.isNull())
@@ -286,6 +301,8 @@
 			_phase2AuthEAP = it.data().toString();
 		else if (it.key() == NM_SETTING_802_1X_PHASE2_CA_PATH)
 			_phase2CaPath = it.data().toString();
+		else if (it.key() == NM_SETTING_802_1X_SYSTEM_CA_CERTS)
+			_useSystemCaCert = it.data().toBool();
 		else
 			kdWarning() << k_funcinfo << " Unknown setting: " << it.key() << endl;
 	}
Index: knetworkmanager/src/knetworkmanager-connection_setting_wireless_security_widget.cpp
===================================================================
--- knetworkmanager/src/knetworkmanager-connection_setting_wireless_security_widget.cpp	(Revision 908142)
+++ knetworkmanager/src/knetworkmanager-connection_setting_wireless_security_widget.cpp	(Revision 908143)
@@ -517,13 +517,23 @@
 	txtAnonIdentity->setText(_security_setting->getAnonIdentity());
 	txtPassword->setText(_security_setting->getPassword());
 
+	chkCAStore->setChecked(_security_setting->getUseSystemCaCert());
+	kURLCACert->setEnabled(!_security_setting->getUseSystemCaCert());
+
 	// get notified if the method changes
 	connect(cboMethod, SIGNAL(activated(int)), this, SLOT(slotMethodChanged(int)));
 	connect(txtIdentity, SIGNAL(textChanged(const QString&)), this, SLOT(slotIdentityChanged(const QString&)));
 	connect(txtAnonIdentity, SIGNAL(textChanged(const QString&)), this, SLOT(slotAnonIdentityChanged(const QString&)));
 	connect(txtPassword, SIGNAL(textChanged(const QString&)), this, SLOT(slotPasswordChanged(const QString&)));
+	connect(chkCAStore, SIGNAL(toggled(bool)), this, SLOT(slotUseSystemCaCertChanged(bool)));
 }
 
+void WirelessSecurityEAPImpl::slotUseSystemCaCertChanged(bool on)
+{
+	_security_setting->setUseSystemCaCert(on);
+	kURLCACert->setEnabled(!on);
+}
+
 void WirelessSecurityEAPImpl::slotMethodChanged(int index)
 {
 	// new method choosen
Index: knetworkmanager/src/connection_setting_wireless_security_eap.ui
===================================================================
--- knetworkmanager/src/connection_setting_wireless_security_eap.ui	(Revision 908142)
+++ knetworkmanager/src/connection_setting_wireless_security_eap.ui	(Revision 908143)
@@ -8,8 +8,8 @@
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>493</width>
-            <height>180</height>
+            <width>583</width>
+            <height>174</height>
         </rect>
     </property>
     <property name="caption">
@@ -80,6 +80,24 @@
                         <string>Password:</string>
                     </property>
                 </widget>
+                <widget class="KPasswordEdit" row="3" column="1">
+                    <property name="name">
+                        <cstring>txtPassword</cstring>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="4" column="0">
+                    <property name="name">
+                        <cstring>textLabel16</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Private Secret Key:</string>
+                    </property>
+                </widget>
+                <widget class="KPasswordEdit" row="4" column="1">
+                    <property name="name">
+                        <cstring>txtPrivateSecretKey</cstring>
+                    </property>
+                </widget>
                 <widget class="QLabel" row="0" column="2">
                     <property name="name">
                         <cstring>textLabel12</cstring>
@@ -88,15 +106,17 @@
                         <string>Client Certificate:</string>
                     </property>
                 </widget>
-                <widget class="QLabel" row="1" column="2">
+                <widget class="KURLRequester" row="0" column="3">
                     <property name="name">
-                        <cstring>textLabel14</cstring>
+                        <cstring>kURLClientCert</cstring>
                     </property>
-                    <property name="text">
-                        <string>CA Certificate:</string>
+                </widget>
+                <widget class="KURLRequester" row="1" column="3">
+                    <property name="name">
+                        <cstring>kURLPrivateKey</cstring>
                     </property>
                 </widget>
-                <widget class="QLabel" row="2" column="2">
+                <widget class="QLabel" row="1" column="2">
                     <property name="name">
                         <cstring>textLabel15</cstring>
                     </property>
@@ -106,35 +126,31 @@
                 </widget>
                 <widget class="QLabel" row="3" column="2">
                     <property name="name">
-                        <cstring>textLabel16</cstring>
+                        <cstring>textLabel14</cstring>
                     </property>
                     <property name="text">
-                        <string>Private Secret Key:</string>
+                        <string>CA Certificate:</string>
                     </property>
                 </widget>
-                <widget class="KPasswordEdit" row="3" column="1">
+                <widget class="KURLRequester" row="3" column="3">
                     <property name="name">
-                        <cstring>txtPassword</cstring>
+                        <cstring>kURLCACert</cstring>
                     </property>
                 </widget>
-                <widget class="KURLRequester" row="0" column="3">
+                <widget class="QLabel" row="2" column="2">
                     <property name="name">
-                        <cstring>kURLClientCert</cstring>
+                        <cstring>textLabel1</cstring>
                     </property>
-                </widget>
-                <widget class="KURLRequester" row="1" column="3">
-                    <property name="name">
-                        <cstring>kURLCACert</cstring>
+                    <property name="text">
+                        <string>Use System CA Certificates</string>
                     </property>
                 </widget>
-                <widget class="KURLRequester" row="2" column="3">
+                <widget class="QCheckBox" row="2" column="3">
                     <property name="name">
-                        <cstring>kURLPrivateKey</cstring>
+                        <cstring>chkCAStore</cstring>
                     </property>
-                </widget>
-                <widget class="KPasswordEdit" row="3" column="3">
-                    <property name="name">
-                        <cstring>txtPrivateSecretKey</cstring>
+                    <property name="text">
+                        <string></string>
                     </property>
                 </widget>
             </grid>
@@ -143,6 +159,5 @@
 </widget>
 <layoutdefaults spacing="6" margin="11"/>
 <includehints>
-
 </includehints>
 </UI>
openSUSE Build Service is sponsored by