Skip to content

Commit

Permalink
Eliminate FIXME: Log window line limit
Browse files Browse the repository at this point in the history
Set log window line limit in Preferences/Behavior
  • Loading branch information
caclark committed Jun 18, 2017
1 parent 0dd6923 commit 12a4fe1
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 4 deletions.
8 changes: 8 additions & 0 deletions doc/docbook/GuideOptionsBehavior.xml
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,14 @@
<para>Displayed when compiled with the option --enable-debug-log. This defines the verbosity of debug info sent to console and log window (0 disables the debug output).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<guilabel>Log Window max. lines</guilabel>
</term>
<listitem>
<para>The maximum number of data lines to be displayed. The window will show the most recent data.</para>
</listitem>
</varlistentry>
</variablelist>
</section>
</section>
7 changes: 3 additions & 4 deletions src/logwindow.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,6 @@ void log_window_append(const gchar *str, LogType type)
GtkTextView *text;
GtkTextBuffer *buffer;
GtkTextIter iter;
guint line_limit = 1000; //FIXME: option
static GList *memory = NULL;

if (logwindow == NULL)
Expand All @@ -233,7 +232,7 @@ void log_window_append(const gchar *str, LogType type)

memory = g_list_prepend(memory, msg);

while (g_list_length(memory) >= line_limit)
while (g_list_length(memory) >= options->log_window_lines)
{
GList *work = g_list_last(memory);
LogMsg *oldest_msg = work->data;
Expand All @@ -248,13 +247,13 @@ void log_window_append(const gchar *str, LogType type)
text = GTK_TEXT_VIEW(logwindow->text);
buffer = gtk_text_view_get_buffer(text);

if (line_limit > 0 && logwindow->lines >= line_limit)
if (options->log_window_lines > 0 && logwindow->lines >= options->log_window_lines)
{
GtkTextIter start, end;

gtk_text_buffer_get_start_iter(buffer, &start);
end = start;
gtk_text_iter_forward_lines(&end, logwindow->lines - line_limit);
gtk_text_iter_forward_lines(&end, logwindow->lines - options->log_window_lines);
gtk_text_buffer_delete(buffer, &start, &end);
}

Expand Down
2 changes: 2 additions & 0 deletions src/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ ConfOptions *init_options(ConfOptions *options)
options->stereo.fixed_x2 = 0;
options->stereo.fixed_y2 = 1125;

options->log_window_lines = 1000;

return options;
}

Expand Down
2 changes: 2 additions & 0 deletions src/options.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ struct _ConfOptions
gboolean use_saved_window_positions_for_new_windows;
gboolean tools_restore_state;

guint log_window_lines;

/* info sidebar component heights */
struct {
gint height;
Expand Down
3 changes: 3 additions & 0 deletions src/preferences.c
Original file line number Diff line number Diff line change
Expand Up @@ -2196,6 +2196,9 @@ static void config_tab_behavior(GtkWidget *notebook)

pref_spin_new_int(group, _("Debug level:"), NULL,
DEBUG_LEVEL_MIN, DEBUG_LEVEL_MAX, 1, get_debug_level(), &debug_c);

pref_spin_new_int(group, _("Log Window max. lines:"), NULL,
1, 99999, 1, options->log_window_lines, &options->log_window_lines);
#endif
}

Expand Down
4 changes: 4 additions & 0 deletions src/rcfile.c
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,8 @@ static void write_global_attributes(GString *outstr, gint indent)
WRITE_NL(); WRITE_BOOL(*options, use_saved_window_positions_for_new_windows);
WRITE_NL(); WRITE_BOOL(*options, tools_restore_state);

WRITE_NL(); WRITE_UINT(*options, log_window_lines);

/* File operations Options */
WRITE_NL(); WRITE_BOOL(*options, file_ops.enable_in_place_rename);
WRITE_NL(); WRITE_BOOL(*options, file_ops.confirm_delete);
Expand Down Expand Up @@ -629,6 +631,8 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar **
if (READ_BOOL(*options, use_saved_window_positions_for_new_windows)) continue;
if (READ_BOOL(*options, tools_restore_state)) continue;

if (READ_UINT(*options, log_window_lines)) continue;

/* Properties dialog options */
if (READ_CHAR(*options, properties.tabs_order)) continue;

Expand Down

0 comments on commit 12a4fe1

Please sign in to comment.