X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FPDFOptions.h;h=4ab0d9e3ad7488c52d8f1d0943b5533e992894e6;hb=a900667ea1bb516ac562a6c45e4f3a1e4071b01b;hp=d34132b13059fd51a4b0bbd523953a57f13a2a60;hpb=6881ac8c4c9da9fc7ddcdc613fc9cc650a0f555d;p=lyx.git diff --git a/src/PDFOptions.h b/src/PDFOptions.h index d34132b130..4ab0d9e3ad 100644 --- a/src/PDFOptions.h +++ b/src/PDFOptions.h @@ -12,28 +12,33 @@ #ifndef PDFOPTIONS_H #define PDFOPTIONS_H - #include -#include "support/docstream.h" namespace lyx { class Lexer; +class OutputParams; +class otexstream; + +// FIXME UNICODE +// Write functions need to use odostream instead of ostream before +// we can use docstring instead of string. /// Options for PDF generation class PDFOptions { public: /// PDFOptions() { clear(); } - /// check for string settings + /// check whether user added any settings for hyperref bool empty() const; /// output to lyx header void writeFile(std::ostream &) const; /// output to tex header - void writeLaTeX(odocstringstream &) const; + void writeLaTeX(OutputParams &, otexstream &, + bool hyperref_already_provided) const; /// read tokens from lyx header std::string readToken(Lexer &lex, std::string const & token); - /// keep implicit hyperref settings + /// set implicit settings for hyperref void clear(); /// @@ -67,7 +72,7 @@ public: * Level (\maxdimen) to which bookmarks are open * bookmarksopenlevel parameter */ - std::string bookmarksopenlevel; + int bookmarksopenlevel; /** * Allows link text to break across lines. * breaklinks boolean false @@ -92,18 +97,14 @@ public: bool colorlinks; /** * Adds backlink text to the end of each item in the bibliography, - * as a list of section numbers. + * as a list of section/slide/page numbers. * This can only work properly if there is a blank line after each * \bibitem. - * backref boolean false - */ - bool backref; - /** - * Adds backlink text to the end of each item in the bibliography, - * as a list of page numbers. - * pagebackref boolean false + * backref string empty(="section"), "false", "section", "slide", "page" + * + * Internally we use false/section/slide/pages. See also bug 5340. */ - bool pagebackref; + std::string backref; /** * Determines how the file is opening in Acrobat; * the possibilities are None, UseThumbs (show thumbnails), UseOutlines @@ -118,6 +119,15 @@ public: * dialog -> PDFOptions.pagemode . */ std::string pagemode; + /** + * Flag indicating whether hyperref tries to derive the values for + * pdftitle and pdfauthor from \title and \author. + * pdfusetitle boolean false + * + * Note that we use true as default value instead. The option is also + * used in latex output only when title and author is not filled. + */ + bool pdfusetitle; ///latex string static const std::string pagemode_fullscreen; /** @@ -126,16 +136,10 @@ public: std::string quoted_options; /** * Possible syntax check of users additional parameters here. + * Returns repaired string. For the time being only newlines + * are checked. */ - std::string quoted_options_get() const; - - - /** - * Flag indicating whether user made some input into PDF preferences. - * We want to save options, when user decide to switch off PDF support - * for a while. - */ - bool store_options; + std::string quoted_options_check(std::string const & str) const; }; } // namespace lyx