Commit Graph

697 Commits

Author SHA1 Message Date
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 64b92a95ac folding: Simplify fold operation code 2023-05-19 18:45:40 +02: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 abe2a81c99 folding: Fix crash when clicking fold column header 2022-12-11 18:53:36 +01:00
arch1t3cht 38efde92e3 folding: Fix selections jumping around 2022-09-14 11:31:50 +02:00
arch1t3cht 9b920c7892 folding: Always write fold data to file 2022-08-23 15:55:26 +02:00
arch1t3cht 663112ba03 folding: Don't drop folds starting at the very first line 2022-08-08 16:38:43 +02:00
arch1t3cht fd1a92d627 Folding: Fix default hotkeys 2022-08-01 20:05:55 +02:00
arch1t3cht 7c92e6bbd6 Folding: Dont error on missing _foldinfo 2022-07-31 21:31:34 +02:00
arch1t3cht e65e55833c Fix compilation for older C++ 2022-07-27 15:23:47 +02:00
arch1t3cht 818fcd51f4 Folding: Toggling folds by clicking the indicator 2022-07-27 15:23:47 +02:00
arch1t3cht 2176954aee Folding: Pass fold data through Lua
This way, automation scripts won't nuke the fold data on any lines they
modify.
This is done as userdata for now, so scripts that don't know what
they're doing don't break the folds even further. If scripts get more
access to folds, it should be with a safer and simpler API.
2022-07-27 15:23:47 +02:00
arch1t3cht 56cc1a6873 Add line folding
Line folds are managed using metadata of AssDialogue elements, and
saved in the project properties. They only affect the appearance of the
subtitle grid, and have no impact on other line operations.
2022-07-27 15:23:47 +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
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
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
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 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
Ryan d32ef75cba meson: move executable to the root directory 2021-03-27 09:29:37 -04:00
Ryan 1246534b7b Move AddSeparator to VisualTool::SetToolbar
Co-authored-by: wangqr <wangqr@wangqr.tk>
2021-03-27 08:09:11 -04:00
petzku 19429b0f6e Fix negative margin handling (closes #104)
Previously, margins were clamped to 0..9999, but negative margins are
well supported by most renderers.  In addition, previously lua
automations automations were able to produce these negative margin
values, and they would be saved correctly. However, re-opening the file
would clamp the values, and they could not be edited in the edit box.

This commit changes the clamping to be -9999..99999, and allows entering
(and editing) negative values in all relevant fields. In addition, this
makes the subtitle edit box margin fields take 5 characters instead of 4
to accommodate negative numbers up to 9999 (also the reason for raising
the upper bound).
2021-03-06 14:29:18 -05:00
Ryan Lucia 43751546f4 spectrum view: allow 32-bit wxBitmap
Required on MacOS
2021-02-22 14:29:14 -05:00
Myaamori c6f4ea45aa Let search field in Hotkeys menu expand horizontally
On Linux with wx 3.1 it was too small to use by default
2021-01-31 19:34:47 -05:00
Myaamori ca7501c7ed Remove unused alignment flags for combo boxes in resampler
Causes an assertion error with wx 3.1
2021-01-31 19:34:47 -05:00
Ryan 248785d7ad meson: apply manifest on windows 2021-01-30 12:02:34 -05:00
Ryan 36b75b827d meson: fix warnings, cleanup 2021-01-30 12:02:18 -05:00
Ryan 1ac52a24d6 meson: disable gdi_fontselect for now
This one continues to be controversial, so for now the plan will be to report issues upstream that come up as a result of this being removed
2021-01-30 08:58:45 -05:00
Ryan 7d9feca578 meson: add CSRI support 2021-01-30 08:57:39 -05:00
Ryan d8c348e897 meson: standardized config defines to set integer 1 2021-01-30 08:56:01 -05:00
Ryan f3958288ac libresrc: put new wxBitmap constructor behind wx version check
Based off https://github.com/Aegisub/Aegisub/pull/175
2021-01-30 07:29:45 -05:00
Ryan b8d1864a07 aegisub: ifdef wxBitmap constructor to scale on MacOS only
Quick fix to unblock the build; need better HiDPI handling across the board
2021-01-16 13:01:51 -05:00
Myaamori b42da504a0
Save unexpanded path in font collector (#79)
Fixes #78
2021-01-16 06:13:37 -05:00
Ryan 8b8f4a3925 meson: bump minimum ffms2 version to 2.22
It's been out for 6 years, so this should be fairly safe. Also fix a build error that somehow snuck in during the merge
2021-01-16 05:31:08 -05:00
Ryan d583744b69 Merge in work from TypesettingTools fork 2021-01-16 02:12:31 -05:00
Ryan 25a62f4f12 libass_gdi_fontselect: don't redefine NOMINMAX
It's now defined in the build system itself
2021-01-16 01:24:19 -05:00
Ryan Lucia c487dd2bdb Parially revert fffb138b81
I haven't checked whether reverting this breaks IME input, and if it doesn't what changed on wx's end. However, this is the commit that uses private symbols, and so reverting it lets us build against upstream wx. Even if this is a loss in functionality, for now it's fine.
2021-01-10 03:14:12 -05:00
Ryan 8cf4100c87 meson: fix resource file compilation
This enables video to load correctly in Windows builds
2021-01-10 03:14:12 -05:00
Ryan 72edb88982 meson: add Avisynth option, compile libass_gdi_fontselect
Sadly, building with Avisynth is still broken.
2021-01-10 03:14:12 -05:00
Ryan Lucia 89c788a4b3 autotools: remove remaining makefiles 2021-01-10 03:14:12 -05:00
Myaamori aecf09a64d Use wxSizer::RepositionChildren instead of RecalcSizes on wx 3.1.3+ 2021-01-10 03:14:12 -05:00
Myaamori 93b2794c85 Correct wxStyledTextCtrl::StartStyling for wx 3.1 2021-01-10 03:14:12 -05:00
Ryan Lucia e3826cb17e meson: initial attempt to generate Aegisub.app on macOS 2021-01-10 03:14:12 -05:00
line0 2e613f5476 meson: flag aegisub as a GUI app 2021-01-10 03:14:12 -05:00
line0 bfdcbdefad meson: add missing link dependencies on windows 2021-01-10 03:14:12 -05:00
line0 37230683fb utils: work around missing C++11 char16_t overload in wx string conversion 2021-01-10 03:14:12 -05:00
line0 b6c0f2d544 meson: don't build fontconfig file lister on windows 2021-01-10 03:14:12 -05:00
line0 b8e2cf83fd fix PCHs on VS2019
* separate PCH for C and C++
* acconf.h now included in PCHs on windows, too
* meson now auto-generates companion source files for PCH headers
2021-01-10 03:14:12 -05:00
Ryan Lucia 5e14a9265b meson: attempt to wrangle dependencies 2021-01-10 03:14:12 -05:00