summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp31
-rw-r--r--inputmethods/multikey/configdlg.h3
-rw-r--r--inputmethods/multikey/keyboard.cpp39
-rw-r--r--inputmethods/multikey/keyboard.h2
4 files changed, 57 insertions, 18 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index 59a290b..566b2b9 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -111,10 +111,12 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
remove_button->setDisabled(true);
connect(remove_button, SIGNAL(clicked()), SLOT(removeMap()));
- pick_button = new QCheckBox(tr("Pickboard"), gen_box);
+ // make a box that will contain the buttons on the bottom
+ QGrid *other_grid = new QGrid(2, gen_box);
+ pick_button = new QCheckBox(tr("Pickboard"), other_grid);
- config.setGroup ("pickboard");
- bool pick_open = config.readBoolEntry ("open", "0"); // default closed
+ config.setGroup ("general");
+ bool pick_open = config.readBoolEntry ("usePickboard", (bool)0); // default closed
if (pick_open) {
pick_button->setChecked(true);
@@ -123,6 +125,16 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
// by connecting it after checking it, the signal isn't emmited
connect (pick_button, SIGNAL(clicked()), this, SLOT(pickTog()));
+ repeat_button = new QCheckBox(tr("Key Repeat"), other_grid);
+ bool repeat_on = config.readBoolEntry ("useRepeat", (bool)1);
+
+ if (repeat_on) {
+
+ repeat_button->setChecked(true);
+ }
+ connect (repeat_button, SIGNAL(clicked()), this, SLOT(repeatTog()));
+
+
/*
* 'color' tab
*/
@@ -169,12 +181,21 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
void ConfigDlg::pickTog() {
Config config ("multikey");
- config.setGroup ("pickboard");
- config.writeEntry ("open", pick_button->isChecked()); // default closed
+ config.setGroup ("general");
+ config.writeEntry ("usePickboard", pick_button->isChecked()); // default closed
emit pickboardToggled(pick_button->isChecked());
}
+void ConfigDlg::repeatTog() {
+
+ Config config ("multikey");
+ config.setGroup ("general");
+ config.writeEntry ("useRepeat", repeat_button->isChecked()); // default closed
+
+ emit repeatToggled(repeat_button->isChecked());
+}
+
/*
* the index is kinda screwy, because in the config file, index 0 is just the
* first element in the QStringList, but here it's the "Current Language"
diff --git a/inputmethods/multikey/configdlg.h b/inputmethods/multikey/configdlg.h
index ae7afe2..a000e60 100644
--- a/inputmethods/multikey/configdlg.h
+++ b/inputmethods/multikey/configdlg.h
@@ -16,12 +16,14 @@ public:
signals:
void pickboardToggled(bool on_off);
+ void repeatToggled(bool on_off);
void setMapToDefault();
void setMapToFile(QString map);
void reloadKeyboard();
private slots:
void pickTog();
+ void repeatTog();
void setMap(int index);
void addMap();
void removeMap();
@@ -31,6 +33,7 @@ private slots:
private:
QCheckBox *pick_button;
+ QCheckBox *repeat_button;
QListBox *keymaps;
QPushButton *add_button;
QPushButton *remove_button;
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 8280297..7334c1c 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -39,12 +39,10 @@
#include <sys/utsname.h>
-#define USE_SMALL_BACKSPACE
-
/* Keyboard::Keyboard {{{1 */
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),
+ alt(0), useLargeKeys(TRUE), usePicks(0), useRepeat(0), pressedKeyRow(-1), pressedKeyCol(-1),
unicode(-1), qkeycode(0), modifiers(0), schar(0), mchar(0), echar(0),
configdlg(0)
@@ -57,10 +55,12 @@ Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
delete config;
config = new Config("multikey");
- config->setGroup ("pickboard");
- usePicks = config->readBoolEntry ("open", "0"); // default closed
+ config->setGroup ("general");
+ usePicks = config->readBoolEntry ("usePickboard", "0"); // default closed
+ useRepeat = config->readBoolEntry ("useRepeat", "1");
delete config;
+
setFont( QFont( familyStr, 10 ) );
picks = new KeyboardPicks( this );
@@ -284,12 +284,14 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
}
else {
configdlg = new ConfigDlg ();
- connect(configdlg, SIGNAL(pickboardToggled(bool)),
- this, SLOT(togglePickboard(bool)));
connect(configdlg, SIGNAL(setMapToDefault()),
this, SLOT(setMapToDefault()));
connect(configdlg, SIGNAL(setMapToFile(QString)),
this, SLOT(setMapToFile(QString)));
+ connect(configdlg, SIGNAL(pickboardToggled(bool)),
+ this, SLOT(togglePickboard(bool)));
+ connect(configdlg, SIGNAL(repeatToggled(bool)),
+ this, SLOT(toggleRepeat(bool)));
connect(configdlg, SIGNAL(reloadKeyboard()),
this, SLOT(reloadKeyboard()));
configdlg->showMaximized();
@@ -395,7 +397,8 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
}
- pressTid = startTimer(80);
+ if (useRepeat) repeatTimer->start( 800 );
+ //pressTid = startTimer(80);
}
@@ -404,7 +407,7 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
void Keyboard::mouseReleaseEvent(QMouseEvent*)
{
pressed = FALSE;
- if ( pressTid == 0 )
+ //if ( pressTid == 0 )
#if defined(Q_WS_QWS) || defined(_WS_QWS_)
if ( unicode != -1 ) {
emit key( unicode, qkeycode, modifiers, false, false );
@@ -425,15 +428,19 @@ void Keyboard::mouseReleaseEvent(QMouseEvent*)
}
/* Keyboard::timerEvent {{{1 */
-/*
-void Keyboard::timerEvent(QTimerEvent* e)
+
+/* dont know what this does, but i think it is here so that if your screen
+ * sticks (like on an ipaq) then it will stop repeating if you click another
+ * key... but who knows what anything does in this thing anyway?
+
+ void Keyboard::timerEvent(QTimerEvent* e)
{
if ( e->timerId() == pressTid ) {
killTimer(pressTid);
pressTid = 0;
if ( !pressed )
cout << "calling clearHighlight from timerEvent\n";
- clearHighlight();
+ //clearHighlight();
}
}
*/
@@ -442,7 +449,7 @@ void Keyboard::repeat()
{
repeatTimer->start( 200 );
- emit key( unicode, 0, modifiers, true, true );
+ emit key( unicode, qkeycode, modifiers, true, true );
}
void Keyboard::clearHighlight()
@@ -503,6 +510,12 @@ void Keyboard::togglePickboard(bool on_off)
QCopChannel::send ("QPE/TaskBar", "showInputMethod()");
}
+void Keyboard::toggleRepeat(bool on) {
+
+ useRepeat = on;
+ cout << "setting useRepeat to: " << useRepeat << "\n";
+}
+
/* Keyboard::setMapTo ... {{{1 */
void Keyboard::setMapToDefault() {
diff --git a/inputmethods/multikey/keyboard.h b/inputmethods/multikey/keyboard.h
index 6e577ab..dc50e55 100644
--- a/inputmethods/multikey/keyboard.h
+++ b/inputmethods/multikey/keyboard.h
@@ -112,6 +112,7 @@ signals:
private slots:
void repeat();
void togglePickboard(bool on_off);
+ void toggleRepeat(bool on_off);
void setMapToDefault();
void setMapToFile(QString map);
@@ -128,6 +129,7 @@ private:
bool *alt;
uint useLargeKeys:1;
uint usePicks:1;
+ uint useRepeat:1;
int pressedKeyRow;
int pressedKeyCol;