mirror of
				https://github.com/Gnucash/gnucash.git
				synced 2025-02-25 18:55:30 -06:00 
			
		
		
		
	Merge branch 'maint'
This commit is contained in:
		@@ -65,6 +65,13 @@ static int gnome_is_initialized = FALSE;
 | 
			
		||||
 | 
			
		||||
#define ACCEL_MAP_NAME "accelerator-map"
 | 
			
		||||
 | 
			
		||||
const gchar *msg_no_help_found =
 | 
			
		||||
    N_("GnuCash could not find the files of the help documentation.");
 | 
			
		||||
const gchar *msg_no_help_reason =
 | 
			
		||||
    N_("This is likely because the \"gnucash-docs\" package is not properly installed.");
 | 
			
		||||
    /* Translators: URI of missing help files */
 | 
			
		||||
const gchar *msg_no_help_location = N_("Expected location");
 | 
			
		||||
 | 
			
		||||
static void gnc_book_options_help_cb (GNCOptionWin *win, gpointer dat);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
@@ -262,10 +269,9 @@ gnc_gnome_help (const char *dir, const char *detail)
 | 
			
		||||
                  componentsJoinedByString: @"-"];
 | 
			
		||||
        if (![[NSFileManager defaultManager] fileExistsAtPath: docs_dir])
 | 
			
		||||
        {
 | 
			
		||||
            const gchar *message =
 | 
			
		||||
                _("GnuCash could not find the files for the help documentation. "
 | 
			
		||||
                  "This is likely because the 'gnucash-docs' package is not installed");
 | 
			
		||||
            gnc_error_dialog(NULL, "%s at %s", message, [docs_dir UTF8String]);
 | 
			
		||||
            gnc_error_dialog(NULL, "%s\n%s\n%s: %s", _(msg_no_help_found),
 | 
			
		||||
                             _(msg_no_help_reason),
 | 
			
		||||
                             _(msg_no_help_location), [docs_dir UTF8String]);
 | 
			
		||||
            [pool release];
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
@@ -355,10 +361,7 @@ gnc_gnome_help (const char *dir, const char *detail)
 | 
			
		||||
        [[NSWorkspace sharedWorkspace] openURL: url];
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        const gchar *message =
 | 
			
		||||
            _("GnuCash could not find the files for the help documentation. "
 | 
			
		||||
              "This is likely because the 'gnucash-docs' package is not installed.");
 | 
			
		||||
        gnc_error_dialog(NULL, "%s", message);
 | 
			
		||||
       gnc_error_dialog(NULL, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
 | 
			
		||||
    }
 | 
			
		||||
    [pool release];
 | 
			
		||||
}
 | 
			
		||||
@@ -386,9 +389,7 @@ gnc_gnome_help (const char *file_name, const char *anchor)
 | 
			
		||||
 | 
			
		||||
    if (!found)
 | 
			
		||||
    {
 | 
			
		||||
        const gchar *message =
 | 
			
		||||
            _("GnuCash could not find the files for the help documentation.");
 | 
			
		||||
        gnc_error_dialog (NULL, message);
 | 
			
		||||
        gnc_error_dialog (NULL, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
@@ -419,10 +420,7 @@ gnc_gnome_help (const char *file_name, const char *anchor)
 | 
			
		||||
 | 
			
		||||
    g_assert(error != NULL);
 | 
			
		||||
    {
 | 
			
		||||
        const gchar *message =
 | 
			
		||||
            _("GnuCash could not find the files for the help documentation. "
 | 
			
		||||
              "This is likely because the 'gnucash-docs' package is not installed.");
 | 
			
		||||
        gnc_error_dialog(NULL, "%s", message);
 | 
			
		||||
        gnc_error_dialog(NULL, "%s\n%s", _(msg_no_help_found), _(msg_no_help_reason));
 | 
			
		||||
    }
 | 
			
		||||
    PERR ("%s", error->message);
 | 
			
		||||
    g_error_free(error);
 | 
			
		||||
@@ -485,7 +483,7 @@ gnc_launch_assoc (GtkWindow *parent, const char *uri)
 | 
			
		||||
                       NULL, NULL, SW_SHOWNORMAL) <= 32)
 | 
			
		||||
        {
 | 
			
		||||
            const gchar *message =
 | 
			
		||||
            _("GnuCash could not find the associated file");
 | 
			
		||||
            _("GnuCash could not find the associated file.");
 | 
			
		||||
            gnc_error_dialog(parent, "%s:\n%s", message, filename);
 | 
			
		||||
        }
 | 
			
		||||
        g_free (wincmd);
 | 
			
		||||
 
 | 
			
		||||
@@ -496,13 +496,13 @@ gbv_create_widget (GncBudgetView *budget_view)
 | 
			
		||||
    // Create totals tree view
 | 
			
		||||
    totals_tree_model = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING);
 | 
			
		||||
    gtk_list_store_append (totals_tree_model, &iter);
 | 
			
		||||
    gtk_list_store_set (totals_tree_model, &iter, 0, _("Inflow from Income"),
 | 
			
		||||
    gtk_list_store_set (totals_tree_model, &iter, 0, _("Income"),
 | 
			
		||||
                                                  1, TOTALS_TYPE_INCOME, 2, " ", 3, " ", -1);
 | 
			
		||||
    gtk_list_store_append (totals_tree_model, &iter);
 | 
			
		||||
    gtk_list_store_set (totals_tree_model, &iter, 0, _("Outflow to Expenses"),
 | 
			
		||||
    gtk_list_store_set (totals_tree_model, &iter, 0, _("Expenses"),
 | 
			
		||||
                                                  1, TOTALS_TYPE_EXPENSES, 2, " ", 3, " ", -1);
 | 
			
		||||
    gtk_list_store_append (totals_tree_model, &iter);
 | 
			
		||||
    gtk_list_store_set (totals_tree_model, &iter, 0, _("Outflow to Asset/Equity/Liability"),
 | 
			
		||||
    gtk_list_store_set (totals_tree_model, &iter, 0, _("Transfer"),
 | 
			
		||||
                                                  1, TOTALS_TYPE_ASSET_LIAB_EQ, 2, " ", 3, " ", -1);
 | 
			
		||||
    gtk_list_store_append (totals_tree_model, &iter);
 | 
			
		||||
    gtk_list_store_set (totals_tree_model, &iter, 0, _("Remaining to Budget"),
 | 
			
		||||
@@ -1329,11 +1329,11 @@ totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
 | 
			
		||||
            switch (row_type)
 | 
			
		||||
            {
 | 
			
		||||
                case TOTALS_TYPE_ASSET_LIAB_EQ:
 | 
			
		||||
                    if ((acctype == ACCT_TYPE_LIABILITY) ||
 | 
			
		||||
                        (acctype == ACCT_TYPE_EQUITY))
 | 
			
		||||
                        neg = !neg;
 | 
			
		||||
                    else if (acctype != ACCT_TYPE_ASSET)
 | 
			
		||||
                    if ((acctype != ACCT_TYPE_ASSET) &&
 | 
			
		||||
                        (acctype != ACCT_TYPE_LIABILITY) &&
 | 
			
		||||
                        (acctype != ACCT_TYPE_EQUITY))
 | 
			
		||||
                        continue;
 | 
			
		||||
                    neg = !neg;
 | 
			
		||||
                    break;
 | 
			
		||||
                case TOTALS_TYPE_EXPENSES:
 | 
			
		||||
                    if (acctype != ACCT_TYPE_EXPENSE)
 | 
			
		||||
@@ -1345,10 +1345,7 @@ totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
 | 
			
		||||
                    neg = !neg;
 | 
			
		||||
                    break;
 | 
			
		||||
                case TOTALS_TYPE_REMAINDER:
 | 
			
		||||
                    if ((acctype == ACCT_TYPE_ASSET) ||
 | 
			
		||||
                        (acctype == ACCT_TYPE_INCOME) ||
 | 
			
		||||
                        (acctype == ACCT_TYPE_EXPENSE))
 | 
			
		||||
                        neg = !neg;
 | 
			
		||||
                    neg = !neg;
 | 
			
		||||
                    break;
 | 
			
		||||
                default:
 | 
			
		||||
                    continue;       /* don't count if unexpected total row type is passed in... */
 | 
			
		||||
@@ -1366,6 +1363,7 @@ totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
 | 
			
		||||
                        (acctype != ACCT_TYPE_LIABILITY) &&
 | 
			
		||||
                        (acctype != ACCT_TYPE_EQUITY))
 | 
			
		||||
                        continue;
 | 
			
		||||
                    neg = (acctype == ACCT_TYPE_ASSET);
 | 
			
		||||
                    break;
 | 
			
		||||
                case TOTALS_TYPE_EXPENSES:
 | 
			
		||||
                    if (acctype != ACCT_TYPE_EXPENSE)
 | 
			
		||||
@@ -1376,7 +1374,8 @@ totals_col_source (GtkTreeViewColumn *col, GtkCellRenderer *cell,
 | 
			
		||||
                        continue;
 | 
			
		||||
                    break;
 | 
			
		||||
                case TOTALS_TYPE_REMAINDER:
 | 
			
		||||
                    neg = (acctype != ACCT_TYPE_INCOME);
 | 
			
		||||
                    neg = ((acctype == ACCT_TYPE_ASSET) ||
 | 
			
		||||
                           (acctype == ACCT_TYPE_EXPENSE));
 | 
			
		||||
                    break;
 | 
			
		||||
                default:
 | 
			
		||||
                    continue;       /* don't count if unexpected total row type is passed in... */
 | 
			
		||||
 
 | 
			
		||||
@@ -60,25 +60,25 @@ static void gnc_plugin_budget_cmd_delete_budget (GtkAction *action,
 | 
			
		||||
static GtkActionEntry gnc_plugin_actions [] =
 | 
			
		||||
{
 | 
			
		||||
    {
 | 
			
		||||
        "NewBudgetAction", NULL, N_("New Budget"), NULL,
 | 
			
		||||
        N_("Create a new Budget"),
 | 
			
		||||
        "NewBudgetAction", NULL, N_("_New Budget"), NULL,
 | 
			
		||||
        N_("Create a new Budget."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_budget_cmd_new_budget)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
        "OpenBudgetAction", NULL, N_("Open Budget"), NULL,
 | 
			
		||||
        N_("Open an existing Budget"),
 | 
			
		||||
        "OpenBudgetAction", NULL, N_("_Open Budget"), NULL,
 | 
			
		||||
        N_("Open an existing Budget in a new tab. If none exists a new budget will be created."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_budget_cmd_open_budget)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
        "CopyBudgetAction", NULL, N_("Copy Budget"), NULL,
 | 
			
		||||
        N_("Copy an existing Budget"),
 | 
			
		||||
        "CopyBudgetAction", NULL, N_("_Copy Budget"), NULL,
 | 
			
		||||
        N_("Copy an existing Budget."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_budget_cmd_copy_budget)
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "DeleteBudgetAction", NULL, N_("Delete Budget"), NULL,
 | 
			
		||||
        N_("Deletes an existing Budget"),
 | 
			
		||||
        "DeleteBudgetAction", NULL, N_("_Delete Budget"), NULL,
 | 
			
		||||
        N_("Delete an existing Budget."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_budget_cmd_delete_budget)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -138,37 +138,37 @@ static GtkActionEntry gnc_plugin_page_budget_actions [] =
 | 
			
		||||
    /* File menu */
 | 
			
		||||
    {
 | 
			
		||||
        "OpenAccountAction", GNC_ICON_OPEN_ACCOUNT, N_("Open _Account"), NULL,
 | 
			
		||||
        N_("Open the selected account"),
 | 
			
		||||
        N_("Open the selected account."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_page_budget_cmd_open_account)
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "OpenSubaccountsAction", GNC_ICON_OPEN_ACCOUNT,
 | 
			
		||||
        N_("Open _Subaccounts"), NULL,
 | 
			
		||||
        N_("Open the selected account and all its subaccounts"),
 | 
			
		||||
        N_("Open the selected account and all its subaccounts."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_page_budget_cmd_open_subaccounts)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    /* Edit menu */
 | 
			
		||||
    {
 | 
			
		||||
        "DeleteBudgetAction", GNC_ICON_DELETE_BUDGET, N_("_Delete Budget"),
 | 
			
		||||
        NULL, N_("Delete this budget"),
 | 
			
		||||
        NULL, N_("Delete this budget."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_page_budget_cmd_delete_budget)
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "OptionsBudgetAction", "document-properties", N_("Budget Options"),
 | 
			
		||||
        NULL, N_("Edit this budget's options"),
 | 
			
		||||
        "OptionsBudgetAction", "document-properties", N_("Budget _Options..."),
 | 
			
		||||
        NULL, N_("Edit this budget's options."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_page_budget_cmd_view_options)
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "EstimateBudgetAction", "system-run", N_("Estimate Budget"),
 | 
			
		||||
        "EstimateBudgetAction", "system-run", N_("Esti_mate Budget..."),
 | 
			
		||||
        NULL,
 | 
			
		||||
        N_("Estimate a budget value for the selected accounts from past transactions"),
 | 
			
		||||
        N_("Estimate a budget value for the selected accounts from past transactions."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_page_budget_cmd_estimate_budget)
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "AllPeriodsBudgetAction", "system-run", N_("All Periods"),
 | 
			
		||||
        "AllPeriodsBudgetAction", "system-run", N_("_All Periods..."),
 | 
			
		||||
        NULL,
 | 
			
		||||
        N_("Edit budget for all periods for the selected accounts"),
 | 
			
		||||
        N_("Edit budget for all periods for the selected accounts."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_page_budget_cmd_allperiods_budget)
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
@@ -184,7 +184,7 @@ static GtkActionEntry gnc_plugin_page_budget_actions [] =
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "ViewRefreshAction", "view-refresh", N_("_Refresh"), "<primary>r",
 | 
			
		||||
        N_("Refresh this window"),
 | 
			
		||||
        N_("Refresh this window."),
 | 
			
		||||
        G_CALLBACK(gnc_plugin_page_budget_cmd_refresh)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -370,17 +370,15 @@ gnc_start_recn_date_changed (GtkWidget *widget, startRecnWindowData *data)
 | 
			
		||||
 | 
			
		||||
    if (days_after_today > 0)
 | 
			
		||||
    {
 | 
			
		||||
        /* Translators: This is a ngettext(3) message, %d is the
 | 
			
		||||
           number of days in the future */
 | 
			
		||||
        gchar *str = g_strdup_printf
 | 
			
		||||
            /* Translators: %d is the number of days in the future */
 | 
			
		||||
            (ngettext ("Statement Date is %d day after today.",
 | 
			
		||||
                       "Statement Date is %d days after today.",
 | 
			
		||||
                       days_after_today),
 | 
			
		||||
             days_after_today);
 | 
			
		||||
 | 
			
		||||
        /* Translators: This is a ngettext(3) message, %d is the
 | 
			
		||||
           number of days in the future */
 | 
			
		||||
        gchar *tip_start = g_strdup_printf
 | 
			
		||||
            /* Translators: %d is the number of days in the future */
 | 
			
		||||
            (ngettext ("The statement date you have chosen is %d day in the future.",
 | 
			
		||||
                       "The statement date you have chosen is %d days in the future.",
 | 
			
		||||
                       days_after_today),
 | 
			
		||||
 
 | 
			
		||||
@@ -627,6 +627,10 @@ static void split_find_match (GNCImportTransInfo * trans_info,
 | 
			
		||||
        Transaction *new_trans = gnc_import_TransInfo_get_trans (trans_info);
 | 
			
		||||
        Split *new_trans_fsplit = gnc_import_TransInfo_get_fsplit (trans_info);
 | 
			
		||||
 | 
			
		||||
        // Do not consider transactions that have been previously matched.
 | 
			
		||||
        if (gnc_import_split_has_online_id (split))
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        /* Matching heuristics */
 | 
			
		||||
 | 
			
		||||
        /* Amount heuristics */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user