summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2015-05-19 18:56:14 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2015-06-09 18:06:39 +0200
commita9967fd2f63b3af17d841f82dd12bb098a8a966e (patch)
treed4fc2102bf4957c6da6e52473e7dd7f21e74ad22
parentc9a6a270614976158e3aec432dafa947040736e5 (diff)
vv-file: Add 'newer-version-url' key to .vv files
If set, this URL will be displayed when one of the version checks ('version' of 'versions' key fail). This URL should contain explanations about how to get an updated remote-viewer version.
-rw-r--r--man/remote-viewer.pod5
-rw-r--r--src/virt-viewer-file.c27
-rw-r--r--src/virt-viewer-file.h2
3 files changed, 34 insertions, 0 deletions
diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod
index 60e1a06..57c4ec7 100644
--- a/man/remote-viewer.pod
+++ b/man/remote-viewer.pod
@@ -156,6 +156,11 @@ remote-viewer builds matching the given 'osid' (fedora22, debian7, ...) must
be at least version 'version'. For consistency, it's recommended to use libosinfo OS shortids as
the osid.
+=item C<newer-version-url> (string)
+
+If specified, this field is an URL which will be displayed to the user when a version check
+fails.
+
=item C<type> (string, mandatory)
The session type, either "spice", "vnc" or "ovirt".
diff --git a/src/virt-viewer-file.c b/src/virt-viewer-file.c
index 3f06d1e..906d719 100644
--- a/src/virt-viewer-file.c
+++ b/src/virt-viewer-file.c
@@ -40,6 +40,8 @@
* The current list of [virt-viewer] keys is:
* - version: string
* - versions: list of id:versions strings
+ * - newer-version-url: string specifying an URL to display when the minimum
+ * version check fails
* - type: string, mandatory, values: "spice" (later "vnc" etc..)
* - host: string
* - port: int
@@ -120,6 +122,7 @@ enum {
PROP_PROXY,
PROP_VERSION,
PROP_VERSIONS,
+ PROP_VERSION_URL,
PROP_SECURE_CHANNELS,
PROP_DELETE_THIS_FILE,
PROP_SECURE_ATTENTION,
@@ -676,6 +679,20 @@ virt_viewer_file_set_versions(VirtViewerFile* self, GHashTable *version_table)
g_object_notify(G_OBJECT(self), "versions");
}
+gchar*
+virt_viewer_file_get_version_url(VirtViewerFile* self)
+{
+ return virt_viewer_file_get_string(self, MAIN_GROUP, "newer-version-url");
+}
+
+void
+virt_viewer_file_set_version_url(VirtViewerFile* self, const gchar* value)
+{
+ virt_viewer_file_set_string(self, MAIN_GROUP, "newer-version-url", value);
+ g_object_notify(G_OBJECT(self), "version-url");
+}
+
+
gchar**
virt_viewer_file_get_secure_channels(VirtViewerFile* self, gsize* length)
{
@@ -944,6 +961,9 @@ virt_viewer_file_set_property(GObject* object, guint property_id,
case PROP_VERSIONS:
virt_viewer_file_set_versions(self, g_value_get_boxed(value));
break;
+ case PROP_VERSION_URL:
+ virt_viewer_file_set_version_url(self, g_value_get_string(value));
+ break;
case PROP_SECURE_CHANNELS:
strv = g_value_get_boxed(value);
virt_viewer_file_set_secure_channels(self, (const gchar* const*)strv, g_strv_length(strv));
@@ -1051,6 +1071,9 @@ virt_viewer_file_get_property(GObject* object, guint property_id,
case PROP_VERSIONS:
g_value_take_boxed(value, virt_viewer_file_get_versions(self));
break;
+ case PROP_VERSION_URL:
+ g_value_take_string(value, virt_viewer_file_get_version_url(self));
+ break;
case PROP_SECURE_CHANNELS:
g_value_take_boxed(value, virt_viewer_file_get_secure_channels(self, NULL));
break;
@@ -1203,6 +1226,10 @@ virt_viewer_file_class_init(VirtViewerFileClass* klass)
g_param_spec_boxed("versions", "versions", "versions", G_TYPE_HASH_TABLE,
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));
+ g_object_class_install_property(G_OBJECT_CLASS(klass), PROP_VERSION_URL,
+ g_param_spec_string("version-url", "version-url", "version-url", NULL,
+ G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));
+
g_object_class_install_property(G_OBJECT_CLASS(klass), PROP_SECURE_CHANNELS,
g_param_spec_boxed("secure-channels", "secure-channels", "secure-channels", G_TYPE_STRV,
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));
diff --git a/src/virt-viewer-file.h b/src/virt-viewer-file.h
index 1635507..0eb7966 100644
--- a/src/virt-viewer-file.h
+++ b/src/virt-viewer-file.h
@@ -104,6 +104,8 @@ gchar* virt_viewer_file_get_version(VirtViewerFile* self);
void virt_viewer_file_set_version(VirtViewerFile* self, const gchar* value);
GHashTable* virt_viewer_file_get_versions(VirtViewerFile* self);
void virt_viewer_file_set_versions(VirtViewerFile* self, GHashTable *version_table);
+gchar* virt_viewer_file_get_version_url(VirtViewerFile* self);
+void virt_viewer_file_set_version_url(VirtViewerFile* self, const gchar* value);
gchar** virt_viewer_file_get_secure_channels(VirtViewerFile* self, gsize* length);
void virt_viewer_file_set_secure_channels(VirtViewerFile* self, const gchar* const* value, gsize length);
gint virt_viewer_file_get_delete_this_file(VirtViewerFile* self);