Diffstat (limited to 'inputmethods/multikey/configdlg.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | inputmethods/multikey/configdlg.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp index 52c498b..24fdb7f 100644 --- a/inputmethods/multikey/configdlg.cpp +++ b/inputmethods/multikey/configdlg.cpp | |||
@@ -62,49 +62,49 @@ ConfigDlg::ConfigDlg () : QDialog () | |||
62 | keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); | 62 | keymaps->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); |
63 | QVBox *vbox1 = new QVBox(hbox1); | 63 | QVBox *vbox1 = new QVBox(hbox1); |
64 | 64 | ||
65 | QToolButton *tb1 = new QToolButton(vbox1, tr("Move Up")); | 65 | QToolButton *tb1 = new QToolButton(vbox1, tr("Move Up")); |
66 | tb1->setUsesBigPixmap( qApp->desktop()->size().width() > 330 ); | 66 | tb1->setUsesBigPixmap( qApp->desktop()->size().width() > 330 ); |
67 | tb1->setPixmap(Opie::Core::OResource::loadPixmap("up", Opie::Core::OResource::SmallIcon)); | 67 | tb1->setPixmap(Opie::Core::OResource::loadPixmap("up", Opie::Core::OResource::SmallIcon)); |
68 | tb1->setAutoRaise(TRUE); | 68 | tb1->setAutoRaise(TRUE); |
69 | tb1->setFocusPolicy(QWidget::NoFocus); | 69 | tb1->setFocusPolicy(QWidget::NoFocus); |
70 | tb1->setToggleButton(FALSE); | 70 | tb1->setToggleButton(FALSE); |
71 | connect(tb1, SIGNAL(clicked()), this, SLOT(moveSelectedUp())); | 71 | connect(tb1, SIGNAL(clicked()), this, SLOT(moveSelectedUp())); |
72 | 72 | ||
73 | QToolButton *tb2 = new QToolButton(vbox1, tr("Move Down")); | 73 | QToolButton *tb2 = new QToolButton(vbox1, tr("Move Down")); |
74 | tb2->setUsesBigPixmap( qApp->desktop()->size().width() > 330 ); | 74 | tb2->setUsesBigPixmap( qApp->desktop()->size().width() > 330 ); |
75 | tb2->setPixmap(Opie::Core::OResource::loadPixmap("down", Opie::Core::OResource::SmallIcon)); | 75 | tb2->setPixmap(Opie::Core::OResource::loadPixmap("down", Opie::Core::OResource::SmallIcon)); |
76 | tb2->setAutoRaise(TRUE); | 76 | tb2->setAutoRaise(TRUE); |
77 | tb2->setFocusPolicy(QWidget::NoFocus); | 77 | tb2->setFocusPolicy(QWidget::NoFocus); |
78 | tb2->setToggleButton(FALSE); | 78 | tb2->setToggleButton(FALSE); |
79 | connect(tb2, SIGNAL(clicked()), this, SLOT(moveSelectedDown())); | 79 | connect(tb2, SIGNAL(clicked()), this, SLOT(moveSelectedDown())); |
80 | 80 | ||
81 | QString cur(tr("Current Language")); | 81 | QString cur(tr("Current Language")); |
82 | keymaps->insertItem(cur); | 82 | keymaps->insertItem(cur); |
83 | keymaps->setSelected(0, true); | 83 | keymaps->setSelected(0, true); |
84 | 84 | ||
85 | QDir map_dir(QPEApplication::qpeDir() + "share/multikey", "*.keymap"); | 85 | QDir map_dir(QPEApplication::qpeDir() + "share/multikey", "*.keymap"); |
86 | default_maps = map_dir.entryList(); // so i can access it in other places | 86 | default_maps = map_dir.entryList(); // so the object can access keymaps in other places |
87 | custom_maps = config.readListEntry("maps", QChar('|')); | 87 | custom_maps = config.readListEntry("maps", QChar('|')); |
88 | sw_maps = ConfigDlg::loadSw(); | 88 | sw_maps = ConfigDlg::loadSw(); |
89 | 89 | ||
90 | QStringList sw_copy(sw_maps); | 90 | QStringList sw_copy(sw_maps); |
91 | for (uint i = 0; i < sw_copy.count(); i++) { | 91 | for (uint i = 0; i < sw_copy.count(); i++) { |
92 | 92 | ||
93 | QString keymap_map; | 93 | QString keymap_map; |
94 | if (sw_copy[i][0] != '/') { /* share/multikey */ | 94 | if (sw_copy[i][0] != '/') { /* share/multikey */ |
95 | 95 | ||
96 | keymap_map = map_dir.absPath() + "/" + sw_copy[i]; | 96 | keymap_map = map_dir.absPath() + "/" + sw_copy[i]; |
97 | } else { | 97 | } else { |
98 | 98 | ||
99 | if (map_dir.exists(QFileInfo(sw_copy[i]).fileName(), false) | 99 | if (map_dir.exists(QFileInfo(sw_copy[i]).fileName(), false) |
100 | || !QFile::exists(sw_copy[i])) { | 100 | || !QFile::exists(sw_copy[i])) { |
101 | 101 | ||
102 | custom_maps.remove(sw_copy[i]); | 102 | custom_maps.remove(sw_copy[i]); |
103 | sw_maps.remove(sw_copy[i]); | 103 | sw_maps.remove(sw_copy[i]); |
104 | 104 | ||
105 | // remove it from the list too | 105 | // remove it from the list too |
106 | config.writeEntry("maps", custom_maps.join("|")); | 106 | config.writeEntry("maps", custom_maps.join("|")); |
107 | 107 | ||
108 | continue; | 108 | continue; |
109 | } | 109 | } |
110 | keymap_map = sw_copy[i]; | 110 | keymap_map = sw_copy[i]; |
@@ -123,56 +123,58 @@ ConfigDlg::ConfigDlg () : QDialog () | |||
123 | keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace()); | 123 | keymaps->insertItem(line.right(line.length() - line.find(QChar('=')) - 1).stripWhiteSpace()); |
124 | found = 1; | 124 | found = 1; |
125 | break; | 125 | break; |
126 | } | 126 | } |
127 | map.readLine(line, 1024); | 127 | map.readLine(line, 1024); |
128 | } | 128 | } |
129 | if (!found) | 129 | if (!found) |
130 | keymaps->insertItem(keymap_map); | 130 | keymaps->insertItem(keymap_map); |
131 | 131 | ||
132 | map.close(); | 132 | map.close(); |
133 | } | 133 | } |
134 | 134 | ||
135 | if (keymap_map == current_map) { | 135 | if (keymap_map == current_map) { |
136 | keymaps->setSelected(i + 1, true); | 136 | keymaps->setSelected(i + 1, true); |
137 | } | 137 | } |
138 | } | 138 | } |
139 | 139 | ||
140 | // have to "+1" because the "current language" listItem... remember? | 140 | // have to "+1" because the "current language" listItem... remember? |
141 | connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int))); | 141 | connect(keymaps, SIGNAL(highlighted(int)), SLOT(setMap(int))); |
142 | 142 | ||
143 | QGrid *add_remove_grid = new QGrid(2, map_group); | 143 | QGrid *add_remove_grid = new QGrid(2, map_group); |
144 | add_remove_grid->setMargin(3); | 144 | add_remove_grid->setMargin(3); |
145 | add_remove_grid->setSpacing(3); | 145 | add_remove_grid->setSpacing(3); |
146 | 146 | ||
147 | add_button = new QPushButton(tr("Add"), add_remove_grid); | 147 | add_button = new QPushButton(tr("Add keymap..."), add_remove_grid); |
148 | add_button->setFlat(TRUE); | 148 | add_button->setFlat(TRUE); |
149 | connect(add_button, SIGNAL(clicked()), SLOT(addMap())); | 149 | connect(add_button, SIGNAL(clicked()), SLOT(addMap())); |
150 | 150 | ||
151 | remove_button = new QPushButton(tr("Remove"), add_remove_grid); | 151 | remove_button = new QPushButton(tr("Remove keymap"), add_remove_grid); |
152 | remove_button->setFlat(TRUE); | 152 | remove_button->setFlat(TRUE); |
153 | if (keymaps->currentItem() == 0 || default_maps.find(QFileInfo(current_map).fileName()) != default_maps.end()) | 153 | if (keymaps->currentItem() == 0 || default_maps.find(QFileInfo(current_map).fileName()) != default_maps.end()) { |
154 | remove_button->setDisabled(true); | 154 | remove_button->setDisabled(true); |
155 | remove_button->hide(); | ||
156 | } | ||
155 | connect(remove_button, SIGNAL(clicked()), SLOT(removeMap())); | 157 | connect(remove_button, SIGNAL(clicked()), SLOT(removeMap())); |
156 | 158 | ||
157 | gen_lay->addWidget(map_group); | 159 | gen_lay->addWidget(map_group); |
158 | 160 | ||
159 | // make a box that will contain the buttons on the bottom | 161 | // make a box that will contain the buttons on the bottom |
160 | QGrid *other_grid = new QGrid(2, gen_box); | 162 | QGrid *other_grid = new QGrid(2, gen_box); |
161 | pick_button = new QCheckBox(tr("Pickboard"), other_grid); | 163 | pick_button = new QCheckBox(tr("Pickboard"), other_grid); |
162 | 164 | ||
163 | config.setGroup ("general"); | 165 | config.setGroup ("general"); |
164 | bool pick_open = config.readBoolEntry ("usePickboard", FALSE); // default closed | 166 | bool pick_open = config.readBoolEntry ("usePickboard", FALSE); // default closed |
165 | if (pick_open) { | 167 | if (pick_open) { |
166 | 168 | ||
167 | pick_button->setChecked(true); | 169 | pick_button->setChecked(true); |
168 | } | 170 | } |
169 | 171 | ||
170 | repeat_button = new QCheckBox(tr("Key Repeat"), other_grid); | 172 | repeat_button = new QCheckBox(tr("Key Repeat"), other_grid); |
171 | bool repeat_on = config.readBoolEntry ("useRepeat", TRUE); | 173 | bool repeat_on = config.readBoolEntry ("useRepeat", TRUE); |
172 | 174 | ||
173 | if (repeat_on) { | 175 | if (repeat_on) { |
174 | 176 | ||
175 | repeat_button->setChecked(true); | 177 | repeat_button->setChecked(true); |
176 | } | 178 | } |
177 | 179 | ||
178 | gen_lay->addWidget(other_grid); | 180 | gen_lay->addWidget(other_grid); |
@@ -284,57 +286,59 @@ QStringList ConfigDlg::loadSw() | |||
284 | } | 286 | } |
285 | } | 287 | } |
286 | } | 288 | } |
287 | 289 | ||
288 | return s_maps; | 290 | return s_maps; |
289 | } | 291 | } |
290 | 292 | ||
291 | void ConfigDlg::accept() | 293 | void ConfigDlg::accept() |
292 | { | 294 | { |
293 | /* Writing all stuffs to config */ | 295 | /* Writing all stuffs to config */ |
294 | Config *config = new Config("multikey"); | 296 | Config *config = new Config("multikey"); |
295 | config->setGroup("general"); | 297 | config->setGroup("general"); |
296 | config->writeEntry("usePickboard", pick_button->isChecked()); // default closed | 298 | config->writeEntry("usePickboard", pick_button->isChecked()); // default closed |
297 | config->writeEntry("useRepeat", repeat_button->isChecked()); // default closed | 299 | config->writeEntry("useRepeat", repeat_button->isChecked()); // default closed |
298 | 300 | ||
299 | config->setGroup("keymaps"); | 301 | config->setGroup("keymaps"); |
300 | config->writeEntry("sw", sw_maps, QChar('|')); | 302 | config->writeEntry("sw", sw_maps, QChar('|')); |
301 | config->writeEntry("maps", custom_maps, QChar('|')); | 303 | config->writeEntry("maps", custom_maps, QChar('|')); |
302 | delete config; | 304 | delete config; |
303 | 305 | ||
304 | int index = keymaps->currentItem(); | 306 | int index = keymaps->currentItem(); |
305 | if (index == 0) { | 307 | if (index == 0) { |
306 | 308 | ||
307 | remove_button->setDisabled(true); | 309 | remove_button->setDisabled(true); |
310 | remove_button->hide(); | ||
308 | emit setMapToDefault(); | 311 | emit setMapToDefault(); |
309 | } | 312 | } |
310 | else if (default_maps.find(sw_maps[index-1]) != default_maps.end()) { | 313 | else if (default_maps.find(sw_maps[index-1]) != default_maps.end()) { |
311 | 314 | ||
312 | remove_button->setDisabled(true); | 315 | remove_button->setDisabled(true); |
316 | remove_button->hide(); | ||
313 | emit setMapToFile(QPEApplication::qpeDir() + "share/multikey/" + sw_maps[index - 1]); | 317 | emit setMapToFile(QPEApplication::qpeDir() + "share/multikey/" + sw_maps[index - 1]); |
314 | 318 | ||
315 | } else { | 319 | } else { |
316 | 320 | remove_button->show(); | |
317 | remove_button->setEnabled(true); | 321 | remove_button->setEnabled(true); |
318 | emit setMapToFile(sw_maps[index - 1]); | 322 | emit setMapToFile(sw_maps[index - 1]); |
319 | } | 323 | } |
320 | 324 | ||
321 | emit pickboardToggled(pick_button->isChecked()); | 325 | emit pickboardToggled(pick_button->isChecked()); |
322 | emit repeatToggled(repeat_button->isChecked()); | 326 | emit repeatToggled(repeat_button->isChecked()); |
323 | emit reloadSw(); | 327 | emit reloadSw(); |
324 | 328 | ||
325 | QDialog::accept(); | 329 | QDialog::accept(); |
326 | emit configDlgClosed(); | 330 | emit configDlgClosed(); |
327 | } | 331 | } |
328 | 332 | ||
329 | void ConfigDlg::moveSelectedUp() | 333 | void ConfigDlg::moveSelectedUp() |
330 | { | 334 | { |
331 | int i = keymaps->currentItem(); | 335 | int i = keymaps->currentItem(); |
332 | /* Ignore Current Language */ | 336 | /* Ignore Current Language */ |
333 | if (i > 1) { | 337 | if (i > 1) { |
334 | QString t = sw_maps[i-1]; | 338 | QString t = sw_maps[i-1]; |
335 | sw_maps[i-1] = sw_maps[i-2]; | 339 | sw_maps[i-1] = sw_maps[i-2]; |
336 | sw_maps[i-2] = t; | 340 | sw_maps[i-2] = t; |
337 | 341 | ||
338 | QString item = keymaps->currentText(); | 342 | QString item = keymaps->currentText(); |
339 | keymaps->removeItem(i); | 343 | keymaps->removeItem(i); |
340 | keymaps->insertItem(item, i-1); | 344 | keymaps->insertItem(item, i-1); |
@@ -347,49 +351,51 @@ void ConfigDlg::moveSelectedDown() | |||
347 | int i = keymaps->currentItem(); | 351 | int i = keymaps->currentItem(); |
348 | /* Ignore Current Language */ | 352 | /* Ignore Current Language */ |
349 | if (i > 0 && i < (int)keymaps->count() - 1) { | 353 | if (i > 0 && i < (int)keymaps->count() - 1) { |
350 | QString t = sw_maps[i-1]; | 354 | QString t = sw_maps[i-1]; |
351 | sw_maps[i-1] = sw_maps[i]; | 355 | sw_maps[i-1] = sw_maps[i]; |
352 | sw_maps[i] = t; | 356 | sw_maps[i] = t; |
353 | 357 | ||
354 | QString item = keymaps->currentText(); | 358 | QString item = keymaps->currentText(); |
355 | keymaps->removeItem(i); | 359 | keymaps->removeItem(i); |
356 | keymaps->insertItem(item, i+1); | 360 | keymaps->insertItem(item, i+1); |
357 | keymaps->setCurrentItem(i+1); | 361 | keymaps->setCurrentItem(i+1); |
358 | } | 362 | } |
359 | } | 363 | } |
360 | 364 | ||
361 | void ConfigDlg::closeEvent(QCloseEvent *) { | 365 | void ConfigDlg::closeEvent(QCloseEvent *) { |
362 | 366 | ||
363 | // tell the parent it was closed, so delete me | 367 | // tell the parent it was closed, so delete me |
364 | emit configDlgClosed(); | 368 | emit configDlgClosed(); |
365 | } | 369 | } |
366 | 370 | ||
367 | void ConfigDlg::setMap(int index) { | 371 | void ConfigDlg::setMap(int index) { |
368 | 372 | ||
369 | if (index == 0 || default_maps.find(sw_maps[index-1]) != default_maps.end()) { | 373 | if (index == 0 || default_maps.find(sw_maps[index-1]) != default_maps.end()) { |
370 | remove_button->setDisabled(true); | 374 | remove_button->setDisabled(true); |
375 | remove_button->hide(); | ||
371 | } else { | 376 | } else { |
377 | remove_button->show(); | ||
372 | remove_button->setEnabled(true); | 378 | remove_button->setEnabled(true); |
373 | } | 379 | } |
374 | } | 380 | } |
375 | 381 | ||
376 | // ConfigDlg::addMap() {{{1 | 382 | // ConfigDlg::addMap() {{{1 |
377 | void ConfigDlg::addMap() { | 383 | void ConfigDlg::addMap() { |
378 | 384 | ||
379 | QString map = OFileDialog::getOpenFileName(1, QDir::home().absPath()); | 385 | QString map = OFileDialog::getOpenFileName(1, QDir::home().absPath()); |
380 | 386 | ||
381 | if (map.isNull()) return; | 387 | if (map.isNull()) return; |
382 | 388 | ||
383 | Config config ("multikey"); | 389 | Config config ("multikey"); |
384 | config.setGroup("keymaps"); | 390 | config.setGroup("keymaps"); |
385 | QStringList maps = config.readListEntry("maps", QChar('|')); | 391 | QStringList maps = config.readListEntry("maps", QChar('|')); |
386 | maps.append(map); | 392 | maps.append(map); |
387 | custom_maps.append(map); | 393 | custom_maps.append(map); |
388 | if (sw_maps.find(map) == sw_maps.end()) | 394 | if (sw_maps.find(map) == sw_maps.end()) |
389 | sw_maps.append(map); | 395 | sw_maps.append(map); |
390 | 396 | ||
391 | QFile map_file (map); | 397 | QFile map_file (map); |
392 | if (map_file.open(IO_ReadOnly)) { | 398 | if (map_file.open(IO_ReadOnly)) { |
393 | 399 | ||
394 | QString line; bool found = 0; | 400 | QString line; bool found = 0; |
395 | 401 | ||