Commit Graph

4940 Commits

Author SHA1 Message Date
Thomas Goyne b55ff3f803 Switch auto4lua to a transactional model which applies changes to the subtitle file only if a macro runs to completion without errors or the user cancelling. Significantly improves behavior when the user cancels and fixes a race condition caused by committing on threads other than the GUI thread.
Originally committed to SVN as r5650.
2011-09-28 19:50:14 +00:00
Thomas Goyne 28afc48ca5 Eliminate an uninitialized variable warning
Originally committed to SVN as r5649.
2011-09-28 19:50:06 +00:00
Thomas Goyne d419c7a447 Implement the Automation menu
Originally committed to SVN as r5648.
2011-09-28 19:49:56 +00:00
Thomas Goyne 5bb5f146a7 Make the project context available to lua C functions so that they can use that instead of VideoContext::Get()
Originally committed to SVN as r5647.
2011-09-28 19:49:47 +00:00
Thomas Goyne dfef9191f9 Move the creation of the progress dialog for the audio caches to AudioProvider and just pass the BackgroundRunner to the caches. This still isn't the right place to be creating it, but this removes the UI-dependency for both caches.
Originally committed to SVN as r5646.
2011-09-28 19:49:37 +00:00
Thomas Goyne a9dc1f045d Remove "Config" from the name of ScriptConfigDialog and friends as they're used for more than just config, and clean up the implementations.
Originally committed to SVN as r5645.
2011-09-28 19:49:27 +00:00
Thomas Goyne 59d11f4cc4 Make it so auto4lua macros can have an IsActive function. Probably not very useful at the moment.
Originally committed to SVN as r5644.
2011-09-28 19:49:18 +00:00
Thomas Goyne 60ea67661a Do a better job of setting the module load path in LuaAssFile
Originally committed to SVN as r5643.
2011-09-28 19:49:09 +00:00
Thomas Goyne 8ba559b7f7 Clean up Automation4::ScriptManager
Originally committed to SVN as r5642.
2011-09-28 19:48:58 +00:00
Thomas Goyne eec3d64221 Make automation macros standard commands and remove the Automation4::Feature base class as it's no longer a useful abstraction.
Originally committed to SVN as r5641.
2011-09-28 19:48:47 +00:00
Thomas Goyne 492a0d3046 Make Automation4::Script mostly pure abstract and clean up the implementation of LuaScript
Originally committed to SVN as r5640.
2011-09-28 19:48:37 +00:00
Thomas Goyne c09259c93d Throw typed exceptions in automation rather than strings
Originally committed to SVN as r5639.
2011-09-28 19:48:28 +00:00
Thomas Goyne 6d0e44baad Use LocalScriptManager::Reload rather than looping over the scripts manually in the am/manager command
Originally committed to SVN as r5638.
2011-09-28 19:48:20 +00:00
Thomas Goyne af9315f1aa Remove some lingering unused automation things in frame_main
Originally committed to SVN as r5637.
2011-09-28 19:48:11 +00:00
Thomas Goyne f970508e67 Add the ability to unregister commands and clarify who owns command objects
Originally committed to SVN as r5636.
2011-09-28 19:48:02 +00:00
Thomas Goyne 8aca250fd0 Kill cmd::id and friends. It didn't work correctly as ids weren't stable and only VideoBox still used it
Originally committed to SVN as r5635.
2011-09-28 19:47:53 +00:00
Thomas Goyne 53b6765dd8 Redesign DialogProgress
Add agi::ProgressSink and agi::BackgroundRunner interfaces to libaegisub
which represent a generic progress sink and a thing which calls funtions
that need progress sinks. Make DialogProgress implement
agi::BackgroundRunner, invoking the passed function on a worker thread
and giving it a progress sink to update the dialog with.

Rewrite Automation4::ProgressSink, LuaThreadedCall and all related
classes to be based on agi::ProgressSink. Automation now simply uses
DialogProgress (although that's merely an implementation detail) and
adds a single method to route dialog opening from the worker thread to
the GUI thread.

Originally committed to SVN as r5634.
2011-09-28 19:47:40 +00:00
Thomas Goyne 5439c6dae6 Remove some old video options from default_config.json
Originally committed to SVN as r5633.
2011-09-28 19:47:31 +00:00
Thomas Goyne f341a63f14 Delete all the unused things in MatroskaWrapper (i.e. most of it), fix some derpy things, and make it throw typed exceptions.
Originally committed to SVN as r5632.
2011-09-28 19:47:21 +00:00
Thomas Goyne 2ca9392942 Set more finely-grained commit types from LuaAssFile rather than always using COMMIT_NEW
Originally committed to SVN as r5631.
2011-09-28 19:47:12 +00:00
Thomas Goyne 08a61c7fd4 Refactor LuaAssFile's implementation
Switch to 1-based indices to match Lua rather than converting back and
forth all over the place.

Eliminate a bunch of duplicated code.

Fix a few memory leaks.

Automatically set an undo point at the end of a macro if there are any
uncommited changes.

Originally committed to SVN as r5630.
2011-09-28 19:47:03 +00:00
Thomas Goyne df100fb5a5 Pass a project context to AssExportFilter::GetConfigDialogWindow so that export filters don't have to use things like AssFile::top and VideoContext::Get
Originally committed to SVN as r5629.
2011-09-28 19:46:53 +00:00
Thomas Goyne 9ce579e187 Document and clean up a bunch of exporter related things. Break some friendships, and add a getter for export filter names.
Originally committed to SVN as r5628.
2011-09-28 19:46:41 +00:00
Thomas Goyne cec07012e7 Add auto4_lua_factory.h to the vc9 project
Originally committed to SVN as r5627.
2011-09-28 19:46:32 +00:00
Thomas Goyne dfc18afd34 Replace custom karaoke parsing code in LuaAssFile with AssKaraoke
Originally committed to SVN as r5626.
2011-09-28 19:46:23 +00:00
Thomas Goyne 1329245a21 Clean up the automation dialog and don't let the user load the same script twice
Originally committed to SVN as r5625.
2011-09-28 19:46:14 +00:00
Thomas Goyne 53c0b6ff3a Clean up and document ScriptFactory, and add a function to get the full wildcard string for all registered automation engines
Originally committed to SVN as r5624.
2011-09-28 19:46:05 +00:00
Thomas Goyne 7680d6c246 Move the local script logic from FrameMain to a new LocalScriptManager
Originally committed to SVN as r5623.
2011-09-28 19:45:55 +00:00
Thomas Goyne 3029436a2d Drop some AS5-specific stuff in LuaAssfile
Originally committed to SVN as r5622.
2011-09-28 19:45:47 +00:00
Thomas Goyne 0a91be1c7c Unconditionally enable building automation even if there are no enabled engines as there isn't really any reason not to and the defines uglify the code.
Originally committed to SVN as r5621.
2011-09-28 19:45:35 +00:00
Thomas Goyne 66e826edb3 Split LuaProgressSink into its own cpp file to cut down on the bloatedness of auto4_lua.cpp
Originally committed to SVN as r5620.
2011-09-28 19:45:25 +00:00
Thomas Goyne 0b6ef72242 Rewrite LuaScriptReader, making it simpler and adding support for more charsets
Originally committed to SVN as r5619.
2011-09-28 19:45:16 +00:00
Thomas Goyne 432abc309b Remove WITH_OLD_HUNSPELL. 1.2.0 is four years old and the configure script doesn't even support older versions that would require WITH_OLD_HUNSPELL
Originally committed to SVN as r5618.
2011-09-28 19:45:07 +00:00
Thomas Goyne 4ec507f814 Clean up SubtitleFormat
Document all of the SubtitleFormat methods.

Add default implementations of CanReadFile and CanWriteFile that check
against the appropriate wildcard list.

Clean up and simplify a lot of very odd code.

Throw typed exceptions in all subtitle readers rather than strings.

Originally committed to SVN as r5617.
2011-09-28 19:44:53 +00:00
Thomas Goyne 156885b56d Make AudioTimingControllerDialogue operate on a project context
Originally committed to SVN as r5616.
2011-09-28 19:44:44 +00:00
Thomas Goyne a25c5c1909 Rewrite the subtitles edit control's syntax highlighting
Simplify and clean up the parsing code to better represent how VSFilter
actually handles many odd edge cases as well as making it significantly
faster.

Use an enum for syntax style IDs rather than magic numbers.

Add styles for comments, draw mode and karaoke templater variables
rather than reusing other styles and move some hardcoded style
information to the config file.

Operate on the utf-8 representation of the edit box text rather than a
wxString, as it's both faster and simpler.

Originally committed to SVN as r5615.
2011-09-28 19:44:34 +00:00
Thomas Goyne 67ab06e830 Add an optional argument to AssFile::Commit which indicates that only a single line was changed. Currently used only to cut down on file copies when coalescing.
Originally committed to SVN as r5614.
2011-09-28 19:44:24 +00:00
Thomas Goyne c936306593 Rewrite nearly everything related to karaoke
Move most karaoke parsing/serializing/editing code to AssKaraoke rather
than being scattered all over the place, and add much better support for
non-karaoke override tags and comments.

Add a karaoke timing controller.

Redesign the karaoke syllable split/join interface to have a single mode
from which both splitting and joining can be done rather than separate
split and join modes.

Only show the karaoke split/join bar when karaoke mode is enabled.

Closes #886, #987, #1190.

Originally committed to SVN as r5613.
2011-09-28 19:44:07 +00:00
Thomas Goyne cc147d1660 Eliminate uses of c_str made unnecessary by changed to wxString::Format in wx 2.9
Originally committed to SVN as r5612.
2011-09-28 19:43:48 +00:00
Thomas Goyne d990bbbb99 Eliminate all unnecessary uses of L and _T
Originally committed to SVN as r5611.
2011-09-28 19:43:11 +00:00
Niels Martin Hansen 7250b89cbd MSBuild project updates.
Originally committed to SVN as r5603.
2011-09-15 14:50:08 +00:00
Thomas Goyne 088976554c Fix non-precomp-header compilation
Originally committed to SVN as r5602.
2011-09-15 06:12:26 +00:00
Thomas Goyne d70fb7fe2d Fix compilation errors
Originally committed to SVN as r5601.
2011-09-15 06:03:13 +00:00
Thomas Goyne 683dd6c0a9 Kill BaseGrid::SelectVisible
Originally committed to SVN as r5600.
2011-09-15 05:17:43 +00:00
Thomas Goyne 11c40188c2 Eliminate some old selection code in BaseGrid
Originally committed to SVN as r5599.
2011-09-15 05:17:36 +00:00
Thomas Goyne 05da23b22f Mostly detangle the edit box from the subtitles grid
Originally committed to SVN as r5598.
2011-09-15 05:17:29 +00:00
Thomas Goyne 3c4191e649 Kill SubtitlesGrid::SetSubsToVideo
Originally committed to SVN as r5597.
2011-09-15 05:17:22 +00:00
Thomas Goyne 0c4eb020a4 Rewrite the shift times dialog, detangling it from the grid and making it modeless, and add support for characters outside the local charset in the shift history file path. Closes #1269.
Originally committed to SVN as r5596.
2011-09-15 05:17:14 +00:00
Thomas Goyne 1f095b0a01 Remove the SubsEditBox from the context in favor of the SubsEditTextCtrl as it was the only public member of SubsEditBox
Originally committed to SVN as r5595.
2011-09-15 05:17:07 +00:00
Thomas Goyne d022d2ae56 Eliminate pointless (and slow) setting of the edit box to its current text
Originally committed to SVN as r5594.
2011-09-15 05:17:00 +00:00