-rw-r--r-- | inputmethods/multikey/configdlg.cpp | 60 | ||||
-rw-r--r-- | inputmethods/multikey/configdlg.h | 9 | ||||
-rw-r--r-- | inputmethods/multikey/keyboard.cpp | 10 | ||||
-rw-r--r-- | inputmethods/multikey/keyboard.h | 1 |
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); |