Commit graph

4001 commits

Author SHA1 Message Date
Thomas Goyne
5588cda268 Significantly revamp how visual tools interact with the rest of the program
Rather than just have a single Refresh method that gets called whenever
something happens that could possibly be of interest to the visual
tools, add seperate methods for signaling frame number changes and
changes to the file, and use the new SelectionController stuff for other
things that used to merit a Refresh. This eliminates a large amount of
redundant reparsing of lines which happened on paint, as well as a large
number of redundant repaints.

Frame data is now only uploaded to the video card when the frame number changes
rather than when anything at all changes, slightly improving performance when
using mesa's software opengl implementation.

Vector clip and drag tools now do a slightly better job of not
discarding the user's selection for no apparent reason, and strange
selection behavior from clicking on visual features should now be
entirely fixed.

Everything but the constructor and toolbar event handler in the visual
tool implementations are now private.

Originally committed to SVN as r4631.
2010-06-28 07:13:15 +00:00
Thomas Goyne
d30326b20d Don't create the default visual tool until video is loaded so that visual tools can assume video is loaded.
Originally committed to SVN as r4630.
2010-06-28 07:13:08 +00:00
Thomas Goyne
dfb844b6ab Make lines_added and lines_removed in SelectionListener::OnSelectedSetChanged mutually exclusive.
Originally committed to SVN as r4629.
2010-06-28 07:13:03 +00:00
Thomas Goyne
574a247559 Fix segfault caused by AssExportFilterChain not getting initialized.
Originally committed to SVN as r4628.
2010-06-28 07:12:57 +00:00
Thomas Goyne
894d55d7a2 Add overload of GetSelectedSet that just returns the selection
Originally committed to SVN as r4627.
2010-06-28 07:12:52 +00:00
Thomas Goyne
9ff34fb00d Revert r4612: "Remove redundant handler for ctrl-clicking the grid", as I completely misread what the code was doing.
Originally committed to SVN as r4626.
2010-06-28 07:12:36 +00:00
Amar Takhar
743997b266 Make the logging for charset detection more useful by print the detected character set(s)
Originally committed to SVN as r4625.
2010-06-27 20:03:38 +00:00
Thomas Goyne
af5d34590a Sort styles after lowercasing them rather than before so they actually get in the right order.
Originally committed to SVN as r4624.
2010-06-27 07:53:36 +00:00
Thomas Goyne
cd0378519d Add float overload to VariableData and use it in visual_tool.cpp rather than pretending that float* and double* are the same thing.
Originally committed to SVN as r4623.
2010-06-27 07:53:31 +00:00
Thomas Goyne
75d9ecd14a Fix selection issues with visual tools
Originally committed to SVN as r4622.
2010-06-27 07:53:25 +00:00
Thomas Goyne
7f7771bcdc Remove unused variables
Originally committed to SVN as r4621.
2010-06-27 07:53:20 +00:00
Thomas Goyne
caba46bf0b Remove features for deleted control points
Originally committed to SVN as r4620.
2010-06-27 07:53:14 +00:00
Thomas Goyne
dc2836e9e5 Fix bug where features for the wrong line were displayed in the rectangular clip tool
Originally committed to SVN as r4619.
2010-06-27 07:53:08 +00:00
Thomas Goyne
44888bb008 Reenable Start/Cancel buttons in the font collector dialog even if the collection fails.
Originally committed to SVN as r4618.
2010-06-27 05:05:44 +00:00
Thomas Goyne
7c4bf32566 Don't allow deselection of the only selected line
Originally committed to SVN as r4617.
2010-06-27 04:55:19 +00:00
Thomas Goyne
11b30c8bb4 When the active line is deselected via ctrl-clicking, set the active line to a line which is selected.
Originally committed to SVN as r4616.
2010-06-27 04:55:14 +00:00
Thomas Goyne
74d887a4c4 Add ctrl-shift-click block selection adding
Originally committed to SVN as r4615.
2010-06-27 04:55:08 +00:00
Thomas Goyne
2f80c6b26a Update lastRow when rows are ctrl-clicked
Originally committed to SVN as r4614.
2010-06-27 04:55:03 +00:00
Thomas Goyne
a47080137d Repaint rows when they are added or removed from the selection
Originally committed to SVN as r4613.
2010-06-27 04:54:58 +00:00
Thomas Goyne
4db892935c Remove redundant handler for ctrl-clicking the grid
Originally committed to SVN as r4612.
2010-06-27 04:54:52 +00:00
Thomas Goyne
934da32931 Select the first line when opening a file
Originally committed to SVN as r4611.
2010-06-27 04:54:46 +00:00
Thomas Goyne
5598b787c7 Fix gcc build errors
Originally committed to SVN as r4610.
2010-06-27 03:24:03 +00:00
Niels Martin Hansen
c5c306f90c Make SubtitlesGrid::InsertLine() smarter about updating maps, saves quite a lot of time on big insertions.
Originally committed to SVN as r4609.
2010-06-26 15:49:05 +00:00
Niels Martin Hansen
22de62de77 Add selection change notification batching to the grid. This doesn't seem to actually improve performance, it might rather be line inserts that are glacial.
Originally committed to SVN as r4608.
2010-06-26 15:40:10 +00:00
Niels Martin Hansen
4c604931aa Fix mistake in DummySelectionController template class, should make G++ a little happier.
Originally committed to SVN as r4607.
2010-06-26 14:26:38 +00:00
Niels Martin Hansen
52627a0fc5 Show splash screen much earlier, and show main window much later. Also be smoother about the display of the main window, avoid flickery relayouting. Remove splash screen "click to close" behaviour as well as timed close, just hide it when the main window has been shown.
Originally committed to SVN as r4606.
2010-06-26 14:16:59 +00:00
Niels Martin Hansen
c15f0ada62 Be more sure the audio display's grid pointer is initialised properly. Should fix audio loading.
Originally committed to SVN as r4605.
2010-06-26 14:09:15 +00:00
Niels Martin Hansen
c9c2fa6404 Move "active line" responsibility to the grid. There are at the very least a bunch of redraw issues that need to be sorted out, probably much worse things are hiding.
Originally committed to SVN as r4604.
2010-06-26 11:32:16 +00:00
Niels Martin Hansen
c4a27da4fc Change the grid to use more sensible maps to keep track of index/object mappings for subtitle lines, and follow the SelectionController model. (Hopefully the new maps can also give slightly better performance.)
Try to keep the original API intact. Some redundant or unused functions in SubtitleGrid were removed. The LoadFromAss() function was renamed to UpdateMaps() since that was its real purpose. (Note that SubtitleGrid now has an UpdateMaps() function that overshadows BaseGrid::UpdateMaps(), but SubtitleGrid::UpdateMaps() calls the hidden function. They are not virtual.)
This does not yet fix visual tool feature selection.
Generally, things just feel more broken still. Further work will fix things.

Originally committed to SVN as r4603.
2010-06-26 07:26:27 +00:00
Niels Martin Hansen
70d41d31b2 Remove the SelectionChangeSubscriber mechanism from the grid and implement some basic selection change notification through SelectionController.
Change SelectionListener interface so it receives the set of lines added and removed from selection, instead of just the complete new selection.
Update VisualTool<> to use SelectionListener to receive selection change notifications.

This change (temporarily, I hope) breaks feature selection in visual drag mode, when changing selection via the grid. This is caused by the grid selection change first clearing the entire selection, which sends a separate notification about selection clear. This causes the last visual feature to be deselected, and then the visual tool base reselects the active line, causing a new notification for selection to be sent. The active line happens to be the newly clicked line, and the selection notification enters during the externalChange guard being set, and is then ignored for feature update purposes. When control returns to the original SelectRow call in the grid, the line to be selected has already been selected and then nothing happens.
The best fix is to avoid two notifications being required to deselect all then reselect one line in the first place, so making the grid selection handling saner is the best fix.

Originally committed to SVN as r4602.
2010-06-26 04:38:02 +00:00
Niels Martin Hansen
e60d476f4a Turn BaseGrid into a do-nothing SelectionController<AssEntry>.
Originally committed to SVN as r4601.
2010-06-25 01:49:12 +00:00
Niels Martin Hansen
1a626bb14e Add SelectionController adapted from ADR branch, now templatized on the item data type. Intentionally not making this a merge, the selection controller needs to logically come from trunk into ADR, even if it was added there originally.
Originally committed to SVN as r4600.
2010-06-25 01:44:29 +00:00
Niels Martin Hansen
4f0982c7d5 "Intelligently" append dialogue lines to the end of the Events section instead of to the absolute end of file. This will make appending lines slower if attachments are present, but much safer. Updates #1211.
Originally committed to SVN as r4598.
2010-06-24 20:48:49 +00:00
Niels Martin Hansen
6b36d730af Fix attachments dialogue infinite looping if closed with attachments present. Updates #1212.
Originally committed to SVN as r4596.
2010-06-24 20:43:23 +00:00
Niels Martin Hansen
a71b83f61c Add some docstrings to Auto4 LuaAssFile class.
Originally committed to SVN as r4595.
2010-06-24 19:32:23 +00:00
Niels Martin Hansen
eec24ce562 Remove empty attachments sections when the Attachments dialogue is closed. Updates #1212.
Originally committed to SVN as r4593.
2010-06-24 19:14:13 +00:00
Thomas Goyne
e2a42ccb6c If undo/redo would result in there being no lines selected, select the last line
Originally committed to SVN as r4592.
2010-06-24 07:16:21 +00:00
Thomas Goyne
d8e8f9eb68 Fix bad option names
Originally committed to SVN as r4591.
2010-06-24 06:26:44 +00:00
Niels Martin Hansen
3b1189a8b2 Make attachments dialogue set undo points. Updates #1216.
Originally committed to SVN as r4590.
2010-06-24 06:13:51 +00:00
Niels Martin Hansen
7521d2d29d Fix AssAttachment::Clone() not being const causing it to not override AssEntry::Clone(), and make sure the group field is also copied during cloning. Updates #1216.
Originally committed to SVN as r4589.
2010-06-24 06:13:06 +00:00
Amar Takhar
8e912e3ff6 Include <algorithm> to get std::for_each
Originally committed to SVN as r4587.
2010-06-24 01:51:18 +00:00
Amar Takhar
46da1e538d Merge r4450 to unbreak non precompiled header building.
Originally committed to SVN as r4586.
2010-06-24 01:50:16 +00:00
Amar Takhar
b5ed0d6c8c wrap config.h include under LAGI and put -DLAGI when compiling to ensure it's only included when building libaegisub.
Originally committed to SVN as r4585.
2010-06-24 01:49:48 +00:00
Thomas Goyne
4f53324ca3 Add the name of the option to OptionValue's error messages
Originally committed to SVN as r4582.
2010-06-24 01:24:49 +00:00
Thomas Goyne
e2f8e69612 Beat some semblance of sanity into ass_override and related files. Fixes a pile of crashes when tags are missing expected parameters.
Originally committed to SVN as r4581.
2010-06-24 01:24:43 +00:00
Thomas Goyne
c64e764648 Make AssFixStylesFilter an order of magnitude faster
Originally committed to SVN as r4580.
2010-06-24 01:24:37 +00:00
Thomas Goyne
d1f36bdc43 Eliminate unnessesary character set conversions in TextFileWriter
Originally committed to SVN as r4579.
2010-06-24 01:24:32 +00:00
Thomas Goyne
53fb43c7e6 Fix significantly incorrect handling of pretty much everything in AssTransformFramerateFilter and make it better at deciding when it actually needs to do anything.
Originally committed to SVN as r4578.
2010-06-24 01:24:26 +00:00
Thomas Goyne
627d423017 Fix memory leak in VariableData
Originally committed to SVN as r4577.
2010-06-24 01:24:21 +00:00
Thomas Goyne
cf9eef80ab Fix memory leak in AssLimitToVisibleFilter
Originally committed to SVN as r4576.
2010-06-24 01:24:15 +00:00