<feed xmlns='http://www.w3.org/2005/Atom'>
<title>inkscape/src/extension/extension.cpp, branch livecoding</title>
<subtitle>An experimental livecoding plugin for Inkscape</subtitle>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/'/>
<entry>
<title>Extensions: catch parameters and translatable values with empty name</title>
<updated>2019-10-19T23:13:33+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-10-19T23:13:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=ca217fbef0d064565dc1bf114b837e2b59276f7d'/>
<id>ca217fbef0d064565dc1bf114b837e2b59276f7d</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extensions: Implement translationdomain functionality</title>
<updated>2019-10-19T12:33:34+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-10-17T00:16:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=76ce73061550ff42e97c1fec9836c35cc0e24d64'/>
<id>76ce73061550ff42e97c1fec9836c35cc0e24d64</id>
<content type='text'>
Inkscape will read the "translationdomain" attribute from the
&lt;inkscape-extension&gt; 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Inkscape will read the "translationdomain" attribute from the
&lt;inkscape-extension&gt; 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Extensions: Disable effects that failed to load</title>
<updated>2019-10-15T21:56:31+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-10-15T21:55:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=5c3063637d71802a43d52add816a9db133c37d02'/>
<id>5c3063637d71802a43d52add816a9db133c37d02</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Extensions: Do not even attempt to register incompatible extensions</title>
<updated>2019-10-15T21:56:31+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-10-15T18:03:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=5e4db64162efe64935c2f4a1b4525ff14c42b91d'/>
<id>5e4db64162efe64935c2f4a1b4525ff14c42b91d</id>
<content type='text'>
This improves the fix for
  https://bugs.launchpad.net/inkscape/+bug/1307554

Also fixes a potential crashing issue when an .inx includes
invalid XML.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This improves the fix for
  https://bugs.launchpad.net/inkscape/+bug/1307554

Also fixes a potential crashing issue when an .inx includes
invalid XML.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extensions: Fix file test when checking dependencies by type</title>
<updated>2019-10-15T00:05:47+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-10-14T23:47:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=3da7f71e45eb986aef67771b5af3c1e308971cff'/>
<id>3da7f71e45eb986aef67771b5af3c1e308971cff</id>
<content type='text'>
For "executable" files only existence was checked.
(Glib::file_test needs a single FileTest)

Apply this properly when checking script &lt;command&gt;s and xslt &lt;file&gt;s
- interpreted scripts and xslt files -&gt; only check existence
- un-interpreted scripts -&gt; 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For "executable" files only existence was checked.
(Glib::file_test needs a single FileTest)

Apply this properly when checking script &lt;command&gt;s and xslt &lt;file&gt;s
- interpreted scripts and xslt files -&gt; only check existence
- un-interpreted scripts -&gt; 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extensions: Switch .xslt file look-up to dependency logic as well</title>
<updated>2019-10-14T18:58:58+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-10-14T18:58:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=19463b12ec3527406825b9d2e092d6e78688f2a4'/>
<id>19463b12ec3527406825b9d2e092d6e78688f2a4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Extensions: Improve logic to lookup script extensions</title>
<updated>2019-10-14T17:36:29+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-10-13T18:02:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=bb3261782fa74919c3ee34baf60dc09da61aff1e'/>
<id>bb3261782fa74919c3ee34baf60dc09da61aff1e</id>
<content type='text'>
- Use identical logic for looking up &lt;dependency&gt;s and &lt;command&gt;s.
- Remove duplicate (but inconsistent and incomplete) logic from
  script.cpp that was used to search for the &lt;command&gt; again
- Remove &lt;check&gt; element from .inx format
  It seems unused (at the very least by core extensions) and
  redundant to &lt;dependency&gt; checking
- Deprecate the &lt;command&gt;-specific "reldir" attribute.
  Consistently use the functionally identical "location" attribute
  that was only used for &lt;dependency&gt;s before
- Introduce the new relative location value location="inx",
  which looks up &lt;dependencies&gt; and &lt;command&gt;s relative to the
  .inx file's location.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Use identical logic for looking up &lt;dependency&gt;s and &lt;command&gt;s.
- Remove duplicate (but inconsistent and incomplete) logic from
  script.cpp that was used to search for the &lt;command&gt; again
- Remove &lt;check&gt; element from .inx format
  It seems unused (at the very least by core extensions) and
  redundant to &lt;dependency&gt; checking
- Deprecate the &lt;command&gt;-specific "reldir" attribute.
  Consistently use the functionally identical "location" attribute
  that was only used for &lt;dependency&gt;s before
- Introduce the new relative location value location="inx",
  which looks up &lt;dependencies&gt; and &lt;command&gt;s relative to the
  .inx file's location.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extensions: Fix filename encoding issues in error logging</title>
<updated>2019-09-26T21:03:28+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-09-26T21:03:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=01ec4ffba1a2013dee932d0790dd76f9ab393ef7'/>
<id>01ec4ffba1a2013dee932d0790dd76f9ab393ef7</id>
<content type='text'>
(std::ostream is not properly portable unfortunately)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(std::ostream is not properly portable unfortunately)
</pre>
</div>
</content>
</entry>
<entry>
<title>Add appearance="multiline" to parameters of type string</title>
<updated>2019-09-01T16:56:35+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-09-01T16:56:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=c6067b75a239a1322598f2d85ef0ce7cc59df0d4'/>
<id>c6067b75a239a1322598f2d85ef0ce7cc59df0d4</id>
<content type='text'>
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).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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).
</pre>
</div>
</content>
</entry>
<entry>
<title>Add base_directory for extensions loaded from a file.</title>
<updated>2019-08-31T14:50:39+00:00</updated>
<author>
<name>Patrick Storz</name>
<email>eduard.braun2@gmx.de</email>
</author>
<published>2019-08-11T19:14:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.s-ol.nu/inkscape/commit/?id=8521b08ed46742684e6de7de085a9c4228b66881'/>
<id>8521b08ed46742684e6de7de085a9c4228b66881</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
