Thomas Goyne
80c9f67ce8
Rewrite the auto-matcher for the karaoke timing copier
...
Operate on characters rather than bytes in the dialog so that it
actually works with Kanji.
Rewrite the auto-matcher to handle more cases and add unit tests for it.
2013-09-15 14:52:16 -07:00
Thomas Goyne
af74371f6d
Retry commits of file writes for up to a second to work around AV scanning
...
Poorly-written antivirus software briefly lock newly written files to
scan them for viruses, which makes the rename from the temp file to
actual file fail. Work around this by retrying the rename up to ten
times.
Closes #1620 .
2013-07-02 20:09:01 -07:00
Thomas Goyne
8760c9a547
Use unique_ptr in Connection rather than a shared_ptr
2013-06-30 16:06:36 -07:00
Thomas Goyne
098ffd0a92
Clean up signal.h a little
2013-06-30 15:51:51 -07:00
Thomas Goyne
3306ee126d
More unique_ptr
2013-06-11 20:54:07 -07:00
Thomas Goyne
72d4577d7d
Kill scoped_ptr in favor of unique_ptr
2013-06-11 16:06:58 -07:00
Thomas Goyne
9133f17e82
Insignificantly speed up opening UTF-8 files
2013-06-09 07:56:20 -07:00
Thomas Goyne
ef2a39fc7b
Eliminate pointless UTF-8 -> utf-8 conversion
2013-06-09 07:39:00 -07:00
Thomas Goyne
cff5afbb08
Don't overwrite existing hotkeys in migrations
2013-06-08 19:21:51 -07:00
Thomas Goyne
d81dfc1e73
Use a unique_ptr in agi::io::Save
2013-06-08 19:21:31 -07:00
Thomas Goyne
f051e59a61
Return a unique_ptr from agi::io::Open
2013-06-08 19:21:31 -07:00
Thomas Goyne
cf7d548d17
Cosmetics in line_iterator
2013-06-08 19:21:31 -07:00
Thomas Goyne
e668cc45e0
Delete stuff for VS 2008
2013-06-08 19:21:31 -07:00
Thomas Goyne
995a8642f0
Clean up vfr.cpp a little
2013-06-08 19:21:31 -07:00
Thomas Goyne
a9f83663e8
Revert "Return the ifstream from agi::io::Open by move"
...
This reverts commit 1f5484fedb
.
Move constructors for fstreams are not implemented yet in libstdc++.
Closes #1578 .
2013-02-16 19:47:31 -08:00
Thomas Goyne
1f5484fedb
Return the ifstream from agi::io::Open by move
2013-02-12 15:51:59 -08:00
Thomas Goyne
73217fd0e9
Move uuencoding logic to libaegisub and add tests
2013-02-07 16:02:44 -08:00
Thomas Goyne
d7531a723a
Add missing include in dialogue_parser.h
2013-02-06 13:38:34 -08:00
Thomas Goyne
47c36c9033
Use ICU/boost.locale for case-insensitive searching
...
Do proper unicode case-folding for case-insensitive searching rather
than converting only ascii characters to lowercase. The Turkish 'i' is
still not handled correctly (since it's the only place where
case-folding is locale-dependent), but that's probably not worth caring
about as long as we don't have a Turkish UI translation.
This affects both the find/replace dialog and the select lines dialog.
Closes #1342 .
2013-02-06 13:38:33 -08:00
Thomas Goyne
bc5417de4a
Give all of the Aegisub-created threads names
2013-02-06 13:22:32 -08:00
Thomas Goyne
5092ab20c9
Do logging on a background thread
...
Makes logging actually thread-safe and slightly improves performance.
2013-02-06 13:22:17 -08:00
Thomas Goyne
a942687050
Use a circular buffer to store only the last 250 log messages
2013-02-06 13:22:16 -08:00
Thomas Goyne
c6005be4a1
Write log files incrementally so that they actually exist for crashes
2013-02-06 13:22:16 -08:00
Thomas Goyne
101721863a
Make log messages a little saner
2013-02-06 13:22:16 -08:00
Thomas Goyne
69e1744fc7
Make agi::util::time_log less insane
2013-02-06 13:22:16 -08:00
Thomas Goyne
1e0f08c0ed
Mostly purge wxWidgets from non-UI stuff
...
Use boost::filesystem::path for all paths, and std::string for all other
strings, converting to/from wxString as close to the actual uses of wx
as possible.
Where possible, replace the uses of non-UI wxWidgets functionality with
the additions to the standard library in C++11, or the equivalents in
boost.
Move the path token management logic to libaegisub (and rewrite it in
the process).
Add a basic thread pool based on asio and std::thread to libaegisub.
This touches nearly every file in the project and a nontrivial amount of
code had to be rewritten entirely, so there's probably a lot of broken
stuff.
2013-02-06 13:22:15 -08:00
Thomas Goyne
e8344ab0c7
Add agi::util::Remove for deleting files
2013-01-03 17:36:50 -08:00
Thomas Goyne
cec5f2256c
Add agi::util::try_parse
2013-01-03 17:36:50 -08:00
Thomas Goyne
1f1cb36b6d
Extract TEXT -> DRAWING conversion from SplitWords
2012-12-31 07:09:31 -08:00
Thomas Goyne
835f7c0f78
Only enable the Remove Word button when the word can be removed. Updates #1184 .
2012-12-21 16:56:26 -08:00
Stjepan Henc
fe630e052b
Add Remove Word button to the spellchecker dialog. Updates #1184 .
2012-12-21 16:56:26 -08:00
Thomas Goyne
eab11666a9
Remove some cruft from option.h
2012-12-17 09:32:42 -08:00
Thomas Goyne
fee60be5db
Announce the set of lines changed in commits
...
Currently this is only populated when commits are amended, for the
simple reason that it's the only time that AssFile knows what lines
changed. It is probably worth expanding this in the future.
2012-12-17 09:32:42 -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
47c678bd63
Make UCDetect a little less insane
2012-11-13 08:46:31 -08:00
Thomas Goyne
2dd1da8333
Use C++11 stuff in libaegisub
2012-11-13 08:46:30 -08:00
Thomas Goyne
6212afb314
Add karaoke templater support to the syntax highlighter
2012-11-12 18:35:27 -08:00
Thomas Goyne
88fdee726b
Extract word-splitting logic from the syntax highlighter
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
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
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
47bafe4b9f
Add a lexer for the body of dialogue lines to libaegisub
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
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
a266d32ce4
Remove pointless GetString override in the list option values
2012-10-27 05:54:50 -07:00