automatic error log window popup be gone.

This commit is contained in:
Robin Gareus 2015-03-14 17:28:20 +01:00
parent 7d188c8a1e
commit 83babb8a52
5 changed files with 43 additions and 10 deletions

View file

@ -211,6 +211,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
, auditioning_alert_button (_("Audition"))
, solo_alert_button (_("Solo"))
, feedback_alert_button (_("Feedback"))
, error_alert_button (_("Errors"))
, editor_meter(0)
, editor_meter_peak_display()
@ -231,8 +232,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
, audio_port_matrix (X_("audio-connection-manager"), _("Audio Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::AUDIO))
, midi_port_matrix (X_("midi-connection-manager"), _("MIDI Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::MIDI))
, error_log_button (_("Errors"))
, _status_bar_visibility (X_("status-bar"))
, _feedback_exists (false)
{
@ -2288,6 +2287,7 @@ ARDOUR_UI::blink_handler (bool blink_on)
sync_blink (blink_on);
audition_blink (blink_on);
feedback_blink (blink_on);
error_blink (blink_on);
}
void

View file

@ -457,6 +457,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
ArdourButton auditioning_alert_button;
ArdourButton solo_alert_button;
ArdourButton feedback_alert_button;
ArdourButton error_alert_button;
Gtk::VBox alert_box;
Gtk::VBox meter_box;
@ -472,6 +473,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
void sync_blink (bool);
void audition_blink (bool);
void feedback_blink (bool);
void error_blink (bool);
void set_flat_buttons();
@ -482,6 +484,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
bool solo_alert_press (GdkEventButton* ev);
bool audition_alert_press (GdkEventButton* ev);
bool feedback_alert_press (GdkEventButton *);
bool error_alert_press (GdkEventButton *);
void big_clock_value_changed ();
void primary_clock_value_changed ();
@ -731,7 +734,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
const char *msg);
Gtk::Label status_bar_label;
bool status_bar_button_press (GdkEventButton*);
Gtk::ToggleButton error_log_button;
void loading_message (const std::string& msg);
@ -768,6 +770,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
void successful_graph_sort ();
bool _feedback_exists;
bool _error_not_acknowledged;
void resize_text_widgets ();

View file

@ -96,14 +96,13 @@ ARDOUR_UI::setup_windows ()
status_bar_event_box->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
status_bar_label.set_size_request (300, -1);
status_bar_packer->pack_start (*status_bar_event_box, true, true, 6);
status_bar_packer->pack_start (error_log_button, false, false);
status_bar_packer->pack_start (error_alert_button, false, false);
status_bar_label.show ();
status_bar_event_box->show ();
status_bar_packer->show ();
error_log_button.show ();
error_alert_button.show ();
error_log_button.signal_clicked().connect (mem_fun (*this, &UI::toggle_errors));
status_bar_event_box->signal_button_press_event().connect (mem_fun (*this, &ARDOUR_UI::status_bar_button_press));
editor->get_status_bar_packer().pack_start (*status_bar_packer, true, true);
@ -175,6 +174,11 @@ ARDOUR_UI::display_message (const char *prefix, gint prefix_len, RefPtr<TextBuff
string text;
UI::display_message (prefix, prefix_len, ptag, mtag, msg);
if (!strcmp (prefix, _("[ERROR]: ")) || !strcmp (prefix, _("[WARNING]: "))) {
_error_not_acknowledged = true;
}
#ifdef TOP_MENUBAR
if (strcmp (prefix, _("[ERROR]: ")) == 0) {
@ -325,6 +329,8 @@ ARDOUR_UI::setup_transport ()
auditioning_alert_button.signal_button_press_event().connect (sigc::mem_fun(*this,&ARDOUR_UI::audition_alert_press), false);
feedback_alert_button.set_name ("feedback alert");
feedback_alert_button.signal_button_press_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::feedback_alert_press), false);
error_alert_button.set_name ("error alert");
error_alert_button.signal_button_press_event().connect (sigc::mem_fun(*this,&ARDOUR_UI::error_alert_press), false);
alert_box.set_homogeneous (true);
alert_box.set_spacing (2);
@ -536,6 +542,14 @@ ARDOUR_UI::feedback_alert_press (GdkEventButton *)
return true;
}
bool
ARDOUR_UI::error_alert_press (GdkEventButton*)
{
_error_not_acknowledged = false;
UI::show_errors();
return true;
}
void
ARDOUR_UI::solo_blink (bool onoff)
{
@ -609,6 +623,22 @@ ARDOUR_UI::feedback_blink (bool onoff)
}
}
void
ARDOUR_UI::error_blink (bool onoff)
{
if (_error_not_acknowledged) {
if (onoff) {
error_alert_button.set_active (true);
} else {
error_alert_button.set_active (false);
}
} else {
error_alert_button.set_active (false);
}
}
void
ARDOUR_UI::set_transport_sensitivity (bool yn)
{

View file

@ -514,6 +514,10 @@ ARDOUR_UI::build_menu_bar ()
#endif
disk_space = true;
}
#ifndef TOP_MENUBAR
hbox->pack_end (error_alert_button, false, false, 2);
#endif
hbox->pack_end (wall_clock_label, false, false, 2);
hbox->pack_end (disk_space_label, false, false, 4);

View file

@ -580,10 +580,6 @@ UI::process_error_message (Transmitter::Channel chn, const char *str)
cerr << prefix << str << endl;
} else {
display_message (prefix, prefix_len, ptag, mtag, str);
if (!errors->is_visible() && chn != Transmitter::Info) {
show_errors ();
}
}
}