-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 @@ -126,105 +126,122 @@ ConfigDlg::ConfigDlg () : QTabWidget () 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 */ 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; 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)); } void ConfigDlg::pickTog() { Config config ("multikey"); 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()); } +// 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) { remove_button->setDisabled(true); emit setMapToDefault(); } else if ((uint)index <= default_maps.count()) { remove_button->setDisabled(true); emit setMapToFile(keymaps->text(index)); } else { remove_button->setEnabled(true); emit setMapToFile(keymaps->text(index)); } } // ConfigDlg::addMap() {{{1 void ConfigDlg::addMap() { QString map = OFileDialog::getOpenFileName(1, QDir::home().absPath()); Config config ("multikey"); @@ -238,44 +255,109 @@ void ConfigDlg::addMap() { config.writeEntry("maps", maps, QChar('|')); config.writeEntry("current", map); } // ConfigDlg::removeMap() {{{1 void ConfigDlg::removeMap() { cout << "removing : " << custom_maps[keymaps->currentItem() - default_maps.count() - 1] << "\n"; cout << "currentItem : " << keymaps->currentItem() << "\n"; // move selection up one keymaps->setSelected(keymaps->currentItem() - 1, true); // delete the next selected item cus you just moved it up keymaps->removeItem(keymaps->currentItem() + 1); custom_maps.remove(custom_maps[keymaps->currentItem() - default_maps.count()]); // write the changes Config config ("multikey"); 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"); QStringList color = config.readListEntry("keycolor", 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", 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 @@ -8,43 +8,49 @@ #define CONFIGDLG_H class ConfigDlg : public QTabWidget { Q_OBJECT public: ConfigDlg (); 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(); // 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; QListBox *keymaps; QPushButton *add_button; QPushButton *remove_button; 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 |