mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Fix transient parent warnings for tip-of-the-day and file dialogs
This commit is contained in:
@@ -144,15 +144,15 @@ gnc_ui_file_access_response_cb(GtkDialog *dialog, gint response, GtkDialog *unus
|
||||
gboolean open_readonly = faw->readonly_checkbutton
|
||||
? gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(faw->readonly_checkbutton))
|
||||
: FALSE;
|
||||
gnc_file_open_file( url, open_readonly );
|
||||
gnc_file_open_file (gnc_ui_get_main_window (GTK_WIDGET (dialog)), url, open_readonly);
|
||||
}
|
||||
else if ( faw->type == FILE_ACCESS_SAVE_AS )
|
||||
{
|
||||
gnc_file_do_save_as( url );
|
||||
gnc_file_do_save_as (gnc_ui_get_main_window (GTK_WIDGET (dialog)), url);
|
||||
}
|
||||
else if ( faw->type == FILE_ACCESS_EXPORT )
|
||||
{
|
||||
gnc_file_do_export( url );
|
||||
gnc_file_do_export (gnc_ui_get_main_window (GTK_WIDGET (dialog)), url);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -240,7 +240,7 @@ get_default_database( void )
|
||||
}
|
||||
|
||||
static void
|
||||
gnc_ui_file_access( int type )
|
||||
gnc_ui_file_access (GtkWindow *parent, int type)
|
||||
{
|
||||
FileAccessWindow *faw;
|
||||
GtkBuilder* builder;
|
||||
@@ -275,6 +275,7 @@ gnc_ui_file_access( int type )
|
||||
builder = gtk_builder_new();
|
||||
gnc_builder_add_from_file (builder, "dialog-file-access.glade", "file_access_dialog" );
|
||||
faw->dialog = GTK_WIDGET(gtk_builder_get_object (builder, "file_access_dialog" ));
|
||||
gtk_window_set_transient_for (GTK_WINDOW (faw->dialog), parent);
|
||||
g_object_set_data_full( G_OBJECT(faw->dialog), "FileAccessWindow", faw, g_free );
|
||||
|
||||
// Set the style context for this dialog so it can be easily manipulated with css
|
||||
@@ -446,21 +447,21 @@ gnc_ui_file_access( int type )
|
||||
}
|
||||
|
||||
void
|
||||
gnc_ui_file_access_for_open( void )
|
||||
gnc_ui_file_access_for_open (GtkWindow *parent)
|
||||
{
|
||||
gnc_ui_file_access( FILE_ACCESS_OPEN );
|
||||
gnc_ui_file_access (parent, FILE_ACCESS_OPEN);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gnc_ui_file_access_for_save_as( void )
|
||||
gnc_ui_file_access_for_save_as (GtkWindow *parent)
|
||||
{
|
||||
gnc_ui_file_access( FILE_ACCESS_SAVE_AS );
|
||||
gnc_ui_file_access (parent, FILE_ACCESS_SAVE_AS);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gnc_ui_file_access_for_export( void )
|
||||
gnc_ui_file_access_for_export (GtkWindow *parent)
|
||||
{
|
||||
gnc_ui_file_access( FILE_ACCESS_EXPORT );
|
||||
gnc_ui_file_access (parent, FILE_ACCESS_EXPORT);
|
||||
}
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
* loading/open and for saving.
|
||||
*/
|
||||
|
||||
void gnc_ui_file_access_for_open( void );
|
||||
void gnc_ui_file_access_for_save_as( void );
|
||||
void gnc_ui_file_access_for_export( void );
|
||||
void gnc_ui_file_access_for_open (GtkWindow *parent);
|
||||
void gnc_ui_file_access_for_save_as (GtkWindow *parent);
|
||||
void gnc_ui_file_access_for_export (GtkWindow *parent);
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "gnc-prefs.h"
|
||||
#include "gnc-gnome-utils.h"
|
||||
#include "gnc-engine.h"
|
||||
#include "gnc-ui.h"
|
||||
|
||||
#define GNC_PREFS_GROUP "dialogs.totd"
|
||||
#define GNC_PREF_CURRENT_TIP "current-tip"
|
||||
@@ -274,7 +275,8 @@ show_handler (const char *class_name, gint component_id,
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
gtk_window_present(GTK_WINDOW(totd_dialog->dialog));
|
||||
gtk_window_set_transient_for (GTK_WINDOW (totd_dialog->dialog),
|
||||
gnc_ui_get_main_window (NULL));
|
||||
LEAVE(" ");
|
||||
return(TRUE);
|
||||
}
|
||||
@@ -374,3 +376,17 @@ gnc_totd_dialog (GtkWindow *parent, gboolean startup)
|
||||
|
||||
LEAVE("");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/****************************************************
|
||||
* Set the totd dialog transient for the currently
|
||||
* active main window. This will prevent the totd
|
||||
* dialog from accidentally hiding behind a main
|
||||
* window.
|
||||
****************************************************/
|
||||
void
|
||||
gnc_totd_dialog_reparent (void)
|
||||
{
|
||||
gnc_forall_gui_components(DIALOG_TOTD_CM_CLASS, show_handler, NULL);
|
||||
}
|
||||
|
||||
@@ -26,5 +26,6 @@
|
||||
#define DIALOG_TOTD_H
|
||||
|
||||
void gnc_totd_dialog (GtkWindow *parent, gboolean startup);
|
||||
void gnc_totd_dialog_reparent (void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -211,7 +211,7 @@ static gboolean autosave_timeout_cb(gpointer user_data)
|
||||
else
|
||||
g_debug("autosave_timeout_cb: toplevel is not a GNC_WINDOW\n");
|
||||
|
||||
gnc_file_save();
|
||||
gnc_file_save (GTK_WINDOW (toplevel));
|
||||
|
||||
gnc_main_window_set_progressbar_window(NULL);
|
||||
|
||||
|
||||
@@ -76,7 +76,8 @@ static gint save_in_progress = 0;
|
||||
\********************************************************************/
|
||||
|
||||
char *
|
||||
gnc_file_dialog (const char * title,
|
||||
gnc_file_dialog (GtkWindow *parent,
|
||||
const char * title,
|
||||
GList * filters,
|
||||
const char * starting_dir,
|
||||
GNCFileDialogType type
|
||||
@@ -124,7 +125,7 @@ gnc_file_dialog (const char * title,
|
||||
|
||||
file_box = gtk_file_chooser_dialog_new(
|
||||
title,
|
||||
NULL,
|
||||
parent,
|
||||
action,
|
||||
_("_Cancel"), GTK_RESPONSE_CANCEL,
|
||||
NULL);
|
||||
@@ -139,9 +140,6 @@ gnc_file_dialog (const char * title,
|
||||
starting_dir);
|
||||
|
||||
gtk_window_set_modal(GTK_WINDOW(file_box), TRUE);
|
||||
/*
|
||||
gtk_window_set_transient_for(GTK_WINDOW(file_box), gnc_ui_get_main_window(NULL));
|
||||
*/
|
||||
|
||||
if (filters != NULL)
|
||||
{
|
||||
@@ -194,11 +192,11 @@ gnc_file_dialog (const char * title,
|
||||
|
||||
|
||||
gboolean
|
||||
show_session_error (QofBackendError io_error,
|
||||
show_session_error (GtkWindow *parent,
|
||||
QofBackendError io_error,
|
||||
const char *newfile,
|
||||
GNCFileDialogType type)
|
||||
{
|
||||
GtkWindow *parent = gnc_ui_get_main_window (NULL);
|
||||
GtkWidget *dialog;
|
||||
gboolean uh_oh = TRUE;
|
||||
const char *fmt, *label;
|
||||
@@ -530,13 +528,13 @@ gnc_book_opened (void)
|
||||
}
|
||||
|
||||
void
|
||||
gnc_file_new (void)
|
||||
gnc_file_new (GtkWindow *parent)
|
||||
{
|
||||
QofSession *session;
|
||||
|
||||
/* If user attempts to start a new session before saving results of
|
||||
* the last one, prompt them to clean up their act. */
|
||||
if (!gnc_file_query_save (TRUE))
|
||||
if (!gnc_file_query_save (parent, TRUE))
|
||||
return;
|
||||
|
||||
if (gnc_current_session_exist())
|
||||
@@ -567,9 +565,8 @@ gnc_file_new (void)
|
||||
}
|
||||
|
||||
gboolean
|
||||
gnc_file_query_save (gboolean can_cancel)
|
||||
gnc_file_query_save (GtkWindow *parent, gboolean can_cancel)
|
||||
{
|
||||
GtkWidget *parent = GTK_WIDGET (gnc_ui_get_main_window(NULL));
|
||||
QofBook *current_book;
|
||||
|
||||
if (!gnc_current_session_exist())
|
||||
@@ -594,7 +591,7 @@ gnc_file_query_save (gboolean can_cancel)
|
||||
time64 oldest_change;
|
||||
gint minutes;
|
||||
|
||||
dialog = gtk_message_dialog_new(GTK_WINDOW(parent),
|
||||
dialog = gtk_message_dialog_new(parent,
|
||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||
GTK_MESSAGE_QUESTION,
|
||||
GTK_BUTTONS_NONE,
|
||||
@@ -622,7 +619,7 @@ gnc_file_query_save (gboolean can_cancel)
|
||||
switch (response)
|
||||
{
|
||||
case GTK_RESPONSE_YES:
|
||||
gnc_file_save ();
|
||||
gnc_file_save (parent);
|
||||
/* Go check the loop condition. */
|
||||
break;
|
||||
|
||||
@@ -650,7 +647,7 @@ gnc_file_query_save (gboolean can_cancel)
|
||||
#define RESPONSE_READONLY 4
|
||||
|
||||
static gboolean
|
||||
gnc_post_file_open (const char * filename, gboolean is_readonly)
|
||||
gnc_post_file_open (GtkWindow *parent, const char * filename, gboolean is_readonly)
|
||||
{
|
||||
QofSession *current_session, *new_session;
|
||||
QofBook *new_book;
|
||||
@@ -676,7 +673,8 @@ RESTART:
|
||||
newfile = gnc_uri_normalize_uri ( filename, TRUE );
|
||||
if (!newfile)
|
||||
{
|
||||
show_session_error (ERR_FILEIO_FILE_NOT_FOUND, filename,
|
||||
show_session_error (parent,
|
||||
ERR_FILEIO_FILE_NOT_FOUND, filename,
|
||||
GNC_FILE_DIALOG_OPEN);
|
||||
return FALSE;
|
||||
}
|
||||
@@ -742,14 +740,14 @@ RESTART:
|
||||
if (ERR_BACKEND_BAD_URL == io_err)
|
||||
{
|
||||
gchar *directory;
|
||||
show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
|
||||
show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_OPEN);
|
||||
io_err = ERR_BACKEND_NO_ERR;
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_DIR))
|
||||
directory = g_strdup (filename);
|
||||
else
|
||||
directory = gnc_get_default_directory (GNC_PREFS_GROUP_OPEN_SAVE);
|
||||
|
||||
filename = gnc_file_dialog (NULL, NULL, directory,
|
||||
filename = gnc_file_dialog (parent, NULL, NULL, directory,
|
||||
GNC_FILE_DIALOG_OPEN);
|
||||
qof_session_destroy (new_session);
|
||||
new_session = NULL;
|
||||
@@ -774,10 +772,6 @@ RESTART:
|
||||
);
|
||||
int rc;
|
||||
|
||||
GtkWindow *parent = gnc_get_splash_screen();
|
||||
if (!parent)
|
||||
parent = gnc_ui_get_main_window(NULL);
|
||||
|
||||
if (! gnc_uri_is_file_uri (newfile)) /* Hide the db password in error messages */
|
||||
displayname = gnc_uri_normalize_uri ( newfile, FALSE);
|
||||
else
|
||||
@@ -830,14 +824,14 @@ RESTART:
|
||||
* database so that the user will get a window that
|
||||
* they can click "Exit" on.
|
||||
*/
|
||||
gnc_file_new ();
|
||||
gnc_file_new (parent);
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* if the database doesn't exist, ask the user ... */
|
||||
else if ((ERR_BACKEND_NO_SUCH_DB == io_err))
|
||||
{
|
||||
if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN))
|
||||
if (!show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_OPEN))
|
||||
{
|
||||
/* user told us to create a new database. Do it. We
|
||||
* shouldn't have to worry about locking or clobbering,
|
||||
@@ -859,7 +853,7 @@ RESTART:
|
||||
|
||||
else
|
||||
{
|
||||
uh_oh = show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
|
||||
uh_oh = show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_OPEN);
|
||||
}
|
||||
|
||||
if (!uh_oh)
|
||||
@@ -906,14 +900,14 @@ RESTART:
|
||||
}
|
||||
}
|
||||
|
||||
uh_oh = show_session_error (io_err, newfile, GNC_FILE_DIALOG_OPEN);
|
||||
uh_oh = show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_OPEN);
|
||||
/* Attempt to update the database if it's too old */
|
||||
if ( !uh_oh && io_err == ERR_SQL_DB_TOO_OLD )
|
||||
{
|
||||
gnc_window_show_progress(_("Re-saving user data..."), 0.0);
|
||||
qof_session_safe_save(new_session, gnc_window_show_progress);
|
||||
io_err = qof_session_get_error(new_session);
|
||||
uh_oh = show_session_error(io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
uh_oh = show_session_error(parent, io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
}
|
||||
/* Database is either too old and couldn't (or user didn't
|
||||
* want it to) be updated or it's too new. Mark it as
|
||||
@@ -932,7 +926,7 @@ RESTART:
|
||||
* The backend forgot to set an error. So make one up. */
|
||||
if (!uh_oh && !new_root)
|
||||
{
|
||||
uh_oh = show_session_error (ERR_BACKEND_MISC, newfile,
|
||||
uh_oh = show_session_error (parent, ERR_BACKEND_MISC, newfile,
|
||||
GNC_FILE_DIALOG_OPEN);
|
||||
}
|
||||
|
||||
@@ -948,7 +942,7 @@ RESTART:
|
||||
uh_oh = TRUE;
|
||||
|
||||
// XXX: should pull out the file name here */
|
||||
gnc_error_dialog (gnc_ui_get_main_window (NULL), msg, "");
|
||||
gnc_error_dialog (parent, msg, "");
|
||||
g_free (msg);
|
||||
}
|
||||
if (template_root != NULL)
|
||||
@@ -1044,14 +1038,14 @@ RESTART:
|
||||
* paths, never db uris.
|
||||
*/
|
||||
gboolean
|
||||
gnc_file_open (void)
|
||||
gnc_file_open (GtkWindow *parent)
|
||||
{
|
||||
const gchar * newfile;
|
||||
gchar *last = NULL;
|
||||
gchar *default_dir = NULL;
|
||||
gboolean result;
|
||||
|
||||
if (!gnc_file_query_save (TRUE))
|
||||
if (!gnc_file_query_save (parent, TRUE))
|
||||
return FALSE;
|
||||
|
||||
if ( last && gnc_uri_is_file_uri ( last ) )
|
||||
@@ -1063,11 +1057,11 @@ gnc_file_open (void)
|
||||
else
|
||||
default_dir = gnc_get_default_directory(GNC_PREFS_GROUP_OPEN_SAVE);
|
||||
|
||||
newfile = gnc_file_dialog (_("Open"), NULL, default_dir, GNC_FILE_DIALOG_OPEN);
|
||||
newfile = gnc_file_dialog (parent, _("Open"), NULL, default_dir, GNC_FILE_DIALOG_OPEN);
|
||||
g_free ( last );
|
||||
g_free ( default_dir );
|
||||
|
||||
result = gnc_post_file_open ( newfile, /*is_readonly*/ FALSE );
|
||||
result = gnc_post_file_open (parent, newfile, /*is_readonly*/ FALSE );
|
||||
|
||||
/* This dialogue can show up early in the startup process. If the
|
||||
* user fails to pick a file (by e.g. hitting the cancel button), we
|
||||
@@ -1079,14 +1073,14 @@ gnc_file_open (void)
|
||||
}
|
||||
|
||||
gboolean
|
||||
gnc_file_open_file (const char * newfile, gboolean open_readonly)
|
||||
gnc_file_open_file (GtkWindow *parent, const char * newfile, gboolean open_readonly)
|
||||
{
|
||||
if (!newfile) return FALSE;
|
||||
|
||||
if (!gnc_file_query_save (TRUE))
|
||||
if (!gnc_file_query_save (parent, TRUE))
|
||||
return FALSE;
|
||||
|
||||
return gnc_post_file_open (newfile, open_readonly);
|
||||
return gnc_post_file_open (parent, newfile, open_readonly);
|
||||
}
|
||||
|
||||
/* Note: this dialog will only be used when dbi is not enabled
|
||||
@@ -1094,7 +1088,7 @@ gnc_file_open_file (const char * newfile, gboolean open_readonly)
|
||||
* never db uris
|
||||
*/
|
||||
void
|
||||
gnc_file_export (void)
|
||||
gnc_file_export (GtkWindow *parent)
|
||||
{
|
||||
const char *filename;
|
||||
char *default_dir = NULL; /* Default to last open */
|
||||
@@ -1112,13 +1106,14 @@ gnc_file_export (void)
|
||||
else
|
||||
default_dir = gnc_get_default_directory(GNC_PREFS_GROUP_EXPORT);
|
||||
|
||||
filename = gnc_file_dialog (_("Save"), NULL, default_dir,
|
||||
filename = gnc_file_dialog (parent,
|
||||
_("Save"), NULL, default_dir,
|
||||
GNC_FILE_DIALOG_SAVE);
|
||||
g_free ( last );
|
||||
g_free ( default_dir );
|
||||
if (!filename) return;
|
||||
|
||||
gnc_file_do_export( filename );
|
||||
gnc_file_do_export (parent, filename);
|
||||
|
||||
LEAVE (" ");
|
||||
}
|
||||
@@ -1155,7 +1150,7 @@ check_file_path (const char *path)
|
||||
|
||||
|
||||
void
|
||||
gnc_file_do_export(const char * filename)
|
||||
gnc_file_do_export(GtkWindow *parent, const char * filename)
|
||||
{
|
||||
QofSession *current_session, *new_session;
|
||||
gboolean ok;
|
||||
@@ -1178,7 +1173,7 @@ gnc_file_do_export(const char * filename)
|
||||
norm_file = gnc_uri_normalize_uri ( filename, TRUE );
|
||||
if (!norm_file)
|
||||
{
|
||||
show_session_error (ERR_FILEIO_FILE_NOT_FOUND, filename,
|
||||
show_session_error (parent, ERR_FILEIO_FILE_NOT_FOUND, filename,
|
||||
GNC_FILE_DIALOG_EXPORT);
|
||||
return;
|
||||
}
|
||||
@@ -1206,7 +1201,7 @@ gnc_file_do_export(const char * filename)
|
||||
{
|
||||
if (check_file_path (path))
|
||||
{
|
||||
show_session_error (ERR_FILEIO_RESERVED_WRITE, newfile,
|
||||
show_session_error (parent, ERR_FILEIO_RESERVED_WRITE, newfile,
|
||||
GNC_FILE_DIALOG_SAVE);
|
||||
return;
|
||||
}
|
||||
@@ -1220,7 +1215,7 @@ gnc_file_do_export(const char * filename)
|
||||
if (strlen (oldfile) && (strcmp(oldfile, newfile) == 0))
|
||||
{
|
||||
g_free (newfile);
|
||||
show_session_error (ERR_FILEIO_WRITE_ERROR, filename,
|
||||
show_session_error (parent, ERR_FILEIO_WRITE_ERROR, filename,
|
||||
GNC_FILE_DIALOG_EXPORT);
|
||||
return;
|
||||
}
|
||||
@@ -1254,7 +1249,7 @@ gnc_file_do_export(const char * filename)
|
||||
/* if file appears to be locked, ask the user ... */
|
||||
if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
|
||||
{
|
||||
if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_EXPORT))
|
||||
if (!show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_EXPORT))
|
||||
{
|
||||
/* user told us to ignore locks. So ignore them. */
|
||||
qof_session_begin (new_session, newfile, TRUE, FALSE, FALSE);
|
||||
@@ -1288,7 +1283,7 @@ gnc_file_do_export(const char * filename)
|
||||
static gboolean been_here_before = FALSE;
|
||||
|
||||
void
|
||||
gnc_file_save (void)
|
||||
gnc_file_save (GtkWindow *parent)
|
||||
{
|
||||
QofBackendError io_err;
|
||||
const char * newfile;
|
||||
@@ -1302,19 +1297,19 @@ gnc_file_save (void)
|
||||
|
||||
if (!strlen (qof_session_get_url (session)))
|
||||
{
|
||||
gnc_file_save_as ();
|
||||
gnc_file_save_as (parent);
|
||||
return;
|
||||
}
|
||||
|
||||
if (qof_book_is_readonly(qof_session_get_book(session)))
|
||||
{
|
||||
gint response = gnc_ok_cancel_dialog(gnc_ui_get_main_window (NULL),
|
||||
gint response = gnc_ok_cancel_dialog(parent,
|
||||
GTK_RESPONSE_CANCEL,
|
||||
_("The database was opened read-only. "
|
||||
"Do you want to save it to a different place?"));
|
||||
if (response == GTK_RESPONSE_OK)
|
||||
{
|
||||
gnc_file_save_as ();
|
||||
gnc_file_save_as (parent);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -1334,11 +1329,11 @@ gnc_file_save (void)
|
||||
if (ERR_BACKEND_NO_ERR != io_err)
|
||||
{
|
||||
newfile = qof_session_get_url(session);
|
||||
show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
|
||||
if (been_here_before) return;
|
||||
been_here_before = TRUE;
|
||||
gnc_file_save_as (); /* been_here prevents infinite recursion */
|
||||
gnc_file_save_as (parent); /* been_here prevents infinite recursion */
|
||||
been_here_before = FALSE;
|
||||
return;
|
||||
}
|
||||
@@ -1354,7 +1349,7 @@ gnc_file_save (void)
|
||||
* never db uris. See gnc_file_do_save_as for that.
|
||||
*/
|
||||
void
|
||||
gnc_file_save_as (void)
|
||||
gnc_file_save_as (GtkWindow *parent)
|
||||
{
|
||||
const gchar *filename;
|
||||
gchar *default_dir = NULL; /* Default to last open */
|
||||
@@ -1372,19 +1367,20 @@ gnc_file_save_as (void)
|
||||
else
|
||||
default_dir = gnc_get_default_directory(GNC_PREFS_GROUP_OPEN_SAVE);
|
||||
|
||||
filename = gnc_file_dialog (_("Save"), NULL, default_dir,
|
||||
filename = gnc_file_dialog (parent,
|
||||
_("Save"), NULL, default_dir,
|
||||
GNC_FILE_DIALOG_SAVE);
|
||||
g_free ( last );
|
||||
g_free ( default_dir );
|
||||
if (!filename) return;
|
||||
|
||||
gnc_file_do_save_as( filename );
|
||||
gnc_file_do_save_as (parent, filename);
|
||||
|
||||
LEAVE (" ");
|
||||
}
|
||||
|
||||
void
|
||||
gnc_file_do_save_as (const char* filename)
|
||||
gnc_file_do_save_as (GtkWindow *parent, const char* filename)
|
||||
{
|
||||
QofSession *new_session;
|
||||
QofSession *session;
|
||||
@@ -1409,7 +1405,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
norm_file = gnc_uri_normalize_uri ( filename, TRUE );
|
||||
if (!norm_file)
|
||||
{
|
||||
show_session_error (ERR_FILEIO_FILE_NOT_FOUND, filename,
|
||||
show_session_error (parent, ERR_FILEIO_FILE_NOT_FOUND, filename,
|
||||
GNC_FILE_DIALOG_SAVE);
|
||||
return;
|
||||
}
|
||||
@@ -1437,7 +1433,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
{
|
||||
if (check_file_path (path))
|
||||
{
|
||||
show_session_error (ERR_FILEIO_RESERVED_WRITE, newfile,
|
||||
show_session_error (parent, ERR_FILEIO_RESERVED_WRITE, newfile,
|
||||
GNC_FILE_DIALOG_SAVE);
|
||||
return;
|
||||
}
|
||||
@@ -1452,7 +1448,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
if (strlen (oldfile) && (strcmp(oldfile, newfile) == 0))
|
||||
{
|
||||
g_free (newfile);
|
||||
gnc_file_save ();
|
||||
gnc_file_save (parent);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1495,7 +1491,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
/* if file appears to be locked, ask the user ... */
|
||||
else if (ERR_BACKEND_LOCKED == io_err || ERR_BACKEND_READONLY == io_err)
|
||||
{
|
||||
if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE))
|
||||
if (!show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_SAVE))
|
||||
{
|
||||
/* user told us to ignore locks. So ignore them. */
|
||||
qof_session_begin (new_session, newfile, TRUE, FALSE, FALSE);
|
||||
@@ -1507,7 +1503,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
(ERR_BACKEND_NO_SUCH_DB == io_err) ||
|
||||
(ERR_SQL_DB_TOO_OLD == io_err))
|
||||
{
|
||||
if (FALSE == show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE))
|
||||
if (!show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_SAVE))
|
||||
{
|
||||
/* user told us to create a new database. Do it. */
|
||||
qof_session_begin (new_session, newfile, FALSE, TRUE, FALSE);
|
||||
@@ -1521,7 +1517,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
io_err = qof_session_get_error (new_session);
|
||||
if (ERR_BACKEND_NO_ERR != io_err)
|
||||
{
|
||||
show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
xaccLogDisable();
|
||||
qof_session_destroy (new_session);
|
||||
xaccLogEnable();
|
||||
@@ -1567,7 +1563,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
/* Well, poop. The save failed, so the new session is invalid and we
|
||||
* need to restore the old one.
|
||||
*/
|
||||
show_session_error (io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
show_session_error (parent, io_err, newfile, GNC_FILE_DIALOG_SAVE);
|
||||
qof_event_suspend();
|
||||
qof_session_swap_data( new_session, session );
|
||||
qof_session_destroy( new_session );
|
||||
@@ -1596,7 +1592,7 @@ gnc_file_do_save_as (const char* filename)
|
||||
}
|
||||
|
||||
void
|
||||
gnc_file_revert (void)
|
||||
gnc_file_revert (GtkWindow *parent)
|
||||
{
|
||||
QofSession *session;
|
||||
const gchar *fileurl, *filename, *tmp;
|
||||
@@ -1618,7 +1614,7 @@ gnc_file_revert (void)
|
||||
return;
|
||||
|
||||
qof_book_mark_session_saved (qof_session_get_book (session));
|
||||
gnc_file_open_file (fileurl, qof_book_is_readonly(gnc_get_current_book()));}
|
||||
gnc_file_open_file (parent, fileurl, qof_book_is_readonly(gnc_get_current_book()));}
|
||||
|
||||
void
|
||||
gnc_file_quit (void)
|
||||
|
||||
@@ -126,30 +126,34 @@ typedef enum
|
||||
GNC_FILE_DIALOG_EXPORT
|
||||
} GNCFileDialogType;
|
||||
|
||||
void gnc_file_new (void);
|
||||
gboolean gnc_file_open (void);
|
||||
void gnc_file_export(void);
|
||||
void gnc_file_save (void);
|
||||
void gnc_file_save_as (void);
|
||||
void gnc_file_do_export(const char* filename);
|
||||
void gnc_file_do_save_as(const char* filename);
|
||||
void gnc_file_revert (void);
|
||||
void gnc_file_new (GtkWindow *parent);
|
||||
gboolean gnc_file_open (GtkWindow *parent);
|
||||
void gnc_file_export(GtkWindow *parent);
|
||||
void gnc_file_save (GtkWindow *parent);
|
||||
void gnc_file_save_as (GtkWindow *parent);
|
||||
void gnc_file_do_export(GtkWindow *parent, const char* filename);
|
||||
void gnc_file_do_save_as(GtkWindow *parent, const char* filename);
|
||||
void gnc_file_revert (GtkWindow *parent);
|
||||
|
||||
/** Tell the user about errors in the backends
|
||||
|
||||
*/
|
||||
gboolean show_session_error (QofBackendError io_error,
|
||||
gboolean show_session_error (GtkWindow *parent,
|
||||
QofBackendError io_error,
|
||||
const char *newfile,
|
||||
GNCFileDialogType type);
|
||||
|
||||
char * gnc_file_dialog (const char * title,
|
||||
char * gnc_file_dialog (GtkWindow *parent,
|
||||
const char * title,
|
||||
GList * filters,
|
||||
const char * starting_dir,
|
||||
GNCFileDialogType type);
|
||||
|
||||
gboolean gnc_file_open_file (const char *filename, gboolean open_readonly);
|
||||
gboolean gnc_file_open_file (GtkWindow *parent,
|
||||
const char *filename,
|
||||
gboolean open_readonly);
|
||||
|
||||
gboolean gnc_file_query_save (gboolean can_cancel);
|
||||
gboolean gnc_file_query_save (GtkWindow *parent, gboolean can_cancel);
|
||||
|
||||
void gnc_file_quit (void);
|
||||
|
||||
|
||||
@@ -736,7 +736,7 @@ gnc_gui_init(void)
|
||||
/* Load css configuration file */
|
||||
gnc_add_css_file ();
|
||||
|
||||
gnc_totd_dialog(GTK_WINDOW(main_window), TRUE);
|
||||
gnc_totd_dialog (gnc_get_splash_screen (), TRUE);
|
||||
|
||||
LEAVE ("");
|
||||
return main_window;
|
||||
@@ -782,7 +782,7 @@ gnc_shutdown (int exit_status)
|
||||
{
|
||||
if (!gnome_is_terminating)
|
||||
{
|
||||
if (gnc_file_query_save(FALSE))
|
||||
if (gnc_file_query_save (gnc_ui_get_main_window (NULL), FALSE))
|
||||
{
|
||||
gnc_hook_run(HOOK_UI_SHUTDOWN, NULL);
|
||||
gnc_gui_shutdown();
|
||||
|
||||
@@ -1294,7 +1294,7 @@ gnc_main_window_prompt_for_save (GtkWidget *window)
|
||||
switch (response)
|
||||
{
|
||||
case GTK_RESPONSE_APPLY:
|
||||
gnc_file_save();
|
||||
gnc_file_save (GTK_WINDOW (window));
|
||||
return FALSE;
|
||||
|
||||
case GTK_RESPONSE_CLOSE:
|
||||
|
||||
@@ -696,7 +696,8 @@ gnc_plugin_file_history_cmd_open_file (GtkAction *action,
|
||||
filename = g_object_get_data(G_OBJECT(action), FILENAME_STRING);
|
||||
gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
|
||||
/* also opens new account page */
|
||||
gnc_file_open_file (filename, /*open_readonly*/ FALSE);
|
||||
gnc_file_open_file (GTK_WINDOW (data->window),
|
||||
filename, /*open_readonly*/ FALSE);
|
||||
gnc_window_set_progressbar_window (NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.10"/>
|
||||
<object class="GtkDialog" id="totd_dialog">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="title" translatable="yes">GnuCash Tip Of The Day</property>
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
#include "gnc-path.h"
|
||||
#include "gnc-gui-query.h"
|
||||
#include "gnc-tree-view-account.h"
|
||||
#include "gnc-ui.h"
|
||||
#include "gnc-ui-util.h"
|
||||
#include "io-example-account.h"
|
||||
#include "top-level.h"
|
||||
@@ -1317,7 +1318,7 @@ static void
|
||||
after_assistant(void)
|
||||
{
|
||||
qof_book_mark_session_dirty(gnc_get_current_book());
|
||||
gnc_ui_file_access_for_save_as();
|
||||
gnc_ui_file_access_for_save_as (gnc_ui_get_main_window (NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -67,7 +67,7 @@ after_hierarchy_assistant(void)
|
||||
gnc_set_first_startup (FALSE);
|
||||
|
||||
qof_book_mark_session_dirty(gnc_get_current_book());
|
||||
gnc_ui_file_access_for_save_as();
|
||||
gnc_ui_file_access_for_save_as (gnc_ui_get_main_window (NULL));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -422,7 +422,7 @@ gnc_plugin_basic_commands_class_init (GncPluginBasicCommandsClass *klass)
|
||||
/** Initialize a new instance of a basic commands plugin. This
|
||||
* function currently does nothing.
|
||||
*
|
||||
* @param page The new object instance created by the object
|
||||
* @param plugin The new object instance created by the object
|
||||
* system. */
|
||||
static void
|
||||
gnc_plugin_basic_commands_init (GncPluginBasicCommands *plugin)
|
||||
@@ -456,7 +456,7 @@ gnc_main_window_cmd_file_new (GtkAction *action, GncMainWindowActionData *data)
|
||||
if (!gnc_main_window_all_finish_pending())
|
||||
return;
|
||||
|
||||
gnc_file_new ();
|
||||
gnc_file_new (GTK_WINDOW (data->window));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -469,9 +469,9 @@ gnc_main_window_cmd_file_open (GtkAction *action, GncMainWindowActionData *data)
|
||||
|
||||
gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
|
||||
#ifdef HAVE_DBI_DBI_H
|
||||
gnc_ui_file_access_for_open();
|
||||
gnc_ui_file_access_for_open (GTK_WINDOW (data->window));
|
||||
#else
|
||||
gnc_file_open ();
|
||||
gnc_file_open (GTK_WINDOW (data->window));
|
||||
#endif
|
||||
gnc_window_set_progressbar_window (NULL);
|
||||
}
|
||||
@@ -485,7 +485,7 @@ gnc_main_window_cmd_file_save (GtkAction *action, GncMainWindowActionData *data)
|
||||
return;
|
||||
|
||||
gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
|
||||
gnc_file_save ();
|
||||
gnc_file_save (GTK_WINDOW (data->window));
|
||||
gnc_window_set_progressbar_window (NULL);
|
||||
}
|
||||
|
||||
@@ -499,9 +499,9 @@ gnc_main_window_cmd_file_save_as (GtkAction *action, GncMainWindowActionData *da
|
||||
|
||||
gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
|
||||
#ifdef HAVE_DBI_DBI_H
|
||||
gnc_ui_file_access_for_save_as();
|
||||
gnc_ui_file_access_for_save_as (GTK_WINDOW (data->window));
|
||||
#else
|
||||
gnc_file_save_as ();
|
||||
gnc_file_save_as (GTK_WINDOW (data->window));
|
||||
#endif
|
||||
gnc_window_set_progressbar_window (NULL);
|
||||
}
|
||||
@@ -515,7 +515,7 @@ gnc_main_window_cmd_file_revert (GtkAction *action, GncMainWindowActionData *dat
|
||||
return;
|
||||
|
||||
gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
|
||||
gnc_file_revert();
|
||||
gnc_file_revert(GTK_WINDOW (data->window));
|
||||
gnc_window_set_progressbar_window (NULL);
|
||||
}
|
||||
|
||||
@@ -526,7 +526,7 @@ gnc_main_window_cmd_file_export_accounts (GtkAction *action, GncMainWindowAction
|
||||
|
||||
gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
|
||||
#ifdef HAVE_DBI_DBI_H
|
||||
gnc_ui_file_access_for_export();
|
||||
gnc_ui_file_access_for_export (GTK_WINDOW (data->window));
|
||||
#else
|
||||
gnc_file_export ();
|
||||
#endif
|
||||
|
||||
@@ -295,6 +295,8 @@ cleanup:
|
||||
g_error_free(error);
|
||||
if (file_guid)
|
||||
g_free(file_guid);
|
||||
|
||||
gnc_totd_dialog_reparent ();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -646,7 +646,7 @@ inner_main (void *closure, int argc, char **argv)
|
||||
if (!nofile && (fn = get_file_to_load()))
|
||||
{
|
||||
gnc_update_splash_screen(_("Loading data..."), GNC_SPLASH_PERCENTAGE_UNKNOWN);
|
||||
gnc_file_open_file(fn, /*open_readonly*/ FALSE);
|
||||
gnc_file_open_file(gnc_get_splash_screen(), fn, /*open_readonly*/ FALSE);
|
||||
g_free(fn);
|
||||
}
|
||||
else if (gnc_prefs_get_bool(GNC_PREFS_GROUP_NEW_USER, GNC_PREF_FIRST_STARTUP))
|
||||
|
||||
@@ -68,7 +68,8 @@ typedef GWEN_SYNCIO GWEN_IO_LAYER;
|
||||
static QofLogModule log_module = GNC_MOD_IMPORT;
|
||||
|
||||
void
|
||||
gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
gnc_file_aqbanking_import(GtkWindow *parent,
|
||||
const gchar *aqbanking_importername,
|
||||
const gchar *aqbanking_profilename,
|
||||
gboolean execute_transactions)
|
||||
{
|
||||
@@ -96,7 +97,7 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
|
||||
/* Select a file */
|
||||
default_dir = gnc_get_default_directory(GNC_PREFS_GROUP_AQBANKING);
|
||||
selected_filename = gnc_file_dialog(_("Select a file to import"),
|
||||
selected_filename = gnc_file_dialog(parent, _("Select a file to import"),
|
||||
NULL, default_dir,
|
||||
GNC_FILE_DIALOG_IMPORT);
|
||||
g_free(default_dir);
|
||||
@@ -141,7 +142,7 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
if (!importer)
|
||||
{
|
||||
g_warning("Import module %s not found", aqbanking_importername);
|
||||
gnc_error_dialog(NULL, "%s",
|
||||
gnc_error_dialog(parent, "%s",
|
||||
_("Import module for DTAUS import not found."));
|
||||
goto cleanup;
|
||||
}
|
||||
@@ -229,7 +230,7 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
/* Before importing the results, if this is a new book, let user specify
|
||||
* book options, since they affect how transactions are created */
|
||||
if (gnc_is_new_book())
|
||||
gnc_new_book_option_display (GTK_WIDGET (gnc_ui_get_main_window(NULL)));
|
||||
gnc_new_book_option_display (GTK_WIDGET (parent));
|
||||
|
||||
/* Import the results */
|
||||
ieci = gnc_ab_import_context(context, AWAIT_TRANSACTIONS,
|
||||
@@ -319,7 +320,7 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
if (!successful)
|
||||
{
|
||||
g_warning("%s", errstr->str);
|
||||
gnc_error_dialog(NULL,
|
||||
gnc_error_dialog(parent,
|
||||
_("An error occurred while executing jobs: %d of %d failed. "
|
||||
"Please check the log window or gnucash.trace for the exact "
|
||||
"error message.\n\n%s")
|
||||
@@ -329,13 +330,13 @@ gnc_file_aqbanking_import(const gchar *aqbanking_importername,
|
||||
{
|
||||
if (num_jobs == 0)
|
||||
{
|
||||
gnc_info_dialog(NULL,
|
||||
gnc_info_dialog(parent,
|
||||
_("No jobs to be send.")
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
gnc_info_dialog(NULL, ngettext
|
||||
gnc_info_dialog(parent, ngettext
|
||||
("The job was executed successfully, but as a precaution "
|
||||
"please check the log window for potential errors.",
|
||||
"All %d jobs were executed successfully, but as a precaution "
|
||||
|
||||
@@ -57,7 +57,8 @@ G_BEGIN_DECLS
|
||||
* transactions as online jobs over aqbanking/HBCI. If FALSE, just import the
|
||||
* transactions and that's it.
|
||||
*/
|
||||
void gnc_file_aqbanking_import (const gchar *aqbanking_importername,
|
||||
void gnc_file_aqbanking_import (GtkWindow *parent,
|
||||
const gchar *aqbanking_importername,
|
||||
const gchar *aqbanking_formatname,
|
||||
gboolean exec_as_aqbanking_jobs);
|
||||
|
||||
|
||||
@@ -664,7 +664,8 @@ gnc_plugin_ab_cmd_mt940_import(GtkAction *action, GncMainWindowActionData *data)
|
||||
gchar *format = gnc_prefs_get_string(GNC_PREFS_GROUP_AQBANKING,
|
||||
GNC_PREF_FORMAT_SWIFT940);
|
||||
gnc_main_window = data->window;
|
||||
gnc_file_aqbanking_import("swift", format ? format : "swift-mt940", FALSE);
|
||||
gnc_file_aqbanking_import (GTK_WINDOW (gnc_main_window),
|
||||
"swift", format ? format : "swift-mt940", FALSE);
|
||||
g_free(format);
|
||||
}
|
||||
|
||||
@@ -674,7 +675,8 @@ gnc_plugin_ab_cmd_mt942_import(GtkAction *action, GncMainWindowActionData *data)
|
||||
gchar *format = gnc_prefs_get_string(GNC_PREFS_GROUP_AQBANKING,
|
||||
GNC_PREF_FORMAT_SWIFT942);
|
||||
gnc_main_window = data->window;
|
||||
gnc_file_aqbanking_import("swift", format ? format : "swift-mt942", FALSE);
|
||||
gnc_file_aqbanking_import (GTK_WINDOW (gnc_main_window),
|
||||
"swift", format ? format : "swift-mt942", FALSE);
|
||||
g_free(format);
|
||||
}
|
||||
|
||||
@@ -684,7 +686,8 @@ gnc_plugin_ab_cmd_dtaus_import(GtkAction *action, GncMainWindowActionData *data)
|
||||
gchar *format = gnc_prefs_get_string(GNC_PREFS_GROUP_AQBANKING,
|
||||
GNC_PREF_FORMAT_DTAUS);
|
||||
gnc_main_window = data->window;
|
||||
gnc_file_aqbanking_import("dtaus", format ? format : "default", FALSE);
|
||||
gnc_file_aqbanking_import (GTK_WINDOW (gnc_main_window),
|
||||
"dtaus", format ? format : "default", FALSE);
|
||||
g_free(format);
|
||||
}
|
||||
|
||||
@@ -695,7 +698,8 @@ gnc_plugin_ab_cmd_dtaus_importsend(GtkAction *action,
|
||||
gchar *format = gnc_prefs_get_string(GNC_PREFS_GROUP_AQBANKING,
|
||||
GNC_PREF_FORMAT_DTAUS);
|
||||
gnc_main_window = data->window;
|
||||
gnc_file_aqbanking_import("dtaus", format ? format : "default", TRUE);
|
||||
gnc_file_aqbanking_import (GTK_WINDOW (gnc_main_window),
|
||||
"dtaus", format ? format : "default", TRUE);
|
||||
g_free(format);
|
||||
}
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ gnc_plugin_bi_import_showGUI (GtkWindow *parent)
|
||||
}
|
||||
|
||||
static gchar *
|
||||
gnc_plugin_bi_import_getFilename(void)
|
||||
gnc_plugin_bi_import_getFilename(GtkWindow *parent)
|
||||
{
|
||||
// prepare file import dialog
|
||||
gchar *filename = NULL;
|
||||
@@ -191,7 +191,7 @@ gnc_plugin_bi_import_getFilename(void)
|
||||
gtk_file_filter_set_name (filter, "text files (*.txt)");
|
||||
gtk_file_filter_add_pattern (filter, "*.txt");
|
||||
filters = g_list_append( filters, filter );
|
||||
filename = gnc_file_dialog(_("Import Bills or Invoices from csv"), filters, NULL, GNC_FILE_DIALOG_IMPORT);
|
||||
filename = gnc_file_dialog(parent, _("Import Bills or Invoices from csv"), filters, NULL, GNC_FILE_DIALOG_IMPORT);
|
||||
|
||||
return filename;
|
||||
}
|
||||
@@ -279,7 +279,7 @@ void gnc_bi_import_gui_buttonOpen_cb (GtkWidget *widget, gpointer data)
|
||||
gchar *filename = NULL;
|
||||
BillImportGui *gui = data;
|
||||
|
||||
filename = gnc_plugin_bi_import_getFilename();
|
||||
filename = gnc_plugin_bi_import_getFilename (gnc_ui_get_gtk_window (widget));
|
||||
if (filename)
|
||||
{
|
||||
//printf("Setting filename"); // debug
|
||||
|
||||
@@ -154,7 +154,7 @@ gnc_plugin_customer_import_showGUI(void)
|
||||
}
|
||||
|
||||
static gchar *
|
||||
gnc_plugin_customer_import_getFilename(void)
|
||||
gnc_plugin_customer_import_getFilename (GtkWindow *parent)
|
||||
{
|
||||
// prepare file import dialog
|
||||
gchar *filename;
|
||||
@@ -169,7 +169,8 @@ gnc_plugin_customer_import_getFilename(void)
|
||||
gtk_file_filter_set_name (filter, "text files (*.txt)");
|
||||
gtk_file_filter_add_pattern (filter, "*.txt");
|
||||
filters = g_list_append( filters, filter );
|
||||
filename = gnc_file_dialog(_("Import Customers from csv"), filters, NULL, GNC_FILE_DIALOG_IMPORT);
|
||||
filename = gnc_file_dialog(parent,
|
||||
_("Import Customers from csv"), filters, NULL, GNC_FILE_DIALOG_IMPORT);
|
||||
|
||||
return filename;
|
||||
}
|
||||
@@ -256,7 +257,7 @@ void gnc_customer_import_gui_buttonOpen_cb (GtkWidget *widget, gpointer data)
|
||||
gchar *filename;
|
||||
CustomerImportGui *gui = data;
|
||||
|
||||
filename = gnc_plugin_customer_import_getFilename();
|
||||
filename = gnc_plugin_customer_import_getFilename (gnc_ui_get_gtk_window (widget));
|
||||
if (filename)
|
||||
{
|
||||
gtk_entry_set_text( GTK_ENTRY(gui->entryFilename), filename );
|
||||
|
||||
@@ -544,7 +544,7 @@ static void process_trans_record( FILE *log_file)
|
||||
}
|
||||
}
|
||||
|
||||
void gnc_file_log_replay (void)
|
||||
void gnc_file_log_replay (GtkWindow *parent)
|
||||
{
|
||||
char *selected_filename;
|
||||
char *default_dir;
|
||||
@@ -574,7 +574,8 @@ void gnc_file_log_replay (void)
|
||||
filter = gtk_file_filter_new();
|
||||
gtk_file_filter_set_name(filter, "*.log");
|
||||
gtk_file_filter_add_pattern(filter, "*.[Ll][Oo][Gg]");
|
||||
selected_filename = gnc_file_dialog(_("Select a .log file to replay"),
|
||||
selected_filename = gnc_file_dialog(parent,
|
||||
_("Select a .log file to replay"),
|
||||
g_list_prepend(NULL, filter),
|
||||
default_dir,
|
||||
GNC_FILE_DIALOG_OPEN);
|
||||
|
||||
@@ -25,9 +25,11 @@
|
||||
#ifndef OFX_IMPORT_H
|
||||
#define OFX_IMPORT_H
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
/** The gnc_file_log_replay() routine will pop up a standard file
|
||||
* selection dialogue asking the user to pick a log file to replay. If one
|
||||
* is selected the the .log file is opened and read. It's contents
|
||||
* are then silently merged in the current log file. */
|
||||
void gnc_file_log_replay (void);
|
||||
void gnc_file_log_replay (GtkWindow *parent);
|
||||
#endif
|
||||
|
||||
@@ -144,7 +144,7 @@ gnc_plugin_log_replay_cmd_new_log_replay (GtkAction *action,
|
||||
GncMainWindowActionData *data)
|
||||
{
|
||||
gnc_suspend_gui_refresh();
|
||||
gnc_file_log_replay ();
|
||||
gnc_file_log_replay (GTK_WINDOW (data->window));
|
||||
gnc_resume_gui_refresh();
|
||||
}
|
||||
|
||||
|
||||
@@ -965,7 +965,7 @@ double ofx_get_investment_amount(const struct OfxTransactionData* data)
|
||||
}
|
||||
}
|
||||
|
||||
void gnc_file_ofx_import (void)
|
||||
void gnc_file_ofx_import (GtkWindow *parent)
|
||||
{
|
||||
extern int ofx_PARSER_msg;
|
||||
extern int ofx_DEBUG_msg;
|
||||
@@ -987,7 +987,8 @@ void gnc_file_ofx_import (void)
|
||||
DEBUG("gnc_file_ofx_import(): Begin...\n");
|
||||
|
||||
default_dir = gnc_get_default_directory(GNC_PREFS_GROUP);
|
||||
selected_filename = gnc_file_dialog(_("Select an OFX/QFX file to process"),
|
||||
selected_filename = gnc_file_dialog(parent,
|
||||
_("Select an OFX/QFX file to process"),
|
||||
NULL,
|
||||
default_dir,
|
||||
GNC_FILE_DIALOG_IMPORT);
|
||||
|
||||
@@ -25,10 +25,12 @@
|
||||
#ifndef OFX_IMPORT_H
|
||||
#define OFX_IMPORT_H
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
/** The gnc_file_ofx_import() routine will pop up a standard file
|
||||
* selection dialogue asking the user to pick a OFX/QFX file. If one
|
||||
* is selected the the OFX file is opened and read. It's contents
|
||||
* are merged into the existing session (if any). The current
|
||||
* session continues to remain open for editing. */
|
||||
void gnc_file_ofx_import (void);
|
||||
void gnc_file_ofx_import (GtkWindow *parent);
|
||||
#endif
|
||||
|
||||
@@ -141,7 +141,7 @@ static void
|
||||
gnc_plugin_ofx_cmd_import (GtkAction *action,
|
||||
GncMainWindowActionData *data)
|
||||
{
|
||||
gnc_file_ofx_import ();
|
||||
gnc_file_ofx_import (GTK_WINDOW (data->window));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1365,7 +1365,7 @@ gnc_ui_qif_import_close_cb(GtkAssistant *gtkassistant, gpointer user_data)
|
||||
if (!wind->acct_tree_found)
|
||||
{
|
||||
qof_book_mark_session_dirty(gnc_get_current_book());
|
||||
gnc_ui_file_access_for_save_as();
|
||||
gnc_ui_file_access_for_save_as (gnc_ui_get_main_window (GTK_WIDGET (gtkassistant)));
|
||||
}
|
||||
|
||||
gnc_close_gui_component_by_data( ASSISTANT_QIF_IMPORT_CM_CLASS, wind );
|
||||
@@ -1617,7 +1617,8 @@ gnc_ui_qif_import_select_file_cb(GtkButton * button,
|
||||
filter = gtk_file_filter_new();
|
||||
gtk_file_filter_set_name(filter, "*.qif");
|
||||
gtk_file_filter_add_pattern(filter, "*.[Qq][Ii][Ff]");
|
||||
new_file_name = gnc_file_dialog(_("Select QIF File"),
|
||||
new_file_name = gnc_file_dialog(gnc_ui_get_gtk_window (GTK_WIDGET (button)),
|
||||
_("Select QIF File"),
|
||||
g_list_prepend (NULL, filter),
|
||||
default_dir,
|
||||
GNC_FILE_DIALOG_IMPORT);
|
||||
|
||||
@@ -1486,7 +1486,8 @@ gnc_get_export_filename (SCM choice)
|
||||
title = g_strdup_printf (_("Save %s To File"), type);
|
||||
default_dir = gnc_get_default_directory(GNC_PREFS_GROUP_REPORT);
|
||||
|
||||
filepath = gnc_file_dialog (title, NULL, default_dir, GNC_FILE_DIALOG_EXPORT);
|
||||
filepath = gnc_file_dialog (gnc_ui_get_main_window (NULL),
|
||||
title, NULL, default_dir, GNC_FILE_DIALOG_EXPORT);
|
||||
|
||||
/* Try to test for extension on file name, add if missing */
|
||||
if (g_strrstr(filepath, ".") == NULL)
|
||||
|
||||
Reference in New Issue
Block a user