gnucash stable: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Fri Aug 11 23:16:48 EDT 2023
Updated via https://github.com/Gnucash/gnucash/commit/9fea6a87 (commit)
via https://github.com/Gnucash/gnucash/commit/8d3b2d8c (commit)
via https://github.com/Gnucash/gnucash/commit/bda9ab71 (commit)
from https://github.com/Gnucash/gnucash/commit/f8546dc4 (commit)
commit 9fea6a87c58c6594b9acd327c34af68824243d78
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Aug 10 22:34:12 2023 +0800
[gnucash-cli] doesn't need gnc-gnome-utils anymore
removing 4k from the gnucash-cli file
diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
index 95ff42cd8f..a9461979b3 100644
--- a/gnucash/CMakeLists.txt
+++ b/gnucash/CMakeLists.txt
@@ -140,7 +140,7 @@ add_dependencies (gnucash-cli gnucash)
target_compile_definitions(gnucash-cli PRIVATE -DG_LOG_DOMAIN=\"gnc.bin\")
target_link_libraries (gnucash-cli
- gnc-gnome-utils gnc-app-utils
+ gnc-app-utils
gnc-engine gnc-core-utils gnucash-guile gnc-report
${GUILE_LDFLAGS} PkgConfig::GLIB2
${Boost_LIBRARIES}
commit 8d3b2d8c6b663a0976389e9f168335f9a6086a6c
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Aug 10 22:33:48 2023 +0800
[gnucash-commands] gnucash-cli has customised gnc_shutdown
which doesn't need to shut down ui
diff --git a/gnucash/gnucash-commands.cpp b/gnucash/gnucash-commands.cpp
index ff43d57f1c..7f1fe371d3 100644
--- a/gnucash/gnucash-commands.cpp
+++ b/gnucash/gnucash-commands.cpp
@@ -36,7 +36,6 @@
#include <gnc-engine-guile.h>
#include <gnc-prefs.h>
#include <gnc-prefs-utils.h>
-#include <gnc-gnome-utils.h>
#include <gnc-session.h>
#include <qoflog.h>
@@ -74,12 +73,19 @@ cleanup_and_exit_with_failure (QofSession *session)
return 1;
}
+static void gnc_shutdown_cli (int exit_status)
+{
+ gnc_hook_run (HOOK_SHUTDOWN, NULL);
+ gnc_engine_shutdown ();
+ exit (exit_status);
+}
+
/* scm_boot_guile doesn't expect to return, so call shutdown ourselves here */
static void
scm_cleanup_and_exit_with_failure (QofSession *session)
{
cleanup_and_exit_with_failure (session);
- gnc_shutdown (1);
+ gnc_shutdown_cli (1);
}
static void
@@ -238,7 +244,7 @@ return a document object with export-string or export-error.") << std::endl;
qof_session_destroy (session);
qof_event_resume ();
- gnc_shutdown (0);
+ gnc_shutdown_cli (0);
return;
}
@@ -278,7 +284,7 @@ scm_report_show (void *data,
scm_call_2 (scm_c_eval_string ("gnc:cmdline-report-show"),
scm_from_locale_string (args->show_report.c_str ()),
scm_current_output_port ());
- gnc_shutdown (0);
+ gnc_shutdown_cli (0);
return;
}
@@ -295,7 +301,7 @@ scm_report_list ([[maybe_unused]] void *data,
scm_call_1 (scm_c_eval_string ("gnc:cmdline-report-list"),
scm_current_output_port ());
- gnc_shutdown (0);
+ gnc_shutdown_cli (0);
return;
}
commit bda9ab71e89aea17837e39a67033c9919caea819
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Thu Aug 10 22:32:25 2023 +0800
[gnucash-core-app.cpp] gnc_load_scm_config has callback to show/log message
thus the cli gnucash-commands.cpp sends a customised callback which
doesn't update splash screen.
diff --git a/gnucash/gnucash-commands.cpp b/gnucash/gnucash-commands.cpp
index 661a2b51c1..ff43d57f1c 100644
--- a/gnucash/gnucash-commands.cpp
+++ b/gnucash/gnucash-commands.cpp
@@ -130,7 +130,7 @@ scm_run_report (void *data,
scm_c_use_module ("gnucash reports");
gnc_report_init ();
- Gnucash::gnc_load_scm_config();
+ Gnucash::gnc_load_scm_config ([](const gchar *msg){ PINFO ("%s", msg); });
gnc_prefs_init ();
qof_event_suspend ();
@@ -259,7 +259,7 @@ scm_report_show (void *data,
scm_c_use_module ("gnucash app-utils");
scm_c_use_module ("gnucash reports");
gnc_report_init ();
- Gnucash::gnc_load_scm_config();
+ Gnucash::gnc_load_scm_config ([](const gchar *msg){ PINFO ("%s", msg); });
if (!args->file_to_load.empty())
{
@@ -291,7 +291,7 @@ scm_report_list ([[maybe_unused]] void *data,
scm_c_use_module ("gnucash app-utils");
scm_c_use_module ("gnucash reports");
gnc_report_init ();
- Gnucash::gnc_load_scm_config();
+ Gnucash::gnc_load_scm_config ([](const gchar *msg){ PINFO ("%s", msg); });
scm_call_1 (scm_c_eval_string ("gnc:cmdline-report-list"),
scm_current_output_port ());
diff --git a/gnucash/gnucash-core-app.cpp b/gnucash/gnucash-core-app.cpp
index 4746765d09..c8d84afaae 100644
--- a/gnucash/gnucash-core-app.cpp
+++ b/gnucash/gnucash-core-app.cpp
@@ -41,7 +41,6 @@
#include <gnc-path.h>
#include <gnc-prefs.h>
#include <gnc-gsettings.h>
-#include <gnc-splash.h>
#include <gnc-version.h>
#include "gnucash-locale-platform.h"
@@ -84,22 +83,15 @@ gnc_print_unstable_message(void)
<< bl::format (std::string{_("To find the last stable version, please refer to {1}")}) % PACKAGE_URL << "\n";
}
-static void
-update_message(const gchar *msg)
-{
- gnc_update_splash_screen(msg, GNC_SPLASH_PERCENTAGE_UNKNOWN);
- PINFO("%s", msg);
-}
-
void
-Gnucash::gnc_load_scm_config (void)
+Gnucash::gnc_load_scm_config (MessageCb update_message_cb)
{
static auto is_system_config_loaded = false;
if (!is_system_config_loaded)
{
/* Translators: Guile is the programming language of the reports */
auto msg = _("Loading system wide Guile extensionsâ¦");
- update_message (msg);
+ update_message_cb (msg);
auto system_config_dir = gnc_path_get_pkgsysconfdir ();
auto system_config = g_build_filename (system_config_dir, "config", nullptr);
is_system_config_loaded = gfec_try_load (system_config);
@@ -111,7 +103,7 @@ Gnucash::gnc_load_scm_config (void)
if (!is_user_config_loaded)
{
auto msg = _("Loading user specific Guile extensionsâ¦");
- update_message (msg);
+ update_message_cb (msg);
auto config_filename = g_build_filename (gnc_userconfig_dir (), "config-user.scm", nullptr);
is_user_config_loaded = gfec_try_load (config_filename);
g_free (config_filename);
diff --git a/gnucash/gnucash-core-app.hpp b/gnucash/gnucash-core-app.hpp
index 4a4ded5102..b9ba65dec9 100644
--- a/gnucash/gnucash-core-app.hpp
+++ b/gnucash/gnucash-core-app.hpp
@@ -70,6 +70,8 @@ private:
char *sys_locale = nullptr;
};
-void gnc_load_scm_config(void);
+using MessageCb = std::function<void(const char*)>;
+
+void gnc_load_scm_config (MessageCb update_message);
}
#endif
diff --git a/gnucash/gnucash.cpp b/gnucash/gnucash.cpp
index 856e4d2beb..1110b05baa 100644
--- a/gnucash/gnucash.cpp
+++ b/gnucash/gnucash.cpp
@@ -155,7 +155,11 @@ scm_run_gnucash (void *data, [[maybe_unused]] int argc, [[maybe_unused]] char **
/* Load the scm config files before starting up the gui. This ensures that
* custom reports have been read into memory before the Reports
* menu is created. */
- Gnucash::gnc_load_scm_config();
+ Gnucash::gnc_load_scm_config ([](const gchar *msg)
+ {
+ gnc_update_splash_screen (msg, GNC_SPLASH_PERCENTAGE_UNKNOWN);
+ PINFO ("%s", msg);
+ });
/* Setting-up the report menu must come after the module
loading but before the gui initialization. */
Summary of changes:
gnucash/CMakeLists.txt | 2 +-
gnucash/gnucash-commands.cpp | 22 ++++++++++++++--------
gnucash/gnucash-core-app.cpp | 14 +++-----------
gnucash/gnucash-core-app.hpp | 4 +++-
gnucash/gnucash.cpp | 6 +++++-
5 files changed, 26 insertions(+), 22 deletions(-)
More information about the gnucash-changes
mailing list