mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
Address #9368
pdfview creates a temp pdf file to determine the standard pdf viewer, code simplification, reducing dll dependencies Patch by Eugene.
This commit is contained in:
parent
21bb86b8b9
commit
9cccbb3615
@ -96,7 +96,6 @@ Updating dependencies
|
||||
|
||||
- pdfview.exe
|
||||
this is a NSIS script, which calls users standard pdf viewer to display pdf files you compile with
|
||||
LaTeX using LyX, its source is available in %%lyxgit%%\development\Win32\pdfview,
|
||||
it uses System.dll and Console.dll
|
||||
LaTeX using LyX, its source is available in %%lyxgit%%\development\Win32\pdfview
|
||||
|
||||
Note: if you update any dependencies, please add a note to ChangeLog.txt
|
@ -129,8 +129,6 @@ Lists of files to include in the installer
|
||||
!macro FileListPDFViewBin COMMAND DIRECTORY
|
||||
|
||||
${FILE}pdfview.exe"
|
||||
${FILE}System.dll"
|
||||
${FILE}Console.dll"
|
||||
|
||||
!macroend
|
||||
|
||||
|
@ -10,9 +10,7 @@ but works around the file locking problems of Adobe Reader and Acrobat.
|
||||
|
||||
*/
|
||||
|
||||
# FIXME
|
||||
#Unicode true
|
||||
#doesn't work with the Uniode system.dll of NSIS 3.0.2
|
||||
Unicode true
|
||||
|
||||
!include LogicLib.nsh
|
||||
!include FileFunc.nsh
|
||||
@ -34,11 +32,9 @@ RequestExecutionLevel user
|
||||
# Variables
|
||||
|
||||
Var Character
|
||||
Var RunAppReturn
|
||||
|
||||
Var OriginalFile
|
||||
Var OriginalFileName
|
||||
Var OriginalDir
|
||||
|
||||
Var PDFFile
|
||||
Var ViewerFileName
|
||||
@ -46,32 +42,6 @@ Var Viewer
|
||||
Var ViewerHandle
|
||||
Var ViewerVersion
|
||||
|
||||
#--------------------------------
|
||||
# Macros
|
||||
|
||||
!macro SystemCall STACK
|
||||
|
||||
# Call a Windows API function
|
||||
|
||||
Push `${STACK}`
|
||||
CallInstDLL "$EXEDIR\System.dll" Call
|
||||
|
||||
!macroend
|
||||
|
||||
!macro HideConsole COMMAND_LINE
|
||||
|
||||
# Run an application and hide console output
|
||||
|
||||
Push `${COMMAND_LINE}`
|
||||
CallInstDLL "$EXEDIR\Console.dll" Exec
|
||||
Pop $RunAppReturn
|
||||
|
||||
${If} $RunAppReturn == "error"
|
||||
MessageBox MB_OK|MB_ICONSTOP "Error opening PDF file $PDFFile."
|
||||
${EndIf}
|
||||
|
||||
!macroend
|
||||
|
||||
#--------------------------------
|
||||
# PDF viewing
|
||||
|
||||
@ -80,30 +50,32 @@ Section "View PDF file"
|
||||
InitPluginsDir # Temporary directory for PDF file
|
||||
|
||||
# Command line parameters
|
||||
${GetParameters} $OriginalFile
|
||||
${GetParameters} $OriginalFileName
|
||||
|
||||
# Trim quotes
|
||||
StrCpy $Character $OriginalFile 1
|
||||
StrCpy $Character $OriginalFileName 1
|
||||
${If} $Character == '"'
|
||||
StrCpy $OriginalFile $OriginalFile "" 1
|
||||
StrCpy $OriginalFileName $OriginalFileName "" 1
|
||||
${EndIf}
|
||||
StrCpy $Character $OriginalFile 1 -1
|
||||
StrCpy $Character $OriginalFileName 1 -1
|
||||
${If} $Character == '"'
|
||||
StrCpy $OriginalFile $OriginalFile -1
|
||||
StrCpy $OriginalFileName $OriginalFileName -1
|
||||
${EndIf}
|
||||
|
||||
GetFullPathName $OriginalFile $OriginalFile
|
||||
${GetFileName} $OriginalFile $OriginalFileName
|
||||
${GetParent} $OriginalFile $OriginalDir # tmpbuf
|
||||
${GetParent} $OriginalDir $OriginalDir # tmpdir
|
||||
GetFullPathName $OriginalFile $OriginalFileName
|
||||
|
||||
SetOutPath $TEMP # The LyX tmpbuf should not be locked
|
||||
|
||||
StrCpy $PDFFile $PLUGINSDIR\$OriginalFileName
|
||||
|
||||
# Check whether the file will be opened with Adobe Reader or Adobe Acrobat
|
||||
!insertmacro SystemCall "shell32::FindExecutable(t '$OriginalFile', t '', t .s)"
|
||||
Pop $ViewerFileName
|
||||
|
||||
FileOpen $R0 "$PLUGINSDIR\a.pdf" "w" #create a temp pdf file with a simple name
|
||||
FileClose $R0
|
||||
|
||||
#find stadard executable for "a.pdf", writes result in $0 (".r0" below)
|
||||
System::Call "shell32::FindExecutable(t '$PLUGINSDIR\a.pdf', t '', t .r0)"
|
||||
StrCpy $ViewerFileName $0
|
||||
${GetFileName} $ViewerFileName $Viewer
|
||||
|
||||
${If} $Viewer == ""
|
||||
@ -148,7 +120,7 @@ Section "View PDF file"
|
||||
CopyFiles /SILENT $OriginalFile $PDFFile
|
||||
|
||||
# Open a new view
|
||||
!insertmacro HideConsole '"$ViewerFileName" "$PDFFile"'
|
||||
ExecWait '"$ViewerFileName" "$PDFFile"'
|
||||
|
||||
${Else}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user