| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Puts white space at end of line into separate tspan when
'text-anchor' is not start.
|
| |
|
|
| |
to 'start'.
|
| |
|
|
|
|
| |
- eliminate value_default
- make value private (-> _value)
- add value() method
|
| |
|
|
| |
Fixes https://gitlab.com/inkscape/inbox/issues/1104
|
| | |
|
| |
|
|
|
|
| |
fixes ungrouping of "font-weight:bolder"
fixes "titling-caps" parsing
fixes a casting error in CairoRenderContext::renderGlyphtext
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
A parameter with empty name (or name consisting of whitespace only)
can cause undefined behavior and should be avoided at all cost.
Empty translatable values like "gui-text"/"gui-description", while
not encouraged, might be acceptable. However they must not be
translated as gettext would return the full metadata of the .po file
in this case.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Inkscape will read the "translationdomain" attribute from the
<inkscape-extension> root element in the .inx file.
It will then attempt to lookup a message catalog that matches
this domain, register it with gettext, and use it for translations.
Message catalogs may be located in either
- the .inx file's location
- the root of the "extensions" directory containing the .inx
- the system location Inkscape's own catalog is loaded from
To make this functionality available to script extensions, Inkscape
will set the environment variables
INKEX_GETTEXT_DOMAIN
and
INKEX_GETTEXT_DIRECTORY
so extension scripts can then use something like
bindtextdomain(INKEX_GETTEXT_DOMAIN, INKEX_GETTEXT_DIRECTORY)
textdomain(INKEX_GETTEXT_DOMAIN)
to enable the feature.
See also
https://gitlab.com/inkscape/inkscape/issues/333
https://gitlab.com/inkscape/extensions/issues/117
|
| | |
|
| |
|
|
|
|
|
| |
Verb::set_tip takes a borrowed string pointer. This line in Effect::check() is
invalid if getErrorReason() returns a temporary:
_verb.set_tip(Extension::getErrorReason().c_str());
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This is for backwards-compatibility with older .inx files that used
to redundantly request a dependency on their own interpreted script
and did so with type="executable".
However, in practice script files often *don't* have the x-bit set,
which fortunately did not cause problems in the past, though, as the
check for the x-bit was broken, see
3da7f71e45eb986aef67771b5af3c1e308971cff
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Instead of removing them from the menu, they're now shown as
inactive (greyed out), so users have a chance to know they even
exists, without having to know about extension-errors.log
Unfortunately tooltips seem to be hidden for insensitive menuitems
as well, so we currently have no way of informing the user directly
in the UI about the problem.
Fixes https://gitlab.com/inkscape/inkscape/issues/470
|
| |
|
|
|
|
|
|
| |
This improves the fix for
https://bugs.launchpad.net/inkscape/+bug/1307554
Also fixes a potential crashing issue when an .inx includes
invalid XML.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
For "executable" files only existence was checked.
(Glib::file_test needs a single FileTest)
Apply this properly when checking script <command>s and xslt <file>s
- interpreted scripts and xslt files -> only check existence
- un-interpreted scripts -> check for executable file
For Windows workarounds are implemented to yield desirable behavior:
- as there is no executable bit, only check existence
- as executables usually come with an extensions, scan for those
as well.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use identical logic for looking up <dependency>s and <command>s.
- Remove duplicate (but inconsistent and incomplete) logic from
script.cpp that was used to search for the <command> again
- Remove <check> element from .inx format
It seems unused (at the very least by core extensions) and
redundant to <dependency> checking
- Deprecate the <command>-specific "reldir" attribute.
Consistently use the functionally identical "location" attribute
that was only used for <dependency>s before
- Introduce the new relative location value location="inx",
which looks up <dependencies> and <command>s relative to the
.inx file's location.
|
| |
|
|
| |
This reverts commit ef84b6a06b8fe5be8c15384cd95a35bc6d0c95a7.
|
| | |
|
| | |
|
| |
|
|
| |
(std::ostream is not properly portable unfortunately)
|
| | |
|
| |
|
|
|
| |
This is easy to miss and causes confusing behavior
(e.g. wrong page/option selected)
|
| |
|
|
|
|
|
|
| |
Specifically image-rendering="crisp-edges" should use a scaling
algorithm that does *not* blur edges.
Unfortunately this only leaves CAIRO_FILTER_NEAREST, but seems to
be the most suitable choice.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
We use the user visible GUI text as value in this case, which may or
may not be translated.
For backwards-compatibility with enum items use the untranslated
value instead, if one of the deprecated tag-names is found.
Fixes https://gitlab.com/inkscape/inkscape/issues/399
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Renders a Gtk::TextView that automatically fills the available
space in the extension's preferences dialog and can be used
to accept longer multi-line strings.
Newlines in the string value will be passed as "\\n" to the
extension script (i.e. literal '\n' with the backspace escaped).
|
| |
|
|
|
|
|
|
|
|
| |
Renders a simple Gtk::ColorButton with label instead of the full
ColorNotebook which is too large for many applications.
Should likely be re-implemented bringing up a new Dialog that wraps
an Inkscape::UI::Widget::ColorNotebook eventually, instead of
relying on the Gtk::ColorButton's picker implementation which is
inconsistent to existing pickers.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Similar to parameter's of type "string":
Has a text entry and stores a string preference
* Additionally offers a button to show a file chooser dialog
* The node's content is the initial (default) file path.
* Relative paths will be considered relative to the extension's .inx
file. This allows to reference files/folders shipped with the
extension in a portable way.
The stored value as well as the parameter value passed to the
script interpreter will always be absolute, though.
* The attribute "mode" controls what type(s) of paths the file
chooser allows to select. Valid values:
- 'file', 'files', 'folder', 'folder' (pick existing items)
- 'file_new', 'folder_new' (create a new file/folder)
* Note that manually entered values will be passed as-is without
checking for existence.
|
| |
|
|
|
| |
(No idea what they do tbh, but I've never seen any of those
parameters, so they likely *are* hidden in some way or another)
|
| |
|
|
|
|
|
|
|
| |
We were actually crashing for visible parameters without 'gui-text'
otherwise.
Also make sure we actually *do* bail out if we have parameters
missing required fields and throw/catch an exception instead of
producing broken instances.
|
| |
|
|
|
|
|
|
|
| |
* The node's content is the file path.
Absolute paths should work, the preferred way is to specify a
relative path, though, which will be interpreted relatively to the
.inx file's location
* The attributes "width/height" allows to override the native size
of the image.
|
| | |
|
| |
|
|
|
|
|
| |
The attribute "size" allows to define the spacing in px.
The special value "expand" can be used to make the spacer consume
all available space in the parent.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
let's hope this works as expected...
|
| | |
|
| |
|
|
|
| |
For this take a first step towards properly tracking children
of each parameter and provide functions to look up all widgets.
|
| |
|
|
|
| |
Seems more consistent with "int" and "float" types and should likely
be preferred over the old "boolean"
|
| | |
|
| |
|
|
|
| |
Also rename overloaded string() functions, so it's clear what they
actually do, as it's not the same thing at all...
|