From dbedf8d4129a88e4822902c85a76ebc6b35c95fb Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 18 Jun 2007 16:39:40 +0000 Subject: [PATCH] Fix setting of key binding description /doh. Fix crash in key binding editor if used without setting it up with an existing translator. Fixes crash in translator list if it is empty. svn path=/trunk/KDE/kdebase/apps/konsole/; revision=677187 --- src/EditProfileDialog.cpp | 8 ++++++-- src/KeyBindingEditor.cpp | 13 +++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/EditProfileDialog.cpp b/src/EditProfileDialog.cpp index 80c622c87..014ecde8c 100644 --- a/src/EditProfileDialog.cpp +++ b/src/EditProfileDialog.cpp @@ -640,7 +640,9 @@ void EditProfileDialog::showKeyBindingEditor(bool isNewTranslator) KeyBindingEditor* editor = new KeyBindingEditor; dialog->setMainWidget(editor); - editor->setup(translator); + + if ( translator ) + editor->setup(translator); if ( isNewTranslator ) editor->setDescription(i18n("New Key Binding List")); @@ -652,7 +654,9 @@ void EditProfileDialog::showKeyBindingEditor(bool isNewTranslator) if ( isNewTranslator ) newTranslator->setName(newTranslator->description()); - qDebug() << "Adding new or modified translator to manager"; + qDebug() << "Adding new or modified translator to manager" << + newTranslator->name() << ", " << newTranslator->description(); + KeyboardTranslatorManager::instance()->addTranslator( newTranslator ); updateKeyBindingsList(); diff --git a/src/KeyBindingEditor.cpp b/src/KeyBindingEditor.cpp index b483c7ea4..5209c490e 100644 --- a/src/KeyBindingEditor.cpp +++ b/src/KeyBindingEditor.cpp @@ -32,7 +32,7 @@ using namespace Konsole; KeyBindingEditor::KeyBindingEditor(QWidget* parent) : QWidget(parent) - , _translator(0) + , _translator(new KeyboardTranslator( QString() )) { _ui = new Ui::KeyBindingEditor(); _ui->setupUi(this); @@ -146,13 +146,10 @@ bool KeyBindingEditor::eventFilter( QObject* watched , QEvent* event ) void KeyBindingEditor::setDescription(const QString& newDescription) { - if ( description() != newDescription ) - { - _ui->descriptionEdit->setText(newDescription); - - if ( _translator ) - _translator->setDescription(newDescription); - } + _ui->descriptionEdit->setText(newDescription); + + if ( _translator ) + _translator->setDescription(newDescription); } QString KeyBindingEditor::description() const {