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

List:       kde-commits
Subject:    [plasma-desktop/andriy/keyboard] kcms/keyboard: port UI code to kf5 (button groups)
From:       Andriy Rysin <arysin () gmail ! com>
Date:       2014-10-06 16:26:16
Message-ID: E1XbB72-0004ji-Ou () scm ! kde ! org
[Download RAW message or body]

Git commit 0b60beec31e5e6c711394334f1936268fd785afd by Andriy Rysin.
Committed on 06/10/2014 at 16:23.
Pushed by rysin into branch 'andriy/keyboard'.

port UI code to kf5 (button groups)

M  +25   -12   kcms/keyboard/kcmmisc.cpp
M  +5    -3    kcms/keyboard/kcmmisc.h
M  +6    -14   kcms/keyboard/kcmmiscwidget.ui
M  +5    -3    kcms/keyboard/keyboard_hardware.cpp
M  +1    -0    kcms/keyboard/xinput_helper.cpp

http://commits.kde.org/plasma-desktop/0b60beec31e5e6c711394334f1936268fd785afd

diff --git a/kcms/keyboard/kcmmisc.cpp b/kcms/keyboard/kcmmisc.cpp
index c13946e..381e4c6 100644
--- a/kcms/keyboard/kcmmisc.cpp
+++ b/kcms/keyboard/kcmmisc.cpp
@@ -32,6 +32,7 @@
 #include <QX11Info>
 #include <QSpinBox>
 #include <QDoubleSpinBox>
+#include <QButtonGroup>
 
 #include <klocale.h>
 #include <kconfig.h>
@@ -62,15 +63,27 @@ KCMiscKeyboardWidget::KCMiscKeyboardWidget(QWidget *parent)
   ui.rateSlider->setPageStep(500);
   ui.rateSlider->setTickInterval(498);
 
-  connect(ui.keyboardRepeatButtonGroup, SIGNAL(clicked()), this, SLOT(changed()));
-  connect(ui.keyboardRepeatButtonGroup, SIGNAL(changed(int)), this, \
SLOT(keyboardRepeatStateChanged(int)));  connect(ui.delay, SIGNAL(valueChanged(int)), this, \
SLOT(delaySpinboxChanged(int)));  connect(ui.delaySlider, SIGNAL(valueChanged(int)), this, \
SLOT(delaySliderChanged(int)));  connect(ui.rate, SIGNAL(valueChanged(double)), this, \
SLOT(rateSpinboxChanged(double)));  connect(ui.rateSlider, SIGNAL(valueChanged(int)), this, \
SLOT(rateSliderChanged(int)));  
   connect(ui.click, SIGNAL(valueChanged(int)), this, SLOT(changed()));
-  connect(ui.numlockButtonGroup, SIGNAL(released(int)), this, SLOT(changed()));
+
+  _numlockButtonGroup = new QButtonGroup(ui.numlockButtonGroup);
+  _numlockButtonGroup->addButton(ui.radioButton1, 0);
+  _numlockButtonGroup->addButton(ui.radioButton2, 1);
+  _numlockButtonGroup->addButton(ui.radioButton3, 2);
+
+  connect(_numlockButtonGroup, SIGNAL(buttonClicked(int)), this, SLOT(changed()));
+
+  _keyboardRepeatButtonGroup = new QButtonGroup(ui.keyboardRepeatButtonGroup);
+  _keyboardRepeatButtonGroup->addButton(ui.keyboardRepeatOnRadioButton, 0);
+  _keyboardRepeatButtonGroup->addButton(ui.keyboardRepeatOffRadioButton, 1);
+  _keyboardRepeatButtonGroup->addButton(ui.keyboardRepeatUnchangedRadioButton, 2);
+
+  connect(_keyboardRepeatButtonGroup, SIGNAL(buttonClicked(int)), this, SLOT(changed()));
+  connect(_keyboardRepeatButtonGroup, SIGNAL(buttonClicked(int)), this, \
SLOT(keyboardRepeatStateChanged(int)));  
 // Not sure why we need this - if XKB is not found the whole keyboard module won't be compiled
 //#if !defined(HAVE_XTEST) && !defined(HAVE_XKB)
@@ -95,7 +108,7 @@ int  KCMiscKeyboardWidget::getClick()
 // set the slider and LCD values
 void KCMiscKeyboardWidget::setRepeat(TriState keyboardRepeat, int delay_, double rate_)
 {
-	TriStateHelper::setTriState( ui.keyboardRepeatButtonGroup, keyboardRepeat );
+	TriStateHelper::setTriState( _keyboardRepeatButtonGroup, keyboardRepeat );
 //    ui.repeatBox->setChecked(r == AutoRepeatModeOn);
     ui.delay->setValue(delay_);
     ui.rate->setValue(rate_);
@@ -108,15 +121,15 @@ void KCMiscKeyboardWidget::setClickVolume(int v)
     ui.click->setValue(v);
 }
 
-TriState TriStateHelper::getTriState(const KButtonGroup* group)
+TriState TriStateHelper::getTriState(const QButtonGroup* group)
 {
-    int selected = group->selected();
+    int selected = group->checkedId();
     return selected < 0 ? STATE_UNCHANGED : getTriState(selected);
 }
 
-void TriStateHelper::setTriState(KButtonGroup* group, TriState state)
+void TriStateHelper::setTriState(QButtonGroup* group, TriState state)
 {
-    group->setSelected( getInt(state) );
+    group->button( getInt(state) )->click();
 }
 
 void KCMiscKeyboardWidget::load()
@@ -152,7 +165,7 @@ void KCMiscKeyboardWidget::load()
   //  setRepeat(kbd.global_auto_repeat, ui.delay->value(), ui.rate->value());
 
   numlockState = TriStateHelper::getTriState(config.readEntry( "NumLock", \
                TriStateHelper::getInt(STATE_UNCHANGED) ));
-  TriStateHelper::setTriState( ui.numlockButtonGroup, numlockState );
+  TriStateHelper::setTriState( _numlockButtonGroup, numlockState );
 
   ui.delay->blockSignals(false);
   ui.rate->blockSignals(false);
@@ -164,8 +177,8 @@ void KCMiscKeyboardWidget::save()
   KConfigGroup config(KSharedConfig::openConfig("kcminputrc", KConfig::NoGlobals), "Keyboard");
 
   clickVolume = getClick();
-  keyboardRepeat = TriStateHelper::getTriState(ui.keyboardRepeatButtonGroup);
-  numlockState = TriStateHelper::getTriState(ui.numlockButtonGroup);
+  keyboardRepeat = TriStateHelper::getTriState(_keyboardRepeatButtonGroup);
+  numlockState = TriStateHelper::getTriState(_numlockButtonGroup);
 
   config.writeEntry("ClickVolume",clickVolume);
   config.writeEntry("KeyboardRepeating", TriStateHelper::getInt(keyboardRepeat));
@@ -179,7 +192,7 @@ void KCMiscKeyboardWidget::defaults()
 {
     setClickVolume(50);
     setRepeat(STATE_ON, 660, 25);
-    TriStateHelper::setTriState( ui.numlockButtonGroup, STATE_UNCHANGED );
+    TriStateHelper::setTriState( _numlockButtonGroup, STATE_UNCHANGED );
     emit changed(true);
 }
 
diff --git a/kcms/keyboard/kcmmisc.h b/kcms/keyboard/kcmmisc.h
index 411bdd2..d40c15b 100644
--- a/kcms/keyboard/kcmmisc.h
+++ b/kcms/keyboard/kcmmisc.h
@@ -27,17 +27,17 @@
 #include <QString>
 #include <QWidget>
 
+class QButtonGroup;
 class Ui_KeyboardConfigWidget;
 
 enum TriState {
 	STATE_ON = 0,  STATE_OFF = 1, STATE_UNCHANGED = 2
 };
 
-class KButtonGroup;
 class TriStateHelper {
 public:
-	static void setTriState(KButtonGroup* group, TriState state);
-	static TriState getTriState(const KButtonGroup* group);
+	static void setTriState(QButtonGroup* group, TriState state);
+	static TriState getTriState(const QButtonGroup* group);
 
 	static TriState getTriState(int state) { return static_cast<TriState>(state); }
 	static int getInt(TriState state) { return static_cast<int>(state); }
@@ -84,6 +84,8 @@ private:
   enum TriState keyboardRepeat;
   enum TriState numlockState;
 
+  QButtonGroup* _numlockButtonGroup;
+  QButtonGroup* _keyboardRepeatButtonGroup;
   Ui_KeyboardConfigWidget& ui;
 };
 
diff --git a/kcms/keyboard/kcmmiscwidget.ui b/kcms/keyboard/kcmmiscwidget.ui
index eefe235..5dd0c80 100644
--- a/kcms/keyboard/kcmmiscwidget.ui
+++ b/kcms/keyboard/kcmmiscwidget.ui
@@ -12,7 +12,7 @@
   </property>
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0">
-    <widget class="KButtonGroup" name="numlockGroupBox">
+    <widget class="QGroupBox" name="numlockGroupBox">
      <property name="whatsThis">
       <string>If supported, this option allows you to setup the state of NumLock after KDE \
startup.&lt;p&gt;You can configure NumLock to be turned on or off, or configure KDE not to set NumLock \
state.</string>  </property>
@@ -21,27 +21,27 @@
      </property>
      <layout class="QGridLayout" name="gridLayout_7">
       <item row="0" column="0">
-       <widget class="KButtonGroup" name="numlockButtonGroup">
+       <widget class="QGroupBox" name="numlockButtonGroup">
         <property name="flat">
          <bool>true</bool>
         </property>
         <layout class="QGridLayout" name="gridLayout_6">
          <item row="0" column="0">
-          <widget class="QRadioButton" name="RadioButton1">
+          <widget class="QRadioButton" name="radioButton1">
            <property name="text">
             <string>T&amp;urn on</string>
            </property>
           </widget>
          </item>
          <item row="1" column="0">
-          <widget class="QRadioButton" name="RadioButton1_2">
+          <widget class="QRadioButton" name="radioButton2">
            <property name="text">
             <string>&amp;Turn off</string>
            </property>
           </widget>
          </item>
          <item row="2" column="0">
-          <widget class="QRadioButton" name="RadioButton1_3">
+          <widget class="QRadioButton" name="radioButton3">
            <property name="text">
             <string>Leave unchan&amp;ged</string>
            </property>
@@ -60,7 +60,7 @@
      </property>
      <layout class="QGridLayout" name="gridLayout_4">
       <item row="0" column="0">
-       <widget class="KButtonGroup" name="keyboardRepeatButtonGroup">
+       <widget class="QGroupBox" name="keyboardRepeatButtonGroup">
         <property name="flat">
          <bool>true</bool>
         </property>
@@ -310,14 +310,6 @@
    </item>
   </layout>
  </widget>
- <customwidgets>
-  <customwidget>
-   <class>KButtonGroup</class>
-   <extends>QGroupBox</extends>
-   <header>kbuttongroup.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
  <resources/>
  <connections/>
 </ui>
diff --git a/kcms/keyboard/keyboard_hardware.cpp b/kcms/keyboard/keyboard_hardware.cpp
index aa86f69..a75fc29 100644
--- a/kcms/keyboard/keyboard_hardware.cpp
+++ b/kcms/keyboard/keyboard_hardware.cpp
@@ -49,11 +49,13 @@ void set_repeatrate(int delay, double rate)
 	XkbDescPtr xkb = XkbAllocKeyboard();
 	if (xkb) {
 		Display* dpy = QX11Info::display();
-		int res = XkbGetControls(dpy, XkbRepeatKeysMask, xkb);
+		//int res = 
+		XkbGetControls(dpy, XkbRepeatKeysMask, xkb);
 		xkb->ctrls->repeat_delay = delay;
 		xkb->ctrls->repeat_interval = (int)floor(1000/rate + 0.5);
-		res = XkbSetControls(dpy, XkbRepeatKeysMask, xkb);
-                XkbFreeKeyboard(xkb, 0, true);
+		//res = 
+		XkbSetControls(dpy, XkbRepeatKeysMask, xkb);
+        XkbFreeKeyboard(xkb, 0, true);
 		return;
 	}
 }
diff --git a/kcms/keyboard/xinput_helper.cpp b/kcms/keyboard/xinput_helper.cpp
index 83a8359..f15fbdf 100644
--- a/kcms/keyboard/xinput_helper.cpp
+++ b/kcms/keyboard/xinput_helper.cpp
@@ -43,6 +43,7 @@ XInputEventNotifier::XInputEventNotifier(QWidget* parent):
 	XEventNotifier(), //TODO: destruct properly?
 	xinputEventType(-1)
 {
+  Q_UNUSED(parent)
 }
 
 void XInputEventNotifier::start()


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

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