Commit Graph

1689 Commits

Author SHA1 Message Date
82c14f3dea po: sort the POTFILES contents alphabetically
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-14 16:55:55 +01:00
32ad23bff7 Refresh translatable strings in pot file
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-14 11:39:57 +01:00
30e6f4cd03 src: update for renamed GTK-VNC zoom API
The API was renamed before GTK-VNC 1.2.0 release.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-14 11:39:26 +01:00
47c22dc23b src: enable remote desktop resize with VNC
GTK-VNC has native support for remote desktop resize, provided that we
always give the widget the full available allocation. This requires that
we turn off VirtViewerDisplay's code for keeping aspect ratio, and
instead enable GTK-VNC's equivalent.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 15:08:07 +01:00
20f5b18b6a src: add prop to control forced aspect ratio
When the VirtViewerDisplay class resizes the child display widget, it
attempts to preserve the remote desktop aspect ratio. This is useful in
general, if the display widget can't do this itself. The implication,
however, is that VirtViewerDisplay also has to take ownership of the
remote framebuffer resize functionality.

It is thus useful to disable VirtViewerDisplay's aspect ratio
preservation when the display widget can do this natively, as it can
then also do desktop resizes natively.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 15:08:07 +01:00
e9e2ebb796 src: add --auto-resize <always|never> CLI arg
This is used to control whether resizing of the remote framebuffer
is permitted.

Fixes: https://gitlab.com/virt-viewer/virt-viewer/-/issues/20
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 15:08:06 +01:00
707f74b9c4 src: add menu to control whether framebuffer resize is attempted
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 15:07:08 +01:00
512efe70c6 src: initialize actions during instance init
Currently the GActionMap is registered during the application
startup. This takes place after the command line args are processed,
so prevents the CLI processing from using actions.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 15:07:08 +01:00
83db5b3c64 src: remove unused property constant
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 15:07:08 +01:00
3125e8f507 src: fix version check for power control
The next gtk-vnc will be 1.2.0, not 2.0.0

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 15:07:08 +01:00
15fbaa3fb4 src: introduce "--cursor auto|local" command line
Normally we will honour the server requested behaviour for cursor,
either letting the server render it directly, or locally rendering
a cursor that the server provided us.

There are times, however, where the server does the wrong thing. For
example it might tell us to render an empty cursor, leaving the user
with no visible cursor at all. In this case it can be helpful to ignore
what the server requests, and always display the default local cursor.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-04-08 12:52:59 +00:00
1589f90601 Added translation using Weblate (Finnish)
Signed-off-by: Jan Kuparinen <copper_fin@hotmail.com>
2021-04-06 19:17:35 +02:00
330418f69c Translated using Weblate (Korean)
Currently translated at 100.0% (179 of 179 strings)

Translation: virt-viewer/virt-viewer
Translate-URL: https://translate.fedoraproject.org/projects/virt-viewer/virt-viewer/ko/

Signed-off-by: simmon <simmon@nplob.com>

Translated using Weblate (Korean)

Currently translated at 33.5% (60 of 179 strings)

Translation: virt-viewer/virt-viewer
Translate-URL: https://translate.fedoraproject.org/projects/virt-viewer/virt-viewer/ko/

Signed-off-by: simmon <simmon@nplob.com>
2021-03-24 11:00:41 +01:00
ada810c088 src: support power control actions with VNC
VNC can support graceful shutdown, hard reset and hard power off.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-23 17:59:29 +00:00
f42a1a7eaa src: conditionally enable VM action UIs
We only want to enable VM actions that are supported by
the session.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-23 17:59:29 +00:00
897543880c src: wire up reporting of whether VM actions are supported in SPICE
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-23 17:59:29 +00:00
27aa853981 src: add method to test whether a VM action is supported
SPICE provides a number of VM actions, but they are only supported if
the QMP tunnel is available. VNC doesn't currently support any, but
in future it will support some.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-23 17:59:29 +00:00
a511365d78 rpm: disable spice for RHEL-9
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-23 15:22:19 +00:00
2b9c9c51f8 rpm: disable govirt for RHEL-9
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-23 15:21:59 +00:00
6db5b71419 src: hide password/username auth widgets if not required
When a password is sufficiently, we should not even show the username
field, and vica-verca.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-18 11:26:37 +00:00
1d11dd55da src: cancel auth dialog when closing session
This ensures that the application exits when the user presses Ctrl-C
while an auth dialog is open.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-18 11:26:37 +00:00
247d91d889 src: switch auth dialog to use a GTK UI template
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-18 11:26:37 +00:00
d59f550d21 src: improve spacing between password box and buttons in auth dialog
The standard layout uses 6 pixels spacing between controls.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-18 11:26:37 +00:00
abbd076fdb src: use embedded eye icon in password entry box
This improves the UI for the password auth box by using an inline icon
for showing/hiding the password text. This is the UI pattern uses by
GNOME shell and other GTK applications.

The two svg files added here are copied from the GTK4 codebase which
is under the LGPLv2+.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-18 11:26:37 +00:00
c6f429627c src: remove SIGINT handler after first firing
If you press Ctrl-C while the auth dialog is active it gets ignored
because calling g_application_quit() won't break out of the model
g_dialog_run() call.

By removing the SIGINT handler after first firing, we can at least let
the user press Ctrl-C a second time to force quit.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-18 11:26:37 +00:00
5b44064b35 src: use the same application ID for remote-viewer and virt-viewer
Gtk uses the application ID to lookup resource entries compiled into the
application. The application ID must match the path in the gresource.xml
file for this to work correctly.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-18 11:26:37 +00:00
23a6ee68d8 Translated using Weblate (Korean)
Currently translated at 30.7% (55 of 179 strings)

Translation: virt-viewer/virt-viewer
Translate-URL: https://translate.fedoraproject.org/projects/virt-viewer/virt-viewer/ko/

Signed-off-by: simmon <simmon@nplob.com>
2021-03-08 20:01:47 +01:00
81129f8eb1 build: fix build without gtk-vnc
Without gtk-vnc we get implicit function declaration for
VIRT_VIEWER_IS_SESSION_VNC. Introduced at 8bc91ac "session: remove
"session-error" signal" in 2021-02-18

As we are already using #ifdef here, I've also changed the ternary to
an if for clarity.

Signed-off-by: Victor Toso <victortoso@redhat.com>
2021-03-08 17:05:42 +01:00
04c2c4a035 build-aux: set MANUFACTURER env when building MSI
This needs to be set via an env variable so that it can be overridden by
vendors building their own MSIs downstream.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-08 12:53:55 +00:00
df4f0a8d4f data: fix URLs in wxs file
The download site is on virt-manager.org, not virt-tools.org, so lets
use that site, with TLS too.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-08 12:53:55 +00:00
7040dded11 icons: remove obsolete usb icon
We are now using a standard symbolic icon so don't need the custom USB
icon.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-08 12:33:06 +00:00
d71c56dacd Added translation using Weblate (Sinhala)
Signed-off-by: Hela Basa <r45xveza@pm.me>
2021-03-03 22:00:42 +01:00
0c94c1f844 man: document the default cursor ungrab sequence in man pages
While the window titlebar already displays the ungrab sequence when a
grab is active, it doesn't hurt to also document it upfront for people.

Fixes https://gitlab.com/virt-viewer/virt-viewer/-/issues/10
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-03 14:45:03 +00:00
044534899b rpm: include buildid components in MSI filename
The MSI file can contain different content with each change in build ID,
but the filename never changes. This creates confusion as to whether the
MSI is actually up to date or not. It requires the looking inside the
MSI to see the encoded version.

The RPM uses 2 components from the %release field as input for the build
ID value. Use these as two parts of the filename, separated from the
version with a "-" similar to how RPM version/release are separated.

IOW, an RPM

   mingw32-virt-viewer-msi-9.0-1.fc33.noarch.rpm

will result in

   virt-viewer-x64-9.0-1.0.msi

while

   mingw32-virt-viewer-msi-9.0-1.fc33.1.noarch.rpm

will result in

   virt-viewer-x64-9.0-1.1.msi

Essentially we've just stripped the %dist part (".fc33") out of
the release, and default the second component to "0" if omitted.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-03-01 22:25:54 +00:00
c34984c41e Translated using Weblate (Dutch)
Currently translated at 100.0% (179 of 179 strings)

Translation: virt-viewer/virt-viewer
Translate-URL: https://translate.fedoraproject.org/projects/virt-viewer/virt-viewer/nl/

Signed-off-by: Geert Warrink <geert.warrink@onsnet.nu>
2021-03-01 23:07:34 +01:00
febf72fe26 src: switch to preferring gtk dark theme
This enables the app to use the dark theme when running in environments
where a dark theme is available.

This is not done in Windows because the dark theme looks quite odd when
run on older versions of Windows where GTK can't replace the titlebars
by default.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
0f1c12dc38 src: add help window showing keyboard shortcuts
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
49a67971af src: make use of header bar subtitle for ungrab hint
The header bar includes space for both a title and subtitle. By using
the latter for the ungrab hint, we avoid having such a long title.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
c43eb057bd src: convert full screen toolbar to GtkHeaderBar
The user interface for the fullscreen toolbar is now identical to that
seen when non-fullscreen. All that differs is that the toolbar autohides
in fullscreen mode and doesn't expand to fill the window width.

There is a complication with the timed revealer and menus. With
traditional GtkMenus, it appears a grab is held as long as the menu is
open, so the revealer won't hide the toolbar. With modern GtkPopover
based menus, however, the revealer hides the toolbar despite the menu
being open, and thus in turn hides the menu.

This hacks around the problem by setting the header buttons to force use
of a traditional GtkMenu instead of a GtkPopover. It is not quite as
visually pretty, but at least it works.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
bb9664de38 src: switch main window to use GtkHeaderBar
This removes the main menu bar in favour of using the GtkHeaderBar with
integrated bars. This reduces the amount of vertical screen real estate
consumed by the application, leaving more for the guest display. The new
buttons are laid out to make the more common actions available with a
single click.

The buttons are grouped into two sets. On the left hand side of the
header are buttons that are interacting with the server

 - Send key
 - USB device selection
 - Monitor selection and VM pause/shutdown

whle on the right hand side are buttons interacting with the local user
interface

 - Fullscreen
 - Preferences / About / Guest detail / zoom level

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
2f11e0a407 src: convert accelerator handling over to actions
This better decouples the accelerator handling from the current user
interface design.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
407836ecee src: convert displays menu to use actions
This better decouples the user interface from the implementation.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
4ae25cdf46 src: switch most menu and toolbar buttons to use actions
This decouples the user interface from the functional implementation
more cleanly.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
1ffee18864 src: convert smartcard and machine menus to use actions
This better decouples the user interface from the implementation.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
d35ca0b099 src: introduce more window level actions
All the menu / toolbar callbacks are given equivalent action
implementations.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
71a583bae6 src: introduce some application level actions
The machine pause/reset/powerdown and smartcard insert/remove operations
can implemented directly by the application class as they require no UI.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
5a0bf52d73 src: introduce public helpers for changing cd and screenshot dialogs
This decouples the functional implementation from the UI controls that
trigger it.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
049f93d90a src: introduce public helpers for about and guest details dialogs
This decouples the functional implementation from the UI controls that
trigger it.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
825975d2e7 src: introduce public helpers for changing zoom levels
This decouples the functional implementation from the UI controls that
trigger it.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00
29d0c7cecd src: decouple accelerators array from actions array
We will be adding many more actions shortly, so cannot keep the two
arrays' sizes in sync.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2021-02-19 12:36:07 +00:00