giseldo/neodataset huggingface dataset:
Text problem with size >49, and wrong Anchor Point position

## Video Demonstration of the `Text Size` and `Anchor Point Placement` problems:

Please see this [Demo Video](https://youtu.be/RVVwrAaY-XU) I recorded for explaining the following issues:
***
## If Font Size > 49

### Steps to reproduce (1)
* Open Glaxnimate
* Add a Text Line with `Font Size > 49`

#### Result
The `Text Box` would become a small icon and may reside at the top-left corner of the screen

***
## Change the Font Size < 50 and see the Anchor Point
### Steps to reproduce (2)
* Keep it selected and change the `Font Size < 50`

#### Result
* The Text Box will return to its normal shape.
* Observe the `Anchor Point` may not be at the center of the Text Box, it might be at the top-left corner of the Screen or the Text box itself.
* Click anywhere on the screen to deselect it and then select it back, but `Anchor Point` would not be at the center point of the Text Box.

***
## If Font Size < 50, See Anchor Point.
### Steps to reproduce (3)
* Add another Text Line with `Text Size < 49`

#### Result
* Observe that Text Box would appear fine, however, its `Anchor Point` would reside on the top-left corner of the screen.
* Click anywhere on the screen to deselect it. Now select it back and you would observe that the `Anchor Point` jumps back to the center of the Text Box.
***

### Version
Glaxnimate: 0.5.0+win-49002eec <br/>
System: Windows 10 Version 2009 <br/>
Kernel: winnt 10.0.19044 <br/>
CPU: x86_64 <br/>
Application Qt: 5.15.2 <br/>
System Qt: 5.15.2 <br/>
ZLib: 1.2.11 <br/>
Potrace: potracelib 1.16 <br/>
Libav: Lavu56.70.100, Lavf58.76.100, Lavc58.134.100, SwS5.9.100 <br/>
libarchive: 3.5.2 <br/>
<!-- Example file:
Attach a sample file (or files) highlighting the issue, if appropriate. -->

Story points: 1.0
Control key does not constrain the line to 90°

Greetings from NZ;

When drawing bezier lines, <kbd>**ctrl**</kbd> is supposed to snap the line to 90°, but for me this isn't working. I have tested on Linux using the built in version from Shotcut (version 0.5.0-53-g5972fc91) and the latest stable release on Windows 11.

Also confirmed via [this thread](https://forum.shotcut.org/t/animated-box-border-drawing-for-outlining-text-or-graphics/35034/14?u=poisonedslice) that lead Shotcut developer Dan, and several other knowledgeable members, have not been able to make this work either.

I didn't include this as a bug since the description is self explanatory and there is no trigger. I apologise if that was the wrong choice, and will amend if requested.

Story points: 2.0
Many file options cause program to crash

#### Steps to reproduce
* Open Glaxnimate
* Perform any action in the file menu that would read or write files. Open, Import, Export, Add Image, Save, etc.

#### Result
The program crashes immediately, and any unsaved work is lost.

#### Version
- Glaxnimate: 0.5.0
- System: Ubuntu Core 18
- Kernel: linux 5.4.0-104-generic
- CPU: x86_64
- Application Qt: 5.14.2
- System Qt: 5.14.2
- ZLib: 1.2.11
- Potrace: potracelib 1.14
- Libav: Lavu57.18.100, Lavf59.17.101, Lavc59.20.100, SwS6.5.100
- libarchive: 3.2.2

Story points: 2.0
animation is not preserved when import SVG and export it as JSON

I'm trying to use Glaxnimate to convert an animating SVG to Lottie (JSON). However, upon getting a JSON export, Lottie preview just show an still image instead of animating.

https://assets.website-files.com/5cd40c117f1ff810bf42803b/6113f5151e62af8a73e8c924_logo-motion-black.svg

This is the file I try to convert.

Story points: 3.0
compile error on M_PI

#### Steps to reproduce

Compile glaxnimate using msys2 on Windows with gcc 11.2 toolchain.

#### Result

Get the following error:
> error: 'M_PI' was not declared in this scope

Full build log [here](https://github.com/mltframework/shotcut/runs/6269890446?check_suite_focus=true).

#### Version

git master as of May 3, 2022.

#### More Info

`M_PI` is not in any C or C++ standard. It is commonly available, however:
https://www.gnu.org/software/libc/manual/html_node/Mathematical-Constants.html

That indirectly explains you need to define `_XOPEN_SOURCE` with gcc (and clang?). MSVC probably requires a different macro, but you might not be experiencing the problem there. In any case, I can workaround the problem by setting environment variable `CXXFLAGS-D_XOPEN_SOURCE=500` before the first run of cmake, which I will do as a workaround for now. (Edit `CMAKE_CXX_FLAGS` in `CMakeCache.txt` if you already ran cmake.) In my own code for these circumstances I put into a header file before `#include <math.h>` (or `<cmath>`?)
```
#if !defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < 500
#  undef _XOPEN_SOURCE
#  define _XOPEN_SOURCE 500
#endif
```
I report as a bug instead of merge request and simply provide some tips to let you decide what to do if anything.

Story points: 1.0
Build fails: error: implicit instantiation of undefined template

```
/wrkdirs/usr/ports/graphics/glaxnimate/work/glaxnimate-7aaa27b346888d9aeae12815c3aa3e720adf985f/src/core/utils/gzip.cpp:98:12: error: implicit instantiation of undefined template 'std::array<unsigned char, 16384>'
    Buffer buffer;
           ^
/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
```

[Log](http://beefy18.nyi.freebsd.org/data/main-amd64-default/pd79790970038_se2fe58d61b/logs/glaxnimate-0.5.0.log) (IPv6 URL).

Version 0.5.0

clang-13

FreeBSD 13

Story points: 1.0
Please add FreeBSD to the Stable Releases page

The [FreeBSD port](https://www.freshports.org/graphics/glaxnimate/) is now available for ```Glaxnimate```.

Could you please add it to the [Stable Releases and Package Managers](https://glaxnimate.mattbas.org/download/) page?

The command to install ```Glaxnimate``` on FreeBSD is ```pkg install glaxnimate```.

Thank you,

Yuri

Story points: 1.0
warning: object backing the pointer will be destroyed at the end of the full-expression

This warning printed by clang-12 looks potentially damaging:
```
/disk-samsung/freebsd-ports/graphics/glaxnimate/work/glaxnimate-7aaa27b346888d9aeae12815c3aa3e720adf985f/external/QtAppSetup/src/app/scripting/python/python_engine.cpp:171:29: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl]
        const char* cname = name.toStdString().c_str();
                            ^~~~~~~~~~~~~~~~~~
1 warning generated.
```

Story points: 1.0
Different start of animation on viewport vs render result lottie

glaxnimate 0.4.6

When I am adding trimpath effect to the circle it called "ellipse" on the layer and setup the keyframe. first start of animation come from the right on the viewport, but on the render result Document>web preview>lottie(SVG) animation start from the top, its like change the rotation of the circle -45deg. 
when I try to adding animation trimpath to the rectangle, on the viewport animation started around clockwise but on the render result lottie animation started around counter clockwise

Story points: 3.0
Can't change language

I am using the latest windows version of glaxnimate 0.4.5, and I cannot modify the language. Only one input box is displayed in the preferences![爱奇艺截屏20210929070259](/uploads/38684d812fa4f03f1f01c8ef9d2ecefe/爱奇艺截屏20210929070259.png)

Story points: 2.0
Glaxnimate crashes when switching between compositions

#### Steps to reproduce

<!-- Describe what you did (step-by-step) so we can reproduce: -->

* Open Glaxnimate
* Open/Import a .rawr project file/.tgs sticker file of a previously edited sticker (have only experienced it happening with imported/opened files, but not while editing a file that I just created, even if I save it multiple times)
* Switch to another composition (sometimes it takes a few switches back and forth) / Attempt to close a composition tab / Sometimes it's enough to just import another sticker to previously opened project

#### Result

<!-- Describe what happened and what the expected result would be -->
* Glaxnimate crashes and closes after switching to another composition or in attempt to close a composition tab

I'm attaching some .rawr files 
#### Version

<!-- List Operating System and Glaxnimate version
From Glaxnimate you can go to "Help > About... > System" and click "Copy"
then paste here the information -->

<!-- Example file:
Attach a sample file (or files) highlighting the issue, if appropriate. -->
[shroomjack1_01.rawr](/uploads/30b44fef9b2b91365f08b4ab18bd12ce/shroomjack1_01.rawr)

[bee_2.rawr](/uploads/26359ad1600ebdd843ed24aa81f0c3a5/bee_2.rawr)

Story points: 3.0
Issues with .tgs import - wrong fill color

#### Steps to reproduce

<!-- Describe what you did (step-by-step) so we can reproduce: -->

* Open Glaxnimate
* Import a .tgs file (.gif converted to .tgs with "giftolottie")

#### Result

The imported sticker is not being displayed correctly. Every object is filled with black color. Everything is okay in telegram though.

#### Version

<!-- List Operating System and Glaxnimate version
From Glaxnimate you can go to "Help > About... > System" and click "Copy"
then paste here the information -->

Glaxnimate: 0.4.5+win-7288b4cc
System: Windows 10 Version 2009
Kernel: winnt 10.0.19042
CPU: x86_64
Application Qt: 5.15.2
System Qt: 5.15.2
ZLib: 1.2.11
Potrace: potracelib 1.16
Libav: Lavu56.70.100, Lavf58.76.100, Lavc58.134.100, SwS5.9.100
libarchive: 3.5.2


<!-- Example file:



Attach a sample file (or files) highlighting the issue, if appropriate. -->

![glaxnimate_iaYlmWvEr2](/uploads/ce44fa1676492c99bf584eafb21d098f/glaxnimate_iaYlmWvEr2.png)

[AnimatedSticker.tgs](/uploads/26bd0e7815566e62b8ea0ab80979405c/AnimatedSticker.tgs)

Story points: 2.0
AUR packages doesn't follow Arch Linux standards

The current stable version is called glaxnimate-git, this is not used for the source for the package but for the kind of version. -git means last dev CVS revision. -dev for development release versions.
https://wiki.archlinux.org/title/Arch_User_Repository#What_is_the_difference_between_foo_and_foo-git_packages?

The current PKGBUILD used in glaxnimate-git should be put in a new AUR package glaxnimate. and glaxnimate-git should be adapted to get last git version and autoupdate name.

I adapted current PKGBUILD to the real -git mode if it can help, it will automatically update revision number in package.

[PKGBUILD](/uploads/d1a04a9bba1605e2de6cd9a4dc9d1370/PKGBUILD)

Story points: 3.0
[Feature request] Edit motion path

Feature request for supporting this feature, it's called motion path in After Effects.
Here's the link to Adobe's documentation.
https://helpx.adobe.com/after-effects/using/assorted-animation-tools.html


https://puu.sh/Ibg0z/4598c9b837.mp4

![9f14hWG8V5](/uploads/33b03aae2fdc61ae5ecde6a278901193/9f14hWG8V5.mp4)

Story points: 10.0
Issues with object's Fill Alpha set to 0 when importing SVGs

#### Steps to reproduce

<!-- Describe what you did (step-by-step) so we can reproduce: -->

* Open Glaxnimate
* Go to "File > Import..." and import an SVG file

#### Result

<!-- Describe what happened and what the expected result would be -->
* File is imported, but some or all of the Group objects in it have their Fill Alpha set to 0. From what I've noticed it's mostly the objects that don't have a stroke or have the stroke set to 0.

Example where all of the groups have 0 alpha despite rendering fine in other programs.
![image](/uploads/6b552024095d1cfe6552328875214285/image.png)

#### Version

<!-- List Operating System and Glaxnimate version
From Glaxnimate you can go to "Help > About... > System" and click "Copy"
then paste here the information -->
Glaxnimate: 0.4.4+win-2b62558d
System: Windows 10 Version 2009
Kernel: winnt 10.0.19042
CPU: x86_64
Application Qt: 5.15.2
System Qt: 5.15.2
ZLib: 1.2.11
Potrace: potracelib 1.16
Libav: Lavu56.70.100, Lavf58.76.100, Lavc58.134.100, SwS5.9.100
libarchive: 3.5.1

<!-- Example file:
Attach a sample file (or files) highlighting the issue, if appropriate. -->

![Asset_1text.svg](/uploads/0978f050095ad7f705da9fa0e14e007c/Asset_1text.svg)

Story points: 2.0
SVG conversion and alpha interpolation problem

Here I have source json and destination animated SVG. There are two objects one jam (in red) and one bread slice.

In the original Glax format and json, the jam is hidden by putting it's alpha channel to 0. It is changed abruptly to 1 at the moment the bread reach the center of the picture. It use the ability to keep a state constant until a keyframe and then change it progressively, or change abruptly it's state.

[murphy_anim0.json](/uploads/fd7f15b5513c41b76cf3a68f7795d2b3/murphy_anim0.json)

With SVG conversion instead, the change from 0 to 1 is progressive, making the jam fade-in before the bread slice cover it.

[murphy_anim0.animated.svgz](/uploads/e12d9e1bcf7cb06728cdfc80adf0ed6f/murphy_anim0.animated.svgz)

An easy solution for the animator would be to have the jam object follow the bread, hidden behind it. But for conversion, a new nod near the changing state node could keep the 0 value to emulate Lottie feature.

There is a little glitch in the bottom corner of the bread in the SVG(z) version too, but it should probably be in another issue?

Story points: 2.0
Add optionnal package suggestion in build doc (ex: qt5-image-formats)

Some optional packages could be installed to manage more formats on Glaxnimate. Like qt5-image-formats package on Debian based distribution. Could be added to the documentation of the installation process.

The same way the AUR package could have : qt5-imageformats (so could also be added for Arch Linux based distros) and on AUR PKGBUILD itself: optdepends=('qt5-imageformats')

Story points: 2.0
GIF import doesn't work

#### Steps to reproduce

<!-- Describe what you did (step-by-step) so we can reproduce: -->

* Open Glaxnimate
* Go to "File -> Import..."
* Choose the desired .gif file (happens consistently with any .gif that I tried to import)

#### Result
* Window titled "Save File - Glaxnimate" pops up. It says "Operation Failed" in the Issues area.
* Message appears at the top of the canvas area with a text "Plugin raised an exception" and a button "Hide" to hide the message. After pressing it another message appears that says "Could not import "path/to/file.gif"
* .gif file is not imported
<!-- Describe what happened and what the expected result would be -->

#### Version

<!-- List Operating System and Glaxnimate version
From Glaxnimate you can go to "Help > About... > System" and click "Copy"
then paste here the information -->

Glaxnimate: 0.4.3
System: Windows 10 Version 2009
Kernel: winnt 10.0.19042
CPU: x86_64
Application Qt: 5.15.2
System Qt: 5.15.2
ZLib: 1.2.11
Potrace: potracelib 1.16
Libav: Lavu56.70.100, Lavf58.76.100, Lavc58.134.100, SwS5.9.100

<!-- Example file:
Attach a sample file (or files) highlighting the issue, if appropriate. -->
Screenshot of the issue

![glaxnimate_4f2fhwYdYi](/uploads/e6c5ce4bc0e13711e37137ad479d7832/glaxnimate_4f2fhwYdYi.png)

Gif that I tried to import

![fry](/uploads/11fbcd1d5f9f7a6701863ce4b8078003/fry.gif)

Story points: 6.0
Add "All Formats" to format selection to the "Add Image"

When using "Add Image" you can only choose from the list of supported formats, but it's not possible to choose "All Files", which is the default option for "Import" and "Open". Please add same functionality to the "Add Image" for convenience.

![glaxnimate_jgEiP0lcvx](/uploads/bb14e633cd9ee6b6374cd095fcfb15d6/glaxnimate_jgEiP0lcvx.png)

Story points: 2.0
Issues with imported SVG files - Anchor Point

Every imported .svg file has it's anchor positioned at (0, 0) instead of being centered. Each group in the imported .svg has it's anchor point at (0, 0).
Would be great if we were able to snap anchor point to the center or edges/corners of the layer/group, it's often important to place it directly at the center.

![glaxnimate_kab0ZWAraX](/uploads/3aabc70dc1ccd75e2abe5e75baf0769b/glaxnimate_kab0ZWAraX.png)
![glaxnimate_RU7RCwvPKo](/uploads/35222b9bcdda681cfaf516132976cc5c/glaxnimate_RU7RCwvPKo.png)
![glaxnimate_Zuem94p3NH](/uploads/da9328a4d0667ef51a26e5fe9859c968/glaxnimate_Zuem94p3NH.png)

Story points: 3.0
Issues with imported SVG files - Scaling

Every .svg file that I make in AI and import to glaxnimate is stretched to fit the canvas, instead of keeping the original proportions. When imported to other applications(AI, Inkscape) everything is fine. 

Would be great to have imported files at their original proportions.

![shapes.svg](/uploads/91094443cf9f2ae2c2f5495495b8dac2/shapes.svg)
![glaxnimate_Esp3zUPhVe](/uploads/792b671abfcf9a4b39992d4737a1fb1a/glaxnimate_Esp3zUPhVe.png)
![glaxnimate_PqJTqZxNtZ](/uploads/ac133c34bb72cb33507d07950ae5eed2/glaxnimate_PqJTqZxNtZ.png)

Story points: 2.0
Android - Add "Glaxnimate" in the "open with..." dialog

It could be useful to open files directly from your file editor of choice, other than directly from the in-app menu.
Currently, Glaxnimate is not configured to open .png, .svg, .tgs, etc... files.
![Screenshot_OpenWithMenu](/uploads/d61baffb059641cf43a8521184e0da9a/Screenshot_2021-07-10-11-27-11.png)

Story points: 8.0
Include Praefect usage in the usage ping

GitLab features a [Usage Ping](https://docs.gitlab.com/ee/user/admin_area/settings/usage_statistics.html#usage-ping-core-only), which sends a simple JSON to GitLab servers for us to track certain data from customers. For example, it shows the version of Git installed for internal analysis which is used to determine when and if we can deprecate Git versions.

### Proposal

- [x] Extend the usage ping to send data regarding Praefect usage
- [x] Extend the version app that records the version ping, to accept this new parameter.

Story points: 3.0
Omnibus Praefect dashboard improvements from demo

From the 2020-04-14 demo, we noticed the following potential improvements:

- The table containing the latest known elected primary should also include the instance name (e.g. IP or hostname).
- The replication queue size could be further broken down by Praefect instance and virtual storage.
- Need a panel for the replication delay metric (`gitaly_praefect_replication_delay`).
- Virtual storage flapping should use two labels (`{{instance}} {{gitaly_storage}}`)

From the 2020-04-17 demo, we noticed we should also include:

- A panel for the query `rate(grpc_server_handled_total{job="praefect",grpc_code!="OK"}[5m])`
- A panel for the node up time: `gitaly_praefect_node_last_healthcheck_up`

Story points: 2.0
ReplicateRepository should create a bitmap when there's none

ReplicateRepository is used in multiple cases, one of which is moving a repository across shards. In https://gitlab.com/gitlab-org/gitlab/commit/888ffdfa7f5dc3af5c1653d5064199027ac9be4a#dab876ea293e0f990ba0851665c089cfe2c7e0c5_92_99 @nick.thomas describes a good case where we should ensure that Gitaly writes bitmaps:

>>>
    Run housekeeping after moving a repository between shards
    
    The current inter-shard move is implemented as a `git fetch` from the
    original shard to an empty repository on the new shard. The repository
    on the new shard lacks bitmaps, and may be less well packed, than the
    repository on the old shard. This has a measurable performance impact.
    
    We may be changing from "FetchInternalRemote" to "ReplicateRepository"
    in the future, but until then, forcing housekeeping to run is a good
    performance optimisation - we trade off some short-term I/O load on the
    new shard for better performance across a wide range of RPCs, including
    an order-of-magnitude improvement in `IsAncestor`, which is the find
    that motivated this change.
>>>

That change is behind a feature flag, part of closing this issue is removing the flag, and making sure we're using the ReplicateRepository RPC.

Story points: 3.0
Horizontal scaling of a single shard MVC

## Problem to solve

When hundreds of developers are working on a mono repo (perhaps 5GB), it is possible to saturate a single server with reads and writes. CI servers add to this load. There is no way to horizontally scale reads without NFS today.

## Further details

The current workaround for this is:

- install a load balancer between GitLab and a Gitaly storage
- the load balancer should distribute reads and writes across all many Gitaly nodes
- Gitaly nodes are kept in sync by a shared NFS volume that is mounted to each Gitaly nodes

This relies on NFS to keep all nodes completely consistent.

## Proposal

When using Praefect for Gitaly HA, each repository is replicated some number of times. Only the primary node services reads.

Using the Praefect tracking database:

- randomly distributes reads to any node where the replication queue is empty for that repository.

![praefect-distribute-reads](/uploads/da214c773640e33de80060b63c364d3e/praefect-distribute-reads.png)

## Links / references

Story points: 5.0
Smarter Praefect election process

## Problem to solve

Right now our primary election process in Praefect treats all Gitaly nodes that are up as possible candidates for election. However, what happens if a secondary fails replication or becomes out of sync? We need to consider marking the Gitaly node as "unelectable" and taking it out of the rotation. 

## Further Details

We probably need to consider a number of inputs:

1. Are there any jobs left in the replication queue? If there is a node that is up that has an empty queue, we'd prefer that one over another one.
1. Failure rates of the replication queue: If a node is unable to sync with the current primary for a number of repositories, that is indicative that something went out of sync, and we may need to do a repair.

Ideas for consideration:

1. During the election process, sort nodes by descending number of outstanding jobs.
1. Track a metric of the `FetchInternalRemote` and/or `ReplicateRepository` RPCs in Praefect

## Proposal

When promoting a secondary to a new primary, use the Gitaly node with least pending replication jobs.

## Links / references

Story points: 4.0