Age | Commit message (Collapse) | Author |
|
No point in building the 'generated' tools in anything other
than debug mode. This avoids repeatedly building the same thing
in batch builds.
|
|
This will only be built in "DebugCommercial" "ReleaseCommercial" and
"MementoCommercial" configuration builds.
A note on the way MSVS solutions work; libluratech is listed as
a dependency of the executables - this applies to ALL configurations.
In order to stop normal builds failing when we have no source, we
set each non "Commercial" configuration to not build libluratech.
The linker still looks for the output from the libluratech stage
to link in though, so for all non "Commercial" configurations, we
have the libluratech stage set to produce output named " ". This
is copied into the linker command line, and all is happy.
The sole downside to this is that if we try to build libluratech
in "Debug" (say) rather than "DebugCommercial", the build will
fail at the library making step. This will never happen unless
we manually try to build that project in that configuration though.
|
|
|
|
in 1dec53c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
All link destinations should be URIs, and a document specific function
can be called to resolve them to actual page numbers.
Outlines have cached page numbers as well as string URIs.
|
|
|
|
|
|
|
|
|
|
In addition, make all callers passing 0 as a point pass NULL
instead.
|
|
As we skip through pages very quickly, it is apparently possible
to trigger a SEGV. Alex Talis has given a clear description of
the problem on the bug, and proposed this solution.
Essentially this tweaks our CancellableAsyncTask class to ensure
that we do not destroy the cookie before it has finished being
accessed.
|
|
|
|
|
|
As fz_drop_*()/fz_free() all must handle NULL.
|
|
|
|
|
|
|
|
Loading the outline automatically triggers a layout.
|
|
Code MUST pass a non-null context to all functions.
Checking ctx for null and failing silently is no more useful
than segfaulting.
fz_keep_imp and fz_drop_imp handle NULL pointers safely, so
the NULL checks for this can also be dropped at the same time.
|
|
Increase zoom limit to 64 times.
|
|
Only Windows and Android have form filling text input implemented
properly so far. Neither of those build using the Makefile. We
therefore disable text input in Makefile built viewers.
|
|
|
|
|
|
New Devanagari serif font, several other updated fonts.
|
|
|
|
|
|
Use a flag in the pdf_annot struct instead.
Don't pass pdf_document to annotation edit functions.
|
|
The implementation does not need to be in the public API.
|
|
When updating openjpeg, I forgot to update the Android
JNI makefiles with a newly created file.
Thanks to szukw000 for reporting this!
|
|
Move the definition of fz_font to be in a private header file
rather than in the public API. Add accessors for specific
parts of the structure and use them as appropriate.
The font flags, and the harfbuzz records remain public.
This means that only 3 files now need access to the font
implementation (font.c, pdf-font.c and pdf-type3.c). This
may be able to be improved further in future.
|
|
Part of the change in this code is to require opj_malloc
and co. Sadly, opj_malloc and co do not take a context field,
so a we need to wrap calls to openjpeg with a lock.
I am reusing the freetype lock here for simplicity.
|
|
|
|
At the moment, when we create java Strings from string or name
PDFObjects, we assume they are all in javas not-quite-UTF-but-almost
encoding.
Here we assume they are in standard PDF format (namely that if
they do not start with one of 2 specific BOMs, that they are in
PDFDocEncoding). We update the code to convert to unicode, and
create strings from that.
This has the added side effect of correctly coping with 0 bytes
in the middle of string buffers.
|
|
Also, we attempt to start the proofing at the
currently-being-viewed page.
|
|
In the proof dialog, when the document has an embedded print
profile, add it to the top of the list of choices. If it's
selected, send <EMBEDDED> into gs instead of a file name.
|
|
Enable Apply button in proofing only when color checkboxes are changed.
|
|
Out of platform/java and into the platform/android/example.
|
|
|
|
Java has a convention that 'toString' should return a printable
version of an object. We cannot both support this, and support
a sane naming of functions to interpret pdf objects that begins
with 'to'. Instead use 'as'.
This means we have 'asBoolean', 'asInteger', 'asString' which
expect to work just on pdf objects of the required type. 'toString'
continues to work on all types and gives a printable version.
We split 'toByteString' into 2 separate functions, one for acting
on strings (asByteString) and one for acting on names (asByteName)
more nicely mirroring the C level functions (pdf_to_string and
pdf_to_name).
For simplicity of use, we add asString and asName functions that
return using java Strings rather than byte arrays. There are
potential encoding issues with these, but then there are throughout
our string handling at the moment, so we will deal with those in a
followup commit.
We also update the internal workings of several functions so
that they never return NULL pointers, but rather return the null
object. To avoid repeatedly creating new null objects we introduce
a global static PDFObject.Null object.
This is important as we want get("SomethingNonexistent") to return a
valid java object, so we can safely do things like:
get("Foo").get("Bar").get("Baz").asInteger()
without having to error check at every stage.
Update DocViewActivity to call the new versions.
|
|
To be used to make correct profile invocations.
|
|
Put them in the PDF name space and separate words with underscores.
Remove redundant namespace prefixes in java constants.
Device.FLAG_MASK rather than Device.FZ_DEVFLAG_MASK.
Use namespace for PDF annotation flag enum.
|
|
Account for used space before comparison, not after.
|