summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen McGinnes <ben@adversary.org>2015-05-18 21:32:27 +1000
committerBen McGinnes <ben@adversary.org>2015-05-18 21:32:27 +1000
commit0267c1514711908269df50d3dddda78a82b20de7 (patch)
treea7b53bbc9ae755e525904cdc972e4670d145e20d
parent90405ac84b78ba7e5458ea09986749594a01195a (diff)
downloadgpgme-pyme.tar.gz
PEP8 compliance editspyme
* Fixed delkey.py, encrypt-to-all.py, exportimport.py and inter-edit.py for PEP8 compliance. * Removed PyGtkGpgKeys.* and pygpa.* due to massive number of errors in conversion process, PEP8 compliance and reliance on a gtk module that is not present in PyPI, with no indication as to its origin or source.
-rw-r--r--lang/py3-pyme/examples/PyGtkGpgKeys.glade1394
-rw-r--r--lang/py3-pyme/examples/PyGtkGpgKeys.gladep8
-rwxr-xr-xlang/py3-pyme/examples/PyGtkGpgKeys.py663
-rwxr-xr-xlang/py3-pyme/examples/delkey.py18
-rwxr-xr-xlang/py3-pyme/examples/encrypt-to-all.py19
-rwxr-xr-xlang/py3-pyme/examples/exportimport.py25
-rw-r--r--lang/py3-pyme/examples/inter-edit.py11
-rw-r--r--lang/py3-pyme/examples/pygpa.glade5546
-rwxr-xr-xlang/py3-pyme/examples/pygpa.py1457
9 files changed, 39 insertions, 9102 deletions
diff --git a/lang/py3-pyme/examples/PyGtkGpgKeys.glade b/lang/py3-pyme/examples/PyGtkGpgKeys.glade
deleted file mode 100644
index 51338b1a..00000000
--- a/lang/py3-pyme/examples/PyGtkGpgKeys.glade
+++ /dev/null
@@ -1,1394 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="GPGAdminWindow">
- <property name="visible">True</property>
- <property name="title" translatable="yes">GPG Keyring</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="default_width">800</property>
- <property name="default_height">400</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <signal name="destroy" handler="on_Exit" last_modification_time="Sat, 19 Mar 2005 23:29:05 GMT"/>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHandleBox" id="handlebox1">
- <property name="visible">True</property>
- <property name="shadow_type">GTK_SHADOW_OUT</property>
- <property name="handle_position">GTK_POS_LEFT</property>
- <property name="snap_edge">GTK_POS_TOP</property>
-
- <child>
- <widget class="GtkMenuBar" id="menubar1">
- <property name="visible">True</property>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_File</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem1_menu">
-
- <child>
- <widget class="GtkMenuItem" id="reload_keys">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Reload all keys from the keyring</property>
- <property name="label" translatable="yes">_Reload</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_reload_activate" last_modification_time="Sat, 26 Mar 2005 17:12:46 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="quit">
- <property name="visible">True</property>
- <property name="label">gtk-quit</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_Exit" last_modification_time="Sat, 19 Mar 2005 23:29:26 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Key Admin</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem2_menu">
-
- <child>
- <widget class="GtkMenuItem" id="generate">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Generate new key</property>
- <property name="label" translatable="yes">_Generate</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_generate_activate" last_modification_time="Wed, 23 Mar 2005 00:37:52 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="delete">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Delete selected keys (including secret ones)</property>
- <property name="label" translatable="yes">_Delete</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_delete_activate" last_modification_time="Wed, 23 Mar 2005 02:43:23 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="import_keys">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Import keys from a file</property>
- <property name="label" translatable="yes">_Import</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_import_keys_activate" last_modification_time="Thu, 24 Mar 2005 13:13:28 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="export_keys">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Export selected keys into a binary file</property>
- <property name="label" translatable="yes">_Export (binary)</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_export_keys_activate" last_modification_time="Thu, 24 Mar 2005 13:13:28 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="export_keys_text">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Export selected keys into an ASCII file</property>
- <property name="label" translatable="yes">Export (_text)</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_export_keys_text_activate" last_modification_time="Thu, 24 Mar 2005 21:13:18 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="trust">
- <property name="visible">True</property>
- <property name="label" translatable="yes">T_rust</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="trust_menu">
-
- <child>
- <widget class="GtkMenuItem" id="undefined_trust">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Unknown key</property>
- <property name="label" translatable="yes">_Undefined</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_undefined_trust_activate" last_modification_time="Fri, 25 Mar 2005 01:22:28 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="never_trust">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Do NOT trust anything this key does</property>
- <property name="label" translatable="yes">_Never</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_never_trust_activate" last_modification_time="Fri, 25 Mar 2005 01:22:28 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="marginal_trust">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Trust this key but unsure about keys it signed</property>
- <property name="label" translatable="yes">_Marginal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_marginal_trust_activate" last_modification_time="Fri, 25 Mar 2005 01:22:28 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="full_trust">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Trust this key and keys it signed</property>
- <property name="label" translatable="yes">_Full</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_full_trust_activate" last_modification_time="Fri, 25 Mar 2005 01:22:28 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="ultimate_trust">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">This is my own another key</property>
- <property name="label" translatable="yes">U_ltimate</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ultimate_trust_activate" last_modification_time="Fri, 25 Mar 2005 01:22:28 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator1">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="edit">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Unimplemented Item</property>
- <property name="label" translatable="yes">_Edit</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_edit_activate" last_modification_time="Wed, 23 Mar 2005 01:22:52 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="view_menu">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_View</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem4_menu">
-
- <child>
- <widget class="GtkImageMenuItem" id="about">
- <property name="visible">True</property>
- <property name="label">gtk-about</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_about_activate" last_modification_time="Thu, 24 Mar 2005 00:41:12 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="GPGKeysView">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">False</property>
- <signal name="button_press_event" handler="on_GPGKeysView_button_press_event" last_modification_time="Sat, 26 Mar 2005 18:23:12 GMT"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkStatusbar" id="statusbar1">
- <property name="visible">True</property>
- <property name="has_resize_grip">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="PasswordDialog">
- <property name="title" translatable="yes">GPG Password</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">True</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="pwd_prompt">
- <property name="visible">True</property>
- <property name="label" translatable="yes">password:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="password">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="GenerateDialog">
- <property name="title" translatable="yes">New Key Properties</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area2">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkTable" id="table1">
- <property name="visible">True</property>
- <property name="n_rows">12</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">0</property>
- <property name="column_spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Key-Length: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Key-Type: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Key-Usage: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Subkey-Type: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Subkey-Length: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Subkey-Usage: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Name-Real: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Name-Comment: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Name-Email: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Expire-Date: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">9</property>
- <property name="bottom_attach">10</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="key_type">
- <property name="visible">True</property>
- <property name="items" translatable="yes">DSA
-RSA</property>
- <signal name="changed" handler="on_key_type_changed" last_modification_time="Wed, 23 Mar 2005 19:02:31 GMT"/>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="key_length">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1024 1024 4096 1 1024 10</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="key_encrypt">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">encrypt</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="key_sign">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">sign</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="subkey_type">
- <property name="visible">True</property>
- <property name="items" translatable="yes">
-DSA
-ELG-E
-RSA</property>
- <signal name="changed" handler="on_subkey_type_changed" last_modification_time="Wed, 23 Mar 2005 19:03:04 GMT"/>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="subkey_length">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1024 1024 4096 1 1024 10</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="subkey_encrypt">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">encrypt</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="subkey_sign">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">sign</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="name_real">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="name_comment">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">7</property>
- <property name="bottom_attach">8</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="name_email">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">8</property>
- <property name="bottom_attach">9</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label12">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Passphrase: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">10</property>
- <property name="bottom_attach">11</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label13">
- <property name="visible">True</property>
- <property name="label" translatable="yes">(repeat): </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">11</property>
- <property name="bottom_attach">12</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="passphrase">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">10</property>
- <property name="bottom_attach">11</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="passphrase_repeat">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">11</property>
- <property name="bottom_attach">12</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkExpander" id="expire_date">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="expanded">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCalendar" id="expire_calendar">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES</property>
- <signal name="day_selected_double_click" handler="on_expire_calendar_day_selected" last_modification_time="Wed, 23 Mar 2005 12:34:39 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label14">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Unlimited</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">9</property>
- <property name="bottom_attach">10</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="GenerateProgress">
- <property name="title" translatable="yes">Generating the key...</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">True</property>
- <property name="default_width">600</property>
- <property name="default_height">400</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area3">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="closebutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- <signal name="clicked" handler="on_generating_close_clicked" last_modification_time="Wed, 23 Mar 2005 23:00:30 GMT"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-info</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTextView" id="progress_entry">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="overwrite">False</property>
- <property name="accepts_tab">True</property>
- <property name="justification">GTK_JUSTIFY_LEFT</property>
- <property name="wrap_mode">GTK_WRAP_CHAR</property>
- <property name="cursor_visible">False</property>
- <property name="pixels_above_lines">0</property>
- <property name="pixels_below_lines">0</property>
- <property name="pixels_inside_wrap">0</property>
- <property name="left_margin">0</property>
- <property name="right_margin">0</property>
- <property name="indent">0</property>
- <property name="text" translatable="yes"></property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="AboutDialog">
- <property name="title" translatable="yes">About PyGtkGpgKeys</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area4">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="okbutton3">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="stock">gtk-about</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox3">
- <property name="border_width">6</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label15">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;PyGtkGpgKeys&lt;/b&gt;
-Graphical example of PyMe abilities.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">10</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label16">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;i&gt;GNU Public License&lt;/i&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">10</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label17">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;small&gt;(C) 2005 Igor Belyi&lt;/small&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">10</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/lang/py3-pyme/examples/PyGtkGpgKeys.gladep b/lang/py3-pyme/examples/PyGtkGpgKeys.gladep
deleted file mode 100644
index 466acc84..00000000
--- a/lang/py3-pyme/examples/PyGtkGpgKeys.gladep
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
- <name>GtkGpgKeys</name>
- <program_name>GtkGpgKeys</program_name>
- <gnome_support>FALSE</gnome_support>
-</glade-project>
diff --git a/lang/py3-pyme/examples/PyGtkGpgKeys.py b/lang/py3-pyme/examples/PyGtkGpgKeys.py
deleted file mode 100755
index 0221b05c..00000000
--- a/lang/py3-pyme/examples/PyGtkGpgKeys.py
+++ /dev/null
@@ -1,663 +0,0 @@
-#!/usr/bin/env python3
-# $Id$
-# Copyright (C) 2005,2008 Igor Belyi <belyi@users.sourceforge.net>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-import gtk, gobject, gtk.glade
-import time, sys, os
-from pyme import callbacks, core, errors
-from pyme.core import Data, Context, pubkey_algo_name
-from pyme import constants
-from pyme.constants import validity
-from pyme.constants.keylist import mode
-
-# Thanks to Bernhard Reiter for pointing out the following:
-# gpgme_check_version() necessary for initialisation according to
-# gpgme 1.1.6 and this is not done automatically in pyme-0.7.0
-print("gpgme version:", core.check_version(None))
-
-# Convert trust constant into a string
-trusts = {validity.UNKNOWN: "",
- validity.UNDEFINED: "Undefined",
- validity.NEVER: "Never",
- validity.MARGINAL: "Marginal",
- validity.FULL: "Full",
- validity.ULTIMATE: "Ultimate"}
-
-# Convert seconds into a date
-def sec2str(secs):
- if secs > 0: return time.strftime("%Y-%m-%d", time.gmtime(secs))
- elif secs == 0: return "Unlimited"
- else: return ""
-
-index = 0
-class KeyColumn:
- "Helper class for data columns."
- def __init__(self, name, gtype, vattr=None, tcols=None,
- func=lambda x:x, view=None):
- """new(name, qtype, vattr, column, ocolumn, func):
- name - column title
- qtype - gobject type to use in TreeStore for this column
- vattr - column data is visible if method vattr present in the object
- tcols - list of type specific columns to append its name to.
- func - function converting object data into viewable presentation
- view - to put or not the column in the view menu"""
- global index
- self.name = name
- self.type = gtype
- self.vattr = vattr
- self.func = func
- self.view = view
- self.index = index
- self.attrs = {}
- if tcols != None: tcols.append(name)
- index += 1
-
-# List column names specific to an object type
-key_columns = [] # names only in key
-uid_columns = [] # names only in uids
-sub_columns = [] # names only in subkeys
-sign_columns = [] # names only in signatures
-sub_sign_columns = [] # names in subkeys and signatures
-
-# Explicite columns
-visible_columns = [
- KeyColumn("Secret", gobject.TYPE_BOOLEAN, "subkeys"),
- KeyColumn("Name", gobject.TYPE_STRING, "name", uid_columns,
- lambda x: x.name+(x.comment and " (%s)"%x.comment)),
- KeyColumn("Email", gobject.TYPE_STRING, "email", uid_columns,
- lambda x: x.email),
- KeyColumn("Owner Trust", gobject.TYPE_STRING, "owner_trust", key_columns,
- lambda x: trusts[x.owner_trust], True),
- KeyColumn("Type", gobject.TYPE_STRING, "pubkey_algo", sub_sign_columns,
- lambda x: pubkey_algo_name(x.pubkey_algo)),
- KeyColumn("Length", gobject.TYPE_INT, "length", sub_columns,
- lambda x: x.length),
- KeyColumn("Can Auth", gobject.TYPE_BOOLEAN,"can_authenticate", sub_columns,
- lambda x: x.can_authenticate, False),
- KeyColumn("Can Cert", gobject.TYPE_BOOLEAN, "can_certify", sub_columns,
- lambda x: x.can_certify, False),
- KeyColumn("Can Encr", gobject.TYPE_BOOLEAN, "can_encrypt", sub_columns,
- lambda x: x.can_encrypt, False),
- KeyColumn("Can Sign", gobject.TYPE_BOOLEAN, "can_sign", sub_columns,
- lambda x: x.can_sign, False),
- KeyColumn("Created", gobject.TYPE_STRING, "timestamp", sub_sign_columns,
- lambda x: sec2str(x.timestamp), True),
- KeyColumn("Expires", gobject.TYPE_STRING, "expires", sub_sign_columns,
- lambda x: sec2str(x.expires), True),
- KeyColumn("Id", gobject.TYPE_STRING, "keyid", sub_sign_columns,
- lambda x: x.keyid)
- ]
-
-helper_columns = [
- KeyColumn("Name Invalid", gobject.TYPE_BOOLEAN, None, uid_columns,
- lambda x: x.revoked or x.invalid),
- KeyColumn("Subkey Invalid", gobject.TYPE_BOOLEAN, None, sub_sign_columns,
- lambda x: x.revoked or x.invalid or x.expired),
- KeyColumn("FPR", gobject.TYPE_STRING, None, sub_columns,
- lambda x: x.fpr)
- ]
-
-# Calculate implicite columns - defining visibility of the data in a column.
-# In the same loop calculate tuple for rows having only name in them.
-name_only = ()
-for item in visible_columns:
- vis_item = KeyColumn("Show"+item.name, gobject.TYPE_BOOLEAN)
- helper_columns.append(vis_item)
- item.attrs["visible"] = vis_item.index
- name_only += (vis_item.index, item.name == "Name")
-
-columns = {}
-for item in visible_columns + helper_columns:
- columns[item.name] = item
-
-# Use strikethrough to indicate revoked or invalid keys and uids
-columns["Name"].attrs["strikethrough"] = columns["Name Invalid"].index
-columns["Id"].attrs["strikethrough"] = columns["Subkey Invalid"].index
-
-def pair(name, value):
- "pair(name, value) creates (index, func(value)) tuple based on column name"
- item = columns[name]
- if item.index < len(visible_columns):
- return (item.index, item.func(value), columns["Show"+name].index, True)
- else:
- return (item.index, item.func(value))
-
-class PyGtkGpgKeys:
- "Main class representing PyGtkGpgKeys application"
- def error_message(self, text, parent=None):
- dialog = gtk.MessageDialog(parent or self.mainwin,
- gtk.DIALOG_MODAL |
- gtk.DIALOG_DESTROY_WITH_PARENT,
- gtk.MESSAGE_ERROR,
- gtk.BUTTONS_OK,
- text)
- dialog.run()
- dialog.destroy()
-
- def yesno_message(self, text, parent=None):
- dialog = gtk.MessageDialog(parent or self.mainwin,
- gtk.DIALOG_MODAL |
- gtk.DIALOG_DESTROY_WITH_PARENT,
- gtk.MESSAGE_QUESTION,
- gtk.BUTTONS_YES_NO,
- text)
- result = dialog.run() == gtk.RESPONSE_YES
- dialog.destroy()
- return result
-
- def load_keys(self, first_time=False):
- if not first_time: self.model.clear()
- secret_keys = {}
- for key in self.context.op_keylist_all(None, 1):
- secret_keys[key.subkeys[0].fpr] = 1
- for key in self.context.op_keylist_all(None, 0):
- self.add_key(key, key.subkeys[0].fpr in secret_keys)
-
- def add_key(self, key, secret):
- "self.add_key(key) - add key to the TreeStore model"
- iter = self.model.append(None)
- # Can delete only the whole key
- param = (iter,) + pair("Secret", secret)
- # Key information is a combination of the key and first uid and subkey
- for col in key_columns: param += pair(col, key)
- for col in uid_columns: param += pair(col, key.uids[0])
- for col in sub_columns: param += pair(col, key.subkeys[0])
- for col in sub_sign_columns: param += pair(col, key.subkeys[0])
- self.model.set(*param)
- if key.uids:
- self.add_signatures(key.uids[0].signatures, iter)
- self.add_uids(key.uids[1:], iter)
- self.add_subkeys(key.subkeys[1:], iter)
-
- def add_subkeys(self, subkeys, iter):
- "self.add_subkeys(subkey, iter) - add subkey as child to key's iter"
- if not subkeys:
- return
- key_iter = self.model.append(iter)
- self.model.set(key_iter, columns["Name"].index, "Subkeys", *name_only)
- for subkey in subkeys:
- child_iter = self.model.append(key_iter)
- param = (child_iter,)
- for col in sub_columns: param += pair(col, subkey)
- for col in sub_sign_columns: param += pair(col, subkey)
- self.model.set(*param)
-
- def add_uids(self, uids, iter):
- "self.add_uids(uid, iter) - add uid as a child to key's iter"
- if not uids:
- return
- uid_iter = self.model.append(iter)
- self.model.set(uid_iter,columns["Name"].index,"Other UIDs",*name_only)
- for uid in uids:
- child_iter = self.model.append(uid_iter)
- param = (child_iter,)
- for col in uid_columns: param += pair(col, uid)
- self.model.set(*param)
- self.add_signatures(uid.signatures, child_iter)
-
- def add_signatures(self, signs, iter):
- "self.add_signatures(sign, iter) - add signature as a child to iter"
- if not signs:
- return
- sign_iter = self.model.append(iter)
- self.model.set(sign_iter,columns["Name"].index,"Signatures",*name_only)
- for sign in signs:
- child_iter = self.model.append(sign_iter)
- param = (child_iter,)
- for col in uid_columns: param += pair(col, sign)
- for col in sign_columns: param += pair(col, sign)
- for col in sub_sign_columns: param += pair(col, sign)
- self.model.set(*param)
-
- def add_columns(self):
- "Add viewable columns for the data in TreeStore model"
- view_menu = gtk.Menu()
- for item in visible_columns:
- if item.type == gobject.TYPE_BOOLEAN:
- renderer = gtk.CellRendererToggle()
- item.attrs["active"] = item.index
- else:
- renderer = gtk.CellRendererText()
- item.attrs["text"] = item.index
- column = self.treeview.insert_column_with_attributes(
- item.index, item.name, renderer, **item.attrs)
- column.set_sort_column_id(item.index)
- # Create callback for a View menu item
- if item.view != None:
- check = gtk.CheckMenuItem(item.name)
- check.set_active(item.view)
- check.connect("activate",
- lambda x, y: y.set_visible(x.get_active()),
- column)
- view_menu.append(check)
- column.set_visible(check.get_active())
-
- view_menu.show_all()
- self.wtree.get_widget("view_menu").set_submenu(view_menu)
-
- def on_GPGKeysView_button_press_event(self, obj, event):
- if event.button != 3:
- return False
-
- menu = gtk.Menu()
- for title, callback in [
- ("Reload", self.on_reload_activate),
- (None, None),
- ("Delete", self.on_delete_activate),
- ("Export (txt)", self.on_export_keys_text_activate),
- ("Export (bin)", self.on_export_keys_activate)
- ]:
- if title:
- item = gtk.MenuItem(title)
- item.connect("activate", callback)
- else:
- item = gtk.SeparatorMenuItem()
- menu.append(item)
- menu.show_all()
-
- menu.popup(None, None, None, event.button, event.time)
- return True
-
- def editor_func(self, status, args, val_dict):
- state = val_dict["state"]
- prompt = "%s %s" % (state, args)
- if prompt in val_dict:
- val_dict["state"] = val_dict[prompt][0]
- return val_dict[prompt][1]
- elif args:
- sys.stderr.write("Unexpected prompt in editor_func: %s\n" % prompt)
- raise EOFError()
- return ""
-
- def change_key_trust(self, key, new_trust):
- val_dict = {
- "state": "start",
- "start keyedit.prompt": ("trust", "trust"),
- "trust edit_ownertrust.value": ("prompt", "%d" % new_trust),
- "prompt edit_ownertrust.set_ultimate.okay": ("prompt", "Y"),
- "prompt keyedit.prompt": ("finish", "quit")
- }
- out = Data()
- self.context.op_edit(key, self.editor_func, val_dict, out)
-
- def on_change_trust(self, new_trust):
- selection = self.treeview.get_selection()
- if selection.count_selected_rows() <= 0:
- return
-
- key_list = []
- selection.selected_foreach(self.collect_keys, key_list)
-
- message = "Change trust to %s on the following keys?\n" % \
- trusts[new_trust]
- for key, row in key_list:
- message += "\n%s\t" % key.subkeys[0].keyid
- if key.uids: message += key.uids[0].uid
- else: message += "<undefined>"
- if self.yesno_message(message):
- for key, row in key_list:
- if key.owner_trust != new_trust:
- self.change_key_trust(key, new_trust)
- row[columns["Owner Trust"].index] = trusts[new_trust]
-
- def on_undefined_trust_activate(self, obj):
- self.on_change_trust(1)
-
- def on_never_trust_activate(self, obj):
- self.on_change_trust(2)
-
- def on_marginal_trust_activate(self, obj):
- self.on_change_trust(3)
-
- def on_full_trust_activate(self, obj):
- self.on_change_trust(4)
-
- def on_ultimate_trust_activate(self, obj):
- self.on_change_trust(5)
-
- def collect_keys(self, model, path, iter, key_list):
- row = model[path[:1]]
- keyid = row[columns["FPR"].index]
- key = self.context.get_key(keyid, 0)
- key_list.append((key, row))
-
- def export_keys(self):
- selection = self.treeview.get_selection()
- if selection.count_selected_rows() <= 0:
- return
-
- export_file = None
- dialog = gtk.FileChooserDialog("Export Keys (Public only) into a File",
- self.mainwin,
- gtk.FILE_CHOOSER_ACTION_SAVE,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK))
- while dialog.run() == gtk.RESPONSE_OK:
- filename = dialog.get_filename()
- if os.path.exists(filename):
- if os.path.isdir(filename):
- self.error_message("%s is a directory!" % filename,
- dialog)
- continue
- elif not self.yesno_message("%s exists. Override?" % filename,
- dialog):
- continue
-
- # FIXME. Verify that file can be written to
- export_file = open(filename, "wb")
- break
- dialog.destroy()
- if export_file == None:
- return
-
- key_list = []
- selection.selected_foreach(self.collect_keys, key_list)
- expkeys = Data()
- for key, row in key_list:
- self.context.op_export(key.subkeys[0].fpr, 0, expkeys)
- expkeys.seek(0,0)
- export_file.write(expkeys.read())
- export_file.close()
-
- def on_export_keys_activate(self, obj):
- self.context.set_armor(0)
- self.export_keys()
-
- def on_export_keys_text_activate(self, obj):
- self.context.set_armor(1)
- self.export_keys()
-
- def on_import_keys_activate(self, obj):
- import_file = None
- dialog = gtk.FileChooserDialog("Import Keys from a File",
- self.mainwin,
- gtk.FILE_CHOOSER_ACTION_OPEN,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK))
- while dialog.run() == gtk.RESPONSE_OK:
- filename = dialog.get_filename()
- if os.path.exists(filename):
- if os.path.isdir(filename):
- self.error_message("%s is a directory!" % filename,
- dialog)
- else:
- # FIXME. Verify that file can be open.
- import_file = filename
- break
- else:
- self.error_message("%s does not exist." % filename,
- dialog)
- dialog.destroy()
- if import_file == None:
- return
-
- impkeys = Data(file=import_file)
- status = self.context.op_import(impkeys)
- if status:
- self.error_message("Import return an error message %d" % status)
- result = self.context.op_import_result()
- if result.considered == 0:
- self.error_message("There's no keys in the file.")
- # FIXME. Instead of rereading everything we could find out what's new
- # from the result based on the ORed value of impkey:
- # constants.import.NEW - The key was new.
- # constants.import.UID - The key contained new user IDs.
- # constants.import.SIG - The key contained new signatures.
- # constants.import.SUBKEY - The key contained new sub keys.
- # constants.import.SECRET - The key contained a secret key.
- # It would be nice to highlight new things as well.
- self.load_keys()
- #if result:
- # impkey = result.imports
- # while impkey:
- # if impkey.status & constants.import.NEW:
- # self.add_key(self.context.get_key(impkey.fpr, 0))
- # impkey = impkey.next
-
- def on_delete_activate(self, obj):
- "self.on_delete_activate(obj) - callback for key deletion request"
- selection = self.treeview.get_selection()
- if selection.count_selected_rows() > 0:
- key_list = []
- selection.selected_foreach(self.collect_keys, key_list)
-
- message = "Delete selected keys?\n"
- for key, row in key_list:
- message += "\n%s\t" % key.subkeys[0].keyid
- if key.uids: message += key.uids[0].uid
- else: message += "<undefined>"
- if self.yesno_message(message):
- for key, row in key_list:
- self.context.op_delete(key, 1)
- row.model.remove(row.iter)
-
- def get_widget_values(self, widgets):
- "Create an array of values from widgets' getter methods"
- return [getattr(self.wtree.get_widget(w),"get_"+f)() for w,f in widgets]
-
- def set_widget_values(self, widgets, values):
- "Set values using widgets' setter methods"
- for (w,f), v in zip(widgets, values):
- # ComboBox.set_active_iter(None) does not reset active. Fixing.
- if f == "active_iter" and v == None:
- f, v = "active", -1
- getattr(self.wtree.get_widget(w), "set_"+f)(v)
-
- def key_type_changed(self, which):
- """self.key_type_changed([\"key\"|\"subkey\"]) - helper function to
- adjust allowed key length based on the Algorithm selected"""
- (key_type,) = self.get_widget_values([(which+"_type", "active_iter")])
- if key_type:
- key_type = self.wtree.get_widget(which+"_type").get_model(
- ).get_value(key_type,0)
- length_widget = self.wtree.get_widget(which+"_length")
- if key_type == "DSA":
- length_widget.set_range(1024, 1024)
- length_widget.set_value(1024)
- elif key_type == "RSA" or key_type == "ELG-E":
- length_widget.set_range(1024, 4096)
-
- def on_key_type_changed(self, obj):
- self.key_type_changed("key")
-
- def on_subkey_type_changed(self, obj):
- self.key_type_changed("subkey")
-
- def on_expire_calendar_day_selected(self, obj):
- "Callback for selecting a day on the calendar"
- (year, month, day)=self.wtree.get_widget("expire_calendar").get_date()
- expander = self.wtree.get_widget("expire_date")
- # Past dates means no expiration date
- if time.localtime() < (year, month+1, day):
- expander.set_label("%04d-%02d-%02d" % (year, month+1, day))
- else:
- expander.set_label("Unlimited")
- expander.set_expanded(False)
-
- def on_generate_activate(self, obj):
- "Callback to generate new key"
-
- # Set of (widget, common suffix of getter/setter function) tuples
- # from the GenerateDialog prompt for new key properties.
- widgets = [
- ("key_type", "active_iter"),
- ("key_length", "value"),
- ("key_encrypt", "active"),
- ("key_sign", "active"),
- ("subkey_type", "active_iter"),
- ("subkey_length", "value"),
- ("subkey_encrypt", "active"),
- ("subkey_sign", "active"),
- ("name_real", "text"),
- ("name_comment", "text"),
- ("name_email", "text"),
- ("expire_date", "label"),
- ("passphrase", "text"),
- ("passphrase_repeat", "text")
- ]
-
- saved_values = self.get_widget_values(widgets)
- result = None
- dialog = self.wtree.get_widget("GenerateDialog")
- if dialog.run() == gtk.RESPONSE_OK:
- (key_type, key_length, key_encrypt, key_sign,
- subkey_type, subkey_length, subkey_encrypt, subkey_sign,
- name_real, name_comment, name_email, expire_date,
- passphrase, passphrase2) = self.get_widget_values(widgets)
- if key_type and passphrase == passphrase2:
- key_type = self.wtree.get_widget("key_type").get_model(
- ).get_value(key_type,0)
- result = "<GnupgKeyParms format=\"internal\">\n"
- result += "Key-Type: %s\n" % key_type
- result += "Key-Length: %d\n" % int(key_length)
- if key_encrypt or key_sign:
- result += "Key-Usage:" + \
- ((key_encrypt and " encrypt") or "") + \
- ((key_sign and " sign") or "") + "\n"
- if subkey_type:
- subkey_type=self.wtree.get_widget("subkey_type").get_model(
- ).get_value(subkey_type,0)
- result += "Subkey-Type: %s\n" % subkey_type
- result += "Subkey-Length: %d\n" % int(subkey_length)
- if subkey_encrypt or subkey_sign:
- result += "Subkey-Usage:" + \
- ((subkey_encrypt and " encrypt") or "") + \
- ((subkey_sign and " sign") or "") + "\n"
- if name_real:
- result += "Name-Real: %s\n" % name_real
- if name_comment:
- result += "Name-Comment: %s\n" % name_comment
- if name_email:
- result += "Name-Email: %s\n" % name_email
- if passphrase:
- result += "Passphrase: %s\n" % passphrase
- if expire_date != "Unlimited":
- result += "Expire-Date: %s\n" % expire_date
- else:
- result += "Expire-Date: 0\n"
- result += "</GnupgKeyParms>\n"
- else:
- if not key_type:
- message = "Type of the primary key is not specified."
- elif passphrase != passphrase2:
- message = "Passphrases do not match."
- else:
- message = "Unknown error."
- self.error_message(message, dialog)
- else:
- self.set_widget_values(widgets, saved_values)
-
- dialog.hide()
- if result:
- # Setup and show progress Dialog
- self.progress = ""
- self.progress_entry = self.wtree.get_widget(
- "progress_entry").get_buffer()
- self.progress_entry.set_text("")
- gobject.timeout_add(500, self.update_progress)
- self.wtree.get_widget("GenerateProgress").show_all()
- # Start asynchronous key generation
- self.context.op_genkey_start(result, None, None)
-
- def gen_progress(self, what=None, type=None, current=None,
- total=None, hook=None):
- "Gpg's progress_cb"
- if self.progress != None:
- self.progress += "%c" % type
- else:
- sys.stderr.write("%c" % type)
-
- def update_progress(self):
- "Timeout callback to yeild to gpg and update progress Dialog view"
- status = self.context.wait(False)
- if status == None:
- self.progress_entry.set_text(self.progress)
- return True
- elif status == 0:
- fpr = self.context.op_genkey_result().fpr
- self.add_key(self.context.get_key(fpr, 0), True)
- self.wtree.get_widget("GenerateProgress").hide()
- self.progress = None
-
- if status:
- self.error_message("Got an error during key generation:\n%s" %
- errors.GPGMEError(status).getstring())
-
- # Let callback to be removed.
- return False
-
- def on_generating_close_clicked(self, obj):
- # Request cancelation of the outstanding asynchronous call
- self.context.cancel()
-
- def get_password(self, hint, desc, hook):
- "Gpg's password_cb"
- dialog = self.wtree.get_widget("PasswordDialog")
- label = self.wtree.get_widget("pwd_prompt")
- entry = self.wtree.get_widget("password")
- label.set_text("Please supply %s's password%s:" %
- (hint, (hook and (' '+hook)) or ''))
- if dialog.run() == gtk.RESPONSE_OK:
- result = entry.get_text()
- else:
- result = ""
- entry.set_text("")
- dialog.hide()
- return result
-
- def on_reload_activate(self, obj):
- self.load_keys()
-
- def on_about_activate(self, obj):
- about = self.wtree.get_widget("AboutDialog")
- about.run()
- about.hide()
-
- def __init__(self, path):
- "new(path) path - location of the glade file"
- gladefile = os.path.join(path, "PyGtkGpgKeys.glade")
- self.wtree = gtk.glade.XML(gladefile)
- self.wtree.signal_autoconnect(self)
-
- self.mainwin = self.wtree.get_widget("GPGAdminWindow")
- self.treeview = self.wtree.get_widget("GPGKeysView")
-
- self.model = gtk.TreeStore(*[x.type for x in visible_columns +
- helper_columns])
-
- self.context = Context()
- self.context.set_passphrase_cb(self.get_password, "")
- self.progress = None
- self.context.set_progress_cb(self.gen_progress, None)
- # Use mode.SIGS to include signatures in the list.
- self.context.set_keylist_mode(mode.SIGS)
- self.load_keys(True)
-
- self.treeview.set_model(self.model)
- self.treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
- self.add_columns()
-
- gtk.main()
-
- def on_Exit(self, obj):
- gtk.main_quit()
-
-try:
- # Glade file is expected to be in the same location as this script
- PyGtkGpgKeys(os.path.dirname(sys.argv[0]))
-except IOError as message:
- print("%s:%s" %(sys.argv[0], message))
diff --git a/lang/py3-pyme/examples/delkey.py b/lang/py3-pyme/examples/delkey.py
index dfcc5ea4..600e0c07 100755
--- a/lang/py3-pyme/examples/delkey.py
+++ b/lang/py3-pyme/examples/delkey.py
@@ -2,10 +2,10 @@
# $Id$
# Copyright (C) 2004,2008 Igor Belyi <belyi@users.sourceforge.net>
#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,7 +14,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA
# Sample of key deletion
# It deletes keys for joe@example.org generated by genkey.pl script
@@ -23,9 +24,10 @@ from pyme import core
core.check_version(None)
-# Note that we need to collect all keys out of the iterator return by c.op_keylist_all()
-# method before starting to delete them. If you delete a key in the middle of iteration
-# c.op_keylist_next() will raise INV_VALUE exception
+# Note that we need to collect all keys out of the iterator return by
+# c.op_keylist_all() method before starting to delete them. If you
+# delete a key in the middle of iteration c.op_keylist_next() will
+# raise INV_VALUE exception
c = core.Context()
# 0 in keylist means to list not only public but secret keys as well.
diff --git a/lang/py3-pyme/examples/encrypt-to-all.py b/lang/py3-pyme/examples/encrypt-to-all.py
index 8f9d2500..672e6614 100755
--- a/lang/py3-pyme/examples/encrypt-to-all.py
+++ b/lang/py3-pyme/examples/encrypt-to-all.py
@@ -3,10 +3,10 @@
# Copyright (C) 2008 Igor Belyi <belyi@users.sourceforge.net>
# Copyright (C) 2002 John Goerzen <jgoerzen@complete.org>
#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,7 +15,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA
"""
This program will try to encrypt a simple message to each key on your
@@ -46,15 +47,15 @@ for key in c.op_keylist_all(None, 0):
valid = 0
for subkey in key.subkeys:
keyid = subkey.keyid
- if keyid == None:
+ if keyid is None:
break
can_encrypt = subkey.can_encrypt
valid += can_encrypt
- print(" Subkey %s: encryption %s" % \
+ print(" Subkey %s: encryption %s" %
(keyid, can_encrypt and "enabled" or "disabled"))
except UnicodeEncodeError as e:
print(e)
-
+
if valid:
names.append(key)
else:
@@ -64,5 +65,3 @@ passno = 0
print("Encrypting to %d recipients" % len(names))
print(sendto(names))
-
-
diff --git a/lang/py3-pyme/examples/exportimport.py b/lang/py3-pyme/examples/exportimport.py
index 54204fb7..6c7d5b8f 100755
--- a/lang/py3-pyme/examples/exportimport.py
+++ b/lang/py3-pyme/examples/exportimport.py
@@ -2,10 +2,10 @@
# $Id$
# Copyright (C) 2004,2008 Igor Belyi <belyi@users.sourceforge.net>
#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,7 +14,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA
# Sample of export and import of keys
# It uses keys for joe@example.org generated by genkey.pl script
@@ -33,7 +34,7 @@ print(" - Export %s's public keys - " % user)
c.op_export(user, 0, expkey)
# print out exported data to see how it looks in armor.
-expkey.seek(0,0)
+expkey.seek(0, 0)
expstring = expkey.read()
if expstring:
print(expstring)
@@ -46,10 +47,10 @@ else:
# Note that since joe's key has private part as well we can only delete
# both of them. As a side effect joe won't have private key for this
# exported public one. If it's Ok with you uncomment the next 4 lines.
-#print " - Delete %s's public keys - " % user
-#for thekey in [x for x in c.op_keylist_all(user, 0)]:
-# if not thekey.secret:
-# c.op_delete(thekey, 1)
+# print " - Delete %s's public keys - " % user
+# for thekey in [x for x in c.op_keylist_all(user, 0)]:
+# if not thekey.secret:
+# c.op_delete(thekey, 1)
# initialize import data from a string as if it was read from a file.
@@ -63,11 +64,11 @@ result = c.op_import_result()
if result:
print(" - Result of the import - ")
for k in dir(result):
- if not k in result.__dict__ and not k.startswith("_"):
+ if k not in result.__dict__ and not k.startswith("_"):
if k == "imports":
print(k, ":")
for impkey in result.__getattr__(k):
- print(" fpr=%s result=%d status=%x" % \
+ print(" fpr=%s result=%d status=%x" %
(impkey.fpr, impkey.result, impkey.status))
else:
print(k, ":", result.__getattr__(k))
diff --git a/lang/py3-pyme/examples/inter-edit.py b/lang/py3-pyme/examples/inter-edit.py
index f97232b7..32f8edd9 100644
--- a/lang/py3-pyme/examples/inter-edit.py
+++ b/lang/py3-pyme/examples/inter-edit.py
@@ -14,9 +14,11 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA
-import os, sys
+import os
+import sys
from pyme import core
from pyme.core import Data, Context
from pyme.constants import status
@@ -29,12 +31,13 @@ for name in dir(status):
if not name.startswith('__') and name != "util":
stat2str[getattr(status, name)] = name
+
# Print the output received since the last prompt before giving the new prompt
def edit_fnc(stat, args, helper):
global stat_strings
try:
while True:
- helper["data"].seek(helper["skip"],0)
+ helper["data"].seek(helper["skip"], 0)
data = helper["data"].read()
helper["skip"] += len(data)
print(data)
@@ -53,5 +56,5 @@ else:
helper = {"skip": 0, "data": out}
c.op_edit(key, edit_fnc, helper, out)
print("[-- Final output --]")
- out.seek(helper["skip"],0)
+ out.seek(helper["skip"], 0)
print(out.read())
diff --git a/lang/py3-pyme/examples/pygpa.glade b/lang/py3-pyme/examples/pygpa.glade
deleted file mode 100644
index fec8898b..00000000
--- a/lang/py3-pyme/examples/pygpa.glade
+++ /dev/null
@@ -1,5546 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="main_window">
- <property name="visible">True</property>
- <property name="title" translatable="yes">PyGpa Keyring Editor</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="default_width">450</property>
- <property name="default_height">500</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <signal name="delete_event" handler="on_keyring_editor_close_activate" last_modification_time="Fri, 08 Apr 2005 00:34:33 GMT"/>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHandleBox" id="handlebox1">
- <property name="visible">True</property>
- <property name="shadow_type">GTK_SHADOW_OUT</property>
- <property name="handle_position">GTK_POS_LEFT</property>
- <property name="snap_edge">GTK_POS_TOP</property>
-
- <child>
- <widget class="GtkMenuBar" id="menubar1">
- <property name="visible">True</property>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_File</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem1_menu">
-
- <child>
- <widget class="GtkImageMenuItem" id="close">
- <property name="visible">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_keyring_editor_close_activate" last_modification_time="Thu, 07 Apr 2005 23:56:48 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="quit">
- <property name="visible">True</property>
- <property name="label">gtk-quit</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_quit_activate" last_modification_time="Mon, 28 Mar 2005 21:27:43 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Edit</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem2_menu">
-
- <child>
- <widget class="GtkImageMenuItem" id="copy">
- <property name="visible">True</property>
- <property name="label">gtk-copy</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_copy_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="paste">
- <property name="visible">True</property>
- <property name="label">gtk-paste</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_paste_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator1">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="select_all">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Select _All</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_select_all_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- <accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator2">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="preferences">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Preferences...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_preferences_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
-
- <child internal-child="image">
- <widget class="GtkImage" id="image33">
- <property name="visible">True</property>
- <property name="stock">gtk-preferences</property>
- <property name="icon_size">1</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Keys</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem3_menu">
-
- <child>
- <widget class="GtkImageMenuItem" id="new">
- <property name="visible">True</property>
- <property name="label" translatable="yes">New Key...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_new_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- <accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
-
- <child internal-child="image">
- <widget class="GtkImage" id="image34">
- <property name="visible">True</property>
- <property name="stock">gtk-new</property>
- <property name="icon_size">1</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="delete">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Delete Keys...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_delete_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
-
- <child internal-child="image">
- <widget class="GtkImage" id="image35">
- <property name="visible">True</property>
- <property name="stock">gtk-delete</property>
- <property name="icon_size">1</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator3">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="sign_keys">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Sign keys...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_sign_keys_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="set_owner_trust">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Set _Owner Trust...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_set_owner_trust_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="edit_private_key">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Edit Private Key...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_edit_private_key_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator4">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="import_keys">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Import Keys...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_import_keys_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="export_keys">
- <property name="visible">True</property>
- <property name="label" translatable="yes">E_xport Keys...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_export_keys_activate" last_modification_time="Tue, 29 Mar 2005 05:05:49 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="windows1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Windows</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="windows1_menu">
-
- <child>
- <widget class="GtkMenuItem" id="filemanager2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Filemanager</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_filemanager_activate" last_modification_time="Thu, 07 Apr 2005 19:58:44 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="keyring_editor2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Keyring Editor</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_keyring_editor_activate" last_modification_time="Thu, 07 Apr 2005 19:58:44 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="help">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="help_menu">
-
- <child>
- <widget class="GtkMenuItem" id="about">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_About</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_about_activate" last_modification_time="Wed, 30 Mar 2005 18:54:32 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVPaned" id="vpaned1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="position">250</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="keys_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <signal name="cursor_changed" handler="on_keys_changed" last_modification_time="Sat, 02 Apr 2005 04:51:49 GMT"/>
- <signal name="button_press_event" handler="on_keys_button_press" last_modification_time="Thu, 14 Apr 2005 05:36:11 GMT"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="shrink">True</property>
- <property name="resize">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkNotebook" id="notebook1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkViewport" id="details_view">
- <property name="visible">True</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Details</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="uid_list_box">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show signatures on user name:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="uid_list">
- <property name="visible">True</property>
- <signal name="changed" handler="on_uid_list_changed" last_modification_time="Thu, 07 Apr 2005 03:08:52 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="sign_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Signatures</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="subkeys_notebook_tab">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="subkeys_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Subkeys</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="shrink">True</property>
- <property name="resize">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox3">
- <property name="border_width">2</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">10</property>
-
- <child>
- <widget class="GtkLabel" id="label35">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Selected Default Key:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="status_uid">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="status_keyid">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="generate_dialog">
- <property name="title" translatable="yes">Generate key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="okbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cancelbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox3">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkTable" id="table1">
- <property name="visible">True</property>
- <property name="n_rows">7</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">0</property>
- <property name="column_spacing">4</property>
-
- <child>
- <widget class="GtkEntry" id="new_userid_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="new_email_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="new_comment_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="new_passphrase_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="new_repeat_passphrase_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Algorithm: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label13">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Key size (bits): </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label14">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_User ID: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">new_userid_entry</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label15">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Email: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">new_email_entry</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label16">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Comment: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">new_comment_entry</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label17">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Passphrase: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">new_passphrase_entry</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label18">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Repeat passphrase: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">new_repeat_passphrase_entry</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBoxEntry" id="new_algorithm_combo">
- <property name="visible">True</property>
- <property name="items" translatable="yes">DSA and ElGamal (default)
-DSA (sign only)
-RSA (sign only)</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBoxEntry" id="new_key_size_combo">
- <property name="visible">True</property>
- <property name="items" translatable="yes">768
-1024
-2048</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame1">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">5</property>
-
- <child>
- <widget class="GtkRadioButton" id="new_expire_valid_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_indefinitely valid</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkRadioButton" id="new_expire_after_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">expire _after</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">new_expire_valid_rb</property>
- <signal name="toggled" handler="on_new_expire_after_rb_toggled" last_modification_time="Wed, 06 Apr 2005 04:32:22 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="new_expire_count_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- <property name="width_chars">4</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBoxEntry" id="new_expire_unit_combo">
- <property name="visible">True</property>
- <property name="items" translatable="yes"></property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="new_expire_on_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">expire o_n:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">new_expire_valid_rb</property>
- <signal name="toggled" handler="on_new_expire_on_rb_toggled" last_modification_time="Wed, 06 Apr 2005 04:29:44 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCalendar" id="new_expire_calendar">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label12">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Expiration</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="about_dialog">
- <property name="title" translatable="yes">What it's all about</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area2">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="okbutton2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox5">
- <property name="border_width">10</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label19">
- <property name="visible">True</property>
- <property name="label" translatable="yes">
-&lt;big&gt;&lt;b&gt;PyGpa&lt;/b&gt;&lt;/big&gt;
-(symbiosis of PyMe, PyGtk &amp;amp; Glade)</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label20">
- <property name="visible">True</property>
- <property name="label" translatable="yes">
-It looks like GPA.
-It works like GPA.
-But it is not GPA.
-</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label22">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;i&gt;GNU Public License&lt;/i&gt;
-</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label21">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;small&gt;(C) 2005 Igor Belyi&lt;/small&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="ownertrust_dialog">
- <property name="border_width">5</property>
- <property name="title" translatable="yes">Change key ownertrust</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area3">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton3">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="ownertrust_key">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkVBox" id="vbox7">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkRadioButton" id="ownertrust_Unknown">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Unknown</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label30">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You don't know how much to trust this user to verify other people's keys.
-</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">20</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="ownertrust_Never">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Never</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">ownertrust_Unknown</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label31">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You don't trust this user at all to verify the validity of other people's keys at all.
-</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">20</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="ownertrust_Marginal">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Marginal</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">ownertrust_Unknown</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label32">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You don't trust this user's ability to verify the validity of other people's keys enough to consider keys valid based on his/her sole word.
-However, provided this user's key is valid, you will consider a key signed by this user valid if it is also signed by at least other two marginally trusted users with valid keys
-</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">20</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="ownertrust_Full">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Full</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">ownertrust_Unknown</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label33">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You trust this user's ability to verify the validity of other people's keys so much, that you'll consider valid any key signed by him/her, provided this user's key is valid.
-</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">20</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="ownertrust_Ultimate">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">U_ltimate</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">ownertrust_Unknown</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label34">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You consider this key valid, and trust the user so much that you will consider any key signed by him/her fully valid.
-
-(Warning: This is intended to be used for keys you own. Don't use it with other people's keys unless you really know what you are doing)
-</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">20</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label23">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Owner Trust</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="preferences_dialog">
- <property name="title" translatable="yes">Settings</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="default_width">350</property>
- <property name="default_height">350</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox4">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area4">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="closebutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-7</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox8">
- <property name="border_width">4</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkFrame" id="frame3">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="border_width">4</property>
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow6">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="def_keys_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <signal name="cursor_changed" handler="on_default_keys_changed" last_modification_time="Fri, 01 Apr 2005 03:43:17 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label38">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Default _key:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame4">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment3">
- <property name="border_width">4</property>
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkComboBoxEntry" id="default_keyserver_combox">
- <property name="visible">True</property>
- <property name="items" translatable="yes">ldap://pgp.surnet.nl:11370
-ldap://keyserver.pgp.com
-hkp://keyserver.kjsl.com</property>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label39">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Default key_server: </property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame5">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment4">
- <property name="border_width">4</property>
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox4">
- <property name="visible">True</property>
- <property name="homogeneous">True</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkRadioButton" id="advanced_mode_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Yes</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="on_advanced_mode_toggled" last_modification_time="Fri, 01 Apr 2005 03:44:56 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="no_advanced_mode_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_No</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">advanced_mode_rb</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label40">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Use _advanced mode:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="progress_dialog">
- <property name="title" translatable="yes">PyGpa</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox7">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area7">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="progress_cancel">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- <signal name="clicked" handler="on_progress_cancel_clicked" last_modification_time="Fri, 15 Apr 2005 21:12:20 GMT"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox11">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="progress_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkProgressBar" id="new_progressbar">
- <property name="visible">True</property>
- <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
- <property name="fraction">0</property>
- <property name="pulse_step">0.10000000149</property>
- <property name="text" translatable="yes"></property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="generate_userid_dialog">
- <property name="title" translatable="yes">Generate key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox8">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area8">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-forward</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">2</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button3">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox5">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image10">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-question</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox12">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label64">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Please insert your full name.
-
-Your name will be part of the new key to make it easier for others to identify keys.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox6">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label50">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Your Name:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="generate_novice_userid_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="generate_email_dialog">
- <property name="title" translatable="yes">Generate key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox9">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area9">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button4">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-back</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">1</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button5">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-forward</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">2</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button6">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox7">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image11">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-question</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox13">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label51">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Please insert your email address.
-
- Your email address will be part of the new key to make it easier for others to identify keys. If you have several email addresses, you can add further email adresses later.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox8">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label53">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Your Email Address:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="generate_novice_email_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="generate_comment_dialog">
- <property name="title" translatable="yes">Generate key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox10">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area10">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button7">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-back</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">1</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button8">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-forward</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">2</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button9">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox9">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image12">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-question</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox14">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label54">
- <property name="visible">True</property>
- <property name="label" translatable="yes">If you want you can supply a comment that further identifies the key to other users. The comment is especially useful if you generate several keys for the same email address. The comment is completely optional. Leave it empty if you don't have a use for it.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox10">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label55">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Comment:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="generate_novice_comment_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="generate_passphrase_dialog">
- <property name="title" translatable="yes">Generate key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox11">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area11">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button10">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-back</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">1</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button11">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-forward</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">2</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button12">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox11">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image13">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-question</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox15">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label56">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Please choose a passphrase for the new key.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkTable" id="table2">
- <property name="visible">True</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">0</property>
- <property name="column_spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label57">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Passphrase: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label58">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Repeat Passphrase: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="generate_novice_passphrase_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="generate_novice_repeat_passphrase_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="generate_backup_dialog">
- <property name="title" translatable="yes">Generate key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox12">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area12">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button13">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-go-back</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">1</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button14">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-apply</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-10</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button15">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox12">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image14">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-question</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox16">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label59">
- <property name="visible">True</property>
- <property name="label" translatable="yes">It is recommended that you create a backup copy of your new key, once it has been generated.
-
-Do you want to create a backup copy?</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox17">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkRadioButton" id="generate_novice_backup_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Create _backup copy</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="generate_nivice_nobackup_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Do it later</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">generate_novice_backup_rb</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="error_dialog">
- <property name="title" translatable="yes">Warning</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox16">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area16">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="okbutton6">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox16">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkImage" id="image18">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-error</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="error_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="yesno_dialog">
- <property name="title" translatable="yes">Warning</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox17">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area17">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton5">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-no</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-9</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton7">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-yes</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-8</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox17">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkImage" id="image19">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-warning</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="yesno_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="delete_key_dialog">
- <property name="title" translatable="yes">Remove Key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox18">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area18">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton6">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-no</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-9</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton8">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-yes</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-8</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox18">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label41">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You have selected the following key for removal:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="delete_key_keyinfo">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="delete_key_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label43">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Are you sure you want to delete this key?</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkFileChooserDialog" id="export_file_dialog">
- <property name="action">GTK_FILE_CHOOSER_ACTION_SAVE</property>
- <property name="local_only">True</property>
- <property name="select_multiple">False</property>
- <property name="show_hidden">False</property>
- <property name="title" translatable="yes">Export public keys to file</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox19">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">24</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area19">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button16">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button17">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-open</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="export_armor_cb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_armor</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkFileChooserDialog" id="import_file_dialog">
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="select_multiple">False</property>
- <property name="show_hidden">False</property>
- <property name="title" translatable="yes">Import public keys from file</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox20">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">24</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area20">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button18">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button19">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-open</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="sign_key_dialog">
- <property name="title" translatable="yes">Sign Key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox21">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area21">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton7">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-no</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-9</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton9">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-yes</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-8</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox19">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="label67">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Do you want to sign the following key?</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="sign_key_keyinfo">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label68">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Check the name and fingerprint carefully to be sure that it really is the key you want to sign.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="sign_manyuids_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes">All user names in this key will be signed.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label69">
- <property name="visible">True</property>
- <property name="label" translatable="yes">The key will be signed with your default private key.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="sign_locally_cb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Sign only _locally</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="password_prompt_dialog">
- <property name="title" translatable="yes">Enter Passphrase</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox22">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area22">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton8">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton10">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox19">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkImage" id="image20">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-question</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox20">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkLabel" id="password_prompt_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="password_prompt_keyinfo">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="password_prompt_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="password_change_dialog">
- <property name="title" translatable="yes">Choose new passphrase</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox23">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area23">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton9">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton11">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkTable" id="table3">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">0</property>
- <property name="column_spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label72">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Passphrase: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label73">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Repeat Passphrase: </property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="password_change_passphrase">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="password_change_repeat_passphrase">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">False</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="edit_key_dialog">
- <property name="title" translatable="yes">Edit Key</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox24">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area24">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="closebutton2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-7</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox21">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkHBox" id="edit_key_keyinfo">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="edit_key_change_passphrase">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Change _passphrase</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame6">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment5">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox21">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">5</property>
-
- <child>
- <widget class="GtkLabel" id="edit_key_date_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkButton" id="edit_key_change_expiration">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Change _expiration</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label74">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Expiry Date</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="change_expiry_dialog">
- <property name="title" translatable="yes">Change expiry date</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox25">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area25">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton10">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton12">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox22">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkRadioButton" id="change_expiry_never_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_never expire</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="change_expiry_expireon_rb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_expire on:</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">change_expiry_never_rb</property>
- <signal name="toggled" handler="on_change_expiry_expireon_rb_toggled" last_modification_time="Wed, 06 Apr 2005 04:35:51 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCalendar" id="change_expiry_calendar">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="info_dialog">
- <property name="title" translatable="yes">Information</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox26">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area26">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="closebutton3">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-7</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox22">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkImage" id="image21">
- <property name="visible">True</property>
- <property name="stock">gtk-dialog-info</property>
- <property name="icon_size">6</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="info_label">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkWindow" id="filemanager_window">
- <property name="title" translatable="yes">PyGPA - File Manager</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="default_width">450</property>
- <property name="default_height">500</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <signal name="delete_event" handler="on_filemanager_close_activate" last_modification_time="Fri, 08 Apr 2005 00:34:10 GMT"/>
-
- <child>
- <widget class="GtkVBox" id="vbox23">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHandleBox" id="handlebox2">
- <property name="visible">True</property>
- <property name="shadow_type">GTK_SHADOW_OUT</property>
- <property name="handle_position">GTK_POS_LEFT</property>
- <property name="snap_edge">GTK_POS_TOP</property>
-
- <child>
- <widget class="GtkMenuBar" id="menubar2">
- <property name="visible">True</property>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_File</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem5_menu">
-
- <child>
- <widget class="GtkImageMenuItem" id="open">
- <property name="visible">True</property>
- <property name="label">gtk-open</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_open_activate" last_modification_time="Thu, 07 Apr 2005 23:56:10 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="clear">
- <property name="visible">True</property>
- <property name="label">gtk-clear</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_clear_activate" last_modification_time="Thu, 07 Apr 2005 23:56:10 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator5">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="sign">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Sign</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_sign_activate" last_modification_time="Thu, 07 Apr 2005 19:53:59 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="verify">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Verify</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_verify_activate" last_modification_time="Thu, 07 Apr 2005 19:53:59 GMT"/>
- <accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="encrypt">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Encrypt</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_encrypt_activate" last_modification_time="Thu, 07 Apr 2005 19:53:59 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="decrypt">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Decrypt</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_decrypt_activate" last_modification_time="Thu, 07 Apr 2005 19:53:59 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="close">
- <property name="visible">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_filemanager_close_activate" last_modification_time="Thu, 07 Apr 2005 23:56:10 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="quit">
- <property name="visible">True</property>
- <property name="label">gtk-quit</property>
- <property name="use_stock">True</property>
- <signal name="activate" handler="on_quit_activate" last_modification_time="Thu, 07 Apr 2005 23:56:10 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Edit</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem6_menu">
-
- <child>
- <widget class="GtkMenuItem" id="select_all_files">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Select _All</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_select_all_files_activate" last_modification_time="Thu, 07 Apr 2005 19:53:59 GMT"/>
- <accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkSeparatorMenuItem" id="separator6">
- <property name="visible">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkImageMenuItem" id="preferences">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Pr_eferences...</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_file_preferences_activate" last_modification_time="Fri, 08 Apr 2005 01:06:44 GMT"/>
-
- <child internal-child="image">
- <widget class="GtkImage" id="image32">
- <property name="visible">True</property>
- <property name="stock">gtk-preferences</property>
- <property name="icon_size">1</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Windows</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem7_menu">
-
- <child>
- <widget class="GtkMenuItem" id="filemanager">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Filemanager</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_filemanager_activate" last_modification_time="Thu, 07 Apr 2005 19:53:59 GMT"/>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="keyring_editor">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Keyring Editor</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_keyring_editor_activate" last_modification_time="Thu, 07 Apr 2005 23:49:14 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="menuitem8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
-
- <child>
- <widget class="GtkMenu" id="menuitem8_menu">
-
- <child>
- <widget class="GtkMenuItem" id="about">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_About</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_about_activate" last_modification_time="Thu, 07 Apr 2005 19:53:59 GMT"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow7">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="files_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <signal name="cursor_changed" handler="on_files_changed" last_modification_time="Sat, 09 Apr 2005 18:14:51 GMT"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkFileChooserDialog" id="open_file_dialog">
- <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
- <property name="local_only">True</property>
- <property name="select_multiple">False</property>
- <property name="show_hidden">False</property>
- <property name="title" translatable="yes">Open File</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox27">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">24</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area27">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button20">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button21">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-open</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="sign_dialog">
- <property name="title" translatable="yes">Sign files</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox28">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area28">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton11">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton13">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox24">
- <property name="border_width">8</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">8</property>
-
- <child>
- <widget class="GtkFrame" id="frame7">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment6">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox25">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkRadioButton" id="sign_normal">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">si_gn and compress</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="sign_clear">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">sign, do_n't compress</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">sign_normal</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="sign_separate">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">sign in separate _file</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">sign_normal</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label75">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Signing Mode</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="sign_armor_cb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">A_rmor</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame8">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment7">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow8">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="sign_with_keys_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label76">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Sign _as</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="encrypt_dialog">
- <property name="title" translatable="yes">Encrypt files</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox29">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area29">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="cancelbutton12">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton14">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox26">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkFrame" id="frame9">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment8">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow9">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="encrypt_for_keys_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label77">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Public Keys</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="encrypt_sign_cb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Sign</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="on_encrypt_sign_toggled" last_modification_time="Wed, 13 Apr 2005 01:14:45 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkFrame" id="frame10">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment9">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow10">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="encrypt_with_keys_treeview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label78">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Sign _as</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">label_item</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="encrypt_armor_cb">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">A_rmor</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-<widget class="GtkDialog" id="verify_dialog">
- <property name="title" translatable="yes">Verify files</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="modal">True</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">True</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox30">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area30">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="closebutton4">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-7</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="verify_result">
- <property name="border_width">5</property>
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/lang/py3-pyme/examples/pygpa.py b/lang/py3-pyme/examples/pygpa.py
deleted file mode 100755
index 341a87cb..00000000
--- a/lang/py3-pyme/examples/pygpa.py
+++ /dev/null
@@ -1,1457 +0,0 @@
-#!/usr/bin/env python3
-# $Id$
-# Copyright (C) 2005,2008 Igor Belyi <belyi@users.sourceforge.net>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-import gtk, gobject, gtk.glade
-import gettext
-import time, sys, os
-from pyme import errors, core
-from pyme.core import Context, Data, pubkey_algo_name
-from pyme.constants import validity, status, keylist, sig, sigsum
-
-# Enable internationalization using gpa translation pages.
-gettext.install('gpa', None, 1)
-gtk.glade.bindtextdomain('gpa')
-gtk.glade.textdomain('gpa')
-
-# Thanks to Bernhard Reiter for pointing out the following:
-# gpgme_check_version() necessary for initialisation according to
-# gpgme 1.1.6 and this is not done automatically in pyme-0.7.0
-print("gpgme version:", core.check_version())
-
-# Helper functions to convert non-string data into printable strings
-def sec2str(secs, empty="_(Unknown)"):
- "Convert seconds since 1970 into mm/dd/yy string"
- if secs > 0: return time.strftime("%m/%d/%y", time.localtime(secs))
- elif secs == 0: return empty
- else: return ""
-
-trusts = {
- validity.UNDEFINED: "Unknown",
- validity.NEVER: "Never",
- validity.MARGINAL: "Marginal",
- validity.FULL: "Full",
- validity.ULTIMATE: "Ultimate"
- }
-
-def validity2str(valid):
- "Convert trust integer into a human understandable string"
- if valid in trusts: return _("%s" % trusts[valid])
- else: return _("Unknown")
-
-def keyvalid2str(key):
- "Create a string representing validity of a key"
- if key.owner_trust==validity.ULTIMATE:
- return _("Fully Valid")
- if key.revoked: return _("Revoked")
- if key.expired: return _("Expired")
- if key.disabled: return _("Disabled")
- if not key.uids or key.uids[0].invalid: return _("Incomplete")
- return _("Unknown")
-
-def subvalid2str(subkey):
- "Create a string representing validity of a subkey"
- if subkey.revoked: return _("Revoked")
- if subkey.expired: return _("Expired")
- if subkey.disabled: return _("Disabled")
- if subkey.invalid: return _("Unsigned")
- return _("Valid")
-
-def signstat2str(sig):
- "Create a string representing validity of a signature"
- status = _("Unknown")
- if sig.status == 1: status = _("Valid")
- elif sig.status == 2: status = _("Bad")
- if sig.expired: status = _("Expired")
- elif sig.revoked: status = _("Revoked")
- return status
-
-def sigsum2str(summary):
- if summary & sigsum.VALID: return _("Valid")
- if summary & sigsum.RED: return _("Bad")
- if summary & sigsum.KEY_MISSING: return _("Unknown Key")
- if summary & sigsum.KEY_REVOKED: return _("Revoked Key")
- if summary & sigsum.KEY_EXPIRED: return _("Expired Key")
- return _("Key NOT valid")
-
-def class2str(cls):
- "Convert signature class integer into a human understandable string"
- if cls==0x10: return _("Generic")
- if cls==0x11: return _("Persona")
- if cls==0x12: return _("Casual")
- if cls==0x13: return _("Positive")
- return _("Unknown")
-
-def algo2str(algo):
- "Convert algorithm integer into a human understandable string"
- return pubkey_algo_name(algo)
-
-def fpr2str(fpr):
- "Convert fpr string in a sparsely spaced string for easy reading"
- result = []
- while fpr:
- result.append(fpr[:4])
- fpr = fpr[4:]
- return " ".join(result)
-
-# Helper functions for tasks unrelated to any class
-def obj2model(objs, columns):
- "Create a model from the obj (key, subkey, or signature) using columns"
- model = gtk.ListStore(*[x.ctype for x in columns])
- for obj in objs:
- model.append([x.cfunc(obj) for x in columns])
- return model
-
-def labels2table(key_labels):
- "Create a gtk.Table from an array of 2-tuples of strings"
- table = gtk.Table(len(key_labels), 2)
- for i, row in enumerate(key_labels):
- if len(row) != 2:
- raise ValueError("Unexpected number of rows in labels2table call")
- label1 = gtk.Label(row[0])
- label1.set_alignment(1.0, 0.5)
- label2 = gtk.Label(row[1])
- label2.set_alignment(0.0, 0.5)
- label2.set_padding(5, 0)
- table.attach(label1, 0, 1, i, i+1, gtk.FILL, gtk.FILL)
- table.attach(label2, 1, 2, i, i+1, gtk.FILL, gtk.FILL)
- return table
-
-status2str = {}
-for name in dir(status):
- if not name.startswith('__') and name != "util":
- status2str[getattr(status, name)] = name
-
-def editor_func(status, args, val_dict):
- prompt = "%s %s" % (val_dict["state"], args)
- if prompt in val_dict:
- val_dict["state"] = val_dict[prompt][0]
- return val_dict[prompt][1]
- elif args and "ignore %s" % status2str[status] not in val_dict:
- for error in ["error %s" % status2str[status], "error %s" % prompt]:
- if error in val_dict:
- raise errors.GPGMEError(val_dict[error])
- sys.stderr.write(_("Unexpected status and prompt in editor_func: " +
- "%s %s\n") % (status2str[status], prompt))
- raise EOFError()
- return ""
-
-common_dict = {
- "state": "start",
- "quit keyedit.save.okay": ("save", "Y"),
- "ignore NEED_PASSPHRASE": None,
- "ignore NEED_PASSPHRASE_SYM": None,
- "ignore BAD_PASSPHRASE": None,
- "ignore USERID_HINT": None
- }
-
-def change_key_expire(context, key, date):
- "Change key's expiration date to date"
- val_dict = common_dict.copy()
- val_dict.update({
- "start keyedit.prompt": ("expire", "expire"),
- "expire keygen.valid": ("date", date),
- "date keyedit.prompt": ("quit", "quit")
- })
- out = Data()
- context.op_edit(key, editor_func, val_dict, out)
-
-def change_key_trust(context, key, new_trust):
- "Change key's trust to new_trust"
- val_dict = common_dict.copy()
- val_dict.update({
- "start keyedit.prompt": ("trust", "trust"),
- "trust edit_ownertrust.value": ("value", "%d" % new_trust),
- "value edit_ownertrust.set_ultimate.okay": ("value", "Y"),
- "value keyedit.prompt": ("quit", "quit")
- })
- out = Data()
- context.op_edit(key, editor_func, val_dict, out)
-
-def sign_key(context, key, sign_key, local):
- "Sign key using sign_key. Signature is exportable if local is False"
- # Values copied from <gpg-error.h>
- GPG_ERR_CONFLICT = 70
- GPG_ERR_UNUSABLE_PUBKEY = 53
- val_dict = common_dict.copy()
- val_dict.update({
- "start keyedit.prompt": ("sign", (local and "lsign") or "sign"),
- "sign keyedit.sign_all.okay": ("sign", "Y"),
- "sign sign_uid.expire": ("sign", "Y"),
- "sign sign_uid.class": ("sign", "0"),
- "sign sign_uid.okay": ("okay", "Y"),
- "okay keyedit.prompt": ("quit", "quit"),
- "error ALREADY_SIGNED": GPG_ERR_CONFLICT,
- "error sign keyedit.prompt": GPG_ERR_UNUSABLE_PUBKEY
- })
- out = Data()
- context.signers_clear()
- context.signers_add(sign_key)
- context.op_edit(key, editor_func, val_dict, out)
-
-def trigger_change_password(context, key):
- "Trigger sequence of passphrase_cb callbacks to change password of the key"
- val_dict = common_dict.copy()
- val_dict.update({
- "start keyedit.prompt": ("passwd", "passwd"),
- "passwd keyedit.prompt": ("quit", "quit")
- })
- out = Data()
- context.op_edit(key, editor_func, val_dict, out)
-
-# Helper classes whose instances are used in the major PyGpa class
-class KeyInfo:
- """Helper class to represent key information in different views.
- If KeyInfo instance is initialized with an integer as a key the views
- correspond to a state when multiple or no keys are selected"""
- def __init__(self, key, secret=None):
- self.key = key
- self.secret = secret
-
- def key_print_labels(self, fpr=False):
- "Create an array of 2-tuples for 'User Name' and 'Key ID' fields"
- labels = []
- if type(self.key) != int:
- if self.key.uids:
- labels.append((_("User Name:"), self.key.uids[0].uid))
- for uid in self.key.uids[1:]:
- labels.append(("", uid.uid))
- if fpr:
- labels += [(_("Fingerprint:"), fpr2str(self.key.subkeys[0].fpr))]
- else:
- labels += [(_("Key ID:"), self.key.subkeys[0].keyid[-8:])]
- return labels
-
- def key_expires_label(self):
- return sec2str(self.key.subkeys[0].expires,_("never expires"))
-
- def details(self):
- "Create a widget for 'Details' notebook tab"
- if type(self.key) == int:
- if self.key:
- details=gtk.Label(_("%d keys selected") % self.key)
- else:
- details=gtk.Label(_("No keys selected"))
- details.set_alignment(0.5, 0)
- return details
-
- if self.secret:
- header = _("The key has both a private and a public part")
- else:
- header = _("The key has only a public part")
- key_info_labels = [("", header)]
-
- if self.key.can_certify:
- if self.key.can_sign:
- if self.key.can_encrypt:
- ability = _("The key can be used for certification, " +
- "signing and encryption.")
- else:
- ability = _("The key can be used for certification and " +
- "signing, but not for encryption.")
- else:
- if self.key.can_encrypt:
- ability = _("The key can be used for certification and " +
- "encryption.")
- else:
- ability = _("The key can be used only for certification.")
- else:
- if self.key.can_sign:
- if self.key.can_encrypt:
- ability = _("The key can be used only for signing and " +
- "encryption, but not for certification.")
- else:
- ability = _("The key can be used only for signing.")
- else:
- if self.key.can_encrypt:
- ability = _("The key can be used only for encryption.")
- else:
- ability = _("This key is useless.")
- key_info_labels.append(("", ability))
-
- key_info_labels += self.key_print_labels() + [
- (_("Fingerprint:"), fpr2str(self.key.subkeys[0].fpr)),
- (_("Expires at:"), self.key_expires_label()),
- (_("Owner Trust:"), validity2str(self.key.owner_trust)),
- (_("Key Validity:"), keyvalid2str(self.key)),
- (_("Key Type:"), _("%s %u bits") % \
- (algo2str(self.key.subkeys[0].pubkey_algo),self.key.subkeys[0].length)),
- (_("Created at:"), sec2str(self.key.subkeys[0].timestamp))
- ]
-
- return labels2table(key_info_labels)
-
- def sign_model(self):
- "Create a model for ComboBox of uids in 'Signatures' notebook tab"
- model = gtk.ListStore(str, gtk.ListStore)
- if type(self.key) != int:
- for uid in self.key.uids:
- model.append([uid.uid, obj2model(uid.signatures,sign_columns)])
- return model
-
- def subkey_model(self):
- "Create a model for TreeView in 'Subkeys' notebook tab"
- if type(self.key) == int:
- return gtk.ListStore(*[x.ctype for x in subkey_columns])
- else:
- return obj2model(self.key.subkeys, subkey_columns)
-
-class Column:
- "Helper class to represent a column in a TreeView"
- def __init__(self, name, ctype, cfunc, detail=False):
- """Column(name, ctype, cfunc):
- name - Name to use as a column header
- ctype - type to use in a model definition for this column
- cfunc - function retrieving column's infromation from an object
- detail- indicate if it's a detail visible only in detailed view"""
- self.name = name
- self.ctype = ctype
- self.cfunc = cfunc
- self.detail = detail
-
-# Columns for the list of keys which can be used as default
-def_keys_columns = [
- Column(_("Key ID"), str, lambda x,y: x.subkeys[0].keyid[-8:]),
- Column(_("User Name"), str,
- lambda x,y: (x.uids and x.uids[0].uid) or _("[Unknown user ID]")),
- Column(None, gobject.TYPE_PYOBJECT, lambda x,y: KeyInfo(x,y))
- ]
-
-# Columns for the list of all keys in the keyring
-keys_columns = [
- Column("", str, lambda x,y: (y and "sec") or "pub"),
- def_keys_columns[0],
- Column(_("Expiry Date"), str,
- lambda x,y: sec2str(x.subkeys[0].expires, _("never expires")), True),
- Column(_("Owner Trust"),str,lambda x,y:validity2str(x.owner_trust),True),
- Column(_("Key Validity"), str, lambda x,y: keyvalid2str(x), True)
- ] + def_keys_columns[1:]
-
-# Columns for the list of signatures on a uid
-sign_columns = [
- Column(_("Key ID"), str, lambda x: x.keyid[-8:]),
- Column(_("Status"), str, lambda x: signstat2str(x)),
- Column(_("Level"), str, lambda x: class2str(x.sig_class)),
- Column(_("Local"), type(True), lambda x: x.exportable==0),
- Column(_("User Name"), str, lambda x: x.uid or _("[Unknown user ID]"))
- ]
-
-# Columns for the list of subkeys
-subkey_columns = [
- Column(_("Subkey ID"), str, lambda x: x.keyid[-8:]),
- Column(_("Status"), str, lambda x: subvalid2str(x)),
- Column(_("Algorithm"), str, lambda x: algo2str(x.pubkey_algo)),
- Column(_("Size"), str, lambda x: _("%u bits") % x.length),
- Column(_("Expiry Date"), str,
- lambda x: sec2str(x.expires, _("never expires"))),
- Column(_("Can sign"), type(True), lambda x: x.can_sign),
- Column(_("Can certify"), type(True), lambda x: x.can_certify),
- Column(_("Can encrypt"), type(True), lambda x: x.can_encrypt),
- Column(_("Can authenticate"), type(True), lambda x: x.can_authenticate)
- ]
-
-file_columns = [
- Column(_("File"), str, lambda x: x)
- ]
-
-class PyGpa:
- "Major class representing PyGpa application"
- def popup(self, dialog, parent=None, title=None):
- "Common way to popup a dialog defined in Glade"
- dialog.set_transient_for(parent or self.main_window)
- if title: dialog.set_title(title)
- result = dialog.run()
- dialog.hide()
- return result
-
- def file_popup(self, dialog, parent=None, title=None):
- return self.popup(dialog, parent or self.filemanager_window, title)
-
- def error_message(self, text, parent=None, title=_("Warning")):
- "Pop up an error message dialog"
- if type(text) == int:
- text = errors.GPGMEError(text).getstring()
- title = "GPGME error"
- elif isinstance(text, errors.GPGMEError):
- text = text.getstring()
- title = "GPGME error"
- self.error_label.set_text(text)
- self.popup(self.error_dialog, parent, title)
-
- def file_error_message(self, text, parent=None, title=_("Warning")):
- self.error_message(text, parent or self.filemanager_window, title)
-
- def info_message(self, text, parent=None, title=_("Information")):
- "Pop up an information dialog"
- self.info_label.set_text(text)
- self.popup(self.info_dialog, parent, title)
-
- def yesno_message(self, text, parent=None):
- "Pop up a dialog requiring yes/no answer"
- self.yesno_label.set_text(text)
- return self.popup(self.yesno_dialog, parent,
- _("Warning")) == gtk.RESPONSE_YES
-
- def on_uid_list_changed(self, uid_list):
- "this callback is called when uid selection is changed"
- index = uid_list.get_active()
- if index == -1:
- self.sign_treeview.set_model(KeyInfo(0).sign_model())
- else:
- self.sign_treeview.set_model(uid_list.get_model()[index][1])
-
- def get_selected_keys(self, treeview=None):
- "Helper function to get all selected rows in a treeview"
- if not treeview:
- treeview = self.keys_treeview
- model, rows = treeview.get_selection().get_selected_rows()
- return [model[path] for path in rows]
-
- def on_keys_changed(self, keys_treeview):
- "this callback is called when key selection is changed"
- selection = keys_treeview.get_selection()
- count = selection.count_selected_rows()
- if count == 1:
- key_info = self.get_selected_keys()[0][-1]
- else:
- key_info = KeyInfo(count)
-
- self.update_menu(key_info)
-
- # Update Details tab of the notebook
- old_child = self.details_view.get_child()
- if old_child: self.details_view.remove(old_child)
- self.details_view.add(key_info.details())
- self.details_view.show_all()
-
- # Update Subkeys tab of the notebook
- self.subkeys_treeview.set_model(key_info.subkey_model())
-
- # Update Signatures tab of the notebook
- sign_model = key_info.sign_model()
- self.uid_list.set_model(sign_model)
- if len(sign_model) < 2:
- self.uid_list_box.hide()
- else:
- self.uid_list_box.show_all()
- self.uid_list.set_active(0)
- self.on_uid_list_changed(self.uid_list)
-
- def on_keys_button_press(self, obj, event):
- "callback on a mouse press in the keys_treeview"
- if event.button == 3:
- self.popup_menu.popup(None, None, None, event.button, event.time)
- return True
- return False
-
- def create_popup_menu(self):
- "create the popup menu shown on right mouse click"
- self.items = [
- (gtk.ImageMenuItem(gtk.STOCK_COPY), self.on_copy_activate),
- (gtk.ImageMenuItem(gtk.STOCK_PASTE), self.on_paste_activate),
- (gtk.ImageMenuItem(gtk.STOCK_DELETE), self.on_delete_activate),
- (gtk.SeparatorMenuItem(), None),
- (gtk.MenuItem(_("_Sign Keys...")), self.on_sign_keys_activate),
- (gtk.MenuItem(_("Set _Owner Trust...")),
- self.on_set_owner_trust_activate),
- (gtk.MenuItem(_("_Edit Private Key...")),
- self.on_edit_private_key_activate),
- (gtk.SeparatorMenuItem(), None),
- (gtk.MenuItem(_("E_xport Keys...")), self.on_export_keys_activate)
- ]
- self.popup_menu = gtk.Menu()
- for item, callback in self.items:
- if callback: item.connect("activate", callback)
- self.popup_menu.append(item)
- self.popup_menu.show_all()
-
- def update_menu(self, key_info):
- "update sensitivity of menu items depending on what keys are selected"
- # copy, delete, sign, trust, edit, export
- if key_info.secret == None:
- if key_info.key: # more than one key selected
- values = ( True, True, True, False, False, True)
- else: # no keys selected
- values = (False, False, False, False, False, False)
- elif key_info.secret:
- if key_info.key == self.default_key: # default key seleted
- values = ( True, True, False, True, True, True)
- else: # secret (not default) key selected
- values = ( True, True, True, True, True, True)
- else: # public key selected
- values = ( True, True, True, True, False, True)
-
- for w,v in zip((self.copy, self.delete, self.sign_keys,
- self.set_owner_trust, self.edit_private_key,
- self.export_keys), values):
- w.set_sensitive(v)
- for w,v in zip((self.items[0][0], self.items[2][0], self.items[4][0],
- self.items[5][0], self.items[6][0], self.items[8][0]),
- values):
- w.set_sensitive(v)
-
- def setup_columns(self):
- "Helper function to setup columns of different treeviews"
- for treeview, columns in \
- [(self.keys_treeview, keys_columns),
- (self.sign_treeview, sign_columns),
- (self.subkeys_treeview, subkey_columns),
- (self.def_keys_treeview, def_keys_columns),
- (self.sign_with_keys_treeview, def_keys_columns),
- (self.encrypt_with_keys_treeview, def_keys_columns),
- (self.files_treeview, file_columns)]:
- for index, item in enumerate([x for x in columns if x.name!=None]):
- if item.ctype == str:
- renderer = gtk.CellRendererText()
- attrs = {"text": index}
- else:
- renderer = gtk.CellRendererToggle()
- attrs = {"active": index}
- column = treeview.insert_column_with_attributes(
- index, item.name, renderer, **attrs)
- column.set_sort_column_id(index)
- column.set_visible(not item.detail)
-
- for index,item in enumerate([x for x in keys_columns if x.name!=None]):
- if item.name and not item.detail:
- renderer = gtk.CellRendererText()
- column = gtk.TreeViewColumn(item.name, renderer, text=index)
- column.set_sort_column_id(index)
- self.encrypt_for_keys_treeview.append_column(column)
-
- for treeview in [self.encrypt_with_keys_treeview, self.keys_treeview,
- self.encrypt_for_keys_treeview, self.files_treeview,
- self.sign_with_keys_treeview]:
- treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
- self.def_keys_treeview.get_selection().set_mode(gtk.SELECTION_SINGLE)
-
- cell = gtk.CellRendererText()
- self.uid_list.pack_start(cell, True)
- self.uid_list.add_attribute(cell, 'text', 0)
-
- model = gtk.ListStore(str, str)
- for lines in [(_("days"), "d"), (_("weeks"), "w"),
- (_("months"), "m"), (_("years"), "y")]:
- model.append(lines)
- self.new_expire_unit_combo.set_model(model)
- self.new_expire_unit_combo.child.set_editable(False)
- self.new_algorithm_combo.child.set_editable(False)
-
- self.files_treeview.set_model(gtk.ListStore(str))
-
- def setup_default_views(self):
- "Setup initial values for different views"
- self.update_default_keys()
- self.on_advanced_mode_toggled(self.advanced_mode_rb)
- self.create_popup_menu()
- self.on_keys_changed(self.keys_treeview)
-
- def load_keys(self):
- "Download keys from the keyring"
- context = Context()
- sec_keys = {}
- for key in context.op_keylist_all(None, 1):
- sec_keys[key.subkeys[0].fpr] = 1
- model = gtk.ListStore(*[x.ctype for x in keys_columns])
- encrypt_model = gtk.ListStore(*[x.ctype for x in keys_columns])
- context.set_keylist_mode(keylist.mode.SIGS)
- for key in context.op_keylist_all(None, 0):
- secret = key.subkeys[0].fpr in sec_keys
- data = [x.cfunc(key, secret) for x in keys_columns]
- if key.can_encrypt: encrypt_model.append(data)
- model.append(data)
- self.keys_treeview.set_model(model)
- self.encrypt_for_keys_treeview.set_model(encrypt_model)
-
- def set_default_key(self, key):
- "Setup default key and update status bar with it"
- self.default_key = key
- self.status_uid.set_text((key.uids and key.uids[0].uid) or \
- _("[Unknown user ID]"))
- self.status_keyid.set_text(key.subkeys[0].keyid[-8:])
-
- def on_default_keys_changed(self, treeview):
- "This callback is called when default key is changed in Preferences"
- model, rows = treeview.get_selection().get_selected_rows()
- if model and rows:
- self.set_default_key(model[rows[0]][-1].key)
-
- def add_default_key(self, model, path, iter, def_model):
- "Helper function to add secret keys to the list of possible defaults"
- key = model[path][-1]
- if key.secret:
- def_model.append([x.cfunc(key.key,True) for x in def_keys_columns])
-
- def add_sig_key(self, model, path, iter, sign_model):
- "Helper function to add secret keys to the list of possible defaults"
- key = model[path][-1].key
- if key.can_sign:
- sign_model.append([x.cfunc(key,True) for x in def_keys_columns])
-
- def select_default_key(self, model, path, iter):
- "Helper function to select current default key from the available list"
- if model[path][-1].key == self.default_key:
- self.def_keys_treeview.get_selection().select_path(path)
-
- def update_default_keys(self):
- "Update list of default keys"
- model = gtk.ListStore(*[x.ctype for x in def_keys_columns])
- self.keys_treeview.get_model().foreach(self.add_default_key, model)
- self.def_keys_treeview.set_model(model)
- model.foreach(self.select_default_key)
- selection = self.def_keys_treeview.get_selection()
- if selection.count_selected_rows() != 1:
- selection.select_path((0,))
- self.on_default_keys_changed(self.def_keys_treeview)
- model = gtk.ListStore(*[x.ctype for x in def_keys_columns])
- self.def_keys_treeview.get_model().foreach(self.add_sig_key, model)
- self.sign_with_keys_treeview.set_model(model)
- self.encrypt_with_keys_treeview.set_model(model)
-
- def on_select_all_activate(self, obj):
- "This callback is called when SelectAll menu item is selected"
- self.keys_treeview.get_selection().select_all()
-
- def on_file_preferences_activate(self, obj):
- "Callback called when Preferences menu item is selected in filemanager"
- self.show_preferences(self.filemanager_window)
-
- def on_preferences_activate(self, obj):
- "Callback called when Preferences menu item is selected in key editor"
- self.show_preferences(None)
-
- def show_preferences(self, parent):
- "Show preferences positioning its window in the middle of the parent"
- self.popup(self.preferences_dialog, parent)
- self.def_keyserver = self.default_keyserver_combox.child.get_text()
-
- def on_advanced_mode_toggled(self, radiobutton):
- "This callback is called when Advanced Mode selection is changed"
- if radiobutton.get_active():
- self.subkeys_notebook_tab.show()
- self.get_generate_params = self.get_advanced_generate_params
- else:
- self.subkeys_notebook_tab.hide()
- self.get_generate_params = self.get_novice_generate_params
-
- def popup_progress_dialog(self, label, parent):
- self.progress_dialog.set_transient_for(parent)
- self.progress_label.set_text(label)
- self.progress_dialog.show_all()
- gobject.timeout_add(100, self.update_progress)
-
- def on_progress_cancel_clicked(self, obj):
- self.progress_context.cancel()
-
- def update_progress(self):
- "Helper function to show progress while a work on a key is being done"
- try:
- status = self.progress_context.wait(0)
- if status == None or self.progress_func(status):
- self.new_progressbar.pulse()
- return True
- except errors.GPGMEError as exc:
- self.error_message(exc)
-
- self.progress_context = None
- self.progress_func = None
- self.progress_dialog.hide()
-
- # Let callback to be removed.
- return False
-
- def key_generate_done(self, status):
- "Helper function called on the completion of a key generation"
- if status == 0:
- fpr = self.progress_context.op_genkey_result().fpr
- self.progress_context.set_keylist_mode(keylist.mode.SIGS)
- key = self.progress_context.get_key(fpr, 0)
- data = [x.cfunc(key, True) for x in keys_columns]
- self.keys_treeview.get_model().append(data)
- if key.can_encrypt:
- self.encrypt_for_keys_treeview.get_model().append(data)
- self.update_default_keys()
- else:
- self.error_message(status)
- return False
-
- def on_new_activate(self, obj):
- "Callback for 'New Key' menu item"
- params = self.get_generate_params()
- if params == None:
- return
-
- (key_algo, subkeys, size, userid, email,
- comment, expire, password, backup) = params
-
- gen_string = "<GnupgKeyParms format=\"internal\">\n" + \
- "Key-Type: %s\n" % key_algo + \
- "Key-Length: %d\n" % size
- if subkeys:
- gen_string += "Subkey-Type: %s\n" % subkeys + \
- "Subkey-Length: %d\n" % size
- gen_string += "Name-Real: %s\n" % userid
- if email:
- gen_string += "Name-Email: %s\n" % email
- if comment:
- gen_string += "Name-Comment: %s\n" % comment
- if expire:
- gen_string += "Expire-Date: %s\n" % expire
- if password:
- gen_string += "Passphrase: %s\n" % password
- gen_string += "</GnupgKeyParms>\n"
-
- self.progress_context = Context()
- self.progress_context.op_genkey_start(gen_string, None, None)
- self.progress_func = self.key_generate_done
- self.popup_progress_dialog(_("Generating Key..."), self.main_window)
-
- def check_passphrase(self, passphrase, repeat_passphrase, parent):
- """Helper function to check that enetered password satisfies our
- requirements"""
- if not passphrase:
- self.error_message(_('You did not enter a passphrase.\n' +
- 'It is needed to protect your private key.'),
- parent)
- elif repeat_passphrase != passphrase:
- self.error_message(_('In "Passphrase" and "Repeat passphrase",\n' +
- 'you must enter the same passphrase.'),
- parent)
- else:
- return True
- return False
-
- def get_novice_generate_params(self):
- "Helper function to get generate key parameter in Novice mode"
- dialogs = [self.generate_userid_dialog,
- self.generate_email_dialog,
- self.generate_comment_dialog,
- self.generate_passphrase_dialog,
- self.generate_backup_dialog]
- step = 0
- params = None
- while step>=0:
- dialog = dialogs[step]
- dialog.set_transient_for(self.main_window)
- result = dialog.run()
- newstep = step
- if result == 2:
- if step == 0:
- userid = self.generate_novice_userid_entry.get_text()
- if userid: newstep = step + 1
- else: self.error_message(_("Please insert your name."))
- elif step == 1:
- email = self.generate_novice_email_entry.get_text()
- if email: newstep = step + 1
- else:
- self.error_message(_("Please insert your email address"))
- elif step == 2:
- comment = self.generate_novice_comment_entry.get_text()
- newstep = step + 1
- elif step == 3:
- passphrase=self.generate_novice_passphrase_entry.get_text()
- if self.check_passphrase(
- passphrase,
- self.generate_novice_repeat_passphrase_entry.get_text(),
- dialog):
- newstep = step + 1
- elif step == 4:
- backup = self.generate_novice_backup_rb.get_active()
- params = ("DSA", "ELG-E", 1024, userid, email,
- comment, "", passphrase, backup)
- newstep = -1
- elif result == 1:
- newstep = step - 1
- else:
- newstep = -1
-
- if newstep != step:
- dialog.hide()
- step = newstep
-
- self.generate_novice_userid_entry.set_text("")
- self.generate_novice_email_entry.set_text("")
- self.generate_novice_comment_entry.set_text("")
- self.generate_novice_passphrase_entry.set_text("")
- self.generate_novice_repeat_passphrase_entry.set_text("")
- return params
-
- def on_new_expire_on_rb_toggled(self, expireon_rb):
- self.new_expire_calendar.set_sensitive(expireon_rb.get_active())
-
- def on_new_expire_after_rb_toggled(self, expireafter_rb):
- active = expireafter_rb.get_active()
- self.new_expire_count_entry.set_sensitive(active)
- self.new_expire_unit_combo.set_sensitive(active)
-
- def get_advanced_generate_params(self):
- "Helper function to get generate key parameter in Advanced mode"
- params = None
- self.new_expire_unit_combo.set_active(0)
- self.new_algorithm_combo.set_active(0)
- self.new_key_size_combo.set_active(1)
- self.generate_dialog.set_transient_for(self.main_window)
- while params == None and self.generate_dialog.run() == gtk.RESPONSE_OK:
- passphrase = self.new_passphrase_entry.get_text()
- if not self.check_passphrase(
- passphrase,
- self.new_repeat_passphrase_entry.get_text(),
- self.generate_dialog):
- continue
- key_algo, subkeys = {
- 'DSA and ElGamal (default)': ("DSA", "ELG-E"),
- 'DSA (sign only)': ("DSA", ""),
- 'RSA (sign only)': ("RSA", "")
- }[self.new_algorithm_combo.child.get_text()]
- try:
- size = int(self.new_key_size_combo.child.get_text())
- except ValueError:
- self.new_key_size_combo.child.grab_focus()
- continue
- userid = self.new_userid_entry.get_text()
- email = self.new_email_entry.get_text()
- comment = self.new_comment_entry.get_text()
- expire = ""
- if self.new_expire_after_rb.get_active():
- model = self.new_expire_unit_combo.get_model()
- unit = model[(self.new_expire_unit_combo.get_active(),)][1]
- try:
- value = int(self.new_expire_count_entry.get_text())
- except ValueError:
- self.new_expire_count_entry.grab_focus()
- continue
- expire = "%d%s" % (value, unit)
- elif self.new_expire_on_rb.get_active():
- (year, month, day) = self.new_expire_calendar.get_date()
- expire = "%04d-%02d-%02d" % (year, month+1, day)
- params = (key_algo, subkeys, size, userid, email,
- comment, expire, passphrase, False)
- self.generate_dialog.hide()
- self.new_passphrase_entry.set_text("")
- self.new_repeat_passphrase_entry.set_text("")
- return params
-
- def del_key(self, key, treeview):
- "Helper function to delete a key from a treeview list"
- row_list = []
- treeview.get_model().foreach(lambda m,p,i,l: l.append(m[p]), row_list)
- for row in row_list:
- if row[-1].key.subkeys[0].fpr == key.subkeys[0].fpr:
- row.model.remove(row.iter)
-
- def on_delete_activate(self, obj):
- "Callback for 'Delete Keys' menu item"
- message = {
- True: _("This key has a secret key. Deleting this key cannot be"+
- " undone, unless you have a backup copy."),
- False: _("This key is a public key. Deleting this key cannot be "+
- "undone easily, although you may be able to get a new " +
- "copy from the owner or from a key server.")
- }
- keytag = self.delete_key_keyinfo
- for row in self.get_selected_keys():
- self.delete_key_label.set_text(message[row[-1].secret])
- table = labels2table(row[-1].key_print_labels())
- keytag.add(table)
- keytag.show_all()
- if self.popup(self.delete_key_dialog) == gtk.RESPONSE_YES:
- context = Context()
- context.op_delete(row[-1].key, 1)
- if row[-1].key.can_encrypt:
- self.del_key(row[-1].key, self.encrypt_for_keys_treeview)
- row.model.remove(row.iter)
- self.update_default_keys()
- self.on_keys_changed(self.keys_treeview)
- keytag.remove(table)
-
- def password_cb(self, hint, desc, prev_bad, hook=None):
- "Callback to setup verification of a passphrase"
- if prev_bad:
- header = _("Wrong passphrase, please try again:")
- else:
- header = _("Please enter the passphrase for the following key:")
- self.password_prompt_label.set_text(header)
- keyid, userid = hint.split(" ", 1)
- table = labels2table([(_("User Name:"), userid),
- (_("Key ID:"), keyid[-8:])])
- self.password_prompt_keyinfo.add(table)
- self.password_prompt_keyinfo.show_all()
- password = None
- if self.popup(self.password_prompt_dialog) == gtk.RESPONSE_OK:
- password = self.password_prompt_entry.get_text()
- self.password_prompt_keyinfo.remove(table)
- self.password_prompt_entry.set_text("")
- if not password:
- GPG_ERR_CANCELED = 99
- raise errors.GPGMEError(GPG_ERR_CANCELED)
- return password
-
- def password_change_cb(self, hint, desc, prev_bad, hook):
- "Callback to setup for passphrase change"
- if not prev_bad:
- hook["count"] += 1
-
- if hook["count"] == 1:
- return self.password_cb(hint, desc, prev_bad)
- else:
- password = None
- self.password_change_dialog.set_transient_for(self.main_window)
- while password == None and \
- self.password_change_dialog.run() == gtk.RESPONSE_OK:
- password = self.password_change_passphrase.get_text()
- if not self.check_passphrase(
- password,
- self.password_change_repeat_passphrase.get_text(),
- self.password_change_dialog):
- password = None
- self.password_change_dialog.hide()
- self.password_change_passphrase.set_text("")
- self.password_change_repeat_passphrase.set_text("")
- if not password:
- GPG_ERR_CANCELED = 99
- raise errors.GPGMEError(GPG_ERR_CANCELED)
- return password
-
- def on_sign_keys_activate(self, obj):
- "Callback for 'Sign keys' menu item"
- context = Context()
- context.set_passphrase_cb(self.password_cb)
- context.set_keylist_mode(keylist.mode.SIGS)
- keytag = self.sign_key_keyinfo
- for row in self.get_selected_keys():
- if row[-1].key == self.default_key:
- continue
- if len(row[-1].key.uids) > 1:
- self.sign_manyuids_label.show()
- else:
- self.sign_manyuids_label.hide()
- table = labels2table(row[-1].key_print_labels(True))
- keytag.add(table)
- keytag.show_all()
- if self.popup(self.sign_key_dialog) == gtk.RESPONSE_YES:
- try:
- sign_key(context, row[-1].key, self.default_key,
- self.sign_locally_cb.get_active())
- row[-1].key=context.get_key(row[-1].key.subkeys[0].fpr,0)
- self.on_keys_changed(self.keys_treeview)
- except errors.GPGMEError as exc:
- self.error_message(exc)
- keytag.remove(table)
-
- def on_change_passphrase_clicked(self, obj, key_info):
- "Callback for 'Change passphrase' button in editor for a private key"
- try:
- context = Context()
- context.set_passphrase_cb(self.password_change_cb, {"count": 0})
- trigger_change_password(context, key_info.key)
- except errors.GPGMEError as exc:
- self.error_message(exc)
-
- def on_change_expiry_expireon_rb_toggled(self, expire_rb):
- "Callback for 'never expire' radiobutton in editor for a private key"
- self.change_expiry_calendar.set_sensitive(expire_rb.get_active())
-
- def on_change_expiration_clicked(self, obj, key_info):
- "Callback for 'Change expiration' button in editor for a private key"
- if key_info.key.subkeys[0].expires:
- year, month, day = time.localtime(key_info.key.subkeys[0].expires)[:3]
- self.change_expiry_calendar.select_month(month-1, year)
- self.change_expiry_calendar.select_day(day)
- self.change_expiry_expireon_rb.set_active(True)
- else:
- self.change_expiry_never_rb.set_active(True)
- if self.popup(self.change_expiry_dialog,
- self.edit_key_dialog) == gtk.RESPONSE_OK:
- year, month, day = self.change_expiry_calendar.get_date()
- expire = "%04d-%02d-%02d" % (year, month+1, day)
- try:
- context = Context()
- context.set_passphrase_cb(self.password_cb)
- change_key_expire(context, key_info.key, expire)
- context.set_keylist_mode(keylist.mode.SIGS)
- key_info.key=context.get_key(key_info.key.subkeys[0].fpr,0)
- self.on_keys_changed(self.keys_treeview)
- self.edit_key_date_label.set_text(key_info.key_expires_label())
- except errors.GPGMEError as exc:
- self.error_message(exc)
-
- def on_edit_private_key_activate(self, obj):
- "Callback for 'Edit Private Key' menu item"
- keys = self.get_selected_keys()
- if len(keys) != 1 or not keys[0][-1].secret:
- return
-
- key_info = keys[0][-1]
- table = labels2table(key_info.key_print_labels())
- self.edit_key_date_label.set_text(key_info.key_expires_label())
- self.edit_key_keyinfo.add(table)
- self.edit_key_keyinfo.show_all()
- connect1_id = self.edit_key_change_expiration.connect(
- "clicked", self.on_change_expiration_clicked, key_info)
- connect2_id = self.edit_key_change_passphrase.connect(
- "clicked", self.on_change_passphrase_clicked, key_info)
- self.popup(self.edit_key_dialog)
- self.edit_key_change_expiration.disconnect(connect1_id)
- self.edit_key_change_passphrase.disconnect(connect2_id)
- self.edit_key_keyinfo.remove(table)
-
- def on_set_owner_trust_activate(self, obj):
- "Callback for 'Set Owner Trust' menu item"
- keys = self.get_selected_keys()
- if len(keys) != 1:
- return
-
- key_info = keys[0][-1]
- table = labels2table(key_info.key_print_labels())
- self.ownertrust_key.add(table)
- self.ownertrust_key.show_all()
- trust = key_info.key.owner_trust
- if trust < 0 or trust not in trusts:
- trust = validity.UNDEFINED
- getattr(self, "ownertrust_"+trusts[trust]).set_active(True)
- if self.popup(self.ownertrust_dialog) == gtk.RESPONSE_OK:
- for trust, name in trusts.items():
- if getattr(self, "ownertrust_"+name).get_active():
- try:
- context = Context()
- change_key_trust(context, key_info.key, trust)
- key_info.key.owner_trust = trust
- self.on_keys_changed(self.keys_treeview)
- except errors.GPGMEError as exc:
- self.error_message(exc)
- break
- self.ownertrust_key.remove(table)
-
- def import_keys_from_data(self, data):
- "Helper function to import keys into application from a Data() object"
- context = Context()
- status = context.op_import(data)
- if status:
- self.error_message(status)
- else:
- result = context.op_import_result()
- if result.considered == 0:
- self.error_message(_("No keys were found."))
- else:
- self.load_keys()
- self.info_message(_("%i public keys read\n" +
- "%i public keys imported\n" +
- "%i public keys unchanged\n" +
- "%i secret keys read\n" +
- "%i secret keys imported\n" +
- "%i secret keys unchanged") % \
- (result.considered,
- result.imported,
- result.unchanged,
- result.secret_read,
- result.secret_imported,
- result.secret_unchanged))
-
- def import_from_clipboard(self, clipboard, text, data):
- "Callback to setup extraction of data from a clipboard"
- if text:
- self.import_keys_from_data(Data(text))
-
- def on_paste_activate(self, obj):
- "Callback for 'Paste' menu item"
- gtk.clipboard_get().request_text(self.import_from_clipboard)
-
- def on_import_keys_activate(self, obj):
- "Callback for 'Import Keys' menu item"
- import_file = None
- dialog = self.import_file_dialog
- dialog.set_transient_for(self.main_window)
- while import_file == None and dialog.run() == gtk.RESPONSE_OK:
- try:
- import_file = open(dialog.get_filename(), "rb")
- except IOError as strerror:
- self.error_message(strerror, dialog)
- import_file = None
- dialog.hide()
- if import_file != None:
- self.import_keys_from_data(Data(file=import_file))
- import_file.close()
-
- def export_selected_keys(self, armor):
- "Helper function to export selected keys into a Data() object"
- context = Context()
- context.set_armor(armor)
- export_keys = Data()
- for row in self.get_selected_keys():
- context.op_export(row[-1].key.subkeys[0].fpr, 0, export_keys)
- export_keys.seek(0,0)
- return export_keys
-
- def on_copy_activate(self, obj):
- "Callback for 'Copy' menu item"
- if self.keys_treeview.get_selection().count_selected_rows() > 0:
- export_keys = self.export_selected_keys(True)
- gtk.clipboard_get().set_text(export_keys.read())
-
- def verify_output(self, filename, parent):
- "Helper function to verify that user can write into the filename"
- if os.path.exists(filename):
- if os.path.isdir(filename):
- self.error_message(_("%s is a directory")%filename, parent)
- return False
- else:
- return self.yesno_message(_("The file %s already exists.\n" +
- "Do you want to overwrite it?") %
- filename, parent)
- return True
-
- def on_export_keys_activate(self, obj):
- "Callback for 'Export Keys' menu item"
- if self.keys_treeview.get_selection().count_selected_rows() < 1:
- return
-
- export_file = None
- dialog = self.export_file_dialog
- dialog.set_transient_for(self.main_window)
- while export_file == None and dialog.run() == gtk.RESPONSE_OK:
- filename = dialog.get_filename()
- if self.verify_output(filename, dialog):
- try:
- export_file = open(filename, "wb")
- except IOError as strerror:
- self.error_message(strerror, dialog)
- export_file = None
- dialog.hide()
- if export_file == None:
- return
-
- export_keys = self.export_selected_keys(export_armor_cb.get_active())
- export_file.write(export_keys.read())
- export_file.close()
-
- def on_files_changed(self, obj):
- "Callback called when selection of files in filemanager is changed"
- if self.files_treeview.get_selection().count_selected_rows() < 1:
- value = False
- else:
- value = True
- for item in (self.sign, self.verify, self.encrypt, self.decrypt):
- item.set_sensitive(value)
-
- def open(self, filename, complain=False):
- "Helper function to add a file into filemanager treeview"
- model = self.files_treeview.get_model()
- row_list = []
- model.foreach(lambda m,p,i,l: l.append(m[p][0]), row_list)
- if filename in row_list:
- if complain:
- self.file_error_message(_("The file is already open."))
- else:
- item = model.append([filename])
- self.files_treeview.get_selection().select_iter(item)
- self.on_files_changed(None)
-
- def on_open_activate(self, obj):
- "Callback for 'Open' menu item"
- if self.file_popup(self.open_file_dialog) == gtk.RESPONSE_OK:
- self.add_file(self.open_file_dialog.get_filename(), True)
- self.open_file_dialog.unselect_all()
-
- def get_selected_files(self):
- "Helper function to return selected rows in filemanager treeview"
- return self.get_selected_keys(self.files_treeview)
-
- def on_clear_activate(self, obj):
- "Callback for 'Clear' menu item"
- for row in self.get_selected_files():
- row.model.remove(row.iter)
-
- def process_file_start(self, in_name, out_name):
- "Helper function to start asynchronous processing of one file"
- if self.verify_output(out_name, self.filemanager_window):
- try:
- self.in_data = Data(file=in_name)
- self.out_data = Data()
- self.out_name = out_name
- self.file_func(self.in_data, self.out_data)
- except errors.GPGMEError as exc:
- self.file_error_message(exc)
-
- def process_file_done(self, status):
- "The function called when asynchronous processing of the file is done."
- try:
- errors.errorcheck(status)
- self.out_data.seek(0,0)
- out_file = file(self.out_name, "wb")
- out_file.write(self.out_data.read())
- out_file.close()
- self.add_file(self.out_name)
- if self.file_list:
- self.process_file_start(*(self.file_list.pop(0)))
- return True
- except (errors.GPGMEError, IOError) as exc:
- self.file_error_message(exc)
-
- # Let python to free the memory.
- self.out_data = None
- self.in_data = None
- self.out_name = None
- self.file_list = []
- self.file_func = None
- return False
-
- def process_files_async(self, file_list, func, label):
- "Helper function to initialize async processing of the file list"
- self.file_list = file_list
- self.file_func = func
- self.progress_func = self.process_file_done
- self.process_file_start(*(self.file_list.pop(0)))
- self.popup_progress_dialog(label, self.filemanager_window)
-
- def on_sign_activate(self, obj):
- "Callback for 'Sign' menu item"
- files = self.get_selected_files()
- if not files: return
-
- if self.file_popup(self.sign_dialog) == gtk.RESPONSE_OK:
- context = Context()
- context.set_passphrase_cb(self.password_cb)
- context.set_armor(self.sign_armor_cb.get_active())
- for rw in self.get_selected_keys(self.sign_with_keys_treeview):
- context.signers_add(rw[-1].key)
- for cb,md,ext in [(self.sign_normal, sig.mode.NORMAL, ".gpg"),
- (self.sign_clear, sig.mode.CLEAR, ".asc"),
- (self.sign_separate,sig.mode.DETACH,".sig")]:
- if cb.get_active():
- sigmode = md
- sigext = ext
- break
- self.progress_context = context
- def sign(x,y):self.progress_context.op_sign_start(x,y,sigmode)
- self.process_files_async([(f[0], f[0]+sigext) for f in files],
- sign, _("Signing..."))
-
- def verify_file_start(self, in_name, out_name):
- "Helper function to start file signature verification process"
- try:
- self.in_name = in_name
- self.out_name = out_name
- self.signed = Data(file=self.in_name)
- if out_name:
- self.plain1 = Data(file=self.out_name)
- self.plain2 = None
- else:
- self.plain1 = None
- self.plain2 = Data()
- self.progress_context.op_verify_start(self.signed, self.plain1,
- self.plain2)
- except errors.GPGMEError as exc:
- self.file_error_message(exc)
-
- def verify_file_done(self, status):
- "The function called when asynchronous file signature verify is done."
- try:
- errors.errorcheck(status)
- result = self.progress_context.op_verify_result()
-
- model = gtk.ListStore(str, str, str)
- treeview = gtk.TreeView(model)
- treeview.set_rules_hint(True)
- for index, title in enumerate([_("Key ID"), _("Status"),
- _("User Name")]):
- treeview.append_column(gtk.TreeViewColumn(
- title, gtk.CellRendererText(), text=index))
- for sign in result.signatures:
- key = self.progress_context.get_key(sign.fpr, 0)
- if key and key.uids:
- keyid = key.subkeys[0].keyid[-8:]
- userid = key.uids[0].uid
- else:
- keyid = sign.fpr[-8:]
- userid = _("[Unknown user ID]")
- model.append([keyid, sigsum2str(sign.summary), userid])
-
- vbox = gtk.VBox()
- if self.out_name:
- vbox.add(gtk.Label(_("Verified data in file: %s") %
- self.out_name))
- label = gtk.Label(_("Signatures:"))
- label.set_alignment(0, 1)
- vbox.add(label)
- vbox.add(treeview)
- self.verified.append((vbox, gtk.Label(self.in_name)))
- if self.file_list:
- self.verify_file_start(*(self.file_list.pop(0)))
- return True
- except errors.GPGMEError as exc:
- self.file_error_message(exc)
-
- # Let python to free the memory.
- self.signed = None
- self.plain1 = None
- self.plain2 = None
- self.in_name = None
- self.out_name = None
- self.file_list = []
- self.progress_dialog.hide()
-
- if self.verified:
- notebook = gtk.Notebook()
- for page in self.verified: notebook.append_page(*page)
- self.verify_result.add(notebook)
- self.verify_result.show_all()
- self.file_popup(self.verify_dialog)
- self.verify_result.remove(notebook)
- self.verified = []
-
- return False
-
- def on_verify_activate(self, obj):
- "Callback for 'Verify' menu item"
- files = self.get_selected_files()
- if not files: return
-
- self.file_list = []
- for onefile in files:
- in_name = onefile[0]
- if in_name[-4:] == ".sig":
- out_name = in_name[:-4]
- elif in_name[-5:] == ".sign":
- out_name = in_name[:-5]
- else:
- out_name = None
- self.file_list.append((in_name, out_name))
- self.verified = []
- self.progress_context = Context()
- self.progress_func = self.verify_file_done
- self.verify_file_start(*(self.file_list.pop(0)))
- self.popup_progress_dialog(_("Verifying..."), self.filemanager_window)
-
- def on_encrypt_sign_toggled(self, cb):
- "Callback for change of the 'Sign' check box in 'Encrypt files' dialog"
- self.encrypt_with_keys_treeview.set_sensitive(cb.get_active())
-
- def on_encrypt_activate(self, obj):
- "Callback for 'Encrypt' menu item"
- files = self.get_selected_files()
- if not files: return
-
- self.on_encrypt_sign_toggled(self.encrypt_sign_cb)
- if self.file_popup(self.encrypt_dialog) == gtk.RESPONSE_OK:
- context = Context()
- context.set_passphrase_cb(self.password_cb)
- if self.encrypt_armor_cb.get_active():
- context.set_armor(True)
- ext = ".asc"
- else:
- context.set_armor(False)
- ext = ".gpg"
- keylist = [row[-1].key for row in self.get_selected_keys(
- self.encrypt_for_keys_treeview)]
- if self.encrypt_sign_cb.get_active():
- for row in self.get_selected_keys(
- self.encrypt_with_keys_treeview):
- context.signers_add(row[-1].key)
- def encrypt(x,y):
- self.progress_context.op_encrypt_sign_start(
- keylist, 1, x, y)
- else:
- def encrypt(x,y):
- self.progress_context.op_encrypt_start(
- keylist, 1, x, y)
- self.progress_context = context
- self.process_files_async([(f[0], f[0]+sigext) for f in files],
- encrypt, _("Encrypting..."))
-
- def on_decrypt_activate(self, obj):
- "Callback for 'Decrypt' menu item"
- files = self.get_selected_files()
- if not files: return
-
- file_list = []
- for onefile in self.get_selected_files():
- in_name = onefile[0]
- if in_name[-4:] in [".asc", ".gpg", ".pgp"]:
- out_name = in_name[:-4]
- else:
- out_name = in_name + ".txt"
- file_list.append((in_name, out_name))
- self.process_context = Context()
- self.process_files_async(file_list,
- self.process_context.op_decrypt_start,
- _("Decrypting..."))
-
- def on_select_all_files_activate(self, obj):
- "Callback for 'Select All' menu item in filemanager"
- self.files_treeview.get_selection().select_all()
-
- def on_keyring_editor_activate(self, obj):
- "Callback for 'Keyring Editor' menu item"
- self.main_window.show()
-
- def on_keyring_editor_close_activate(self, obj, event=None):
- "Callback for 'Close' menu item in Keyring Editor"
- if self.filemanager_window.get_property("visible"):
- self.main_window.hide()
- return True
- else:
- self.on_quit_activate(None)
-
- def on_filemanager_activate(self, obj):
- "Callback for 'Filemanager' menu item"
- self.on_files_changed(None)
- self.filemanager_window.show()
-
- def on_filemanager_close_activate(self, obj, event=None):
- "Callback for 'Close' menu item in Filemanager"
- if self.main_window.get_property("visible"):
- self.filemanager_window.hide()
- return True
- else:
- self.on_quit_activate(None)
-
- def on_about_activate(self, obj):
- "Callback for 'About' menu item"
- self.popup(self.about_dialog)
-
- def __repr__(self):
- return self.__class__.__name__
-
- def __getattr__(self, name):
- "Dynamic retrieval of widgets from the glade XML"
- if name.startswith("on_"):
- self.__dict__[name] = lambda x: sys.stderr.write(
- _("Callback %s is not implimented yet\n") % name)
- elif name.startswith("_"):
- return None
- else:
- self.__dict__[name] = self.wtree.get_widget(name)
- return self.__dict__[name]
-
- def __init__(self, path):
- "PyGpa(path) - path is where pygpa.glade file can be found"
- gladefile = os.path.join(path, "pygpa.glade")
- self.wtree = gtk.glade.XML(gladefile, None, gtk.glade.textdomain())
- self.wtree.signal_autoconnect(self)
-
- self.default_key = None
- self.load_keys()
- self.setup_columns()
- self.setup_default_views()
- self.in_progress = {}
-
- gtk.main()
-
- def on_quit_activate(self, obj):
- gtk.main_quit()
-
-PyGpa(os.path.dirname(sys.argv[0]))