diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2017-01-25 20:28:34 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2017-01-27 05:04:56 +0000 |
commit | 87f4dc0a9d22060d379db2daa3f4271137a4edcc (patch) | |
tree | ba769252f46dc824d1398540da96ab51582d146e | |
parent | dc86242e3e158adbc99371acf4c99d4e06e57a1a (diff) | |
download | wireshark-87f4dc0a9d22060d379db2daa3f4271137a4edcc.tar.gz |
Qt: Preference editor improvements.
Use correct disconnect() signature to ensure everything is disconnected
before connecting new signals. Without this all previous connects() are
still active. This leads to gradually more and more syntax checks being
called for each change, and possibility of a wrong syntax check
(especially for strings which has no syntax check).
Use the textEdited() signal to trigger a syntax check at startup.
This gives consistency.
Do not clear preferenceLineEdit when done because it looks weird when
the preference text disappears while the widget is hiding. The entry
is cleared before next show anyway.
Change-Id: I21c6fd8ec6bb0ecff1b2c0b66fe97dc3eaecf9b3
Reviewed-on: https://code.wireshark.org/review/19788
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | ui/qt/preference_editor_frame.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/ui/qt/preference_editor_frame.cpp b/ui/qt/preference_editor_frame.cpp index e9c008ea1c..5ac034c6b4 100644 --- a/ui/qt/preference_editor_frame.cpp +++ b/ui/qt/preference_editor_frame.cpp @@ -90,29 +90,25 @@ void PreferenceEditorFrame::editPreference(preference *pref, pref_module *module ui->preferenceLineEdit->clear(); ui->preferenceLineEdit->setSyntaxState(SyntaxLineEdit::Empty); - disconnect(ui->preferenceLineEdit); + disconnect(ui->preferenceLineEdit, 0, 0, 0); bool show = false; switch (prefs_get_type(pref_)) { case PREF_UINT: case PREF_DECODE_AS_UINT: - new_uint_ = prefs_get_uint_value_real(pref_, pref_stashed); - connect(ui->preferenceLineEdit, SIGNAL(textEdited(QString)), + connect(ui->preferenceLineEdit, SIGNAL(textChanged(QString)), this, SLOT(uintLineEditTextEdited(QString))); show = true; break; case PREF_STRING: - new_str_ = prefs_get_string_value(pref_, pref_stashed); - connect(ui->preferenceLineEdit, SIGNAL(textEdited(QString)), + connect(ui->preferenceLineEdit, SIGNAL(textChanged(QString)), this, SLOT(stringLineEditTextEdited(QString))); show = true; break; case PREF_RANGE: case PREF_DECODE_AS_RANGE: - wmem_free(NULL, new_range_); - new_range_ = range_copy(NULL, prefs_get_range_value_real(pref_, pref_stashed)); - connect(ui->preferenceLineEdit, SIGNAL(textEdited(QString)), + connect(ui->preferenceLineEdit, SIGNAL(textChanged(QString)), this, SLOT(rangeLineEditTextEdited(QString))); show = true; break; @@ -240,7 +236,6 @@ void PreferenceEditorFrame::on_buttonBox_rejected() module_ = NULL; wmem_free(NULL, new_range_); new_range_ = NULL; - ui->preferenceLineEdit->clear(); animatedHide(); } |