From 1a0b07c79ff31e756d97eb0d5c50b14237df0cd8 Mon Sep 17 00:00:00 2001 From: Ad5001 Date: Tue, 22 Jun 2021 01:33:42 +0200 Subject: [PATCH] Continuing packaging with macos and windows, also fixing a few bugs in the process. --- LogarithmPlotter/__init__.py | 7 ++++-- LogarithmPlotter/qml/About.qml | 2 +- LogarithmPlotter/qml/ObjectLists.qml | 2 +- build-macosx.sh | 21 ++++++++++++++++++ build-windows.bat | 2 ++ build-wine.sh | 6 +++++ linux/install_local.sh | 2 +- linux/x-logarithm-plotter-old.xml | 12 ---------- mac/logarithmplotter.icns | Bin 0 -> 76935 bytes mac/logarithmplotter.iconset/icon_128x128.png | Bin 0 -> 3036 bytes mac/logarithmplotter.iconset/icon_16x16.png | Bin 0 -> 631 bytes mac/logarithmplotter.iconset/icon_256x256.png | Bin 0 -> 5810 bytes mac/logarithmplotter.iconset/icon_32x32.png | Bin 0 -> 995 bytes mac/logarithmplotter.iconset/icon_512x512.png | Bin 0 -> 12170 bytes package-windows.bat | 4 ++++ package-wine.sh | 6 +++++ setup.py | 1 - win/installer.nsi | 21 +++++++++--------- win/{logplotter.ico => logarithmplotter.ico} | Bin 19 files changed, 58 insertions(+), 28 deletions(-) create mode 100755 build-macosx.sh create mode 100644 build-windows.bat create mode 100644 build-wine.sh delete mode 100644 linux/x-logarithm-plotter-old.xml create mode 100644 mac/logarithmplotter.icns create mode 100644 mac/logarithmplotter.iconset/icon_128x128.png create mode 100644 mac/logarithmplotter.iconset/icon_16x16.png create mode 100644 mac/logarithmplotter.iconset/icon_256x256.png create mode 100644 mac/logarithmplotter.iconset/icon_32x32.png create mode 100644 mac/logarithmplotter.iconset/icon_512x512.png create mode 100644 package-windows.bat create mode 100644 package-wine.sh rename win/{logplotter.ico => logarithmplotter.ico} (100%) diff --git a/LogarithmPlotter/__init__.py b/LogarithmPlotter/__init__.py index 9301af8..917bac4 100644 --- a/LogarithmPlotter/__init__.py +++ b/LogarithmPlotter/__init__.py @@ -122,7 +122,10 @@ def run(): if not engine.rootObjects(): print("No root object") exit(-1) - app.exec_() + exit_code = app.exec_() os.remove(tempfile) - + exit(exit_code) + +if __name__ == "__main__": + run() diff --git a/LogarithmPlotter/qml/About.qml b/LogarithmPlotter/qml/About.qml index e2ab2d3..c8bf377 100644 --- a/LogarithmPlotter/qml/About.qml +++ b/LogarithmPlotter/qml/About.qml @@ -29,7 +29,7 @@ D.Dialog { Image { id: logo - source: "../logplotter.svg" + source: "../../logplotter.svg" sourceSize.width: 64 sourceSize.height: 64 width: 64 diff --git a/LogarithmPlotter/qml/ObjectLists.qml b/LogarithmPlotter/qml/ObjectLists.qml index 1f7a593..e9ddc90 100644 --- a/LogarithmPlotter/qml/ObjectLists.qml +++ b/LogarithmPlotter/qml/ObjectLists.qml @@ -438,7 +438,7 @@ ListView { icon.name: modelData icon.width: 24 icon.height: 24 - icon.color: 'white'//sysPalette.windowText + icon.color: sysPalette.windowText onClicked: { var newObj = Objects.createNewRegisteredObject(modelData) diff --git a/build-macosx.sh b/build-macosx.sh new file mode 100755 index 0000000..fe6d498 --- /dev/null +++ b/build-macosx.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# Untested yet +rm $(find . -name "*.qmlc") +rm $(find . -name "*.pyc") +python3 -m pip install -U pyinstaller +iconutil -c icns "mac/logarithmplotter.iconset" + --add-data "AccountLogarithmPlotter/qml:qml" \ + --add-data "LICENSE.md:." \ + --add-data "README.md:." \ + --exclude-module "FixTk" \ + --exclude-module "tcl" \ + --exclude-module "tk" \ + --exclude-module "_tkinter" \ + --exclude-module "tkinter" \ + --exclude-module "Tkinter" \ + --noconsole \ + --noconfirm \ + --icon=mac/logarithmplotter.icns \ + --osx-bundle-identifier eu.ad5001.logarithmplotter \ + -n LogarithmPlotter \ + LogarithmPlotter/__init__.py diff --git a/build-windows.bat b/build-windows.bat new file mode 100644 index 0000000..aff04f7 --- /dev/null +++ b/build-windows.bat @@ -0,0 +1,2 @@ +python -m pip install -U pyinstaller +pyinstaller --add-data "logplotter.svg;." --add-data "LogarithmPlotter/qml;qml" --noconsole LogarithmPlotter/__init__.py --icon=win/logarithmplotter.ico -n logarithmplotter diff --git a/build-wine.sh b/build-wine.sh new file mode 100644 index 0000000..b0eb0ac --- /dev/null +++ b/build-wine.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# Giving pyinstaller another run +rm $(find . -name "*.qmlc") +rm $(find . -name "*.pyc") +wine python -m pip install -U pyinstaller +wine pyinstaller --add-data "logplotter.svg;." --add-data "LogarithmPlotter/qml;qml" --noconsole LogarithmPlotter/__init__.py --icon=win/logarithmplotter.ico -n logarithmplotter diff --git a/linux/install_local.sh b/linux/install_local.sh index e095e89..b3aeff3 100644 --- a/linux/install_local.sh +++ b/linux/install_local.sh @@ -5,7 +5,7 @@ mkdir -p ~/.local/share/applications sed "s+ROOTFOLDER+$APPROOT/+g" "$APPROOT/linux/logplotter.desktop" > ~/.local/share/applications/logarithmplotter.desktop echo "Installing mime-type..." mkdir -p ~/.local/share/applications -sed "s+ROOTFOLDER+$APPROOT/+g" "$APPROOT/linux/x-logarithm-plotter-old.xml" > ~/.local/share/mime/packages/x-logarithm-plotter.xml +sed "s+ROOTFOLDER+$APPROOT/+g" "$APPROOT/linux/x-logarithm-plotter.xml" > ~/.local/share/mime/packages/x-logarithm-plotter.xml mkdir -p ~/.local/share/icons/hicolor/scalable/mimetypes cp "$APPROOT/logplotterfile.svg" ~/.local/share/icons/hicolor/scalable/mimetypes/application-x-logarithm-plotter.svg update-mime-database ~/.local/share/mime/ diff --git a/linux/x-logarithm-plotter-old.xml b/linux/x-logarithm-plotter-old.xml deleted file mode 100644 index ed4f8f1..0000000 --- a/linux/x-logarithm-plotter-old.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - Logarithm Plot File - Fichier Graphe Logarithmique - - - - - - - diff --git a/mac/logarithmplotter.icns b/mac/logarithmplotter.icns new file mode 100644 index 0000000000000000000000000000000000000000..267d38b3ec9f4c20fe01b39703df43e0babb1b79 GIT binary patch literal 76935 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 literal 0 HcmV?d00001 diff --git a/package-windows.bat b/package-windows.bat new file mode 100644 index 0000000..700159c --- /dev/null +++ b/package-windows.bat @@ -0,0 +1,4 @@ +cp win/* README.md LICENSE.md dist/logarithmplotter/ +rem Creating installer +cd dist/logarithmplotter/ +"C:\Program Files (x86)\NSIS\makensis" installer.nsi diff --git a/package-wine.sh b/package-wine.sh new file mode 100644 index 0000000..2c2757f --- /dev/null +++ b/package-wine.sh @@ -0,0 +1,6 @@ +#!/bin/bash +# Moving files +cp win/* README.md LICENSE.md dist/logarithmplotter/ +# Creating installer +cd dist/logarithmplotter/ +makensis installer.nsi diff --git a/setup.py b/setup.py index 24957a5..f39eafe 100644 --- a/setup.py +++ b/setup.py @@ -53,7 +53,6 @@ def package_data(): for d,folders,files in os.walk("LogarithmPlotter/qml"): d = d[17:] pkg_data += [os.path.join(d, f) for f in files] - print("Pkgdata", pkg_data) return pkg_data data_files = [] diff --git a/win/installer.nsi b/win/installer.nsi index 8873715..2fdc33d 100644 --- a/win/installer.nsi +++ b/win/installer.nsi @@ -1,3 +1,4 @@ +Unicode True ; Modern UI definitions ;-------------------------------- ;Include Modern UI @@ -8,10 +9,10 @@ ;Definitions !define APP_NAME "LogarithmPlotter" !define DEV_NAME "Ad5001" -!define WEBSITE "https://logarithmplotter.org" +!define WEBSITE "https://apps.ad5001.eu/LogarithmPlotter" !define APP_VERSION "0.0.1.0" !define COPYRIGHT "Ad5001 © 2021" -!define DESCRIPTION "Browse and use online services, free of account." +!define DESCRIPTION "Create graphs with logarithm scales." !define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\LogarithmPlotter" @@ -34,7 +35,7 @@ VIAddVersionKey "ProductName" "${APP_NAME}" VIAddVersionKey "CompanyName" "${DEV_NAME}" VIAddVersionKey "LegalCopyright" "${COPYRIGHT}" VIAddVersionKey "FileDescription" "${DESCRIPTION}" -VIAddVersionKey "FileVersion" "${VERSION}" +VIAddVersionKey "FileVersion" "${APP_VERSION}" ;-------------------------------- @@ -50,7 +51,7 @@ VIAddVersionKey "FileVersion" "${VERSION}" ;!insertmacro MUI_WELCOMEPAGE_TITLE_3LINES ;Icons -Icon "logplotter.ico" +Icon "logarithmplotter.ico" ;!define MUI_HEADERIMAGE ;!define MUI_HEADERIMAGE_BITMAP "logarithmplotter.bmp" !define MUI_WELCOMEFINISHPAGE_BITMAP "inst_banner.bmp" @@ -167,16 +168,16 @@ Section "" WriteRegStr HKLM ${REG_UNINSTALL} "UninstallString" "$INSTDIR\uninstall.exe" WriteRegStr HKLM ${REG_UNINSTALL} "QuietUninstallString" "$INSTDIR\uninstall.exe /S" WriteRegStr HKLM ${REG_UNINSTALL} "DisplayIcon" "$INSTDIR\logarithmplotter.bmp" - WriteRegStr HKLM ${REG_UNINSTALL} "DisplayVersion" "${VERSION}" + WriteRegStr HKLM ${REG_UNINSTALL} "DisplayVersion" "${APP_VERSION}" WriteRegStr HKLM ${REG_UNINSTALL} "Readme" "$INSTDIR\README.md" WriteRegStr HKLM ${REG_UNINSTALL} "URLInfoAbout" "${WEBSITE}" - SectionEnd +SectionEnd - ;-------------------------------- - ;Uninstaller Section - ; - Section "Uninstall" +;-------------------------------- +;Uninstaller Section +; +Section "Uninstall" RMDir /r "$INSTDIR" diff --git a/win/logplotter.ico b/win/logarithmplotter.ico similarity index 100% rename from win/logplotter.ico rename to win/logarithmplotter.ico