Commit graph

1033 commits

Author SHA1 Message Date
Tim Mayberry
b5c9a92a58 Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use PBD::Timers 2015-01-01 19:04:14 +07:00
Paul Davis
2c36e96c97 rename "Convert to Region In-Place" to "Separate" since it is known by that name elsehwere and in the code 2014-12-30 19:52:44 -05:00
David Robillard
4c0cebf7f9 MIDI transform dialog. 2014-12-28 16:06:44 -05:00
Robin Gareus
c14f6c59db apply font-scale to overall layout (rulers, track-header) - fixes #6088 2014-12-28 15:01:49 +01:00
David Robillard
12a7f12b0b Context menu for applying edits to note selection. 2014-12-25 15:32:10 -05:00
David Robillard
62355de33a Fix cursor update on nested entry.
For example, if you're in a note and something about the mode changes, it's the
underlying region context that needs to change.  So, seems we need a stack of
entry contexts to deal with this sort of thing.

Switching in/out of smart mode still doesn't update immediately because we
don't have the y-coordinate needed to update it.
2014-12-23 13:47:59 -05:00
Paul Davis
ea2e80f298 fix slow behaviour when changing visible track height in Editor::set_visible_track_count() 2014-12-23 12:41:32 -05:00
Paul Davis
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -05:00
David Robillard
670938c8c4 Fix various cursor problems.
Add a new scoped cursor system that makes it much harder to screw up and end up
with stick cursors and so on.
2014-12-20 01:13:25 -05:00
David Robillard
95042d941d Move object tool to "grab" tool (key g).
Makes all tools under the left hand and eliminates the need for toggling.
2014-12-18 20:33:10 -05:00
David Robillard
341146a975 Remove mouse mode toggling. 2014-12-18 20:26:43 -05:00
David Robillard
66870ddf09 Restore snap when switching to/from internal. 2014-12-18 20:23:34 -05:00
David Robillard
cebf191cba Make tools toggle-like by switching to last mode. 2014-12-18 20:21:05 -05:00
David Robillard
5fef655380 Remove internal edit mode and add "content" tool. 2014-12-18 20:21:01 -05:00
nick_m
9af9e17adc Add editor selection state to session history via a SelectionMemento, which
combines selection related editor properties with the current editor selection.

The related editor properties are:
mouse mode,
zoom setting,
left frame of the canvas,
y origin of the canvas.

Selection state now includes region views (storing the underlying region id)
and time.

This patch also fixes a region mute undo bug.
2014-12-18 11:03:10 -05:00
David Robillard
733f517948 Fix potential crash when right clicks go astray.
This should be impossible, since nothing but an audio region should have a fade
to begin with, but just doing nothing in this case does no harm.
2014-12-17 03:06:23 -05:00
Paul Davis
56ca52651e fix up requested color names everywhere.
Thank <deity> for emacs ... space-uncamelcase-word-at-point FTW
2014-12-14 16:15:38 -05:00
Paul Davis
48a7a11974 initial pass to replace all UIConfiguration::get_XXXXXX() calls with UIConfiguration::color(name).
IMPORTANT: names have not been downcased and spaced yet, so many colors are not found
2014-12-14 12:27:07 -05:00
Ben Loftis
e66752cec1 add set-session-extents-from-edit-range 2014-12-09 16:18:47 -06:00
David Robillard
603748d68a Unify gain and draw tools.
There might be a few special cases lingering around from attempts at magic tool
business, but this seems to work fine as far as I can tell.
2014-12-07 20:37:46 -05:00
David Robillard
c1cfa12d6e Wrap MusicalTime in a class.
This lets us get a more explicit handle on time conversions, and is the main
step towards using actual beat:tick time and getting away from floating point
precision problems.
2014-11-22 04:05:42 -05:00
David Robillard
5799cb8509 Fix edit point selector on Mixbus. 2014-11-18 02:53:27 -05:00
David Robillard
2fa6caad95 Support cut/copy/paste of several regions and lines at once.
The idea here is to do the reasonable thing, and copy objects of some
type (e.g. MIDI region, gain line) to tracks with a matching type.  The user
can override this with a track selection, which will be used straight-up.

Lost: ability to copy/paste lines across types, e.g. gain to pan.  This is
often questionable, but sometimes useful, so we will need to implement some
sort of "greedy mode" to make it possible.  Implementation simple, but not sure
what to do.  Perhaps this should only be possible if one automation track is
explicitly (i.e. via track selection) involved, and the types are at least
compatible-ish?
2014-11-16 22:35:45 -05:00
David Robillard
d63161426f Add "maybe" rounding modes for rounding only if necessary. 2014-11-16 22:35:45 -05:00
David Robillard
fd9ccc7058 Use an enum for RoundMode instead of magic numbers.
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-16 22:35:45 -05:00
Robin Gareus
55ce10f498 NULL pointer dereference? 2014-11-17 03:58:05 +01:00
Robin Gareus
4a17f9e941 round control-scroll offsets towards zero
fixes MCU "Locate called for negative sample position"
2014-11-15 19:41:15 +01:00
David Robillard
31acd96384 Implement "multi-paste" for notes, regions, and automation.
The idea here is that pasting several times to the same location doesn't make
sense.  Instead, the paste is appended past the last paste, snapped to the
grid.  This make it simple to replicate a given section a number of times,
simply by copying once and pasting several times.

This behaviour only appears when successive pastes are done to the same
location (whatever the edit point is).  When the paste point changes, the
"multi-paste" state is reset.

Boots 'n cats 'n boots 'n cats.
2014-11-14 20:04:19 -05:00
Robin Gareus
6b3a8915f3 add abort() to non-reached code
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-14 11:30:08 +01:00
Robin Gareus
da4365255c fix typo in 58fec98a
the documentation was correct: “GTK+ uses G_PRIORITY_HIGH_IDLE + 10
for resizing operations, and G_PRIORITY_HIGH_IDLE + 20 for redrawing
operations.”  but the priority for the idle visual changer was wrong.

fixes, follow-playhead and zoom/scrolling under load (no idle)
2014-10-29 18:31:13 +01:00
Paul Davis
f900711136 port changes to ARDOUR::Location and ARDOUR::Locations APIs from Tracks to Ardour.
Fixes deadlocks caused by mutex on Locations list, and clarifies the purposes and uses of the class-level and
object-level change-related signals.
2014-10-24 12:18:46 -04:00
Paul Davis
5ff0c6b319 prevent negative playhead positions from entering code via serialized state 2014-10-22 17:07:11 -04:00
Paul Davis
ba4d1cd1c1 remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config() 2014-10-21 22:58:58 -04:00
Paul Davis
b73f725676 remove mouse zoom mode; bind z to zoom-to-range 2014-10-21 12:47:53 -04:00
Robin Gareus
58fec98a4d fix track height resizing on OSX.
If the transport is running, g_idle with G_PRIORITY_DEFAULT_IDLE is
never called.

TODO: check other g_idle functions in libs/gtkmm2ext
2014-10-21 13:20:17 +02:00
Robin Gareus
a1245de1ba track height fixes:
* retain [custom] track-height
  Editor::override_visible_track_count() is called repeatedly (for
  every change), there was a 50/50 chance of it saving the right value.

* adjust default for new sessions: use “Normal” track height until
  told otherwise.
2014-10-20 20:33:28 +02:00
Paul Davis
8d8717800d add tearoff reattach for the editor 2014-10-16 13:44:36 -04:00
Paul Davis
dc924db851 correctly connect to Location static signals 2014-09-17 09:37:39 -04:00
Paul Davis
4e411dfd7b set the CairoWidget focus handler; reset focus when the mouse pointer leaves the Editor window 2014-09-16 12:46:39 -04:00
Paul Davis
bb5cd8aa32 fix compiler warning 2014-09-15 14:09:12 -04:00
Robin Gareus
df19c576c7 fix a bunch of memory leaks 2014-09-11 03:04:11 +02:00
Robin Gareus
b81ceeaaa6 complete list from 68f0694ac0 2014-09-09 01:24:17 +02:00
Ben Loftis
68f0694ac0 remove arbitrary button sizing for edit mode buttons 2014-09-08 15:02:33 -05:00
Robin Gareus
3a75fab244 speed up session load (display updates) 2014-09-06 12:52:29 +02:00
Robin Gareus
936cb05989 update dropdown triangle 2014-08-30 18:26:03 +02:00
Ben Loftis
74f313dd6b Rationalize ArdourButton and lots of associated theming issues.
ArdourButtons now have a "pushed" animation.
The gradient is now implemented in the button, rather than providing 2 colors in the theme, which was burdensome.
Lots of code cleanup in ArdourButton.  Removed several unnecessary flags.
Refactor more stuff into route_ui.
2014-08-22 11:51:20 -05:00
David Robillard
b75b88a1eb Use text to specify combo box padding for better font/display tolerance.
Consistent mixer strip button height.

The latter works by setting all the button size request heights to the
calculated height of the alphabet.  Thus, all buttons of the same class will be
the same height regardless of their actual text.
2014-07-30 18:30:42 -04:00
David Robillard
c1616ccff6 Shrink minimum width a bit by using the same hpad for all toolbar selectors.
30 was already being used for some, and looks like more than enough padding,
for me.  Hopefully is enough everywhere.
2014-07-29 23:44:57 -04:00
David Robillard
564d8d7669 Consistent styling for toolbar buttons.
All the different looks here didn't seem to convey anything useful to me, and
looked sloppy.  I went with the style of the transport button.

It would be nice if we could style button elements like Inset in the
configuration, but this would require some work.
2014-07-29 23:39:01 -04:00
Ben Loftis
ed07c53210 clean up cruft in some config variables 2014-07-28 15:55:20 -05:00