✨ Window icon will be shown. App will be built with specific icons per OS.

This commit is contained in:
Robert Honz
2024-01-19 11:06:38 +01:00
parent 6cf723b2b8
commit d39bcc9292
4 changed files with 32 additions and 20 deletions
+3 -3
View File
@@ -102,7 +102,7 @@ jobs:
CMD_BUILD: >
brew install create-dmg &&
source $VENV &&
poetry run make gui-macos APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
poetry run make gui-macos-dmg APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_MACOS_X64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}}.dmg -x "*.DS_Store" &&
cd ..
@@ -120,7 +120,7 @@ jobs:
OS_ARCH: ${{needs.compute.outputs.ARCH_LINUX_X64}}
CMD_BUILD: >
source $VENV &&
poetry run make gui APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
poetry run make gui-linux APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_LINUX_X64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd ..
@@ -130,7 +130,7 @@ jobs:
CMD_BUILD: >
choco install zip make -y &&
source $VENV &&
poetry run make gui APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
poetry run make gui-windows APP_NAME=${{needs.compute.outputs.OUT_NAME_FILE}} &&
cd dist &&
zip -r ${{needs.compute.outputs.OUT_NAME_FILE}}_${{needs.compute.outputs.ARCH_WINDOWS_X64}}${{needs.compute.outputs.ASSET_EXTENSION}} ${{needs.compute.outputs.OUT_NAME_FILE}}.exe &&
cd ..
+22 -4
View File
@@ -57,8 +57,17 @@ docs: ## Build and serve the documentation
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
.PHONY: gui
gui: ## Build GUI app with PyInstaller
.PHONY: gui-windows
gui-windows: ## Build GUI app with PyInstaller
@poetry run pyinstaller --noconfirm \
--windowed --onefile \
--name "$(APP_NAME)" \
--noupx \
--icon $(path_asset)/icon.ico \
tidal_dl_ng/gui.py
.PHONY: gui-linux
gui-linux: ## Build GUI app with PyInstaller
@poetry run pyinstaller --noconfirm \
--windowed --onefile \
--name "$(APP_NAME)" \
@@ -66,9 +75,18 @@ gui: ## Build GUI app with PyInstaller
--icon $(path_asset)/icon.png \
tidal_dl_ng/gui.py
# TODO: macos Signing: https://gist.github.com/txoof/0636835d3cc65245c6288b2374799c43
.PHONY: gui-macos
gui-macos: gui ## Package GUI in a *.dmg file
gui-macos: ## Build GUI app with PyInstaller
@poetry run pyinstaller --noconfirm \
--windowed --onefile \
--name "$(APP_NAME)" \
--noupx \
--icon $(path_asset)/icon.icns \
tidal_dl_ng/gui.py
# TODO: macos Signing: https://gist.github.com/txoof/0636835d3cc65245c6288b2374799c43
.PHONY: gui-macos-dmg
gui-macos-dmg: gui-macos ## Package GUI in a *.dmg file
@poetry run mkdir -p $(app_path_dist)/dmg
@poetry run mv "$(app_path_dist)/$(APP_NAME).app" $(app_path_dist)/dmg
@poetry run create-dmg \
+7 -13
View File
@@ -30,7 +30,6 @@ from tidal_dl_ng.worker import Worker
# TODO: Make more use of Exceptions
# TODO: Add File -> Version
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
settings: Settings = None
tidal: Tidal = None
@@ -56,7 +55,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.setupUi(self)
# self.setGeometry(50, 50, 500, 300)
self.setWindowTitle("TIDAL Downloader Next Gen!")
self._init_tray()
# Logging redirect.
XStream.stdout().messageWritten.connect(self._log_output)
@@ -473,24 +471,20 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def on_version(self) -> None:
DialogVersion(self)
def _init_tray(self):
# TODO: Fix icons (make them visible).
# my_pixmap = QtGui.QPixmap("tidal_dl_ng/ui/icon.png")
my_icon = QtGui.QIcon("tidal_dl_ng/ui/icon.png")
# self.setWindowIcon(my_icon)
self.tray = QtWidgets.QSystemTrayIcon()
self.tray.setIcon(my_icon)
self.tray.setVisible(True)
self.tray.setContextMenu(self.m_file)
# TODO: Comment with Google Docstrings.
def gui_activate(tidal: Tidal | None = None):
# Set dark theme and create QT app.
qdarktheme.enable_hi_dpi()
app = QtWidgets.QApplication(sys.argv)
qdarktheme.setup_theme()
window = MainWindow(tidal)
# Create icon object and apply it to app window.
pixmap: QtGui.QPixmap = QtGui.QPixmap("tidal_dl_ng/ui/icon.png")
icon: QtGui.QIcon = QtGui.QIcon(pixmap)
app.setWindowIcon(icon)
window = MainWindow(tidal=tidal)
window.show()
sys.exit(app.exec())
Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB