X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2FPackage.h;h=4e5c6fa3f46e78f11ba64ab80ca0304ae5e017bf;hb=037b1e14789223c89e88e8bd74baffa4d0956571;hp=e5989459f579aab3f164ece3069c24fa48bba0da;hpb=f212b483355d68e93132fb469814e13335d0886b;p=lyx.git diff --git a/src/support/Package.h b/src/support/Package.h index e5989459f5..4e5c6fa3f4 100644 --- a/src/support/Package.h +++ b/src/support/Package.h @@ -12,8 +12,9 @@ * by LyX. These paths differ markedly from one OS to another, * following the local Windows, MacOS X or Posix conventions. */ -#ifndef LYX_PACHAGE_H -#define LYX_PACHAGE_H + +#ifndef PACKAGE_H +#define PACKAGE_H #include "support/FileName.h" @@ -24,14 +25,6 @@ namespace support { class Package; -/** When run in-place /src/lyx is one level up from - * the whilst /src/tex2lyx/tex2lyx is - * two levels up. - */ -enum exe_build_dir_to_top_build_dir { - top_build_dir_is_one_level_up, - top_build_dir_is_two_levels_up -}; /** Initialise package() with the command line data. @@ -48,8 +41,7 @@ enum exe_build_dir_to_top_build_dir { */ void init_package(std::string const & command_line_arg0, std::string const & command_line_system_support_dir, - std::string const & command_line_user_support_dir, - exe_build_dir_to_top_build_dir); + std::string const & command_line_user_support_dir); /** Accessor to the global data. * Asserts that init_package() has been called first. @@ -59,19 +51,27 @@ Package const & package(); class Package { public: /// Default constructor does not lead to the paths being set. - Package(); + Package() : explicit_user_support_dir_(false), in_build_dir_(false) {} /** Called by init_package, above. * All paths will be initialized. */ Package(std::string const & command_line_arg0, std::string const & command_line_system_support_dir, - std::string const & command_line_user_support_dir, - exe_build_dir_to_top_build_dir); + std::string const & command_line_user_support_dir); + + /** The directory containing the main executable (LyX or tex2lyx). + */ + FileName const & binary_dir() const { return binary_dir_; } - /** The directory containing the LyX executable. + /** The absolute path to the LyX executable. */ - FileName const & binary_dir() const; + FileName const & lyx_binary() const { return lyx_binary_; } + + /** The absolute path to the LyX package directory. + * This is one level up from the binary dir. + */ + FileName const & lyx_dir() const { return lyx_dir_; } /** The top of the LyX source code tree. */ @@ -80,42 +80,51 @@ public: /** The path to the system-level support files * we're actually going to use. */ - FileName const & system_support() const; + FileName const & system_support() const { return system_support_dir_; } /** The path to the autogenerated support files * when running in-place. */ - FileName const & build_support() const; + FileName const & build_support() const { return build_support_dir_; } /** The path to the user-level support files. */ - FileName const & user_support() const; + FileName const & user_support() const { return user_support_dir_; } /** The user_support directory was set explicitly using either * the -userdir command line switch or - * the LYX_USERDIR_15x environment variable. + * the LYX_USERDIR_${major}${minor}x environment variable. */ - bool explicit_user_support() const; + bool explicit_user_support() const { return explicit_user_support_dir_; } /** The path to the locale directory. */ - FileName const & locale_dir() const; + FileName const & locale_dir() const { return locale_dir_; } + + /** The file name that should contain the message file (.mo) + * for language code \param c. Does not check whether the + * file exists. Handles running in place. + */ + FileName messages_file(std::string const & c) const; /** The default document directory. * Can be reset by LyXRC. */ - FileName & document_dir() const; + FileName & document_dir() const { return document_dir_; } /** The path to the system temporary directory. * (Eg /tmp on *nix.) */ - FileName const & system_temp_dir() const; + FileName const & system_temp_dir() const { return system_temp_dir_; } - /** The path to the temporary directory used by LyX. + //@{ + /** The path to the temporary directory used by %LyX. * (Eg /tmp/lyx_tmpdir800nBI1z9 on *nix.) * Can be reset by LyXRC. */ - FileName & temp_dir() const; + FileName const & temp_dir() const { return temp_dir_; } + void set_temp_dir(FileName const & temp_dir) const; + //@} /** Used when setting the user_support directory. * Used also when expanding "~/" or contracting to "~/". (filetools.cpp) @@ -123,16 +132,18 @@ public: * for the dump. * This may be empty (e. g. when run under a CGI environment) */ - FileName const & home_dir() const; + static FileName const & get_home_dir(); - /** Command to run the configure script. - * Caution: This is "ready-to-run", i.e. in the locale encoding, not - * utf8. - */ - std::string const & configure_command() const; + /// Run configure.py + int reconfigureUserLyXDir(std::string const & option) const; + + /// + std::string getConfigureLockName() const; private: FileName binary_dir_; + FileName lyx_binary_; + FileName lyx_dir_; FileName system_support_dir_; FileName build_support_dir_; FileName user_support_dir_; @@ -140,82 +151,16 @@ private: mutable FileName document_dir_; mutable FileName temp_dir_; FileName system_temp_dir_; - FileName home_dir_; - std::string configure_command_; + /** Command to run the configure script. + * Caution: This is "ready-to-run", i.e. in the locale encoding, not + * utf8. + */ + mutable std::string configure_command_; bool explicit_user_support_dir_; + bool in_build_dir_; }; - -inline -Package::Package() {} - -inline -FileName const & Package::binary_dir() const -{ - return binary_dir_; -} - -inline -FileName const & Package::system_support() const -{ - return system_support_dir_; -} - -inline -FileName const & Package::build_support() const -{ - return build_support_dir_; -} - -inline -FileName const & Package::user_support() const -{ - return user_support_dir_; -} - -inline -bool Package::explicit_user_support() const -{ - return explicit_user_support_dir_; -} - -inline -FileName const & Package::locale_dir() const -{ - return locale_dir_; -} - -inline -FileName & Package::document_dir() const -{ - return document_dir_; -} - -inline -FileName & Package::temp_dir() const -{ - return temp_dir_; -} - -inline -FileName const & Package::system_temp_dir() const -{ - return system_temp_dir_; -} - -inline -FileName const & Package::home_dir() const -{ - return home_dir_; -} - -inline -std::string const & Package::configure_command() const -{ - return configure_command_; -} - } // namespace support } // namespace lyx -#endif // LYX_PACHAGE_H +#endif // PACKAGE_H