summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-07 12:43:00 (UTC)
committer alwin <alwin>2004-04-07 12:43:00 (UTC)
commitd581038dd7875aa65a750f099333a94f43c37ef2 (patch) (unidiff)
treefb84b2bb05294583f6bf62866e06822700859db8
parent0e2322d2bc926036d62153346bb03776df1ca987 (diff)
downloadopie-d581038dd7875aa65a750f099333a94f43c37ef2.zip
opie-d581038dd7875aa65a750f099333a94f43c37ef2.tar.gz
opie-d581038dd7875aa65a750f099333a94f43c37ef2.tar.bz2
workaround for a OConfig bug so all keys will realy written
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/okeyconfigwidget.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/libopie2/opieui/okeyconfigwidget.cpp b/libopie2/opieui/okeyconfigwidget.cpp
index eb7acbd..d6d34f5 100644
--- a/libopie2/opieui/okeyconfigwidget.cpp
+++ b/libopie2/opieui/okeyconfigwidget.cpp
@@ -497,64 +497,65 @@ void OKeyConfigManager::load() {
497 } 497 }
498 delete m_map; m_map = 0; 498 delete m_map; m_map = 0;
499} 499}
500 500
501/** 501/**
502 * We will save the current configuration 502 * We will save the current configuration
503 * to the OConfig. We will change the group but restore 503 * to the OConfig. We will change the group but restore
504 * to the previous 504 * to the previous
505 */ 505 */
506void OKeyConfigManager::save() { 506void OKeyConfigManager::save() {
507 Opie::Core::OConfigGroupSaver( m_conf, m_group ); 507 Opie::Core::OConfigGroupSaver( m_conf, m_group );
508 508
509 /* 509 /*
510 * Write each item 510 * Write each item
511 */ 511 */
512 for( OKeyConfigItem::List::Iterator it = m_keys.begin();it != m_keys.end(); ++it ) { 512 for( OKeyConfigItem::List::Iterator it = m_keys.begin();it != m_keys.end(); ++it ) {
513 /* skip empty items */ 513 /* skip empty items */
514 if ( (*it).isEmpty() ) 514 if ( (*it).isEmpty() )
515 continue; 515 continue;
516 OKeyPair pair = (*it).keyPair(); 516 OKeyPair pair = (*it).keyPair();
517 OKeyPair deft = (*it).defaultKeyPair(); 517 OKeyPair deft = (*it).defaultKeyPair();
518 /* 518 /*
519 * don't write if it is the default setting 519 * don't write if it is the default setting
520 * FIXME allow to remove Keys from config 520 * FIXME allow to remove Keys from config
521 if ( (pair.keycode() == deft.keycode()) && 521 if ( (pair.keycode() == deft.keycode()) &&
522 (pair.modifier()== deft.modifier() ) ) 522 (pair.modifier()== deft.modifier() ) )
523 return; 523 return;
524 */ 524 */
525 525
526 m_conf->writeEntry((*it).configKey()+"key", pair.keycode() ); 526 m_conf->writeEntry((*it).configKey()+"key", pair.keycode() );
527 m_conf->writeEntry((*it).configKey()+"mod", pair.modifier() ); 527 m_conf->writeEntry((*it).configKey()+"mod", pair.modifier() );
528 } 528 }
529 m_conf->write();
529} 530}
530 531
531/** 532/**
532 * This is function uses a QMap internally but you can have the same keycode 533 * This is function uses a QMap internally but you can have the same keycode
533 * with different modifier key. The behaviour is undefined if you add a OKeyConfigItem 534 * with different modifier key. The behaviour is undefined if you add a OKeyConfigItem
534 * with same keycode and modifier key. The GUI takes care that a user can't 535 * with same keycode and modifier key. The GUI takes care that a user can't
535 * cofigure two keys. 536 * cofigure two keys.
536 * 537 *
537 * Make sure you call e->ignore if you don't want to handle this event 538 * Make sure you call e->ignore if you don't want to handle this event
538 */ 539 */
539OKeyConfigItem OKeyConfigManager::handleKeyEvent( QKeyEvent* e ) { 540OKeyConfigItem OKeyConfigManager::handleKeyEvent( QKeyEvent* e ) {
540 /* 541 /*
541 * Fix Up issues with Qt/E, my keybard, and virtual input 542 * Fix Up issues with Qt/E, my keybard, and virtual input
542 * methods 543 * methods
543 * First my Keyboard delivers 256,512,1024 for shift/ctrl/alt instead of the button state 544 * First my Keyboard delivers 256,512,1024 for shift/ctrl/alt instead of the button state
544 * Also key() on virtual inputmethods are zero and only ascii. We need to fix upper and lower 545 * Also key() on virtual inputmethods are zero and only ascii. We need to fix upper and lower
545 * case ascii 546 * case ascii
546 */ 547 */
547 int key, mod; 548 int key, mod;
548 Opie::Ui::Internal::fixupKeys( key, mod, e ); 549 Opie::Ui::Internal::fixupKeys( key, mod, e );
549 550
550 OKeyConfigItem::List _keyList = keyList( key ); 551 OKeyConfigItem::List _keyList = keyList( key );
551 if ( _keyList.isEmpty() ) 552 if ( _keyList.isEmpty() )
552 return OKeyConfigItem(); 553 return OKeyConfigItem();
553 554
554 OKeyConfigItem item; 555 OKeyConfigItem item;
555 for ( OKeyConfigItem::List::Iterator it = _keyList.begin(); it != _keyList.end(); 556 for ( OKeyConfigItem::List::Iterator it = _keyList.begin(); it != _keyList.end();
556 ++it ) { 557 ++it ) {
557 if ( (*it).keyPair().modifier() == mod ) { 558 if ( (*it).keyPair().modifier() == mod ) {
558 item = *it; 559 item = *it;
559 break; 560 break;
560 } 561 }