summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-03-14 17:28:20 +0100
committerRobin Gareus <robin@gareus.org>2015-03-14 18:28:36 +0100
commit83babb8a52a80b71d971817fd0a90df90c31045d (patch)
tree0a55e6aacf358b18065252271215ca961d830231 /gtk2_ardour
parent7d188c8a1e648457afbdeed71bddabb395565e4d (diff)
automatic error log window popup be gone.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc4
-rw-r--r--gtk2_ardour/ardour_ui.h5
-rw-r--r--gtk2_ardour/ardour_ui2.cc36
-rw-r--r--gtk2_ardour/ardour_ui_ed.cc4
4 files changed, 43 insertions, 6 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 597bb5df87..48605199e2 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -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
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 66b6610f40..de0688dfbb 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -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 ();
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index 9c13427953..950cadc382 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -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)
{
@@ -610,6 +624,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)
{
ActionManager::set_sensitive (ActionManager::transport_sensitive_actions, yn);
diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc
index 50798f9d6b..d011ad2b95 100644
--- a/gtk2_ardour/ardour_ui_ed.cc
+++ b/gtk2_ardour/ardour_ui_ed.cc
@@ -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);