Mercurial > hg > easyhg
changeset 680:21e03596dd93
Towards Win32 deployment
author | Chris Cannam |
---|---|
date | Fri, 07 Dec 2018 13:41:32 +0000 |
parents | 0329bbd4b57c |
children | ac7b40a64109 |
files | .appveyor.yml .hgignore deploy/win32/build.bat deploy/win32/easyhg.wxs easyhg.wxs src/mainwindow.cpp |
diffstat | 6 files changed, 446 insertions(+), 395 deletions(-) [+] |
line wrap: on
line diff
--- a/.appveyor.yml Thu Dec 06 13:54:34 2018 +0000 +++ b/.appveyor.yml Fri Dec 07 13:41:32 2018 +0000 @@ -6,6 +6,7 @@ - Release install: + - cinst wget - ps: '"[hostfingerprints]" | Out-File -Encoding "ASCII" -Append $env:USERPROFILE\mercurial.ini' - ps: '"code.soundsoftware.ac.uk = 66:ef:e2:0e:e3:55:93:9a:33:aa:2a:e9:fe:be:21:c2:a2:8d:4f:f1" | Out-File -Encoding "ASCII" -Append $env:USERPROFILE\mercurial.ini' - ps: '"[hostsecurity]" | Out-File -Encoding "ASCII" -Append $env:USERPROFILE\mercurial.ini'
--- a/.hgignore Thu Dec 06 13:54:34 2018 +0000 +++ b/.hgignore Fri Dec 07 13:41:32 2018 +0000 @@ -27,3 +27,6 @@ *.xcodeproj *.bak *.msi +easyhg-kdiff3 +mercurial-*-x86 +build_win32
--- a/deploy/win32/build.bat Thu Dec 06 13:54:34 2018 +0000 +++ b/deploy/win32/build.bat Fri Dec 07 13:41:32 2018 +0000 @@ -3,24 +3,72 @@ set STARTPWD=%CD% -set QTDIR=C:\Qt\5.11.2\mingw53_32 +set QTDIR=C:\Qt\5.12.0\msvc2017 if not exist %QTDIR% ( -@ echo Could not find 32-bit Qt +@ echo Could not find 32-bit Qt using MSVC @ exit /b 2 ) +if not exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" ( +@ echo "Could not find MSVC vars batch file" +@ exit /b 2 +) + +call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 + set ORIGINALPATH=%PATH% set PATH=%PATH%;C:\Program Files (x86)\SMLNJ\bin;%QTDIR%\bin;C:\Qt\Tools\QtCreator\bin;C:\Qt\Tools\mingw530_32\bin cd %STARTPWD% +if not exist easyhg-kdiff3 ( + hg clone https://code.soundsoftware.ac.uk/hg/easyhg-kdiff3 +) +set KDIFFDIR=%STARTPWD%\easyhg-kdiff3\kdiff3\src-QT4 + mkdir build_win32 cd build_win32 -qmake -spec win32-g++ -r ..\easyhg.pro +qmake -spec win32-msvc -r -tp vc ..\easyhg.pro if %errorlevel% neq 0 exit /b %errorlevel% -mingw32-make +msbuild EasyMercurial.vcxproj /t:Build /p:Configuration=Release +if %errorlevel% neq 0 exit /b %errorlevel% + +cd %KDIFFDIR% + +mkdir build_win32 +cd build_win32 + +qmake -spec win32-msvc -r -tp vc ..\kdiff3.pro +if %errorlevel% neq 0 exit /b %errorlevel% + +msbuild kdiff3.vcxproj /t:Build /p:Configuration=Release +if %errorlevel% neq 0 exit /b %errorlevel% + +cd %STARTPWD%\build_win32 + +copy %KDIFFDIR%\build_win32\release\kdiff3.exe .\release + +copy %QTDIR%\bin\Qt5Core.dll .\release +copy %QTDIR%\bin\Qt5Gui.dll .\release +copy %QTDIR%\bin\Qt5Widgets.dll .\release +copy %QTDIR%\bin\Qt5Network.dll .\release +copy %QTDIR%\bin\Qt5PrintSupport.dll .\release +copy %QTDIR%\plugins\platforms\qminimal.dll .\release +copy %QTDIR%\plugins\platforms\qwindows.dll .\release +copy %QTDIR%\plugins\styles\qwindowsvistastyle.dll .\release + +cd %STARTPWD% + +if not exist mercurial-4.8.0-x86.msi ( + C:\ProgramData\chocolatey\bin\wget https://bitbucket.org/tortoisehg/files/downloads/mercurial-4.8.0-x86.msi +) +if %errorlevel% neq 0 exit /b %errorlevel% + +if not exist mercurial-4.8.0-x86 ( + msiexec /a mercurial-4.8.0-x86.msi /qn TARGETDIR=%STARTPWD%\mercurial-4.8.0-x86 +) if %errorlevel% neq 0 exit /b %errorlevel% set PATH=%ORIGINALPATH%
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deploy/win32/easyhg.wxs Fri Dec 07 13:41:32 2018 +0000 @@ -0,0 +1,389 @@ +<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> + + <Product + Name="EasyMercurial" + Id="*" + Language="1033" + Codepage="1252" + Version="1.3.0" + UpgradeCode="B82DFDA9-B9DE-49BC-93E5-0B96F9DEB04B" + Manufacturer="Queen Mary, University of London"> + + <Package + Id="*" + Keywords="Installer" + Description="EasyMercurial Installer" + Comments="Copyright (c) 2012 Queen Mary, University of London and others." + Manufacturer="Queen Mary, University of London" + InstallerVersion="100" + Languages="1033" + Compressed="yes" + SummaryCodepage="1252"/> + + <MajorUpgrade DowngradeErrorMessage="A later version of EasyMercurial is already installed. Setup will now exit."/> + + <Media Id="1" Cabinet="easyhg.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/> + <Property Id="DiskPrompt" Value="EasyMercurial Installation [1]"/> + + <Directory Id="TARGETDIR" Name="SourceDir"> + <Directory Id="ProgramFilesFolder" Name="PFiles"> + <Directory Id="INSTALLDIR" Name="EasyMercurial"> + + <Component + Id="MainExecutable" + Guid="DC128BA9-25A8-431E-8A88-7E0445E850B9"> + + <File + Id="EasyHg" + Name="EasyMercurial.exe" + DiskId="1" + Source="release\EasyMercurial.exe" + KeyPath="yes"> + + <Shortcut + Id="EasyHgStartEntry" + Directory="ProgramMenuDir" + Name="EasyMercurial" + WorkingDirectory="INSTALLDIR" + Icon="easyhg.ico" + IconIndex="0" + Advertise="yes"/> + + <Shortcut + Id="EasyHgDesktop" + Directory="DesktopFolder" + Name="EasyMercurial" + WorkingDirectory="INSTALLDIR" + Icon="easyhg.ico" + IconIndex="0" + Advertise="yes"/> + </File> + + <File + Id="COPYING" + Name="COPYING" + DiskId="1" + Source="COPYING"/> + + <File + Id="easyhg.ico" + Name="easyhg.ico" + DiskId="1" + Source="easyhg.ico"/> + </Component> + + <Component + Id="HelperScripts" + Guid="971EA788-347E-4CDE-9899-69EEBE117BDD"> + + <File + Id="mergebat" + Name="easyhg-merge.bat" + DiskId="1" + Source="easyhg-merge.bat" + KeyPath="yes"/> + </Component> + + <Component + Id="VCLIBS" + Guid="2566C8F0-A2AD-40E9-A356-94E887CC1222"> + <File + Id="MSVCP100" + Name="MSVCP100.dll" + DiskId="1" + Source="c:\windows\system32\MSVCP100.DLL" + KeyPath="yes"/> + <File + Id="MSVCR100" + Name="MSVCR100.dll" + DiskId="1" + Source="c:\windows\system32\MSVCR100.DLL"/> + </Component> + + <Component + Id="Qt4" + Guid="04F730AC-B361-45A2-B1CC-9CEB55256117"> + <File + Id="QtCore" + Name="QtCore4.dll" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\QtCore4.dll" + KeyPath="yes"/> + <File + Id="QtGui" + Name="QtGui4.dll" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\QtGui4.dll"/> + <File + Id="QtNetwork" + Name="QtNetwork4.dll" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\QtNetwork4.dll"/> + </Component> + + <Component + Id="hg" + Guid="5BBC4080-2EDF-4616-A8CB-F96B9C942C1A"> + + <File + Id="hg" + Name="hg.exe" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\hg.exe" + KeyPath="yes"/> + <File + Id="pydll" + Name="python27.dll" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\python27.dll"/> + <File + Id="hglib" + Name="library.zip" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\library.zip"/> + <File + Id="plink" + Name="TortoisePlink.exe" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\TortoisePlink.exe"/> + <File + Id="ctypes" + Name="_ctypes.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\_ctypes.pyd"/> + <File + Id="ctypestest" + Name="_ctypes_test.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\_ctypes_test.pyd"/> + <File + Id="elementtree" + Name="_elementtree.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\_elementtree.pyd"/> + <File + Id="hashlib" + Name="_hashlib.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\_hashlib.pyd"/> + <File + Id="socket" + Name="_socket.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\_socket.pyd"/> + <File + Id="ssl" + Name="_ssl.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\_ssl.pyd"/> + <File + Id="winsysloader" + Name="_win32sysloader.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\_win32sysloader.pyd"/> + <File + Id="bz" + Name="bz2.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\bz2.pyd"/> + <File + Id="dulwichobjects" + Name="dulwich._objects.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\dulwich._objects.pyd"/> + <File + Id="dulwichpack" + Name="dulwich._pack.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\dulwich._pack.pyd"/> + <File + Id="libsvncore" + Name="libsvn._core.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\libsvn._core.pyd"/> + <File + Id="libsvnclient" + Name="libsvn._client.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\libsvn._client.pyd"/> + <File + Id="libsvndelta" + Name="libsvn._delta.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\libsvn._delta.pyd"/> + <File + Id="libsvnra" + Name="libsvn._ra.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\libsvn._ra.pyd"/> + <File + Id="libsvnwc" + Name="libsvn._wc.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\libsvn._wc.pyd"/> + <File + Id="mercurialbase" + Name="mercurial.base85.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\mercurial.base85.pyd"/> + <File + Id="mercurialbdiff" + Name="mercurial.bdiff.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\mercurial.bdiff.pyd"/> + <File + Id="mercurialdiffhelpers" + Name="mercurial.diffhelpers.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\mercurial.diffhelpers.pyd"/> + <File + Id="mercurialmpatch" + Name="mercurial.mpatch.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\mercurial.mpatch.pyd"/> + <File + Id="mercurialosutil" + Name="mercurial.osutil.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\mercurial.osutil.pyd"/> + <File + Id="mercurialparsers" + Name="mercurial.parsers.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\mercurial.parsers.pyd"/> + <File + Id="pyexpat" + Name="pyexpat.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\pyexpat.pyd"/> + <File + Id="unicodedata" + Name="unicodedata.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\unicodedata.pyd"/> + <File + Id="QtCorepy" + Name="PyQt4.QtCore.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\PyQt4.QtCore.pyd" /> + <File + Id="QtGuipy" + Name="PyQt4.QtGui.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\PyQt4.QtGui.pyd" /> + </Component> + + <Component + Id="sip" + Guid="DCCE0979-A0A6-475D-B6CD-3173740593F9"> + <File + Id="sip" + Name="sip.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\sip.pyd" /> + </Component> + + <Component + Id="kdiff3" + Guid="6BA0CB20-F426-42AB-A95A-615A4FF87752"> + <File + Id="kdiff3" + Name="kdiff3.exe" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\kdiff3.exe" + KeyPath="yes"/> + </Component> + + <Directory Id="Crypto" Name="Crypto"> + <Directory Id="Cipher" Name="Cipher"> + <Component + Id="cryptocipher" + Guid="FB7C7C7E-FC62-4024-9E7E-47034B416286"> + <File + Id="cipherinit" + Name="__init__.py" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\__init__.py" /> + <File + Id="cipheraesd" + Name="_AES.pyd" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\_AES.pyd" /> + <File + Id="cipheraes" + Name="AES.py" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\AES.py" /> + <File + Id="cipherblockalgo" + Name="blockalgo.py" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\blockalgo.py" /> + </Component> + </Directory> + <Directory Id="Util" Name="Util"> + + <Component + Id="cryptoutil" + Guid="9B5FB64F-B5B3-4E36-A4E6-1EC648470557"> + <File + Id="utilinit" + Name="__init__.py" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\Crypto\Util\__init__.py" /> + <File + Id="utilpy3compat" + Name="py3compat.py" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\Crypto\Util\py3compat.py" /> + </Component> + </Directory> + + <Component + Id="crypto" + Guid="AB5D6864-6D47-4C51-A132-5E0EC5BE1EF8"> + <File + Id="cryptoinit" + Name="__init__.py" + DiskId="1" + Source="d:\easyhg-bundle-dependencies\Crypto\__init__.py" /> + </Component> + + </Directory> + + </Directory> + </Directory> + + <Directory Id="ProgramMenuFolder" Name="Programs"> + <Directory Id="ProgramMenuDir" Name="EasyMercurial"> + <Component Id="ProgramMenuDir" Guid="2E8BDEA0-A6E4-4607-854D-E317A23A535B"> + <RemoveFolder Id="ProgramMenuDir" On="uninstall"/> + <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/> + </Component> + </Directory> + </Directory> + + <Directory Id="DesktopFolder" Name="Desktop"/> + + </Directory> + + <Feature Id="Complete" Level="1"> + <ComponentRef Id="MainExecutable"/> + <ComponentRef Id="VCLIBS"/> + <ComponentRef Id="HelperScripts"/> + <ComponentRef Id="Qt4"/> + <ComponentRef Id="hg"/> + <ComponentRef Id="sip"/> + <ComponentRef Id="crypto"/> + <ComponentRef Id="cryptocipher"/> + <ComponentRef Id="cryptoutil"/> + <ComponentRef Id="kdiff3"/> + <ComponentRef Id="ProgramMenuDir"/> + </Feature> + + <Icon + Id="easyhg.ico" + SourceFile="easyhg.ico"/> + + </Product> +</Wix>
--- a/easyhg.wxs Thu Dec 06 13:54:34 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,389 +0,0 @@ -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <Product - Name="EasyMercurial" - Id="*" - Language="1033" - Codepage="1252" - Version="1.3.0" - UpgradeCode="B82DFDA9-B9DE-49BC-93E5-0B96F9DEB04B" - Manufacturer="Queen Mary, University of London"> - - <Package - Id="*" - Keywords="Installer" - Description="EasyMercurial Installer" - Comments="Copyright (c) 2012 Queen Mary, University of London and others." - Manufacturer="Queen Mary, University of London" - InstallerVersion="100" - Languages="1033" - Compressed="yes" - SummaryCodepage="1252"/> - - <MajorUpgrade DowngradeErrorMessage="A later version of EasyMercurial is already installed. Setup will now exit."/> - - <Media Id="1" Cabinet="easyhg.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/> - <Property Id="DiskPrompt" Value="EasyMercurial Installation [1]"/> - - <Directory Id="TARGETDIR" Name="SourceDir"> - <Directory Id="ProgramFilesFolder" Name="PFiles"> - <Directory Id="INSTALLDIR" Name="EasyMercurial"> - - <Component - Id="MainExecutable" - Guid="DC128BA9-25A8-431E-8A88-7E0445E850B9"> - - <File - Id="EasyHg" - Name="EasyMercurial.exe" - DiskId="1" - Source="release\EasyMercurial.exe" - KeyPath="yes"> - - <Shortcut - Id="EasyHgStartEntry" - Directory="ProgramMenuDir" - Name="EasyMercurial" - WorkingDirectory="INSTALLDIR" - Icon="easyhg.ico" - IconIndex="0" - Advertise="yes"/> - - <Shortcut - Id="EasyHgDesktop" - Directory="DesktopFolder" - Name="EasyMercurial" - WorkingDirectory="INSTALLDIR" - Icon="easyhg.ico" - IconIndex="0" - Advertise="yes"/> - </File> - - <File - Id="COPYING" - Name="COPYING" - DiskId="1" - Source="COPYING"/> - - <File - Id="easyhg.ico" - Name="easyhg.ico" - DiskId="1" - Source="easyhg.ico"/> - </Component> - - <Component - Id="HelperScripts" - Guid="971EA788-347E-4CDE-9899-69EEBE117BDD"> - - <File - Id="mergebat" - Name="easyhg-merge.bat" - DiskId="1" - Source="easyhg-merge.bat" - KeyPath="yes"/> - </Component> - - <Component - Id="VCLIBS" - Guid="2566C8F0-A2AD-40E9-A356-94E887CC1222"> - <File - Id="MSVCP100" - Name="MSVCP100.dll" - DiskId="1" - Source="c:\windows\system32\MSVCP100.DLL" - KeyPath="yes"/> - <File - Id="MSVCR100" - Name="MSVCR100.dll" - DiskId="1" - Source="c:\windows\system32\MSVCR100.DLL"/> - </Component> - - <Component - Id="Qt4" - Guid="04F730AC-B361-45A2-B1CC-9CEB55256117"> - <File - Id="QtCore" - Name="QtCore4.dll" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\QtCore4.dll" - KeyPath="yes"/> - <File - Id="QtGui" - Name="QtGui4.dll" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\QtGui4.dll"/> - <File - Id="QtNetwork" - Name="QtNetwork4.dll" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\QtNetwork4.dll"/> - </Component> - - <Component - Id="hg" - Guid="5BBC4080-2EDF-4616-A8CB-F96B9C942C1A"> - - <File - Id="hg" - Name="hg.exe" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\hg.exe" - KeyPath="yes"/> - <File - Id="pydll" - Name="python27.dll" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\python27.dll"/> - <File - Id="hglib" - Name="library.zip" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\library.zip"/> - <File - Id="plink" - Name="TortoisePlink.exe" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\TortoisePlink.exe"/> - <File - Id="ctypes" - Name="_ctypes.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\_ctypes.pyd"/> - <File - Id="ctypestest" - Name="_ctypes_test.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\_ctypes_test.pyd"/> - <File - Id="elementtree" - Name="_elementtree.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\_elementtree.pyd"/> - <File - Id="hashlib" - Name="_hashlib.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\_hashlib.pyd"/> - <File - Id="socket" - Name="_socket.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\_socket.pyd"/> - <File - Id="ssl" - Name="_ssl.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\_ssl.pyd"/> - <File - Id="winsysloader" - Name="_win32sysloader.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\_win32sysloader.pyd"/> - <File - Id="bz" - Name="bz2.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\bz2.pyd"/> - <File - Id="dulwichobjects" - Name="dulwich._objects.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\dulwich._objects.pyd"/> - <File - Id="dulwichpack" - Name="dulwich._pack.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\dulwich._pack.pyd"/> - <File - Id="libsvncore" - Name="libsvn._core.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\libsvn._core.pyd"/> - <File - Id="libsvnclient" - Name="libsvn._client.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\libsvn._client.pyd"/> - <File - Id="libsvndelta" - Name="libsvn._delta.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\libsvn._delta.pyd"/> - <File - Id="libsvnra" - Name="libsvn._ra.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\libsvn._ra.pyd"/> - <File - Id="libsvnwc" - Name="libsvn._wc.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\libsvn._wc.pyd"/> - <File - Id="mercurialbase" - Name="mercurial.base85.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\mercurial.base85.pyd"/> - <File - Id="mercurialbdiff" - Name="mercurial.bdiff.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\mercurial.bdiff.pyd"/> - <File - Id="mercurialdiffhelpers" - Name="mercurial.diffhelpers.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\mercurial.diffhelpers.pyd"/> - <File - Id="mercurialmpatch" - Name="mercurial.mpatch.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\mercurial.mpatch.pyd"/> - <File - Id="mercurialosutil" - Name="mercurial.osutil.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\mercurial.osutil.pyd"/> - <File - Id="mercurialparsers" - Name="mercurial.parsers.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\mercurial.parsers.pyd"/> - <File - Id="pyexpat" - Name="pyexpat.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\pyexpat.pyd"/> - <File - Id="unicodedata" - Name="unicodedata.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\unicodedata.pyd"/> - <File - Id="QtCorepy" - Name="PyQt4.QtCore.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\PyQt4.QtCore.pyd" /> - <File - Id="QtGuipy" - Name="PyQt4.QtGui.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\PyQt4.QtGui.pyd" /> - </Component> - - <Component - Id="sip" - Guid="DCCE0979-A0A6-475D-B6CD-3173740593F9"> - <File - Id="sip" - Name="sip.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\sip.pyd" /> - </Component> - - <Component - Id="kdiff3" - Guid="6BA0CB20-F426-42AB-A95A-615A4FF87752"> - <File - Id="kdiff3" - Name="kdiff3.exe" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\kdiff3.exe" - KeyPath="yes"/> - </Component> - - <Directory Id="Crypto" Name="Crypto"> - <Directory Id="Cipher" Name="Cipher"> - <Component - Id="cryptocipher" - Guid="FB7C7C7E-FC62-4024-9E7E-47034B416286"> - <File - Id="cipherinit" - Name="__init__.py" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\__init__.py" /> - <File - Id="cipheraesd" - Name="_AES.pyd" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\_AES.pyd" /> - <File - Id="cipheraes" - Name="AES.py" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\AES.py" /> - <File - Id="cipherblockalgo" - Name="blockalgo.py" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\Crypto\Cipher\blockalgo.py" /> - </Component> - </Directory> - <Directory Id="Util" Name="Util"> - - <Component - Id="cryptoutil" - Guid="9B5FB64F-B5B3-4E36-A4E6-1EC648470557"> - <File - Id="utilinit" - Name="__init__.py" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\Crypto\Util\__init__.py" /> - <File - Id="utilpy3compat" - Name="py3compat.py" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\Crypto\Util\py3compat.py" /> - </Component> - </Directory> - - <Component - Id="crypto" - Guid="AB5D6864-6D47-4C51-A132-5E0EC5BE1EF8"> - <File - Id="cryptoinit" - Name="__init__.py" - DiskId="1" - Source="d:\easyhg-bundle-dependencies\Crypto\__init__.py" /> - </Component> - - </Directory> - - </Directory> - </Directory> - - <Directory Id="ProgramMenuFolder" Name="Programs"> - <Directory Id="ProgramMenuDir" Name="EasyMercurial"> - <Component Id="ProgramMenuDir" Guid="2E8BDEA0-A6E4-4607-854D-E317A23A535B"> - <RemoveFolder Id="ProgramMenuDir" On="uninstall"/> - <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/> - </Component> - </Directory> - </Directory> - - <Directory Id="DesktopFolder" Name="Desktop"/> - - </Directory> - - <Feature Id="Complete" Level="1"> - <ComponentRef Id="MainExecutable"/> - <ComponentRef Id="VCLIBS"/> - <ComponentRef Id="HelperScripts"/> - <ComponentRef Id="Qt4"/> - <ComponentRef Id="hg"/> - <ComponentRef Id="sip"/> - <ComponentRef Id="crypto"/> - <ComponentRef Id="cryptocipher"/> - <ComponentRef Id="cryptoutil"/> - <ComponentRef Id="kdiff3"/> - <ComponentRef Id="ProgramMenuDir"/> - </Feature> - - <Icon - Id="easyhg.ico" - SourceFile="easyhg.ico"/> - - </Product> -</Wix>
--- a/src/mainwindow.cpp Thu Dec 06 13:54:34 2018 +0000 +++ b/src/mainwindow.cpp Fri Dec 07 13:41:32 2018 +0000 @@ -874,14 +874,13 @@ // forward slashes as directory separators, Windows // Explorer is not int last = m_workFolderPath.length() - 1; - char c = m_workFolderPath[last].toAscii(); + QChar c = m_workFolderPath[last]; if (c == '\\' || c == '/') { m_workFolderPath.chop(1); } file = m_workFolderPath + "\\" + file; file = file.replace('/', '\\'); args << "/select," << file; - // FIXME: This shouldn't be using a hardcoded path. QProcess::execute("c:/windows/explorer.exe", args); #elif defined(Q_OS_MAC) file = m_workFolderPath + "/" + file;