[virt-tools-list] [virt-manager] [PATCH] Use changed instead of value-changed signal in spinbutton in vsockdetails ui
Signed-off-by: Lin Ma --- ui/vsockdetails.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/vsockdetails.ui b/ui/vsockdetails.ui index 7f607b2b..2a8ee73a 100644 --- a/ui/vsockdetails.ui +++ b/ui/vsockdetails.ui @@ -67,7 +67,7 @@ True if-valid 5900 - + vsock-cid -- 2.19.0 ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
Re: [virt-tools-list] [PATCH v4] remote-viewer: Allow toggling shared clipboard
On Mon, Mar 4, 2019 at 3:39 PM Aleksei Nikiforov wrote: > > Signed-off-by: Aleksei Nikiforov Reviewed-by: Marc-André Lureau > --- > man/remote-viewer.pod | 3 + > src/resources/ui/virt-viewer-preferences.ui | 16 +++- > src/virt-viewer-app.c | 93 + > src/virt-viewer-app.h | 6 ++ > src/virt-viewer-session-spice.c | 9 +- > 5 files changed, 125 insertions(+), 2 deletions(-) > > diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod > index 4b683cf..ed76af5 100644 > --- a/man/remote-viewer.pod > +++ b/man/remote-viewer.pod > @@ -360,6 +360,9 @@ The monitor-mapping must contain ids of all displays from > 1 to the last > desired display id, e.g. "monitor-mapping=3:3" is invalid because mappings > for displays 1 and 2 are not specified. > > +Configuration key B contains a boolean value. If it's > "true", > +then clipboard is shared with guests if clipboard sharing is supported by > used protocol. > + > =head1 EXAMPLES > > To connect to SPICE server on host "makai" with port 5900 > diff --git a/src/resources/ui/virt-viewer-preferences.ui > b/src/resources/ui/virt-viewer-preferences.ui > index f9738c5..0b88da4 100644 > --- a/src/resources/ui/virt-viewer-preferences.ui > +++ b/src/resources/ui/virt-viewer-preferences.ui > @@ -61,7 +61,7 @@ > True > False > 6 > -2 > +3 > 2 > 12 > 6 > @@ -91,6 +91,20 @@ > 2 > > > + > + > +Share > clipboard > +True > +True > +False > +True > + > + > +2 > +2 > +3 > + > + > > id="fcsharefolder"> > True > diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c > index 2684263..da8cfa9 100644 > --- a/src/virt-viewer-app.c > +++ b/src/virt-viewer-app.c > @@ -157,6 +157,7 @@ struct _VirtViewerAppPrivate { > guint remove_smartcard_accel_key; > GdkModifierType remove_smartcard_accel_mods; > gboolean quit_on_disconnect; > +gboolean supports_share_clipboard; > }; > > > @@ -176,6 +177,8 @@ enum { > PROP_UUID, > PROP_VM_UI, > PROP_VM_RUNNING, > +PROP_CONFIG_SHARE_CLIPBOARD, > +PROP_SUPPORTS_SHARE_CLIPBOARD, > }; > > void > @@ -1588,6 +1591,14 @@ virt_viewer_app_get_property (GObject *object, guint > property_id, > g_value_set_boolean(value, priv->vm_running); > break; > > +case PROP_CONFIG_SHARE_CLIPBOARD: > +g_value_set_boolean(value, > virt_viewer_app_get_config_share_clipboard(self)); > +break; > + > +case PROP_SUPPORTS_SHARE_CLIPBOARD: > +g_value_set_boolean(value, > virt_viewer_app_get_supports_share_clipboard(self)); > +break; > + > default: > G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); > } > @@ -1650,6 +1661,14 @@ virt_viewer_app_set_property (GObject *object, guint > property_id, > priv->vm_running = g_value_get_boolean(value); > break; > > +case PROP_CONFIG_SHARE_CLIPBOARD: > +virt_viewer_app_set_config_share_clipboard(self, > g_value_get_boolean(value)); > +break; > + > +case PROP_SUPPORTS_SHARE_CLIPBOARD: > +virt_viewer_app_set_supports_share_clipboard(self, > g_value_get_boolean(value)); > +break; > + > default: > G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); > } > @@ -1867,6 +1886,9 @@ virt_viewer_app_on_application_startup(GApplication > *app) > gtk_accel_map_add_entry("/view/zoom-in", GDK_KEY_plus, > GDK_CONTROL_MASK); > gtk_accel_map_add_entry("/send/secure-attention", > GDK_KEY_End, GDK_CONTROL_MASK | GDK_MOD1_MASK); > > +// Restore initial state of config-share-clipboard property from config > and notify about it > +virt_viewer_app_set_config_share_clipboard(self, > virt_viewer_app_get_config_share_clipboard(self)); > + > if (!virt_viewer_app_start(self, )) { > if (error && !g_error_matches(error, VIRT_VIEWER_ERROR, > VIRT_VIEWER_ERROR_CANCELLED)) > virt_viewer_app_simple_message_dialog(self, error->message); > @@ -2061,6 +2083,24 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass) > FALSE, > G_PARAM_READWRITE | > > G_PARAM_STATIC_STRINGS)); > + > +
[virt-tools-list] [virt-manager PATCH 6/6] addhardware: Don't prevent ppc64/pseries from using virtio-scsi
This doesn't seem to do anything, as we end up with with a virtio-scsi controller anyway both when using virt-install and when using the GUI, and it's not correct anyway because there's nothing preventing ppc64/pseries guests from using virtio-scsi. Signed-off-by: Andrea Bolognani --- virtManager/addhardware.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py index eb6967f9..6d1f7cce 100644 --- a/virtManager/addhardware.py +++ b/virtManager/addhardware.py @@ -1225,8 +1225,7 @@ class vmmAddHardware(vmmGObjectUI): controller_model = None if (bus == "scsi" and self.vm.get_hv_type() in ["qemu", "kvm", "test"] and -not self.vm.xmlobj.os.is_pseries() and not -any([c.type == "scsi" +not any([c.type == "scsi" for c in self.vm.xmlobj.devices.controller])): controller_model = "virtio-scsi" -- 2.20.1 ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
[virt-tools-list] [virt-manager PATCH 1/6] guest: Remove some SCSI-related dead code
The code in _add_implied_controllers() tries to add an ibmvscsi controller if any disk with spapr-vio address type is found; however, regardless of the specific SCSI controller in use, all SCSI disks will use the drive address type, so that condition will never be triggered - which is actually for the best, since we want to use virtio-scsi on ppc64 anyway. Signed-off-by: Andrea Bolognani --- virtinst/guest.py | 14 -- 1 file changed, 14 deletions(-) diff --git a/virtinst/guest.py b/virtinst/guest.py index 6e05b5b5..3478acc7 100644 --- a/virtinst/guest.py +++ b/virtinst/guest.py @@ -793,24 +793,10 @@ class Guest(XMLBuilder): self.add_device(dev) def _add_implied_controllers(self): -has_spapr_scsi = False has_any_scsi = False for dev in self.devices.controller: if dev.type == "scsi": has_any_scsi = True -if dev.address.type == "spapr-vio": -has_spapr_scsi = True - -# Add spapr-vio controller if needed -if not has_spapr_scsi: -for dev in self.devices.disk: -if dev.address.type == "spapr-vio": -ctrl = DeviceController(self.conn) -ctrl.type = "scsi" -ctrl.address.set_addrstr("spapr-vio") -ctrl.set_defaults(self) -self.add_device(ctrl) -break # Add virtio-scsi controller if needed if ((self.os.is_arm_machvirt() or self.os.is_pseries()) and -- 2.20.1 ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
[virt-tools-list] [virt-manager PATCH 4/6] devices: disk: Use virtio-scsi for CDROMs where supported
We already use virtio-blk for regular disks whenever possible, and there's no good reason not to do the same with virtio-scsi when dealing with CDROMs instead of artificially limiting its use to s390x and ppc64/pseries guests. Signed-off-by: Andrea Bolognani --- .../compare/virt-install-kvm-session-defaults.xml | 6 -- tests/cli-test-xml/compare/virt-install-location-iso.xml| 6 -- virtinst/devices/disk.py| 4 +--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/tests/cli-test-xml/compare/virt-install-kvm-session-defaults.xml b/tests/cli-test-xml/compare/virt-install-kvm-session-defaults.xml index cee1e513..fa1ca470 100644 --- a/tests/cli-test-xml/compare/virt-install-kvm-session-defaults.xml +++ b/tests/cli-test-xml/compare/virt-install-kvm-session-defaults.xml @@ -40,10 +40,11 @@ - + + @@ -109,10 +110,11 @@ - + + diff --git a/tests/cli-test-xml/compare/virt-install-location-iso.xml b/tests/cli-test-xml/compare/virt-install-location-iso.xml index 5bccab2a..880f37b1 100644 --- a/tests/cli-test-xml/compare/virt-install-location-iso.xml +++ b/tests/cli-test-xml/compare/virt-install-location-iso.xml @@ -40,7 +40,7 @@ - + @@ -53,6 +53,7 @@ + @@ -114,7 +115,7 @@ - + @@ -127,6 +128,7 @@ + diff --git a/virtinst/devices/disk.py b/virtinst/devices/disk.py index 533631eb..5ed95b51 100644 --- a/virtinst/devices/disk.py +++ b/virtinst/devices/disk.py @@ -955,14 +955,12 @@ class DeviceDisk(Device): return "scsi" if self.is_disk() and guest.supports_virtiodisk(): return "virtio" -if guest.os.is_pseries() and self.is_cdrom(): +if self.is_cdrom() and guest.supports_virtioscsi(): return "scsi" if guest.os.is_arm(): return "sd" if guest.os.is_q35(): return "sata" -if self.is_cdrom() and guest.os.is_s390x(): -return "scsi" return "ide" def set_defaults(self, guest): -- 2.20.1 ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
[virt-tools-list] [virt-manager PATCH 5/6] devices: disk: Don't prefer virtio-scsi for aarch64/virt
Back when this was introduced in 2014 (commit aa772f01e124) using virtio-scsi instead of virtio-blk made sense, because virtio-pci support on aarch64/virt was still not widely available and virtio-mmio couldn't do hotplug. These days, however, virtio-pci availability is something that we can assume is present on any remotely reasonable deployment target, so it's better to no longer behave differently than other architectures. Signed-off-by: Andrea Bolognani --- tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml | 8 .../cli-test-xml/compare/virt-install-aarch64-kvm-gic.xml | 2 +- .../compare/virt-install-aarch64-kvm-import.xml | 3 +-- .../compare/virt-install-aarch64-machdefault.xml | 3 +-- .../compare/virt-install-aarch64-machvirt.xml | 3 +-- .../compare/virt-install-arm-defaultmach-f20.xml | 3 +-- .../cli-test-xml/compare/virt-install-arm-kvm-import.xml | 3 +-- tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml | 3 +-- virtinst/devices/disk.py | 4 9 files changed, 11 insertions(+), 21 deletions(-) diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml b/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml index 212c47fd..eb6439fe 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-cdrom.xml @@ -20,12 +20,12 @@ - + - + @@ -63,10 +63,10 @@ - + - + diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-kvm-gic.xml b/tests/cli-test-xml/compare/virt-install-aarch64-kvm-gic.xml index 96175f87..0a5a71aa 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-kvm-gic.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-kvm-gic.xml @@ -24,7 +24,7 @@ - + diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml b/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml index f4fc88e0..9006d4e5 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-kvm-import.xml @@ -21,10 +21,9 @@ - + - diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml b/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml index 27494db4..5f06f35e 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-machdefault.xml @@ -19,10 +19,9 @@ - + - diff --git a/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml b/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml index 27494db4..5f06f35e 100644 --- a/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml +++ b/tests/cli-test-xml/compare/virt-install-aarch64-machvirt.xml @@ -19,10 +19,9 @@ - + - diff --git a/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml b/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml index 5194c344..be1c21f5 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-defaultmach-f20.xml @@ -21,10 +21,9 @@ - + - diff --git a/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml b/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml index d613b33e..5ca50869 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-kvm-import.xml @@ -21,10 +21,9 @@ - + - diff --git a/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml b/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml index e94de3d1..485aeeb2 100644 --- a/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml +++ b/tests/cli-test-xml/compare/virt-install-arm-virt-f20.xml @@ -21,10 +21,9 @@ - + - diff --git a/virtinst/devices/disk.py b/virtinst/devices/disk.py index 5ed95b51..a2717760 100644 --- a/virtinst/devices/disk.py +++ b/virtinst/devices/disk.py @@ -949,10 +949,6 @@ class DeviceDisk(Device): # This likely isn't correct, but it's kind of a catch all # for virt types we don't know how to handle. return "ide" - -if guest.os.is_arm_machvirt(): -# We prefer virtio-scsi for machvirt, gets us hotplug -return "scsi" if self.is_disk() and guest.supports_virtiodisk():
[virt-tools-list] [virt-manager PATCH 3/6] guest: Use virtio-scsi where supported
Right now we're limiting use of virtio-scsi to ppc64/pseries and aarch64/virt guests, but there's really no reason not to use it wherever it's available. This results in virtio-scsi being now used on s390x, where no other sensible SCSI controller implementation is available anyway, and x86, where you alreayd didn't want end up using lsilogic. Signed-off-by: Andrea Bolognani --- tests/cli-test-xml/compare/virt-install-many-devices.xml | 1 + tests/cli-test-xml/compare/virt-install-s390x-cdrom-KVMIBM.xml | 1 + tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml| 1 + virtinst/guest.py | 3 +-- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/cli-test-xml/compare/virt-install-many-devices.xml b/tests/cli-test-xml/compare/virt-install-many-devices.xml index b7386003..efd321e4 100644 --- a/tests/cli-test-xml/compare/virt-install-many-devices.xml +++ b/tests/cli-test-xml/compare/virt-install-many-devices.xml @@ -184,6 +184,7 @@ + diff --git a/tests/cli-test-xml/compare/virt-install-s390x-cdrom-KVMIBM.xml b/tests/cli-test-xml/compare/virt-install-s390x-cdrom-KVMIBM.xml index 58a836c5..0941003c 100644 --- a/tests/cli-test-xml/compare/virt-install-s390x-cdrom-KVMIBM.xml +++ b/tests/cli-test-xml/compare/virt-install-s390x-cdrom-KVMIBM.xml @@ -28,6 +28,7 @@ + diff --git a/tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml b/tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml index 10b0ddc1..7b23ed76 100644 --- a/tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml +++ b/tests/cli-test-xml/compare/virt-install-s390x-cdrom.xml @@ -28,6 +28,7 @@ + diff --git a/virtinst/guest.py b/virtinst/guest.py index 4e7bcd41..1753d44d 100644 --- a/virtinst/guest.py +++ b/virtinst/guest.py @@ -801,8 +801,7 @@ class Guest(XMLBuilder): has_any_scsi = True # Add virtio-scsi controller if needed -if ((self.os.is_arm_machvirt() or self.os.is_pseries()) and -not has_any_scsi): +if not has_any_scsi and self.supports_virtioscsi(): for dev in self.devices.disk: if dev.bus == "scsi": ctrl = DeviceController(self.conn) -- 2.20.1 ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
[virt-tools-list] [virt-manager PATCH 0/6] Various SCSI fixes
This series ensures we use virtio-scsi much more than we're currently doing, assuming of course it's supported by the guest OS; additionally, it improves consistency between architectures by using virtio-blk for aarch64/virt, same as we're doing everywhere else. Andrea Bolognani (6): guest: Remove some SCSI-related dead code guest: Add supports_virtioscsi() guest: Use virtio-scsi where supported devices: disk: Use virtio-scsi for CDROMs where supported devices: disk: Don't prefer virtio-scsi for aarch64/virt addhardware: Don't prevent ppc64/pseries from using virtio-scsi .../compare/virt-install-aarch64-cdrom.xml| 8 .../compare/virt-install-aarch64-kvm-gic.xml | 2 +- .../virt-install-aarch64-kvm-import.xml | 3 +-- .../virt-install-aarch64-machdefault.xml | 3 +-- .../compare/virt-install-aarch64-machvirt.xml | 3 +-- .../virt-install-arm-defaultmach-f20.xml | 3 +-- .../compare/virt-install-arm-kvm-import.xml | 3 +-- .../compare/virt-install-arm-virt-f20.xml | 3 +-- .../virt-install-kvm-session-defaults.xml | 6 -- .../compare/virt-install-location-iso.xml | 6 -- .../compare/virt-install-many-devices.xml | 1 + .../virt-install-s390x-cdrom-KVMIBM.xml | 1 + .../compare/virt-install-s390x-cdrom.xml | 1 + virtManager/addhardware.py| 3 +-- virtinst/devices/disk.py | 8 +--- virtinst/guest.py | 19 +++ virtinst/osdict.py| 6 ++ 17 files changed, 33 insertions(+), 46 deletions(-) -- 2.20.1 ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
[virt-tools-list] [PATCH v4] remote-viewer: Allow toggling shared clipboard
Signed-off-by: Aleksei Nikiforov --- man/remote-viewer.pod | 3 + src/resources/ui/virt-viewer-preferences.ui | 16 +++- src/virt-viewer-app.c | 93 + src/virt-viewer-app.h | 6 ++ src/virt-viewer-session-spice.c | 9 +- 5 files changed, 125 insertions(+), 2 deletions(-) diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod index 4b683cf..ed76af5 100644 --- a/man/remote-viewer.pod +++ b/man/remote-viewer.pod @@ -360,6 +360,9 @@ The monitor-mapping must contain ids of all displays from 1 to the last desired display id, e.g. "monitor-mapping=3:3" is invalid because mappings for displays 1 and 2 are not specified. +Configuration key B contains a boolean value. If it's "true", +then clipboard is shared with guests if clipboard sharing is supported by used protocol. + =head1 EXAMPLES To connect to SPICE server on host "makai" with port 5900 diff --git a/src/resources/ui/virt-viewer-preferences.ui b/src/resources/ui/virt-viewer-preferences.ui index f9738c5..0b88da4 100644 --- a/src/resources/ui/virt-viewer-preferences.ui +++ b/src/resources/ui/virt-viewer-preferences.ui @@ -61,7 +61,7 @@ True False 6 -2 +3 2 12 6 @@ -91,6 +91,20 @@ 2 + + +Share clipboard +True +True +False +True + + +2 +2 +3 + + True diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index 2684263..da8cfa9 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -157,6 +157,7 @@ struct _VirtViewerAppPrivate { guint remove_smartcard_accel_key; GdkModifierType remove_smartcard_accel_mods; gboolean quit_on_disconnect; +gboolean supports_share_clipboard; }; @@ -176,6 +177,8 @@ enum { PROP_UUID, PROP_VM_UI, PROP_VM_RUNNING, +PROP_CONFIG_SHARE_CLIPBOARD, +PROP_SUPPORTS_SHARE_CLIPBOARD, }; void @@ -1588,6 +1591,14 @@ virt_viewer_app_get_property (GObject *object, guint property_id, g_value_set_boolean(value, priv->vm_running); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_config_share_clipboard(self)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_supports_share_clipboard(self)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1650,6 +1661,14 @@ virt_viewer_app_set_property (GObject *object, guint property_id, priv->vm_running = g_value_get_boolean(value); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +virt_viewer_app_set_config_share_clipboard(self, g_value_get_boolean(value)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +virt_viewer_app_set_supports_share_clipboard(self, g_value_get_boolean(value)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1867,6 +1886,9 @@ virt_viewer_app_on_application_startup(GApplication *app) gtk_accel_map_add_entry("/view/zoom-in", GDK_KEY_plus, GDK_CONTROL_MASK); gtk_accel_map_add_entry("/send/secure-attention", GDK_KEY_End, GDK_CONTROL_MASK | GDK_MOD1_MASK); +// Restore initial state of config-share-clipboard property from config and notify about it +virt_viewer_app_set_config_share_clipboard(self, virt_viewer_app_get_config_share_clipboard(self)); + if (!virt_viewer_app_start(self, )) { if (error && !g_error_matches(error, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_CANCELLED)) virt_viewer_app_simple_message_dialog(self, error->message); @@ -2061,6 +2083,24 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass) FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + +g_object_class_install_property(object_class, +PROP_CONFIG_SHARE_CLIPBOARD, + g_param_spec_boolean("config-share-clipboard", + "Share clipboard", + "Indicates whether to share clipboard", +
Re: [virt-tools-list] [PATCH v3] remote-viewer: Allow toggling shared clipboard
Hi Aleksei, On Mon, Mar 4, 2019 at 1:13 PM Aleksei Nikiforov wrote: > > Signed-off-by: Aleksei Nikiforov > --- > man/remote-viewer.pod | 3 + > src/resources/ui/virt-viewer-preferences.ui | 16 +++- > src/virt-viewer-app.c | 93 + > src/virt-viewer-app.h | 6 ++ > src/virt-viewer-session-spice.c | 9 +- > 5 files changed, 125 insertions(+), 2 deletions(-) > The patch doesn't seem to apply on master, could you rebase? thanks > diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod > index 8cf5ee4..c009fb9 100644 > --- a/man/remote-viewer.pod > +++ b/man/remote-viewer.pod > @@ -354,6 +354,9 @@ The monitor-mapping must contain ids of all displays from > 1 to the last > desired display id, e.g. "monitor-mapping=3:3" is invalid because mappings > for displays 1 and 2 are not specified. > > +Configuration key B contains a boolean value. If it's > "true", > +then clipboard is shared with guests if clipboard sharing is supported by > used protocol. > + > =head1 EXAMPLES > > To connect to SPICE server on host "makai" with port 5900 > diff --git a/src/resources/ui/virt-viewer-preferences.ui > b/src/resources/ui/virt-viewer-preferences.ui > index f9738c5..0b88da4 100644 > --- a/src/resources/ui/virt-viewer-preferences.ui > +++ b/src/resources/ui/virt-viewer-preferences.ui > @@ -61,7 +61,7 @@ > True > False > 6 > -2 > +3 > 2 > 12 > 6 > @@ -91,6 +91,20 @@ > 2 > > > + > + > +Share > clipboard > +True > +True > +False > +True > + > + > +2 > +2 > +3 > + > + > > id="fcsharefolder"> > True > diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c > index e0e6e63..c91a828 100644 > --- a/src/virt-viewer-app.c > +++ b/src/virt-viewer-app.c > @@ -153,6 +153,7 @@ struct _VirtViewerAppPrivate { > guint remove_smartcard_accel_key; > GdkModifierType remove_smartcard_accel_mods; > gboolean quit_on_disconnect; > +gboolean supports_share_clipboard; > }; > > > @@ -172,6 +173,8 @@ enum { > PROP_KIOSK, > PROP_QUIT_ON_DISCONNECT, > PROP_UUID, > +PROP_CONFIG_SHARE_CLIPBOARD, > +PROP_SUPPORTS_SHARE_CLIPBOARD, > }; > > void > @@ -1549,6 +1552,14 @@ virt_viewer_app_get_property (GObject *object, guint > property_id, > g_value_set_string(value, priv->uuid); > break; > > +case PROP_CONFIG_SHARE_CLIPBOARD: > +g_value_set_boolean(value, > virt_viewer_app_get_config_share_clipboard(self)); > +break; > + > +case PROP_SUPPORTS_SHARE_CLIPBOARD: > +g_value_set_boolean(value, > virt_viewer_app_get_supports_share_clipboard(self)); > +break; > + > default: > G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); > } > @@ -1603,6 +1614,14 @@ virt_viewer_app_set_property (GObject *object, guint > property_id, > virt_viewer_app_set_uuid_string(self, g_value_get_string(value)); > break; > > +case PROP_CONFIG_SHARE_CLIPBOARD: > +virt_viewer_app_set_config_share_clipboard(self, > g_value_get_boolean(value)); > +break; > + > +case PROP_SUPPORTS_SHARE_CLIPBOARD: > +virt_viewer_app_set_supports_share_clipboard(self, > g_value_get_boolean(value)); > +break; > + > default: > G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); > } > @@ -1815,6 +1834,9 @@ virt_viewer_app_on_application_startup(GApplication > *app) > gtk_accel_map_add_entry("/view/zoom-in", GDK_KEY_plus, > GDK_CONTROL_MASK); > gtk_accel_map_add_entry("/send/secure-attention", > GDK_KEY_End, GDK_CONTROL_MASK | GDK_MOD1_MASK); > > +// Restore initial state of config-share-clipboard property from config > and notify about it > +virt_viewer_app_set_config_share_clipboard(self, > virt_viewer_app_get_config_share_clipboard(self)); > + > if (!virt_viewer_app_start(self, )) { > if (error && !g_error_matches(error, VIRT_VIEWER_ERROR, > VIRT_VIEWER_ERROR_CANCELLED)) > virt_viewer_app_simple_message_dialog(self, error->message); > @@ -1994,6 +2016,24 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass) > G_PARAM_READABLE | > G_PARAM_WRITABLE | >
Re: [virt-tools-list] [virt-manager PATCH] virtinst: cli: fix ParserBoot to return the parsed object
On Fri, Mar 01, 2019 at 04:50 PM +0100, Pavel Hrdina wrote: > This fixes virt-xml to return an XML for command: > > virt-xml --build-xml --boot os_type=hvm > > The VirtCLIParser.parse() expects the _parse() method to return > the parsed object. > > Signed-off-by: Pavel Hrdina > --- > > Pushed > > virtinst/cli.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/virtinst/cli.py b/virtinst/cli.py > index d56fade8..7a406eb4 100644 > --- a/virtinst/cli.py > +++ b/virtinst/cli.py > @@ -1912,7 +1912,7 @@ class ParserBoot(VirtCLIParser): > if boot_order: > inst.bootorder = boot_order > > -super()._parse(inst) > +return super()._parse(inst) > > @classmethod > def __init_class__(cls, **kwargs): > -- > 2.20.1 > > ___ > virt-tools-list mailing list > virt-tools-list@redhat.com > https://www.redhat.com/mailman/listinfo/virt-tools-list > Reviewed-by: Marc Hartmayer -- Kind regards / Beste Grüße Marc Hartmayer IBM Deutschland Research & Development GmbH Vorsitzende des Aufsichtsrats: Matthias Hartmann Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
Re: [virt-tools-list] [virt-viewer PATCH v2 3/3] Switch to gnulib's compiler warning flags
On Tue, Feb 19, 2019 at 03:00:11PM +, Daniel P. Berrangé wrote: > diff --git a/m4/virt-viewer-warnings.m4 b/m4/virt-viewer-warnings.m4 > new file mode 100644 > index 000..4036b75 > --- /dev/null > +++ b/m4/virt-viewer-warnings.m4 > [...] > +# List of warnings that are not relevant / wanted > + > +# Don't care about C++ compiler compat > +dontwarn="$dontwarn -Wc++-compat" > +dontwarn="$dontwarn -Wabi" > +dontwarn="$dontwarn -Wdeprecated" > +# Don't care about ancient C standard compat > +dontwarn="$dontwarn -Wtraditional" > +# Don't care about ancient C standard compat > +dontwarn="$dontwarn -Wtraditional-conversion" > +# Ignore warnings in /usr/include > +dontwarn="$dontwarn -Wsystem-headers" > +# Happy for compiler to add struct padding > +dontwarn="$dontwarn -Wpadded" > +# GCC very confused with -O2 > +dontwarn="$dontwarn -Wunreachable-code" > +# Too many to deal with > +dontwarn="$dontwarn -Wconversion" > +# Too many to deal with > +dontwarn="$dontwarn -Wsign-conversion" > +# We need to use long long in many places > +dontwarn="$dontwarn -Wlong-long" > +# Not a problem since we don't use -fstrict-overflow > +dontwarn="$dontwarn -Wstrict-overflow" > +# Not a problem since we don't use -funsafe-loop-optimizations > +dontwarn="$dontwarn -Wunsafe-loop-optimizations" > +# gcc 4.4.6 complains this is C++ only; gcc 4.7.0 implies this from -Wall > +dontwarn="$dontwarn -Wenum-compare" > +# /usr/include/spice-1/spice/protocol.h triggers violations > +dontwarn="$dontwarn -Wpacked" > + > +# g_clear_object & G_ATOMIC_OP_USE_GCC_BUILTINS causes > +# violations with this. XXX Fix glib ? > +dontwarn="$dontwarn -Wbad-function-cast" > + > +# Due to gutils.h bug in g_bit_storage > +wantwarn="$wantwarn -Wno-sign-conversion" > +wantwarn="$wantwarn -Wno-conversion" > +# We can't enable this due to horrible spice_usb_device_get_description > +# signature > +#wantwarn="$wantwarn -Wno-format-nonliteral" I'd remove this, spice_usb_device_get_description is not marked as using a format string, and uncommenting this line/changing it to -Wformat-nonliteral did not trigger any additional warnings. > + > +# Get all possible GCC warnings > +gl_MANYWARN_ALL_GCC([maybewarn]) > + > +# Remove the ones we don't want, blacklisted earlier > +gl_MANYWARN_COMPLEMENT([wantwarn], [$maybewarn], [$dontwarn]) > + > +# GNULIB uses '-W' (aka -Wextra) which includes a bunch of stuff. > +# Unfortunately, this means you can't simply use '-Wsign-compare' > +# with gl_MANYWARN_COMPLEMENT > +# So we have -W enabled, and then have to explicitly turn off... > +wantwarn="$wantwarn -Wno-sign-compare" > + > +# GNULIB expects this to be part of -Wc++-compat, but we turn > +# that one off, so we need to manually enable this again > +wantwarn="$wantwarn -Wjump-misses-init" > + > +# We do "bad" function casts all the time for event callbacks > +wantwarn="$wantwarn -Wno-cast-function-type" > + > +# GNULIB turns on -Wformat=2 which implies -Wformat-nonliteral, > +# so we need to manually re-exclude it. > +wantwarn="$wantwarn -Wno-format-nonliteral" This on can be removed too if we enable -Wformat-nonliteral. signature.asc Description: PGP signature ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
Re: [virt-tools-list] [virt-viewer PATCH v2 1/3] Annotate message dialog helpers with format(gnu_printf)
The shortlog should mention G_GNUC_PRINTF rather than format(printf) On Tue, Feb 19, 2019 at 03:00:09PM +, Daniel P. Berrangé wrote: > This allows the compiler to validate the format string and args passed > to the function. > > Signed-off-by: Daniel P. Berrangé > --- > src/virt-viewer-app.c | 38 +++--- > src/virt-viewer-notebook.c | 4 ++-- > 2 files changed, 25 insertions(+), 17 deletions(-) > > diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c > index 2592484..15e7b3d 100644 > --- a/src/virt-viewer-app.c > +++ b/src/virt-viewer-app.c > @@ -197,19 +197,16 @@ virt_viewer_app_set_debug(gboolean debug) > doDebug = debug; > } > > -static GtkWidget* > -virt_viewer_app_make_message_dialog(VirtViewerApp *self, > -const char *fmt, ...) > +G_GNUC_PRINTF(2, 0) static GtkWidget* > +virt_viewer_app_make_message_dialogv(VirtViewerApp *self, > + const char *fmt, va_list vargs) Is the addition of this helper required? I'd put G_GNUC_PRINTF after the declaration: https://developer.gnome.org/glib/unstable/glib-Miscellaneous-Macros.html#G-GNUC-PRINTF:CAPS « Place the attribute after the function declaration, just before the semicolon. » We don't have a semi-colon here, but at the end of the declaration seems more consistent with this documentation. > { > g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL); > GtkWindow *window = > GTK_WINDOW(virt_viewer_window_get_window(self->priv->main_window)); > GtkWidget *dialog; > char *msg; > -va_list vargs; > > -va_start(vargs, fmt); > msg = g_strdup_vprintf(fmt, vargs); > -va_end(vargs); > > dialog = gtk_message_dialog_new(window, > GTK_DIALOG_MODAL | > @@ -224,23 +221,34 @@ virt_viewer_app_make_message_dialog(VirtViewerApp *self, > return dialog; > } > > -void > +G_GNUC_PRINTF(2, 3) static GtkWidget* > +virt_viewer_app_make_message_dialog(VirtViewerApp *self, > +const char *fmt, ...) > +{ > +g_return_val_if_fail(VIRT_VIEWER_IS_APP(self), NULL); > +GtkWidget *dialog; > +va_list vargs; > + > +va_start(vargs, fmt); > +dialog = virt_viewer_app_make_message_dialogv(self, fmt, vargs); > +va_end(vargs); > + > +return dialog; > +} > + > +G_GNUC_PRINTF(2, 3) void > virt_viewer_app_simple_message_dialog(VirtViewerApp *self, >const char *fmt, ...) This should be done in the .h file, and same comment about putting this after the declaration. Same comments throughout the rest of this file. Christophe > { > GtkWidget *dialog; > -char *msg; > va_list vargs; > > va_start(vargs, fmt); > -msg = g_strdup_vprintf(fmt, vargs); > +dialog = virt_viewer_app_make_message_dialogv(self, fmt, vargs); > va_end(vargs); > > -dialog = virt_viewer_app_make_message_dialog(self, msg); > gtk_dialog_run(GTK_DIALOG(dialog)); > gtk_widget_destroy(dialog); > - > -g_free(msg); > } > > static void > @@ -668,7 +676,7 @@ virt_viewer_app_open_unix_sock(const char *unixsock, > GError **error) > > #endif /* defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) */ > > -void > +G_GNUC_PRINTF(2, 3) void > virt_viewer_app_trace(VirtViewerApp *self, >const char *fmt, ...) > { > @@ -1871,7 +1879,7 @@ virt_viewer_app_on_application_startup(GApplication > *app) > > if (!virt_viewer_app_start(self, )) { > if (error && !g_error_matches(error, VIRT_VIEWER_ERROR, > VIRT_VIEWER_ERROR_CANCELLED)) > -virt_viewer_app_simple_message_dialog(self, error->message); > +virt_viewer_app_simple_message_dialog(self, "%s", > error->message); > > g_clear_error(); > g_application_quit(app); > @@ -2477,7 +2485,7 @@ show_status_cb(gpointer value, > virt_viewer_notebook_show_status(nb, text); > } > > -void > +G_GNUC_PRINTF(2, 3) void > virt_viewer_app_show_status(VirtViewerApp *self, const gchar *fmt, ...) > { > va_list args; > diff --git a/src/virt-viewer-notebook.c b/src/virt-viewer-notebook.c > index 3a74e9f..310ea12 100644 > --- a/src/virt-viewer-notebook.c > +++ b/src/virt-viewer-notebook.c > @@ -82,7 +82,7 @@ virt_viewer_notebook_init (VirtViewerNotebook *self) > gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL); > } > > -void > +G_GNUC_PRINTF(2, 0) void > virt_viewer_notebook_show_status_va(VirtViewerNotebook *self, const gchar > *fmt, va_list args) > { > VirtViewerNotebookPrivate *priv; > @@ -99,7 +99,7 @@ virt_viewer_notebook_show_status_va(VirtViewerNotebook > *self, const gchar *fmt, > g_free(text); > } > > -void > +G_GNUC_PRINTF(2, 3) void > virt_viewer_notebook_show_status(VirtViewerNotebook *self, const gchar *fmt, > ...) > { > va_list args; > -- > 2.20.1 > >
Re: [virt-tools-list] [virt-viewer PATCH v2 2/3] Fix warning about missing nul terminator with strncpy
Reviewed-by: Christophe Fergeau On Tue, Feb 19, 2019 at 03:00:10PM +, Daniel P. Berrangé wrote: > We're intentionally not copying the nul terminator, but gcc rightly > worries that this could be a coding mistake > > windows-cmdline-wrapper.c: In function 'main': > windows-cmdline-wrapper.c:65:9: warning: 'strncpy' output truncated before > terminating nul copying 3 bytes from a string of the same length > [-Wstringop-truncation] > strncpy(name + len - 3, "exe", 3); > ^ > > Use memcpy() to make it clear we don't care about the nul terminator in > the data we're copying. > > Signed-off-by: Daniel P. Berrangé > --- > src/windows-cmdline-wrapper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/windows-cmdline-wrapper.c b/src/windows-cmdline-wrapper.c > index 704e2d7..7299ab2 100644 > --- a/src/windows-cmdline-wrapper.c > +++ b/src/windows-cmdline-wrapper.c > @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) > // We expect our helper to end with .com > assert(strncmp(name + len - 3, "com", 4) == 0); > // replace .com with .exe > -strncpy(name + len - 3, "exe", 3); > +memcpy(name + len - 3, "exe", 3); > } > > si.cb = sizeof(si); > -- > 2.20.1 > > ___ > virt-tools-list mailing list > virt-tools-list@redhat.com > https://www.redhat.com/mailman/listinfo/virt-tools-list signature.asc Description: PGP signature ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
Re: [virt-tools-list] [virt-manager PATCH] virtManager: clone: check which storage pools supports volume cloning
On Sat, Mar 02, 2019 at 07:01:35PM -0500, Cole Robinson wrote: > On 3/1/19 6:18 AM, Pavel Hrdina wrote: > > When cloning a guest in virt-manager the GUI shows a list of disks and > > select default cloning policy for every disk. For storage pools where > > we know that cloning is not possible we should not select that option > > as default one. > > > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1463066 > > > > Signed-off-by: Pavel Hrdina > > --- > > virtManager/clone.py | 11 ++- > > virtManager/storagepool.py | 4 ++-- > > virtinst/storage.py| 24 ++-- > > 3 files changed, 26 insertions(+), 13 deletions(-) > > > > diff --git a/virtManager/clone.py b/virtManager/clone.py > > index 895d258a..cd991f6b 100644 > > --- a/virtManager/clone.py > > +++ b/virtManager/clone.py > > @@ -64,6 +64,11 @@ def can_we_clone(conn, vol, path): > > elif not os.path.exists(path): > > msg = _("Path does not exist.") > > > > +else: > > +pool = vol.get_parent_pool() > > +if not pool.supports_volume_creation(clone=True): > > +msg = _("Cannot clone {} storage > > pool.".format(pool.get_type())) > > + > > Ugh I know this is what the python world is pushing these days but I > personally find that format to be ugly and far less readable. Please use > the traditional format for this patch. If you feel strongly about using > that format in the code base let's have a top level thread about it. OK, I'll change the formatting back to the old style before pushing. > Otherwise: > > Reviewed-by: Cole Robinson Thanks, Pavel signature.asc Description: PGP signature ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
[virt-tools-list] [PATCH v3] remote-viewer: Allow toggling shared clipboard
Signed-off-by: Aleksei Nikiforov --- man/remote-viewer.pod | 3 + src/resources/ui/virt-viewer-preferences.ui | 16 +++- src/virt-viewer-app.c | 93 + src/virt-viewer-app.h | 6 ++ src/virt-viewer-session-spice.c | 9 +- 5 files changed, 125 insertions(+), 2 deletions(-) diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod index 8cf5ee4..c009fb9 100644 --- a/man/remote-viewer.pod +++ b/man/remote-viewer.pod @@ -354,6 +354,9 @@ The monitor-mapping must contain ids of all displays from 1 to the last desired display id, e.g. "monitor-mapping=3:3" is invalid because mappings for displays 1 and 2 are not specified. +Configuration key B contains a boolean value. If it's "true", +then clipboard is shared with guests if clipboard sharing is supported by used protocol. + =head1 EXAMPLES To connect to SPICE server on host "makai" with port 5900 diff --git a/src/resources/ui/virt-viewer-preferences.ui b/src/resources/ui/virt-viewer-preferences.ui index f9738c5..0b88da4 100644 --- a/src/resources/ui/virt-viewer-preferences.ui +++ b/src/resources/ui/virt-viewer-preferences.ui @@ -61,7 +61,7 @@ True False 6 -2 +3 2 12 6 @@ -91,6 +91,20 @@ 2 + + +Share clipboard +True +True +False +True + + +2 +2 +3 + + True diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index e0e6e63..c91a828 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -153,6 +153,7 @@ struct _VirtViewerAppPrivate { guint remove_smartcard_accel_key; GdkModifierType remove_smartcard_accel_mods; gboolean quit_on_disconnect; +gboolean supports_share_clipboard; }; @@ -172,6 +173,8 @@ enum { PROP_KIOSK, PROP_QUIT_ON_DISCONNECT, PROP_UUID, +PROP_CONFIG_SHARE_CLIPBOARD, +PROP_SUPPORTS_SHARE_CLIPBOARD, }; void @@ -1549,6 +1552,14 @@ virt_viewer_app_get_property (GObject *object, guint property_id, g_value_set_string(value, priv->uuid); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_config_share_clipboard(self)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_supports_share_clipboard(self)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1603,6 +1614,14 @@ virt_viewer_app_set_property (GObject *object, guint property_id, virt_viewer_app_set_uuid_string(self, g_value_get_string(value)); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +virt_viewer_app_set_config_share_clipboard(self, g_value_get_boolean(value)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +virt_viewer_app_set_supports_share_clipboard(self, g_value_get_boolean(value)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1815,6 +1834,9 @@ virt_viewer_app_on_application_startup(GApplication *app) gtk_accel_map_add_entry("/view/zoom-in", GDK_KEY_plus, GDK_CONTROL_MASK); gtk_accel_map_add_entry("/send/secure-attention", GDK_KEY_End, GDK_CONTROL_MASK | GDK_MOD1_MASK); +// Restore initial state of config-share-clipboard property from config and notify about it +virt_viewer_app_set_config_share_clipboard(self, virt_viewer_app_get_config_share_clipboard(self)); + if (!virt_viewer_app_start(self, )) { if (error && !g_error_matches(error, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_CANCELLED)) virt_viewer_app_simple_message_dialog(self, error->message); @@ -1994,6 +2016,24 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass) G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); + +g_object_class_install_property(object_class, +PROP_CONFIG_SHARE_CLIPBOARD, + g_param_spec_boolean("config-share-clipboard", + "Share clipboard", + "Indicates whether to share clipboard", +
Re: [virt-tools-list] [PATCH v2] remote-viewer: Allow toggling shared clipboard
04.03.2019 14:54, Aleksei Nikiforov пишет: Signed-off-by: Aleksei Nikiforov --- man/remote-viewer.pod | 3 + src/resources/ui/virt-viewer-preferences.ui | 16 +++- src/virt-viewer-app.c | 100 src/virt-viewer-app.h | 6 ++ src/virt-viewer-session-spice.c | 9 +- 5 files changed, 132 insertions(+), 2 deletions(-) diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod index 8cf5ee4..c009fb9 100644 --- a/man/remote-viewer.pod +++ b/man/remote-viewer.pod @@ -354,6 +354,9 @@ The monitor-mapping must contain ids of all displays from 1 to the last desired display id, e.g. "monitor-mapping=3:3" is invalid because mappings for displays 1 and 2 are not specified. +Configuration key B contains a boolean value. If it's "true", +then clipboard is shared with guests if clipboard sharing is supported by used protocol. + =head1 EXAMPLES To connect to SPICE server on host "makai" with port 5900 diff --git a/src/resources/ui/virt-viewer-preferences.ui b/src/resources/ui/virt-viewer-preferences.ui index f9738c5..0b88da4 100644 --- a/src/resources/ui/virt-viewer-preferences.ui +++ b/src/resources/ui/virt-viewer-preferences.ui @@ -61,7 +61,7 @@ True False 6 -2 +3 2 12 6 @@ -91,6 +91,20 @@ 2 + + +Share clipboard +True +True +False +True + + +2 +2 +3 + + True diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index e0e6e63..2458e3e 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -153,6 +153,7 @@ struct _VirtViewerAppPrivate { guint remove_smartcard_accel_key; GdkModifierType remove_smartcard_accel_mods; gboolean quit_on_disconnect; +gboolean supports_share_clipboard; }; @@ -172,6 +173,8 @@ enum { PROP_KIOSK, PROP_QUIT_ON_DISCONNECT, PROP_UUID, +PROP_CONFIG_SHARE_CLIPBOARD, +PROP_SUPPORTS_SHARE_CLIPBOARD, }; void @@ -1071,6 +1074,13 @@ virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type, GError ** g_signal_connect(priv->session, "notify::software-smartcard-reader", (GCallback)notify_software_reader_cb, self); + +g_object_bind_property(self, + "config-share-clipboard", + priv->session, + "share-clipboard", + G_BINDING_BIDIRECTIONAL|G_BINDING_SYNC_CREATE); + I've just noticed that I've forgot to remove these lines. I'll send new patch. return TRUE; } @@ -1549,6 +1559,14 @@ virt_viewer_app_get_property (GObject *object, guint property_id, g_value_set_string(value, priv->uuid); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_config_share_clipboard(self)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_supports_share_clipboard(self)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1603,6 +1621,14 @@ virt_viewer_app_set_property (GObject *object, guint property_id, virt_viewer_app_set_uuid_string(self, g_value_get_string(value)); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +virt_viewer_app_set_config_share_clipboard(self, g_value_get_boolean(value)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +virt_viewer_app_set_supports_share_clipboard(self, g_value_get_boolean(value)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1815,6 +1841,9 @@ virt_viewer_app_on_application_startup(GApplication *app) gtk_accel_map_add_entry("/view/zoom-in", GDK_KEY_plus, GDK_CONTROL_MASK); gtk_accel_map_add_entry("/send/secure-attention", GDK_KEY_End, GDK_CONTROL_MASK | GDK_MOD1_MASK); +// Restore initial state of config-share-clipboard property from config and notify about it +virt_viewer_app_set_config_share_clipboard(self, virt_viewer_app_get_config_share_clipboard(self)); + if (!virt_viewer_app_start(self, )) { if (error && !g_error_matches(error, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_CANCELLED))
[virt-tools-list] [PATCH v2] remote-viewer: Allow toggling shared clipboard
Signed-off-by: Aleksei Nikiforov --- man/remote-viewer.pod | 3 + src/resources/ui/virt-viewer-preferences.ui | 16 +++- src/virt-viewer-app.c | 100 src/virt-viewer-app.h | 6 ++ src/virt-viewer-session-spice.c | 9 +- 5 files changed, 132 insertions(+), 2 deletions(-) diff --git a/man/remote-viewer.pod b/man/remote-viewer.pod index 8cf5ee4..c009fb9 100644 --- a/man/remote-viewer.pod +++ b/man/remote-viewer.pod @@ -354,6 +354,9 @@ The monitor-mapping must contain ids of all displays from 1 to the last desired display id, e.g. "monitor-mapping=3:3" is invalid because mappings for displays 1 and 2 are not specified. +Configuration key B contains a boolean value. If it's "true", +then clipboard is shared with guests if clipboard sharing is supported by used protocol. + =head1 EXAMPLES To connect to SPICE server on host "makai" with port 5900 diff --git a/src/resources/ui/virt-viewer-preferences.ui b/src/resources/ui/virt-viewer-preferences.ui index f9738c5..0b88da4 100644 --- a/src/resources/ui/virt-viewer-preferences.ui +++ b/src/resources/ui/virt-viewer-preferences.ui @@ -61,7 +61,7 @@ True False 6 -2 +3 2 12 6 @@ -91,6 +91,20 @@ 2 + + +Share clipboard +True +True +False +True + + +2 +2 +3 + + True diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index e0e6e63..2458e3e 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -153,6 +153,7 @@ struct _VirtViewerAppPrivate { guint remove_smartcard_accel_key; GdkModifierType remove_smartcard_accel_mods; gboolean quit_on_disconnect; +gboolean supports_share_clipboard; }; @@ -172,6 +173,8 @@ enum { PROP_KIOSK, PROP_QUIT_ON_DISCONNECT, PROP_UUID, +PROP_CONFIG_SHARE_CLIPBOARD, +PROP_SUPPORTS_SHARE_CLIPBOARD, }; void @@ -1071,6 +1074,13 @@ virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type, GError ** g_signal_connect(priv->session, "notify::software-smartcard-reader", (GCallback)notify_software_reader_cb, self); + +g_object_bind_property(self, + "config-share-clipboard", + priv->session, + "share-clipboard", + G_BINDING_BIDIRECTIONAL|G_BINDING_SYNC_CREATE); + return TRUE; } @@ -1549,6 +1559,14 @@ virt_viewer_app_get_property (GObject *object, guint property_id, g_value_set_string(value, priv->uuid); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_config_share_clipboard(self)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +g_value_set_boolean(value, virt_viewer_app_get_supports_share_clipboard(self)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1603,6 +1621,14 @@ virt_viewer_app_set_property (GObject *object, guint property_id, virt_viewer_app_set_uuid_string(self, g_value_get_string(value)); break; +case PROP_CONFIG_SHARE_CLIPBOARD: +virt_viewer_app_set_config_share_clipboard(self, g_value_get_boolean(value)); +break; + +case PROP_SUPPORTS_SHARE_CLIPBOARD: +virt_viewer_app_set_supports_share_clipboard(self, g_value_get_boolean(value)); +break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } @@ -1815,6 +1841,9 @@ virt_viewer_app_on_application_startup(GApplication *app) gtk_accel_map_add_entry("/view/zoom-in", GDK_KEY_plus, GDK_CONTROL_MASK); gtk_accel_map_add_entry("/send/secure-attention", GDK_KEY_End, GDK_CONTROL_MASK | GDK_MOD1_MASK); +// Restore initial state of config-share-clipboard property from config and notify about it +virt_viewer_app_set_config_share_clipboard(self, virt_viewer_app_get_config_share_clipboard(self)); + if (!virt_viewer_app_start(self, )) { if (error && !g_error_matches(error, VIRT_VIEWER_ERROR, VIRT_VIEWER_ERROR_CANCELLED)) virt_viewer_app_simple_message_dialog(self, error->message); @@ -1994,6 +2023,24 @@ virt_viewer_app_class_init (VirtViewerAppClass *klass) G_PARAM_READABLE |
Re: [virt-tools-list] [virt-viewer PATCH] Add a git-publish configuration file
On Tue, Feb 19, 2019 at 03:10:33PM +, Daniel P. Berrangé wrote: > On Tue, Feb 19, 2019 at 04:05:00PM +0100, Marc-André Lureau wrote: > > Hi > > On Tue, Feb 19, 2019 at 4:03 PM Daniel P. Berrangé > > wrote: > > > > > > Signed-off-by: Daniel P. Berrangé > > > --- > > > .gitpublish | 4 > > > 1 file changed, 4 insertions(+) > > > create mode 100644 .gitpublish > > > > > > diff --git a/.gitpublish b/.gitpublish > > > new file mode 100644 > > > index 000..bf82571 > > > --- /dev/null > > > +++ b/.gitpublish > > > @@ -0,0 +1,4 @@ > > > +[gitpublishprofile "default"] > > > +base = master > > > +to = virt-tools-list@redhat.com > > > +prefix = virt-viewer PATCH > > > > In general, I believe "PATCH virt-viewer" order is more common. > > When we did this for libvirt, the exact opposite was asserted, hence > we used "$module PATCH". I think it does make sense to have the > "PATCH" word next to the patch sequence numbers too. I'd like to be > consistent with libvirt in this area in any case. virt-manager patches which also go to this list have the same format as I proposed here, so I've pushed this as is, for consistency between projects Regards, Daniel -- |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o-https://fstop138.berrange.com :| |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :| ___ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list
Re: [virt-tools-list] [virt-viewer PATCH 00/14] po: improve translation handling
ping... On Wed, Feb 20, 2019 at 05:50:51PM +, Daniel P. Berrangé wrote: > This applies the same improvements previously done in libvirt: > > https://www.redhat.com/archives/libvir-list/2018-April/msg01004.html > > https://www.berrange.com/posts/2018/11/29/improved-translation-po-file-handling-by-ditching-gettext-autotools-integration/ > > The key problems with our current approach are: > > - The pot & po files stored in GIT contain huge set of >annotations about source file names & line numbers. >These are out of date as soon as a change is commited >to git following a translation refresh. This makes >diffs impossible to meaningfully review, as they are >98% noise, 2% signal. > > - The po file messages are sorted by source location, >so when we move code between files, or rename files, >the po file message order changes for no good reason. >This makes diffs even more impossible to review. > > - The po files contain entries for all messages even >if most have no translation, bloating size of po/ >data stored in git > > - Whenever 'make dist' is run, it alters all the pot >and po files, so developers need to then reset their >content to match git HEAD manually. This is caused >by having auto-generated content (source file locations) >mixed in with the static content (the actual translated >strings) > > After this series, we only minimized po files in git, with > the redundated & outdated source locations info stripped. > This stripped info is re-added automatically during build > to create the real .po files, that we distribute, and/or > upload to translators in Zanata. > > As a result the po directory is smaller in size, and > when refreshing from Zanata, we have git commits that > clearly show *only* the altered translations, nothing > else. The importance of this cannot be overstated - by > having these clear diffs when doing this change in libvirt, > I discovered a serious bug in the Zanata client that has > been screwing up translations in every project that uses > Zanata by adding bogus "fuzzy" annotations. > > The particularly attractive statistic: > > 193 files changed, 11904 insertions(+), 80334 deletions(-) > > Daniel P. Berrangé (14): > po: provide custom make rules for po file management > po: remove language list from zanata configuration > po: add rules for integration with zanata > po: minimize & canonicalize translations stored in git > po: minimize af am anp ar as ast bal be bg > po: minimize bn_IN bn bo br brx bs ca cs cy da > po: minimize de_CH de el en_GB eo es et eu fa fi > po: minimize fr gl gu he hi hr hu ia > po: minimize id ilo is it ja ka kk km kn ko > po: minimize kw_GB kw@kkcor kw kw@uccor ky lt lv mai mk ml > po: minimize mn mr ms nb nds ne nl nn nso > po: minimize or pa pl pt_BR pt ro ru si sk sl > po: minimize sq sr@latin sr sv ta te tg th tr tw > po: minimize uk ur vi wba yo zh_CN zh_HK zh_TW zu > > Makefile.am |7 - > autogen.sh|1 - > build-aux/minimize-po.pl | 37 + > configure.ac |6 +- > data/Makefile.am | 12 +- > data/remote-viewer.appdata.xml.in | 12 +- > data/remote-viewer.desktop.in |4 +- > ...iewer-mime.xml.in => virt-viewer-mime.xml} |0 > m4/virt-nls.m4| 45 + > mingw-virt-viewer.spec.in |2 +- > po/Makefile.am| 115 ++ > po/POTFILES | 26 + > po/POTFILES.in| 27 - > po/README.md | 76 ++ > po/af.mini.po | 19 + > po/af.po | 864 - > po/am.mini.po | 19 + > po/am.po | 864 - > po/anp.mini.po| 19 + > po/anp.po | 864 - > po/ar.mini.po | 20 + > po/ar.po | 869 - > po/as.mini.po | 327 + > po/as.po | 884 - > po/ast.mini.po| 19 + > po/ast.po | 864 - > po/bal.mini.po| 19 + > po/bal.po | 863 - > po/be.mini.po | 20 + > po/be.po | 866 - > po/bg.mini.po | 307 + > po/bg.po | 881 - > po/bn.mini.po