mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2025-12-27 06:23:42 +00:00
Allow user to set a window title for remote-viewer
Currently the remote viewer windows get the URI as their title. Provide a --title STRING arg to remote-viewer to let the user override the title with something more meaningful to them. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
a4e588e3ea
commit
fe485f22de
@ -38,6 +38,10 @@ Zoom level of the display window in percentage. Range 10-200.
|
||||
|
||||
Start with the window maximised to fullscreen
|
||||
|
||||
=item -t TITLE, --title TITLE
|
||||
|
||||
Set the window title to B<TITLE>
|
||||
|
||||
=item --spice-controller
|
||||
|
||||
Use the SPICE controller to initialize the connection with the SPICE
|
||||
|
||||
@ -196,6 +196,7 @@ main(int argc, char **argv)
|
||||
int zoom = 100;
|
||||
gchar **args = NULL;
|
||||
gchar *uri = NULL;
|
||||
char *title = NULL;
|
||||
gboolean verbose = FALSE;
|
||||
gboolean debug = FALSE;
|
||||
gboolean direct = FALSE;
|
||||
@ -209,6 +210,8 @@ main(int argc, char **argv)
|
||||
remote_viewer_version, N_("Display version information"), NULL },
|
||||
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
|
||||
N_("Display verbose information"), NULL },
|
||||
{ "title", 't', 0, G_OPTION_ARG_STRING, &title,
|
||||
N_("Set window title"), NULL },
|
||||
{ "direct", 'd', 0, G_OPTION_ARG_NONE, &direct,
|
||||
N_("Direct connection with no automatic tunnels"), NULL },
|
||||
{ "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom,
|
||||
@ -304,7 +307,7 @@ main(int argc, char **argv)
|
||||
g_object_set(viewer, "guest-name", "defined by Spice controller", NULL);
|
||||
} else {
|
||||
#endif
|
||||
viewer = remote_viewer_new(uri, verbose);
|
||||
viewer = remote_viewer_new(uri, title, verbose);
|
||||
g_object_set(viewer, "guest-name", uri, NULL);
|
||||
#if HAVE_SPICE_GTK
|
||||
}
|
||||
|
||||
@ -181,11 +181,12 @@ remote_viewer_init(RemoteViewer *self)
|
||||
}
|
||||
|
||||
RemoteViewer *
|
||||
remote_viewer_new(const gchar *uri, gboolean verbose)
|
||||
remote_viewer_new(const gchar *uri, const gchar *title, gboolean verbose)
|
||||
{
|
||||
return g_object_new(REMOTE_VIEWER_TYPE,
|
||||
"guri", uri,
|
||||
"verbose", verbose,
|
||||
"title", title,
|
||||
NULL);
|
||||
}
|
||||
|
||||
@ -609,7 +610,7 @@ spice_ctrl_notified(SpiceCtrlController *ctrl,
|
||||
&value);
|
||||
}
|
||||
} else if (g_str_equal(pspec->name, "title")) {
|
||||
g_object_set_property(G_OBJECT(app), "title", &value);
|
||||
virt_viewer_app_set_title(app, g_value_get_string(&value));
|
||||
} else if (g_str_equal(pspec->name, "display-flags")) {
|
||||
guint flags = g_value_get_uint(&value);
|
||||
gboolean fullscreen = flags & CONTROLLER_SET_FULL_SCREEN;
|
||||
@ -768,7 +769,8 @@ remote_viewer_start(VirtViewerApp *app)
|
||||
g_return_val_if_fail(guri != NULL, FALSE);
|
||||
|
||||
DEBUG_LOG("Opening display to %s", guri);
|
||||
g_object_set(app, "title", guri, NULL);
|
||||
if (virt_viewer_app_get_title(app) == NULL)
|
||||
virt_viewer_app_set_title(app, guri);
|
||||
|
||||
if (virt_viewer_util_extract_host(guri, &type, NULL, NULL, NULL, NULL) < 0 || type == NULL) {
|
||||
virt_viewer_app_simple_message_dialog(app, _("Cannot determine the connection type from URI"));
|
||||
|
||||
@ -48,7 +48,9 @@ typedef struct {
|
||||
|
||||
GType remote_viewer_get_type (void);
|
||||
|
||||
RemoteViewer* remote_viewer_new(const gchar *uri, gboolean verbose);
|
||||
RemoteViewer* remote_viewer_new(const gchar *uri,
|
||||
const gchar *title,
|
||||
gboolean verbose);
|
||||
RemoteViewer* remote_viewer_new_with_controller(gboolean verbose);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
@ -1245,9 +1245,7 @@ virt_viewer_app_set_property (GObject *object, guint property_id,
|
||||
break;
|
||||
|
||||
case PROP_TITLE:
|
||||
g_free(priv->title);
|
||||
priv->title = g_value_dup_string(value);
|
||||
virt_viewer_app_set_all_window_subtitles(self);
|
||||
virt_viewer_app_set_title(self, g_value_get_string(value));
|
||||
break;
|
||||
|
||||
case PROP_ENABLE_ACCEL:
|
||||
@ -1494,6 +1492,22 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass)
|
||||
G_TYPE_OBJECT);
|
||||
}
|
||||
|
||||
const char *virt_viewer_app_get_title(VirtViewerApp *self)
|
||||
{
|
||||
g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL);
|
||||
|
||||
return self->priv->title;
|
||||
}
|
||||
|
||||
void virt_viewer_app_set_title(VirtViewerApp *self, const char *title)
|
||||
{
|
||||
g_return_if_fail(VIRT_VIEWER_IS_APP(self));
|
||||
|
||||
g_free(self->priv->title);
|
||||
self->priv->title = g_strdup(title);
|
||||
virt_viewer_app_set_all_window_subtitles(self);
|
||||
}
|
||||
|
||||
void
|
||||
virt_viewer_app_set_direct(VirtViewerApp *self, gboolean direct)
|
||||
{
|
||||
|
||||
@ -60,6 +60,8 @@ typedef struct {
|
||||
|
||||
GType virt_viewer_app_get_type (void);
|
||||
|
||||
const char *virt_viewer_app_get_title(VirtViewerApp *app);
|
||||
void virt_viewer_app_set_title(VirtViewerApp *app, const char *title);
|
||||
void virt_viewer_app_set_debug(gboolean debug);
|
||||
gboolean virt_viewer_app_start(VirtViewerApp *app);
|
||||
void virt_viewer_app_quit(VirtViewerApp *self);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user