-rw-r--r-- | inputmethods/multikey/configdlg.cpp | 114 | ||||
-rw-r--r-- | inputmethods/multikey/configdlg.h | 10 |
2 files changed, 106 insertions, 18 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp index 566b2b9..89b713e 100644 --- a/inputmethods/multikey/configdlg.cpp +++ b/inputmethods/multikey/configdlg.cpp @@ -146,33 +146,49 @@ ConfigDlg::ConfigDlg () : QTabWidget () addTab(color_box, tr("Colors")); QLabel *label; QStringList color; + config.setGroup("colors"); label = new QLabel(tr("Key Color"), color_box); - key_color_button = new QPushButton(color_box); - connect(key_color_button, SIGNAL(clicked()), SLOT(keyColorButtonClicked())); - key_color_button->setFlat((bool)1); - - config.setGroup("colors"); + keycolor_button = new QPushButton(color_box); + connect(keycolor_button, SIGNAL(clicked()), SLOT(keyColorClicked())); + keycolor_button->setFlat((bool)1); color = config.readListEntry("keycolor", QChar(',')); + /* + * hopefully not required + if (color.isEmpty()) { color = QStringList::split(",", "240,240,240"); config.writeEntry("keycolor", color.join(",")); } - key_color_button->setBackgroundColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); + */ + keycolor_button->setBackgroundColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); label = new QLabel(tr("Key Pressed Color"), color_box); - QPushButton *button = new QPushButton(color_box); - button->setFlat((bool)1); + keycolor_pressed_button = new QPushButton(color_box); + connect(keycolor_pressed_button, SIGNAL(clicked()), SLOT(keyColorPressedClicked())); + keycolor_pressed_button->setFlat((bool)1); + color = config.readListEntry("keycolor_pressed", QChar(',')); + keycolor_pressed_button->setBackgroundColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); + label = new QLabel(tr("Line Color"), color_box); - button = new QPushButton(color_box); - button->setFlat((bool)1); + keycolor_lines_button = new QPushButton(color_box); + connect(keycolor_lines_button, SIGNAL(clicked()), SLOT(keyColorLinesClicked())); + keycolor_lines_button->setFlat((bool)1); + color = config.readListEntry("keycolor_lines", QChar(',')); + keycolor_lines_button->setBackgroundColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); + + label = new QLabel(tr("Text Color"), color_box); - button = new QPushButton(color_box); - button->setFlat((bool)1); + textcolor_button = new QPushButton(color_box); + connect(textcolor_button, SIGNAL(clicked()), SLOT(textColorClicked())); + textcolor_button->setFlat((bool)1); + color = config.readListEntry("textcolor", QChar(',')); + textcolor_button->setBackgroundColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); + label = new QLabel("", color_box); // a spacer so the above buttons dont expand label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); @@ -195,16 +211,17 @@ void ConfigDlg::repeatTog() { emit repeatToggled(repeat_button->isChecked()); } +// ConfigDlg::setMap {{{1 + /* * 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" * listItem. therefor you have to minus one to the index before you access it. * */ -// ConfigDlg::setMap {{{1 void ConfigDlg::setMap(int index) { if (index == 0) { @@ -258,10 +275,18 @@ void ConfigDlg::removeMap() { config.setGroup("keymaps"); config.writeEntry("maps", custom_maps, QChar('|')); } -// ConfigDlg::color {{{1 -void ConfigDlg::keyColorButtonClicked() { +/* ConfigDlg::slots for the color buttons {{{1 + * + * these four slots are almost the same, except for the names. i was thinking + * of making a map with pointers to the buttons and names of the configEntry + * so it could be one slot, but then there would be no way of telling which + * of the buttons was clicked if they all connect to the same slot. + * + */ + +void ConfigDlg::keyColorClicked() { Config config ("multikey"); config.setGroup ("colors"); @@ -275,7 +300,64 @@ void ConfigDlg::keyColorButtonClicked() { config.writeEntry("keycolor", color, QChar(',')); config.write(); - key_color_button->setBackgroundColor(newcolor); + keycolor_button->setBackgroundColor(newcolor); + emit reloadKeyboard(); +} +void ConfigDlg::keyColorPressedClicked() { + + Config config ("multikey"); + config.setGroup ("colors"); + + QStringList color = config.readListEntry("keycolor_pressed", QChar(',')); + + QColor newcolor = OColorDialog::getColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); + + color[0].setNum(newcolor.red()); + color[1].setNum(newcolor.green()); + color[2].setNum(newcolor.blue()); + + config.writeEntry("keycolor_pressed", color, QChar(',')); + config.write(); + + keycolor_pressed_button->setBackgroundColor(newcolor); + emit reloadKeyboard(); +} +void ConfigDlg::keyColorLinesClicked() { + + Config config ("multikey"); + config.setGroup ("colors"); + + QStringList color = config.readListEntry("keycolor_lines", QChar(',')); + + QColor newcolor = OColorDialog::getColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); + + color[0].setNum(newcolor.red()); + color[1].setNum(newcolor.green()); + color[2].setNum(newcolor.blue()); + + config.writeEntry("keycolor_lines", color, QChar(',')); + config.write(); + + keycolor_lines_button->setBackgroundColor(newcolor); + emit reloadKeyboard(); +} +void ConfigDlg::textColorClicked() { + + Config config ("multikey"); + config.setGroup ("colors"); + + QStringList color = config.readListEntry("textcolor", QChar(',')); + + QColor newcolor = OColorDialog::getColor(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())); + + color[0].setNum(newcolor.red()); + color[1].setNum(newcolor.green()); + color[2].setNum(newcolor.blue()); + + config.writeEntry("textcolor", color, QChar(',')); + config.write(); + + textcolor_button->setBackgroundColor(newcolor); emit reloadKeyboard(); } diff --git a/inputmethods/multikey/configdlg.h b/inputmethods/multikey/configdlg.h index a000e60..5d6403f 100644 --- a/inputmethods/multikey/configdlg.h +++ b/inputmethods/multikey/configdlg.h @@ -28,9 +28,12 @@ private slots: void addMap(); void removeMap(); // all those required slots for the color push buttons - void keyColorButtonClicked(); + void keyColorClicked(); + void keyColorPressedClicked(); + void keyColorLinesClicked(); + void textColorClicked(); private: QCheckBox *pick_button; QCheckBox *repeat_button; @@ -42,9 +45,12 @@ private: QStringList default_maps; // the maps in your share/multikey/ dir QStringList custom_maps; // maps you added with the 'add' button /* color buttons */ - QPushButton *key_color_button; + QPushButton *keycolor_button; + QPushButton *keycolor_pressed_button; + QPushButton *keycolor_lines_button; + QPushButton *textcolor_button; }; #endif |