diff options
author | Robin Gareus <robin@gareus.org> | 2020-02-28 07:26:13 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-02-28 07:26:13 +0100 |
commit | fa0a7d67391f7c968b31daf628bb3581bcba67d7 (patch) | |
tree | fa97c7780ee25c5ac6e6994a1480ba8c39ba2a3b /libs/gtkmm2ext | |
parent | a4851954536bb7706fbf25fcf44242cd5454b5fd (diff) |
Allow to limit error dump
This is in preparation of displaying verbose errors to the user.
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r-- | libs/gtkmm2ext/gtk_ui.cc | 8 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/gtk_ui.h | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/libs/gtkmm2ext/gtk_ui.cc b/libs/gtkmm2ext/gtk_ui.cc index bbef7a0825..e6212a35bd 100644 --- a/libs/gtkmm2ext/gtk_ui.cc +++ b/libs/gtkmm2ext/gtk_ui.cc @@ -511,12 +511,18 @@ UI::do_request (UIRequest* req) ======================================================================*/ void -UI::dump_errors (std::ostream& ostr) +UI::dump_errors (std::ostream& ostr, size_t limit) { Glib::Threads::Mutex::Lock lm (error_lock); ostr << endl << X_("Errors/Messages:") << endl; for (list<string>::const_iterator i = error_stack.begin(); i != error_stack.end(); ++i) { ostr << *i << endl; + if (limit > 0) { + if (--limit == 0) { + ostr << "..." << endl; + break; + } + } } ostr << endl; } diff --git a/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h b/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h index be0dabb2e5..4b87a46313 100644 --- a/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h +++ b/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h @@ -143,7 +143,8 @@ public: void flush_pending (float timeout = 0); void toggle_errors (); void show_errors (); - void dump_errors (std::ostream&); + void dump_errors (std::ostream&, size_t limit = 0); + void clear_errors () { error_stack.clear (); } void touch_display (Touchable *); void set_tip (Gtk::Widget &w, const gchar *tip); void set_tip (Gtk::Widget &w, const std::string &tip); |