51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
import sys
|
|
from PySide6.QtCore import QLocale, QTranslator, QLibraryInfo
|
|
from PySide6.QtWidgets import QApplication
|
|
from PySide6.QtGui import QIcon
|
|
from portprotonqt.main_window import MainWindow
|
|
from portprotonqt.tray import SystemTray
|
|
from portprotonqt.config_utils import read_theme_from_config
|
|
from portprotonqt.logger import get_logger
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
__app_id__ = "ru.linux_gaming.PortProtonQt"
|
|
__app_name__ = "PortProtonQt"
|
|
__app_version__ = "0.1.1"
|
|
|
|
def main():
|
|
app = QApplication(sys.argv)
|
|
app.setWindowIcon(QIcon.fromTheme(__app_id__))
|
|
app.setDesktopFileName(__app_id__)
|
|
app.setApplicationName(__app_name__)
|
|
app.setApplicationVersion(__app_version__)
|
|
|
|
system_locale = QLocale.system()
|
|
qt_translator = QTranslator()
|
|
translations_path = QLibraryInfo.path(QLibraryInfo.LibraryPath.TranslationsPath)
|
|
if qt_translator.load(system_locale, "qtbase", "_", translations_path):
|
|
app.installTranslator(qt_translator)
|
|
else:
|
|
logger.error(f"Qt translations for {system_locale.name()} not found in {translations_path}")
|
|
|
|
window = MainWindow()
|
|
current_theme_name = read_theme_from_config()
|
|
tray = SystemTray(app, current_theme_name)
|
|
tray.show_action.triggered.connect(window.show)
|
|
tray.hide_action.triggered.connect(window.hide)
|
|
|
|
def recreate_tray():
|
|
nonlocal tray
|
|
tray.hide_tray()
|
|
current_theme = read_theme_from_config()
|
|
tray = SystemTray(app, current_theme)
|
|
tray.show_action.triggered.connect(window.show)
|
|
tray.hide_action.triggered.connect(window.hide)
|
|
|
|
window.settings_saved.connect(recreate_tray)
|
|
window.show()
|
|
sys.exit(app.exec())
|
|
|
|
if __name__ == '__main__':
|
|
main()
|