X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=midi_mapping_dialog.cpp;h=89656039698b3fe47d36a4e26f7a73767f876d09;hb=ffd68fbfb90242069af957f2a28908f0559f8348;hp=4a4ecfbfee7c2218910412df584c0f7fc5cc0af7;hpb=52c3ac9a9a358ea422810b9376651de9f283bd12;p=nageru diff --git a/midi_mapping_dialog.cpp b/midi_mapping_dialog.cpp index 4a4ecfb..8965603 100644 --- a/midi_mapping_dialog.cpp +++ b/midi_mapping_dialog.cpp @@ -280,9 +280,15 @@ void MIDIMappingDialog::cancel_clicked() void MIDIMappingDialog::save_clicked() { +#if HAVE_CEF + // The native file dialog uses GTK+, which interferes with CEF's use of the GLib main loop. + QFileDialog::Option options(QFileDialog::DontUseNativeDialog); +#else + QFileDialog::Option options; +#endif unique_ptr new_mapping = construct_mapping_proto_from_ui(); QString filename = QFileDialog::getSaveFileName(this, - "Save MIDI mapping", QString(), tr("Mapping files (*.midimapping)")); + "Save MIDI mapping", QString(), tr("Mapping files (*.midimapping)"), /*selectedFilter=*/nullptr, options); if (!filename.endsWith(".midimapping")) { filename += ".midimapping"; } @@ -295,8 +301,14 @@ void MIDIMappingDialog::save_clicked() void MIDIMappingDialog::load_clicked() { +#if HAVE_CEF + // The native file dialog uses GTK+, which interferes with CEF's use of the GLib main loop. + QFileDialog::Option options(QFileDialog::DontUseNativeDialog); +#else + QFileDialog::Option options; +#endif QString filename = QFileDialog::getOpenFileName(this, - "Load MIDI mapping", QString(), tr("Mapping files (*.midimapping)")); + "Load MIDI mapping", QString(), tr("Mapping files (*.midimapping)"), /*selectedFilter=*/nullptr, options); MIDIMappingProto new_mapping; if (!load_midi_mapping_from_file(filename.toStdString(), &new_mapping)) { QMessageBox box;