]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.h
Fix #10778 (issue with CJK and language nesting)
[lyx.git] / src / LyXRC.h
index e8114e7e6a666e7ed335b879e56c26ed28fa342d..7b50ce0a56e9b218cee1ee9304c43207798bacbe 100644 (file)
 #ifndef LYXRC_H
 #define LYXRC_H
 
-#include "paper.h"
+#include "Length.h"
 
 #include "support/strfwd.h"
 
 #include <map>
 #include <set>
 #include <string>
-#include <vector>
 
 
 namespace lyx {
@@ -57,6 +56,7 @@ public:
                RC_COMPLETION_INLINE_MATH,
                RC_COMPLETION_INLINE_TEXT,
                RC_COMPLETION_INLINE_DOTS,
+               RC_COMPLETION_MINLENGTH,
                RC_COMPLETION_POPUP_DELAY,
                RC_COMPLETION_POPUP_MATH,
                RC_COMPLETION_POPUP_TEXT,
@@ -65,11 +65,12 @@ public:
                RC_CONVERTER_CACHE_MAXAGE,
                RC_COPIER,
                RC_CURSOR_FOLLOWS_SCROLLBAR,
+               RC_CURSOR_WIDTH,
                RC_DATE_INSERT_FORMAT,
                RC_DEFAULT_DECIMAL_POINT,
-               RC_DEFAULT_LANGUAGE,
+               RC_DEFAULT_LENGTH_UNIT,
+               RC_DEFAULT_OTF_VIEW_FORMAT,
                RC_DEFAULT_VIEW_FORMAT,
-               RC_DEFAULT_PAPERSIZE,
                RC_DEFFILE,
                RC_DIALOGS_ICONIFY_WITH_MAIN,
                RC_DISPLAY_GRAPHICS,
@@ -84,6 +85,7 @@ public:
                RC_FORWARD_SEARCH_PDF,
                RC_FULL_SCREEN_LIMIT,
                RC_FULL_SCREEN_SCROLLBAR,
+               RC_FULL_SCREEN_STATUSBAR,
                RC_FULL_SCREEN_TABBAR,
                RC_FULL_SCREEN_MENUBAR,
                RC_FULL_SCREEN_TOOLBARS,
@@ -92,6 +94,7 @@ public:
                RC_GROUP_LAYOUTS,
                RC_GUI_LANGUAGE,
                RC_HUNSPELLDIR_PATH,
+               RC_ICON_SET,
                RC_INDEX_ALTERNATIVES,
                RC_INDEX_COMMAND,
                RC_INPUT,
@@ -112,10 +115,11 @@ public:
                RC_LYXRCFORMAT,
                RC_MACRO_EDIT_STYLE,
                RC_MAC_DONTSWAP_CTRL_META,
-               RC_MAC_LIKE_WORD_MOVEMENT,
+               RC_MAC_LIKE_CURSOR_MOVEMENT,
                RC_MAKE_BACKUP,
                RC_MARK_FOREIGN_LANGUAGE,
                RC_MOUSE_WHEEL_SPEED,
+               RC_MOUSE_MIDDLEBUTTON_PASTE,
                RC_NOMENCL_COMMAND,
                RC_NUMLASTFILES,
                RC_OPEN_BUFFERS_IN_TABS,
@@ -125,26 +129,11 @@ public:
                RC_PREVIEW,
                RC_PREVIEW_HASHED_LABELS,
                RC_PREVIEW_SCALE_FACTOR,
-               RC_PRINTCOLLCOPIESFLAG,
-               RC_PRINTCOPIESFLAG,
-               RC_PRINTER,
-               RC_PRINTEVENPAGEFLAG,
-               RC_PRINTEXSTRAOPTIONS,
-               RC_PRINTFILEEXTENSION,
                RC_PRINTLANDSCAPEFLAG,
-               RC_PRINTODDPAGEFLAG,
-               RC_PRINTPAGERANGEFLAG,
                RC_PRINTPAPERDIMENSIONFLAG,
                RC_PRINTPAPERFLAG,
-               RC_PRINTREVERSEFLAG,
-               RC_PRINTSPOOL_COMMAND,
-               RC_PRINTSPOOL_PRINTERPREFIX,
-               RC_PRINTTOFILE,
-               RC_PRINTTOPRINTER,
-               RC_PRINT_ADAPTOUTPUT,
-               RC_PRINT_COMMAND,
-               RC_RTL_SUPPORT,
                RC_SAVE_COMPRESSED,
+               RC_SAVE_ORIGIN,
                RC_SCREEN_DPI,
                RC_SCREEN_FONT_ROMAN,
                RC_SCREEN_FONT_ROMAN_FOUNDRY,
@@ -171,6 +160,7 @@ public:
                RC_TEMPLATEPATH,
                RC_TEX_ALLOWS_SPACES,
                RC_TEX_EXPECTS_WINDOWS_PATHS,
+               RC_TEXINPUTS_PREFIX,
                RC_THESAURUSDIRPATH,
                RC_UIFILE,
                RC_USELASTFILEPOS,
@@ -180,10 +170,13 @@ public:
                RC_USE_SYSTEM_COLORS,
                RC_USE_TOOLTIP,
                RC_USE_PIXMAP_CACHE,
+               RC_USE_QIMAGE,
+               RC_USE_SYSTEM_THEME_ICONS,
                RC_VIEWDVI_PAPEROPTION,
                RC_VIEWER,
                RC_VIEWER_ALTERNATIVES,
                RC_VISUAL_CURSOR,
+               RC_CLOSE_BUFFER_WITH_LAST_VIEW,
                RC_LAST
        };
 
@@ -191,22 +184,20 @@ public:
        LyXRC();
        ///
        void setDefaults();
-       ///
-       bool read(support::FileName const & filename);
+       /// \param check_format: whether to try to convert the file format,
+       /// if it is not current. this should only be true, really, for the
+       /// user's own preferences file.
+       bool read(support::FileName const & filename, bool check_format);
        ///
        bool read(std::istream &);
-       ///
+private:
        enum ReturnValues {
                ReadOK,
-               FileError,
                ReadError,
                FormatMismatch
        };
-private:
        ///
-       ReturnValues readWithoutConv(support::FileName const &);
-       ///
-       ReturnValues read(Lexer &);
+       ReturnValues read(Lexer &, bool check_format);
 public:
        ///
        typedef std::set<std::string> CommandSet;
@@ -231,45 +222,14 @@ public:
        ///
        std::string ui_file;
        ///
-       std::string printer;
-       ///
-       std::string print_command;
-       ///
-       std::string print_evenpage_flag;
-       ///
-       std::string print_oddpage_flag;
-       ///
-       std::string print_pagerange_flag;
-       ///
-       std::string print_copies_flag;
-       ///
-       std::string print_collcopies_flag;
-       ///
-       std::string print_reverse_flag;
-       ///
        std::string print_landscape_flag;
        ///
-       std::string print_to_printer;
-       ///
-       bool print_adapt_output;
-       ///
-       std::string print_to_file;
-       ///
-       std::string print_file_extension;
-       ///
-       std::string print_extra_options;
-       ///
-       std::string print_spool_command;
-       ///
-       std::string print_spool_printerprefix;
-       ///
        std::string print_paper_flag;
        ///
        std::string print_paper_dimension_flag;
        /// option for telling the dvi viewer about the paper size
        std::string view_dvi_paper_option;
        /// default paper size for local xdvi/dvips/ghostview/whatever
-       PAPER_SIZE default_papersize;
        /// command to run chktex incl. options
        std::string chktex_command;
        /// all available commands to run bibtex incl. options
@@ -302,6 +262,8 @@ public:
        std::string hunspelldir_path;
        ///
        bool auto_region_delete;
+       /// enable middle-mouse-button paste
+       bool mouse_middlebutton_paste;
        /// flag telling whether lastfiles should be checked for existance
        bool auto_reset_options;
        ///
@@ -314,6 +276,8 @@ public:
        bool load_session;
        /// do we save new documents as compressed by default
        bool save_compressed;
+       /// whether or not to save the document dir in the file
+       bool save_origin;
        /// shall a backup file be created
        bool make_backup;
        /// A directory for storing backup files
@@ -359,6 +323,8 @@ public:
        bool use_system_colors;
        /// Use pixmap cache?
        bool use_pixmap_cache;
+       /// Use QImage backend?
+       bool use_qimage;
        /// Spellchecker engine: aspell, hunspell, etc
        std::string spellchecker;
        /// Alternate language for spellchecker
@@ -369,6 +335,8 @@ public:
        bool spellcheck_continuously;
        /// spellcheck notes and comments?
        bool spellcheck_notes;
+       /// minimum length of words to complete
+       unsigned int completion_minlength;
        ///
        bool use_kbmap;
        ///
@@ -402,8 +370,6 @@ public:
        };
        ///
        LangPackageSelection language_package_selection;
-       ///
-       bool rtl_support;
        /// bidi cursor movement: true = visual, false = logical
        bool visual_cursor;
        ///
@@ -411,10 +377,10 @@ public:
        ///
        bool mark_foreign_language;
        ///
-       std::string default_language;
-       ///
        std::string gui_language;
        ///
+       std::string default_otf_view_format;
+       ///
        std::string default_view_format;
        /// all available viewers
        Alternatives viewer_alternatives;
@@ -423,7 +389,7 @@ public:
        ///
        bool mac_dontswap_ctrl_meta;
        ///
-       bool mac_like_word_movement;
+       bool mac_like_cursor_movement;
        ///
        bool cursor_follows_scrollbar;
        ///
@@ -458,6 +424,10 @@ public:
        std::string user_name;
        /// user email
        std::string user_email;
+       /// icon set name
+       std::string icon_set;
+       /// whether to use the icons from the theme
+       bool use_system_theme_icons;
        /// True if the TeX engine cannot handle posix paths
        bool windows_style_tex_paths;
        /// True if the TeX engine can handle file names containing spaces
@@ -466,6 +436,11 @@ public:
         *  The string is input, stored and output in native format.
         */
        std::string path_prefix;
+       /** Prepend paths to the TEXINPUTS environment variable.
+        *  The string is input, stored and output in native format.
+        *  A '.' here stands for the current document directory.
+        */
+       std::string texinputs_prefix;
        /// Use the cache for file converters?
        bool use_converter_cache;
        /// The maximum age of cache files in seconds
@@ -482,6 +457,8 @@ public:
        bool full_screen_tabbar;
        /// Toggle menubar in fullscreen mode?
        bool full_screen_menubar;
+       /// Toggle statusbar in fullscreen mode?
+       bool full_screen_statusbar;
        /// Limit the text width?
        bool full_screen_limit;
        /// Width of limited screen (in pixels) in fullscreen mode
@@ -521,6 +498,8 @@ public:
        /// Default decimal point when aligning table columns on decimal
        std::string default_decimal_point;
        ///
+       Length::UNIT default_length_unit;
+       ///
        enum ScrollWheelZoom {
                SCROLL_WHEEL_ZOOM_OFF,
                SCROLL_WHEEL_ZOOM_CTRL,
@@ -529,20 +508,13 @@ public:
        };
        ///
        ScrollWheelZoom scroll_wheel_zoom;
+       ///
+       int cursor_width;
+       /// One of: yes, no, ask
+       std::string close_buffer_with_last_view;
 };
 
 
-/** \c LyXRC_PreviewStatus is a wrapper for LyXRC::PreviewStatus.
- *  It can be forward-declared and passed as a function argument without
- *  having to expose LyXRC.h.
- */
-class LyXRC_PreviewStatus {
-       LyXRC::PreviewStatus val_;
-public:
-       LyXRC_PreviewStatus(LyXRC::PreviewStatus val) : val_(val) {}
-       operator LyXRC::PreviewStatus() const { return val_; }
-};
-
 void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new);
 
 ///
@@ -551,7 +523,7 @@ extern LyXRC lyxrc;
 extern LyXRC system_lyxrc;
 
 // used by at least frontends/qt4/GuiPref.cpp
-const long maxlastfiles = 20;
+const long maxlastfiles = 50;
 
 } // namespace lyx