+ card_submenu.setTitle("Input source");
+ menu.addMenu(&card_submenu);
+
+ // Add a submenu for selecting resolution, with an action for each resolution.
+ // Note that the choice depends a lot on which card is active.
+ QMenu mode_submenu;
+ QActionGroup mode_group(&mode_submenu);
+ std::map<uint32_t, VideoMode> video_modes = global_mixer->get_available_video_modes(current_card);
+ uint32_t current_video_mode = global_mixer->get_current_video_mode(current_card);
+ for (const auto &mode : video_modes) {
+ QString description(QString::fromStdString(mode.second.name));
+ QAction *action = new QAction(description, &mode_group);
+ action->setCheckable(true);
+ if (mode.first == current_video_mode) {
+ action->setChecked(true);
+ }
+ action->setData(QList<QVariant>{"video_mode", mode.first});
+ mode_submenu.addAction(action);
+ }
+
+ mode_submenu.setTitle("Input mode");
+ menu.addMenu(&mode_submenu);