-rw-r--r-- | inputmethods/multikey/configdlg.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp index d29109a..3e39415 100644 --- a/inputmethods/multikey/configdlg.cpp +++ b/inputmethods/multikey/configdlg.cpp @@ -172,338 +172,335 @@ ConfigDlg::ConfigDlg () : QDialog () gen_lay->addWidget(other_grid); tabs->addTab(gen_box, tr("General Settings")); /* * 'color' tab */ QWidget *color_box = new QWidget(tabs, "color_tab"); QGridLayout *color_lay = new QGridLayout(color_box); QGrid *color_grid = new QGrid(2, color_box); color_lay->setAlignment(Qt::AlignTop); color_grid->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); color_grid->layout()->setAlignment(Qt::AlignTop); color_grid->setMargin(3); color_grid->setSpacing(3); QLabel *label; QStringList color; config.setGroup("colors"); label = new QLabel(tr("Key Color"), color_grid); keycolor_button = new QPushButton(color_grid); connect(keycolor_button, SIGNAL(clicked()), SLOT(keyColorClicked())); keycolor_button->setFlat(TRUE); color = config.readListEntry("keycolor", QChar(',')); /* * hopefully not required if (color.isEmpty()) { color = QStringList::split(",", "240,240,240"); config.writeEntry("keycolor", color.join(",")); } */ keycolor_button->setPalette(QPalette(QColor(color[0].toInt(), color[1].toInt(), color[2].toInt()))); label = new QLabel(tr("Key Pressed Color"), color_grid); keycolor_pressed_button = new QPushButton(color_grid); connect(keycolor_pressed_button, SIGNAL(clicked()), SLOT(keyColorPressedClicked())); keycolor_pressed_button->setFlat(TRUE); color = config.readListEntry("keycolor_pressed", QChar(',')); keycolor_pressed_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); label = new QLabel(tr("Line Color"), color_grid); keycolor_lines_button = new QPushButton(color_grid); connect(keycolor_lines_button, SIGNAL(clicked()), SLOT(keyColorLinesClicked())); keycolor_lines_button->setFlat(TRUE); color = config.readListEntry("keycolor_lines", QChar(',')); keycolor_lines_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); label = new QLabel(tr("Text Color"), color_grid); textcolor_button = new QPushButton(color_grid); connect(textcolor_button, SIGNAL(clicked()), SLOT(textColorClicked())); textcolor_button->setFlat(TRUE); color = config.readListEntry("textcolor", QChar(',')); textcolor_button->setPalette(QPalette((QColor(color[0].toInt(), color[1].toInt(), color[2].toInt())))); label = new QLabel("", color_grid); // a spacer so the above buttons dont expand label->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); /* FIXME: hacked spacer height */ QSpacerItem *spacer = new QSpacerItem(0, 300, QSizePolicy::Expanding, QSizePolicy::Maximum); color_lay->addWidget(color_grid, 0, 0); color_lay->addItem(spacer); tabs->addTab(color_box, tr("Colors")); base_lay->addWidget(tabs); } QStringList ConfigDlg::loadSw() { Config *config = new Config("multikey"); config->setGroup("keymaps"); QDir map_dir(QPEApplication::qpeDir() + "/share/multikey", "*.keymap"); QStringList d_maps = map_dir.entryList(); // so i can access it in other places QStringList c_maps = config->readListEntry("maps", QChar('|')); QStringList s_maps = config->readListEntry("sw", QChar('|')); delete config; if (!s_maps.count()) { s_maps = d_maps+c_maps; } else { /* Clear non existents entries */ QStringList s_copy(s_maps); for (uint i = 0; i < s_copy.count(); ++i) { if (d_maps.find(s_copy[i]) == d_maps.end() && c_maps.find(s_copy[i]) == c_maps.end()) { s_maps.remove(s_copy[i]); } } /* Update sw_maps from default_maps */ for (uint i = 0; i < d_maps.count(); ++i) { if (s_maps.find(d_maps[i]) == s_maps.end()) { s_maps.append(d_maps[i]); } } /* Update sw_maps from custom_maps */ for (uint i = 0; i < c_maps.count(); ++i) { if (s_maps.find(c_maps[i]) == s_maps.end()) { s_maps.append(c_maps[i]); } } } return s_maps; } void ConfigDlg::accept() { /* Writing all stuffs to config */ Config *config = new Config("multikey"); config->setGroup("general"); config->writeEntry("usePickboard", pick_button->isChecked()); // default closed config->writeEntry("useRepeat", repeat_button->isChecked()); // default closed config->setGroup("keymaps"); config->writeEntry("sw", sw_maps, QChar('|')); config->writeEntry("maps", custom_maps, QChar('|')); delete config; int index = keymaps->currentItem(); if (index == 0) { remove_button->setDisabled(true); emit setMapToDefault(); } else if (default_maps.find(sw_maps[index-1]) != default_maps.end()) { remove_button->setDisabled(true); emit setMapToFile(QPEApplication::qpeDir() + "share/multikey/" + sw_maps[index - 1]); } else { remove_button->setEnabled(true); emit setMapToFile(sw_maps[index - 1]); } emit pickboardToggled(pick_button->isChecked()); emit repeatToggled(repeat_button->isChecked()); emit reloadSw(); QDialog::accept(); emit configDlgClosed(); } void ConfigDlg::moveSelectedUp() { int i = keymaps->currentItem(); /* Ignore Current Language */ if (i > 1) { QString t = sw_maps[i-1]; sw_maps[i-1] = sw_maps[i-2]; sw_maps[i-2] = t; QString item = keymaps->currentText(); keymaps->removeItem(i); keymaps->insertItem(item, i-1); keymaps->setCurrentItem(i-1); } } void ConfigDlg::moveSelectedDown() { int i = keymaps->currentItem(); /* Ignore Current Language */ if (i > 0 && i < (int)keymaps->count() - 1) { QString t = sw_maps[i-1]; sw_maps[i-1] = sw_maps[i]; sw_maps[i] = t; QString item = keymaps->currentText(); keymaps->removeItem(i); keymaps->insertItem(item, i+1); keymaps->setCurrentItem(i+1); } } void ConfigDlg::closeEvent(QCloseEvent *) { // tell the parent it was closed, so delete me emit configDlgClosed(); } void ConfigDlg::setMap(int index) { - if (index == 0) { - remove_button->setDisabled(true); - } - else if (default_maps.find(sw_maps[index-1]) != default_maps.end()) { + if (index == 0 || default_maps.find(sw_maps[index-1]) != default_maps.end()) { remove_button->setDisabled(true); } else { remove_button->setEnabled(true); } } // ConfigDlg::addMap() {{{1 void ConfigDlg::addMap() { QString map = OFileDialog::getOpenFileName(1, QDir::home().absPath()); if (map.isNull()) return; Config config ("multikey"); config.setGroup("keymaps"); QStringList maps = config.readListEntry("maps", QChar('|')); maps.append(map); custom_maps.append(map); if (sw_maps.find(map) == sw_maps.end()) sw_maps.append(map); QFile map_file (map); if (map_file.open(IO_ReadOnly)) { QString line; bool found = 0; map_file.readLine(line, 1024); while (!map_file.atEnd()) { if (line.find(QRegExp("^title\\s*=\\s*")) != -1) { keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace()); found = 1; break; } map_file.readLine(line, 1024); } if (!found) keymaps->insertItem(map); map_file.close(); } keymaps->setSelected(keymaps->count() - 1, true); } // ConfigDlg::removeMap() {{{1 void ConfigDlg::removeMap() { // 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(sw_maps[keymaps->currentItem()]); sw_maps.remove(sw_maps.at(keymaps->currentItem())); } /* 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(); keycolor_button->setPalette(QPalette(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->setPalette(QPalette(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->setPalette(QPalette(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->setPalette(QPalette(newcolor)); emit reloadKeyboard(); } |