mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
fixup! feat: use jimmac ratio icon in qt client (#3399)
This commit is contained in:
15
dist/msi/CMakeLists.txt
vendored
15
dist/msi/CMakeLists.txt
vendored
@@ -40,18 +40,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(ICONS_DIR "${CMAKE_SOURCE_DIR}/qt/icons/hicolor")
|
set(ICONS_DIR "${CMAKE_SOURCE_DIR}/qt/icons/hicolor")
|
||||||
png2ico(Transmission.ico
|
file(COPY "${CMAKE_SOURCE_DIR}/qt/icons/transmission.ico" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
"${ICONS_DIR}/16x16/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/22x22/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/24x24/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/32x32/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/48x48/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/64x64/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/72x72/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/96x96/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/128x128/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/192x192/transmission-qt.png"
|
|
||||||
"${ICONS_DIR}/256x256/transmission-qt.png")
|
|
||||||
|
|
||||||
set(WEBSRCDIR "${CMAKE_INSTALL_PREFIX}/share/transmission/public_html")
|
set(WEBSRCDIR "${CMAKE_INSTALL_PREFIX}/share/transmission/public_html")
|
||||||
set(TRQMSRCDIR "${CMAKE_INSTALL_PREFIX}/share/transmission/translations")
|
set(TRQMSRCDIR "${CMAKE_INSTALL_PREFIX}/share/transmission/translations")
|
||||||
@@ -103,7 +92,7 @@ wix_light(${PROJECT_NAME}_OUTPUT
|
|||||||
WixUtilExtension
|
WixUtilExtension
|
||||||
EXTRA_DEPENDS
|
EXTRA_DEPENDS
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/GPLv2.rtf"
|
"${CMAKE_CURRENT_SOURCE_DIR}/GPLv2.rtf"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/Transmission.ico")
|
"${CMAKE_CURRENT_BINARY_DIR}/transmission.ico")
|
||||||
|
|
||||||
add_custom_target(pack-msi
|
add_custom_target(pack-msi
|
||||||
SOURCES
|
SOURCES
|
||||||
|
|||||||
73
dist/msi/ConvertTo-Icon.ps1
vendored
73
dist/msi/ConvertTo-Icon.ps1
vendored
@@ -1,73 +0,0 @@
|
|||||||
$ErrorActionPreference = 'Stop'
|
|
||||||
|
|
||||||
# Adapted from: https://gist.github.com/darkfall/1656050
|
|
||||||
|
|
||||||
Add-Type -AssemblyName System.Drawing
|
|
||||||
|
|
||||||
$outputFileName = $args[0]
|
|
||||||
$inputFileNames = $args[1..$args.Count]
|
|
||||||
|
|
||||||
$inputImages = [System.Collections.ArrayList]@()
|
|
||||||
|
|
||||||
foreach ($inputFileName in $inputFileNames) {
|
|
||||||
$resolvedInputFileName = $ExecutionContext.SessionState.Path.GetResolvedPSPathFromPSPath($inputFileName)
|
|
||||||
Write-Output "Input[$($inputImages.Count)]: $inputFileName ($resolvedInputFileName)"
|
|
||||||
|
|
||||||
$inputBitmap = New-Object System.Drawing.Bitmap "$resolvedInputFileName"
|
|
||||||
if ($inputBitmap.Width -ne $inputBitmap.Height) {
|
|
||||||
throw "Input image is not square ($($inputBitmap.Width) != $($inputBitmap.Height))"
|
|
||||||
}
|
|
||||||
|
|
||||||
$inputStream = New-Object System.IO.MemoryStream
|
|
||||||
$inputBitmap.Save($inputStream, [System.Drawing.Imaging.ImageFormat]::Png)
|
|
||||||
|
|
||||||
$inputImage = @{
|
|
||||||
Size = $inputBitmap.Width
|
|
||||||
Bytes = $inputStream.ToArray()
|
|
||||||
}
|
|
||||||
Write-Output " Size = $($inputImage.Size), Bytes = $($inputImage.Bytes.Count)"
|
|
||||||
|
|
||||||
[void]$inputImages.Add($inputImage)
|
|
||||||
|
|
||||||
$inputBitmap.Dispose()
|
|
||||||
$inputStream.Dispose()
|
|
||||||
}
|
|
||||||
|
|
||||||
$resolvedOutputFileName = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($outputFileName)
|
|
||||||
Write-Output "Output: $outputFileName ($resolvedOutputFileName)"
|
|
||||||
|
|
||||||
$outputFile = [System.IO.File]::Create($resolvedOutputFileName)
|
|
||||||
|
|
||||||
$outputFileWriter = New-Object System.IO.BinaryWriter($outputFile)
|
|
||||||
$outputFileWriter.Write([short]0) # 0-1 reserved, 0
|
|
||||||
$outputFileWriter.Write([short]1) # 2-3 image type, 1 = icon, 2 = cursor
|
|
||||||
$outputFileWriter.Write([short]$inputImages.Count) # 4-5 number of images
|
|
||||||
|
|
||||||
$offset = 6 + (16 * $inputImages.Count)
|
|
||||||
|
|
||||||
for ($i = 0; $i -lt $inputImages.Count; ++$i) {
|
|
||||||
$size = $inputImages[$i].Size
|
|
||||||
if ($size -eq 256) {
|
|
||||||
$size = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
$outputFileWriter.Write([byte]$size) # 0 image width
|
|
||||||
$outputFileWriter.Write([byte]$size) # 1 image height
|
|
||||||
$outputFileWriter.Write([byte]0) # 2 number of colors
|
|
||||||
$outputFileWriter.Write([byte]0) # 3 reserved
|
|
||||||
$outputFileWriter.Write([short]0) # 4-5 color planes
|
|
||||||
$outputFileWriter.Write([short]32) # 6-7 bits per pixel
|
|
||||||
$outputFileWriter.Write([int]$inputImages[$i].Bytes.Count) # 8-11 size of image data
|
|
||||||
$outputFileWriter.Write([int]$offset) # 12-15 offset of image data
|
|
||||||
|
|
||||||
$offset += $inputImages[$i].Bytes.Count
|
|
||||||
}
|
|
||||||
|
|
||||||
for ($i = 0; $i -lt $inputImages.Count; ++$i) {
|
|
||||||
# write image data
|
|
||||||
# png data must contain the whole png data file
|
|
||||||
$outputFileWriter.Write($inputImages[$i].Bytes)
|
|
||||||
}
|
|
||||||
|
|
||||||
$outputFileWriter.Flush()
|
|
||||||
$outputFile.Close()
|
|
||||||
2
dist/msi/Transmission.wxs
vendored
2
dist/msi/Transmission.wxs
vendored
@@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
<WixVariable Id="WixUILicenseRtf" Value="$(var.LicenseFile)" />
|
<WixVariable Id="WixUILicenseRtf" Value="$(var.LicenseFile)" />
|
||||||
|
|
||||||
<Icon Id="Tr.ico" SourceFile="Transmission.ico" />
|
<Icon Id="Tr.ico" SourceFile="transmission.ico" />
|
||||||
<Property Id="ARPPRODUCTICON" Value="Tr.ico" />
|
<Property Id="ARPPRODUCTICON" Value="Tr.ico" />
|
||||||
|
|
||||||
<Property Id="ARPURLINFOABOUT" Value="https://transmissionbt.com/" />
|
<Property Id="ARPURLINFOABOUT" Value="https://transmissionbt.com/" />
|
||||||
|
|||||||
26
dist/msi/UtilityFunctions.cmake
vendored
26
dist/msi/UtilityFunctions.cmake
vendored
@@ -39,32 +39,6 @@ function(find_msvc_crt_msm OUTPUT_VAR)
|
|||||||
set(${OUTPUT_VAR} "${${OUTPUT_VAR}}" PARENT_SCOPE)
|
set(${OUTPUT_VAR} "${${OUTPUT_VAR}}" PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(png2ico OUTPUT_FILE)
|
|
||||||
if(NOT IS_ABSOLUTE "${OUTPUT_FILE}")
|
|
||||||
set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_FILE}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_program(MAGICK_PROGRAM magick)
|
|
||||||
find_program(PWSH_PROGRAM pwsh powershell)
|
|
||||||
|
|
||||||
if(MAGICK_PROGRAM)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT "${OUTPUT_FILE}"
|
|
||||||
COMMAND "${MAGICK_PROGRAM}" convert ${ARGN} "${OUTPUT_FILE}"
|
|
||||||
DEPENDS ${ARGN})
|
|
||||||
elseif(PWSH_PROGRAM)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT "${OUTPUT_FILE}"
|
|
||||||
COMMAND "${PWSH_PROGRAM}" -Command "${CMAKE_CURRENT_LIST_DIR}/ConvertTo-Icon.ps1" "${OUTPUT_FILE}" ${ARGN}
|
|
||||||
DEPENDS ${ARGN})
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unable to convert PNGs to ICO (no suitable program found)")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND ${OUTPUT_VAR} "${OUTPUT_FILE}")
|
|
||||||
set(${OUTPUT_VAR} "${${OUTPUT_VAR}}" PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function(wix_heat OUTPUT_FILE SOURCE_DIR CG_NAME DR_NAME VAR_NAME)
|
function(wix_heat OUTPUT_FILE SOURCE_DIR CG_NAME DR_NAME VAR_NAME)
|
||||||
cmake_parse_arguments(HEAT "" "XSL_TRANSFORM" "" ${ARGN})
|
cmake_parse_arguments(HEAT "" "XSL_TRANSFORM" "" ${ARGN})
|
||||||
|
|
||||||
|
|||||||
@@ -7,3 +7,8 @@
|
|||||||
| turtle-silhouette.svg | [fxemoji](https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u1F422-turtle.svg) (derived from) | Mozilla Foundation | [SPDX: CC-BY-4.0](https://spdx.org/licenses/CC-BY-4.0.html) |
|
| turtle-silhouette.svg | [fxemoji](https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u1F422-turtle.svg) (derived from) | Mozilla Foundation | [SPDX: CC-BY-4.0](https://spdx.org/licenses/CC-BY-4.0.html) |
|
||||||
| turtle.svg | [fxemoji](https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u1F422-turtle.svg) (derived from) | Mozilla Foundation | [SPDX: CC-BY-4.0](https://spdx.org/licenses/CC-BY-4.0.html) |
|
| turtle.svg | [fxemoji](https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u1F422-turtle.svg) (derived from) | Mozilla Foundation | [SPDX: CC-BY-4.0](https://spdx.org/licenses/CC-BY-4.0.html) |
|
||||||
| yin-yang.svg | [wikimedia](https://commons.wikimedia.org/wiki/File:Yin_and_Yang_symbol.svg) | Klem | [SPDX: CC-SPDX](https://spdx.org/licenses/CC-PDDC.html) |
|
| yin-yang.svg | [wikimedia](https://commons.wikimedia.org/wiki/File:Yin_and_Yang_symbol.svg) | Klem | [SPDX: CC-SPDX](https://spdx.org/licenses/CC-PDDC.html) |
|
||||||
|
|
||||||
|
|
||||||
|
# Notes
|
||||||
|
|
||||||
|
transmission.ico created with https://www.npmjs.com/package/svg-to-ico
|
||||||
|
|||||||
BIN
qt/icons/transmission.ico
Normal file
BIN
qt/icons/transmission.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 350 KiB |
Reference in New Issue
Block a user