Commit Graph

61 Commits

Author SHA1 Message Date
Thomas Goyne 5fff88473f Add option to skip comments in the find/replace dialog. Updates #683. 2013-01-13 09:00:18 -08:00
Thomas Goyne b1dbb9a94b Decouple SearchReplaceEngine from DialogSearchReplace 2013-01-13 09:00:18 -08:00
Thomas Goyne 59db22e905 Use STL names for wxString functions with a bunch of aliases 2013-01-11 08:55:35 -08:00
Thomas Goyne 2f4cae46b4 Move the SearchReplaceEngine instance to the context 2013-01-11 08:53:36 -08:00
Thomas Goyne d459b7089c Use enums rather than magic numbers 2013-01-11 08:41:12 -08:00
Thomas Goyne 199507a58a Remove an unused variable and rename a misleading one 2013-01-11 08:41:12 -08:00
Thomas Goyne c923b05c23 Eliminate some duplicated code in the find dialog 2013-01-11 08:41:12 -08:00
Thomas Goyne 2d521fafc5 Shuffle around the find dialog sizers to cut down on empty space 2013-01-11 08:33:52 -08:00
Thomas Goyne 13851ff74d Delete worthless comments 2013-01-11 08:33:52 -08:00
Thomas Goyne 4334514c78 Remove the "update video" box from the find dialog
It hasn't worked for a few years and doesn't really make any sense with
how committing works now.
2013-01-11 08:33:52 -08:00
Thomas Goyne a99428c49d Extract options and MRU stuff from main.h
Nearly all of the files including main.h are doing so only for OPT_GET
and friends, which are rather unrelated to the main things that main.h
declares.
2013-01-09 16:48:31 -08:00
Thomas Goyne d0f4d9df99 Replace all uses of lagi_wxString with to_wx 2012-12-22 15:18:38 -08:00
Thomas Goyne d5aae26d83 Use boost::flyweight to intern the wxString members of AssDialogue
100 no-op non-amend commits on a subtitle file with 6689 dialogue lines,
with the undo limit set to 100:

Without flyweight:
	No video open:
		Initial memory usage: 30.6 MB
		Final memory usage: 498.0 MB
		Elapsed time: 6.3 seconds
	Video open, using libass:
		Initial memory usage: 54.3 MB
		Final memory usage: 653.3 MB
		Elapsed time: 23.7 seconds

With flyweight:
	No video open:
		Initial memory usage: 26.0 MB
		Final memory usage: 104.5 MB
		Elapsed time: 3.0 seconds
	Video open, using libass:
		Initial memory usage: 46.7 MB
		Final memory usage: 251.8 MB
		Elapsed time: 13.0 seconds

No video open:
	Memory usage: -79%
	Time: -52%
Video open:
	Memory usage: -61.5%
	Time: -45%

100 no-op amend commits on a line in the middle of a subtitle file with
6689 dialogue lines, with video open:

Without flyweight:
	Initial memory usage: 48.2 MB
	Final memory usage: 182.3 MB
	Elapsed time: 22.3 seconds

With flyweight:
	Initial memory usage: 39.8 MB
	Final memory usage: 165.8 MB
	Elapsed time: 13.8 seconds

Note: The large jump in memory usage here is due to that the benchmark
is blocking the main thread, so at the end there are ~100 video frames
waiting to be displayed.
2012-12-05 18:43:44 -08:00
Thomas Goyne 7090d2f513 Don't include wx/wx.h in subs_grid.h 2012-12-02 06:33:29 -08:00
Thomas Goyne 96cf5ea7ed Kill the #ifndef AGI_PRE guards
They don't actually improve compilation performance and make it more
annoying to modify what things are in the precompiled header.
2012-12-02 06:33:29 -08:00
Thomas Goyne 06aaaff16b NULL -> nullptr 2012-11-13 08:51:01 -08:00
Thomas Goyne e4d6b8661b Add range adaptor for filtering to a specific subclass from a heterogeneous range
This makes looping over the subtitle file and parsed dialogue lines less
awkward in many cases.
2012-11-12 18:35:25 -08:00
Thomas Goyne 67df64e879 Use range-based for loops in a bunch of places 2012-11-12 18:35:25 -08:00
Thomas Goyne 0893ed3f0a Remove references to tr1 2012-11-10 18:05:57 -08:00
Thomas Goyne 83761d881a Convert AssFile::Line to an intrusive list
Gives O(1) pointer -> iterator conversions, better memory usage, better
performance, and overall slightly simplifies the code using it.
2012-11-10 18:05:56 -08:00
Thomas Goyne e44c47c863 Remove $Id$ markers since git doesn't support them 2012-10-25 17:39:49 -07:00
Thomas Goyne 53433426bb Fix some stuff from Coverity Scan
Mostly just bugs in unreachable code and stylistic things, but there's a
few incorrect reachable things that were working by coincidence and
gratuitous dynamic_casts.
2012-10-15 18:16:09 -07:00
Thomas Goyne a948924850 Add a TextSelectionController interface to avoid exposing the wxSTC edit directly in the context 2012-10-12 14:54:08 -07:00
Thomas Goyne e4a6092b36 Use signals for selection change notifications 2012-10-12 14:54:07 -07:00
Thomas Goyne 5c10bfa2f3 OS X: Fix crash when opening Find/Replace dialog
Originally committed to SVN as r6820.
2012-05-18 05:03:05 +00:00
Thomas Goyne 38e87e2c83 Fix formatting string assertion failure in the search/replace dialog. Closes #1478.
Originally committed to SVN as r6727.
2012-04-27 19:08:09 +00:00
Thomas Goyne b32515da80 Strip trailing whitespace from all cpp and h files
Originally committed to SVN as r6600.
2012-03-25 04:05:06 +00:00
Thomas Goyne 38c905d32a Call Validate before invoking commands via hotkeys
Originally committed to SVN as r6448.
2012-02-07 01:22:23 +00:00
Thomas Goyne 7adbe07b4e Silence a bunch of PREFast warnings
Originally committed to SVN as r6162.
2011-12-26 22:20:49 +00:00
Thomas Goyne bc640b4f94 Fix use of uninitialized value that resulted in the find/replace dialog always opening as the replace dialog
Originally committed to SVN as r6155.
2011-12-24 00:47:41 +00:00
Thomas Goyne 0201b8ea9b Add dumb special casing to DialogSearchReplace so that replacing '$' with 'str' with regular expressions enabled results in 'str' being appended once rather than 1000 times.
Originally committed to SVN as r6062.
2011-12-22 21:19:12 +00:00
Thomas Goyne 61767e4453 Disable the "Update video" checkbox in the search/replace dialog when video isn't open
Originally committed to SVN as r6033.
2011-12-22 21:14:42 +00:00
Thomas Goyne 404e0fda4f Delete stuff in DialogSearchReplace
Originally committed to SVN as r6032.
2011-12-22 21:14:32 +00:00
Thomas Goyne 34a87b1c1e Silence a pile of /W4 warnings
Originally committed to SVN as r6001.
2011-12-22 21:09:31 +00:00
Thomas Goyne 0e260409fd Remove unused OnKeyDown method from DialogSearchReplace
Originally committed to SVN as r5932.
2011-11-29 23:17:49 +00:00
Thomas Goyne 262d5195c5 Add access keys for nearly all things which support them and were missing them. Closes #1070.
Originally committed to SVN as r5877.
2011-11-18 18:49:09 +00:00
Thomas Goyne be77dc8307 Mostly rewrite the visual tools and related classes
Convert all coordinates within the visual tools to Vector2D, which has
been significantly extended. Eliminates a lot of issues with accumulated
rounding errors and simplifies a lot of code.

Modernize the visual tools' interactions with the rest of Aegisub by
connecting to signals directly rather than routing everything through
the video display and converting the main visual tool mode toolbar to
the command system.

Extract all references to OpenGL from the visual tools and move them to
OpenGLWrapper as a first step towards making it possible to implement an
alternative video renderer. In the process, eliminate all uses of OpenGL
immediate mode.

Fix a bunch of minor issues and general instability.

Originally committed to SVN as r5823.
2011-11-06 17:18:20 +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
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 934a5b24eb Refine the commit types
Switch to a bitmask with much more finely-grained information about what
changed in the commit, fixing a few potential correctness problems and
significantly improving the performance of several scenarios where commits
are spammed very frequently.

Originally committed to SVN as r5590.
2011-09-15 05:16:32 +00:00
Thomas Goyne 7842ccbeb1 Kill SubtitlesGrid::SetVideoToSubs
Originally committed to SVN as r5470.
2011-07-15 04:25:23 +00:00
Thomas Goyne df1dce3593 Kill SubtitlesGrid::ass and SubtitlesGrid::EditBox and convert everything that used them over to agi::Context
Originally committed to SVN as r5215.
2011-01-16 07:17:36 +00:00
Thomas Goyne 3345797ff6 Use signals in AudioController and AudioTimingController
Originally committed to SVN as r4907.
2010-12-08 08:09:16 +00:00
Amar Takhar c15777f844 Merge audio_display_rewrite branch to trunk. This is not a complete work, don't expect to time anything for a while.
Originally committed to SVN as r4903.
2010-12-08 03:36:10 +00:00
Thomas Goyne 6d2b941e76 Rework how committing changes works
Rather than everything having to separately commit changes to the ass
and then tell the subs grid to notify various parts of Aegisub about the
changes, committing the AssFile now triggers an event which objects
listen for.

AssFile::Commit now also has an argument to indicate what sorts of
changes were made to the file. For now these types are very broad.

Originally committed to SVN as r4901.
2010-12-07 19:09:28 +00:00
Thomas Goyne 420f28adf8 If the user changes the active row in the middle of searching, search from the new active row even if it's after the last found row. Closes #1004
Originally committed to SVN as r4810.
2010-10-15 16:58:50 +00:00
Thomas Goyne ed9968e172 Don't pointlessly batch single selection changes when find/replacing. Fixes bug where find would select the wrong part of the line.
Originally committed to SVN as r4798.
2010-10-11 20:05:46 +00:00
Thomas Goyne fde4a7815d Make the subtitle edit box auto-commit all changes
This happens to fix most of the undo issues, as it's now much harder to
have uncommitted changes to the file.

Closes #355 and #586.

Originally committed to SVN as r4699.
2010-07-20 03:11:11 +00:00
Thomas Goyne 4a8abae3a3 Kill options.h and options.cpp, which have been empty for a while
Originally committed to SVN as r4676.
2010-07-12 21:49:48 +00:00
Thomas Goyne 2e5dc176db Rewrite Undo/Redo code
Make the undo and redo stacks non-static members of AssFile, making it
theoretically possible to have multiple open AssFiles with working undo.

Slightly improve tracking of whether the file is modified: saving,
making a change, then undoing the change now results in the file being
shown as unmodified as with most programs with undo.

Add basic undo coalescing support.

Originally committed to SVN as r4667.
2010-07-09 07:31:34 +00:00