change note colors on the fly, to permit user-definition of colors more easily; remove some debug output
git-svn-id: svn://localhost/ardour2/branches/3.0@7301 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
@@ -117,7 +117,7 @@ CanvasNoteEvent::on_channel_selection_change(uint16_t selection)
|
||||
set_outline_color(calculate_outline(ARDOUR_UI::config()->canvasvar_MidiNoteInactiveChannel.get()));
|
||||
} else {
|
||||
// set the color according to the notes selection state
|
||||
selected(_selected);
|
||||
set_selected(_selected);
|
||||
}
|
||||
// this forces the item to update..... maybe slow...
|
||||
_item->hide();
|
||||
@@ -168,7 +168,7 @@ CanvasNoteEvent::hide_channel_selector(void)
|
||||
}
|
||||
|
||||
void
|
||||
CanvasNoteEvent::selected(bool selected)
|
||||
CanvasNoteEvent::set_selected(bool selected)
|
||||
{
|
||||
if (!_note) {
|
||||
return;
|
||||
|
||||
@@ -74,7 +74,7 @@ class CanvasNoteEvent : virtual public sigc::trackable
|
||||
void validate ();
|
||||
|
||||
bool selected() const { return _selected; }
|
||||
void selected(bool yn);
|
||||
void set_selected(bool yn);
|
||||
|
||||
virtual void move_event(double dx, double dy) = 0;
|
||||
|
||||
|
||||
@@ -538,8 +538,6 @@ MidiRegionView::scroll (GdkEventScroll* ev)
|
||||
bool
|
||||
MidiRegionView::key_press (GdkEventKey* ev)
|
||||
{
|
||||
cerr << "MRV key press\n";
|
||||
|
||||
/* since GTK bindings are generally activated on press, and since
|
||||
detectable auto-repeat is the name of the game and only sends
|
||||
repeated presses, carry out key actions at key press, not release.
|
||||
@@ -619,8 +617,6 @@ MidiRegionView::key_press (GdkEventKey* ev)
|
||||
/* yes, this steals r */
|
||||
if (midi_view()->midi_track()->step_editing()) {
|
||||
midi_view()->step_edit_rest ();
|
||||
cerr << "Stole that r because " << midi_view()->midi_track()->name()
|
||||
<< " is step editing!\n";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1633,7 +1629,7 @@ MidiRegionView::clear_selection_except(ArdourCanvas::CanvasNoteEvent* ev)
|
||||
{
|
||||
for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
|
||||
if ((*i)->selected() && (*i) != ev) {
|
||||
(*i)->selected(false);
|
||||
(*i)->set_selected(false);
|
||||
(*i)->hide_velocity();
|
||||
}
|
||||
}
|
||||
@@ -1650,7 +1646,7 @@ MidiRegionView::unique_select(ArdourCanvas::CanvasNoteEvent* ev)
|
||||
Selection::iterator tmp = i;
|
||||
++tmp;
|
||||
|
||||
(*i)->selected (false);
|
||||
(*i)->set_selected (false);
|
||||
_selection.erase (i);
|
||||
|
||||
i = tmp;
|
||||
@@ -1877,7 +1873,7 @@ MidiRegionView::remove_from_selection (CanvasNoteEvent* ev)
|
||||
_selection.erase (i);
|
||||
}
|
||||
|
||||
ev->selected (false);
|
||||
ev->set_selected (false);
|
||||
ev->hide_velocity ();
|
||||
|
||||
if (_selection.empty()) {
|
||||
@@ -1896,7 +1892,7 @@ MidiRegionView::add_to_selection (CanvasNoteEvent* ev)
|
||||
}
|
||||
|
||||
if (_selection.insert (ev).second) {
|
||||
ev->selected (true);
|
||||
ev->set_selected (true);
|
||||
play_midi_note ((ev)->note());
|
||||
}
|
||||
|
||||
@@ -2923,7 +2919,7 @@ MidiRegionView::maybe_select_by_position (GdkEventButton* ev, double x, double y
|
||||
|
||||
for (Events::iterator i = e.begin(); i != e.end(); ++i) {
|
||||
if (_selection.insert (*i).second) {
|
||||
(*i)->selected (true);
|
||||
(*i)->set_selected (true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2932,3 +2928,15 @@ MidiRegionView::maybe_select_by_position (GdkEventButton* ev, double x, double y
|
||||
editor.get_selection().add (this);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MidiRegionView::color_handler ()
|
||||
{
|
||||
RegionView::color_handler ();
|
||||
|
||||
for (Events::iterator i = _events.begin(); i != _events.end(); ++i) {
|
||||
(*i)->set_selected ((*i)->selected()); // will change color
|
||||
}
|
||||
|
||||
/* XXX probably more to do here */
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ class MidiRegionView : public RegionView
|
||||
inline ARDOUR::ColorMode color_mode() const { return midi_view()->color_mode(); }
|
||||
|
||||
void set_frame_color();
|
||||
void color_handler ();
|
||||
|
||||
void redisplay_model();
|
||||
|
||||
@@ -278,7 +279,7 @@ class MidiRegionView : public RegionView
|
||||
void show_list_editor ();
|
||||
|
||||
void selection_as_notelist (Notes& selected, bool allow_all_if_none_selected = false);
|
||||
|
||||
|
||||
protected:
|
||||
/** Allows derived types to specify their visibility requirements
|
||||
* to the TimeAxisViewItem parent class.
|
||||
|
||||
@@ -85,7 +85,7 @@ MidiStreamView::MidiStreamView (MidiTimeAxisView& tv)
|
||||
|
||||
_note_lines->lower_to_bottom();
|
||||
|
||||
ColorsChanged.connect(sigc::mem_fun(*this, &MidiStreamView::draw_note_lines));
|
||||
ColorsChanged.connect(sigc::mem_fun(*this, &MidiStreamView::color_handler));
|
||||
|
||||
note_range_adjustment.set_page_size(_highest_note - _lowest_note);
|
||||
note_range_adjustment.set_value(_lowest_note);
|
||||
@@ -301,6 +301,10 @@ MidiStreamView::update_contents_height ()
|
||||
void
|
||||
MidiStreamView::draw_note_lines()
|
||||
{
|
||||
if (!_note_lines) {
|
||||
return;
|
||||
}
|
||||
|
||||
double y;
|
||||
double prev_y = contents_height();
|
||||
uint32_t color;
|
||||
@@ -699,6 +703,8 @@ MidiStreamView::rec_data_range_ready (nframes_t start, nframes_t cnt, boost::wea
|
||||
void
|
||||
MidiStreamView::color_handler ()
|
||||
{
|
||||
draw_note_lines ();
|
||||
|
||||
if (_trackview.is_midi_track()) {
|
||||
canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_MidiTrackBase.get();
|
||||
} else {
|
||||
|
||||
@@ -121,6 +121,7 @@ class MidiStreamView : public StreamView
|
||||
void display_track (boost::shared_ptr<ARDOUR::Track> tr);
|
||||
|
||||
void update_contents_height ();
|
||||
|
||||
void draw_note_lines();
|
||||
void apply_note_range(uint8_t lowest, uint8_t highest, bool to_region_views);
|
||||
bool update_data_note_range(uint8_t min, uint8_t max);
|
||||
|
||||
@@ -66,7 +66,7 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList
|
||||
virtual void set_height(double h);
|
||||
void set_y (double);
|
||||
void set_color (Gdk::Color const &);
|
||||
|
||||
|
||||
ArdourCanvas::Item* get_canvas_frame();
|
||||
ArdourCanvas::Group* get_canvas_group();
|
||||
ArdourCanvas::Item* get_name_highlight();
|
||||
|
||||
@@ -366,7 +366,6 @@ MidiModel::DiffCommand::side_effect_remove(const NotePtr note)
|
||||
state once this is done.
|
||||
*/
|
||||
|
||||
cerr << "This undo has " << side_effect_removals.size() << " SER's to be re-added\n";
|
||||
for (set<NotePtr>::iterator i = side_effect_removals.begin(); i != side_effect_removals.end(); ++i) {
|
||||
_model->add_note_unlocked (*i);
|
||||
}
|
||||
@@ -709,7 +708,6 @@ MidiModel::DiffCommand::side_effect_remove(const NotePtr note)
|
||||
|
||||
if (side_effect_notes) {
|
||||
XMLNodeList notes = side_effect_notes->children();
|
||||
cerr << "Reconstruct DiffCommand with " << notes.size() << " SER's\n";
|
||||
for (XMLNodeList::iterator n = notes.begin(); n != notes.end(); ++n) {
|
||||
side_effect_removals.insert (unmarshal_note (*n));
|
||||
}
|
||||
|
||||
@@ -2329,8 +2329,6 @@ Session::commit_reversible_command(Command *cmd)
|
||||
gettimeofday(&now, 0);
|
||||
_current_trans.top()->set_timestamp(now);
|
||||
|
||||
cerr << "add cmd @ " << _current_trans.top() << " to history\n";
|
||||
|
||||
_history.add(_current_trans.top());
|
||||
_current_trans.pop();
|
||||
}
|
||||
|
||||
@@ -47,7 +47,6 @@ UndoTransaction::UndoTransaction (const UndoTransaction& rhs)
|
||||
|
||||
UndoTransaction::~UndoTransaction ()
|
||||
{
|
||||
cerr << "UndoTransaction destroyed\n";
|
||||
drop_references ();
|
||||
clear ();
|
||||
}
|
||||
@@ -55,8 +54,6 @@ UndoTransaction::~UndoTransaction ()
|
||||
void
|
||||
command_death (UndoTransaction* ut, Command* c)
|
||||
{
|
||||
cerr << "Command drop ref\n";
|
||||
|
||||
if (ut->clearing()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user