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
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
1848aad5c1
Fix compilation with C++ 11/libc++
2012-11-12 18:35:21 -08:00
Thomas Goyne
0893ed3f0a
Remove references to tr1
2012-11-10 18:05:57 -08:00
Thomas Goyne
ea5428b65f
Replace AssColor with agi::Color
...
Add agi::Color, and replace AssColor and all uses of wxColor that are
not immediately passed to/from wx with it.
2012-11-10 18:05:56 -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
40bb3b857e
Allow scrolling the subtitles grid a page past the last row. Closes #888 .
2012-10-20 08:26:38 -07:00
Thomas Goyne
c7fd04a739
Rename ASS -> Ass in symbol names
...
Most types and functions used Ass, but a decent number used ASS, so make
them consistent.
2012-10-16 09:52:19 -07:00
Thomas Goyne
8aeb611745
Make the correct row visible when selecting rows with shift + arrow keys in the grid. Closes #1533 .
2012-10-14 08:31:16 -07:00
Thomas Goyne
b7e0af6bbb
Delete BaseGrid::GetFirstSelRow() since it's no longer used by anything
2012-10-14 08:22:13 -07:00
Thomas Goyne
e4a6092b36
Use signals for selection change notifications
2012-10-12 14:54:07 -07:00
Thomas Goyne
f756aa73c1
Add SelectionController::SetSelectionAndActive, which automatically batches the changes to the selection and active line
...
Originally committed to SVN as r6752.
2012-05-05 02:11:03 +00:00
Thomas Goyne
1bd24d837c
Allow block selections on the grid with modifier keys held down
...
Originally committed to SVN as r6747.
2012-05-04 02:52:58 +00:00
Thomas Goyne
213ccccf86
Redesign the logic for scrolling the grid on drags
...
Update the grid scroll position on mouse up rather than mouse down,
eliminating the need for the logic that made it impossible to do a drag
selection from the top or bottom rows of the grid, and fix some cases
where the grid would scroll in an undesirable direction.
Originally committed to SVN as r6746.
2012-05-04 02:52:52 +00:00
Thomas Goyne
123f02f0fb
Process hotkeys in wxEVT_CHAR_HOOK rather than wxEVT_KEY_DOWN
...
Char hook events propagate by default, removing the need for the event
filter to make key down events propagate, which was causing some funny
issues.
On Windows, the char hook handler runs before menu accelerators, fixing
a bug where Default context hotkeys would override more specific ones
when they appeared on a menu. Unfortunately, this is not the case on
GTK, so the dumb accelerator-disabling hack is still required.
Originally committed to SVN as r6724.
2012-04-27 19:07:49 +00:00
Thomas Goyne
3403734c00
Update the cached grid colors when the relevant options are changed rather than just repainting the grid. Closes #1466 .
...
Originally committed to SVN as r6668.
2012-04-06 15:50:46 +00:00
Thomas Goyne
9f3fd691e2
Unskip key events handled by the non-command keypress handling in BaseGrid
...
hotkey::check marks non-matching events as skipped, so the default key
event handler was running even if BaseGrid did something with the
keypress.
Closes #1464 .
Originally committed to SVN as r6667.
2012-04-06 03:53:38 +00:00
Thomas Goyne
de9cc755d2
Stop key event propagation when checking for hotkeys to avoid checking keypresses that aren't hotkeys several times
...
Originally committed to SVN as r6577.
2012-03-12 23:34:34 +00:00
Thomas Goyne
de7df882e9
Seek audio to the line on double-click in the grid in addition to video
...
Originally committed to SVN as r6456.
2012-02-07 23:17:26 +00:00
Thomas Goyne
aa49a4eb0f
Factor out the options lookups from BaseGrid::GetRowStrings so that they aren't pointlessly checked every row
...
Originally committed to SVN as r6393.
2012-01-31 00:43:32 +00:00
Thomas Goyne
0c972886fb
Cache most of the brushes used in grid painting
...
Originally committed to SVN as r6391.
2012-01-31 00:43:15 +00:00
Thomas Goyne
cf1425f9d1
Don't get the strings for hidden columns when painting the grid. Speeds up grid painting by up to 25%.
...
Originally committed to SVN as r6390.
2012-01-31 00:43:06 +00:00
Thomas Goyne
b34d2c547f
Use wxAutoBufferedPaintDC rather than manual double-buffering in BaseGrid, as it's simpler and slightly faster
...
Originally committed to SVN as r6389.
2012-01-31 00:42:58 +00:00
Thomas Goyne
8c246e1cb8
Make shift-scrollwheel scroll the grid a page at a time. Closes #1407 .
...
Originally committed to SVN as r6372.
2012-01-26 22:46:09 +00:00
Thomas Goyne
6d550b4a5d
Repaint the entire grid on timing changes
...
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.
2012-01-26 22:27:57 +00:00
Thomas Goyne
2094814077
Save the current row and scroll position in the file and restore it when the file is reopened. Closes #1417 .
...
Originally committed to SVN as r6362.
2012-01-25 19:07:36 +00:00
Thomas Goyne
26c3e13340
Fix poor synchronization between mouse and keyboard modifications to the selection
...
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.
2012-01-25 04:59:17 +00:00
Thomas Goyne
9ac2f93bf0
Fix some mostly unimportant uses of uninitialized memory
...
Originally committed to SVN as r6304.
2012-01-18 20:08:06 +00:00
Thomas Goyne
cae10121ed
Fix a bunch of -pedantic stuff
...
Originally committed to SVN as r6181.
2011-12-28 21:27:06 +00:00
Thomas Goyne
71345af81a
Overload operator int() on AssTime and remove GetMS/SetMS
...
Originally committed to SVN as r6123.
2011-12-22 21:28:51 +00:00
Thomas Goyne
a66cc26706
Remove all calls to wxKeyEvent::StopPropagation. Key events don't propagate by default and even if they did, events which are marked as processed don't propagate further.
...
Originally committed to SVN as r6046.
2011-12-22 21:16:43 +00:00
Thomas Goyne
95fe6a523f
Actually use the selection foreground color for selected rows in the grid
...
Originally committed to SVN as r6029.
2011-12-22 21:14:06 +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
89541a949f
Actually hide override tags in hide tags mode. Closes #1360 .
...
Originally committed to SVN as r5830.
2011-11-08 00:25:02 +00:00
Thomas Goyne
dc380c5848
Refactor BaseGrid painting a bit
...
Originally committed to SVN as r5829.
2011-11-08 00:24:53 +00:00
Thomas Goyne
8e81fd07ed
Move everything but the subtitle modification utility functions from SubtitlesGrid to BaseGrid. There never has been a clean division of responsibilities between them and the split mostly just made things awkward.
...
Originally committed to SVN as r5828.
2011-11-08 00:24:41 +00:00
Thomas Goyne
84c545b978
Return const references from OptionValue::GetList* rather than taking an output parameter. Eliminates some copies of lists and makes the calling code less awkward.
...
Originally committed to SVN as r5816.
2011-11-04 19:42:31 +00:00
Thomas Goyne
9a8fb66fbf
Remove an unused variable in BaseGrid::UpdateMaps
...
Originally committed to SVN as r5795.
2011-10-28 20:40:53 +00:00
Thomas Goyne
1741ce93f6
Factor out the mouse wheel forwarding code in the audio display to a function used by the audio display, video display and subtitles grid, and make it actually work
...
Originally committed to SVN as r5781.
2011-10-25 19:40:45 +00:00
Thomas Goyne
f29e889776
Always update column widths after a new line is added or removed
...
Originally committed to SVN as r5762.
2011-10-23 17:00:26 +00:00
Thomas Goyne
b7efafe3b8
Fix calculation of the time column widths
...
Originally committed to SVN as r5734.
2011-10-12 23:07:38 +00:00
Thomas Goyne
9b00fad2fc
Include the column headers in the column width calculations in BaseGrid
...
Originally committed to SVN as r5704.
2011-10-01 18:35:06 +00:00
Thomas Goyne
3dc0ed6c56
Use CmdDown in BaseGrid rather than #ifdefs
...
Originally committed to SVN as r5703.
2011-10-01 18:35:00 +00:00
Thomas Goyne
5a49abb2eb
Fix bug in BaseGrid::GetSelection that resulted in row 0 always being selected
...
Originally committed to SVN as r5653.
2011-09-28 19:50:41 +00:00
Thomas Goyne
94998f4283
Update ths column widths in BaseGrid when the number of digits in the row number changes
...
Originally committed to SVN as r5651.
2011-09-28 19:50:24 +00:00