X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=input_mapping_dialog.h;h=d092a34cd5f12f71356a67f59956575de8e5ffca;hb=95c6bc9d8e340b02112f713389390102d547cc4c;hp=4eb5e4cd75b62674855f8c1ad298cb8536c9b1b4;hpb=4bbcd111d04f36a42cf3d40f18fcee5a91c6322a;p=nageru diff --git a/input_mapping_dialog.h b/input_mapping_dialog.h index 4eb5e4c..d092a34 100644 --- a/input_mapping_dialog.h +++ b/input_mapping_dialog.h @@ -12,6 +12,8 @@ namespace Ui { class InputMappingDialog; } // namespace Ui +class QComboBox; + class InputMappingDialog : public QDialog { Q_OBJECT @@ -20,10 +22,28 @@ public: InputMappingDialog(); private: - void fill_ui_from_mapping(const InputMapping &mapping, const std::vector &card_names); - void fill_channel_ui_from_mapping(unsigned row, const InputMapping::Input &input); + void fill_ui_from_mapping(const InputMapping &mapping); + void fill_row_from_bus(unsigned row, const InputMapping::Bus &bus); + void setup_channel_choices_from_bus(unsigned row, const InputMapping::Bus &bus); + void cell_changed(int row, int column); + void card_selected(QComboBox *card_combo, unsigned row, int index); + void channel_selected(unsigned row, unsigned channel, int index); + void ok_clicked(); + void cancel_clicked(); + void add_clicked(); + void remove_clicked(); + void updown_clicked(int direction); + void update_button_state(); Ui::InputMappingDialog *ui; + InputMapping mapping; // Under edit. Will be committed on OK. + + // The old mapping. Will be re-committed on cancel, so that we + // unhold all the unused devices (otherwise they would be + // held forever). + InputMapping old_mapping; + + const std::map devices; }; #endif // !defined(_INPUT_MAPPING_DIALOG_H)