mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2026-01-08 21:14:16 +00:00
Show preferences dialog
Add a menu item Preferences under File and show the preferences dialog
This commit is contained in:
parent
73b80ba99f
commit
31b23e7f0a
@ -112,7 +112,7 @@ struct _VirtViewerAppPrivate {
|
||||
GHashTable *displays;
|
||||
GHashTable *initial_display_map;
|
||||
gchar *clipboard;
|
||||
|
||||
GtkWidget *preferences;
|
||||
gboolean direct;
|
||||
gboolean verbose;
|
||||
gboolean enable_accel;
|
||||
@ -1629,6 +1629,10 @@ virt_viewer_app_dispose (GObject *object)
|
||||
VirtViewerApp *self = VIRT_VIEWER_APP(object);
|
||||
VirtViewerAppPrivate *priv = self->priv;
|
||||
|
||||
if (priv->preferences)
|
||||
gtk_widget_destroy(priv->preferences);
|
||||
priv->preferences = NULL;
|
||||
|
||||
if (priv->windows) {
|
||||
GList *tmp = priv->windows;
|
||||
/* null-ify before unrefing, because we need
|
||||
@ -2401,6 +2405,28 @@ virt_viewer_app_get_windows(VirtViewerApp *self)
|
||||
return self->priv->windows;
|
||||
}
|
||||
|
||||
void
|
||||
virt_viewer_app_show_preferences(VirtViewerApp *self, GtkWidget *parent)
|
||||
{
|
||||
GtkWidget *preferences = self->priv->preferences;
|
||||
|
||||
if (!preferences) {
|
||||
GtkBuilder *builder = virt_viewer_util_load_ui("virt-viewer-preferences.xml");
|
||||
|
||||
gtk_builder_connect_signals(builder, self);
|
||||
|
||||
preferences = GTK_WIDGET(gtk_builder_get_object(builder, "preferences"));
|
||||
self->priv->preferences = preferences;
|
||||
|
||||
g_object_unref(builder);
|
||||
}
|
||||
|
||||
gtk_window_set_transient_for(GTK_WINDOW(preferences),
|
||||
GTK_WINDOW(parent));
|
||||
|
||||
gtk_window_present(GTK_WINDOW(preferences));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
option_kiosk_quit(G_GNUC_UNUSED const gchar *option_name,
|
||||
const gchar *value,
|
||||
|
||||
@ -100,6 +100,7 @@ void virt_viewer_app_clear_hotkeys(VirtViewerApp *app);
|
||||
gint virt_viewer_app_get_n_initial_displays(VirtViewerApp* self);
|
||||
gint virt_viewer_app_get_initial_monitor_for_display(VirtViewerApp* self, gint display);
|
||||
void virt_viewer_app_set_enable_accel(VirtViewerApp *app, gboolean enable);
|
||||
void virt_viewer_app_show_preferences(VirtViewerApp *app, GtkWidget *parent);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@ -58,6 +58,8 @@ void virt_viewer_window_menu_file_usb_device_selection(GtkWidget *menu, VirtView
|
||||
void virt_viewer_window_menu_file_smartcard_insert(GtkWidget *menu, VirtViewerWindow *self);
|
||||
void virt_viewer_window_menu_file_smartcard_remove(GtkWidget *menu, VirtViewerWindow *self);
|
||||
void virt_viewer_window_menu_view_release_cursor(GtkWidget *menu, VirtViewerWindow *self);
|
||||
void virt_viewer_window_menu_preferences_cb(GtkWidget *menu, VirtViewerWindow *self);
|
||||
|
||||
|
||||
/* Internal methods */
|
||||
static void virt_viewer_window_enable_modifiers(VirtViewerWindow *self);
|
||||
@ -1017,6 +1019,13 @@ virt_viewer_window_menu_file_smartcard_remove(GtkWidget *menu G_GNUC_UNUSED,
|
||||
virt_viewer_session_smartcard_remove(virt_viewer_app_get_session(self->priv->app));
|
||||
}
|
||||
|
||||
G_MODULE_EXPORT void
|
||||
virt_viewer_window_menu_preferences_cb(GtkWidget *menu G_GNUC_UNUSED,
|
||||
VirtViewerWindow *self)
|
||||
{
|
||||
virt_viewer_app_show_preferences(self->priv->app, GTK_WIDGET(self->priv->window));
|
||||
}
|
||||
|
||||
G_MODULE_EXPORT void
|
||||
virt_viewer_window_menu_view_release_cursor(GtkWidget *menu G_GNUC_UNUSED,
|
||||
VirtViewerWindow *self)
|
||||
|
||||
@ -68,6 +68,15 @@
|
||||
<signal name="activate" handler="virt_viewer_window_menu_file_smartcard_remove" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="menu-preferences">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Preferences</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="virt_viewer_window_menu_preferences_cb" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="separatormenuitem1">
|
||||
<property name="visible">True</property>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user