summaryrefslogtreecommitdiff
path: root/inputmethods/multikey/keyboard.cpp
Side-by-side diff
Diffstat (limited to 'inputmethods/multikey/keyboard.cpp') (more/less context) (show whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp67
1 files changed, 47 insertions, 20 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 8f4d562..a19f07a 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -19,8 +19,10 @@
**********************************************************************/
#include "keyboard.h"
+#include "configdlg.h"
#include <qpe/global.h>
+#include <qpe/qcopenvelope_qws.h>
#include <qwindowsystem_qws.h>
#include <qpainter.h>
@@ -41,13 +43,19 @@
Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
QFrame(parent, _name, f), shift(0), lock(0), ctrl(0),
alt(0), useLargeKeys(TRUE), usePicks(0), pressedKeyRow(-1), pressedKeyCol(-1),
- unicode(-1), qkeycode(0), modifiers(0), LANG("ko"), schar(0), mchar(0), echar(0)
+ unicode(-1), qkeycode(0), modifiers(0), LANG("ko"), schar(0), mchar(0), echar(0),
+ configdlg(0)
+
{
// get the default font
Config qpeConfig( "qpe" );
qpeConfig.setGroup( "Appearance" );
QString familyStr = qpeConfig.readEntry( "FontFamily", "fixed" );
+ Config multiConfig ("multikey");
+ multiConfig.setGroup ("pickboard");
+ usePicks = multiConfig.readBoolEntry ("open", "0"); // default closed
+
setFont( QFont( familyStr, 8 ) );
picks = new KeyboardPicks( this );
@@ -262,27 +270,19 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
if (qkeycode == Qt::Key_F1) { // toggle the pickboard
- usePicks = !usePicks;
- if (usePicks) {
- picks->show();
- move(x(), y() - picks->height());
- adjustSize();
- QObject::connect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ),
- this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
- } else {
-
- picks->hide();
- picks->resetState();
- move(x(), y() + picks->height());
- adjustSize();
- QObject::disconnect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ),
- this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
-
+ if ( configdlg ) {
+ delete (ConfigDlg *) configdlg;
+ configdlg = 0;
+ }
+ else {
+ configdlg = new ConfigDlg ();
+ connect(configdlg, SIGNAL(pickboardToggled(bool)),
+ this, SLOT(togglePickboard(bool)));
+ configdlg->showMaximized();
+ configdlg->show();
+ configdlg->raise();
}
- keys.setPressed(row, col, usePicks);
- need_repaint = TRUE;
- qkeycode = 0; // don't need to emit Key_F1
} else if (qkeycode == Qt::Key_Control) {
ctrl = keys.pressedPtr(row, col);
need_repaint = TRUE;
@@ -462,6 +462,33 @@ void Keyboard::resetState()
picks->resetState();
}
+/* Keyboard::togglePickboard {{{1 */
+void Keyboard::togglePickboard(bool on_off)
+{
+ usePicks = on_off;
+ if (usePicks) {
+ picks->show();
+ //move(x(), y() - picks->height()); // not required anymore because QCopChannel::send
+ //adjustSize();
+ QObject::connect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ),
+ this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
+ } else {
+
+ picks->hide();
+ picks->resetState();
+ //move(x(), y() + picks->height());
+ //adjustSize();
+ QObject::disconnect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ),
+ this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
+
+ }
+ /*
+ * this closes && opens the input method
+ */
+ QCopChannel::send ("QPE/TaskBar", "hideInputMethod()");
+ QCopChannel::send ("QPE/TaskBar", "showInputMethod()");
+}
+
/* korean input functions {{{1
*
* TODO