Commit Graph

8180 Commits

Author SHA1 Message Date
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 1734f00d8a Don't assume a max length in fs::ShortName 2023-02-12 15:05:21 +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 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 66c90b7ed8 vfr: Ensure nonzero denominator 2023-01-30 01:56:52 +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 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 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 245cc68afa Fix FrameAtTime computation for CFR
The new formula is just the inverse function of the CFR part of
the TimeAtFrame function.

To see how the previous implementation was faulty, see either the added
tests, or
- In Aegisub, open a dummy video with a frame rate of 23.976
- Make a subtitle event with start time 04:44.41
- Double-click the line to (supposedly) seek to its first frame
- This will seek one frame earlier than it should, and the event will
  not be displayed on the resulting frame.
2022-11-02 02:19:38 +01:00
arch1t3cht a394aefd1a Fix crash when cancelling automation scripts
When cancelling an automation macro from the progress dialog, the dialog
throws a UserCancelException. If the macro still runs to the end
afterwards (instead of calling aegisub.cancel or causing an exception),
the two return values are left on the stack. This causes assertion errors
due to check_stack when those are enabled.
2022-09-13 22:41:18 +02:00
arch1t3cht 5a0bfdd775 Remove unnecessary flags in SelectedChoices dialog
These alignment flags would cause an assertion error
"Horizontal alignment flags are ignored in horizontal sizers"
when opening the dialog (mainly when importing styles from another
script).
As the assertion error says, the flags are ignored anyway, so they're
safe to remove.
2022-08-21 02:31:33 +02:00
arch1t3cht b697ad6ca0 Remove access checks in windows fs operations
These were giving false negatives on samba shares, which broke the font
collector. Windows also recommends to not use access checks in these
cases, and instead just see if the operations succeeds or not.
2022-08-17 02:54:09 +02:00
arch1t3cht 9ebe154964 Fix width of lua float edits
Float edits with a spinner are by default sized to fit their full
min-max range of possible values, so this makes min and max default to 0
and 100 (like it'd done internally in wx) instead of -DOUBLE_MAX and
DOUBLE_MAX.

Note that this does change the behavior of lua dialogs, but does not
contradict existing documentation or specification. It should only
affect scripts who either disobey the specification by specifying only
one value out of max/min, or scripts displaying these large float edits
by specifing a step, but no max or min.
2022-08-14 16:24:50 +02:00
arch1t3cht 1772dd17ae Use std::this_thread everywhere
The previous logic wouldn't compile on linux using clang.

With the meson build requiring c++14, there's no need for platform
specific code. Really, the entire agi::util::sleep_for function could be
removed entirely, but I'll keep the patch minimal for now.
2022-07-27 15:20:03 +02:00
arch1t3cht 86354050f3 meson: Use depend_files for files in respack manifest 2022-07-10 23:00:52 +02:00
arch1t3cht 142605cf41 meson: Add files in manifest as respack.py input
This makes meson detect changes to files like default_config.json
and rebuild libresrc.cpp when necessary.
2022-07-04 22:22:01 +02:00
arch1t3cht 5bde34ff3e macos: attempt to fix the installer build
Try and fix an issue when a symlink would link to a path with the same
basename, without actually having a mac system available to test.
2022-07-02 19:58:43 -07:00
arch1t3cht 2bf4f17e58 ci: Don't abort if one of the matrix runs fails 2022-07-02 19:58:43 -07:00
arch1t3cht cfd93ce81b meson: Use latest git version for ffms2
This is to include the fix for FFMS/ffms2#394 .
2022-07-02 19:58:43 -07:00
arch1t3cht 6e811ef6a7 Fix compile error on linux 2022-07-02 19:58:43 -07:00
arch1t3cht 9fef97a5bb installer: update paths to mo files
Meson's i18n module changed its output paths here:
487d45c1e5
2022-07-02 19:58:43 -07:00
arch1t3cht 75db50b6ed installer: update paths to Avisynth libaries
The folder structure of the release archives changed with
AviSynth+ 3.7.1.
2022-07-02 19:58:43 -07:00
TRAMBO 4776ca9dd1
Fix errors when automation scripts being loaded and os.execute not working (#156)
* fix errors when automation scripts being loaded and os.execute not working

* Update unicode-monkeypatch.lua
2022-06-08 08:36:49 -07:00
Oneric e5dee3fbe2 meson: bump ffmpeg wrap
meson-4.4 contains a fix regarding the prefix kwarg
with newer Meson versions not present in the 4.3 branch.
2022-06-08 01:10:11 -07:00
Oneric 85ce9663a6 Pass storage size to libass to fix rendering
Since ASS rendering depends on the storage size of the video libass
needs to know about it to render the subtitles correctly. If it isn't
told about the storage size libass uses the value from PlayRes{X,Y} as
a guess, but this isn't always correct.
With Aegisub currently always rendering at storage resolution
this ends up the same as the frame size.
2022-06-08 01:10:11 -07:00
Oleg Oshmyan f21d8a3607 meson: use OpenAL.framework on macOS
It is not picked up by the existing dependency() check because its
version is unknown to Meson, which fails the version constraint.
Besides, dependency('openal') seems to try "openal.framework",
which may or may not work on case-sensitive file systems.
2021-11-10 20:12:21 -07:00
Oleg Oshmyan 1d01f8adc8 meson: allow unconstrained dependency version to be "unknown"
And allow for compound version constraints in the future.
2021-11-10 20:12:21 -07:00
Oleg Oshmyan 18503946d5 meson: don't check disabled dependencies at all
Don't search for the dependency and set up fallback
only to throw it away if the option is disabled.
This is a waste, and this gives the user the illusion
that the request to disable the feature was ignored.
2021-11-10 20:12:21 -07:00
woclass e58e4a9149
Fix Mac dmg build (#138)
* [mac/build] update build steps

* [macos] bundle app

* [macos] build dmg

* [ci] setup macOS CI

* [i18n] TODO: rm WX locale files

* [deps] set main branch to main

* Fix osx-fix-libs.py

Create symbolic links, to make libicu happy
Rewrite the script in python3, as python2 is deprecated

* Add write permission before install_name_tool when doing osx-bundle

Fix wangqr/Aegisub#39

* Handle @loader_path in libboost on macOS

See wangqr/Aegisub#39

* [tools/mac] use python3

* [ci/mac] install & using system deps

* [ci/win] don't build fribidi:docs

* [ci/mac]  trying openal-soft

* [ci/mac] use pulseaudio in CI

* [ci/win] only run aeg's test

* [ci/win] fix CI

* [ci/win] fix CI: not use dict `{}`

* [ci] run ci

* [ci/win] don't build docs

* [ci/win] remove args tail newline

* [ci/win] false->disabled

* Use md title format

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>

* Recover file permissions.

* [ci/win] disable fontconfig

Co-Authored-By: Ryan Lucia <ryan@luciaonline.net>

* [ci/win] disable libass:fontconfig

Co-authored-by: wangqr <wangqr@wangqr.tk>
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
2021-10-12 03:37:49 -04:00
woclass 0dffcec461
Fix meson warning (#126)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [test] Generate the test executable

run with `meson test`

* [test] add tools to remove test data files

`unset.bat FULL_PATH`

* [test] set to correct Error type

* [test] Set Source character sets to UTF-8 for MSVC

* [test] move test data files to build_root

* [meson/wxWidgets] fix warning: deprecated feature `cmake_options`

* [meson] fix warning:  msvc does not support C++11

* [meson/fribidi] add original meson.build file

* [meson/fribidi] merge pr-151

https://github.com/fribidi/fribidi/pull/151
"meson: add fribidi_static_cargs to extra_cflags"

* [meson/fribidi] fix DEPRECATION

"Library fribidi was passed to the "libraries" keyword argument of a previous call to generate() method instead of first positional argument."

* [git]  rm IDE dir

* [meson] remove old flags

* [meson] fixed in upstream
2021-05-24 09:47:34 -04:00
woclass 7e9c7d7aa0
Run tests (#125)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [test] Generate the test executable

run with `meson test`

* [test] add tools to remove test data files

`unset.bat FULL_PATH`

* [test] set to correct Error type

* [test] Set Source character sets to UTF-8 for MSVC

* [test] move test data files to build_root

* [git] remove IDE dir

* [git] ignore gtest subprojects

* [ci] run test in ci

* [meson/test] use more meaningful name

* [test] Add more comments and help msg
2021-05-23 23:33:33 -04:00
Myaamori dfb0a1ca99 meson: don't use deprecated get_pkgconfig_variable 2021-05-23 18:37:36 -04:00
Myaamori 2c927bac32 meson: make --force-fallback-for=luajit work
This option makes the dependency() call resolve to the subproject
which breaks the Lua 5.2 compatibility check.
This change just ignores the result of the dependency() call
if it resolves to the subproject and then re-fetches it
with a subproject() call later.
Alternatively we could explicitly handle the case where dependency()
resolves to the subproject, but that's just extra code for no
observable difference in behaviour.
2021-05-23 18:37:36 -04:00
clr134 28e3e75c44
Polish translation corrections (#130) 2021-05-23 17:33:04 -04:00
Vardë 3c17671ad0
Updates French translation (#121)
* Updates French translation

* Missing spelling mistake

* Additional adjustments

* Improvements (#1)

Co-authored-by: Vardë <Ichunjo@users.noreply.github.com>

Co-authored-by: anne-o-pixel <81879599+anne-o-pixel@users.noreply.github.com>
2021-05-23 04:54:46 -04:00
woclass 52c8fef28c
Generate Win portable.zip (#124)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [win_installer\portable] add new target `meson win-portable`

+ meson install copy `include/unicode-monkeypatch.lua`

* [win_installer\portable] make aegisub-portable-64.zip

+ remove WinRAR deps

* [win_installer\portable] using powershell

* [git] upload portable.zip

* [win_installer\portable] rm freetype

* [repo] remove Optional dependencies: WinRAR

* [repo] Update README.md, add cmd to gen zip file

* [repo] use recommended build command

* [git] remove IDE dir

* [ci] add Windows portable installer build step
2021-05-23 04:37:54 -04:00
Yi-Jyun Pan 761194025f meson: luajit: allow to build in ARM64
Meson thought that a ARM64 cpu is aarch64, while
luajit only provided a file for "arm64". Since there is
no difference but the name between aarch64 and arm64, I
choose to bind aarch64 -> arm64.

Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
2021-05-23 04:32:54 -04:00
woclass 62c3acb666
Fix localization file generation on Windows (#119)
* [git] ignore IDE setting, Meson subprojects

* [win_installer] rename *.mo -> *.gmo

* [win_installer] only add aeg translations

* [win_installer] split aeg/wx translations

* [win_installer] gen & pack translations

* [git] ignore hunspell source dir

* [git] ignore uchardet source dir

* [git] remove IDE dir

* [git] remove unused subprojects
2021-05-23 02:06:10 -04:00
Ryan Lucia aeba7a390e Re-enable MacOS CI 2021-05-22 02:48:27 -04:00
Ryan Lucia a856030078 Switch to new boost tarball hosting 2021-05-21 21:52:18 -04:00
Myaamori 84ac716972 meson: add uchardet port
Meson port instead of using CMake as I ran into issues with the
src directory (where uchardet.h is located) not being appended
to the include path, and on Windows I ran into a Meson issue
where a -D macro definition was being interpreted as a filename.
In the end a Meson port seemed simpler than working out the CMake
issues, as the CMakeLists.txt files were straightforward and easy
to port.

Note that because of the directory structure of the uchardet source
I had to change the include directive from uchardet/uchardet.h
to just uchardet.h. This is actually more in line with the uchardet
pkg-config file, which appends /usr/include/uchardet to the include path.
2021-05-21 21:09:36 -04:00
Myaamori c43e4fba3c meson: add Hunspell port
This moves the visibility logic (HUNSPELL_STATIC/BUILDING_LIBHUNSPELL)
to the build system. Only relevant on Windows.
2021-05-21 21:09:36 -04:00
Myaamori 0f95589d0a meson: Fix Windows artifacts 2021-05-21 21:07:22 -04:00
Myaamori b00f5dd58e meson: add option to specify wxWidgets version 2021-04-09 18:00:01 -04:00
Ryan 696a732840 Add new unicode script to installer 2021-03-27 14:56:04 -04:00
Ryan 7def61d46f Update README for Windows 2021-03-27 14:55:52 -04:00
Myaamori 3dfc553880 Fix faux bold logic in font collector for Fontconfig
Based on libass's logic (a requested weight of over 150 more than
the matching font).
2021-03-27 12:38:50 -04:00
Myaamori 4b2cd7f170 Convert OpenType weight to Fontconfig weight in font collector
Fixes #108
2021-03-27 12:38:50 -04:00