19 | 19 |
*/
|
20 | 20 |
|
21 | 21 |
#include <config.h>
|
|
22 |
|
|
23 |
#include <glib/gi18n.h>
|
|
24 |
|
22 | 25 |
#include "virt-viewer-util.h"
|
23 | 26 |
#include "virt-viewer-file.h"
|
24 | 27 |
|
|
33 | 36 |
* port=5900
|
34 | 37 |
*
|
35 | 38 |
* The current list of [virt-viewer] keys is:
|
|
39 |
* - version: string
|
36 | 40 |
* - type: string, mandatory, values: "spice" (later "vnc" etc..)
|
37 | 41 |
* - host: string
|
38 | 42 |
* - port: int
|
|
93 | 97 |
PROP_ENABLE_USB_AUTOSHARE,
|
94 | 98 |
PROP_USB_FILTER,
|
95 | 99 |
PROP_PROXY,
|
|
100 |
PROP_VERSION,
|
96 | 101 |
};
|
97 | 102 |
|
98 | 103 |
VirtViewerFile*
|
|
522 | 527 |
g_object_notify(G_OBJECT(self), "proxy");
|
523 | 528 |
}
|
524 | 529 |
|
|
530 |
gchar*
|
|
531 |
virt_viewer_file_get_version(VirtViewerFile* self)
|
|
532 |
{
|
|
533 |
return virt_viewer_file_get_string(self, "version");
|
|
534 |
}
|
|
535 |
|
|
536 |
void
|
|
537 |
virt_viewer_file_set_version(VirtViewerFile* self, const gchar* value)
|
|
538 |
{
|
|
539 |
virt_viewer_file_set_string(self, "version", value);
|
|
540 |
g_object_notify(G_OBJECT(self), "version");
|
|
541 |
}
|
|
542 |
|
525 | 543 |
static void
|
526 | 544 |
spice_hotkey_set_accel(VirtViewerApp *app, const gchar *accel_path, const gchar *key)
|
527 | 545 |
{
|
|
538 | 556 |
g_object_set(G_OBJECT(app), "enable-accel", TRUE, NULL);
|
539 | 557 |
}
|
540 | 558 |
|
541 | |
void
|
542 | |
virt_viewer_file_fill_app(VirtViewerFile* self, VirtViewerApp *app)
|
543 | |
{
|
544 | |
g_return_if_fail(VIRT_VIEWER_IS_FILE(self));
|
545 | |
g_return_if_fail(VIRT_VIEWER_IS_APP(app));
|
|
559 |
gboolean
|
|
560 |
virt_viewer_file_fill_app(VirtViewerFile* self, VirtViewerApp *app, GError **error)
|
|
561 |
{
|
|
562 |
g_return_val_if_fail(VIRT_VIEWER_IS_FILE(self), FALSE);
|
|
563 |
g_return_val_if_fail(VIRT_VIEWER_IS_APP(app), FALSE);
|
|
564 |
|
|
565 |
if (virt_viewer_file_is_set(self, "version")) {
|
|
566 |
gchar *val = virt_viewer_file_get_version(self);
|
|
567 |
|
|
568 |
if (virt_viewer_compare_version(val, PACKAGE_VERSION) > 0) {
|
|
569 |
g_set_error(error,
|
|
570 |
VIRT_VIEWER_ERROR,
|
|
571 |
VIRT_VIEWER_ERROR_FAILED,
|
|
572 |
_("At least %s version %s is required to setup this connection"),
|
|
573 |
g_get_application_name(), val);
|
|
574 |
|
|
575 |
g_free(val);
|
|
576 |
return FALSE;
|
|
577 |
}
|
|
578 |
|
|
579 |
g_free(val);
|
|
580 |
}
|
546 | 581 |
|
547 | 582 |
if (virt_viewer_file_is_set(self, "title"))
|
548 | 583 |
virt_viewer_app_set_title(app, virt_viewer_file_get_title(self));
|
|
574 | 609 |
if (virt_viewer_file_is_set(self, "fullscreen"))
|
575 | 610 |
g_object_set(G_OBJECT(app), "fullscreen",
|
576 | 611 |
virt_viewer_file_get_fullscreen(self), NULL);
|
|
612 |
|
|
613 |
return TRUE;
|
577 | 614 |
}
|
578 | 615 |
|
579 | 616 |
static void
|
|
649 | 686 |
case PROP_PROXY:
|
650 | 687 |
virt_viewer_file_set_proxy(self, g_value_get_string(value));
|
651 | 688 |
break;
|
|
689 |
case PROP_VERSION:
|
|
690 |
virt_viewer_file_set_version(self, g_value_get_string(value));
|
|
691 |
break;
|
652 | 692 |
default:
|
653 | 693 |
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
|
654 | 694 |
break;
|
|
725 | 765 |
case PROP_PROXY:
|
726 | 766 |
g_value_take_string(value, virt_viewer_file_get_proxy(self));
|
727 | 767 |
break;
|
|
768 |
case PROP_VERSION:
|
|
769 |
g_value_take_string(value, virt_viewer_file_get_version(self));
|
|
770 |
break;
|
728 | 771 |
default:
|
729 | 772 |
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
|
730 | 773 |
break;
|
|
843 | 886 |
g_object_class_install_property(G_OBJECT_CLASS(klass), PROP_PROXY,
|
844 | 887 |
g_param_spec_string("proxy", "proxy", "proxy", NULL,
|
845 | 888 |
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));
|
846 | |
}
|
|
889 |
|
|
890 |
g_object_class_install_property(G_OBJECT_CLASS(klass), PROP_VERSION,
|
|
891 |
g_param_spec_string("version", "version", "version", NULL,
|
|
892 |
G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE));
|
|
893 |
}
|