mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2026-01-09 05:37:17 +00:00
remote-viewer-connect: Changed hardcoded UI into XML
Hardcoded UI removed in favor of XML. Added the new XML file for translation.
This commit is contained in:
parent
ce31441c73
commit
0571843d7f
@ -3,6 +3,7 @@ data/virt-viewer-mime.xml.in
|
|||||||
src/gbinding.c
|
src/gbinding.c
|
||||||
src/remote-viewer-main.c
|
src/remote-viewer-main.c
|
||||||
src/remote-viewer.c
|
src/remote-viewer.c
|
||||||
|
[type: gettext/glade] src/remote-viewer-connect.xml
|
||||||
[type: gettext/glade] src/virt-viewer-about.xml
|
[type: gettext/glade] src/virt-viewer-about.xml
|
||||||
src/virt-viewer-app.c
|
src/virt-viewer-app.c
|
||||||
src/virt-viewer-auth.c
|
src/virt-viewer-auth.c
|
||||||
|
|||||||
@ -11,6 +11,7 @@ builderxml_DATA = \
|
|||||||
virt-viewer-guest-details.xml \
|
virt-viewer-guest-details.xml \
|
||||||
virt-viewer-vm-connection.xml \
|
virt-viewer-vm-connection.xml \
|
||||||
virt-viewer-preferences.xml \
|
virt-viewer-preferences.xml \
|
||||||
|
remote-viewer-connect.xml \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
|
|||||||
@ -19,6 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "remote-viewer-connect.h"
|
#include "remote-viewer-connect.h"
|
||||||
|
#include "virt-viewer-util.h"
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
#include <gdk/gdkkeysyms.h>
|
#include <gdk/gdkkeysyms.h>
|
||||||
|
|
||||||
@ -132,30 +133,14 @@ recent_item_activated_dialog_cb(GtkRecentChooser *chooser G_GNUC_UNUSED, gpointe
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
make_label_light(GtkLabel* label)
|
make_label_small(GtkLabel* label)
|
||||||
{
|
{
|
||||||
PangoAttrList* attributes = pango_attr_list_new();
|
PangoAttrList* attributes = pango_attr_list_new();
|
||||||
#if GTK_CHECK_VERSION(3, 0, 0)
|
|
||||||
gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(label)), "dim-label");
|
|
||||||
#else
|
|
||||||
GtkStyle* style = gtk_widget_get_style(GTK_WIDGET(label));
|
|
||||||
GdkColor* c = &style->text[GTK_STATE_INSENSITIVE];
|
|
||||||
pango_attr_list_insert(attributes, pango_attr_foreground_new(c->red, c->green, c->blue));
|
|
||||||
#endif
|
|
||||||
pango_attr_list_insert(attributes, pango_attr_scale_new(0.9));
|
pango_attr_list_insert(attributes, pango_attr_scale_new(0.9));
|
||||||
gtk_label_set_attributes(label, attributes);
|
gtk_label_set_attributes(label, attributes);
|
||||||
pango_attr_list_unref(attributes);
|
pango_attr_list_unref(attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
make_label_bold(GtkLabel* label)
|
|
||||||
{
|
|
||||||
PangoAttrList* attributes = pango_attr_list_new();
|
|
||||||
pango_attr_list_insert(attributes, pango_attr_weight_new(PANGO_WEIGHT_BOLD));
|
|
||||||
gtk_label_set_attributes(label, attributes);
|
|
||||||
pango_attr_list_unref(attributes);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* remote_viewer_connect_dialog
|
* remote_viewer_connect_dialog
|
||||||
*
|
*
|
||||||
@ -169,11 +154,9 @@ make_label_bold(GtkLabel* label)
|
|||||||
gboolean
|
gboolean
|
||||||
remote_viewer_connect_dialog(gchar **uri)
|
remote_viewer_connect_dialog(gchar **uri)
|
||||||
{
|
{
|
||||||
GtkWidget *window, *box, *label, *entry, *recent, *connect_button, *cancel_button, *button_box;
|
GtkWidget *window, *label, *entry, *recent, *connect_button, *cancel_button;
|
||||||
#if !GTK_CHECK_VERSION(3, 0, 0)
|
|
||||||
GtkWidget *alignment;
|
|
||||||
#endif
|
|
||||||
GtkRecentFilter *rfilter;
|
GtkRecentFilter *rfilter;
|
||||||
|
GtkBuilder *builder;
|
||||||
|
|
||||||
ConnectionInfo ci = {
|
ConnectionInfo ci = {
|
||||||
FALSE,
|
FALSE,
|
||||||
@ -183,47 +166,18 @@ remote_viewer_connect_dialog(gchar **uri)
|
|||||||
g_return_val_if_fail(uri && *uri == NULL, FALSE);
|
g_return_val_if_fail(uri && *uri == NULL, FALSE);
|
||||||
|
|
||||||
/* Create the widgets */
|
/* Create the widgets */
|
||||||
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
builder = virt_viewer_util_load_ui("remote-viewer-connect.xml");
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(window), 5);
|
g_return_val_if_fail(builder != NULL, GTK_RESPONSE_NONE);
|
||||||
box = gtk_vbox_new(FALSE, 6);
|
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(box), 5);
|
|
||||||
gtk_container_add(GTK_CONTAINER(window), box);
|
|
||||||
|
|
||||||
label = gtk_label_new_with_mnemonic(_("_Connection Address"));
|
window = GTK_WIDGET(gtk_builder_get_object(builder, "remote-viewer-connection-window"));
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
|
connect_button = GTK_WIDGET(gtk_builder_get_object(builder, "connect-button"));
|
||||||
gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);
|
cancel_button = GTK_WIDGET(gtk_builder_get_object(builder, "cancel-button"));
|
||||||
entry = GTK_WIDGET(gtk_entry_new());
|
label = GTK_WIDGET(gtk_builder_get_object(builder, "example-label"));
|
||||||
gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
|
entry = GTK_WIDGET(gtk_builder_get_object(builder, "connection-address-entry"));
|
||||||
g_object_set(entry, "width-request", 200, NULL);
|
|
||||||
g_signal_connect(entry, "changed", G_CALLBACK(entry_changed_cb), entry);
|
|
||||||
g_signal_connect(entry, "icon-release", G_CALLBACK(entry_icon_release_cb), entry);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), entry, TRUE, TRUE, 0);
|
|
||||||
gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
|
|
||||||
make_label_bold(GTK_LABEL(label));
|
|
||||||
|
|
||||||
label = gtk_label_new(_("For example, spice://foo.example.org:5900"));
|
make_label_small(GTK_LABEL(label));
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
|
|
||||||
make_label_light(GTK_LABEL(label));
|
|
||||||
#if GTK_CHECK_VERSION(3, 0, 0)
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);
|
|
||||||
gtk_widget_set_margin_bottom(label, 12);
|
|
||||||
#else
|
|
||||||
alignment = gtk_alignment_new(0, 0, 1, 1);
|
|
||||||
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 12, 0, 0);
|
|
||||||
gtk_container_add(GTK_CONTAINER(alignment), label);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), alignment, TRUE, TRUE, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
label = gtk_label_new_with_mnemonic(_("_Recent Connections"));
|
recent = GTK_WIDGET(gtk_builder_get_object(builder, "recent-chooser"));
|
||||||
make_label_bold(GTK_LABEL(label));
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);
|
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
|
|
||||||
|
|
||||||
recent = GTK_WIDGET(gtk_recent_chooser_widget_new());
|
|
||||||
gtk_recent_chooser_set_show_icons(GTK_RECENT_CHOOSER(recent), FALSE);
|
|
||||||
gtk_recent_chooser_set_sort_type(GTK_RECENT_CHOOSER(recent), GTK_RECENT_SORT_MRU);
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), recent, TRUE, TRUE, 0);
|
|
||||||
gtk_label_set_mnemonic_widget(GTK_LABEL(label), recent);
|
|
||||||
|
|
||||||
rfilter = gtk_recent_filter_new();
|
rfilter = gtk_recent_filter_new();
|
||||||
gtk_recent_filter_add_mime_type(rfilter, "application/x-spice");
|
gtk_recent_filter_add_mime_type(rfilter, "application/x-spice");
|
||||||
@ -232,15 +186,6 @@ remote_viewer_connect_dialog(gchar **uri)
|
|||||||
gtk_recent_chooser_set_filter(GTK_RECENT_CHOOSER(recent), rfilter);
|
gtk_recent_chooser_set_filter(GTK_RECENT_CHOOSER(recent), rfilter);
|
||||||
gtk_recent_chooser_set_local_only(GTK_RECENT_CHOOSER(recent), FALSE);
|
gtk_recent_chooser_set_local_only(GTK_RECENT_CHOOSER(recent), FALSE);
|
||||||
|
|
||||||
button_box = gtk_hbutton_box_new();
|
|
||||||
gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_END);
|
|
||||||
connect_button = gtk_button_new_with_label("Connect");
|
|
||||||
cancel_button = gtk_button_new_with_label("Cancel");
|
|
||||||
gtk_box_pack_start(GTK_BOX(button_box), cancel_button, FALSE, TRUE, 0);
|
|
||||||
gtk_box_pack_start(GTK_BOX(button_box), connect_button, FALSE, TRUE, 1);
|
|
||||||
|
|
||||||
gtk_box_pack_start(GTK_BOX(box), button_box, FALSE, TRUE, 0);
|
|
||||||
|
|
||||||
g_signal_connect(window, "key-press-event",
|
g_signal_connect(window, "key-press-event",
|
||||||
G_CALLBACK(key_pressed_cb), window);
|
G_CALLBACK(key_pressed_cb), window);
|
||||||
g_signal_connect(connect_button, "clicked",
|
g_signal_connect(connect_button, "clicked",
|
||||||
@ -275,6 +220,7 @@ remote_viewer_connect_dialog(gchar **uri)
|
|||||||
*uri = NULL;
|
*uri = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_object_unref(builder);
|
||||||
gtk_widget_destroy(window);
|
gtk_widget_destroy(window);
|
||||||
|
|
||||||
return ci.response;
|
return ci.response;
|
||||||
|
|||||||
152
src/remote-viewer-connect.xml
Normal file
152
src/remote-viewer-connect.xml
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Generated with glade 3.18.3 -->
|
||||||
|
<interface>
|
||||||
|
<object class="GtkWindow" id="remote-viewer-connection-window">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="title" translatable="yes">Connection details</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkVBox" id="main-box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="border_width">10</property>
|
||||||
|
<property name="spacing">20</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkVBox" id="connection-address-box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="connection-address-label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Connection Address</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="weight" value="bold"/>
|
||||||
|
</attributes>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="connection-address-entry">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="example-label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="sensitive">False</property>
|
||||||
|
<property name="label" translatable="yes">For example, spice://foo.example.org:5900</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkVBox" id="recent-chooser-box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="recent-chooser-label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Recent connections</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="weight" value="bold"/>
|
||||||
|
</attributes>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkRecentChooserWidget" id="recent-chooser">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="limit">20</property>
|
||||||
|
<property name="local_only">False</property>
|
||||||
|
<property name="show_icons">False</property>
|
||||||
|
<property name="sort_type">mru</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkHButtonBox" id="button-box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="resize_mode">immediate</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
<property name="layout_style">end</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="cancel-button">
|
||||||
|
<property name="label" translatable="yes">Cancel</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="connect-button">
|
||||||
|
<property name="label" translatable="yes">Connect</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
<property name="pack_type">end</property>
|
||||||
|
<property name="position">3</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</interface>
|
||||||
Loading…
Reference in New Issue
Block a user