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.
This commit is contained in:
Christophe Fergeau 2015-05-19 18:56:14 +02:00
parent c9a6a27061
commit a9967fd2f6
3 changed files with 34 additions and 0 deletions

View File

@ -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 be at least version 'version'. For consistency, it's recommended to use libosinfo OS shortids as
the osid. 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) =item C<type> (string, mandatory)
The session type, either "spice", "vnc" or "ovirt". The session type, either "spice", "vnc" or "ovirt".

View File

@ -40,6 +40,8 @@
* The current list of [virt-viewer] keys is: * The current list of [virt-viewer] keys is:
* - version: string * - version: string
* - versions: list of id:versions strings * - 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..) * - type: string, mandatory, values: "spice" (later "vnc" etc..)
* - host: string * - host: string
* - port: int * - port: int
@ -120,6 +122,7 @@ enum {
PROP_PROXY, PROP_PROXY,
PROP_VERSION, PROP_VERSION,
PROP_VERSIONS, PROP_VERSIONS,
PROP_VERSION_URL,
PROP_SECURE_CHANNELS, PROP_SECURE_CHANNELS,
PROP_DELETE_THIS_FILE, PROP_DELETE_THIS_FILE,
PROP_SECURE_ATTENTION, PROP_SECURE_ATTENTION,
@ -676,6 +679,20 @@ virt_viewer_file_set_versions(VirtViewerFile* self, GHashTable *version_table)
g_object_notify(G_OBJECT(self), "versions"); 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** gchar**
virt_viewer_file_get_secure_channels(VirtViewerFile* self, gsize* length) 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: case PROP_VERSIONS:
virt_viewer_file_set_versions(self, g_value_get_boxed(value)); virt_viewer_file_set_versions(self, g_value_get_boxed(value));
break; break;
case PROP_VERSION_URL:
virt_viewer_file_set_version_url(self, g_value_get_string(value));
break;
case PROP_SECURE_CHANNELS: case PROP_SECURE_CHANNELS:
strv = g_value_get_boxed(value); strv = g_value_get_boxed(value);
virt_viewer_file_set_secure_channels(self, (const gchar* const*)strv, g_strv_length(strv)); 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: case PROP_VERSIONS:
g_value_take_boxed(value, virt_viewer_file_get_versions(self)); g_value_take_boxed(value, virt_viewer_file_get_versions(self));
break; break;
case PROP_VERSION_URL:
g_value_take_string(value, virt_viewer_file_get_version_url(self));
break;
case PROP_SECURE_CHANNELS: case PROP_SECURE_CHANNELS:
g_value_take_boxed(value, virt_viewer_file_get_secure_channels(self, NULL)); g_value_take_boxed(value, virt_viewer_file_get_secure_channels(self, NULL));
break; 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_spec_boxed("versions", "versions", "versions", G_TYPE_HASH_TABLE,
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); 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_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_spec_boxed("secure-channels", "secure-channels", "secure-channels", G_TYPE_STRV,
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE)); G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));

View File

@ -104,6 +104,8 @@ gchar* virt_viewer_file_get_version(VirtViewerFile* self);
void virt_viewer_file_set_version(VirtViewerFile* self, const gchar* value); void virt_viewer_file_set_version(VirtViewerFile* self, const gchar* value);
GHashTable* virt_viewer_file_get_versions(VirtViewerFile* self); GHashTable* virt_viewer_file_get_versions(VirtViewerFile* self);
void virt_viewer_file_set_versions(VirtViewerFile* self, GHashTable *version_table); 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); 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); 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); gint virt_viewer_file_get_delete_this_file(VirtViewerFile* self);