[LyX/master] Improved fix for edit button
Richard Kimberly Heck
rikiheck at lyx.org
Mon Aug 31 14:54:43 UTC 2020
commit 3c25899eab265aa8d5ca6af48b669650dff34298
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date: Mon Aug 31 11:20:49 2020 -0400
Improved fix for edit button
---
src/frontends/qt/GuiInclude.cpp | 36 +++++++++++-------------------------
1 files changed, 11 insertions(+), 25 deletions(-)
diff --git a/src/frontends/qt/GuiInclude.cpp b/src/frontends/qt/GuiInclude.cpp
index f278351..5949d17 100644
--- a/src/frontends/qt/GuiInclude.cpp
+++ b/src/frontends/qt/GuiInclude.cpp
@@ -296,24 +296,9 @@ void GuiInclude::edit()
QString const fname = filenameED->text();
string const bpath = buffer().filePath();
string const absfname = support::makeAbsPath(fromqstr(fname), bpath).absFileName();
- FileName const absFileName(absfname);
- Buffer const * buffer = theBufferList().getBuffer(absFileName);
- if (!buffer) {
- // The Buffer is not already open, so try to open it.
- if (!absFileName.exists()) {
- Alert::warning(_("File does not exist"),
- bformat(_("The requested file\n\t%1$s\ndoes not exist."),
- from_utf8(absfname)));
- return;
- }
- dispatch(FuncRequest(LFUN_BUFFER_NEW, absfname));
- // Did we succeed?
- if (!theBufferList().getBuffer(absFileName)) {
- // We should already have had an error message.
- return;
- }
- }
- // Switch to the requested Buffer
+ // The button is enabled only if the document is already open.
+ // If something goes wrong and it is not, we'll get an error
+ // message from the dispatch. So no need for one here.
dispatch(FuncRequest(LFUN_BUFFER_SWITCH, absfname));
}
@@ -321,8 +306,7 @@ void GuiInclude::edit()
bool GuiInclude::isValid()
{
QString fname = filenameED->text();
- bool fempty = fname.isEmpty();
- if (fempty || !validate_listings_params().empty()) {
+ if (fname.isEmpty() || !validate_listings_params().empty()) {
editPB->setEnabled(false);
return false;
}
@@ -335,15 +319,17 @@ bool GuiInclude::isValid()
return true;
}
// Do we have a LyX filename?
- if (!support::isLyXFileName(fromqstr(fname))) {
+ if (!isLyXFileName(fromqstr(fname))) {
okbutton->setText("OK");
return false;
}
string const bpath = buffer().filePath();
- QString absfname = makeAbsPath(fname, toqstr(bpath));
- bool const fexists = QFile::exists(absfname);
- okbutton->setText(fexists ? "OK" : "Create");
- editPB->setEnabled(fexists);
+ // Path might be relative to current Buffer, so make absolute
+ FileName const absfname = support::makeAbsPath(fromqstr(fname), bpath);
+ // Set OK button text according to whether file already exists
+ okbutton->setText(absfname.exists() ? "OK" : "Create");
+ // enable edit button iff file is open in some Buffer
+ editPB->setEnabled(theBufferList().getBuffer(absfname));
return true;
}
More information about the lyx-cvs
mailing list