]> git.lyx.org Git - lyx.git/blobdiff - development/Win32/pdfview/pdfview.nsi
document flag for PDF
[lyx.git] / development / Win32 / pdfview / pdfview.nsi
index 5be4897a92cf1037e62172ea76ad588cc22d8aee..2d86bd5bd11081f80ac2d76058ddfb8dd4d10746 100644 (file)
@@ -21,6 +21,7 @@ http://magic.aladdin.cs.cmu.edu/2005/07/15/pdfopen-and-pdfclose/
 ;--------------------------------\r
 ;Settings\r
 \r
+Caption "PDF Viewer"\r
 OutFile pdfview.exe\r
 Icon "..\packaging\icons\lyx_32x32.ico"\r
 SilentInstall silent\r
@@ -35,7 +36,9 @@ SilentInstall silent
 ;Variables\r
 \r
 Var Dummy\r
-Var FileName\r
+Var OriginalFile\r
+Var OriginalFileName\r
+Var PDFFile\r
 Var Viewer\r
 Var OriginalTimeHigh\r
 Var OriginalTimeLow\r
@@ -55,7 +58,7 @@ Var CurrentTimeLow
 !macro HideConsole COMMAND_LINE\r
 \r
   Push `${COMMAND_LINE}`\r
-  CallInstDLL "$EXEDIR\nsExec.dll" Exec\r
+  CallInstDLL "$EXEDIR\Console.dll" Exec\r
   Pop $Dummy\r
   \r
   ${if} $Dummy == "error"\r
@@ -69,79 +72,92 @@ Var CurrentTimeLow
 \r
 Section "View PDF file"\r
 \r
+  InitPluginsDir ;Temporary directory for PDF file\r
+\r
   ;Command line parameters\r
   Call GetParameters\r
-  Pop $FileName\r
+  Pop $OriginalFile\r
 \r
   ;Trim quotes\r
-  StrCpy $Dummy $FileName 1\r
+  StrCpy $Dummy $OriginalFile 1\r
   ${if} $Dummy == '"'\r
-    StrCpy $FileName $FileName "" 1\r
+    StrCpy $OriginalFile $OriginalFile "" 1\r
   ${endif}\r
-  StrCpy $Dummy $FileName 1 -1\r
+  StrCpy $Dummy $OriginalFile 1 -1\r
   ${if} $Dummy == '"'\r
-    StrCpy $FileName $FileName -1\r
+    StrCpy $OriginalFile $OriginalFile -1\r
   ${endif}\r
 \r
-  GetFullPathName $FileName $FileName\r
+  GetFullPathName $OriginalFile $OriginalFile\r
+  Push $OriginalFile\r
+  Call GetFileName\r
+  Pop $OriginalFileName\r
+\r
+  SetOutPath $TEMP ;The LyX tmpbuf should not be locked\r
+\r
+  StrCpy $PDFFile $PLUGINSDIR\$OriginalFileName\r
 \r
   ;Check whether the file will be opened with Adobe Reader or Adobe Acrobat\r
-  Push $FileName\r
+  Push $OriginalFile\r
   !insertmacro SystemCall "shell32::FindExecutable(t s, t '', t .s)"\r
   Call GetFileName\r
   Pop $Viewer\r
-  \r
+\r
+  ${if} $Viewer == ""\r
+    MessageBox MB_OK|MB_ICONEXCLAMATION "No PDF viewer is installed. \\r
+        Please install a PDF viewer such as Adobe Reader."\r
+    Quit        \r
+  ${endif}\r
+\r
   ${if} $Viewer == "AcroRd32.exe"\r
     ${orif} $Viewer == "Acrobat.exe"\r
     \r
     ;Using Adobe viewer\r
     \r
     ;Close existing view\r
-    ${if} ${fileexists} $FileName~\r
-      !insertmacro HideConsole '"$EXEDIR\pdfclose.exe" --file "$FileName~"'\r
+    ${if} ${fileexists} $PDFFile\r
+      !insertmacro HideConsole '"$EXEDIR\pdfclose.exe" --file "$PDFFile"'\r
     ${endif}\r
     \r
     ;Copy PDF to temporary file to allow LyX to overwrite the original\r
-    CopyFiles /SILENT $FileName $FileName~\r
+    CopyFiles /SILENT $OriginalFile $PDFFile\r
     \r
     ;Open a new view\r
-    !insertmacro HideConsole '"$EXEDIR\pdfopen.exe" --back --file "$FileName~"'\r
+    !insertmacro HideConsole '"$EXEDIR\pdfopen.exe" --back --file "$PDFFile"'\r
     \r
     ;Monitor for updates of the original file\r
     \r
-    GetFileTime $FileName $OriginalTimeHigh $OriginalTimeLow\r
+    GetFileTime $OriginalFile $OriginalTimeHigh $OriginalTimeLow\r
     \r
     ${do}\r
     \r
       Sleep 500\r
       \r
-      FileOpen $Dummy $FileName~ a\r
+      FileOpen $Dummy $PDFFile a\r
       \r
       ${if} $Dummy != ""\r
         ;File no longer locked, reader closed\r
         FileClose $Dummy\r
-        Delete $FileName~\r
-        Quit\r
-      ${endif}\r
-      \r
-      ${unless} ${fileexists} $FileName\r
-        ;Original no longer exists\r
-        Delete $FileName~\r
+        Delete $PDFFile\r
         Quit\r
       ${endif}\r
       \r
-      GetFileTime $FileName $CurrentTimeHigh $CurrentTimeLow\r
-      \r
-      ${if} $OriginalTimeHigh != $CurrentTimeHigh\r
-        ${orif} $OriginalTimeLow != $CurrentTimeLow\r
+      ${if} ${fileexists} $OriginalFile\r
         \r
-        ;Original has been modified, update!\r
+        GetFileTime $OriginalFile $CurrentTimeHigh $CurrentTimeLow\r
         \r
-        StrCpy $OriginalTimeHigh $CurrentTimeHigh\r
-        StrCpy $OriginalTimeLow  $CurrentTimeLow\r
-        !insertmacro HideConsole '"$EXEDIR\pdfclose.exe" --file "$FileName~"'\r
-        CopyFiles /SILENT $FileName $FileName~\r
-        !insertmacro HideConsole '"$EXEDIR\pdfopen.exe" --back --file "$FileName~"'\r
+        ${if} $OriginalTimeHigh != $CurrentTimeHigh\r
+          ${orif} $OriginalTimeLow != $CurrentTimeLow\r
+          \r
+          ;Original has been modified, update!\r
+          \r
+          StrCpy $OriginalTimeHigh $CurrentTimeHigh\r
+          StrCpy $OriginalTimeLow  $CurrentTimeLow\r
+          !insertmacro HideConsole '"$EXEDIR\pdfclose.exe" --file "$PDFFile"'\r
+          CopyFiles /SILENT $OriginalFile $PDFFile\r
+          !insertmacro HideConsole '"$EXEDIR\pdfopen.exe" --back --file "$PDFFile"'\r
+          \r
+        ${endif}\r
         \r
       ${endif}\r
     \r
@@ -151,7 +167,7 @@ Section "View PDF file"
   \r
     ;Another PDF viewer like GSView is used\r
     ;No need for special actions, just forward to ShellExecute\r
-    ExecShell open $FileName\r
+    ExecShell open $OriginalFile\r
     \r
   ${endif}\r
     \r