r17205 - gnucash/branches/aqbanking3/src/import-export/aqbanking - Patch from Micha Lenk to activate password caching while entering one.
Andreas Köhler
andi5 at cvs.gnucash.org
Sun Jun 8 19:13:31 EDT 2008
Author: andi5
Date: 2008-06-08 19:13:30 -0400 (Sun, 08 Jun 2008)
New Revision: 17205
Trac: http://svn.gnucash.org/trac/changeset/17205
Modified:
gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade
gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-gwen-gui.c
Log:
Patch from Micha Lenk to activate password caching while entering one.
Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade 2008-06-08 23:12:06 UTC (rev 17204)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/aqbanking.glade 2008-06-08 23:13:30 UTC (rev 17205)
@@ -2408,7 +2408,7 @@
<child>
<widget class="GtkTable" id="table7">
<property name="visible">True</property>
- <property name="n_rows">2</property>
+ <property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -2511,6 +2511,28 @@
<property name="y_options"></property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkCheckButton" id="remember_pin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Remember _PIN</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="left_attach">0</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"></property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
Modified: gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-gwen-gui.c
===================================================================
--- gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-gwen-gui.c 2008-06-08 23:12:06 UTC (rev 17204)
+++ gnucash/branches/aqbanking3/src/import-export/aqbanking/gnc-gwen-gui.c 2008-06-08 23:13:30 UTC (rev 17205)
@@ -88,6 +88,7 @@
static void register_callbacks(GncGWENGui *gui);
static void unregister_callbacks(GncGWENGui *gui);
static void setup_dialog(GncGWENGui *gui);
+static void enable_password_cache(GncGWENGui *gui, gboolean enabled);
static void reset_dialog(GncGWENGui *gui);
static void set_runing(GncGWENGui *gui);
static void set_finished(GncGWENGui *gui);
@@ -387,8 +388,28 @@
}
static void
+enable_password_cache(GncGWENGui *gui, gboolean enabled)
+{
+ g_return_if_fail(gui);
+
+ if (enabled && !gui->passwords) {
+ /* Remember passwords in memory, mapping tokens to passwords */
+ gui->passwords = g_hash_table_new_full(
+ g_str_hash, g_str_equal, (GDestroyNotify) g_free,
+ (GDestroyNotify) erase_password);
+ } else if (!enabled && gui->passwords) {
+ /* Erase and free remembered passwords from memory */
+ g_hash_table_destroy(gui->passwords);
+ gui->passwords = NULL;
+ }
+ gui->cache_passwords = enabled;
+}
+
+static void
reset_dialog(GncGWENGui *gui)
{
+ gboolean cache_passwords;
+
g_return_if_fail(gui);
ENTER("gui=%p", gui);
@@ -420,18 +441,9 @@
gui->state = INIT;
gui->min_loglevel = GWEN_LoggerLevel_Verbous;
- gui->cache_passwords = gnc_gconf_get_bool(GCONF_SECTION_AQBANKING,
- KEY_REMEMBER_PIN, NULL);
- if (gui->cache_passwords && !gui->passwords) {
- /* Remember passwords in memory, mapping tokens to passwords */
- gui->passwords = g_hash_table_new_full(
- g_str_hash, g_str_equal, (GDestroyNotify) g_free,
- (GDestroyNotify) erase_password);
- } else if (!gui->cache_passwords && gui->passwords) {
- /* Erase and free remembered passwords from memory */
- g_hash_table_destroy(gui->passwords);
- gui->passwords = NULL;
- }
+ cache_passwords = gnc_gconf_get_bool(GCONF_SECTION_AQBANKING,
+ KEY_REMEMBER_PIN, NULL);
+ enable_password_cache(gui, cache_passwords);
if (!gui->accepted_certs)
gui->accepted_certs = g_hash_table_new_full(
@@ -766,6 +778,7 @@
GtkWidget *input_entry;
GtkWidget *confirm_entry;
GtkWidget *confirm_label;
+ GtkWidget *remember_pin_checkbutton;
const gchar *internal_input, *internal_confirmed;
gboolean confirm = (flags & GWEN_GUI_INPUT_FLAGS_CONFIRM) != 0;
gboolean hidden = (flags & GWEN_GUI_INPUT_FLAGS_SHOW) == 0;
@@ -785,6 +798,9 @@
input_entry = glade_xml_get_widget(xml, "input_entry");
confirm_entry = glade_xml_get_widget(xml, "confirm_entry");
confirm_label = glade_xml_get_widget(xml, "confirm_label");
+ remember_pin_checkbutton = glade_xml_get_widget(xml, "remember_pin");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(remember_pin_checkbutton),
+ gui->cache_passwords);
if (gui->parent)
gtk_window_set_transient_for(GTK_WINDOW(dialog),
@@ -819,9 +835,18 @@
/* Ask the user until he enters a valid input or cancels */
while (TRUE) {
+ gboolean remember_pin;
+
if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_OK)
break;
+ /* Enable or disable the password cache */
+ remember_pin = gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(remember_pin_checkbutton));
+ enable_password_cache(gui, remember_pin);
+ gnc_gconf_set_bool(GCONF_SECTION_AQBANKING, KEY_REMEMBER_PIN,
+ remember_pin, NULL);
+
internal_input = gtk_entry_get_text(GTK_ENTRY(input_entry));
if (strlen(internal_input) < min_len) {
gboolean retval;
More information about the gnucash-changes
mailing list