commit ff14d0bd007065f058951d902255496f38a6d056
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Thu Aug 27 11:52:52 2020 +0200

    Report back if citation target could not be opened
---
 lib/scripts/lyxpaperview.py     |    4 ++--
 src/frontends/qt/qt_helpers.cpp |   22 +++++++++++++++++-----
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/lib/scripts/lyxpaperview.py b/lib/scripts/lyxpaperview.py
index 3a611a6..f62c5ea 100755
--- a/lib/scripts/lyxpaperview.py
+++ b/lib/scripts/lyxpaperview.py
@@ -122,7 +122,7 @@ def main(argv):
     result = find(args, path = os.environ["HOME"])
     if result == "":
         message("no document found!")
-        return 0
+        exit(2)
     else:
         message("found document %s" % result)
 
@@ -140,7 +140,7 @@ def main(argv):
     
     subprocess.call([viewer, result])
     
-    return 0
+    exit(0)
 
 if __name__ == "__main__":
     main(sys.argv)
diff --git a/src/frontends/qt/qt_helpers.cpp b/src/frontends/qt/qt_helpers.cpp
index f064d50..20f5803 100644
--- a/src/frontends/qt/qt_helpers.cpp
+++ b/src/frontends/qt/qt_helpers.cpp
@@ -298,7 +298,8 @@ void showDirectory(FileName const & directory)
                LYXERR0("Unable to open QUrl even though dir exists!");
 }
 
-void showTarget(string const & target, string const & pdfv, string const & 
psv){
+void showTarget(string const & target, string const & pdfv, string const & psv)
+{
        LYXERR(Debug::INSETS, "Showtarget:" << target << "\n");
        if (prefixIs(target, "EXTERNAL ")) {
                if (!lyxrc.citation_search)
@@ -311,12 +312,23 @@ void showTarget(string const & target, string const & 
pdfv, string const & psv){
                        opts += " -w " + psv;
                if (!opts.empty())
                        opts += " ";
-               FuncRequest cmd = FuncRequest(LFUN_VC_COMMAND,"U . \"" +
-                                 lyxrc.citation_search_view + " " + opts + tar 
+ "\"");
-               lyx::dispatch(cmd);
+               Systemcall one;
+               string const command = lyxrc.citation_search_view + " " + opts 
+ tar;
+               int const result = one.startscript(Systemcall::Wait, command);
+               if (result == 1)
+                       // Script failed
+                       frontend::Alert::error(_("Could not open file"),
+                               _("The lyxpaperview script failed."));
+               else if (result == 2)
+                       frontend::Alert::error(_("Could not open file"),
+                               bformat(_("No file was found using the pattern 
`%1$s'."),
+                                       from_utf8(tar)));
                return;
        }
-       QDesktopServices::openUrl(QUrl(toqstr(target), QUrl::TolerantMode));
+       if (!QDesktopServices::openUrl(QUrl(toqstr(target), 
QUrl::TolerantMode)))
+               frontend::Alert::error(_("Could not open file"),
+                       bformat(_("The target `%1$s' could not be resolved."),
+                               from_utf8(target)));
 }
 } // namespace frontend
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to