vinagre r614 - in trunk: . data src
- From: jwendell svn gnome org
- To: svn-commits-list gnome org
- Subject: vinagre r614 - in trunk: . data src
- Date: Wed, 18 Feb 2009 20:37:49 +0000 (UTC)
Author: jwendell
Date: Wed Feb 18 20:37:49 2009
New Revision: 614
URL: http://svn.gnome.org/viewvc/vinagre?rev=614&view=rev
Log:
2009-02-18 Jonh Wendell <jwendell gnome org>
* data/vinagre.glade,
* src/vinagre-tab.c: Improved the authentication dialog.
Modified:
trunk/ChangeLog
trunk/data/vinagre.glade
trunk/src/vinagre-tab.c
Modified: trunk/data/vinagre.glade
==============================================================================
--- trunk/data/vinagre.glade (original)
+++ trunk/data/vinagre.glade Wed Feb 18 20:37:49 2009
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Wed Dec 10 15:09:21 2008 -->
+<?xml version="1.0"?>
<glade-interface>
+ <!-- interface-requires gtk+ 2.16 -->
+ <!-- interface-naming-policy toplevel-contextual -->
<widget class="GtkDialog" id="connect_dialog">
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
@@ -39,13 +39,13 @@
<property name="row_spacing">6</property>
<child>
<widget class="GtkButton" id="find_button">
+ <property name="label">gtk-find</property>
<property name="visible">True</property>
+ <property name="can_focus">False</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-find</property>
<property name="use_stock">True</property>
<property name="focus_on_click">False</property>
- <property name="response_id">0</property>
</widget>
<packing>
<property name="left_attach">3</property>
@@ -85,13 +85,6 @@
<property name="width_request">250</property>
<property name="visible">True</property>
<property name="tooltip" translatable="yes" comments="Tooltip for host entry in connect dialog">host or host:display or host::port</property>
- <child internal-child="entry">
- <widget class="GtkEntry" id="comboboxentry-entry1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- </widget>
- </child>
</widget>
<packing>
<property name="left_attach">2</property>
@@ -128,12 +121,6 @@
<property name="column_spacing">6</property>
<property name="row_spacing">2</property>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
<widget class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -146,11 +133,11 @@
</child>
<child>
<widget class="GtkCheckButton" id="fullscreen_check">
+ <property name="label" translatable="yes">_Full screen</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Full screen</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
@@ -160,11 +147,11 @@
</child>
<child>
<widget class="GtkCheckButton" id="viewonly_check">
+ <property name="label" translatable="yes">_View only</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_View only</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
@@ -176,11 +163,11 @@
</child>
<child>
<widget class="GtkCheckButton" id="scaling_check">
+ <property name="label" translatable="yes">_Scaling</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Scaling</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
@@ -190,6 +177,12 @@
<property name="bottom_attach">3</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">5</property>
@@ -199,29 +192,32 @@
<widget class="GtkHButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button1">
+ <property name="label">gtk-cancel</property>
+ <property name="response_id">-6</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
- <property name="response_id">-6</property>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
<widget class="GtkButton" id="button2">
+ <property name="label">gtk-connect</property>
+ <property name="response_id">-5</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-connect</property>
<property name="use_stock">True</property>
- <property name="response_id">-5</property>
</widget>
<packing>
<property name="position">1</property>
@@ -230,7 +226,8 @@
</widget>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</widget>
@@ -241,9 +238,9 @@
<property name="border_width">5</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox2">
@@ -266,29 +263,18 @@
</widget>
<packing>
<property name="padding">6</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkTable" id="table3">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="n_rows">4</property>
+ <property name="n_rows">5</property>
<property name="n_columns">3</property>
<property name="column_spacing">5</property>
<property name="row_spacing">5</property>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
<widget class="GtkLabel" id="label12">
<property name="visible">True</property>
<property name="label"> </property>
@@ -327,19 +313,19 @@
</child>
<child>
<widget class="GtkCheckButton" id="save_credential_check">
+ <property name="label" translatable="yes">_Remember this credential</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">_Remember this credential</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
</packing>
</child>
<child>
@@ -400,6 +386,35 @@
<property name="right_attach">2</property>
</packing>
</child>
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes"><i><small>All fields above are mandatory</small></i></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="position">1</property>
@@ -414,29 +429,33 @@
<widget class="GtkHButtonBox" id="dialog-action_area2">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button3">
+ <property name="label">gtk-cancel</property>
+ <property name="response_id">-6</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
- <property name="response_id">-6</property>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkButton" id="button4">
+ <widget class="GtkButton" id="ok_button">
+ <property name="label" translatable="yes" comments="This is a button label, in the authentication dialog">_Authenticate</property>
+ <property name="response_id">-5</property>
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="response_id">-5</property>
+ <property name="use_underline">True</property>
</widget>
<packing>
<property name="position">1</property>
@@ -445,7 +464,8 @@
</widget>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</widget>
@@ -456,9 +476,9 @@
<property name="border_width">5</property>
<property name="title" translatable="yes">Bookmarks</property>
<property name="modal">True</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox4">
@@ -489,9 +509,6 @@
<property name="column_spacing">6</property>
<property name="row_spacing">6</property>
<child>
- <placeholder/>
- </child>
- <child>
<widget class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -565,6 +582,9 @@
<property name="bottom_attach">2</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -595,12 +615,6 @@
<property name="column_spacing">6</property>
<property name="row_spacing">2</property>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
<widget class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -613,11 +627,11 @@
</child>
<child>
<widget class="GtkCheckButton" id="edit_fullscreen_check">
+ <property name="label" translatable="yes">_Full screen</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Full screen</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
@@ -627,11 +641,11 @@
</child>
<child>
<widget class="GtkCheckButton" id="edit_viewonly_check">
+ <property name="label" translatable="yes">_View only</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_View only</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
@@ -643,11 +657,11 @@
</child>
<child>
<widget class="GtkCheckButton" id="edit_scaling_check">
+ <property name="label" translatable="yes">_Scaling</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Scaling</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
@@ -657,6 +671,12 @@
<property name="bottom_attach">3</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -691,6 +711,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -705,29 +726,32 @@
<widget class="GtkHButtonBox" id="dialog-action_area4">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button7">
+ <property name="label">gtk-cancel</property>
+ <property name="response_id">-6</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
- <property name="response_id">-6</property>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
<widget class="GtkButton" id="button8">
+ <property name="label">gtk-save</property>
+ <property name="response_id">-5</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-save</property>
<property name="use_stock">True</property>
- <property name="response_id">-5</property>
</widget>
<packing>
<property name="position">1</property>
@@ -736,7 +760,8 @@
</widget>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</widget>
@@ -749,9 +774,9 @@
<property name="title" translatable="yes">Preferences</property>
<property name="resizable">False</property>
<property name="modal">True</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox5">
@@ -770,6 +795,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -784,6 +810,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -792,29 +819,30 @@
<property name="spacing">6</property>
<child>
<widget class="GtkCheckButton" id="always_show_tabs_check">
+ <property name="label" translatable="yes">_Always show tabs</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="tooltip" translatable="yes">Whether we should show tabs even when there is only one active connection</property>
- <property name="label" translatable="yes">_Always show tabs</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="show_accels_check">
+ <property name="label" translatable="yes">_Show menu shortcuts</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="tooltip" translatable="yes">Whether we should show the menu accelerators (shortcut keys)</property>
- <property name="label" translatable="yes">_Show menu shortcuts</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
@@ -844,21 +872,24 @@
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area5">
<property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button9">
+ <property name="label">gtk-close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="label">gtk-close</property>
<property name="use_stock">True</property>
- <property name="response_id">0</property>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</widget>
@@ -869,9 +900,9 @@
<property name="border_width">5</property>
<property name="title" translatable="yes">Bookmarks</property>
<property name="modal">True</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox6">
@@ -975,6 +1006,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
@@ -989,29 +1021,32 @@
<widget class="GtkHButtonBox" id="dialog-action_area6">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button5">
+ <property name="label">gtk-cancel</property>
+ <property name="response_id">-6</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
- <property name="response_id">-6</property>
</widget>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
<widget class="GtkButton" id="button6">
+ <property name="label">gtk-save</property>
+ <property name="response_id">-5</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label">gtk-save</property>
<property name="use_stock">True</property>
- <property name="response_id">-5</property>
</widget>
<packing>
<property name="position">1</property>
@@ -1020,7 +1055,8 @@
</widget>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
</widget>
Modified: trunk/src/vinagre-tab.c
==============================================================================
--- trunk/src/vinagre-tab.c (original)
+++ trunk/src/vinagre-tab.c Wed Feb 18 20:37:49 2009
@@ -579,6 +579,24 @@
0);
}
+typedef struct {
+ GtkWidget *uname, *pw, *button;
+} ControlOKButton;
+
+static void
+control_ok_button (GtkEditable *entry, ControlOKButton *data)
+{
+ gboolean enabled = TRUE;
+
+ if (GTK_WIDGET_VISIBLE (data->uname))
+ enabled = enabled && gtk_entry_get_text_length (GTK_ENTRY (data->uname)) > 0;
+
+ if (GTK_WIDGET_VISIBLE (data->pw))
+ enabled = enabled && gtk_entry_get_text_length (GTK_ENTRY (data->pw)) > 0;
+
+ gtk_widget_set_sensitive (data->button, enabled);
+}
+
static gboolean
ask_credential (VinagreTab *tab,
gboolean need_username,
@@ -586,15 +604,13 @@
gchar **username,
gchar **password)
{
- GladeXML *xml;
- const char *glade_file;
- GtkWidget *password_dialog, *password_entry, *host_label, *save_credential_check;
- GtkWidget *password_label, *username_label, *username_entry;
- gchar *name, *label;
- int result;
-
- *username = NULL;
- *password = NULL;
+ GladeXML *xml;
+ const char *glade_file;
+ GtkWidget *password_dialog, *host_label, *save_credential_check;
+ GtkWidget *password_label, *username_label, *image;
+ gchar *name, *label;
+ int result;
+ ControlOKButton control;
glade_file = vinagre_utils_get_glade_filename ();
xml = glade_xml_new (glade_file, NULL, NULL);
@@ -609,29 +625,56 @@
g_free (name);
g_free (label);
- password_entry = glade_xml_get_widget (xml, "password_entry");
- username_entry = glade_xml_get_widget (xml, "username_entry");
+ control.uname = glade_xml_get_widget (xml, "username_entry");
+ control.pw = glade_xml_get_widget (xml, "password_entry");
+ control.button = glade_xml_get_widget (xml, "ok_button");
password_label = glade_xml_get_widget (xml, "password_label");
username_label = glade_xml_get_widget (xml, "username_label");
save_credential_check = glade_xml_get_widget (xml, "save_credential_check");
- if (!need_username)
+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image (GTK_BUTTON (control.button), image);
+
+ g_signal_connect (control.uname, "changed", G_CALLBACK (control_ok_button), &control);
+ g_signal_connect (control.pw, "changed", G_CALLBACK (control_ok_button), &control);
+
+ if (need_username)
+ {
+ if (*username)
+ gtk_entry_set_text (GTK_ENTRY (control.uname), *username);
+ }
+ else
{
gtk_widget_hide (username_label);
- gtk_widget_hide (username_entry);
+ gtk_widget_hide (control.uname);
}
- if (!need_password)
+ if (need_password)
+ {
+ if (*password)
+ gtk_entry_set_text (GTK_ENTRY (control.pw), *password);
+ }
+ else
{
gtk_widget_hide (password_label);
- gtk_widget_hide (password_entry);
+ gtk_widget_hide (control.pw);
}
result = gtk_dialog_run (GTK_DIALOG (password_dialog));
if (result == -5)
{
- *username = g_strdup (gtk_entry_get_text (GTK_ENTRY (username_entry)));
- *password = g_strdup (gtk_entry_get_text (GTK_ENTRY (password_entry)));
+ g_free (*username);
+ if (gtk_entry_get_text_length (GTK_ENTRY (control.uname)) > 0)
+ *username = g_strdup (gtk_entry_get_text (GTK_ENTRY (control.uname)));
+ else
+ *username = NULL;
+
+ g_free (*password);
+ if (gtk_entry_get_text_length (GTK_ENTRY (control.pw)) > 0)
+ *password = g_strdup (gtk_entry_get_text (GTK_ENTRY (control.pw)));
+ else
+ *password = NULL;
+
tab->priv->save_credential = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (save_credential_check));
}
@@ -685,27 +728,51 @@
if (need_password || need_username)
{
- if (!vinagre_tab_find_credentials (tab, &username, &password))
+ vinagre_tab_find_credentials (tab, &username, &password);
+ if (!username || !password)
{
if (!ask_credential (tab, need_username, need_password, &username, &password))
{
vinagre_notebook_remove_tab (tab->priv->nb, tab);
- return;
+ goto out;
}
}
- if (need_username && username)
+ if (need_username)
{
- vinagre_connection_set_username (tab->priv->conn, username);
- vnc_display_set_credential (vnc, VNC_DISPLAY_CREDENTIAL_USERNAME, username);
+ if (username)
+ {
+ vinagre_connection_set_username (tab->priv->conn, username);
+ vnc_display_set_credential (vnc, VNC_DISPLAY_CREDENTIAL_USERNAME, username);
+ }
+ else
+ {
+ vinagre_notebook_remove_tab (tab->priv->nb, tab);
+ vinagre_utils_show_error (_("Authentication error"),
+ _("A username is required in order to access this machine."),
+ GTK_WINDOW (tab->priv->window));
+ goto out;
+ }
}
- if (need_password && password)
+ if (need_password)
{
- vinagre_connection_set_password (tab->priv->conn, password);
- vnc_display_set_credential (vnc, VNC_DISPLAY_CREDENTIAL_PASSWORD, password);
+ if (password)
+ {
+ vinagre_connection_set_password (tab->priv->conn, password);
+ vnc_display_set_credential (vnc, VNC_DISPLAY_CREDENTIAL_PASSWORD, password);
+ }
+ else
+ {
+ vinagre_notebook_remove_tab (tab->priv->nb, tab);
+ vinagre_utils_show_error (_("Authentication error"),
+ _("A password is required in order to access this machine."),
+ GTK_WINDOW (tab->priv->window));
+ goto out;
+ }
}
+out:
g_free (username);
g_free (password);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]