Signed-off-by: Eduardo Lima (Etrunko) <etrunko@xxxxxxxxxx> --- src/resources/ui/virt-viewer.ui | 1 + src/virt-viewer-window.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/resources/ui/virt-viewer.ui b/src/resources/ui/virt-viewer.ui index ee23ba5..e27ee77 100644 --- a/src/resources/ui/virt-viewer.ui +++ b/src/resources/ui/virt-viewer.ui @@ -73,6 +73,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes">_Change CD</property> <property name="use_underline">True</property> + <signal name="activate" handler="virt_viewer_window_menu_change_cd_activate" swapped="no"/> </object> </child> <child> diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index 7e6b93f..867fb86 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -43,6 +43,8 @@ #include "virt-viewer-util.h" #include "virt-viewer-timed-revealer.h" +#include "remote-viewer-iso-list-dialog.h" + #define ZOOM_STEP 10 /* Signal handlers for main window (move in a VirtViewerMainWindow?) */ @@ -62,6 +64,7 @@ void virt_viewer_window_menu_file_smartcard_insert(GtkWidget *menu, VirtViewerWi void virt_viewer_window_menu_file_smartcard_remove(GtkWidget *menu, VirtViewerWindow *self); void virt_viewer_window_menu_view_release_cursor(GtkWidget *menu, VirtViewerWindow *self); void virt_viewer_window_menu_preferences_cb(GtkWidget *menu, VirtViewerWindow *self); +void virt_viewer_window_menu_change_cd_activate(GtkWidget *menu, VirtViewerWindow *self); /* Internal methods */ @@ -1052,6 +1055,32 @@ virt_viewer_window_menu_help_about(GtkWidget *menu G_GNUC_UNUSED, g_object_unref(G_OBJECT(about)); } +static void +iso_dialog_response(GtkDialog *dialog, + gint response_id, + GtkWidget **dialog_ptr) { + if (response_id == GTK_RESPONSE_NONE) + return; + + gtk_widget_destroy(GTK_WIDGET(dialog)); + *dialog_ptr = NULL; +} + +void +virt_viewer_window_menu_change_cd_activate(GtkWidget *menu G_GNUC_UNUSED, + VirtViewerWindow *self) +{ + VirtViewerWindowPrivate *priv = self->priv; + static GtkWidget *dialog = NULL; + + if (dialog) + return; + + dialog = remote_viewer_iso_list_dialog_new(GTK_WINDOW(priv->window)); + g_signal_connect(dialog, "response", G_CALLBACK(iso_dialog_response), &dialog); + gtk_widget_show_all(dialog); + gtk_dialog_run(GTK_DIALOG(dialog)); +} static void virt_viewer_window_toolbar_setup(VirtViewerWindow *self) -- 2.7.4 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list