mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-03 17:39:42 +02:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2fb9ad9e28 | |||
| 193188c383 | |||
| d9de5c6ff5 | |||
| 12223d18de | |||
| 544733ce6b | |||
| 7aee2bcfe9 | |||
| d274e64841 | |||
| 23c74f6487 | |||
| 19ea09d035 | |||
| 92359d75e5 | |||
| 315a68c000 | |||
| 4b0ef44efd | |||
| 6dc28615a0 |
+10
-15
@@ -106,7 +106,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
python -c "
|
python -c "
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
img = Image.open('core/interface/assets/logo.png')
|
img = Image.open('src/core/interface/assets/logo.png')
|
||||||
img.save('app_icon.ico', format='ICO', sizes=[(256,256),(128,128),(64,64),(48,48),(32,32),(16,16)])
|
img.save('app_icon.ico', format='ICO', sizes=[(256,256),(128,128),(64,64),(48,48),(32,32),(16,16)])
|
||||||
print('Icon converted successfully')
|
print('Icon converted successfully')
|
||||||
"
|
"
|
||||||
@@ -126,12 +126,11 @@ jobs:
|
|||||||
--enable-plugin=upx \
|
--enable-plugin=upx \
|
||||||
--upx-binary="${{ env.UPX_BINARY }}" \
|
--upx-binary="${{ env.UPX_BINARY }}" \
|
||||||
--noinclude-qt-translations \
|
--noinclude-qt-translations \
|
||||||
--include-data-dir=core/interface/assets=core/interface/assets \
|
|
||||||
--include-data-files=build_info.json=build_info.json \
|
--include-data-files=build_info.json=build_info.json \
|
||||||
--include-data-files=build_info.json=core/build_info.json \
|
--include-data-files=build_info.json=src/build_info.json \
|
||||||
--include-data-files=build_info.json=core/interface/build_info.json \
|
--include-data-files=build_info.json=src/core/interface/build_info.json \
|
||||||
--output-filename=${{ env.APP_NAME }}.exe \
|
--output-filename=${{ env.APP_NAME }}.exe \
|
||||||
main.py
|
src/main.py
|
||||||
|
|
||||||
- name: Build with PyInstaller (Linux)
|
- name: Build with PyInstaller (Linux)
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
@@ -139,10 +138,8 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
pyinstaller --onefile --windowed \
|
pyinstaller --onefile --windowed \
|
||||||
--add-data "build_info.json:." \
|
--add-data "build_info.json:." \
|
||||||
--add-data "build_info.json:core" \
|
--add-data "build_info.json:src/core" \
|
||||||
--add-data "build_info.json:core/interface" \
|
--add-data "build_info.json:src/core/interface" \
|
||||||
--add-data "core/interface/assets:core/interface/assets" \
|
|
||||||
--icon "core/interface/assets/logo.png" \
|
|
||||||
--exclude-module PyQt6 \
|
--exclude-module PyQt6 \
|
||||||
--exclude-module PyQt5 \
|
--exclude-module PyQt5 \
|
||||||
--hidden-import=backports.tarfile \
|
--hidden-import=backports.tarfile \
|
||||||
@@ -151,7 +148,7 @@ jobs:
|
|||||||
--hidden-import=jaraco.text \
|
--hidden-import=jaraco.text \
|
||||||
--hidden-import=jaraco.functools \
|
--hidden-import=jaraco.functools \
|
||||||
--name ${{ env.APP_NAME }} \
|
--name ${{ env.APP_NAME }} \
|
||||||
main.py
|
src/main.py
|
||||||
|
|
||||||
- name: Build with PyInstaller (macOS)
|
- name: Build with PyInstaller (macOS)
|
||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
@@ -159,10 +156,8 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
pyinstaller --onefile \
|
pyinstaller --onefile \
|
||||||
--add-data "build_info.json:." \
|
--add-data "build_info.json:." \
|
||||||
--add-data "build_info.json:core" \
|
--add-data "build_info.json:src/core" \
|
||||||
--add-data "build_info.json:core/interface" \
|
--add-data "build_info.json:src/core/interface" \
|
||||||
--add-data "core/interface/assets:core/interface/assets" \
|
|
||||||
--icon "core/interface/assets/logo.png" \
|
|
||||||
--exclude-module PyQt6 \
|
--exclude-module PyQt6 \
|
||||||
--exclude-module PyQt5 \
|
--exclude-module PyQt5 \
|
||||||
--hidden-import=backports.tarfile \
|
--hidden-import=backports.tarfile \
|
||||||
@@ -171,7 +166,7 @@ jobs:
|
|||||||
--hidden-import=jaraco.text \
|
--hidden-import=jaraco.text \
|
||||||
--hidden-import=jaraco.functools \
|
--hidden-import=jaraco.functools \
|
||||||
--name ${{ env.APP_NAME }} \
|
--name ${{ env.APP_NAME }} \
|
||||||
main.py
|
src/main.py
|
||||||
|
|
||||||
- name: Rename artifact
|
- name: Rename artifact
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
@@ -4,7 +4,8 @@ from core.utils.general.logs import consoleLog
|
|||||||
from core.interface.utils.tabhelper import general_tab
|
from core.interface.utils.tabhelper import general_tab
|
||||||
from core.interface.utils.tabhelper import paths_tab
|
from core.interface.utils.tabhelper import paths_tab
|
||||||
from core.interface.utils.tabhelper import network_tab
|
from core.interface.utils.tabhelper import network_tab
|
||||||
from PySide6 import QtWidgets
|
from PySide6 import QtWidgets, Qt
|
||||||
|
from PySide6.QtCore import Qt
|
||||||
from PySide6.QtWidgets import (
|
from PySide6.QtWidgets import (
|
||||||
QLineEdit,
|
QLineEdit,
|
||||||
QPushButton,
|
QPushButton,
|
||||||
@@ -31,6 +32,9 @@ def settings_dialog(self):
|
|||||||
|
|
||||||
dialog.setLayout(QVBoxLayout())
|
dialog.setLayout(QVBoxLayout())
|
||||||
|
|
||||||
|
if state.window_transparency and platform.system() != "Windows":
|
||||||
|
dialog.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
||||||
|
|
||||||
def close_settings():
|
def close_settings():
|
||||||
dialog.reject()
|
dialog.reject()
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from PySide6 import QtWidgets
|
from PySide6 import QtWidgets, QtCore, QtGui
|
||||||
from PySide6.QtCore import Qt, QTimer, QModelIndex, QAbstractTableModel, Signal, QEvent, QSize
|
from PySide6.QtCore import Qt, QTimer, QModelIndex, QAbstractTableModel, Signal, QEvent, QSize
|
||||||
from PySide6.QtWidgets import (
|
from PySide6.QtWidgets import (
|
||||||
QLineEdit,
|
QLineEdit,
|
||||||
@@ -29,7 +29,7 @@ import libtorrent as lt
|
|||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
import asyncio
|
import base64
|
||||||
from core.utils.general.logs import consoleLog, remove_download_log, flush_log_buffer
|
from core.utils.general.logs import consoleLog, remove_download_log, flush_log_buffer
|
||||||
from core.utils.general.wrappers import run_thread
|
from core.utils.general.wrappers import run_thread
|
||||||
from core.utils.data.state import state
|
from core.utils.data.state import state
|
||||||
@@ -38,6 +38,9 @@ from core.utils.network.update_checker import check_for_updates
|
|||||||
from core.interface.utils.tabhelper import create_tab
|
from core.interface.utils.tabhelper import create_tab
|
||||||
from core.interface.utils.searchhelper import return_pressed
|
from core.interface.utils.searchhelper import return_pressed
|
||||||
from core.interface.dialogs.settings import settings_dialog
|
from core.interface.dialogs.settings import settings_dialog
|
||||||
|
from core.interface.assets.base64_icons import settings_black_base64
|
||||||
|
from core.interface.assets.base64_icons import settings_white_base64
|
||||||
|
from core.interface.assets.base64_icons import logo_base64
|
||||||
from core.network.libtorrent_misc import cleanup_session
|
from core.network.libtorrent_misc import cleanup_session
|
||||||
from core.utils.general.shutdown import closehelper
|
from core.utils.general.shutdown import closehelper
|
||||||
|
|
||||||
@@ -73,21 +76,10 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
MainWindow._instance = self
|
MainWindow._instance = self
|
||||||
self.log_signal.connect(self._on_log_signal)
|
self.log_signal.connect(self._on_log_signal)
|
||||||
|
|
||||||
def get_asset_path(filename):
|
pixmap = QPixmap()
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
image_data = base64.b64decode(logo_base64)
|
||||||
asset_path = os.path.join(base_path, 'assets', filename)
|
pixmap.loadFromData(image_data)
|
||||||
if os.path.exists(asset_path):
|
self.setWindowIcon(QIcon(pixmap))
|
||||||
return asset_path
|
|
||||||
|
|
||||||
if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
|
|
||||||
asset_path = os.path.join(sys._MEIPASS, 'core', 'interface', 'assets', filename)
|
|
||||||
if os.path.exists(asset_path):
|
|
||||||
return asset_path
|
|
||||||
|
|
||||||
return os.path.join('core', 'interface', 'assets', filename)
|
|
||||||
|
|
||||||
self.setWindowIcon(QIcon(get_asset_path("logo.png")))
|
|
||||||
|
|
||||||
|
|
||||||
if platform.system() == "Windows":
|
if platform.system() == "Windows":
|
||||||
try:
|
try:
|
||||||
@@ -418,10 +410,18 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
self.settings_btn = QtWidgets.QToolButton()
|
self.settings_btn = QtWidgets.QToolButton()
|
||||||
self.settings_btn.setIconSize(QSize(21, 21))
|
self.settings_btn.setIconSize(QSize(21, 21))
|
||||||
self.settings_btn.setStyleSheet("background: transparent;")
|
self.settings_btn.setStyleSheet("background: transparent;")
|
||||||
|
|
||||||
if darkdetect.isDark():
|
if darkdetect.isDark():
|
||||||
self.settings_btn.setIcon(QIcon(get_asset_path("settings_white.png")))
|
settings_white_pixmap = QPixmap()
|
||||||
|
settings_white = base64.b64decode(settings_white_base64)
|
||||||
|
settings_white_pixmap.loadFromData(settings_white)
|
||||||
|
self.settings_btn.setIcon(QIcon(settings_white_pixmap))
|
||||||
else:
|
else:
|
||||||
self.settings_btn.setIcon(QIcon(get_asset_path("settings_black.png")))
|
settings_black_pixmap = QPixmap()
|
||||||
|
settings_black = base64.b64decode(settings_black_base64)
|
||||||
|
settings_black_pixmap.loadFromData(settings_black)
|
||||||
|
self.settings_btn.setIcon(QIcon(settings_black_pixmap))
|
||||||
|
|
||||||
self.settings_btn.setToolTip("Settings")
|
self.settings_btn.setToolTip("Settings")
|
||||||
self.settings_btn.setCursor(Qt.CursorShape.PointingHandCursor)
|
self.settings_btn.setCursor(Qt.CursorShape.PointingHandCursor)
|
||||||
self.settings_btn.clicked.connect(lambda: settings_dialog(self))
|
self.settings_btn.clicked.connect(lambda: settings_dialog(self))
|
||||||
Reference in New Issue
Block a user