<feed xmlns='http://www.w3.org/2005/Atom'>
<title>RoboFont-Equalize-Sidebearings-Key, branch v1.0.0</title>
<subtitle>Equalize sidebearings using a hotkey in RoboFont</subtitle>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/'/>
<entry>
<title>info.plist: Increase version 0.0.1 -&gt; 1.0.0</title>
<updated>2015-12-26T04:44:22+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-26T04:43:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=4c6c1e3e77f625f881305cbe210be01fdff6b361'/>
<id>4c6c1e3e77f625f881305cbe210be01fdff6b361</id>
<content type='text'>
Ready for initial public release.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ready for initial public release.
</pre>
</div>
</content>
</entry>
<entry>
<title>Makefile: Add `archive` target</title>
<updated>2015-12-26T04:42:15+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-26T04:42:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=d7f6f6a66c56cc7370aab5794e2172a3ef153602'/>
<id>d7f6f6a66c56cc7370aab5794e2172a3ef153602</id>
<content type='text'>
Create a goal to make a zip archive of the bundled RoboFont extension.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Create a goal to make a zip archive of the bundled RoboFont extension.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add README and screenshots</title>
<updated>2015-12-26T04:36:12+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-26T04:36:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=16fb92126531ca7c98f09a2808821bc7649b88a4'/>
<id>16fb92126531ca7c98f09a2808821bc7649b88a4</id>
<content type='text'>
Include some background information about why I made this plus some
screenshots to get the visual message and demo across.

Also include a note about installation and license information.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Include some background information about why I made this plus some
screenshots to get the visual message and demo across.

Also include a note about installation and license information.
</pre>
</div>
</content>
</entry>
<entry>
<title>preferences.py: Remove commented import</title>
<updated>2015-12-26T04:14:24+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-26T04:14:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=18aa3b6b9222c01bb7819305f380ee7141117686'/>
<id>18aa3b6b9222c01bb7819305f380ee7141117686</id>
<content type='text'>
Not using `HotKeyItem` due to the length checking made in
1391f70d79144518dda9d0294a9e8a8fc79904ff.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not using `HotKeyItem` due to the length checking made in
1391f70d79144518dda9d0294a9e8a8fc79904ff.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add LICENSE (MIT)</title>
<updated>2015-12-25T03:46:34+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-25T03:46:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=400949e67e7165e75e36ac3d6af2f16b8e01610f'/>
<id>400949e67e7165e75e36ac3d6af2f16b8e01610f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>preferences_window.py: Get rid of all the cruft from last commit</title>
<updated>2015-12-25T03:44:03+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-25T03:44:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=681661cb1d44dee4da510176f4271a0567010123'/>
<id>681661cb1d44dee4da510176f4271a0567010123</id>
<content type='text'>
Remove the commented `NSFormatter` subclasses, and debug statements from
1391f70d79144518dda9d0294a9e8a8fc79904ff, and also rename our
single-letter variable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the commented `NSFormatter` subclasses, and debug statements from
1391f70d79144518dda9d0294a9e8a8fc79904ff, and also rename our
single-letter variable.
</pre>
</div>
</content>
</entry>
<entry>
<title>preferences_window.py: Attempts to limit input character length</title>
<updated>2015-12-25T03:37:37+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-25T03:37:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=1391f70d79144518dda9d0294a9e8a8fc79904ff'/>
<id>1391f70d79144518dda9d0294a9e8a8fc79904ff</id>
<content type='text'>
Tried to create an `NSFormatter` subclass but kept getting this stupid
error:

    TypeError: isPartialStringValid:newEditingString:errorDescription::
    Need tuple of 3 arguments as result

and:

    TypeError:
    isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription::
    Need tuple of 4 arguments as result

which is freaking idiotic because if you look at the Cocoa documentation
you can see that both those methods return fraking `BOOL`s.

Also needed to keep renaming the subclass because every time I
reinstalled the extension, PyObjC or RoboFont or whatever would yell:

    Traceback (most recent call last):
      File "preferences_window.py", line 10, in &lt;module&gt;
      error: Booya2HotKeyFormatter is overriding existing Objective-C
      class

Anyway, ended up ditching the `NSFormatter` subclass because of that
_stupid_ nonsensical error and am now just checking for string length in
the input edit callback and forcing a max length there by resetting the
value to ensure it doesn't go over 1 character.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tried to create an `NSFormatter` subclass but kept getting this stupid
error:

    TypeError: isPartialStringValid:newEditingString:errorDescription::
    Need tuple of 3 arguments as result

and:

    TypeError:
    isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription::
    Need tuple of 4 arguments as result

which is freaking idiotic because if you look at the Cocoa documentation
you can see that both those methods return fraking `BOOL`s.

Also needed to keep renaming the subclass because every time I
reinstalled the extension, PyObjC or RoboFont or whatever would yell:

    Traceback (most recent call last):
      File "preferences_window.py", line 10, in &lt;module&gt;
      error: Booya2HotKeyFormatter is overriding existing Objective-C
      class

Anyway, ended up ditching the `NSFormatter` subclass because of that
_stupid_ nonsensical error and am now just checking for string length in
the input edit callback and forcing a max length there by resetting the
value to ensure it doesn't go over 1 character.
</pre>
</div>
</content>
</entry>
<entry>
<title>Preferences: Always use NSUserDefaults to get &amp; set key</title>
<updated>2015-12-25T02:43:11+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-25T02:33:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=cbb9c1f4c0aa414385e0f3bdfeca32d7b5741515'/>
<id>cbb9c1f4c0aa414385e0f3bdfeca32d7b5741515</id>
<content type='text'>
This fixes the bug mentioned in
8778928a0989ea938fb06f0dd4c6639a6f9148ca, allowing us to change the
preferred activation key and have it work immediately without first
having to relaunch RoboFont.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes the bug mentioned in
8778928a0989ea938fb06f0dd4c6639a6f9148ca, allowing us to change the
preferred activation key and have it work immediately without first
having to relaunch RoboFont.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make hotkey preference work</title>
<updated>2015-12-25T02:26:03+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-25T02:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=8778928a0989ea938fb06f0dd4c6639a6f9148ca'/>
<id>8778928a0989ea938fb06f0dd4c6639a6f9148ca</id>
<content type='text'>
Separate preference handling into a new class and have the previous
preferences class handle only the preferences window.

We rename the old file to `preferences_window.py` and adjust the
`info.plist` key for the menu item accordingly.

Our new `Preference` class can now be imported from both
`equalize_sidebearings.py` and `preferences_window.py` without causing
confusion. I extracted it because asking for the
`DEFAULT_ACTIVATION_KEY` from `preferences_window.py` from
`equalize_sidebearings.py` would open the preferences window (bad).

We now save the preferred key using RoboFont's extension preferences
API.

When the text input in the preferences window is modified, the new key
preference gets saved.

BUG:
There's an issue with this implementation where the preferred key
doesn't become active until the next launch of RoboFont because
`EqualizeSidebearings` has its own instance of `Preferences` which has a
stale `activation_key`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Separate preference handling into a new class and have the previous
preferences class handle only the preferences window.

We rename the old file to `preferences_window.py` and adjust the
`info.plist` key for the menu item accordingly.

Our new `Preference` class can now be imported from both
`equalize_sidebearings.py` and `preferences_window.py` without causing
confusion. I extracted it because asking for the
`DEFAULT_ACTIVATION_KEY` from `preferences_window.py` from
`equalize_sidebearings.py` would open the preferences window (bad).

We now save the preferred key using RoboFont's extension preferences
API.

When the text input in the preferences window is modified, the new key
preference gets saved.

BUG:
There's an issue with this implementation where the preferred key
doesn't become active until the next launch of RoboFont because
`EqualizeSidebearings` has its own instance of `Preferences` which has a
stale `activation_key`.
</pre>
</div>
</content>
</entry>
<entry>
<title>preferences.py: PEP8 whitespace</title>
<updated>2015-12-25T00:47:00+00:00</updated>
<author>
<name>Teddy Wing</name>
</author>
<published>2015-12-25T00:47:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/RoboFont-Equalize-Sidebearings-Key/commit/?id=78cb02c8b70c037eda31e5a40b33da71067c8435'/>
<id>78cb02c8b70c037eda31e5a40b33da71067c8435</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
