The macro processing function can now return a second value, which is
the index of the line to make active, which must be one of the lines in
the selection. If it is not, or if the value is not present, then the
active line is left unchanged if it is in the new selection, or set to
the first line of the new selection if it is not.
Closes#1435.
Originally committed to SVN as r6398.
Previously adding a word to the dictionary via the spell checker dialog
would not update the dictionary used by the subs edit box and
vice-versa.
Originally committed to SVN as r6396.
Remove the pointlessly hardcoded height of the checklist.
Set the parent correctly.
Set the initial focus to the OK button.
Originally committed to SVN as r6373.
Timing changes can potentially make all of the columns need to be
repainted (due to the collision line color), and the grid currently
isn't smart enough to know when this is actually the case, so just
always repaint the entire thing.
Originally committed to SVN as r6371.
Scintilla's modification notifications don't expose enough information
to do a very good job of deciding when to group changes with previous
ones, but it does expose when Scintilla thinks undo groups should end,
so just use that.
This should significantly improve the behavior of undo when editing
lines in the edit box.
Originally committed to SVN as r6370.
SubtitlesGrid::DuplicateLines iterated over the entire file multiple
times for each line duplicated, making duplicating large numbers of
lines extremely slow.
Originally committed to SVN as r6366.
Calling AssFile::Save/Load from multiple threads (even on different
objects) was not safe due to that is uses SubtitleFormat internally,
which was inheriently thread-unsafe. To fix this, change
SubtitleFormat's interface to support immutable implementations, and
make all of the current implementations immutable.
This isn't a perfect solution - making a subtitle format implemented in
lua immutable would be rather difficult - so at some point in the future
SubtitleFormat should probably be changed to a factory which returns new
objects from GetReader/GetWriter.
Originally committed to SVN as r6365.
Redesign how shift times history is saved. Previously it stored the
localized strings in the history file, which are not particularly
parsable as the format may differ between locales. Rather than doing
this, store the raw settings in a json file, and generate the history
strings on display. In addition to making it much easier to load old
settings, this makes it so that the history is always displayed using
the current locale, rather than the locale in which the shifting was
done.
Closes#1427.
Originally committed to SVN as r6363.
Combining Shift+Up/Down (or Home/End or Page Up/Page Down) with
shift-clicking had very odd results due to that they used separate
variables to decide where to extend from (and even when only one was
used they were handled incorrectly in some cases).
Closes#1311.
Originally committed to SVN as r6355.
If the second return value from the validate function exists and is a
non-empty string, replace the macro's help text with that string.
Revert r6327, as this is a better solution to the same problem.
Closes#1413.
Originally committed to SVN as r6352.
'UTF-16' is big-endian UTF-16, so returning it for UTF-16LE is incorrect
and results in line_iterator failing on UTF-16LE.
Originally committed to SVN as r6351.
Portaudio defaults to using the most stable widely available host API,
rather than the highest performance or quality, and as a result the
default host API on windows (MME) is really quite bad. As such, add
logic to select the best host API for the selected output device.
Closes#1375.
Originally committed to SVN as r6346.
If an entire group of commands in a toolbar is missing (such as with
AssDraw on non-windows), the duplicate separator should go as well to
avoid ugliness. A better solution here would be platform-specific
default toolbars, which should probably be done as part of #495.
Closes#1398.
Originally committed to SVN as r6337.
Creating an entire toolbar for one button in the drag mode is a
pointless waste of space and source of ugliness. The secondary toolbar
was more reasonable for the vector clip tool, but it's still a bit
pointless as there's enough space for it on the main toolbar at any
reasonable zoom level.
Closes#1401.
Originally committed to SVN as r6333.
VideoBox is down to one method so it doesn't actually need to be able to
reference most of the stuff it constructs.
Originally committed to SVN as r6331.
Rather than passing a string as the second argument to
aegisub.register_macro, they can now pass a function which will be
called (with no arguments) to get a help string.
Originally committed to SVN as r6327.
wxGTK doesn't generate spin events when the value of a spin control is
set programmatically, so generate the event ourseleves.
Originally committed to SVN as r6323.
Handle switching from placeholder/normal mode when the value is changed
externally (such as from the active line changing) in addition to on
focus/blur, and improve behavior when the user sets the text to the
placeholder text.
Originally committed to SVN as r6321.
With incomplete (or possibly incomplete for \r and \fn) tags at the end
of an override block, the text at the beginning of the next override
block was being incorrectly parsed as part of that tag.
Originally committed to SVN as r6317.
It's never used on Windows, but it's useful to have all of the files in
the project, and the other non-Windows audio players are already in the
project.
Originally committed to SVN as r6314.
The hotkey should only be Ctrl-J on OS X (where Ctrl-G is taken by Find
Next), but platform-specific hotkeys aren't implemented yet.
Originally committed to SVN as r6301.
Deriving from the more specialized renderes reduces the amount of code
required, but it depends on implementation details of the specific
implementations, resulting in the custom renderers not working with
wxGTK. In addition, this makes it possible to bypass the default
handling for 'Enter' which made it impossible to set it as a hotkey.
Originally committed to SVN as r6300.