Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
Given we specifically want bison and flex, and not other yacc/lex
implementations with their various deficiencies, we don't need
autoconf's detection magic.
|
|
We use bison/flex extensions, so we need those actual tools.
|
|
|
|
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.
|