mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add a 'Save As' entry in the menu.
Add a "Save As" entry in the "File" menu allowing the user to specify the file in which to save the data. This is useful as we no longer offer this option through the "Save" entry while the data had been opened from an existing file. Signed-off-by: Pierre-Yves Chibon
This commit is contained in:
parent
1a76951159
commit
9cb3685030
2 changed files with 28 additions and 0 deletions
|
@ -31,9 +31,11 @@ typedef enum {
|
|||
|
||||
#if defined __APPLE__
|
||||
#define CTRLCHAR "<Meta>"
|
||||
#define SHIFTCHAR "<Shift>"
|
||||
#define PREFERENCE_ACCEL "<Meta>comma"
|
||||
#else
|
||||
#define CTRLCHAR "<Control>"
|
||||
#define SHIFTCHAR "<Shift>"
|
||||
#define PREFERENCE_ACCEL NULL
|
||||
#endif
|
||||
|
||||
|
|
26
gtk-gui.c
26
gtk-gui.c
|
@ -197,6 +197,30 @@ static void file_save(GtkWidget *w, gpointer data)
|
|||
}
|
||||
}
|
||||
|
||||
static void file_save_as(GtkWidget *w, gpointer data)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
char *filename;
|
||||
dialog = gtk_file_chooser_dialog_new("Save File As",
|
||||
GTK_WINDOW(main_window),
|
||||
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
|
||||
NULL);
|
||||
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
|
||||
|
||||
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), existing_filename);
|
||||
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
|
||||
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
||||
}
|
||||
gtk_widget_destroy(dialog);
|
||||
|
||||
if (filename){
|
||||
save_dives(filename);
|
||||
mark_divelist_changed(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean ask_save_changes()
|
||||
{
|
||||
GtkWidget *dialog, *label, *content;
|
||||
|
@ -666,6 +690,7 @@ static GtkActionEntry menu_items[] = {
|
|||
{ "HelpMenuAction", GTK_STOCK_HELP, "Help", NULL, NULL, NULL},
|
||||
{ "OpenFile", GTK_STOCK_OPEN, NULL, CTRLCHAR "O", NULL, G_CALLBACK(file_open) },
|
||||
{ "SaveFile", GTK_STOCK_SAVE, NULL, CTRLCHAR "S", NULL, G_CALLBACK(file_save) },
|
||||
{ "SaveAsFile", GTK_STOCK_SAVE_AS, NULL, SHIFTCHAR CTRLCHAR "S", NULL, G_CALLBACK(file_save_as) },
|
||||
{ "Print", GTK_STOCK_PRINT, NULL, CTRLCHAR "P", NULL, G_CALLBACK(do_print) },
|
||||
{ "Import", NULL, "Import", NULL, NULL, G_CALLBACK(import_dialog) },
|
||||
{ "AddDive", NULL, "Add Dive", NULL, NULL, G_CALLBACK(add_dive_cb) },
|
||||
|
@ -687,6 +712,7 @@ static const gchar* ui_string = " \
|
|||
<menu name=\"FileMenu\" action=\"FileMenuAction\"> \
|
||||
<menuitem name=\"Open\" action=\"OpenFile\" /> \
|
||||
<menuitem name=\"Save\" action=\"SaveFile\" /> \
|
||||
<menuitem name=\"Save As\" action=\"SaveAsFile\" /> \
|
||||
<menuitem name=\"Print\" action=\"Print\" /> \
|
||||
<separator name=\"Separator1\"/> \
|
||||
<menuitem name=\"Preferences\" action=\"Preferences\" /> \
|
||||
|
|
Loading…
Add table
Reference in a new issue