summaryrefslogtreecommitdiff
path: root/gtk2_ardour/time_axis_view.cc
AgeCommit message (Collapse)Author
2016-05-03mark initial TAV as hidden to speed up initial display.Robin Gareus
This prevents an extra call to "redisplay" from TAV::hide() which triggers handle_gui_changes. Visible TAVs are positioned using show_at() which unsets _hidden.
2016-02-13Fix 6609: Right-click in active track name box crashesJulien ROGER
When right-clicking in the text entry, popup menu grabs focus. Consequently, the "focus out" handler is called, destroys the text entry and replaces it by the label name of the track. When menu pops up, it tries to access to a widget no longer available.
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-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-16Use ARDOUR_UI_UTILS::set_tooltip rather than via ARDOUR_UI::set_tipTim Mayberry
This removes the direct dependence on ARDOUR_UI/Gtk_UI for setting tooltips. Removes inclusion of ardour_ui.h from 16 files.
2015-09-16Move UIConfiguration Singleton into UIConfiguration headerTim Mayberry
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16Move ARDOUR_UI::ui_scale into UIConfiguration classTim Mayberry
2015-09-16Move DPIReset and ColorsChanged signals into UIConfigurationTim Mayberry
2015-05-27prevent crash when using WM close button on "new route name contains bad ↵Paul Davis
chars" dialog. The dialog would be created twice, once because the user hit enter etc. to indicate they were done editing, and once because focus left the name text entry, also indicate the end of editing. We now note that we're already processing the end of a name edit, and do nothing in that case
2015-04-22clean up GUI scalingRobin Gareus
2015-04-05add more contexts for SLA.Robin Gareus
2015-03-19add API to select TAV height mode.Robin Gareus
preparation for further Summary and Number of visible track count fixes. * “Only Self”: don’t resize child-views (old default) * “Total Height”: distribute height equally among all visible child [automation] lanes * “Height per Lane”: given height should be applied to all sub-views.
2015-02-11remove use of TimeRectanglePaul Davis
2015-01-09fix select-all-regions-within (it used to select everything overlapped)Ben Loftis
2014-12-28apply font-scale to overall layout (rulers, track-header) - fixes #6088Robin Gareus
2014-12-19fix double-free/crash at session closeRobin Gareus
2014-12-15next 2 modifiersPaul 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-12-06Fix crash on quit when in a non-route time axis.David Robillard
2014-12-06Fix crash when resizing a track quickly.David Robillard
Triggered by resize drag an automation track very quickly upwards to shrink it to the minimum. Caused by unsigned integer underflow.
2014-11-14add abort() to non-reached codeRobin Gareus
This cleans up a lot of false-positives in static analysis and also helps compilers to optimize code paths in general. (tagging the fatal stingstream operator as ‘noreturn’ is far less trivial)
2014-11-07use new canvas colors header as necessaryPaul Davis
2014-11-05various positional fixes for TimeAxisView, including moving the separator ↵Paul Davis
line to the bottom, and keeping it in the same coordinate space as the TAV group
2014-11-03use ArdourCanvas::TimeRectangle for regions, notes, markersPaul Davis
2014-11-03move start of a time axis view back to 0.0 on the x-axis, not 1.0Paul Davis
2014-11-01retain selection on track-height changeRobin Gareus
2014-10-21remove "canvasvar_" from all functions related to obtaining values from ↵Paul Davis
ARDOUR_UI::config()
2014-09-09fix TAV text-entry size.Robin Gareus
for now: no round corners, gtk-entry + its frame packing messes things up
2014-09-08Move Scroomer out of Track Selection Box:Robin Gareus
* no horiz space between Piano-Roll & Track * 1:1 mapping of note's vertical space (no border)
2014-09-07special case track-header buttonsRobin Gareus
2014-09-06gtk style related fixes:Robin Gareus
* remove some old/unused styles * fix plugin-ui button (hover color when active) * consistent style for route buttons (and related ArdourButton updates)
2014-09-06Revert "use a gloabl size group for track-header ctrl buttons"Robin Gareus
This reverts commit 86eb72955c76575b75a2b9e535162ca7e0612bfd.
2014-09-05re-order TAV widget packing:Robin Gareus
allow to resize automation tracks on the indent handle, too
2014-09-04use a gloabl size group for track-header ctrl buttonsRobin Gareus
2014-09-04NOOP, fix indentRobin Gareus
2014-09-04fix c4be8c2a67Robin Gareus
2014-09-04further tweaks pertaining the track-number heightRobin Gareus
2014-09-04when track selection changes, cancel any and all name editingPaul Davis
2014-09-04Trick 17: share separator + border:Robin Gareus
This effectively adds a line after the last track.
2014-09-04dedicated TAV separator lineRobin Gareus
2014-09-04Revert "cont'd work on automation-track headers (amend ba53af1c5)"Robin Gareus
This reverts commit beb5e3e777b0e92e8dde7ee12c324b32c679ff63.
2014-09-04update number label geometryRobin Gareus
the number label can be significantly wider than other ctrl buttons and does not lend itself or be 'square'.
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-09-03quick mockup of indented automation-track headersRobin Gareus
XXX: If we keep this approach, TimeAxisView::show_at() needs to be fixed. TimeAxisView::_canvas_display should draw the separator line at the top, and regions inside moved down 1px.
2014-09-02static global definition for track-header widthRobin Gareus
the track-header minimum width is defined by the name-label (IFF the 2nd row fader is not visible, but the fader is rather small by default and and grows) track-header width in almost all cases is: name-label width + width of three button (1 char each) + max size of all meters (if visible) + width of MIDI scroomer (if visible) + 2px table cellspacing (per column)
2014-09-02fix static initialization of Gtk::SizeGroupRobin Gareus
2014-08-31fix track-header hide/showRobin Gareus
2014-08-31track-header fader tweaks:Robin Gareus
* align height to button-height. * align width to label text-entry * increase min width