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

List:       kde-commits
Subject:    playground/base/plasma/applets/plasmaboard
From:       Björn Ruberg <bjoern () ruberg-wegener ! de>
Date:       2009-04-15 20:08:57
Message-ID: 1239826137.320023.7979.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 954481 by ruberg:

You can untoggle Strg, Alt, etc. now by clicking on them again



 M  +1 -0      BoardKey.cpp  
 M  +1 -0      BoardKey.h  
 M  +19 -1     FuncKey.cpp  
 M  +2 -0      FuncKey.h  


--- trunk/playground/base/plasma/applets/plasmaboard/BoardKey.cpp #954480:954481
@@ -46,3 +46,4 @@
 
 void BoardKey::sendKeycodePress() {}
 void BoardKey::sendKeycodeRelease() {}
+void BoardKey::sendKeycodeToggled() {}
--- trunk/playground/base/plasma/applets/plasmaboard/BoardKey.h #954480:954481
@@ -36,6 +36,7 @@
 public Q_SLOTS:
 	virtual void sendKeycodePress();
 	virtual void sendKeycodeRelease();
+	virtual void sendKeycodeToggled();
 
 protected:
 	unsigned int keycode;
--- trunk/playground/base/plasma/applets/plasmaboard/FuncKey.cpp #954480:954481
@@ -25,23 +25,30 @@
 FuncKey::FuncKey(PlasmaboardWidget *parent):
 	BoardKey::BoardKey(parent) {
 	// TODO Auto-generated constructor stub
-	QObject::connect(static_cast<const KPushButton*>(this->nativeWidget()), SIGNAL( \
pressed() ), this, SLOT( sendKeycodePress() ) ); +
 	oldStyle = Plasma::PushButton::styleSheet();
+	pressed = false;
 }
 
 void FuncKey::toggleOn(){
 	Plasma::PushButton::setStyleSheet(oldStyle + "color:red;text-align:center;"); // \
sorry, but I need some visual confirmation +	pressed = true;
 }
 
 void FuncKey::toggleOff(){
 	Plasma::PushButton::setStyleSheet(oldStyle);
+	pressed = false;
 }
 
 void FuncKey::setKeycode(unsigned int code, bool sendUp){
 	keycode = Helpers::keysymToKeycode(code);
 	if(sendUp){
+		QObject::connect(static_cast<const KPushButton*>(this->nativeWidget()), SIGNAL( \
pressed() ), this, SLOT( sendKeycodePress() ) );  QObject::connect(static_cast<const \
KPushButton*>(this->nativeWidget()), SIGNAL( released() ), this, SLOT( \
sendKeycodeRelease() ) );  }
+	else {
+		QObject::connect(static_cast<const KPushButton*>(this->nativeWidget()), SIGNAL( \
pressed() ), this, SLOT( sendKeycodeToggled() ) ); +	}
 }
 
 void FuncKey::sendKeycodePress() {
@@ -49,6 +56,17 @@
 	toggleOn();
 }
 
+void FuncKey::sendKeycodeToggled() {
+	if( pressed ) {
+		sendKeycodeRelease();
+		toggleOff();
+	}
+	else {
+		Helpers::fakeKeyPress(getKeycode());
+		toggleOn();
+	}
+}
+
 void FuncKey::sendKeycodeRelease() {
 	Helpers::fakeKeyRelease(getKeycode());
 	toggleOff();
--- trunk/playground/base/plasma/applets/plasmaboard/FuncKey.h #954480:954481
@@ -35,9 +35,11 @@
 public Q_SLOTS:
 	virtual void sendKeycodePress();
 	virtual void sendKeycodeRelease();
+	virtual void sendKeycodeToggled();
 
 private:
 	QString oldStyle;
+	bool pressed;
 };
 
 #endif /* FUNCKEY_H_ */


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

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