Branch: refs/heads/master Author: Dimitar Zhekov dimitar.zhekov@gmail.com Committer: Dimitar Zhekov dimitar.zhekov@gmail.com Date: Sat, 07 Sep 2013 08:45:46 UTC Commit: 5763dc9357008e8df29462a7b80d5a71b8fab8d1 https://github.com/geany/geany-plugins/commit/5763dc9357008e8df29462a7b80d5a...
Log Message: ----------- scope - better message window on right support, apply some prefs asap
Modified Paths: -------------- scope/ChangeLog scope/NEWS scope/NOTES scope/data/scope.glade scope/docs/scope.html scope/src/conterm.c scope/src/conterm.h scope/src/inspect.c scope/src/prefs.c scope/src/scope.c scope/src/scope.h
Modified: scope/ChangeLog 17 files changed, 16 insertions(+), 1 deletions(-) =================================================================== @@ -1,7 +1,22 @@ +2013-09-07 Dimitar Zhekov dimitar.zhekov@gmail.com + + * data/scope.glade: + Removed "Program Terminal", "Breakpoints" and "Debug Console" + panel tab names - they are always initialized explicitly now. + * src/conterm.c, src/conterm.h, src/prefs.c, src/scope.c: + Apply VTE settings immediately after Edit -> Preferences. + * src/prefs.c, src/prefs.h, src/scope.c, src/scope.h: + Apply pref_panel_tab_pos immediately after scope.conf save. + Automatically switch to short panel tab names if Geany message + window is on right. + * docs/scope.html, src/scope.c: + Increased version to 0.92. + + 2013-08-31 Dimitar Zhekov dimitar.zhekov@gmail.com
* data/scope.glade: - Set Debug Panel tabs to "scrollable", so that the messages window + Set Debug Panel tabs to "scrollable", so that Geany message window is not extended if it's not wide/tall enough to fit the tab names. * src/break.c: No async break messages only: don't disable a "dis" breakpoint on
Modified: scope/NEWS 8 files changed, 8 insertions(+), 0 deletions(-) =================================================================== @@ -1,3 +1,11 @@ +Scope 0.92 (2013-09-07) + + * Better support for Geany message window on right, but don't + expect miracles. + + * Apply VTE and Debug panel position preferences immediately. + + Scope 0.91.2 (2013-07-25)
* Fixed various errors on plugin unload-and-reload.
Modified: scope/NOTES 6 files changed, 0 insertions(+), 6 deletions(-) =================================================================== @@ -38,9 +38,6 @@ thread has stopped before prompting for another command clicking a button with response 0, and then clicking an accept button or gtk_dialog_response(ACCEPT), may generate 0 instead of accept
-breakpoints don't need unapply: they can be disabled, and all relevant -columns are editable - -var-create for global symbols allows any frame -set-update-range seems to have no effect on my system
@@ -71,9 +68,6 @@ set print elements 10: "\a01\002\003\004\005\006\a\b\t\n"... {290, 291, 292, 293, 294, 295, 296, 297, 298, 299...} '\000' <repeats 100 times>, '\001' <repeats 100 times>
-GDB does specify that individual breakpoint location may be enabled or -disabled, but not deleted; no mention of condition/ignore/script though - pending breakpoints are handled either at thread stopped, or by async modified message; parsing =library-loaded seems pointless
Modified: scope/data/scope.glade 3 files changed, 0 insertions(+), 3 deletions(-) =================================================================== @@ -1569,7 +1569,6 @@ <child type="tab"> <object class="GtkLabel" id="program_terminal_label"> <property name="visible">True</property> - <property name="label" translatable="yes">Program Terminal</property> </object> <packing> <property name="tab_fill">False</property> @@ -1859,7 +1858,6 @@ <child type="tab"> <object class="GtkLabel" id="break_view_label"> <property name="visible">True</property> - <property name="label" translatable="yes">Breakpoints</property> </object> <packing> <property name="position">2</property> @@ -2174,7 +2172,6 @@ <child type="tab"> <object class="GtkLabel" id="debug_console_label"> <property name="visible">True</property> - <property name="label" translatable="yes">Debug Console</property> </object> <packing> <property name="position">7</property>
Modified: scope/docs/scope.html 4 files changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -584,7 +584,7 @@
<h3><a name="notes">Notes</a></h3>
-<p>Changes in Geany VTE preferences will be applied when Scope is restarted.</p> +<p>Debug Console ignores VTE foreground color, except for the cursor.</p>
<p>Locale/UTF-8 conversion is fully supported for values only. Filenames not matching your locale and non-ascii identifiers are not guaranteed to work.</p> @@ -748,7 +748,7 @@
<b><a name="copyright">Copyright</a></b>
-<p>Scope 0.91.4, Copyright (C) 2013 Dimitar Toshkov Zhekov</p> +<p>Scope 0.92, Copyright (C) 2013 Dimitar Toshkov Zhekov</p>
<p>The menu and toolbar icons are from <a href="http://netbeans.org">Netbeans</a>, except for BreakPoint.</p>
Modified: scope/src/conterm.c 53 files changed, 45 insertions(+), 8 deletions(-) =================================================================== @@ -150,10 +150,8 @@ static guint terminal_menu_extra_state(void)
static MenuInfo terminal_menu_info = { terminal_menu_items, terminal_menu_extra_state, 0 };
-void on_vte_realize(GtkWidget *widget, G_GNUC_UNUSED gpointer gdata) +void on_vte_realize(VteTerminal *vte, G_GNUC_UNUSED gpointer gdata) { - VteTerminal *vte = VTE_TERMINAL(widget); - vte_terminal_set_emulation(vte, pref_vte_emulation); vte_terminal_set_font_from_string(vte, pref_vte_font); vte_terminal_set_scrollback_lines(vte, pref_vte_scrollback); @@ -168,7 +166,7 @@ void on_vte_realize(GtkWidget *widget, G_GNUC_UNUSED gpointer gdata) #endif }
-static VteTerminal *debug_console; /* non-NULL == vte console */ +static VteTerminal *debug_console; /* NULL -> GtkTextView "context" */
static void console_output(int fd, const char *text, gint length) { @@ -380,6 +378,48 @@ static guint console_menu_extra_state(void)
static MenuInfo console_menu_info = { console_menu_items, console_menu_extra_state, 0 };
+void conterm_load_config(void) +{ + gchar *configfile = g_build_filename(geany_data->app->configdir, "geany.conf", NULL); + GKeyFile *config = g_key_file_new(); + gchar *tmp_string; + + g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL); + pref_vte_blinken = utils_get_setting_boolean(config, "VTE", "cursor_blinks", FALSE); + pref_vte_emulation = utils_get_setting_string(config, "VTE", "emulation", "xterm"); + pref_vte_font = utils_get_setting_string(config, "VTE", "font", "Monospace 10"); + pref_vte_scrollback = utils_get_setting_integer(config, "VTE", "scrollback_lines", 500); + tmp_string = utils_get_setting_string(config, "VTE", "colour_fore", "#ffffff"); + gdk_color_parse(tmp_string, &pref_vte_colour_fore); + g_free(tmp_string); + tmp_string = utils_get_setting_string(config, "VTE", "colour_back", "#000000"); + gdk_color_parse(tmp_string, &pref_vte_colour_back); + g_free(tmp_string); + g_key_file_free(config); + g_free(configfile); +} + +static void context_apply_config(GtkWidget *console) +{ + gtk_widget_modify_base(console, GTK_STATE_NORMAL, &pref_vte_colour_back); + gtk_widget_modify_cursor(console, &pref_vte_colour_fore, &pref_vte_colour_back); + ui_widget_modify_font_from_string(console, pref_vte_font); +} + +void conterm_apply_config(void) +{ +#ifdef G_OS_UNIX + on_vte_realize(program_terminal, NULL); + + if (debug_console) + on_vte_realize(debug_console, NULL); + else +#endif + { + context_apply_config(GTK_WIDGET(debug_context)); + } +} + #ifdef G_OS_UNIX static int pty_slave; char *slave_pty_name; @@ -501,10 +541,7 @@ void conterm_init(void) dc_chars = 0;
console = get_widget("debug_context"); - gtk_widget_modify_base(console, GTK_STATE_NORMAL, &pref_vte_colour_back); - gtk_widget_modify_cursor(console, &pref_vte_colour_fore, &pref_vte_colour_back); - ui_widget_modify_font_from_string(console, pref_vte_font); - + context_apply_config(console); debug_context = GTK_TEXT_VIEW(console); dc_output = context_output; dc_output_nl = context_output_nl;
Modified: scope/src/conterm.h 3 files changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -37,6 +37,9 @@ void dc_clear(void); gboolean dc_update(void);
+void conterm_load_config(void); /* Geany VTE config */ +void conterm_apply_config(void); + void conterm_init(void); void conterm_finalize(void);
Modified: scope/src/inspect.c 2 files changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -553,7 +553,7 @@ static gint inspect_iter_refresh(ScpTreeStore *store, GtkTreeIter *iter, gpointe static void inspects_send_refresh(char token) { scp_tree_store_traverse(store, TRUE, NULL, NULL, inspect_iter_refresh, - GINT_TO_POINTER(token)); + GINT_TO_POINTER((gint) token)); query_all_inspects = FALSE; }
Modified: scope/src/prefs.c 28 files changed, 4 insertions(+), 24 deletions(-) =================================================================== @@ -192,6 +192,8 @@ static void prefs_configure(void)
foreach_document(i) prefs_apply(documents[i]); + + configure_panel(); }
char *prefs_file_name(void) @@ -211,7 +213,7 @@ static void on_document_save(G_GNUC_UNUSED GObject *obj, GeanyDocument *doc, g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL); load_scope_prefs(config); prefs_configure(); - scope_configure(); + configure_toolbar(); g_key_file_free(config); } g_free(configfile); @@ -227,7 +229,6 @@ void prefs_init(void) char *configdir = g_build_filename(geany->app->configdir, "plugins", "scope", NULL); char *configfile = prefs_file_name(); GKeyFile *config = g_key_file_new(); - gchar *tmp_string;
group = stash_group_new("scope"); stash_group_add_string(group, &pref_gdb_executable, "gdb_executable", "gdb"); @@ -291,13 +292,6 @@ void prefs_init(void) prefs_configure(); program_load_config(config);
- if (pref_panel_tab_pos == GTK_POS_LEFT || pref_panel_tab_pos == GTK_POS_RIGHT) - { - gtk_label_set_label(GTK_LABEL(get_widget("program_terminal_label")), _("Program")); - gtk_label_set_label(GTK_LABEL(get_widget("break_view_label")), _("Breaks")); - gtk_label_set_label(GTK_LABEL(get_widget("debug_console_label")), _("Console")); - } - if (!g_file_test(configfile, G_FILE_TEST_IS_REGULAR)) { gint error = utils_mkdir(configdir, TRUE); @@ -316,21 +310,7 @@ void prefs_init(void) g_free(configfile); g_free(configdir);
- configfile = g_build_filename(geany_data->app->configdir, "geany.conf", NULL); - config = g_key_file_new(); - g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL); - pref_vte_blinken = utils_get_setting_boolean(config, "VTE", "cursor_blinks", FALSE); - pref_vte_emulation = utils_get_setting_string(config, "VTE", "emulation", "xterm"); - pref_vte_font = utils_get_setting_string(config, "VTE", "font", "Monospace 10"); - pref_vte_scrollback = utils_get_setting_integer(config, "VTE", "scrollback_lines", 500); - tmp_string = utils_get_setting_string(config, "VTE", "colour_fore", "#ffffff"); - gdk_color_parse(tmp_string, &pref_vte_colour_fore); - g_free(tmp_string); - tmp_string = utils_get_setting_string(config, "VTE", "colour_back", "#000000"); - gdk_color_parse(tmp_string, &pref_vte_colour_back); - g_free(tmp_string); - g_key_file_free(config); - g_free(configfile); + conterm_load_config(); }
void prefs_finalize(void)
Modified: scope/src/scope.c 62 files changed, 44 insertions(+), 18 deletions(-) =================================================================== @@ -32,7 +32,7 @@ PLUGIN_VERSION_CHECK(215)
PLUGIN_SET_TRANSLATABLE_INFO(LOCALEDIR, GETTEXT_PACKAGE, _("Scope Debugger"), - _("Relatively simple GDB front-end."), "0.91.4" , + _("Relatively simple GDB front-end."), "0.92", "Dimitar Toshkov Zhekov dimitar.zhekov@gmail.com")
/* Keybinding(s) */ @@ -313,9 +313,9 @@ static void on_document_open(G_GNUC_UNUSED GObject *obj, GeanyDocument *doc, threads_mark(doc); }
-static guint resync_id; +static guint after_save_id;
-static gboolean resync_readonly(G_GNUC_UNUSED gpointer gdata) +static gboolean settings_after_save(gpointer gdata) { guint i;
@@ -325,30 +325,41 @@ static gboolean resync_readonly(G_GNUC_UNUSED gpointer gdata) SCI_GETREADONLY, 0, 0); }
- resync_id = 0; + if (GPOINTER_TO_INT(gdata)) + { + conterm_load_config(); + conterm_apply_config(); + } + + after_save_id = 0; return FALSE; }
-static void unlock_readonly(void) +static void schedule_after_save(gboolean conterm) { guint i;
+ after_save_id = plugin_idle_add(geany_plugin, settings_after_save, + GINT_TO_POINTER(conterm)); + foreach_document(i) { if (utils_attrib(documents[i], SCOPE_LOCK)) - { documents[i]->readonly = FALSE; - - if (!resync_id) - resync_id = plugin_idle_add(geany_plugin, resync_readonly, NULL); - } } }
-static void on_session_save(G_GNUC_UNUSED GObject *obj, G_GNUC_UNUSED GKeyFile *keyfile, +static void on_settings_save(G_GNUC_UNUSED GObject *obj, G_GNUC_UNUSED GKeyFile *keyfile, + G_GNUC_UNUSED gpointer gdata) +{ + configure_panel(); + schedule_after_save(TRUE); +} + +static void on_project_before_save(G_GNUC_UNUSED GObject *obj, G_GNUC_UNUSED GKeyFile *keyfile, G_GNUC_UNUSED gpointer gdata) { - unlock_readonly(); + schedule_after_save(FALSE); }
static gboolean on_editor_notify(G_GNUC_UNUSED GObject *obj, GeanyEditor *editor, @@ -427,12 +438,12 @@ static void on_build_start(G_GNUC_UNUSED GObject *obj, G_GNUC_UNUSED gpointer gd { "document-new", G_CALLBACK(on_document_new) }, { "document-open", G_CALLBACK(on_document_open) }, { "document-reload", G_CALLBACK(on_document_open) }, - { "save-settings", G_CALLBACK(on_session_save) }, + { "save-settings", G_CALLBACK(on_settings_save) }, { "editor-notify", G_CALLBACK(on_editor_notify) }, { "document-filetype-set", G_CALLBACK(on_document_filetype_set) }, { "document-activate", G_CALLBACK(on_document_activate) }, { "document-save", G_CALLBACK(on_document_activate) }, - { "project-before-save", G_CALLBACK(on_session_save) }, + { "project-before-save", G_CALLBACK(on_project_before_save) }, { "project-open", G_CALLBACK(on_project_open) }, { "project-close", G_CALLBACK(on_project_close) }, { "geany-startup-complete", G_CALLBACK(on_geany_startup_complete) }, @@ -476,7 +487,7 @@ GtkWidget *get_widget(const char *name) #endif /* G_DISABLE_ASSERT */ }
-void scope_configure(void) +void configure_toolbar(void) { guint item; ToolItem *tool_item = toolbar_items; @@ -503,6 +514,22 @@ void open_debug_panel(void) gtk_widget_grab_focus(debug_panel); }
+void configure_panel(void) +{ + gboolean short_tab_names = pref_panel_tab_pos == GTK_POS_LEFT || + pref_panel_tab_pos == GTK_POS_RIGHT || + geany_data->interface_prefs->msgwin_orientation == GTK_ORIENTATION_HORIZONTAL; + + gtk_label_set_label(GTK_LABEL(get_widget("program_terminal_label")), + short_tab_names ? _("Program") : _("Program Terminal")); + gtk_label_set_label(GTK_LABEL(get_widget("break_view_label")), + short_tab_names ? _("Breaks") : _("Breakpoints")); + gtk_label_set_label(GTK_LABEL(get_widget("debug_console_label")), + short_tab_names ? _("Console") : _("Debug Console")); + + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(debug_panel), pref_panel_tab_pos); +} + void plugin_init(G_GNUC_UNUSED GeanyData *gdata) { GeanyKeyGroup *scope_key_group; @@ -517,7 +544,7 @@ void plugin_init(G_GNUC_UNUSED GeanyData *gdata) last_toolbar_state = 0; last_statusbar_state = DS_INACTIVE; blink_id = 0; - resync_id = 0; + after_save_id = 0;
main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); scope_key_group = plugin_set_key_group(geany_plugin, "scope", COUNT_KB, NULL); @@ -575,7 +602,6 @@ void plugin_init(G_GNUC_UNUSED GeanyData *gdata) gtk216_init(); program_init(); prefs_init(); - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(debug_panel), pref_panel_tab_pos); conterm_init(); inspect_init(); register_init(); @@ -609,7 +635,7 @@ void plugin_init(G_GNUC_UNUSED GeanyData *gdata)
toolbar_update_state(DS_INACTIVE); views_update_state(DS_INACTIVE); - scope_configure(); + configure_toolbar();
g_signal_connect(debug_panel, "switch-page", G_CALLBACK(on_view_changed), NULL); for (scb = scope_callbacks; scb->name; scb++)
Modified: scope/src/scope.h 3 files changed, 2 insertions(+), 1 deletions(-) =================================================================== @@ -27,8 +27,9 @@ GtkWidget *get_widget(const char *name); #define get_column(name) GTK_TREE_VIEW_COLUMN(get_object(name)) #define find_widget(parent, name) GTK_WIDGET(g_object_get_data(G_OBJECT(parent), (name))) +void configure_toolbar(void); void open_debug_panel(void); -void scope_configure(void); +void configure_panel(void);
#define SCOPE_H 1 #endif
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).