mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-07 02:28:35 +00:00
#12523 check for existence of usable Python interpreter
- present appropriate alert message in case of missing Python - add the option to quit LyX immediately - recheck for Python interpreter on reconfigure if it was missing
This commit is contained in:
parent
83c72a3ece
commit
bbc2270972
26
src/LyX.cpp
26
src/LyX.cpp
@ -581,10 +581,11 @@ void LyX::execCommands()
|
||||
{
|
||||
// The advantage of doing this here is that the event loop
|
||||
// is already started. So any need for interaction will be
|
||||
// aknowledged.
|
||||
// acknowledged.
|
||||
|
||||
// if reconfiguration is needed.
|
||||
if (LayoutFileList::get().empty()) {
|
||||
const bool noLayouts = LayoutFileList::get().empty();
|
||||
if (noLayouts && os::hasPython()) {
|
||||
switch (Alert::prompt(
|
||||
_("No textclass is found"),
|
||||
_("LyX will only have minimal functionality because no textclasses "
|
||||
@ -593,7 +594,8 @@ void LyX::execCommands()
|
||||
0, 2,
|
||||
_("&Reconfigure"),
|
||||
_("&Without LaTeX"),
|
||||
_("&Continue")))
|
||||
_("&Continue"),
|
||||
_("&Exit LyX")))
|
||||
{
|
||||
case 0:
|
||||
// regular reconfigure
|
||||
@ -604,6 +606,24 @@ void LyX::execCommands()
|
||||
lyx::dispatch(FuncRequest(LFUN_RECONFIGURE,
|
||||
" --without-latex-config"));
|
||||
break;
|
||||
case 3:
|
||||
lyx::dispatch(FuncRequest(LFUN_LYX_QUIT, ""));
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (noLayouts) {
|
||||
switch (Alert::prompt(
|
||||
_("No python is found"),
|
||||
_("LyX will only have minimal functionality because no python interpreter "
|
||||
"has been found. Consider download and install of an python interpreter."),
|
||||
0, 1,
|
||||
_("&Continue"),
|
||||
_("&Exit LyX")))
|
||||
{
|
||||
case 1:
|
||||
lyx::dispatch(FuncRequest(LFUN_LYX_QUIT, ""));
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -159,9 +159,9 @@ Package::Package(string const & command_line_arg0,
|
||||
|
||||
int Package::reconfigureUserLyXDir(string const & option) const
|
||||
{
|
||||
if (configure_command_.empty()) {
|
||||
if (configure_command_.empty() || !os::hasPython()) {
|
||||
FileName const configure_script(addName(system_support().absFileName(), "configure.py"));
|
||||
configure_command_ = os::python() + ' ' +
|
||||
configure_command_ = os::python(true) + ' ' +
|
||||
quoteName(configure_script.toFilesystemEncoding()) +
|
||||
with_version_suffix() + " --binary-dir=" +
|
||||
quoteName(FileName(binary_dir().absFileName()).toFilesystemEncoding());
|
||||
|
@ -191,6 +191,12 @@ string const python(bool reset)
|
||||
return command;
|
||||
}
|
||||
|
||||
|
||||
bool hasPython()
|
||||
{
|
||||
return !(python23_call(python()).empty());
|
||||
}
|
||||
|
||||
} // namespace os
|
||||
} // namespace support
|
||||
} // namespace lyx
|
||||
|
@ -62,6 +62,9 @@ int timeout_ms();
|
||||
/// @param reset True if the python path should be recomputed
|
||||
std::string const python(bool reset = false);
|
||||
|
||||
/// Check for availbility of the python interpreter
|
||||
bool hasPython();
|
||||
|
||||
///
|
||||
bool isFilesystemCaseSensitive();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user