store all error/info/etc messages in a list inside Gtkmm2ext::UI, and provide a method to dump them all to a std::ostream
This commit is contained in:
parent
b79bfe8793
commit
0274aafdb0
@ -481,9 +481,41 @@ UI::do_request (UIRequest* req)
|
|||||||
Error Display
|
Error Display
|
||||||
======================================================================*/
|
======================================================================*/
|
||||||
|
|
||||||
|
void
|
||||||
|
UI::dump_errors (std::ostream& ostr)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
ostr << endl;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
UI::receive (Transmitter::Channel chn, const char *str)
|
UI::receive (Transmitter::Channel chn, const char *str)
|
||||||
{
|
{
|
||||||
|
{
|
||||||
|
Glib::Threads::Mutex::Lock lm (error_lock);
|
||||||
|
switch (chn) {
|
||||||
|
case Transmitter::Fatal:
|
||||||
|
error_stack.push_back (string (X_("FATAL: ")) + str);
|
||||||
|
break;
|
||||||
|
case Transmitter::Error:
|
||||||
|
error_stack.push_back (string (X_("ERROR: ")) + str);
|
||||||
|
break;
|
||||||
|
case Transmitter::Warning:
|
||||||
|
error_stack.push_back (string (X_("WARNING: ")) + str);
|
||||||
|
break;
|
||||||
|
case Transmitter::Info:
|
||||||
|
error_stack.push_back (string (X_("INFO: ")) + str);
|
||||||
|
break;
|
||||||
|
case Transmitter::Throw:
|
||||||
|
error_stack.push_back (string (X_("THROW: ")) + str);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (caller_is_ui_thread()) {
|
if (caller_is_ui_thread()) {
|
||||||
process_error_message (chn, str);
|
process_error_message (chn, str);
|
||||||
} else {
|
} else {
|
||||||
|
@ -138,6 +138,7 @@ class LIBGTKMM2EXT_API UI : public AbstractUI<UIRequest>
|
|||||||
void flush_pending ();
|
void flush_pending ();
|
||||||
void toggle_errors ();
|
void toggle_errors ();
|
||||||
void show_errors ();
|
void show_errors ();
|
||||||
|
void dump_errors (std::ostream&);
|
||||||
void touch_display (Touchable *);
|
void touch_display (Touchable *);
|
||||||
void set_tip (Gtk::Widget &w, const gchar *tip);
|
void set_tip (Gtk::Widget &w, const gchar *tip);
|
||||||
void set_tip (Gtk::Widget &w, const std::string &tip);
|
void set_tip (Gtk::Widget &w, const std::string &tip);
|
||||||
@ -195,6 +196,9 @@ class LIBGTKMM2EXT_API UI : public AbstractUI<UIRequest>
|
|||||||
void process_error_message (Transmitter::Channel, const char *);
|
void process_error_message (Transmitter::Channel, const char *);
|
||||||
void do_quit ();
|
void do_quit ();
|
||||||
|
|
||||||
|
Glib::Threads::Mutex error_lock;
|
||||||
|
std::list<std::string> error_stack;
|
||||||
|
|
||||||
void color_selection_done (bool status);
|
void color_selection_done (bool status);
|
||||||
bool color_selection_deleted (GdkEventAny *);
|
bool color_selection_deleted (GdkEventAny *);
|
||||||
bool color_picked;
|
bool color_picked;
|
||||||
|
Loading…
Reference in New Issue
Block a user