From: Steinar H. Gunderson Date: Sat, 22 Oct 2016 13:45:58 +0000 (+0200) Subject: Fix some UI work being done on the non-UI thread. X-Git-Tag: 1.4.0~10 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=52c3ac9a9a358ea422810b9376651de9f283bd12;p=nageru Fix some UI work being done on the non-UI thread. --- diff --git a/midi_mapping_dialog.cpp b/midi_mapping_dialog.cpp index 02ce308..4a4ecfb 100644 --- a/midi_mapping_dialog.cpp +++ b/midi_mapping_dialog.cpp @@ -20,6 +20,7 @@ #include "midi_mapper.h" #include "midi_mapping.pb.h" +#include "post_to_main_thread.h" #include "ui_midi_mapping.h" class QObject; @@ -445,28 +446,32 @@ void MIDIMappingDialog::fill_controls_from_mapping(const MIDIMappingProto &mappi void MIDIMappingDialog::controller_changed(unsigned controller) { - for (const InstantiatedSpinner &is : controller_spinners) { - if (is.spinner->hasFocus()) { - is.spinner->setValue(controller); - is.spinner->selectAll(); + post_to_main_thread([=]{ + for (const InstantiatedSpinner &is : controller_spinners) { + if (is.spinner->hasFocus()) { + is.spinner->setValue(controller); + is.spinner->selectAll(); + } } - } + }); } void MIDIMappingDialog::note_on(unsigned note) { - for (const InstantiatedSpinner &is : button_spinners) { - if (is.spinner->hasFocus()) { - is.spinner->setValue(note); - is.spinner->selectAll(); + post_to_main_thread([=]{ + for (const InstantiatedSpinner &is : button_spinners) { + if (is.spinner->hasFocus()) { + is.spinner->setValue(note); + is.spinner->selectAll(); + } } - } - for (const InstantiatedSpinner &is : light_spinners) { - if (is.spinner->hasFocus()) { - is.spinner->setValue(note); - is.spinner->selectAll(); + for (const InstantiatedSpinner &is : light_spinners) { + if (is.spinner->hasFocus()) { + is.spinner->setValue(note); + is.spinner->selectAll(); + } } - } + }); } pair MIDIMappingDialog::guess_offset(unsigned bus_idx, MIDIMappingDialog::SpinnerGroup spinner_group)