Commit graph

987 commits

Author SHA1 Message Date
arch1t3cht
1f6684823c vapoursynth: Add "ask" mode for get_keyframe 2023-06-11 01:22:06 +02:00
arch1t3cht
d06a31968d vapoursynth: Add buttons to set default scripts to default 2023-06-08 18:41:12 +02:00
arch1t3cht
7bc18fec26 Merge branch 'folding' into feature 2023-06-01 23:35:39 +02:00
arch1t3cht
b41f6bde71 Don't immediately delete unused extradata entries
Instead, count how many consecutive times the entry has been found to be
unused and delete it once that count exceeds a limit. This will prevent
excessive reallocating of extradata ID's in applications like folding.
2023-06-01 23:35:26 +02:00
arch1t3cht
58d6ab520b folding: Also update counterpart for fold operations
This wasn't necessary before since the internal representation of
folds is be checked for consistency after each commit, but after the
switch to extradata fold operations would leave the extradata in an
invalid state. This isn't technically a problem, but it does leave more
extradata entries lying around than necessary, and it can trip up
automation scripts that aren't prepared for inconsistent fold state.
2023-06-01 23:01:32 +02:00
arch1t3cht
58c0130d81 Fix default hotkeys commands for splitting lines
These commands were revamped in 0ef9963 but the default hotkeys were
never updated. The hotkeys were automatically migrated, but resetting
the settings back to defaults would still set invalid settings.
2023-05-30 01:45:53 +02:00
arch1t3cht
dba4f4924e Merge branches 'lua_api' and 'bugfixes' into feature 2023-05-29 14:52:31 +02:00
wangqr
055c87cd21 Reallocate static ranges for wxMenuItem
Previously different menus may use conflict ids in range 10000~.

Fix TypesettingTools/Aegisub#53
See also Aegisub/Aegisub#131
2023-05-25 23:13:05 +02:00
arch1t3cht
42f7e53e92 lua: Don't check_stack in LuaCheckStack destructor
This would cause an assertion failure in functions like lua_for_each
when the given closure throws an error and thus leaves some  values on
the stack. This can make Aegisub crash entirely instead of just catching
and reporting the error. Instead, these stack_checks can be done
manually.
2023-05-22 09:23:22 +02:00
arch1t3cht
79050dfdfb lua: Fix memory leak on aegisub.cancel() 2023-05-21 20:26:33 +02:00
arch1t3cht
64b92a95ac folding: Simplify fold operation code 2023-05-19 18:45:40 +02:00
arch1t3cht
5e51c59e8e Merge branch 'vector_clip_actions' into feature 2023-05-18 23:40:56 +02:00
arch1t3cht
c8f8e8ac42 visual tools: Add setting for shape handle size 2023-05-18 23:39:00 +02:00
arch1t3cht
db0e79323f Merge branch 'vapoursynth' into feature 2023-04-29 21:28:36 +02:00
arch1t3cht
3d278547fe vapoursynth: Add Mac support 2023-04-29 21:24:14 +02:00
arch1t3cht
ff20805ae6 Merge branch 'vector_clip_actions' into feature 2023-04-29 01:16:08 +02:00
arch1t3cht
20cc0b8077 perspective tool: Support drawings
This will not work in more complex cases like lines containing both text
and drawings, but it's correct in simpler ones.
2023-04-29 01:11:38 +02:00
arch1t3cht
9c2d6169c6 perspective tool: Fix uninitialized variable 2023-04-29 01:11:15 +02:00
arch1t3cht
82dffcb9f9 Disallow negative spacing in style editor again
Since it turns out that this is not supported by the renderer anyway,
see arch1t3cht/Aegisub#48 .
2023-04-27 16:02:26 +02:00
arch1t3cht
00e241d74b Merge branches 'video_panning_option' and 'bestsource' into feature 2023-04-23 15:39:41 +02:00
arch1t3cht
0c057ebddb bestsource: Unify some messages with ffms2's 2023-04-23 15:39:11 +02:00
arch1t3cht
0f13a75a42 video zoom: Fix reset command capitalization 2023-04-21 22:59:02 +02:00
arch1t3cht
43d65b906b Also detect fonts used in drawings in font collector 2023-04-07 18:49:09 +02:00
arch1t3cht
1de8d04a43 Merge branches 'bugfixes' and 'vapoursynth' into feature 2023-03-24 20:31:07 +01:00
arch1t3cht
9a7314015f vapoursynth: Unify capitalization 2023-03-24 01:01:29 +01:00
arch1t3cht
af9d659c93 vapoursynth: Add try_get_keyframes function to aegisub_vs.py 2023-03-24 01:01:29 +01:00
arch1t3cht
256ddab369 vapoursynth: Ship plugins on windows and add ensure_plugin function 2023-03-16 02:26:10 +01:00
arch1t3cht
61b8a16cd8 vapoursynth: Unify capitalization 2023-03-16 02:26:10 +01:00
arch1t3cht
041e9fc70c vapoursynth: Add try_get_keyframes function to aegisub_vs.py 2023-03-16 02:26:10 +01:00
arch1t3cht
e7e56ef5e0 Fix validation for perspective/lock_outer 2023-03-04 13:32:55 +01:00
arch1t3cht
5050bad8ac lua: Scroll large dialogs automatically 2023-03-04 12:52:46 +01:00
arch1t3cht
d2c46f5dca bestsource: Forward error messages 2023-02-28 15:17:11 +01:00
arch1t3cht
798262ff1c Merge branch 'fixes' into feature 2023-02-25 12:33:15 +01:00
arch1t3cht
15d215f36d lua: Interact with clipboard on main gui thread
Fixes arch1t3cht/Aegisub#22 .
2023-02-25 12:31:27 +01:00
arch1t3cht
fde3dd0dbf Merge branch 'fixes' into feature 2023-02-25 02:24:28 +01:00
arch1t3cht
7f52346f06 lua: Handle file dialogs completely on main gui thread
wx doesn't seem to like the dialogs being created on some other worker
thread, which makes file dialogs opened by lua scripts crash in various
ways on Linux. Doing everything on the main thread hopefully fixes this.

Fixes TypesettingTools/Aegisub#51 .
2023-02-25 02:22:13 +01:00
arch1t3cht
6f073c6a31 Merge branch 'vapoursynth' into feature 2023-02-24 01:42:58 +01:00
arch1t3cht
1f2eaaf6e4 vapoursynth: Show logged messages in progress window 2023-02-24 01:42:30 +01:00
arch1t3cht
097a0f45be vapoursynth: Remove file access checks
These are broken in some edge cases, such as smb mounts on Windows.
Paired with d96fc1f70d.
2023-02-24 01:42:30 +01:00
arch1t3cht
628d740108 vapoursynth: Add status dialog when running script 2023-02-24 01:42:30 +01:00
arch1t3cht
ad38400ab9 vapoursynth: Improve default scripts and add utility functions
Add a utility library that wraps LWLibavSource and can parse its .lwi
file to obtain timecodes and keyframes. It also contains a function to
generate and save keyframes using WWXD or Scxvid. Update the default
scripts to use these functions.
2023-02-24 01:42:30 +01:00
arch1t3cht
b5a646de66 Merge branch 'vapoursynth' (early part) into feature 2023-02-24 00:30:21 +01:00
arch1t3cht
8b605c8fb5 Merge branches 'workarounds', 'bestsource', 'misc', 'info', 'wangqr_gui', 'fixes' and 'avisynth' into feature 2023-02-24 00:29:28 +01:00
wangqr
bf240c9770 Add Apply button to select lines dialog
Allow modifying selection without closing dialog.

Fix wangqr/Aegisub#49
2023-02-24 00:13:22 +01:00
wangqr
c7d757b91e Save state of "show original"
Fix wangqr/Aegisub#41
2023-02-24 00:11:12 +01:00
arch1t3cht
e425ce4d9e vapoursynth: Allow __aegi_timecodes to be a path to a timecodes file 2023-02-23 23:55:00 +01:00
arch1t3cht
29ba61e55d vapoursynth: Allow __aegi_keyframes to be a path to a keyframes file 2023-02-23 23:55:00 +01:00
arch1t3cht
384fc69208 vapoursynth: Allow script to supply timecodes, keyframes, and audio flag
These are read from the __aegi_timecodes, __aegi_keyframes, and
__aegi_hasaudio variables respectively.
2023-02-23 23:54:56 +01:00
arch1t3cht
d399e44061 bestsource: Always get exact duration
Fixes arch1t3cht/Aegisub#27.
2023-02-13 17:05:05 +01:00
arch1t3cht
7485ae46a1 bestsource: Fix timecode computation
(derp.)

Fixes arch1t3cht/Aegisub#27.
2023-02-13 13:34:08 +01:00
arch1t3cht
6874419564 Make touch pad scroll in the subtitle grid smoother 2023-02-10 00:55:44 +01:00
arch1t3cht
d7e7c3a7f0 Set longPathAware in manifest 2023-02-09 02:36:39 +01:00
arch1t3cht
6704a8e57d avisynth: Remove file access checks
These are broken in some edge cases, such as smb mounts on Windows.
Paired with d96fc1f70d.
2023-02-08 17:41:31 +01:00
arch1t3cht
d96fc1f70d Don't try other providers after FileNotFound error
Otherwise this can cause confusing error messages from unrelated
providers when simply opening an invalid path.
2023-02-08 17:37:44 +01:00
wangqr
e4f0a9a510 Fix initial state of AudioTimingControllerDialogue
It should not be in alt-dragging mode by default.

Fix TypesettingTools/Aegisub#32
2023-02-08 00:50:48 +01:00
arch1t3cht
c348f8582a vapoursynth: Add a preferred cache directory and clean it when necessary 2023-02-05 02:32:57 +01:00
arch1t3cht
32aaf6372c vapoursynth: Set path variables and import path in python 2023-02-05 02:28:06 +01:00
arch1t3cht
15f4da61d3 bestsource: Clean index cache when necessary 2023-01-31 02:47:02 +01:00
arch1t3cht
5dfa94d22d Fix missing comma in videoList
... ever wondered why you can't drag .webm files into Aegisub?
This is why.
2023-01-31 02:06:54 +01:00
arch1t3cht
88867d402c vapoursynth: Default to 25fps when no clip fps set
This matches the behavior of the FFMS video provider.
2023-01-30 01:55:22 +01:00
arch1t3cht
79a0655eb8 Merge branch 'folding' into feature 2023-01-27 02:55:50 +01:00
arch1t3cht
57572e5686 Merge branch 'vector_clip_actions' into feature 2023-01-26 23:34:27 +01:00
arch1t3cht
a632f5f7ee Revert "Merge branch 'vector_clip_actions' into feature"
This reverts commit bd4e79fdf9, reversing
changes made to 9d4a67b523.
2023-01-26 23:34:14 +01:00
arch1t3cht
c6b901dfbe Merge branches 'bugfixes', 'workarounds', 'fixes', 'gui', 'xa2-ds', 'avisynth', 'vapoursynth' and 'video_panning_option' into feature 2023-01-26 23:12:07 +01:00
arch1t3cht
86dfadb852 Merge branch 'misc' into feature 2023-01-26 23:11:37 +01:00
arch1t3cht
d860c710c0 Throw shit at the wall until it builds with boost 1.81
This is nothing more than duct tape, do not pull.
In the long run boost::filesystem should just be replaced with
std::filesystem (as done in tgoyne/Aegisub:cmake), but this would
complicate the history and cause merge conflicts for a bunch of pulls.
Hence this horrible temporary solution.
2023-01-26 22:56:53 +01:00
arch1t3cht
642251b2dd Deduplicate automation autoload path
Fixes TypesettingTools/Aegisub#168
Fixes arch1t3cht/Aegisub#15
2023-01-26 20:52:20 +01:00
arch1t3cht
36e5275418 visual tools: Add perspective tool 2023-01-25 23:24:11 +01:00
arch1t3cht
352e41f19b video zoom: Fix zoom when script_res != video_res 2023-01-20 00:18:51 +01:00
arch1t3cht
4c2b47d5de visual tools: Fix grid in RotateXY tool
Fix the grid scaling when the video is not at 100% zoom, and scale the
grid with \fscx / \fscy .
2023-01-14 14:20:24 +01:00
arch1t3cht
ddfd4501f0 visual tools: Add more tag get functions
Add getters for alignment, outline, shadow, font size, and the raw
extents of the text. Also handle overriding \xbord and \ybord correctly.
2023-01-14 14:18:04 +01:00
arch1t3cht
9cfc72bd83 visual tools: Add RemoveOverride function 2023-01-14 14:16:05 +01:00
arch1t3cht
8b142a05e5 visual tools: Add EndDrag and EndHold hooks 2023-01-14 14:14:42 +01:00
arch1t3cht
bfdf01df9a visual tools: Add general interface for setting subtools 2023-01-14 13:56:21 +01:00
arch1t3cht
f5a730fa45 avisynth: Only increase refcount when fully initialized
When Avisynth is not installed or not functional, this would otherwise
cause a crash when trying to initialize Avisynth more than once, since
after the first time the refcount would have been incrased anyway.
2023-01-14 00:13:47 +01:00
arch1t3cht
0d0ed49546 vapoursynth: Only set loaded when fully initialized 2023-01-13 23:52:27 +01:00
arch1t3cht
d08726606f meson: Also add regen dependencies for bitmaps 2023-01-10 21:47:29 +01:00
arch1t3cht
74b9353038 Allow higher decimal precision in style editor
Also, allow negative fsp.
This doesn't change the behaviour of the SpinCtrl increment/decrement
buttons, just the precision that can manually be set. Small values of
fsp can be useful as a hack to disable all ligatures. Precise values of
fscx/fscy can be useful to compensate for anamorphic resolutions. The
other fields were made more precise for consistency.
2023-01-07 14:42:52 +01:00
arch1t3cht
15cca59679 Validate wxVariant type in hotkey CommandRenderer
This fixes a crash on Windows when double-clicking the draggable
separator between the column headers "Command" and "Description" in the
hotkey configuration dialog.
2023-01-02 15:29:00 +01:00
arch1t3cht
1bd426f69a folding: Switch to extradata for storage
This makes the internal juggling of fold data even more complicated, but
it has a number of advantages:
- Folds will preserved even when opening the file with Aegisub builds
  that don't know about folding.
- Folds will be preserved by automation scripts that re-insert every
  line.
- Folds do not break when adding or deleting lines in a text editor or
  some other editor, as long as the lines involving folds aren't
  touched.
- In particular, merging changes using tools like git will not break
  folds.
- Copy/pasting folds also keeps the folds to some extent. This is
  impossible to solve in full generality, but simple cases like
  cut/pasting a folded section somewhere else work, as long as the file
  isn't saved in between.
- This will give automation scripts full access to folding without
  needing to set up any additional API functions.
2023-01-02 02:40:19 +01:00
arch1t3cht
3b02a199f0 vapoursynth: Fix default argument for color range
Unlike the other arguments for the resize function, "range_in" does not
use the same format as in the frame props. A frame prop _Range=1 means
limited, while an argument range_in=1 means full range.
2023-01-02 02:13:04 +01:00
arch1t3cht
abe2a81c99 folding: Fix crash when clicking fold column header 2022-12-11 18:53:36 +01:00
arch1t3cht
3b7cb30e1f Raise size limit of dummy video in config dialog
This is to facilitate some tricks with tracing rendered subtitles in
programs like GIMP with higher accuracy. Use at your own risk.
2022-11-30 22:35:27 +01:00
arch1t3cht
cba8d3644f Remove "Video Panning" option
It's probably stable enough at this point, and hiding it behind an
option just creates more confusion than it prevents.
2022-11-17 17:29:18 +01:00
arch1t3cht
c8ff1bc960 Clear column width cache after updating grid style
Fixes arch1t3cht/Aegisub#11
2022-11-08 00:49:42 +01:00
arch1t3cht
bd4e79fdf9 Merge branch 'vector_clip_actions' into feature 2022-11-04 00:46:15 +01:00
arch1t3cht
b1a9867f16 Visual perspective tool: First functioning version 2022-11-04 00:45:32 +01:00
arch1t3cht
9d4a67b523 Merge branches 'info', 'video_panning_option', 'fixes', 'misc', 'vapoursynth' and 'wangqr_gui' into feature 2022-11-03 00:03:23 +01:00
arch1t3cht
7ddfef7517 Add syntax highlighting for drawings and vector clips
The highlighting distinguishes drawing commands from coordinates, and
colors x and y coordinates in different colors to make coordinates
easier to visually parse. Furthermore, in cubic Bezier curves, it
underlines the coordinates which corresponds to endpoints of the curves.
2022-11-02 23:58:01 +01:00
arch1t3cht
b7f3e19e00 vapoursynth: Don't update script colorspace if colorspace unknown
Aegisub will automatically override the YCbCr Matrix field of the
current file's Script Properties with the video's reported color space.
The FFMS2 provider guesses a color space for all videos, but we don't
do this for Vapoursynth. Thus, we now disable this overriding whenever
the colorspace isn't known.
2022-11-02 23:51:15 +01:00
arch1t3cht
a3b131a312 vapoursynth: Reset locale after initializing
On Windows, Python changes the application's locale upon being called,
which will break wxwidgets, causing various assertion error dialogs or
even crashes (for example when interacting with any sort of float edit
control). Saving the locale and restoring it afterwards seems to be
the only really possible way to remedy this.
2022-11-02 23:51:10 +01:00
arch1t3cht
399042e9e9 Revert "fix"
This was a test commit I never meant to push...

This reverts commit cc9d13d21a.
2022-11-02 23:48:59 +01:00
arch1t3cht
28db5d31ce video zoom: Fix crash on windows when making detached video too small 2022-11-02 23:07:55 +01:00
arch1t3cht
6cc22750c1 Revert "video zoom: Fix crash on windows when making detached video too small"
This reverts commit b38493ee68.
2022-11-02 23:07:03 +01:00
arch1t3cht
2ee6f6e904 Fix overscan mask being half as thick as it should be
The percent values used for the overscan masks follow the BBC's
guidelines, as in
https://en.wikipedia.org/wiki/Overscan#Overscan_amounts .
However, these measure the per-side width as opposed to the total
percentage of width/height being cut off. Thus, they should not be
divided by two when drawing the mask.
2022-11-02 21:57:57 +01:00
arch1t3cht
04ccc15fd4 Fix overscan mask with DPI scaling 2022-11-02 21:57:57 +01:00
arch1t3cht
3583e57ddc vapoursynth: use exact fraction for frame rate 2022-11-02 02:18:52 +01:00
arch1t3cht
962295cf1e vapoursynth: Fix offset in audio block's first frame 2022-11-02 02:18:52 +01:00
arch1t3cht
a5aa4eca29 vapoursynth: Properly pass through script errors 2022-11-02 02:18:52 +01:00
arch1t3cht
2bcf0c7555 Merge branch 'video_panning_option' into feature 2022-10-11 18:55:11 +02:00