Commit Graph

2552 Commits

Author SHA1 Message Date
Thomas Goyne 3949ccec24 Drop the position argument from ProcessParametersCallback since nothing needs it 2012-12-02 12:39:37 -08:00
Thomas Goyne 1c176e8568 Store parsed dialogue blocks in a ptr_vector
This eliminates the need to explicitly delete the parsed blocks.

Also go ahead and remove AssDialogue::Blocks since it's really not a
very good idea in general.
2012-12-02 12:29:33 -08:00
Thomas Goyne 67d796731a Replace SubsEditBox::OnUndoTimer with a lambda 2012-12-02 07:59:32 -08:00
Thomas Goyne b507f49cec Remove the pad argument from GetMarginString
It's no longer ever actually set to true.
2012-12-02 07:59:31 -08:00
Thomas Goyne 3045e2d012 Move the Margin controls to an array 2012-12-02 07:59:31 -08:00
Thomas Goyne fae9a5496a Extract some duplicated code for the margin controls 2012-12-02 07:59:31 -08:00
Thomas Goyne 0b46fdff49 Refactor time ctrl handling in SubsEditBox 2012-12-02 07:59:31 -08:00
Thomas Goyne 1b6f122d12 Replace field_setter with a lambda 2012-12-02 07:59:31 -08:00
Thomas Goyne d3fc4dcb25 Remove things used in one (or zero) files from agi_pre.h 2012-12-02 06:33:30 -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 ff03fef2db Use the C++ versions of C headers 2012-12-01 17:24:59 -08:00
Thomas Goyne f337db86d3 Make AssStyle::UpdateData and GetSSAText less weird 2012-12-01 17:24:59 -08:00
Thomas Goyne 56993f7f5e Don't use emplace_back for wxDataViewItemArray since it doesn't work in non-STL builds 2012-11-30 18:47:24 -08:00
Thomas Goyne e0ce2962cf Fix typo in a VFW error message 2012-11-30 17:06:01 -08:00
Thomas Goyne c2a43a2356 Clean up AssKaraoke a little bit 2012-11-30 16:40:00 -08:00
Thomas Goyne ffef9a1485 Round syllable durations to centiseconds when splitting syllables 2012-11-30 16:25:20 -08:00
Thomas Goyne af35e50810 Also move karaoke markers after the dragged marker if Ctrl is held down. Closes #1557. 2012-11-30 16:22:45 -08:00
Thomas Goyne 66becbab16 Fix crash on exit
Subtitle formats unregister themselves when deleted, so using
delete_clear on the list of subtitle formats does not work very well.
2012-11-30 12:01:44 -08:00
Thomas Goyne 5513d774bf Rewrite the fontconfig font lister
FcFontRenderPrepare discards excess family names and fullnames, so in
some cases it may be impossible to verify that the font returned by it
is the one we asked for. To work around this, prefilter the available
fonts to only do fontconfig's matching on the ones with the correct
names.
2012-11-30 12:01:44 -08:00
Thomas Goyne 0b19908e7b Use std::prev and std::next where applicable 2012-11-30 10:54:57 -08:00
Thomas Goyne 174a992974 Use remove_and_dispose_if where applicable 2012-11-30 10:44:09 -08:00
Thomas Goyne 6ab8345148 Use nullptr in more places 2012-11-30 10:44:09 -08:00
Thomas Goyne 7a7a036017 Switch lists of pointers to vectors of pointers 2012-11-30 10:44:09 -08:00
Thomas Goyne e77e810bd8 Use emplace_back where applicable 2012-11-30 10:44:09 -08:00
Thomas Goyne eca70285f1 Switch all uses of std::list for signal connections to std::deque 2012-11-28 07:28:18 -08:00
Thomas Goyne 42a8a55b51 Fix setting hotkeys
Populating a vector by resizing it to the target size then using
push_back does not work very well.
2012-11-27 16:14:06 -08:00
Thomas Goyne d7b01edc64 Support styles after the dialogue in the fonts collector
Make two passes over the file to collect all of the styles before
processing the dialogue lines, as the styles section can legally come
after the dialogue lines which use those styles.
2012-11-26 16:37:53 -08:00
Thomas Goyne a5ac77368c Use EVT_CHAR_HOOK rather than EVT_KEY_DOWN in TimeEdit
With wxWidgets trunk keydown events are no longer generated for
Ctrl-C/X/V on Windows, which breaks the custom copy/paste handling.
2012-11-26 07:38:50 -08:00
Thomas Goyne 5309f7fb9d Add explicit override specifiers to ASS-related virtuals 2012-11-26 07:11:30 -08:00
Thomas Goyne 2a6c6616a9 Rename AssStyle::GetType() to AssStyle::Group() so that it actually gets called 2012-11-26 07:11:30 -08:00
Thomas Goyne 1a6caa27b6 Switch to using lambdas in a few places 2012-11-26 07:11:30 -08:00
Thomas Goyne 2c1f593a13 Delete declarations of LuaParseTagData and LuaUnparseTagData 2012-11-26 07:11:30 -08:00
Thomas Goyne 6b09bdfe70 Factor out some duplicated code 2012-11-26 07:11:30 -08:00
Thomas Goyne 947dc537d1 Add a generic function for invoking functions on the GUI thread 2012-11-26 07:11:30 -08:00
Thomas Goyne 1d020b851e Add picked colors to the recently used colors 2012-11-25 16:47:39 -08:00
Thomas Goyne 59e6a1bef7 Fix crash when playing audio before time 0
There were two checks for reads past the end rather than checks for
before start and after end.

Closes #1556.
2012-11-25 14:01:50 -08:00
Thomas Goyne 4e8e5b597c Change AssEntry::group to an enum 2012-11-25 14:01:50 -08:00
Thomas Goyne 49ed0551ad Consolidate all entries of each group when there are duplicate sections
Dealing with multiple instances of each section makes the code
significantly more complicated, and in most cases Aegisub doesn't
actually bother to handle it correctly.
2012-11-24 16:24:01 -08:00
Thomas Goyne b94547aa71 Drop format and header lines from the in-memory file representation
They're just pointless cruft, so drop them from the file when parsing
and re-add them when saving as ASS or SSA.
2012-11-24 16:24:00 -08:00
Thomas Goyne 30ceced39f Skip the current line when searching for the next matching line in the kanji timer 2012-11-24 16:24:00 -08:00
Thomas Goyne bdf7a0ca83 Parse unclosed override blocks as plain text as VSFilter does 2012-11-24 10:04:53 -08:00
Thomas Goyne a4311b50f7 Update the correct inputs when typing in the HTML box in the color picker 2012-11-24 10:04:53 -08:00
Thomas Goyne ded55272a0 Use the correct format for ASS colors in the color picker 2012-11-24 10:04:53 -08:00
Martin Herkt b1e40455ed ASS: Fix script header
Previously, Aegisub wrote its "Script generated by" lines without a
semicolon to mark them as comments. As a result, it prepended these
lines every time a script was loaded and then saved again. Fix.

Also fix a bug that caused the ASS parser to treat comments before
the [Script Info] section as non-blank lines, therefore inserting a
duplicate section header whenever such comments were present.
2012-11-22 07:50:14 -08:00
Thomas Goyne 3f840ceec8 Fix crash when rearranging styles in the style manager
Inserting lines already in an intrusive list at a different position
does not work, unlike with unintrusive lists. Instead, swap each item in
to the correct place.
2012-11-21 07:32:06 -08:00
Thomas Goyne 8e10d67d2f Read strings from Matroska as UTF-8
Strings in Matroska files are all either UTF-8 or a UTF-8 subset, not
whatever the current locale happens to be.
2012-11-21 06:27:27 -08:00
Thomas Goyne bd259b7197 Fix awesome variable shadowing derp 2012-11-20 14:28:57 -08:00
Thomas Goyne b8b9bfdfb6 Fix non-pch compilation 2012-11-18 21:10:36 -08:00
Thomas Goyne 291e411f4c Use a patched zconf.h that doesn't try to include unistd.h when it isn't available 2012-11-17 11:13:08 -08:00
Thomas Goyne b6c2cf887f Add an empty unistd.h for zconf.h 2012-11-16 15:58:56 -08:00
Thomas Goyne b055abae44 Fix compliation with gcc 4.7 2012-11-15 18:15:40 -08:00
Thomas Goyne 89fef06d6b Replace all uses of auto_ptr with unique_ptr 2012-11-15 18:15:39 -08:00
Thomas Goyne 06aaaff16b NULL -> nullptr 2012-11-13 08:51:01 -08:00
Thomas Goyne 47c678bd63 Make UCDetect a little less insane 2012-11-13 08:46:31 -08:00
Thomas Goyne 653aa32eb2 Use std::any_of rather than std::find_if() != end() 2012-11-13 05:52:24 -08:00
Thomas Goyne b6b68b789d Use lambdas in a few places 2012-11-12 19:40:42 -08:00
Thomas Goyne 6212afb314 Add karaoke templater support to the syntax highlighter 2012-11-12 18:35:27 -08:00
Thomas Goyne c1dc875a05 Always add the spellchecker language list to the edit box context menu
There's really no reason not to include it even if the right-click
wasn't on a word, and leaving it out can lead to confusing situations
when the dictionary file for the user's currently selected language
doesn't exist.
2012-11-12 18:35:26 -08:00
Thomas Goyne 01c833d9b3 Make the autosave dialog resizeable 2012-11-12 18:35:26 -08:00
Thomas Goyne c41f2ff343 Add an icon to the autosave dialog 2012-11-12 18:35:26 -08:00
Thomas Goyne 59a165f022 Change the crash recovery naming scheme to be like the autosave files 2012-11-12 18:35:26 -08:00
Thomas Goyne eb823e66d3 Add backups and crash recovery files to the autosave dialog. Closes #657. 2012-11-12 18:35:26 -08:00
Thomas Goyne 154f831c7c Add a basic dialog for opening Autosave files
This currently consists of just a list of autosave files and the
timestamps of the versions available for each file. It'd probably be a
good idea to add more information to this later, such as the original
file path and perhaps a preview of the file?

Closes #781.
2012-11-12 18:35:26 -08:00
Thomas Goyne 88fdee726b Extract word-splitting logic from the syntax highlighter 2012-11-12 18:35:25 -08:00
Thomas Goyne 24c21dd425 Don't update the editbox styling when it hasn't changed
The syntax highlighting isn't especially slow, but the stylesneeded
event seems to be sent repeatedly until the styles aren't changed, so it
was pointlessly reparsing and restyling the text on every idle event.
2012-11-12 18:35:25 -08:00
Thomas Goyne 7a116db07d Unbind shift-enter in the edit box since it does weird things 2012-11-12 18:35:25 -08:00
Thomas Goyne 238356406f Extract calltip logic from the edit ctrl to libaegisub 2012-11-12 18:35:25 -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 5db559265f Drop support for config_windows.h 2012-11-12 18:35:23 -08:00
Thomas Goyne 1531ef88bd Visual Studio 2012 compilation fixes
VS11 only defines pseudo-variadic template stuff for up to 5 arguments,
so use lambdas rather than bind.
2012-11-12 18:35:23 -08:00
Thomas Goyne 1848aad5c1 Fix compilation with C++ 11/libc++ 2012-11-12 18:35:21 -08:00
Thomas Goyne ebd56f2163 Include cstdint rather than stdint.h 2012-11-10 18:05:57 -08:00
Thomas Goyne 0893ed3f0a Remove references to tr1 2012-11-10 18:05:57 -08:00
Thomas Goyne b077c0991b Move the split line at cursor functionality to commands 2012-11-10 18:05:57 -08:00
Thomas Goyne 9d4be82be8 Replace syntax highlighting logic with new stuff in libaegisub 2012-11-10 18:05:57 -08:00
Thomas Goyne 76adcad999 Move the spellchecker base class to libaegisub 2012-11-10 18:05:57 -08:00
Thomas Goyne bd78692148 Use wxSTC::GetTextRaw rather than converting utf-8 -> wxString -> utf-8 2012-11-10 18:05:56 -08:00
Thomas Goyne 9088ae994c Remove windows.h from the precompiled header
It's only used by a few source files and it defines a ton of garbage.
2012-11-10 18:05:56 -08:00
Thomas Goyne 08983adc96 Move agi::Color parsing to its own file
Keeping all uses of boost.spirit in a single translation unit helps
avoid having it murder compile times, which requires that it be off by
itself.
2012-11-10 18:05:56 -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 28175aadbe Switch to boost.container for containers of incomplete types
STL containers are not required to support incomplete types, and while
most implementations do, clang's libc++ does not.
2012-11-10 18:05:56 -08:00
Thomas Goyne 59eae9ab85 Store the lines in LuaAssFile in a vector
This makes the implementation better match the exposed interface and
simplifies some of the code.
2012-11-10 18:05:55 -08:00
Thomas Goyne 10f0f5fc7b Kill AssFile::AddComment and just add it when writing the file 2012-11-10 18:05:55 -08:00
Thomas Goyne a51b3d8d7f Handle errors which occur in the progress dialog worker thread 2012-11-10 18:01:22 -08:00
Thomas Goyne ed43623743 Create well-formed ASS when reading SRT-in-Matroska
The conversion to ASS was creating invalid lines which could not be
parsed, resulting in the worker thread crashing.

Closes #1554.
2012-11-10 18:01:20 -08:00
Thomas Goyne 6b0ea92f8e Actually read dialogue lines from SRT-in-Matroska
Pass the ASS parser a [Events] line before feeding it dialogue lines so
that the dialogue lines are parsed as such rather than as script info
lines.

Updates #1554.
2012-11-10 18:01:18 -08:00
Thomas Goyne b006bcc8c4 Commit pending audio changes on Enter in the edit box. Closes #1544. 2012-11-03 15:57:24 -07:00
Thomas Goyne 6c2ccd8639 Don't display an error when opening read-only formats 2012-10-29 06:29:45 -07:00
Thomas Goyne b5baacec2c Fix merge error in df60c2e7a4
Although wxSTC defines SetValue, it doesn't actually work correctly.
2012-10-28 07:20:12 -07:00
Thomas Goyne 0e7501f45c Fix some cases where the detached video dialog would get set to bogus sizes
At very large and very small sizes, setting the window's size with
SetSize may not actually result in the window changing to the requested
size.  Once this happened future adjustments to the size were incorrect,
and the video display would sometimes not fit in the window, and on os x
the window could get set to a negative size, with weird results.
2012-10-27 20:44:09 -07:00
Thomas Goyne f35e10c76a Decode the autosave path when cleaning up old files 2012-10-27 19:26:45 -07:00
Thomas Goyne 99a20e4d1c Move InvalidMarginIdError to ass_dialogue.h 2012-10-26 17:26:53 -07:00
Thomas Goyne ce05857bfa Use std::tr1::array for AssStyle::Margin
This eliminates the need for an explicit operator= on AssStyle.
2012-10-26 17:26:53 -07:00
Thomas Goyne e44c47c863 Remove $Id$ markers since git doesn't support them 2012-10-25 17:39:49 -07:00
Thomas Goyne df60c2e7a4 Factor out a bunch of duplicated code for clipboard stuff 2012-10-25 17:39:49 -07:00
Thomas Goyne ff6394c95e Throw only real exceptions from subtitle io stuff 2012-10-25 17:39:49 -07:00
Thomas Goyne 78b70e987e Disable Ubuntu's global menu bar for Aegisub
wxWidgets currently doesn't generate menu open or update events for the
Ubuntu menubar (since GTK doesn't send the relevant signals to the
application), which we rely on.

Updates #1531.
2012-10-25 17:39:49 -07:00