mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-18 04:07:23 +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
|
// The advantage of doing this here is that the event loop
|
||||||
// is already started. So any need for interaction will be
|
// is already started. So any need for interaction will be
|
||||||
// aknowledged.
|
// acknowledged.
|
||||||
|
|
||||||
// if reconfiguration is needed.
|
// if reconfiguration is needed.
|
||||||
if (LayoutFileList::get().empty()) {
|
const bool noLayouts = LayoutFileList::get().empty();
|
||||||
|
if (noLayouts && os::hasPython()) {
|
||||||
switch (Alert::prompt(
|
switch (Alert::prompt(
|
||||||
_("No textclass is found"),
|
_("No textclass is found"),
|
||||||
_("LyX will only have minimal functionality because no textclasses "
|
_("LyX will only have minimal functionality because no textclasses "
|
||||||
@ -593,7 +594,8 @@ void LyX::execCommands()
|
|||||||
0, 2,
|
0, 2,
|
||||||
_("&Reconfigure"),
|
_("&Reconfigure"),
|
||||||
_("&Without LaTeX"),
|
_("&Without LaTeX"),
|
||||||
_("&Continue")))
|
_("&Continue"),
|
||||||
|
_("&Exit LyX")))
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
// regular reconfigure
|
// regular reconfigure
|
||||||
@ -604,6 +606,24 @@ void LyX::execCommands()
|
|||||||
lyx::dispatch(FuncRequest(LFUN_RECONFIGURE,
|
lyx::dispatch(FuncRequest(LFUN_RECONFIGURE,
|
||||||
" --without-latex-config"));
|
" --without-latex-config"));
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -159,9 +159,9 @@ Package::Package(string const & command_line_arg0,
|
|||||||
|
|
||||||
int Package::reconfigureUserLyXDir(string const & option) const
|
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"));
|
FileName const configure_script(addName(system_support().absFileName(), "configure.py"));
|
||||||
configure_command_ = os::python() + ' ' +
|
configure_command_ = os::python(true) + ' ' +
|
||||||
quoteName(configure_script.toFilesystemEncoding()) +
|
quoteName(configure_script.toFilesystemEncoding()) +
|
||||||
with_version_suffix() + " --binary-dir=" +
|
with_version_suffix() + " --binary-dir=" +
|
||||||
quoteName(FileName(binary_dir().absFileName()).toFilesystemEncoding());
|
quoteName(FileName(binary_dir().absFileName()).toFilesystemEncoding());
|
||||||
|
@ -191,6 +191,12 @@ string const python(bool reset)
|
|||||||
return command;
|
return command;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool hasPython()
|
||||||
|
{
|
||||||
|
return !(python23_call(python()).empty());
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace os
|
} // namespace os
|
||||||
} // namespace support
|
} // namespace support
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
@ -62,6 +62,9 @@ int timeout_ms();
|
|||||||
/// @param reset True if the python path should be recomputed
|
/// @param reset True if the python path should be recomputed
|
||||||
std::string const python(bool reset = false);
|
std::string const python(bool reset = false);
|
||||||
|
|
||||||
|
/// Check for availbility of the python interpreter
|
||||||
|
bool hasPython();
|
||||||
|
|
||||||
///
|
///
|
||||||
bool isFilesystemCaseSensitive();
|
bool isFilesystemCaseSensitive();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user