mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-13 17:20:55 +00:00
Change the semantics of 'none' and 'auto' viewers/editors: 'none' means now
"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): regognize "" as "none" * src/lyxrc.C (LyXRC::getDescription): "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/branches/BRANCH_1_4_X@13933 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
6f5a5fe88b
commit
8f02fb39d0
106
lib/configure.py
106
lib/configure.py
@ -111,7 +111,7 @@ def checkCygwinPath(srcdir):
|
|||||||
|
|
||||||
|
|
||||||
## Searching some useful programs
|
## Searching some useful programs
|
||||||
def checkProg(description, progs, rc_entry = [], path = [] ):
|
def checkProg(description, progs, rc_entry = [], path = [], not_found = ''):
|
||||||
'''
|
'''
|
||||||
This function will search a program in $PATH plus given path
|
This function will search a program in $PATH plus given path
|
||||||
If found, return directory and program name (not the options).
|
If found, return directory and program name (not the options).
|
||||||
@ -127,16 +127,19 @@ def checkProg(description, progs, rc_entry = [], path = [] ):
|
|||||||
rc_entry: entry to outfile, can be
|
rc_entry: entry to outfile, can be
|
||||||
1. emtpy: no rc entry will be added
|
1. emtpy: no rc entry will be added
|
||||||
2. one pattern: %% will be replaced by the first found program,
|
2. one pattern: %% will be replaced by the first found program,
|
||||||
or 'none' is no program is found.
|
or '' if no program is found.
|
||||||
3. several patterns for each prog and 'none'. This is used
|
3. several patterns for each prog and not_found. This is used
|
||||||
when different programs have different usages. If you do not
|
when different programs have different usages. If you do not
|
||||||
want 'none' entry to be added to the RC file, you can specify
|
want not_found entry to be added to the RC file, you can specify
|
||||||
an entry for each prog and use '' for the 'none' entry.
|
an entry for each prog and use '' for the not_found entry.
|
||||||
|
|
||||||
|
not_found: the value that should be used instead of '' if no program
|
||||||
|
was found
|
||||||
|
|
||||||
'''
|
'''
|
||||||
# one rc entry for each progs plus none entry
|
# one rc entry for each progs plus not_found entry
|
||||||
if len(rc_entry) > 1 and len(rc_entry) != len(progs) + 1:
|
if len(rc_entry) > 1 and len(rc_entry) != len(progs) + 1:
|
||||||
print "rc entry should have one item or item for each prog and none."
|
print "rc entry should have one item or item for each prog and not_found."
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
print 'checking for ' + description + '...'
|
print 'checking for ' + description + '...'
|
||||||
## print '(' + ','.join(progs) + ')',
|
## print '(' + ','.join(progs) + ')',
|
||||||
@ -161,26 +164,30 @@ def checkProg(description, progs, rc_entry = [], path = [] ):
|
|||||||
print ' no'
|
print ' no'
|
||||||
# write rc entries for 'not found'
|
# write rc entries for 'not found'
|
||||||
if len(rc_entry) > 0: # the last one.
|
if len(rc_entry) > 0: # the last one.
|
||||||
addToRC(rc_entry[-1].replace('%%', 'none'))
|
addToRC(rc_entry[-1].replace('%%', not_found))
|
||||||
return ['', 'none']
|
return ['', not_found]
|
||||||
|
|
||||||
|
|
||||||
|
def checkViewer(description, progs, rc_entry = [], path = []):
|
||||||
|
''' The same as checkProg, but for viewers and editors '''
|
||||||
|
return checkProg(description, progs, rc_entry, path, not_found = 'auto')
|
||||||
|
|
||||||
|
|
||||||
def checkLatex():
|
def checkLatex():
|
||||||
''' Check latex, return lyx_check_config '''
|
''' Check latex, return lyx_check_config '''
|
||||||
# Find programs! Returned path is not used now
|
# Find programs! Returned path is not used now
|
||||||
if os.name == 'nt' or sys.platform == 'cygwin':
|
if ((os.name == 'nt' or sys.platform == 'cygwin') and
|
||||||
|
checkProg('DVI to DTL converter', ['dv2dt']) != ['', ''] and
|
||||||
|
checkProg('DTL to DVI converter', ['dt2dv']) != ['', '']):
|
||||||
# Windows only: DraftDVI
|
# Windows only: DraftDVI
|
||||||
if checkProg('DVI to DTL converter', ['dv2dt']) != ['', 'none'] and checkProg('DTL to DVI converter', ['dt2dv']) != ['', 'none']:
|
converter_entry = r'''\converter latex dvi2 "%%" "latex"
|
||||||
converter_entry = r'''\converter latex dvi2 "%%" "latex"
|
|
||||||
\converter dvi2 dvi "python $$s/scripts/clean_dvi.py $$i $$o" ""'''
|
\converter dvi2 dvi "python $$s/scripts/clean_dvi.py $$i $$o" ""'''
|
||||||
else:
|
|
||||||
converter_entry = r'\converter latex dvi "%%" "latex"'
|
|
||||||
else:
|
else:
|
||||||
converter_entry = r'\converter latex dvi "%%" "latex"'
|
converter_entry = r'\converter latex dvi "%%" "latex"'
|
||||||
path, LATEX = checkProg('a Latex2e program', ['pplatex $$i', 'latex $$i', 'latex2e $$i'],
|
path, LATEX = checkProg('a Latex2e program', ['pplatex $$i', 'latex $$i', 'latex2e $$i'],
|
||||||
rc_entry = [converter_entry])
|
rc_entry = [converter_entry])
|
||||||
# no latex
|
# no latex
|
||||||
if LATEX != 'none':
|
if LATEX != '':
|
||||||
# Check if latex is usable
|
# Check if latex is usable
|
||||||
writeToFile('chklatex.ltx', '''
|
writeToFile('chklatex.ltx', '''
|
||||||
\\nonstopmode\\makeatletter
|
\\nonstopmode\\makeatletter
|
||||||
@ -202,20 +209,20 @@ def checkLatex():
|
|||||||
|
|
||||||
def checkFormatEntries():
|
def checkFormatEntries():
|
||||||
''' Check all formats (\Format entries) '''
|
''' Check all formats (\Format entries) '''
|
||||||
checkProg('a Tgif viewer and editor', ['tgif'],
|
checkViewer('a Tgif viewer and editor', ['tgif'],
|
||||||
rc_entry = [ r'\Format tgif obj Tgif "" "%%" "%%"'])
|
rc_entry = [r'\Format tgif obj Tgif "" "%%" "%%"'])
|
||||||
#
|
#
|
||||||
checkProg('a FIG viewer and editor', ['xfig'],
|
checkViewer('a FIG viewer and editor', ['xfig'],
|
||||||
rc_entry = [ r'\Format fig fig FIG "" "%%" "%%"'] )
|
rc_entry = [r'\Format fig fig FIG "" "%%" "%%"'])
|
||||||
#
|
#
|
||||||
checkProg('a Grace viewer and editor', ['xmgrace'],
|
checkViewer('a Grace viewer and editor', ['xmgrace'],
|
||||||
rc_entry = [ r'\Format agr agr Grace "" "%%" "%%"'] )
|
rc_entry = [r'\Format agr agr Grace "" "%%" "%%"'])
|
||||||
#
|
#
|
||||||
checkProg('a FEN viewer and editor', ['xboard -lpf $$i -mode EditPosition'],
|
checkViewer('a FEN viewer and editor', ['xboard -lpf $$i -mode EditPosition'],
|
||||||
rc_entry = [ r'\Format fen fen FEN "" "%%" "%%"' ])
|
rc_entry = [r'\Format fen fen FEN "" "%%" "%%"'])
|
||||||
#
|
#
|
||||||
path, iv = checkProg('a raster image viewer', ['xv', 'kview', 'gimp'])
|
path, iv = checkViewer('a raster image viewer', ['xv', 'kview', 'gimp'])
|
||||||
path, ie = checkProg('a raster image editor', ['gimp'])
|
path, ie = checkViewer('a raster image editor', ['gimp'])
|
||||||
addToRC(r'''\Format bmp bmp BMP "" "%s" "%s"
|
addToRC(r'''\Format bmp bmp BMP "" "%s" "%s"
|
||||||
\Format gif gif GIF "" "%s" "%s"
|
\Format gif gif GIF "" "%s" "%s"
|
||||||
\Format jpg jpg JPEG "" "%s" "%s"
|
\Format jpg jpg JPEG "" "%s" "%s"
|
||||||
@ -228,9 +235,9 @@ def checkFormatEntries():
|
|||||||
\Format xpm xpm XPM "" "%s" "%s"''' % \
|
\Format xpm xpm XPM "" "%s" "%s"''' % \
|
||||||
(iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie) )
|
(iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie, iv, ie) )
|
||||||
#
|
#
|
||||||
checkProg('a text editor', ['xemacs', 'gvim', 'kedit', 'kwrite', 'kate', \
|
checkViewer('a text editor', ['xemacs', 'gvim', 'kedit', 'kwrite', 'kate', \
|
||||||
'nedit', 'gedit', 'notepad'],
|
'nedit', 'gedit', 'notepad'],
|
||||||
rc_entry = [ r'''\Format asciichess asc "Plain text (chess output)" "" "" "%%"
|
rc_entry = [r'''\Format asciichess asc "Plain text (chess output)" "" "" "%%"
|
||||||
\Format asciiimage asc "Plain text (image)" "" "" "%%"
|
\Format asciiimage asc "Plain text (image)" "" "" "%%"
|
||||||
\Format asciixfig asc "Plain text (Xfig output)" "" "" "%%"
|
\Format asciixfig asc "Plain text (Xfig output)" "" "" "%%"
|
||||||
\Format dateout tmp "date (output)" "" "" "%%"
|
\Format dateout tmp "date (output)" "" "" "%%"
|
||||||
@ -245,25 +252,26 @@ def checkFormatEntries():
|
|||||||
#
|
#
|
||||||
#checkProg('a Postscript interpreter', ['gs'],
|
#checkProg('a Postscript interpreter', ['gs'],
|
||||||
# rc_entry = [ r'\ps_command "%%"' ])
|
# rc_entry = [ r'\ps_command "%%"' ])
|
||||||
checkProg('a Postscript previewer', ['gv', 'ghostview -swap', 'kghostview'],
|
checkViewer('a Postscript previewer', ['gv', 'ghostview -swap', 'kghostview'],
|
||||||
rc_entry = [ r'''\Format eps eps EPS "" "%%" ""
|
rc_entry = [r'''\Format eps eps EPS "" "%%" ""
|
||||||
\Format ps ps Postscript t "%%" ""''' ])
|
\Format ps ps Postscript t "%%" ""'''])
|
||||||
#
|
#
|
||||||
checkProg('a PDF previewer', ['acrobat', 'acroread', 'gv', 'ghostview', \
|
checkViewer('a PDF previewer', ['acrobat', 'acroread', 'gv', 'ghostview', \
|
||||||
'xpdf', 'kpdf', 'kghostview'],
|
'xpdf', 'kpdf', 'kghostview'],
|
||||||
rc_entry = [ r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" ""
|
rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" ""
|
||||||
\Format pdf2 pdf "PDF (pdflatex)" F "%%" ""
|
\Format pdf2 pdf "PDF (pdflatex)" F "%%" ""
|
||||||
\Format pdf3 pdf "PDF (dvipdfm)" m "%%" ""''' ])
|
\Format pdf3 pdf "PDF (dvipdfm)" m "%%" ""'''])
|
||||||
#
|
#
|
||||||
checkProg('a DVI previewer', ['xdvi', 'kdvi'],
|
checkViewer('a DVI previewer', ['xdvi', 'kdvi'],
|
||||||
rc_entry = [ r'\Format dvi dvi DVI D "%%" ""' ])
|
rc_entry = [r'\Format dvi dvi DVI D "%%" ""'])
|
||||||
if os.name == 'nt' or sys.platform == 'cygwin':
|
if ((os.name == 'nt' or sys.platform == 'cygwin') and
|
||||||
|
checkProg('DVI to DTL converter', ['dv2dt']) != ['', ''] and
|
||||||
|
checkProg('DTL to DVI converter', ['dt2dv']) != ['', '']):
|
||||||
# Windows only: DraftDVI
|
# Windows only: DraftDVI
|
||||||
if checkProg('DVI to DTL converter', ['dv2dt']) != ['', 'none'] and checkProg('DTL to DVI converter', ['dt2dv']) != ['', 'none']:
|
addToRC(r'\Format dvi2 dvi DraftDVI "" ""')
|
||||||
addToRC(r'\Format dvi2 dvi DraftDVI "" "" ""')
|
|
||||||
#
|
#
|
||||||
checkProg('a HTML previewer', ['mozilla file://$$p$$i', 'netscape'],
|
checkViewer('a HTML previewer', ['mozilla file://$$p$$i', 'netscape'],
|
||||||
rc_entry = [ r'\Format html html HTML H "%%" ""' ])
|
rc_entry = [r'\Format html html HTML H "%%" ""'])
|
||||||
#
|
#
|
||||||
# entried that do not need checkProg
|
# entried that do not need checkProg
|
||||||
addToRC(r'''\Format date "" "date command" "" "" ""
|
addToRC(r'''\Format date "" "date command" "" "" ""
|
||||||
@ -394,11 +402,11 @@ def checkLinuxDoc():
|
|||||||
\converter linuxdoc latex "sgml2latex $$i" ""
|
\converter linuxdoc latex "sgml2latex $$i" ""
|
||||||
\converter linuxdoc dvi "sgml2latex -o dvi $$i" ""
|
\converter linuxdoc dvi "sgml2latex -o dvi $$i" ""
|
||||||
\converter linuxdoc html "sgml2html $$i" ""''',
|
\converter linuxdoc html "sgml2html $$i" ""''',
|
||||||
r'''\converter linuxdoc lyx "none" ""
|
r'''\converter linuxdoc lyx "" ""
|
||||||
\converter linuxdoc latex "none" ""
|
\converter linuxdoc latex "" ""
|
||||||
\converter linuxdoc dvi "none" ""
|
\converter linuxdoc dvi "" ""
|
||||||
\converter linuxdoc html "none" ""''' ])
|
\converter linuxdoc html "" ""''' ])
|
||||||
if LINUXDOC != 'none':
|
if LINUXDOC != '':
|
||||||
return ('yes', 'true', '\\def\\haslinuxdoc{yes}')
|
return ('yes', 'true', '\\def\\haslinuxdoc{yes}')
|
||||||
else:
|
else:
|
||||||
return ('no', 'false', '')
|
return ('no', 'false', '')
|
||||||
@ -412,10 +420,10 @@ def checkDocBook():
|
|||||||
\converter docbook html "sgmltools -b html $$i" ""''',
|
\converter docbook html "sgmltools -b html $$i" ""''',
|
||||||
r'''\converter docbook dvi "db2dvi $$i" ""
|
r'''\converter docbook dvi "db2dvi $$i" ""
|
||||||
\converter docbook html "db2html $$i" ""''',
|
\converter docbook html "db2html $$i" ""''',
|
||||||
r'''\converter docbook dvi "none" ""
|
r'''\converter docbook dvi "" ""
|
||||||
\converter docbook html "none" ""'''])
|
\converter docbook html "" ""'''])
|
||||||
#
|
#
|
||||||
if DOCBOOK != 'none':
|
if DOCBOOK != '':
|
||||||
return ('yes', 'true', '\\def\\hasdocbook{yes}')
|
return ('yes', 'true', '\\def\\hasdocbook{yes}')
|
||||||
else:
|
else:
|
||||||
return ('no', 'false', '')
|
return ('no', 'false', '')
|
||||||
@ -427,7 +435,7 @@ def checkOtherEntries():
|
|||||||
rc_entry = [
|
rc_entry = [
|
||||||
r'\ascii_roff_command "groff -t -Tlatin1 $$FName"',
|
r'\ascii_roff_command "groff -t -Tlatin1 $$FName"',
|
||||||
r'\ascii_roff_command "tbl $$FName | nroff"',
|
r'\ascii_roff_command "tbl $$FName | nroff"',
|
||||||
r'\ascii_roff_command "none"' ])
|
r'\ascii_roff_command ""' ])
|
||||||
checkProg('ChkTeX', ['chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38'],
|
checkProg('ChkTeX', ['chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38'],
|
||||||
rc_entry = [ r'\chktex_command "%%"' ])
|
rc_entry = [ r'\chktex_command "%%"' ])
|
||||||
checkProg('a spellchecker', ['ispell'],
|
checkProg('a spellchecker', ['ispell'],
|
||||||
|
@ -1793,6 +1793,25 @@ odify
|
|||||||
.
|
.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
If the operating system has a default viewer associated to a format it is
|
||||||
|
used instead of the one you can define via the
|
||||||
|
\family sans
|
||||||
|
\bar under
|
||||||
|
T
|
||||||
|
\bar default
|
||||||
|
ools\SpecialChar \menuseparator
|
||||||
|
|
||||||
|
\bar under
|
||||||
|
P
|
||||||
|
\bar default
|
||||||
|
references:Conversion
|
||||||
|
\family default
|
||||||
|
dialog.
|
||||||
|
This does currently only work in the Windows® port of LyX, but it is planned
|
||||||
|
to implement this feature on all other ports that can support it, too.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Editors are like viewers: Each Format can have an Editor associated to it,
|
Editors are like viewers: Each Format can have an Editor associated to it,
|
||||||
and they can be altered via the
|
and they can be altered via the
|
||||||
|
@ -165,15 +165,15 @@ string fixCommand(string const & cmd, string const & ext,
|
|||||||
os::auto_open_mode mode)
|
os::auto_open_mode mode)
|
||||||
{
|
{
|
||||||
// configure.py says we do not want a viewer/editor
|
// configure.py says we do not want a viewer/editor
|
||||||
if (cmd.empty())
|
if (cmd.empty() || cmd == "none")
|
||||||
return cmd;
|
return string();
|
||||||
|
|
||||||
// Does the OS manage this format?
|
// Does the OS manage this format?
|
||||||
if (os::canAutoOpenFile(ext, mode))
|
if (os::canAutoOpenFile(ext, mode))
|
||||||
return "auto";
|
return "auto";
|
||||||
|
|
||||||
// if configure.py found nothing, clear the command
|
// if configure.py found nothing, clear the command
|
||||||
if (token(cmd, ' ', 0) == "none")
|
if (token(cmd, ' ', 0) == "auto")
|
||||||
return string();
|
return string();
|
||||||
|
|
||||||
// use the command found by configure.py
|
// use the command found by configure.py
|
||||||
|
@ -2926,7 +2926,7 @@ void FormPreferences::SpellOptions::apply(LyXRC & rc)
|
|||||||
rc.isp_command = choice;
|
rc.isp_command = choice;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// If spellchecker == "none", all other input set to off.
|
// If spellchecker == "", all other input set to off.
|
||||||
if (fl_get_choice(dialog_->choice_spell_command) == 1) {
|
if (fl_get_choice(dialog_->choice_spell_command) == 1) {
|
||||||
rc.isp_use_alt_lang = false;
|
rc.isp_use_alt_lang = false;
|
||||||
rc.isp_alt_lang.erase();
|
rc.isp_alt_lang.erase();
|
||||||
@ -3040,7 +3040,7 @@ bool FormPreferences::SpellOptions::input(FL_OBJECT const * const ob)
|
|||||||
// otherwise the function is called by an xforms CB via input().
|
// otherwise the function is called by an xforms CB via input().
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// If spellchecker == "none", disable all input.
|
// If spellchecker == "", disable all input.
|
||||||
if (!ob || ob == dialog_->choice_spell_command) {
|
if (!ob || ob == dialog_->choice_spell_command) {
|
||||||
if (fl_get_choice(dialog_->choice_spell_command) == 1) {
|
if (fl_get_choice(dialog_->choice_spell_command) == 1) {
|
||||||
fl_deactivate_object(dialog_->check_alt_lang);
|
fl_deactivate_object(dialog_->check_alt_lang);
|
||||||
@ -3091,7 +3091,7 @@ void FormPreferences::SpellOptions::update(LyXRC const & rc)
|
|||||||
{
|
{
|
||||||
int choice = 1;
|
int choice = 1;
|
||||||
#if 0
|
#if 0
|
||||||
if (rc.isp_command == "none")
|
if (rc.isp_command == "" || rc.isp_command == "none")
|
||||||
choice = 1;
|
choice = 1;
|
||||||
else if (rc.isp_command == "ispell")
|
else if (rc.isp_command == "ispell")
|
||||||
choice = 2;
|
choice = 2;
|
||||||
|
@ -2072,7 +2072,7 @@ string const LyXRC::getDescription(LyXRCTags tag)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case RC_ASCIIROFF_COMMAND:
|
case RC_ASCIIROFF_COMMAND:
|
||||||
str = _("Use to define an external program to render tables in plain text output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"none\" is specified, an internal routine is used.");
|
str = _("Use to define an external program to render tables in plain text output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"\" is specified, an internal routine is used.");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RC_ASCII_LINELEN:
|
case RC_ASCII_LINELEN:
|
||||||
|
Loading…
Reference in New Issue
Block a user