mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Only show invalid mappings dialog once
When you select the type of information to display, the invalid mapping dialog is shown if necessary on each occasion so this commit changes that to show it once and then you can use the added button.
This commit is contained in:
parent
9fed4b464f
commit
41af84b937
@ -56,6 +56,13 @@ typedef enum
|
||||
ONLINE
|
||||
}GncListType;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
guint inv_dialog_shown_bayes : 1;
|
||||
guint inv_dialog_shown_nbayes : 1;
|
||||
guint inv_dialog_shown_online : 1;
|
||||
}GncInvFlags;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
@ -80,6 +87,7 @@ typedef struct
|
||||
GtkWidget *expand_button;
|
||||
GtkWidget *collapse_button;
|
||||
GtkWidget *remove_button;
|
||||
GncInvFlags inv_dialog_shown;
|
||||
}ImapDialog;
|
||||
|
||||
|
||||
@ -371,6 +379,13 @@ gnc_imap_invalid_maps_dialog (ImapDialog *imap_dialog)
|
||||
else
|
||||
{
|
||||
gtk_widget_show (imap_dialog->remove_button);
|
||||
|
||||
if (imap_dialog->type == BAYES)
|
||||
imap_dialog->inv_dialog_shown.inv_dialog_shown_bayes = TRUE;
|
||||
if (imap_dialog->type == NBAYES)
|
||||
imap_dialog->inv_dialog_shown.inv_dialog_shown_nbayes = TRUE;
|
||||
if (imap_dialog->type == ONLINE)
|
||||
imap_dialog->inv_dialog_shown.inv_dialog_shown_online = TRUE;
|
||||
}
|
||||
g_free (message);
|
||||
g_free (message2);
|
||||
@ -378,6 +393,24 @@ gnc_imap_invalid_maps_dialog (ImapDialog *imap_dialog)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_imap_invalid_maps (ImapDialog *imap_dialog)
|
||||
{
|
||||
gboolean inv_dialog_shown = FALSE;
|
||||
|
||||
if ((imap_dialog->type == BAYES) && (imap_dialog->inv_dialog_shown.inv_dialog_shown_bayes))
|
||||
inv_dialog_shown = TRUE;
|
||||
|
||||
if ((imap_dialog->type == NBAYES) && (imap_dialog->inv_dialog_shown.inv_dialog_shown_nbayes))
|
||||
inv_dialog_shown = TRUE;
|
||||
|
||||
if ((imap_dialog->type == ONLINE) && (imap_dialog->inv_dialog_shown.inv_dialog_shown_online))
|
||||
inv_dialog_shown = TRUE;
|
||||
|
||||
if (!inv_dialog_shown)
|
||||
gnc_imap_invalid_maps_dialog (imap_dialog);
|
||||
}
|
||||
|
||||
void
|
||||
gnc_imap_dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer user_data)
|
||||
{
|
||||
@ -519,9 +552,22 @@ list_type_selected_cb (GtkToggleButton* button, ImapDialog *imap_dialog)
|
||||
// Lets do this only on change of list type
|
||||
if (type != imap_dialog->type)
|
||||
{
|
||||
gboolean inv_dialog_shown = FALSE;
|
||||
|
||||
imap_dialog->type = type;
|
||||
get_account_info (imap_dialog);
|
||||
gnc_imap_invalid_maps_dialog (imap_dialog);
|
||||
|
||||
if ((imap_dialog->type == BAYES) && (imap_dialog->inv_dialog_shown.inv_dialog_shown_bayes))
|
||||
inv_dialog_shown = TRUE;
|
||||
|
||||
if ((imap_dialog->type == NBAYES) && (imap_dialog->inv_dialog_shown.inv_dialog_shown_nbayes))
|
||||
inv_dialog_shown = TRUE;
|
||||
|
||||
if ((imap_dialog->type == ONLINE) && (imap_dialog->inv_dialog_shown.inv_dialog_shown_online))
|
||||
inv_dialog_shown = TRUE;
|
||||
|
||||
if (!inv_dialog_shown)
|
||||
gnc_imap_invalid_maps_dialog (imap_dialog);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user