[geany/geany] 3608d6: Add reload all keybinding (#2859)
David Yang
git-noreply at xxxxx
Sun Sep 12 10:12:00 UTC 2021
Branch: refs/heads/master
Author: David Yang <davidyang6us at gmail.com>
Committer: GitHub <noreply at github.com>
Date: Sun, 12 Sep 2021 10:12:00 UTC
Commit: 3608d6717b092e3d69acbd7c023b4c2f1f914c41
https://github.com/geany/geany/commit/3608d6717b092e3d69acbd7c023b4c2f1f914c41
Log Message:
-----------
Add reload all keybinding (#2859)
Modified Paths:
--------------
doc/geany.txt
src/callbacks.c
src/callbacks.h
src/keybindings.c
src/keybindings.h
src/plugindata.h
Modified: doc/geany.txt
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -3349,6 +3349,8 @@ Close Ctrl-W (C) Closes the current fil
Reload file Ctrl-R (C) Reloads the current file.
+Reload all Reloads all open files. If the reload will not be 'undo'-able and changes that will be lost are detected (unsaved or saved) the reload will be confirmed, otherwise the reload will proceed without confirmation.
+
Print Ctrl-P (C) Prints the current file.
Quit Ctrl-Q (C) Quits Geany.
Modified: src/callbacks.c
37 lines changed, 37 insertions(+), 0 deletions(-)
===================================================================
@@ -335,6 +335,43 @@ void on_toolbutton_reload_clicked(GtkAction *action, gpointer user_data)
document_reload_prompt(doc, NULL);
}
+/* reload all files */
+void on_reload_all(GtkAction *action, gpointer user_data)
+{
+ guint i;
+ gint cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(main_widgets.notebook));
+
+ if (!file_prefs.keep_edit_history_on_reload)
+ {
+ GeanyDocument *doc;
+ foreach_document(i)
+ {
+ doc = documents[i];
+ if (doc->changed || document_can_undo(doc) || document_can_redo(doc))
+ {
+ if (dialogs_show_question_full(NULL, _("_Reload"), GTK_STOCK_CANCEL,
+ _("Changes detected, reloading all will lose any changes and history."),
+ _("Are you sure you want to reload all files?")))
+ {
+ break; // break the loop and continue with reloading below
+ }
+ else
+ {
+ return; // cancel reloading
+ }
+ }
+ }
+ }
+
+ foreach_document(i)
+ {
+ if (! (documents[i]->file_name == NULL))
+ document_reload_force(documents[i], documents[i]->encoding);
+ }
+
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook), cur_page);
+}
+
static void on_change_font1_activate(GtkMenuItem *menuitem, gpointer user_data)
{
Modified: src/callbacks.h
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -98,6 +98,8 @@ void on_find_in_files1_activate(GtkMenuItem *menuitem, gpointer user_data);
void on_toolbutton_reload_clicked(GtkAction *action, gpointer user_data);
+void on_reload_all(GtkAction *action, gpointer user_data);
+
void on_go_to_line_activate(GtkMenuItem *menuitem, gpointer user_data);
void on_help1_activate(GtkMenuItem *menuitem, gpointer user_data);
Modified: src/keybindings.c
5 lines changed, 5 insertions(+), 0 deletions(-)
===================================================================
@@ -355,6 +355,8 @@ static void init_default_kb(void)
"menu_close_all1");
add_kb(group, GEANY_KEYS_FILE_RELOAD, NULL,
GDK_KEY_r, GEANY_PRIMARY_MOD_MASK, "menu_reloadfile", _("Reload file"), "menu_reload1");
+ add_kb(group, GEANY_KEYS_FILE_RELOAD_ALL, NULL,
+ 0, 0, "menu_reloadall", _("Reload all files"), NULL);
add_kb(group, GEANY_KEYS_FILE_OPENLASTTAB, NULL,
0, 0, "file_openlasttab", _("Re-open last closed tab"), NULL);
add_kb(group, GEANY_KEYS_FILE_QUIT, NULL,
@@ -1476,6 +1478,9 @@ static gboolean cb_func_file_action(guint key_id)
case GEANY_KEYS_FILE_RELOAD:
on_toolbutton_reload_clicked(NULL, NULL);
break;
+ case GEANY_KEYS_FILE_RELOAD_ALL:
+ on_reload_all(NULL, NULL);
+ break;
case GEANY_KEYS_FILE_PRINT:
on_print1_activate(NULL, NULL);
break;
Modified: src/keybindings.h
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -275,6 +275,8 @@ enum GeanyKeyBindingID
GEANY_KEYS_EDITOR_DELETELINETOBEGINNING, /**< Keybinding. */
GEANY_KEYS_DOCUMENT_STRIPTRAILINGSPACES, /**< Keybinding.
* @since 1.34 (API 238) */
+ GEANY_KEYS_FILE_RELOAD_ALL, /**< Keybinding.
+ * @since 1.38 (API 240) */
GEANY_KEYS_COUNT /* must not be used by plugins */
};
Modified: src/plugindata.h
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -58,7 +58,7 @@ G_BEGIN_DECLS
* @warning You should not test for values below 200 as previously
* @c GEANY_API_VERSION was defined as an enum value, not a macro.
*/
-#define GEANY_API_VERSION 239
+#define GEANY_API_VERSION 240
/* hack to have a different ABI when built with different GTK major versions
* because loading plugins linked to a different one leads to crashes.
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list