From 74d25742ea38abb2b96bb1d62d753c4bc9f4eda0 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 24 Jul 2020 10:38:04 +0200 Subject: [PATCH] VM selection: expand models for UI/key columns Add a new column in the list models for the VM selection dialog, and use this new column to hold the key of the VM. This way, the first column represents the UI representation of the VM without affecting the key. At the moment the VM name is set for both, so there is no behavior change. Signed-off-by: Pino Toscano --- src/remote-viewer.c | 5 +++-- src/virt-viewer-vm-connection.c | 4 +++- src/virt-viewer.c | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/remote-viewer.c b/src/remote-viewer.c index 3566cef..717a57e 100644 --- a/src/remote-viewer.c +++ b/src/remote-viewer.c @@ -608,7 +608,8 @@ choose_vm(GtkWindow *main_window, g_return_val_if_fail(vm_name != NULL, NULL); free(*vm_name); - model = gtk_list_store_new(1, G_TYPE_STRING); + /* UI name , key */ + model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); vms = ovirt_collection_get_resources(vms_collection); g_hash_table_iter_init(&vms_iter, vms); @@ -616,7 +617,7 @@ choose_vm(GtkWindow *main_window, g_object_get(G_OBJECT(vm), "state", &state, NULL); if (state == OVIRT_VM_STATE_UP) { gtk_list_store_append(model, &iter); - gtk_list_store_set(model, &iter, 0, *vm_name, -1); + gtk_list_store_set(model, &iter, 0, *vm_name, 1, *vm_name, -1); } } diff --git a/src/virt-viewer-vm-connection.c b/src/virt-viewer-vm-connection.c index 2f2c39a..f253a69 100644 --- a/src/virt-viewer-vm-connection.c +++ b/src/virt-viewer-vm-connection.c @@ -65,6 +65,8 @@ virt_viewer_vm_connection_choose_name_dialog(GtkWindow *main_window, return NULL; } + g_assert(gtk_tree_model_get_n_columns(model) == 2); + vm_connection = virt_viewer_util_load_ui("virt-viewer-vm-connection.ui"); g_return_val_if_fail(vm_connection != NULL, NULL); @@ -86,7 +88,7 @@ virt_viewer_vm_connection_choose_name_dialog(GtkWindow *main_window, if (dialog_response == GTK_RESPONSE_ACCEPT && gtk_tree_selection_get_selected(selection, &model, &iter)) { - gtk_tree_model_get(model, &iter, 0, &vm_name, -1); + gtk_tree_model_get(model, &iter, 1, &vm_name, -1); } else { g_set_error_literal(error, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_CANCELLED, diff --git a/src/virt-viewer.c b/src/virt-viewer.c index 3a744f2..021e84a 100644 --- a/src/virt-viewer.c +++ b/src/virt-viewer.c @@ -823,12 +823,14 @@ choose_vm(GtkWindow *main_window, g_return_val_if_fail(vm_name != NULL, NULL); free(*vm_name); - model = gtk_list_store_new(1, G_TYPE_STRING); + /* UI name , key */ + model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); vms_running = virConnectListAllDomains(conn, &domains, flags); for (i = 0; i < vms_running; i++) { + const char *name = virDomainGetName(domains[i]); gtk_list_store_append(model, &iter); - gtk_list_store_set(model, &iter, 0, virDomainGetName(domains[i]), -1); + gtk_list_store_set(model, &iter, 0, name, 1, name, -1); virDomainFree(domains[i]); } free(domains);