Age | Commit message (Collapse) | Author |
|
|
|
file system (e.g. OS X)
|
|
|
|
It turns out the selection box, rather than being properly set to the
zero rectangle, was being set to the value of an uninitialised NSRect
created on the stack. This never caused any issues for me before,
because my system compiles things with _FORTIFY_SOURCE by default, which
zeros new variables. It was only when I (indirectly) disabled this for
debugging in gdb that I started getting selection boxes appearing in odd
places.
|
|
Converting NSNumber to a string raises the possibility of outputing a
number like 2.2e-8, as it essentially uses the %g format specifier.
This then cannot be parsed.
Since there is no built-in specifier for outputing floats with variable
precision (ie: removing any trailing zeros), I cooked up a function to
do just that.
Currently set the maximum precision at 4dp (our normal grid layout only
makes use of 2dp).
|
|
|
|
Shape sizes can change (if you're actively editing a shape), which can
mean that some edge properties need to be recalculated.
We do this at the graph, rather than edge, level to avoid the overhead
of installing a notification for every single edge.
|
|
|
|
|
|
Edges almost always want to be anchored to the "center" of an unstyled
(style=none) node, as otherwise edges won't join up. However, this
anchor should be discarded if a style is then set on the node, otherwise
arrowheads tend to disappear.
|
|
The editable preambles include a bunch of things that *have* to be there
for previews to work, which makes figuring out what you can edit hard.
We now add a \documentclass automagically if it is missing, and if
\begin{document} is missing, we assume the preview-specific stuff should
be added.
OSX changes are untested.
|
|
It turns out that the [NSString stringWithContentsOfFile:] family of
methods do not have a way of reporting why a file could not be read;
[NSString stringWithContentsOfFile:usedEncoding:error:] will only set
the error object if there was a problem with decoding.
So, we cook our own variant that tries to figure out why opening the
file failed.
User-visible effect: in the GTK+ port, if you try to open a file from
the "open recent" menu that no longer exists, you will get a more
helpful error message.
|
|
We can't always guarantee that library code will produce an error object
when things fail; default to "unknown error" if the error object is null
or does not have a message.
|
|
Previously, copying-and-pasting a graph would lose source and target
anchor information.
|
|
If the user presses the LMB whilst holding ctrl, we bypass the tool and
enter panning mode, where dragging the mouse moves around the graph,
until the LMB is released.
|
|
|
|
Be explicit about what versions we require.
|
|
|
|
Defining YY_EXTRA_TYPE is not the "proper" way to set that type (a
%option should be used instead), and defining YYLEX_PARAM will no longer
work with bison 3 (%lex-param is the correct thing to use).
|
|
|
|
|
|
"Preferences" suggests it's about non-essential behavioural or visual
changes, but you need to configure TikZiT to use it properly (especially
adding node and edge styles).
Also, fix the title of the configuration window not to say "premable
editor".
|
|
Each document window has its own preview window, allowing multiple ones
to be open at once.
|
|
On X, window managers don't like WM_TRANSIENT_FOR being altered while a
window is visible; this meant that if you opened TikZiT and opened a
second main window and minimised the main window that had focus, the
toolbox and properties window would both disappear, with no way to get
them back (well, almost - the properties window could be retreived with
the menu item that shows/hides it).
Tested with KWin, Metacity (Gnome 2's WM), Mutter (Gnome 3) and xfwm4
(XFCE 4). Metacity and Mutter still behave a little oddly - you have to
click one of the main windows *twice* to get it to focus. KWin and
xfwm4 work fine.
|
|
|
|
Includes functions for testing if an anchor is valid.
|
|
Memory usage on Linux no longer shoots up after running the tikz parser
a handful of times.
|
|
|
|
|
|
|
|
|
|
These are just convenience wrappers for TikzGraphAssembler. As a
result, non of the GTK code uses TikzGraphAssembler directly.
|
|
|
|
This means that tabs don't get treated specially. No-one can seem to
agree how many spaces a tab should be, and the first thing we actually
ended up doing was to undo the extra tab counting.
|
|
|
|
|
|
|
|
|
|
It appears I broke this when rewriting the parser.
|
|
Even better than before!
|
|
No more locking! Also, the interface for TikzGraphAssembler is much
simpler.
Changes to OSX code are completely untested.
|
|
Better error messages and cleaner code in the body of the parser.
|
|
We build things up in stacks in the parser, rather than relying on
TikzGraphAssembler so much. This makes tikzparser.ym easier to follow
(IMHO).
|
|
It turns out Flex can do modal lexing. This means that we can switch
mode for optional properties, and also for co-ordinates. As a result,
the parser is much simpler and doesn't keel over all the time on valid
input.
|
|
Parse anchors with spaces, like (3.north west).
|
|
Selecting edges and/or nodes and pressing shift-d will print info about
them to the console.
|
|
Fixes a crash when manually editing anchors on Linux.
|
|
Previously, we could find the "maximum exit point" of an edge to be very
slightly inside the actual bounds; this would cause the actual exit
point not to be found. So we expand the bounding rect very slightly.
|
|
|
|
|