Pyinstaller support for assets
This commit is contained in:
parent
d6ecae08bd
commit
04a27b592e
@ -11,6 +11,7 @@ import pydantic
|
||||
from PyQt6.QtGui import QIcon
|
||||
from PyQt6.QtWidgets import QFileDialog, QLabel, QMessageBox, QWidget
|
||||
from request_client import RequestClient
|
||||
from utils import resource_path
|
||||
|
||||
|
||||
class File(pydantic.BaseModel):
|
||||
@ -54,7 +55,7 @@ class File(pydantic.BaseModel):
|
||||
return size, power_labels[n] + "bytes"
|
||||
|
||||
def icon(self) -> QIcon:
|
||||
return QIcon("assets/file.png")
|
||||
return QIcon(resource_path("assets/file.png"))
|
||||
|
||||
def double_click(self, list: file_widgets.FileListWidget) -> None:
|
||||
location = QFileDialog.getExistingDirectory(
|
||||
|
@ -5,9 +5,9 @@ import uuid
|
||||
from typing import Protocol, Self
|
||||
|
||||
import create_folder_widget
|
||||
import sync
|
||||
import pydantic
|
||||
import state
|
||||
import sync
|
||||
import user
|
||||
from file import File
|
||||
from folder import Folder
|
||||
|
@ -1,8 +1,8 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import datetime
|
||||
import uuid
|
||||
import typing
|
||||
import uuid
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
import file_widgets
|
||||
@ -11,6 +11,7 @@ import pydantic
|
||||
from PyQt6.QtGui import QIcon
|
||||
from PyQt6.QtWidgets import QMessageBox, QWidget
|
||||
from request_client import RequestClient
|
||||
from utils import resource_path
|
||||
|
||||
|
||||
class Folder(pydantic.BaseModel):
|
||||
@ -38,7 +39,7 @@ class Folder(pydantic.BaseModel):
|
||||
return folder_info.FolderInfoWidget(self)
|
||||
|
||||
def icon(self) -> QIcon:
|
||||
return QIcon("assets/folder.png")
|
||||
return QIcon(resource_path("assets/folder.png"))
|
||||
|
||||
def double_click(self, list: file_widgets.FileListWidget) -> None:
|
||||
import file_widgets
|
||||
|
@ -3,7 +3,7 @@ import file_widgets
|
||||
import keyring
|
||||
import request_client
|
||||
import sync
|
||||
from PyQt6.QtWidgets import QMainWindow, QStackedWidget, QMessageBox
|
||||
from PyQt6.QtWidgets import QMainWindow, QMessageBox, QStackedWidget
|
||||
|
||||
|
||||
class State(QMainWindow):
|
||||
|
12
desktop_client/utils.py
Normal file
12
desktop_client/utils.py
Normal file
@ -0,0 +1,12 @@
|
||||
import os
|
||||
import sys
|
||||
from functools import cache
|
||||
|
||||
_DEFAULT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
|
||||
@cache
|
||||
def resource_path(relative_path: str) -> str:
|
||||
"""Get absolute path to resource, works for dev and for PyInstaller"""
|
||||
base_path = getattr(sys, "_MEIPASS", _DEFAULT)
|
||||
return os.path.join(base_path, relative_path)
|
Reference in New Issue
Block a user