75 | 75 |
};
|
76 | 76 |
|
77 | 77 |
#ifdef HAVE_OVIRT
|
78 | |
static OvirtVm * choose_vm(char **vm_name, OvirtCollection *vms, GError **error);
|
|
78 |
static OvirtVm * choose_vm(GtkWindow *main_window,
|
|
79 |
char **vm_name,
|
|
80 |
OvirtCollection *vms,
|
|
81 |
GError **error);
|
79 | 82 |
#endif
|
80 | 83 |
|
81 | 84 |
static gboolean remote_viewer_start(VirtViewerApp *self);
|
|
83 | 86 |
static gboolean remote_viewer_activate(VirtViewerApp *self, GError **error);
|
84 | 87 |
static void remote_viewer_window_added(VirtViewerApp *self, VirtViewerWindow *win);
|
85 | 88 |
static void spice_foreign_menu_updated(RemoteViewer *self);
|
86 | |
static gint connect_dialog(gchar **uri);
|
|
89 |
static gint connect_dialog(GtkWindow *main_window, gchar **uri);
|
87 | 90 |
#endif
|
88 | 91 |
|
89 | 92 |
static void
|
|
864 | 867 |
}
|
865 | 868 |
if (vm_name == NULL ||
|
866 | 869 |
(vm = OVIRT_VM(ovirt_collection_lookup_resource(vms, vm_name))) == NULL) {
|
867 | |
vm = choose_vm(&vm_name, vms, &error);
|
|
870 |
VirtViewerWindow *main_window = virt_viewer_app_get_main_window(app);
|
|
871 |
vm = choose_vm(virt_viewer_window_get_window(main_window),
|
|
872 |
&vm_name,
|
|
873 |
vms,
|
|
874 |
&error);
|
868 | 875 |
if (vm == NULL) {
|
869 | 876 |
goto error;
|
870 | 877 |
}
|
|
1047 | 1054 |
}
|
1048 | 1055 |
|
1049 | 1056 |
static gint
|
1050 | |
connect_dialog(gchar **uri)
|
|
1057 |
connect_dialog(GtkWindow *main_window, gchar **uri)
|
1051 | 1058 |
{
|
1052 | 1059 |
GtkWidget *dialog, *area, *box, *label, *entry, *recent;
|
1053 | 1060 |
#if !GTK_CHECK_VERSION(3, 0, 0)
|
|
1058 | 1065 |
|
1059 | 1066 |
/* Create the widgets */
|
1060 | 1067 |
dialog = gtk_dialog_new_with_buttons(_("Connection details"),
|
1061 | |
NULL,
|
|
1068 |
main_window,
|
1062 | 1069 |
GTK_DIALOG_DESTROY_WITH_PARENT,
|
1063 | 1070 |
GTK_STOCK_CANCEL,
|
1064 | 1071 |
GTK_RESPONSE_REJECT,
|
|
1137 | 1144 |
|
1138 | 1145 |
#ifdef HAVE_OVIRT
|
1139 | 1146 |
static OvirtVm *
|
1140 | |
choose_vm(char **vm_name, OvirtCollection *vms_collection, GError **error)
|
|
1147 |
choose_vm(GtkWindow *main_window,
|
|
1148 |
char **vm_name,
|
|
1149 |
OvirtCollection *vms_collection,
|
|
1150 |
GError **error)
|
1141 | 1151 |
{
|
1142 | 1152 |
GtkListStore *model;
|
1143 | 1153 |
GtkTreeIter iter;
|
|
1161 | 1171 |
}
|
1162 | 1172 |
}
|
1163 | 1173 |
|
1164 | |
*vm_name = virt_viewer_vm_connection_choose_name_dialog(GTK_TREE_MODEL(model), error);
|
|
1174 |
*vm_name = virt_viewer_vm_connection_choose_name_dialog(main_window,
|
|
1175 |
GTK_TREE_MODEL(model),
|
|
1176 |
error);
|
1165 | 1177 |
g_object_unref(model);
|
1166 | 1178 |
if (*vm_name == NULL)
|
1167 | 1179 |
return NULL;
|
|
1179 | 1191 |
|
1180 | 1192 |
RemoteViewer *self = REMOTE_VIEWER(app);
|
1181 | 1193 |
RemoteViewerPrivate *priv = self->priv;
|
|
1194 |
VirtViewerWindow *main_window;
|
1182 | 1195 |
GFile *file = NULL;
|
1183 | 1196 |
VirtViewerFile *vvfile = NULL;
|
1184 | 1197 |
gboolean ret = FALSE;
|
|
1209 | 1222 |
} else {
|
1210 | 1223 |
#endif
|
1211 | 1224 |
retry_dialog:
|
|
1225 |
main_window = virt_viewer_app_get_main_window(app);
|
1212 | 1226 |
if (priv->open_recent_dialog) {
|
1213 | |
if (connect_dialog(&guri) != 0)
|
|
1227 |
if (connect_dialog(virt_viewer_window_get_window(main_window), &guri) != 0)
|
1214 | 1228 |
return FALSE;
|
1215 | 1229 |
g_object_set(app, "guri", guri, NULL);
|
1216 | 1230 |
} else
|