summaryrefslogtreecommitdiff
path: root/gtk2_ardour/region_view.cc
AgeCommit message (Collapse)Author
2015-10-22Remove GhostRegion::CatchDeletion signal to reduce session close timesTim Mayberry
Currently when a GhostRegion is deleted by its "parent" RegionView it emits the static GhostRegion::CatchDeletion signal which is connected to the RegionView::remove_ghost method of every RegionView instance. With a static GhostRegion::CatchDeletion signal a particular test session causes 31 Million calls of RegionView::remove_ghost on Session deletion and the session takes 70 seconds to close with a debug build. The lifetime of a ghost region is tied to both the TimeAxisView(TAV) and RegionView(RV) in that when a RegionView is deleted all GhostRegion instances associated with the RegionView should be deleted or when a TimeAxisView is deleted all ghost regions that are contained in the view should be deleted. This means that there needs to be notification between GhostRegion and both classes. Instead of using a signal for this as we know there are only two listeners and GhostRegion already holds a reference to the TimeAxisView, also take a reference to the parent RegionView in the GhostRegion constructor and use it to notify the RegionView when GhostRegion destructor is called so it can drop any references it holds. Using a direct function call in the GhostRegion destructor to notify the TimeAxisView and RegionView "parents" brings the unload/close time down for the test session from 70 seconds to 4.5 seconds. The GhostRegion also references canvas items that are added to the TimeAxisView canvas group or at least a canvas group that it manages. So when the TimeAxisView is destroyed and the canvas group that is the parent of those items is destroyed, the GhostRegion's canvas items will also be deleted/destroyed by the parent canvas item/group. This means the GhostRegions must be destroyed when the TimeAxisView they are contained in is destroyed or there will be dangling references to canvas items that have already been deleted and trying to delete them again will be bad.
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-09-16Move UIConfiguration Singleton into UIConfiguration headerTim Mayberry
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16Move DPIReset and ColorsChanged signals into UIConfigurationTim Mayberry
2015-05-23Fix inverted logic of SnapOff with snap modifiers pressed.nick_m
- also clean up, rename and comment some previous hanges.
2015-05-22More cleanupnick_m
- remove "no_magnets" ugh.
2015-05-17Relative snap - support magnetic mode (hackishly for now)nick_m
2015-02-11remove use of TimeRectanglePaul Davis
2014-12-19more color/modifier tweaksPaul Davis
2014-12-19allow theme control of sync mark colorsPaul Davis
2014-12-19add more controllable modifiers for region transparencyPaul Davis
2014-12-18Use color modifiers for dynamic region styles.David Robillard
2014-12-17Remove some aborts that don't really need to be.David Robillard
Enforce PatchPrimaryKey sanity at the type level rather than attempting to check for it everywhere. Remove dead file.
2014-12-15add some alpha to "covered region" colorationPaul Davis
2014-12-15final modifierPaul Davis
2014-12-14fix up requested color names everywhere.Paul Davis
Thank <deity> for emacs ... space-uncamelcase-word-at-point FTW
2014-12-14initial pass to replace all UIConfiguration::get_XXXXXX() calls with ↵Paul Davis
UIConfiguration::color(name). IMPORTANT: names have not been downcased and spaced yet, so many colors are not found
2014-11-22Move time converters only to the region views that actually need them.David Robillard
A step towards sorting out time issues more solidly, the time situation of MIDI region views and automation region views is slightly different.
2014-11-16Use an enum for RoundMode instead of magic numbers.David Robillard
No functional changes in this one (for easier auditing), but towards having round up/down only if necessary modes, rather than kludging around that situation with a double round as we do currently.
2014-11-14Fix missing return statement in deleted region scenario.David Robillard
2014-11-13Fix crash when deleting overlapped regions.David Robillard
Use RegionSelection for MIDI regions as well, since the old dumb stub didn't do some things correctly. There's probably no reason to have a separate class for this at all, and some good ones for putting all regions in the same selection, so we should probably do that. For now they are still separate in the selection but use the same base class.
2014-11-07use new canvas colors header as necessaryPaul Davis
2014-11-03use ArdourCanvas::TimeRectangle for regions, notes, markersPaul Davis
2014-10-21remove "canvasvar_" from all functions related to obtaining values from ↵Paul Davis
ARDOUR_UI::config()
2014-09-04Revert "cont'd work on automation-track headers (amend ba53af1c5)"Robin Gareus
This reverts commit beb5e3e777b0e92e8dde7ee12c324b32c679ff63.
2014-09-03cont'd work on automation-track headers (amend ba53af1c5)Robin Gareus
now that the separator line is at the top, offset region-contents y0 by 1px.
2014-06-25move utility functions into a dedicated namespaceRobin Gareus
2014-06-22more canvas refactoring.Paul Davis
Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it could theoretically be used by any derived type.
2014-06-21use newly factored canvas in gtk2_ardourPaul Davis
2014-06-13rationalize and coordinate handle of region (time axis view item) opacity.Paul Davis
There are still some bugs with this because of the waveview image cache - fixes coming soon.
2014-06-09remove instances of RGBA_TO_UINT() macro from region_view.ccPaul Davis
2014-06-09substantial changes in color management, involving a reduction in the use of ↵Paul Davis
Gdk::Color and more consistent logic for region coloring. Group tabs now also get the text drawn in an appropriately contrast-y color
2014-06-05tweak logic for region coloring, particularly when mutedPaul Davis
2014-06-05hopefully fix up selection of color for region name text, under all conditionsPaul Davis
2014-06-03more profound changes to canvas scrolling, in particular find appropriate ↵Paul Davis
ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}()
2014-04-16fix lack of region trimming when not displaying name highlight barPaul Davis
2014-01-10regionviews used for (MIDI) automation (CC) should not show a name highlightPaul Davis
2013-04-25use virtual bool canvas_group_event () in TimeAxisViewItems to get suitably ↵Paul Davis
delegatable/inherited event handling
2013-04-24many pervasive changes primarily related to waveform drawing, particular ↵Paul Davis
content-dragging, colors, and more
2013-04-17remove all calls to Outline::set_outline_width (1) because this is "wrong" ↵Paul Davis
when using Cairo - the default is 0.5 and it can remain that way
2013-04-16change UIConfig to use accessor/setter methods like RCConfig so that ↵Paul Davis
ParameterChanged methods can actually be emitted; add variable (over a small range) background shading for all TimeAxisViewItems
2013-04-15Fix dragging objects on the canvas and remove redundant canvas groupsPaul Davis
Delivery of fake motion events to the editor needed the event coordinates to be in canvas space, as they are with "real" events. Editor and other objects had many redundant groups from timbyr's work on gnomecanvas to scroll by moving groups. We don't need this anymore with cairo-canvas (though possibly a stationay background group for the canvas might be useful again one day as in the SAE logo. Its implementation would be fairly different though, since we would have to explicitly move the group on every scroll, since nothing else ever moves on scroll). Also tweaks to text item placement, and switch TimeAxisViewItem from name_pixbuf to name_text, since ArdourCanvas::Text is already "pixbuf optimized".
2013-04-12change frames_per_pixel to samples_per_pixelPaul Davis
2013-04-12change all frame_to_pixel and pixel_to_frame to sample_to_pixel and ↵Paul Davis
pixel_to_sample
2013-04-11Merge branch 'cairocanvas' of git.ardour.org:ardour/ardour into cairocanvasPaul Davis
2013-04-11add (bezier) curves to canvas, use for automation lines; fix issue with ↵Paul Davis
rectangles missing their upper line segment; more cairo canvas fixes
2013-04-11Merge branch 'master' into cairocanvasRobin Gareus
Conflicts: gtk2_ardour/editor.h gtk2_ardour/editor_canvas.cc gtk2_ardour/wscript
2013-04-11enable videotimeline by defaultRobin Gareus
2013-04-04commit immediately post linkingPaul Davis
2013-04-04initial commit of hand merging, plus getting "ancient" waf script to work ↵Paul Davis
correctly