- check if texindy is available and if so, use it instead of makeindex
(bug 4732).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25334 a592a061-630c-0410-9148-cb99ea01b6c8
- Use verbose htlatex command instead of oolatex, if available,
since the latter caused problems on some systems (bug 4604).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23496 a592a061-630c-0410-9148-cb99ea01b6c8
The changes that accomplish this part are in ModuleList.{h,cpp}, configure.py, and the *.module files themselves. This is a format change, and the lyx2lyx is in those files.
By itself, that change would not be major, except for the fact that we do not want the module to be represented in the UI by its filename---e.g., theorems-std---but rather by a descriptive name, such as "Theorems". But that change turns out to be wholly non-trivial. The mechanism for choosing modules was the same as---indeed, was borrowed from---that in GuiCitation: You get a list of modules, and choosing them involves moving strings from one QListView to another. The models underlying these views are just QStringListModels, which means that, when you want to know what modules have been selected, you see what strings are in the "selected" QListView. But these are just the descriptive names, and we can't look up a module by its descriptive name if it's been translated. That, indeed, was the whole point of the change to the new representation.
So, we need a more complicated model underlying the QListView, one that will pair an identifying string---the filename minus the extension, in this case---with each item. This turns out not to be terribly difficult, though it took rather a while for me to understand why it's not difficult. There are two parts:
(i) GuiSelectionManger gets re-written to use any QAbstractListModel, not just a QStringListModel. This actually seems to improve the code, independently.
(ii) We then subclass QAbstractListModel to get the associated ID string, using the Qt::UserRole slot associated with each item to store its ID. This would be almost completely trivial if QAbstractListItem::itemData() included the QVariant associated with this role, but it doesn't, so there are some additional hoops through which to jump.
The new model, a GuiIdListModel, is defined in the files by that name. The changes in GuiSelectionManger.{h,cpp} make it more abstract; the changes in GuiDocument.{h,cpp} adapt it to the new framework.
I've also updated the module documenation to accord with this change.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22501 a592a061-630c-0410-9148-cb99ea01b6c8
None of the extant modules require any other modules, but the Theorem modules all exclude one another. (See the screenshot.) When I modularize the AMS classes---that is the next task---we'll have requires.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22456 a592a061-630c-0410-9148-cb99ea01b6c8
- rename former "pagebreak" to "newpage" since it produces a \newpage
- new LFUN
- menu entry
- tex2lyx support
- fileformat change
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21732 a592a061-630c-0410-9148-cb99ea01b6c8
extensions for executables (only Windows is affected by this).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21201 a592a061-630c-0410-9148-cb99ea01b6c8
Design goal: Allow the use of layout "modules", which are to LaTeX packages as layout files are to LaTeX document classes. Thus, one could have a module that defined certain character styles, environments, commands, or what have you, and include it in various documents, each of which uses a different document class, without having to modify the layout files themselves. For example, a theorems.module could be used with article.layout to provide support for theorem-type environments, without having to modify article.layout itself, and the same module could be used with book.layout, etc.
This patch adds the backend. The ModuleList class holds a list of the available modules, which are retrieved from lyxmodules.lst, itself generated by configure.py. There are two LFUNs available: modules-clear and module-add, which do the obvious thing; you can test by typing these into the minibuffer, along with the name of one of the available modules: URL (a CharStyle), Endnote (a Custom Inset), and---with the spaces---End To Foot (View>LaTeX and look at the user preamble), which are themselves in lib/layouts. There are some others, too, that allow theorems to be added to classes like article and book.
The GUI will come next.
Issues: (i) The configure.py script could be improved. It'd be nice, for example, if it tested for the presence of the LaTeX packages a particular module needs. But this would mean re-working the LaTeX script, and I don't know how to do that. Note that at present, the packages are ignored. This will change shortly. (ii) I've used std::string in LyXModule, following what seemed to be a precedent in TextClass. If some of these should be docstrings, please let me know, and I'll change them. (iii) There is at present no distinction between LaTeX and DocBook modules. Should there be? That is: Should there be modules that are available when the document class is a LaTeX class and others that are available only when it is DocBook? Or should there just be one set of modules? Each module can of course indicate for what it is suitable in its description.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19893 a592a061-630c-0410-9148-cb99ea01b6c8
obeying the umask value as on cygwin access is controlled through ACLs
and the python port knows nothing about them.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19308 a592a061-630c-0410-9148-cb99ea01b6c8
The key is the new copier script lib/scripts/ext_copy.py. Usage:
ext_copy.py [-e ext1,ext2,...] <from file> <to file>
Given a <from file> and <to file>, it will copy all files in the directory
in which from_file is found that have the extensions given in the -e option,
or all files in that directory if no such argument is given. So, for example,
we can do:
python ext_copy.py -e png,html,css /path/from/file.html /path/to/file.html
and all html, png, and css files in /path/from/ will be copied to the
(possibly new) directory /path/to/file.html.LyXconv/. The -t option determines
the extension added to the output filename passed to the script ($$o, in the
copier definition), the default being "LyXconv". If just . is given, then no
extension is added.
Other changes:
* configure.py: added appropriate copier definitions for html and wordhtml
formats, as well as for the Program pseudo-format.
* lib/Makefile.am and development/scons/scons_manifest.py: add ext_copy.py.
* lib/doc/Customization.lyx: update documentation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18791 a592a061-630c-0410-9148-cb99ea01b6c8
* lib/scripts/convertDefault.py: Use the cropbox option when the
source format is pdf and convert supports it.
* lib/configure.py: Don't define a PDF->PNG converter in order to
avoid the EPS->PDF->PNG route when converting EPS to a loadable
format.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17668 a592a061-630c-0410-9148-cb99ea01b6c8
(Exporter::Export): Remove hardcoded check for lyx backend.
Use the shortest converter path instead, that is more flexible and
always correct.
* lib/configure.py: Add new formats and converters for importing and
exporting files from CJK LyX.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17202 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/ExternalSupport.C
(updateExternal): Avoid computing crc of a directory as this leads
to a crash on Cygwin.
* lib/configure.py:
Use a python script to get the current date in order to avoid
a stalling condition with the date command on Win32.
* lib/scripts/date.py:
New python script.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17168 a592a061-630c-0410-9148-cb99ea01b6c8
thing and it worked on Win32 only by chance.
* lib/configure.py:
Correctly collect stderr also on Win32.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17095 a592a061-630c-0410-9148-cb99ea01b6c8
* lib/configure.py:
Check whether convert understands the -define option, and, if so,
define a new converter PDF->PNG such that the CropBox rather than
the MediaBox is used in the conversion.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17078 a592a061-630c-0410-9148-cb99ea01b6c8
(expandFormats): Document hack
* lib/configure.py
(checkFormatEntries): s/Plain text (paragraphs)/Plain Text, Join Lines/
since this is the term we use elsewhere and it shows up in the file
filter.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17039 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insetgraphics.C
(findTargetFormat): return pdf for vector graphics
* src/format.h
(Flags): new enum describing format flags
(flags_): new member variable for format flags
(vectorFormat): new, tell whether a format can contain vector graphics
* src/format.C: adjust to flags changes
* src/frontends/qt[34]/QPrefsDialog.C
(QPrefsDialog::QPrefsDialog): handle new vector flag
(QPrefsDialog::switch_format): ditto
(QPrefsDialog::updateFormatsButtons): ditto
(QPrefsDialog::new_format): ditto
(QPrefsDialog::modify_format): ditto
* src/frontends/qt3/ui/QPrefFileformatsModule.ui
* src/frontends/qt4/ui/QPrefFileformatsUi.ui
(vectorCB): new checkbox for vector flag
* src/lyxrc.C
(LyXRC::read): read vector flag
(LyXRC::write): write vector flag
* lib/doc/Customization.lyx: document format flags
* lib/configure.py
(checkFormatEntries): Add vector flag to some formats
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15205 a592a061-630c-0410-9148-cb99ea01b6c8
* src/tex2lyx/text.C
(void parse_noweb): new, parse a noweb code chunck
(void parse_text): handle noweb <<xxx>>= and [[xxx]] constructs
* src/tex2lyx/tex2lyx.[Ch]: new global variable noweb_mode and
command line option to set it
* src/tex2lyx/preamble.C
(parse_preamble): prepend "literate-" to the textclass name in
noweb mode
* lib/configure.py
(checkConverterEntries): fix literate -> lyx converter
(checkConverterEntries): fix typo in latex -> sxw converter
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14635 a592a061-630c-0410-9148-cb99ea01b6c8
* src/graph.C
(Graph::getReachable): Only add a child format to only viewable
formats if the child or parent has a viewer. Previously a child
format was also added when there was no viewer at all.
* lib/configure.py
(checkFormatEntries): add text2, text3 and text4 formats
(checkConverterEntries): add ps2ascii , pstotext and catdvi converters
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14528 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/os.[Ch]
(python): new function, return the python command
* lib/lyx2lyx/lyx_1_5.py
(revert_font_settings): replace tabs with spaces
The rest is simply s/python/python -tt/ and
s/"python"/lyx::support::os::python()/ where appropriate.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14270 a592a061-630c-0410-9148-cb99ea01b6c8
use $$o flag where appropriate (still some cases pending).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13939 a592a061-630c-0410-9148-cb99ea01b6c8
"Don't view/edit this format", and 'auto' means "Use the default viewer/editor".
* src/format.C
(fixCommand): Change semantics: "none" is equal to "", and "auto"
is removed if canAutoOpenFile returns false.
* src/frontends/xforms/FormPreferences.C
(FormPreferences::SpellOptions::apply): "none" -> ""
* src/lyxrc.C
(LyXRC::read): "none" -> ""
* lib/doc/Customization.lyx: Document the autoopen feature
* lib/configure.py
(checkProg): add optional not_found argument, defaulting to 'none'
(checkViewer): new, equivalent to checkProg with not_found = 'auto'
(checkFormatEntries): call checkViewer instead of checkProg for
viewers and editors
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13929 a592a061-630c-0410-9148-cb99ea01b6c8
* lib/configure.py
(checkLatex): Add DraftDVI converter on windows if dv2dt and dt2dv
are available
(checkFormatEntries): Add DraftDVI entry on windows if dv2dt and
dt2dv are available
* lib/Makefile.am: add clean_dvi.py
* development/Win32/packaging/build_lyxwin.sh: remove clean_dvi.py
stuff
* development/Win32/packaging/package_lyxwin.sh: remove configure
mangling for clean_dvi.py
* development/Win32/packaging/clean_dvi.py: move to lib/scripts
* development/Win32/packaging/README: remove clean_dvi.py stuff
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13924 a592a061-630c-0410-9148-cb99ea01b6c8
(document_): new flag, telling whether this is a document format and
we want to show this format in the export and view menus
(documentFormat): accessor for document_
* src/format.h: Add some documentation
* src/frontends/qt3/QPrefsDialog.C
(QPrefsDialog::QPrefsDialog): handle new documentCB checkbox
(QPrefsDialog::switch_format): ditto
(QPrefsDialog::updateFormatsButtons): ditto
(QPrefsDialog::new_format): ditto
(QPrefsDialog::modify_format): ditto
* src/frontends/qt3/ui/QPrefFileformatsModule.ui: Add documentCB checkbox
* src/frontends/qt4/QPrefsDialog.C
(QPrefsDialog::QPrefsDialog): handle new documentCB checkbox
(QPrefsDialog::switch_format): ditto
(QPrefsDialog::updateFormatsButtons): ditto
(QPrefsDialog::new_format): ditto
(QPrefsDialog::modify_format): ditto
* src/frontends/qt4/ui/QPrefFileformatsUi.ui: Add documentCB checkbox
* src/frontends/xforms/FormPreferences.C
(FormPreferences::Formats::build): handle new check_document checkbox
(FormPreferences::Formats::input): ditto
(FormPreferences::Formats::Add): ditto
(FormPreferences::Formats::Browser): ditto
* src/frontends/xforms/forms/form_preferences.fd: Add check_document
checkbox
* src/lyxrc.C
(LyXRC::read): Remove compatibility code for 1.3 \format entries.
Read the new format flags (but don't require them for 1.4
compatibility)
(LyXRC::write): Write the new format flags
* src/MenuBackend.C
(expandFormats): Remove the hardcoded exception for image formats
and use Format::isDocument() instead
* lib/doc/Customization.lyx: Document auto viever/editor and the
"document format" flag
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13887 a592a061-630c-0410-9148-cb99ea01b6c8
* configure.py: fix setting of \cygwin_path_fix_needed; remove
extra \r at end of line for cygwin.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13861 a592a061-630c-0410-9148-cb99ea01b6c8
* src/lyx_main.C (init): call Formats::setAutoOpen.
* src/lyxrc.C (read): do not reset editor/viewer values of "none".
* src/format.C (fixCommand): helper function: tweak command depending
of the availability of OS viewer/editor.
(setAutoOpen): run fixCommand over all the formats.
* src/support/Makefile.am: under win32, link against shlwapi.dll.
* src/support/os_*.C (canAutoOpenFile, autoOpenFile): new
functions, used to let the OS handle viewers and editors it knows about.
* configure.ac: improve check for shlwapi.
* lib/configure.py: remove check for native windows viewers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13855 a592a061-630c-0410-9148-cb99ea01b6c8