summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/configdlg.cpp60
-rw-r--r--inputmethods/multikey/configdlg.h9
-rw-r--r--inputmethods/multikey/keyboard.cpp10
-rw-r--r--inputmethods/multikey/keyboard.h1
4 files changed, 56 insertions, 24 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp
index f23bf1c..7bea589 100644
--- a/inputmethods/multikey/configdlg.cpp
+++ b/inputmethods/multikey/configdlg.cpp
@@ -1,15 +1,12 @@
/*
* TODO
- * make a font selection thing
+ * make a font selection thing (size too)
*
- * FIXME
- * if you open the config dialog and close it from the little (x) button on the title bar,
- * you have to hit the button on the keyboard twice for it to open the next time
*
*
*/
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
#include <qwidget.h>
@@ -17,52 +14,60 @@
#include <qtabwidget.h>
#include <qvbox.h>
#include <qgrid.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qcheckbox.h>
#include <qsizepolicy.h>
#include <qpushbutton.h>
-#include <qcombobox.h>
+#include <qlistbox.h>
#include "configdlg.h"
#include "keyboard.h"
ConfigDlg::ConfigDlg () : QTabWidget ()
{
setCaption( tr("Multikey Configuration") );
/*
* 'general config' tab
*/
QVBox *gen_box = new QVBox (this);
gen_box->setMargin(3);
addTab(gen_box, tr("General Settings"));
- QGroupBox *map_group = new QGroupBox (2, Qt::Horizontal, tr("Keymap File"), gen_box);
+ QGroupBox *map_group = new QGroupBox (2, Qt::Vertical, tr("Keymap File"), gen_box);
- map_combo = new QComboBox ((bool)0, map_group);
- map_combo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ keymaps = new QListBox (map_group);
+ keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+ //keymaps->setMaximumHeight(150);
QString cur(tr("Current Language"));
- map_combo->insertItem(cur);
- connect(map_combo, SIGNAL(activated(int)), SLOT(setMap(int)));
+ keymaps->insertItem(cur);
+ connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int)));
- QString ko(tr(QPEApplication::qpeDir() + "/share/multikey/ko.keymap"));
- map_combo->insertItem(ko);
+ QString ko(QPEApplication::qpeDir() + "/share/multikey/ko.keymap");
+ keymaps->insertItem(ko);
- QString en(tr(QPEApplication::qpeDir() + "/share/multikey/en.keymap"));
- map_combo->insertItem(en);
+ QString en(QPEApplication::qpeDir() + "/share/multikey/en.keymap");
+ keymaps->insertItem(en);
- QString de(tr(QPEApplication::qpeDir() + "/share/multikey/de.keymap"));
- map_combo->insertItem(de);
+ QString de(QPEApplication::qpeDir() + "/share/multikey/de.keymap");
+ keymaps->insertItem(de);
- QPushButton *button = new QPushButton(tr("Browse..."), map_group);
- button->setFlat((bool)1);
+ QGrid *add_remove_grid = new QGrid(2, map_group);
+ add_remove_grid->setMargin(3);
+ add_remove_grid->setSpacing(3);
+
+ add_button = new QPushButton(tr("Add"), add_remove_grid);
+ add_button->setFlat((bool)1);
+
+ remove_button = new QPushButton(tr("Remove"), add_remove_grid);
+ remove_button->setFlat((bool)1);
pick_button = new QCheckBox(tr("Pickboard"), gen_box);
Config config ("multikey");
config.setGroup ("pickboard");
bool pick_open = config.readBoolEntry ("open", "0"); // default closed
if (pick_open) {
@@ -74,22 +79,23 @@ ConfigDlg::ConfigDlg () : QTabWidget ()
/*
* 'color' tab
*/
QGrid *color_box = new QGrid(2, this);
color_box->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
color_box->setMargin(3);
+ color_box->setSpacing(3);
addTab(color_box, tr("Colors"));
QLabel *label;
label = new QLabel(tr("Key Color"), color_box);
- button = new QPushButton(color_box);
+ QPushButton *button = new QPushButton(color_box);
button->setFlat((bool)1);
label = new QLabel(tr("Key Pressed Color"), color_box);
button = new QPushButton(color_box);
button->setFlat((bool)1);
label = new QLabel(tr("Line Color"), color_box);
button = new QPushButton(color_box);
button->setFlat((bool)1);
label = new QLabel(tr("Text Color"), color_box);
@@ -109,15 +115,29 @@ void ConfigDlg::pickTog() {
emit pickboardToggled(pick_button->isChecked());
}
void ConfigDlg::setMap(int index) {
if (index == 0) {
+ if (remove_button->isEnabled())
+ remove_button->setDisabled(true);
+
emit setMapToDefault();
}
else {
- emit setMapToFile(map_combo->text(index));
+ if (!remove_button->isEnabled())
+ remove_button->setEnabled(true);
+
+ emit setMapToFile(keymaps->text(index));
}
}
+
+void ConfigDlg::addMap() {
+
+}
+
+void ConfigDlg::removeMap(int index) {
+
+}
diff --git a/inputmethods/multikey/configdlg.h b/inputmethods/multikey/configdlg.h
index 54127a0..1a64764 100644
--- a/inputmethods/multikey/configdlg.h
+++ b/inputmethods/multikey/configdlg.h
@@ -1,12 +1,13 @@
#include <qpe/qpeapplication.h>
#include <qtabwidget.h>
#include <qcheckbox.h>
-#include <qcombobox.h>
+#include <qlistbox.h>
+#include <qpushbutton.h>
#ifndef CONFIGDLG_H
#define CONFIGDLG_H
class ConfigDlg : public QTabWidget
{
Q_OBJECT
@@ -16,16 +17,20 @@ public:
signals:
void pickboardToggled(bool on_off);
void setMapToDefault();
void setMapToFile(QString file);
private slots:
void pickTog();
void setMap(int index);
+ void addMap();
+ void removeMap(int index);
private:
QCheckBox *pick_button;
- QComboBox *map_combo;
+ QListBox *keymaps;
+ QPushButton *add_button;
+ QPushButton *remove_button;
};
#endif
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 2a80f1e..b71f929 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -28,17 +28,16 @@
#include <qpainter.h>
#include <qfontmetrics.h>
#include <qtimer.h>
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
#include <ctype.h>
#include <qfile.h>
#include <qtextstream.h>
-#include <iostream.h>
#include <sys/utsname.h>
#define USE_SMALL_BACKSPACE
/* Keyboard::Keyboard {{{1 */
Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
@@ -72,16 +71,24 @@ Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
} else picks->hide();
keys = new Keys();
repeatTimer = new QTimer( this );
connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) );
}
+Keyboard::~Keyboard() {
+
+ if ( configdlg ) {
+ delete (ConfigDlg *) configdlg;
+ configdlg = 0;
+ }
+
+}
/* Keyboard::resizeEvent {{{1 */
void Keyboard::resizeEvent(QResizeEvent*)
{
int ph = picks->sizeHint().height();
picks->setGeometry( 0, 0, width(), ph );
keyHeight = (height()-(usePicks ? ph : 0))/5;
@@ -954,17 +961,16 @@ void Keys::setKeysFromFile(const char * filename) {
tmp >> name >> equals >> value;
if (name == "lang") {
lang = value;
}
- cout << name << " = " << value << "\n";
buf = t.readLine();
}
// comments
else if (buf.contains(QRegExp("^\\s*#"))) {
buf = t.readLine();
} else { // blank line, or garbage
diff --git a/inputmethods/multikey/keyboard.h b/inputmethods/multikey/keyboard.h
index c2efe10..8ca50ea 100644
--- a/inputmethods/multikey/keyboard.h
+++ b/inputmethods/multikey/keyboard.h
@@ -87,16 +87,17 @@ private:
};
class Keyboard : public QFrame
{
Q_OBJECT
public:
Keyboard( QWidget* parent=0, const char* name=0, WFlags f=0 );
+ ~Keyboard();
void resetState();
void mousePressEvent(QMouseEvent*);
void mouseReleaseEvent(QMouseEvent*);
void resizeEvent(QResizeEvent*);
void paintEvent(QPaintEvent* e);
//void timerEvent(QTimerEvent* e);