1
0
Fork 0
mirror of synced 2024-05-24 06:19:55 +12:00

Reformatting and update german translation

This commit is contained in:
Dummerle 2021-05-21 13:40:10 +02:00
parent 9edfd302bd
commit 3a39bac09c
42 changed files with 3799 additions and 2733 deletions

View file

@ -1,9 +1,6 @@
--- ---
name: Bug report name: Bug report about: Create a report to help us improve title: ''
about: Create a report to help us improve labels: bug assignees: ''
title: ''
labels: bug
assignees: ''
--- ---
@ -12,6 +9,7 @@ A clear and concise description of what the bug is.
**To Reproduce** **To Reproduce**
Steps to reproduce the behavior: Steps to reproduce the behavior:
1. Go to '...' 1. Go to '...'
2. Click on '....' 2. Click on '....'
3. Scroll down to '....' 3. Scroll down to '....'
@ -24,8 +22,9 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem. If applicable, add screenshots to help explain your problem.
**System information (please complete the following information):** **System information (please complete the following information):**
- OS (e.g. Ubuntu 20.04 or Windows 10)
- Python version - OS (e.g. Ubuntu 20.04 or Windows 10)
- Python version
**Additional context** **Additional context**
Add any other context about the problem here. Add any other context about the problem here.

View file

@ -1,10 +1,9 @@
name: New Release name: New Release
on: on:
release: release:
types: [ published ] types: [ published ]
jobs: jobs:
pypy-deploy: pypy-deploy:
@ -53,7 +52,7 @@ jobs:
- uses: actions/setup-python@v2 - uses: actions/setup-python@v2
with: with:
python-version: '3.8' python-version: '3.8'
- name: Install python deps - name: Install python deps
run: | run: |
pip3 install cx_Freeze setuptools wheel pip3 install cx_Freeze setuptools wheel
pip3 install -r requirements.txt pip3 install -r requirements.txt
@ -71,7 +70,7 @@ jobs:
overwrite: true overwrite: true
deb-package: deb-package:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install Deps - name: Install Deps
@ -84,10 +83,10 @@ jobs:
run: | run: |
python3 setup.py sdist python3 setup.py sdist
python3 setup.py --command-packages=stdeb.command bdist_deb python3 setup.py --command-packages=stdeb.command bdist_deb
- name: move file - name: move file
run: mv deb_dist/*.deb Rare.deb run: mv deb_dist/*.deb Rare.deb
- name: Upload files to GitHub - name: Upload files to GitHub
uses: svenstaro/upload-release-action@2.2.1 uses: svenstaro/upload-release-action@2.2.1
with: with:

View file

@ -4,7 +4,8 @@
### Add translations ### Add translations
1. Execute ```pylupdate5 $(find -name "*.py") -ts Rare/languages/de.ts``` in source directory. Replace *de* with your language code 1. Execute ```pylupdate5 $(find -name "*.py") -ts Rare/languages/de.ts``` in source directory. Replace *de* with your
language code
2. Modify the .ts file manually or in Qt Linguist 2. Modify the .ts file manually or in Qt Linguist
3. Compile the file with ```lrelease Rare/languages/{lang}.ts``` 3. Compile the file with ```lrelease Rare/languages/{lang}.ts```
@ -18,11 +19,12 @@ examples:
### Add features ### Add features
Select one Card of the project and implement it, or if you want to add another feature ask me on Discord, or create an issue on GitHub Select one Card of the project and implement it, or if you want to add another feature ask me on Discord, or create an
issue on GitHub
## Git crash-course ## Git crash-course
To contribute fork the repository and clone **your** repo. Then make your changes, add it to git with `git add File.xy` and upload it to GitHub with `git commit -m "message"` and `git push`.
Some IDEs can do this automatically. To contribute fork the repository and clone **your** repo. Then make your changes, add it to git with `git add File.xy`
and upload it to GitHub with `git commit -m "message"` and `git push`. Some IDEs can do this automatically.
If you uploaded your changes, create a pull request If you uploaded your changes, create a pull request

View file

@ -2,9 +2,9 @@
## A frontend for legendary, the open source Epic Games Launcher alternative ## A frontend for legendary, the open source Epic Games Launcher alternative
Rare is a GUI for Legendary, a command line aternative to Epic Games launcher. Rare is a GUI for Legendary, a command line aternative to Epic Games launcher. It is currently considered beta software.
It is currently considered beta software. You will probably run into issues, so it is You will probably run into issues, so it is recommend to make a backup. If you run into an issue, please report it by
recommend to make a backup. If you run into an issue, please report it by creating an issue on github or on Discord: https://discord.gg/YvmABK9YSk creating an issue on github or on Discord: https://discord.gg/YvmABK9YSk
![Discord Shield](https://discordapp.com/api/guilds/826881530310819914/widget.png?style=shield) ![Discord Shield](https://discordapp.com/api/guilds/826881530310819914/widget.png?style=shield)
@ -12,43 +12,51 @@ recommend to make a backup. If you run into an issue, please report it by creati
### Installation via pip (recommend) ### Installation via pip (recommend)
Execute `pip install Rare` for all users Or `pip install Rare --user` for only one user. Then execute `rare` in your terminal or cmd Execute `pip install Rare` for all users Or `pip install Rare --user` for only one user. Then execute `rare` in your
terminal or cmd
**Note**: On Linux must be `/home/user/.local/bin` in PATH and on Windows must be `PythonInstallationDirectory\Scripts` in PATH. **Note**: On Linux must be `/home/user/.local/bin` in PATH and on Windows must be `PythonInstallationDirectory\Scripts`
in PATH.
### Windows Simple ### Windows Simple
Download Rare.exe from the [releases page](https://github.com/Dummerle/Rare/releases) and execute it. Download Rare.exe from the [releases page](https://github.com/Dummerle/Rare/releases) and execute it.
**Note:** **Note:**
Using the exe file could cause errors with Windows Defender or other Anti Virus. Sometimes it is not possible to download games and sometimes the app crashes. In this case please use pip Using the exe file could cause errors with Windows Defender or other Anti Virus. Sometimes it is not possible to
download games and sometimes the app crashes. In this case please use pip
### Linux ### Linux
#### Arch based #### Arch based
There are some AUR packages available: There are some AUR packages available:
- [rare](https://aur.archlinux.org/packages/rare) - for stable releases
- [rare-git](https://aur.archlinux.org/packages/rare-git) - for the latest features, which are not in a stable release - [rare](https://aur.archlinux.org/packages/rare) - for stable releases
- [rare-git](https://aur.archlinux.org/packages/rare-git) - for the latest features, which are not in a stable release
#### Debian based #### Debian based
There is a `.deb` package available from the [releases page](https://github.com/Dummerle/Rare/releases): `sudo dpkg i Rare.deb` There is a `.deb` package available from
the [releases page](https://github.com/Dummerle/Rare/releases): `sudo dpkg i Rare.deb`
#### Other #### Other
Install via `pip`. Install via `pip`.
## Run from source ## Run from source
1. Run `pip install -r requirements.txt` to get dependencies. If you use `pacman` you can run `sudo pacman --needed -S python-wheel python-setuptools python-pyqt5 python-qtawesome python-requests python-pillow`
1. Run `pip install -r requirements.txt` to get dependencies. If you use `pacman` you can
run `sudo pacman --needed -S python-wheel python-setuptools python-pyqt5 python-qtawesome python-requests python-pillow`
2. For unix operating systems run `sh start.sh`. For windows run `set PYTHONPATH=%CD% && python rare` 2. For unix operating systems run `sh start.sh`. For windows run `set PYTHONPATH=%CD% && python rare`
## Why Rare? ## Why Rare?
- Rare only uses ~50MB of RAM which is much less than the electron based [HeroicGamesLauncher](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) uses. - Rare only uses ~50MB of RAM which is much less than the electron
- Rare supports all major platforms (Windows, Linux, Mac) unlike the alternatives. based [HeroicGamesLauncher](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) uses.
- Rare supports all major platforms (Windows, Linux, Mac) unlike the alternatives.
**Note** Mac should work too, but I have no Mac and I can't test it.
**Note** Mac should work too, but I have no Mac and I can't test it.
## Features ## Features
@ -60,12 +68,14 @@ Install via `pip`.
- Translations (English, German and French) - Translations (English, German and French)
## Planned Features ## Planned Features
- More Translations (Need help) - More Translations (Need help)
- More Information about Games - More Information about Games More planned features are in [projects](https://github.com/Dummerle/Rare/projects/1)
More planned features are in [projects](https://github.com/Dummerle/Rare/projects/1)
## Contributing ## Contributing
There are more options to contribute.
There are more options to contribute.
- If you can Python and PyQt you can implement new Features (Some ideas are in Projects). - If you can Python and PyQt you can implement new Features (Some ideas are in Projects).
- If you are a designer, you can add Stylesheets or create a logo or a banner - If you are a designer, you can add Stylesheets or create a logo or a banner
- You can translate the application in your language - You can translate the application in your language

View file

@ -24,18 +24,18 @@ if sys.platform == 'win32':
base = 'Win32GUI' base = 'Win32GUI'
name = 'Rare.exe' name = 'Rare.exe'
shortcut_table = [ shortcut_table = [
('DesktopShortcut', # Shortcut ('DesktopShortcut', # Shortcut
'DesktopFolder', # Directory 'DesktopFolder', # Directory
'Rare', # Name 'Rare', # Name
'TARGETDIR', # Component 'TARGETDIR', # Component
'[TARGETDIR]'+name, # Target '[TARGETDIR]' + name, # Target
None, # Arguments None, # Arguments
'A gui for Legendary.', # Description 'A gui for Legendary.', # Description
None, # Hotkey None, # Hotkey
None, # Icon None, # Icon
None, # IconIndex None, # IconIndex
None, # ShowCmd None, # ShowCmd
'TARGETDIR' # Working Directory 'TARGETDIR' # Working Directory
)] )]
msi_data = {"Shortcut": shortcut_table} msi_data = {"Shortcut": shortcut_table}
bdist_msi_options = {'data': msi_data, "all_users": True} bdist_msi_options = {'data': msi_data, "all_users": True}
@ -44,9 +44,9 @@ else:
name = 'Rare' name = 'Rare'
src_files += [ src_files += [
'LICENSE', 'LICENSE',
'README.md', 'README.md',
'rare/styles/Logo.ico', 'rare/styles/Logo.ico',
] ]
# Dependencies are automatically detected, but it might need fine tuning. # Dependencies are automatically detected, but it might need fine tuning.
@ -58,17 +58,17 @@ build_exe_options["excludes"] = ["setuptools", "tkinter", "pkg_resources"]
# Set options # Set options
build_options["build_exe"] = build_exe_options build_options["build_exe"] = build_exe_options
setup(name = 'Rare', setup(name='Rare',
version = __version__, version=__version__,
description = 'A gui for Legendary.', description='A gui for Legendary.',
options = build_options, options=build_options,
executables = [ executables=[
Executable('rare/__main__.py', Executable('rare/__main__.py',
targetName=name, targetName=name,
icon='rare/styles/Logo.ico', icon='rare/styles/Logo.ico',
base=base, base=base,
shortcutName=shortcutName, shortcutName=shortcutName,
shortcutDir=shortcutDir, shortcutDir=shortcutDir,
), ),
], ],
) )

View file

@ -3,20 +3,17 @@ import webbrowser
from PyQt5.QtCore import QSize, pyqtSignal from PyQt5.QtCore import QSize, pyqtSignal
from PyQt5.QtWidgets import QMenu, QTabWidget, QWidget, QWidgetAction from PyQt5.QtWidgets import QMenu, QTabWidget, QWidget, QWidgetAction
from qtawesome import icon from qtawesome import icon
from rare.utils import legendary_utils
from custom_legendary.core import LegendaryCore from custom_legendary.core import LegendaryCore
from rare.components.dialogs.install_dialog import InstallDialog from rare.components.dialogs.install_dialog import InstallDialog
from rare.components.dialogs.uninstall_dialog import UninstallDialog from rare.components.dialogs.uninstall_dialog import UninstallDialog
from rare.components.tab_utils import TabBar, TabButtonWidget from rare.components.tab_utils import TabBar, TabButtonWidget
from rare.components.tabs.account import MiniWidget from rare.components.tabs.account import MiniWidget
from rare.components.tabs.cloud_saves import SyncSaves from rare.components.tabs.cloud_saves import SyncSaves
from rare.components.tabs.downloads import DownloadTab from rare.components.tabs.downloads import DownloadTab
from rare.components.tabs.games import GameTab from rare.components.tabs.games import GameTab
from rare.components.tabs.settings import SettingsTab from rare.components.tabs.settings import SettingsTab
from rare.utils import legendary_utils
from rare.utils.models import InstallOptions from rare.utils.models import InstallOptions
@ -98,7 +95,6 @@ class TabWidget(QTabWidget):
self.tabBarClicked.connect(lambda x: self.games_tab.layout.setCurrentIndex(0) if x == 0 else None) self.tabBarClicked.connect(lambda x: self.games_tab.layout.setCurrentIndex(0) if x == 0 else None)
self.setIconSize(QSize(25, 25)) self.setIconSize(QSize(25, 25))
def install_game(self, app_name, disable_path=False): def install_game(self, app_name, disable_path=False):
infos = InstallDialog(app_name, self.core, disable_path).get_information() infos = InstallDialog(app_name, self.core, disable_path).get_information()
@ -141,6 +137,7 @@ class TabWidget(QTabWidget):
downloads = len(self.downloadTab.dl_queue) + len(self.downloadTab.update_widgets.keys()) downloads = len(self.downloadTab.dl_queue) + len(self.downloadTab.update_widgets.keys())
self.setTabText(1, "Downloads" + ((" (" + str(downloads) + ")") if downloads != 0 else "")) self.setTabText(1, "Downloads" + ((" (" + str(downloads) + ")") if downloads != 0 else ""))
self.downloadTab.update_text.setVisible(len(self.downloadTab.update_widgets) == 0) self.downloadTab.update_text.setVisible(len(self.downloadTab.update_widgets) == 0)
# Update gamelist and set text of Downlaods to "Downloads" # Update gamelist and set text of Downlaods to "Downloads"
def dl_finished(self, update_list): def dl_finished(self, update_list):

View file

@ -75,7 +75,6 @@ class DownloadTab(QWidget):
self.update_text.setVisible(len(updates) == 0) self.update_text.setVisible(len(updates) == 0)
for igame in updates: for igame in updates:
self.add_update(igame) self.add_update(igame)
self.layout.addStretch(1) self.layout.addStretch(1)
@ -143,12 +142,15 @@ class DownloadTab(QWidget):
return return
if self.active_game is None: if self.active_game is None:
self.start_installation(dlm, game, status_queue, igame, repair_file, options, analysis, options.download_only) self.start_installation(dlm, game, status_queue, igame, repair_file, options, analysis,
options.download_only)
else: else:
self.dl_queue.append((dlm, game, status_queue, igame, repair_file, options, analysis, options.download_only)) self.dl_queue.append(
(dlm, game, status_queue, igame, repair_file, options, analysis, options.download_only))
self.queue_widget.update_queue(self.dl_queue) self.queue_widget.update_queue(self.dl_queue)
def start_installation(self, dlm, game, status_queue, igame, repair_file, options: InstallOptions, analysis, dl_only): def start_installation(self, dlm, game, status_queue, igame, repair_file, options: InstallOptions, analysis,
dl_only):
if self.dl_queue: if self.dl_queue:
self.dl_queue.pop(0) self.dl_queue.pop(0)
self.queue_widget.update_queue(self.dl_queue) self.queue_widget.update_queue(self.dl_queue)
@ -266,7 +268,8 @@ class DownloadTab(QWidget):
def statistics(self, ui_update: UIUpdate): def statistics(self, ui_update: UIUpdate):
self.prog_bar.setValue(ui_update.progress) self.prog_bar.setValue(ui_update.progress)
self.dl_speed.setText(self.tr("Download speed") + f": {get_size(ui_update.download_speed)}/s") self.dl_speed.setText(self.tr("Download speed") + f": {get_size(ui_update.download_speed)}/s")
self.cache_used.setText(self.tr("Cache used") + f": {get_size(ui_update.cache_usage) if ui_update.cache_usage > 1023 else '0KB'}") self.cache_used.setText(
self.tr("Cache used") + f": {get_size(ui_update.cache_usage) if ui_update.cache_usage > 1023 else '0KB'}")
self.downloaded.setText( self.downloaded.setText(
self.tr("Downloaded") + f": {get_size(ui_update.total_downloaded)} / {get_size(self.analysis.dl_size)}") self.tr("Downloaded") + f": {get_size(ui_update.total_downloaded)} / {get_size(self.analysis.dl_size)}")
self.time_left.setText(self.tr("Time left: ") + self.get_time(ui_update.estimated_time_left)) self.time_left.setText(self.tr("Time left: ") + self.get_time(ui_update.estimated_time_left))
@ -308,7 +311,9 @@ class UpdateWidget(QWidget):
self.update_with_settings.clicked.connect(lambda: self.update_game(False)) self.update_with_settings.clicked.connect(lambda: self.update_game(False))
self.layout.addWidget(self.update_button) self.layout.addWidget(self.update_button)
self.layout.addWidget(self.update_with_settings) self.layout.addWidget(self.update_with_settings)
self.layout.addWidget(QLabel(self.tr("Version: ") + self.game.version + " -> " + self.core.get_asset(self.game.app_name, True).build_version)) self.layout.addWidget(QLabel(
self.tr("Version: ") + self.game.version + " -> " + self.core.get_asset(self.game.app_name,
True).build_version))
self.setLayout(self.layout) self.setLayout(self.layout)

View file

@ -121,7 +121,7 @@ class DownloadThread(QThread):
return return
self.status.emit("dl_finished") self.status.emit("dl_finished")
end_t = time.time() end_t = time.time()
logger.info(f"Download finished in {start_time-end_t}s") logger.info(f"Download finished in {start_time - end_t}s")
game = self.core.get_game(self.igame.app_name) game = self.core.get_game(self.igame.app_name)
if not self.dl_only: if not self.dl_only:

View file

@ -8,11 +8,9 @@ from qtawesome import icon
from custom_legendary.core import LegendaryCore from custom_legendary.core import LegendaryCore
from custom_legendary.models.game import InstalledGame, Game from custom_legendary.models.game import InstalledGame, Game
from rare.components.dialogs.uninstall_dialog import UninstallDialog
from rare.components.tabs.games.game_info.dlcs import DlcTab from rare.components.tabs.games.game_info.dlcs import DlcTab
from rare.components.tabs.games.game_info.game_settings import GameSettings from rare.components.tabs.games.game_info.game_settings import GameSettings
from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo
from rare.utils import legendary_utils
from rare.utils.extra_widgets import SideTabBar from rare.utils.extra_widgets import SideTabBar
from rare.utils.legendary_utils import VerifyThread from rare.utils.legendary_utils import VerifyThread
from rare.utils.utils import IMAGE_DIR, get_size from rare.utils.utils import IMAGE_DIR, get_size

View file

@ -78,13 +78,13 @@ class GameList(QStackedWidget):
self.icon_layout.addWidget(icon_widget) self.icon_layout.addWidget(icon_widget)
self.list_layout.addWidget(list_widget) self.list_layout.addWidget(list_widget)
self.uninstalled_names = [] self.uninstalled_games = []
installed = [i.app_name for i in self.core.get_installed_list()] installed = [i.app_name for i in self.core.get_installed_list()]
# get Uninstalled games # get Uninstalled games
games, self.dlcs = self.core.get_game_and_dlc_list() games, self.dlcs = self.core.get_game_and_dlc_list()
for game in sorted(games, key=lambda x: x.app_title): for game in sorted(games, key=lambda x: x.app_title):
if not game.app_name in installed: if not game.app_name in installed:
self.uninstalled_names.append(game) self.uninstalled_games.append(game)
# add uninstalled games # add uninstalled games
@ -126,10 +126,10 @@ class GameList(QStackedWidget):
pixmap = QPixmap(f"{self.IMAGE_DIR}/{game.app_name}/UninstalledArt.png") pixmap = QPixmap(f"{self.IMAGE_DIR}/{game.app_name}/UninstalledArt.png")
icon_widget = IconWidgetUninstalled(game, self.core, pixmap) icon_widget = IconWidgetUninstalled(game, self.core, pixmap)
icon_widget.install_game.connect(self.install) icon_widget.show_uninstalled_info.connect(self.show_install_info)
list_widget = ListWidgetUninstalled(self.core, game, pixmap) list_widget = ListWidgetUninstalled(self.core, game, pixmap)
list_widget.install_game.connect(self.install) list_widget.show_uninstalled_info.connect(self.show_install_info)
self.widgets[game.app_name] = (icon_widget, list_widget) self.widgets[game.app_name] = (icon_widget, list_widget)
@ -207,16 +207,9 @@ class GameList(QStackedWidget):
return True, pid return True, pid
return False, 0 return False, 0
def install(self, app_name): def show_install_info(self, app_name):
self.show_uninstalled_info.emit(app_name) self.show_uninstalled_info.emit(app_name)
# icon_widget, list_widget = self.widgets[options.app_name]
# icon_widget.mousePressEvent = lambda e: None
# icon_widget.installing = True
# list_widget.install_button.setDisabled(True)
# list_widget.installing = True
# self.install_game.emit(options)
def finished(self, app_name): def finished(self, app_name):
self.running_games.remove(app_name) self.running_games.remove(app_name)
self.active_game = ("", 0) self.active_game = ("", 0)
@ -284,7 +277,8 @@ class GameList(QStackedWidget):
widgets[0].info_label.setText("") widgets[0].info_label.setText("")
widgets[0].info_text = "" widgets[0].info_text = ""
# new installed # new installed
elif self.core.is_installed(widgets[0].game.app_name) and not isinstance(widgets[0], BaseInstalledWidget): elif self.core.is_installed(widgets[0].game.app_name) and not isinstance(widgets[0],
BaseInstalledWidget):
self.widgets.pop(widgets[0].game.app_name) self.widgets.pop(widgets[0].game.app_name)
# QWidget().setLayout(self.icon_layout) # QWidget().setLayout(self.icon_layout)
@ -337,7 +331,8 @@ class GameList(QStackedWidget):
self.update() self.update()
# uninstalled # uninstalled
elif not self.core.is_installed(widgets[0].game.app_name) and isinstance(widgets[0], BaseInstalledWidget): elif not self.core.is_installed(widgets[0].game.app_name) and isinstance(widgets[0],
BaseInstalledWidget):
self.list_layout.removeWidget(widgets[1]) self.list_layout.removeWidget(widgets[1])
self.icon_layout.removeWidget(widgets[0]) self.icon_layout.removeWidget(widgets[0])
@ -397,5 +392,3 @@ class GameList(QStackedWidget):
i_widget, list_widget = self.widgets[name] i_widget, list_widget = self.widgets[name]
self.icon_layout.addWidget(i_widget) self.icon_layout.addWidget(i_widget)
self.list_layout.addWidget(list_widget) self.list_layout.addWidget(list_widget)

View file

@ -1,4 +1,3 @@
import logging
import os import os
from logging import getLogger from logging import getLogger

View file

@ -3,7 +3,6 @@ from logging import getLogger
from PyQt5.QtCore import pyqtSignal from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QGroupBox from PyQt5.QtWidgets import QGroupBox
logger = getLogger("Uninstalled") logger = getLogger("Uninstalled")

View file

@ -1,13 +1,11 @@
from logging import getLogger from logging import getLogger
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QVBoxLayout, QLabel from PyQt5.QtWidgets import QVBoxLayout, QLabel
from custom_legendary.core import LegendaryCore from custom_legendary.core import LegendaryCore
from custom_legendary.models.game import Game from custom_legendary.models.game import Game
from rare.components.tabs.games.game_widgets.base_uninstalled_widget import BaseUninstalledWidget from rare.components.tabs.games.game_widgets.base_uninstalled_widget import BaseUninstalledWidget
from rare.utils.extra_widgets import ClickableLabel from rare.utils.extra_widgets import ClickableLabel
from rare.utils.models import InstallOptions
logger = getLogger("Uninstalled") logger = getLogger("Uninstalled")

View file

@ -1,10 +1,9 @@
import json import json
import os import os
import string
from logging import getLogger from logging import getLogger
from PyQt5.QtCore import pyqtSignal from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QWidget, QLabel, QHBoxLayout, QPushButton, QVBoxLayout, QFileDialog, QMessageBox, QLineEdit, \ from PyQt5.QtWidgets import QWidget, QLabel, QHBoxLayout, QPushButton, QVBoxLayout, QFileDialog, QLineEdit, \
QGroupBox QGroupBox
from qtawesome import icon from qtawesome import icon
@ -71,7 +70,8 @@ class ImportWidget(QWidget):
self.layout.addWidget(self.import_one_game) self.layout.addWidget(self.import_one_game)
self.auto_import = QLabel(f"<h4>{self.tr('To import games from Epic Games Store, please enable EGL Sync in legendary settings')}</h4>") self.auto_import = QLabel(
f"<h4>{self.tr('To import games from Epic Games Store, please enable EGL Sync in legendary settings')}</h4>")
self.layout.addWidget(self.auto_import) self.layout.addWidget(self.auto_import)
self.layout.addStretch(1) self.layout.addStretch(1)

View file

@ -34,7 +34,7 @@ class RareSettings(QWidget, Ui_RareSettings):
(self.auto_sync_cloud, "auto_sync_cloud", True), (self.auto_sync_cloud, "auto_sync_cloud", True),
(self.notification, "notification", True), (self.notification, "notification", True),
(self.save_size, "save_size", False) (self.save_size, "save_size", False)
] ]
self.settings = QSettings() self.settings = QSettings()
self.img_dir_path = self.settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str) self.img_dir_path = self.settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str)

View file

@ -79,7 +79,7 @@
<translation>Dies ist eine Betaversion, also können Bugs und andere Unschönheiten auftreten. Falls ein Bug auftritt, bitte auf &lt;a href=&apos;https://github.com/Dummerle/Rare/issues&apos;&gt;Github&lt;/a&gt; melden oder auf Discord. (Dummerle#7419). Ein Rare &lt;a href=&apos;https://discord.gg/YvmABK9YSk&apos;&gt;Discord server&lt;/a&gt; existiert ebenfalls</translation> <translation>Dies ist eine Betaversion, also können Bugs und andere Unschönheiten auftreten. Falls ein Bug auftritt, bitte auf &lt;a href=&apos;https://github.com/Dummerle/Rare/issues&apos;&gt;Github&lt;/a&gt; melden oder auf Discord. (Dummerle#7419). Ein Rare &lt;a href=&apos;https://discord.gg/YvmABK9YSk&apos;&gt;Discord server&lt;/a&gt; existiert ebenfalls</translation>
</message> </message>
<message> <message>
<location filename="../ui/components/tabs/settings/about.py" line="108"/> <location filename="../ui/components/tabs/settings/about.py" line="109"/>
<source>&lt;h2&gt;About&lt;/h2&gt;</source> <source>&lt;h2&gt;About&lt;/h2&gt;</source>
<translation>&lt;h2&gt;Über&lt;/h2&gt;</translation> <translation>&lt;h2&gt;Über&lt;/h2&gt;</translation>
</message> </message>
@ -87,12 +87,12 @@
<context> <context>
<name>App</name> <name>App</name>
<message> <message>
<location filename="../app.py" line="100"/> <location filename="../app.py" line="108"/>
<source>Download finished</source> <source>Download finished</source>
<translation>Download abgeschlossen</translation> <translation>Download abgeschlossen</translation>
</message> </message>
<message> <message>
<location filename="../app.py" line="100"/> <location filename="../app.py" line="108"/>
<source>Download finished. Game is playable now</source> <source>Download finished. Game is playable now</source>
<translation>Downlaod abgeschlossen. Spiel kann jetzt gespielt werden</translation> <translation>Downlaod abgeschlossen. Spiel kann jetzt gespielt werden</translation>
</message> </message>
@ -100,57 +100,57 @@
<context> <context>
<name>BaseInstalledWidget</name> <name>BaseInstalledWidget</name>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="95"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="94"/>
<source>Do you want to launch {}</source> <source>Do you want to launch {}</source>
<translation>Möchtest du {} starten</translation> <translation>Möchtest du {} starten</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="37"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="36"/>
<source>Launch</source> <source>Launch</source>
<translation>Starten</translation> <translation>Starten</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="79"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="78"/>
<source>Remove Desktop link</source> <source>Remove Desktop link</source>
<translation>Desktop Verknüpfung löschen</translation> <translation>Desktop Verknüpfung löschen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="89"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="88"/>
<source>Create Desktop link</source> <source>Create Desktop link</source>
<translation>Desktopverknüpfung erstellen</translation> <translation>Desktopverknüpfung erstellen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="57"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="56"/>
<source>Remove start menu link</source> <source>Remove start menu link</source>
<translation>Startmenüverknüpfung löschen</translation> <translation>Startmenüverknüpfung löschen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="59"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="58"/>
<source>Create start menu link</source> <source>Create start menu link</source>
<translation>Startmenüverknüpfung erstellen</translation> <translation>Startmenüverknüpfung erstellen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="64"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="63"/>
<source>Uninstall</source> <source>Uninstall</source>
<translation>Deinstallieren</translation> <translation>Deinstallieren</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="81"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="80"/>
<source>Remove Start menu link</source> <source>Remove Start menu link</source>
<translation>Startmenüverknüpfung löschen</translation> <translation>Startmenüverknüpfung löschen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="91"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="90"/>
<source>Create Start menu link</source> <source>Create Start menu link</source>
<translation>Startmenüverknüpfung erstellen</translation> <translation>Startmenüverknüpfung erstellen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="111"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="110"/>
<source>An error occurred while starting game. Maybe game files are missing</source> <source>An error occurred while starting game. Maybe game files are missing</source>
<translation>Ein Fehler ist passiert. Vielleicht fehlen die Spieldateien</translation> <translation>Ein Fehler ist passiert. Vielleicht fehlen die Spieldateien</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="102"/> <location filename="../components/tabs/games/game_widgets/base_installed_widget.py" line="101"/>
<source>Game cannot run offline. Please start game in Online mode</source> <source>Game cannot run offline. Please start game in Online mode</source>
<translation>Spiel kann nicht offline gestartet werden. Starte die App im Online Mode neu</translation> <translation>Spiel kann nicht offline gestartet werden. Starte die App im Online Mode neu</translation>
</message> </message>
@ -181,17 +181,17 @@
<context> <context>
<name>DLCWidget</name> <name>DLCWidget</name>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="131"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="124"/>
<source>Install</source> <source>Install</source>
<translation>Installieren</translation> <translation>Installieren</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="136"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="129"/>
<source>Installed. Uninstalling DLCs is not supported</source> <source>Installed. Uninstalling DLCs is not supported</source>
<translation>Installiert. Das Deinstallieren von DLCs wird nicht unterstützt</translation> <translation>Installiert. Das Deinstallieren von DLCs wird nicht unterstützt</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="146"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="139"/>
<source>Installing</source> <source>Installing</source>
<translation>Installieren</translation> <translation>Installieren</translation>
</message> </message>
@ -253,27 +253,27 @@
<context> <context>
<name>DlcTab</name> <name>DlcTab</name>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="37"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="35"/>
<source>Installed DLCs</source> <source>Installed DLCs</source>
<translation>Installierte DLCs</translation> <translation>Installierte DLCs</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="39"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="37"/>
<source>Available DLCs</source> <source>Available DLCs</source>
<translation>Verfügbare DLCs</translation> <translation>Verfügbare DLCs</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="58"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="56"/>
<source>No DLCs are installed</source> <source>No DLCs are installed</source>
<translation>Keine DLCs sind installiert</translation> <translation>Keine DLCs sind installiert</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="60"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="58"/>
<source>No DLCs are available</source> <source>No DLCs are available</source>
<translation>Keine weiteren DLCs verfügbar</translation> <translation>Keine weiteren DLCs verfügbar</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="74"/> <location filename="../components/tabs/games/game_info/dlcs.py" line="72"/>
<source>Base Game is not installed. Please install {} first</source> <source>Base Game is not installed. Please install {} first</source>
<translation>Basisspiel ist nicht installiert. Bitte installiere zuerst {}</translation> <translation>Basisspiel ist nicht installiert. Bitte installiere zuerst {}</translation>
</message> </message>
@ -296,52 +296,52 @@
<translation>Keine Updates verfügbar</translation> <translation>Keine Updates verfügbar</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="127"/> <location filename="../components/tabs/downloads/__init__.py" line="130"/>
<source>Error preparing download</source> <source>Error preparing download</source>
<translation>Fehler beim Vorbereiten des Downloads</translation> <translation>Fehler beim Vorbereiten des Downloads</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="132"/> <location filename="../components/tabs/downloads/__init__.py" line="135"/>
<source>Download size is 0. Game already exists</source> <source>Download size is 0. Game already exists</source>
<translation>Die Größe des Downloads ist 0. Spiel existiert bereits</translation> <translation>Die Größe des Downloads ist 0. Spiel existiert bereits</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="210"/> <location filename="../components/tabs/downloads/__init__.py" line="216"/>
<source>Installation finished</source> <source>Installation finished</source>
<translation>Installation abgeschlossen</translation> <translation>Installation abgeschlossen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="252"/> <location filename="../components/tabs/downloads/__init__.py" line="260"/>
<source>Installing Game: No active download</source> <source>Installing Game: No active download</source>
<translation>Installierendes Spiel: Kein aktiver Download</translation> <translation>Installierendes Spiel: Kein aktiver Download</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="262"/> <location filename="../components/tabs/downloads/__init__.py" line="270"/>
<source>Download speed</source> <source>Download speed</source>
<translation>Geschwindigkeit</translation> <translation>Geschwindigkeit</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="263"/> <location filename="../components/tabs/downloads/__init__.py" line="271"/>
<source>Cache used</source> <source>Cache used</source>
<translation>Benutzter Cache</translation> <translation>Benutzter Cache</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="264"/> <location filename="../components/tabs/downloads/__init__.py" line="273"/>
<source>Downloaded</source> <source>Downloaded</source>
<translation>Runtergeladen</translation> <translation>Runtergeladen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="266"/> <location filename="../components/tabs/downloads/__init__.py" line="275"/>
<source>Time left: </source> <source>Time left: </source>
<translation>Zeit übrig: </translation> <translation>Zeit übrig: </translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="211"/> <location filename="../components/tabs/downloads/__init__.py" line="217"/>
<source>Finished Download of game {}</source> <source>Finished Download of game {}</source>
<translation>Download von {} abgeschlossen</translation> <translation>Download von {} abgeschlossen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="202"/> <location filename="../components/tabs/downloads/__init__.py" line="208"/>
<source>Download finished. Reload library</source> <source>Download finished. Reload library</source>
<translation>Download abgeschlossen. Spiele neu laden</translation> <translation>Download abgeschlossen. Spiele neu laden</translation>
</message> </message>
@ -361,7 +361,7 @@
<translation type="obsolete">Keine</translation> <translation type="obsolete">Keine</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="158"/> <location filename="../components/tabs/downloads/__init__.py" line="164"/>
<source>Installing Game: </source> <source>Installing Game: </source>
<translation>Installierendes Spiel: </translation> <translation>Installierendes Spiel: </translation>
</message> </message>
@ -416,7 +416,7 @@
<message> <message>
<location filename="../ui/components/tabs/settings/dxvk.py" line="81"/> <location filename="../ui/components/tabs/settings/dxvk.py" line="81"/>
<source>Frame Time graph</source> <source>Frame Time graph</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/components/tabs/settings/dxvk.py" line="82"/> <location filename="../ui/components/tabs/settings/dxvk.py" line="82"/>
@ -536,12 +536,12 @@
<context> <context>
<name>GameInfo</name> <name>GameInfo</name>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="99"/> <location filename="../components/tabs/games/game_info/__init__.py" line="95"/>
<source>Repair file does not exist or game does not need a repair. Please verify game first</source> <source>Repair file does not exist or game does not need a repair. Please verify game first</source>
<translation>Reparationsdatei existiert nicht oder das Spiel braucht keine Reperatur. Bitte das spiel zuerst überprüfen</translation> <translation>Reparationsdatei existiert nicht oder das Spiel braucht keine Reperatur. Bitte das spiel zuerst überprüfen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="124"/> <location filename="../components/tabs/games/game_info/__init__.py" line="120"/>
<source>Verification failed, {} file(s) corrupted, {} file(s) are missing. Do you want to repair them?</source> <source>Verification failed, {} file(s) corrupted, {} file(s) are missing. Do you want to repair them?</source>
<translation>Überprüfung fehlgeschlagen, {} Datei(en) fehlerhaft, {} Datei(en) fehlen. Willst du das Spiel reparieren?</translation> <translation>Überprüfung fehlgeschlagen, {} Datei(en) fehlerhaft, {} Datei(en) fehlen. Willst du das Spiel reparieren?</translation>
</message> </message>
@ -621,32 +621,32 @@
<translation>ProtonDB Wertung</translation> <translation>ProtonDB Wertung</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="71"/> <location filename="../components/tabs/games/game_info/__init__.py" line="68"/>
<source>Platimum</source> <source>Platimum</source>
<translation>Platin</translation> <translation>Platin</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="72"/> <location filename="../components/tabs/games/game_info/__init__.py" line="69"/>
<source>Gold</source> <source>Gold</source>
<translation>Gold</translation> <translation>Gold</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="73"/> <location filename="../components/tabs/games/game_info/__init__.py" line="70"/>
<source>Silver</source> <source>Silver</source>
<translation>Silber</translation> <translation>Silber</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="74"/> <location filename="../components/tabs/games/game_info/__init__.py" line="71"/>
<source>Bronze</source> <source>Bronze</source>
<translation>Bronze</translation> <translation>Bronze</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="75"/> <location filename="../components/tabs/games/game_info/__init__.py" line="72"/>
<source>Could not get grade from ProtonDB</source> <source>Could not get grade from ProtonDB</source>
<translation>Konnte nicht die Wertung finden</translation> <translation>Konnte nicht die Wertung finden</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="162"/> <location filename="../components/tabs/games/game_info/__init__.py" line="158"/>
<source>Error</source> <source>Error</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
@ -654,22 +654,22 @@
<context> <context>
<name>GameList</name> <name>GameList</name>
<message> <message>
<location filename="../components/tabs/games/game_list.py" line="209"/> <location filename="../components/tabs/games/game_list.py" line="219"/>
<source>Launch</source> <source>Launch</source>
<translation>Starten</translation> <translation>Starten</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_list.py" line="227"/> <location filename="../components/tabs/games/game_list.py" line="237"/>
<source>Game running</source> <source>Game running</source>
<translation>Spiel läuft</translation> <translation>Spiel läuft</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_list.py" line="55"/> <location filename="../components/tabs/games/game_list.py" line="56"/>
<source>Installed Games: {} Available Games: {}</source> <source>Installed Games: {} Available Games: {}</source>
<translation>Installierte Spiele: {} Verfügbare Spiele: {}</translation> <translation>Installierte Spiele: {} Verfügbare Spiele: {}</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_list.py" line="218"/> <location filename="../components/tabs/games/game_list.py" line="228"/>
<source>Sync CLoud saves</source> <source>Sync CLoud saves</source>
<translation>Spielstand synchronisieren</translation> <translation>Spielstand synchronisieren</translation>
</message> </message>
@ -677,20 +677,35 @@
<context> <context>
<name>GameListHeadBar</name> <name>GameListHeadBar</name>
<message> <message>
<location filename="../components/tabs/games/__init__.py" line="87"/> <location filename="../components/tabs/games/__init__.py" line="95"/>
<source>Installed only</source> <source>Installed only</source>
<translation>Nur Installierte</translation> <translation>Nur Installierte</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/__init__.py" line="94"/> <location filename="../components/tabs/games/__init__.py" line="103"/>
<source>Import Game</source> <source>Import Game</source>
<translation>Spiel importieren</translation> <translation>Spiel importieren</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/__init__.py" line="106"/> <location filename="../components/tabs/games/__init__.py" line="115"/>
<source>Search Game</source> <source>Search Game</source>
<translation>Spiel suchen</translation> <translation>Spiel suchen</translation>
</message> </message>
<message>
<location filename="../components/tabs/games/__init__.py" line="95"/>
<source>All</source>
<translation>Alle</translation>
</message>
<message>
<location filename="../components/tabs/games/__init__.py" line="95"/>
<source>Offline Games</source>
<translation>Offline Spiele</translation>
</message>
<message>
<location filename="../components/tabs/games/__init__.py" line="95"/>
<source>32 Bit Games</source>
<translation>32 Bit Spiele</translation>
</message>
</context> </context>
<context> <context>
<name>GameSettings</name> <name>GameSettings</name>
@ -851,12 +866,12 @@
<translation type="obsolete">Spiel installieren</translation> <translation type="obsolete">Spiel installieren</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/uninstalled_icon_widget.py" line="46"/> <location filename="../components/tabs/games/game_widgets/uninstalled_icon_widget.py" line="44"/>
<source>Installation running</source> <source>Installation running</source>
<translation>Installation läuft</translation> <translation>Installation läuft</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_widgets/uninstalled_icon_widget.py" line="44"/> <location filename="../components/tabs/games/game_widgets/uninstalled_icon_widget.py" line="42"/>
<source>Game Info</source> <source>Game Info</source>
<translation>Spielinfo</translation> <translation>Spielinfo</translation>
</message> </message>
@ -894,24 +909,24 @@
<translation>Keine valide Session gefunden</translation> <translation>Keine valide Session gefunden</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="27"/> <location filename="../components/tabs/games/import_widget.py" line="26"/>
<source>Back</source> <source>Back</source>
<translation>Zurück</translation> <translation>Zurück</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="43"/> <location filename="../components/tabs/games/import_widget.py" line="42"/>
<source>Select path to game</source> <source>Select path to game</source>
<translation>Wähle den Pfad zum Spiel</translation> <translation>Wähle den Pfad zum Spiel</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="66"/> <location filename="../components/tabs/games/import_widget.py" line="65"/>
<source>Import Game</source> <source>Import Game</source>
<translation>Spiel importieren</translation> <translation>Spiel importieren</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="78"/> <location filename="../components/tabs/games/import_widget.py" line="78"/>
<source>Import all games from Epic Games Launcher</source> <source>Import all games from Epic Games Launcher</source>
<translation>Alle Spiele aus dem Epic Games Launcher importieren</translation> <translation type="obsolete">Alle Spiele aus dem Epic Games Launcher importieren</translation>
</message> </message>
<message> <message>
<location filename="../Components/Tabs/Games/ImportWidget.py" line="116"/> <location filename="../Components/Tabs/Games/ImportWidget.py" line="116"/>
@ -921,58 +936,63 @@
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="46"/> <location filename="../components/tabs/games/import_widget.py" line="46"/>
<source>Override app name (Only if imported game from legendary or the app could not find the app name)</source> <source>Override app name (Only if imported game from legendary or the app could not find the app name)</source>
<translation>App Name überschreiben (Nur falls das Spiel von Legendary importiert wird oder der App Name nicht gefunden wird</translation> <translation type="obsolete">App Name überschreiben (Nur falls das Spiel von Legendary importiert wird oder der App Name nicht gefunden wird</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="119"/> <location filename="../components/tabs/games/import_widget.py" line="114"/>
<source>Could not find app name</source> <source>Could not find app name</source>
<translation>Konnte den Appnamen nicht finden</translation> <translation>Konnte den Appnamen nicht finden</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="123"/> <location filename="../components/tabs/games/import_widget.py" line="118"/>
<source>Successfully imported {}. Reload library</source> <source>Successfully imported {}. Reload library</source>
<translation>Erfolgreich {} importiert. Spiele neu laden</translation> <translation>Erfolgreich {} importiert. Spiele neu laden</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="130"/> <location filename="../components/tabs/games/import_widget.py" line="125"/>
<source>Failed to import {}</source> <source>Failed to import {}</source>
<translation>{} Konnte nicht importiert werden</translation> <translation>{} Konnte nicht importiert werden</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="169"/> <location filename="../components/tabs/games/import_widget.py" line="169"/>
<source>Successfully imported {} Games. Reloading Library</source> <source>Successfully imported {} Games. Reloading Library</source>
<translation>Erfolgreich {} Spiele importiert. Spiele neu laden</translation> <translation type="obsolete">Erfolgreich {} Spiele importiert. Spiele neu laden</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="39"/> <location filename="../components/tabs/games/import_widget.py" line="38"/>
<source>Import existing game from Epic Games Launcher</source> <source>Import existing game from Epic Games Launcher</source>
<translation>Ein bereits existierendes Spiel aus dem Epic Games Launcher importieren</translation> <translation>Ein bereits existierendes Spiel aus dem Epic Games Launcher importieren</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/import_widget.py" line="173"/> <location filename="../components/tabs/games/import_widget.py" line="173"/>
<source>No Games were found</source> <source>No Games were found</source>
<translation>Keine Spiele wurden gefunden</translation> <translation type="obsolete">Keine Spiele wurden gefunden</translation>
</message>
<message>
<location filename="../components/tabs/games/import_widget.py" line="45"/>
<source>Override app name (Only if the app could not find the app name)</source>
<translation>Appnamen überschreiben. (Nur wenn dieser nicht gefunden werden kann)</translation>
</message> </message>
</context> </context>
<context> <context>
<name>InfoTabs</name> <name>InfoTabs</name>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="29"/> <location filename="../components/tabs/games/game_info/__init__.py" line="27"/>
<source>Back</source> <source>Back</source>
<translation>Zurück</translation> <translation>Zurück</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="33"/> <location filename="../components/tabs/games/game_info/__init__.py" line="31"/>
<source>Game Info</source> <source>Game Info</source>
<translation>Spielinfo</translation> <translation>Spielinfo</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="36"/> <location filename="../components/tabs/games/game_info/__init__.py" line="34"/>
<source>Settings</source> <source>Settings</source>
<translation>Einstellungen</translation> <translation>Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/__init__.py" line="40"/> <location filename="../components/tabs/games/game_info/__init__.py" line="38"/>
<source>DLCs</source> <source>DLCs</source>
<translation>DLCs</translation> <translation>DLCs</translation>
</message> </message>
@ -980,25 +1000,30 @@
<context> <context>
<name>InstallDialog</name> <name>InstallDialog</name>
<message> <message>
<location filename="../components/dialogs/install_dialog.py" line="39"/> <location filename="../components/dialogs/install_dialog.py" line="40"/>
<source>Max workers (0: Default)</source> <source>Max workers (0: Default)</source>
<translation>Maximale Anzahl Downloadprozessen(Standard: 0)</translation> <translation>Maximale Anzahl Downloadprozessen(Standard: 0)</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/install_dialog.py" line="20"/> <location filename="../components/dialogs/install_dialog.py" line="21"/>
<source>&lt;h3&gt;Install {}&lt;/h3&gt;</source> <source>&lt;h3&gt;Install {}&lt;/h3&gt;</source>
<translation>&lt;h3&gt;Installiere {}&lt;/h3&gt;</translation> <translation>&lt;h3&gt;Installiere {}&lt;/h3&gt;</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/install_dialog.py" line="43"/> <location filename="../components/dialogs/install_dialog.py" line="44"/>
<source>Force download</source> <source>Force download</source>
<translation>Download erzwingen</translation> <translation>Download erzwingen</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/install_dialog.py" line="47"/> <location filename="../components/dialogs/install_dialog.py" line="48"/>
<source>Ignore free space (Warning!)</source> <source>Ignore free space (Warning!)</source>
<translation>Freien Speicherplatz ignorieren (Achtung!)</translation> <translation>Freien Speicherplatz ignorieren (Achtung!)</translation>
</message> </message>
<message>
<location filename="../components/dialogs/install_dialog.py" line="52"/>
<source>Do not install game</source>
<translation>Das Spiel nicht installieren</translation>
</message>
</context> </context>
<context> <context>
<name>InstallInfoDialog</name> <name>InstallInfoDialog</name>
@ -1006,19 +1031,26 @@
<location filename="../components/dialogs/install_dialog.py" line="82"/> <location filename="../components/dialogs/install_dialog.py" line="82"/>
<source>Download size: {}GB <source>Download size: {}GB
Install size: {}GB</source> Install size: {}GB</source>
<translation>Downloadgröße: {}GB <translation type="obsolete">Downloadgröße: {}GB
Installationsgröße: {} GB</translation> Installationsgröße: {} GB</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/install_dialog.py" line="88"/> <location filename="../components/dialogs/install_dialog.py" line="96"/>
<source>Install</source> <source>Install</source>
<translation>Installieren</translation> <translation>Installieren</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/install_dialog.py" line="90"/> <location filename="../components/dialogs/install_dialog.py" line="98"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Abbruch</translation> <translation>Abbruch</translation>
</message> </message>
<message>
<location filename="../components/dialogs/install_dialog.py" line="91"/>
<source>Download size: {}
Install size: {}</source>
<translation>Download Größe: {}
Installierte Größe: {}</translation>
</message>
</context> </context>
<context> <context>
<name>InstalledListWidget</name> <name>InstalledListWidget</name>
@ -1043,30 +1075,50 @@ Installationsgröße: {} GB</translation>
<message> <message>
<location filename="../components/dialogs/launch_dialog.py" line="67"/> <location filename="../components/dialogs/launch_dialog.py" line="67"/>
<source>Launching Rare</source> <source>Launching Rare</source>
<translation>Starte Rare</translation> <translation type="obsolete">Starte Rare</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/launch_dialog.py" line="69"/> <location filename="../components/dialogs/launch_dialog.py" line="69"/>
<source>Logging in</source> <source>Logging in</source>
<translation>Einloggen</translation> <translation type="obsolete">Einloggen</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/launch_dialog.py" line="92"/> <location filename="../components/dialogs/launch_dialog.py" line="130"/>
<source>Downloading Images</source> <source>Downloading Images</source>
<translation>Bilder runterladen</translation> <translation>Bilder runterladen</translation>
</message> </message>
<message> <message>
<location filename="../components/dialogs/launch_dialog.py" line="103"/> <location filename="../components/dialogs/launch_dialog.py" line="155"/>
<source>Starting...</source> <source>Starting...</source>
<translation>Starten...</translation> <translation>Starten...</translation>
</message> </message>
<message>
<location filename="../ui/components/dialogs/launch_dialog.py" line="43"/>
<source>Dialog</source>
<translation>Dialog</translation>
</message>
<message>
<location filename="../ui/components/dialogs/launch_dialog.py" line="44"/>
<source>&lt;h2&gt;Launching Rare&lt;/h2&gt;</source>
<translation>&lt;h2&gt;Starte Rare&lt;/h2&gt;</translation>
</message>
<message>
<location filename="../ui/components/dialogs/launch_dialog.py" line="45"/>
<source>Downloading images</source>
<translation>Bilder herunterladen</translation>
</message>
<message>
<location filename="../ui/components/dialogs/launch_dialog.py" line="46"/>
<source>Getting Steam grades</source>
<translation>Lade Steamdaten</translation>
</message>
</context> </context>
<context> <context>
<name>LaunchThread</name> <name>LaunchThread</name>
<message> <message>
<location filename="../components/dialogs/launch_dialog.py" line="24"/> <location filename="../components/dialogs/launch_dialog.py" line="24"/>
<source>Downloading Images</source> <source>Downloading Images</source>
<translation>Bilder runterladen</translation> <translation type="obsolete">Bilder runterladen</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1219,17 +1271,17 @@ Installationsgröße: {} GB</translation>
<message> <message>
<location filename="../components/tabs/settings/mango_hud.py" line="7"/> <location filename="../components/tabs/settings/mango_hud.py" line="7"/>
<source>MangoHUD settings</source> <source>MangoHUD settings</source>
<translation>MangoHUD Einstellungen</translation> <translation type="obsolete">MangoHUD Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/settings/mango_hud.py" line="11"/> <location filename="../components/tabs/settings/mango_hud.py" line="11"/>
<source>CPU temperature</source> <source>CPU temperature</source>
<translation>CPU Temperatur</translation> <translation type="obsolete">CPU Temperatur</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/settings/mango_hud.py" line="12"/> <location filename="../components/tabs/settings/mango_hud.py" line="12"/>
<source>GPU temperature</source> <source>GPU temperature</source>
<translation>GPU Temperatur</translation> <translation type="obsolete">GPU Temperatur</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1270,12 +1322,12 @@ Installationsgröße: {} GB</translation>
<message> <message>
<location filename="../ui/utils/pathedit.py" line="42"/> <location filename="../ui/utils/pathedit.py" line="42"/>
<source>PathEdit</source> <source>PathEdit</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/utils/pathedit.py" line="43"/> <location filename="../ui/utils/pathedit.py" line="43"/>
<source>Browse...</source> <source>Browse...</source>
<translation type="unfinished"></translation> <translation>Suchen...</translation>
</message> </message>
<message> <message>
<location filename="../ui/utils/pathedit.py" line="44"/> <location filename="../ui/utils/pathedit.py" line="44"/>
@ -1377,7 +1429,6 @@ Installationsgröße: {} GB</translation>
<translation type="obsolete">Ordner für Bilder</translation> <translation type="obsolete">Ordner für Bilder</translation>
</message> </message>
<message> <message>
<location filename="../ui/components/tabs/settings/rare.py" line="119"/> <location filename="../ui/components/tabs/settings/rare.py" line="119"/>
<source>Language</source> <source>Language</source>
<translation>Sprache</translation> <translation>Sprache</translation>
@ -1515,7 +1566,7 @@ Installationsgröße: {} GB</translation>
<message> <message>
<location filename="../ui/components/tabs/settings/rare.py" line="132"/> <location filename="../ui/components/tabs/settings/rare.py" line="132"/>
<source>Open Log directory</source> <source>Open Log directory</source>
<translation>Ordner für Logs öffnen</translation> <translation>Logordner öffnen</translation>
</message> </message>
<message> <message>
<location filename="../ui/components/tabs/settings/rare.py" line="133"/> <location filename="../ui/components/tabs/settings/rare.py" line="133"/>
@ -1527,10 +1578,18 @@ Installationsgröße: {} GB</translation>
<source>Behavior</source> <source>Behavior</source>
<translation>Optionen</translation> <translation>Optionen</translation>
</message> </message>
</context>
<context>
<name>SteamThread</name>
<message> <message>
<location filename="../components/tabs/settings/rare.py" line="76"/> <location filename="../components/dialogs/launch_dialog.py" line="41"/>
<source>Open Log directory</source> <source>Getting data from ProtonDB</source>
<translation type="unfinished"></translation> <translation>Daten aus ProtonDB holen</translation>
</message>
<message>
<location filename="../components/dialogs/launch_dialog.py" line="45"/>
<source>Checking Games for data</source>
<translation>Daten überprüfen</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1672,7 +1731,7 @@ Installationsgröße: {} GB</translation>
<context> <context>
<name>TabWidget</name> <name>TabWidget</name>
<message> <message>
<location filename="../components/tab_widget.py" line="29"/> <location filename="../components/tab_widget.py" line="31"/>
<source>Games</source> <source>Games</source>
<translation>Spiele</translation> <translation>Spiele</translation>
</message> </message>
@ -1716,37 +1775,37 @@ Installationsgröße: {} GB</translation>
<context> <context>
<name>UninstalledInfo</name> <name>UninstalledInfo</name>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="61"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="65"/>
<source>Platinum</source> <source>Platinum</source>
<translation>Platin</translation> <translation>Platin</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="62"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="66"/>
<source>Gold</source> <source>Gold</source>
<translation>Gold</translation> <translation>Gold</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="63"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="67"/>
<source>Silver</source> <source>Silver</source>
<translation>Silber</translation> <translation>Silber</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="64"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="68"/>
<source>Bronze</source> <source>Bronze</source>
<translation>Bronze</translation> <translation>Bronze</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="65"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="69"/>
<source>Could not get grade from ProtonDB</source> <source>Could not get grade from ProtonDB</source>
<translation>Konnte nicht die Wertung finden</translation> <translation>Konnte nicht die Wertung finden</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="89"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="93"/>
<source>Install</source> <source>Install</source>
<translation>Installieren</translation> <translation>Installieren</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="131"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="137"/>
<source>Rating from ProtonDB: </source> <source>Rating from ProtonDB: </source>
<translation>ProtonDB Wertung: </translation> <translation>ProtonDB Wertung: </translation>
</message> </message>
@ -1756,12 +1815,12 @@ Installationsgröße: {} GB</translation>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="24"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="24"/>
<source>Back</source> <source>Back</source>
<translation>ZurückZurück</translation> <translation>Zurück</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="28"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="28"/>
<source>Game Info</source> <source>Game Info</source>
<translation>SpielinfoSpielinfo</translation> <translation>Spielinfo</translation>
</message> </message>
<message> <message>
<location filename="../components/tabs/games/game_info/uninstalled_info.py" line="37"/> <location filename="../components/tabs/games/game_info/uninstalled_info.py" line="37"/>
@ -1772,17 +1831,22 @@ Installationsgröße: {} GB</translation>
<context> <context>
<name>UpdateWidget</name> <name>UpdateWidget</name>
<message> <message>
<location filename="../components/tabs/downloads/__init__.py" line="299"/> <location filename="../components/tabs/downloads/__init__.py" line="308"/>
<source>Update Game</source> <source>Update Game</source>
<translation>Spiel updaten</translation> <translation>Spiel updaten</translation>
</message> </message>
<message>
<location filename="../components/tabs/downloads/__init__.py" line="314"/>
<source>Version: </source>
<translation>Version: </translation>
</message>
</context> </context>
<context> <context>
<name>legendary_settings</name> <name>legendary_settings</name>
<message> <message>
<location filename="../ui/components/tabs/settings/legendary.py" line="129"/> <location filename="../ui/components/tabs/settings/legendary.py" line="129"/>
<source>StackedWidget</source> <source>StackedWidget</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../ui/components/tabs/settings/legendary.py" line="130"/> <location filename="../ui/components/tabs/settings/legendary.py" line="130"/>

File diff suppressed because it is too large Load diff

View file

@ -5,21 +5,21 @@ QWidget {
QLabel { QLabel {
background-color: transparent; background-color: transparent;
padding: 4px; padding: 4px;
} }
QLineEdit { QLineEdit {
border: 1px solid darkslategrey; border: 1px solid darkslategrey;
border-radius: 2px; border-radius: 2px;
background-color: #334; background-color: #334;
padding: 2px; padding: 2px;
} }
QScrollBar { QScrollBar {
border: 1px solid darkslategrey; border: 1px solid darkslategrey;
border-radius: 4px; border-radius: 4px;
background-color: #334; background-color: #334;
padding: 1px; padding: 1px;
} }
QScrollBar::add-line:vertical { QScrollBar::add-line:vertical {
@ -54,12 +54,12 @@ QScrollBar::sub-line:horizontal {
subcontrol-origin: margin; subcontrol-origin: margin;
} }
QScrollBar::handle{ QScrollBar::handle {
border: 1px solid darkslategrey; border: 1px solid darkslategrey;
background-color: gray; background-color: gray;
border-radius: 4px; border-radius: 4px;
min-height: 20px; min-height: 20px;
min-width: 20px; min-width: 20px;
} }
QTabBar#main_tab_bar { QTabBar#main_tab_bar {
@ -172,12 +172,12 @@ QPushButton:hover#menu_button {
QRadioButton { QRadioButton {
background-color: none; background-color: none;
border-radius: 50%; border-radius: 50%;
} }
QRadioButton::indicator { QRadioButton::indicator {
border: 1px solid gray; border: 1px solid gray;
border-radius: 5%; border-radius: 5%;
} }
QCheckBox { QCheckBox {
@ -186,22 +186,22 @@ QCheckBox {
QCheckBox::indicator { QCheckBox::indicator {
border: 1px solid gray; border: 1px solid gray;
border-radius: 2px; border-radius: 2px;
} }
QCheckBox::indicator:checked { QCheckBox::indicator:checked {
width: -20ex; width: -20ex;
height: -20ex; height: -20ex;
background: #5F5F80; background: #5F5F80;
border-radius: 10px; border-radius: 10px;
} }
QSpinBox { QSpinBox {
border: 1px solid darkslategrey; border: 1px solid darkslategrey;
border-radius: 2px; border-radius: 2px;
background-color: #334; background-color: #334;
padding: 2px; padding: 2px;
} }
/* /*
@ -221,11 +221,11 @@ QComboBox::drop-down {
subcontrol-origin: padding; subcontrol-origin: padding;
subcontrol-position: top right; subcontrol-position: top right;
width: 15px; width: 15px;
/* /*
border-left-width: 1px; border-left-width: 1px;
border-left-color: darkgray; border-left-color: darkgray;
border-left-style: solid; border-left-style: solid;
*/ */
border-top-right-radius: 3px; border-top-right-radius: 3px;
border-bottom-right-radius: 3px; border-bottom-right-radius: 3px;
} }

View file

@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtWidgets
class Ui_LaunchDialog(object): class Ui_LaunchDialog(object):
@ -48,6 +48,7 @@ class Ui_LaunchDialog(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
LaunchDialog = QtWidgets.QDialog() LaunchDialog = QtWidgets.QDialog()
ui = Ui_LaunchDialog() ui = Ui_LaunchDialog()

View file

@ -1,56 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>LaunchDialog</class> <class>LaunchDialog</class>
<widget class="QDialog" name="LaunchDialog"> <widget class="QDialog" name="LaunchDialog">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>400</width> <width>400</width>
<height>168</height> <height>168</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Dialog</string> <string>Dialog</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QLabel" name="title_label"> <widget class="QLabel" name="title_label">
<property name="text"> <property name="text">
<string>&lt;h2&gt;Launching Rare&lt;/h2&gt;</string> <string>&lt;h2&gt;Launching Rare&lt;/h2&gt;</string>
</property> </property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="image_prog_bar">
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="image_info">
<property name="text">
<string>Downloading images</string>
</property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="steam_prog_bar">
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="steam_info">
<property name="text">
<string>Getting Steam grades</string>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item> <connections/>
<widget class="QProgressBar" name="image_prog_bar">
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="image_info">
<property name="text">
<string>Downloading images</string>
</property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="steam_prog_bar">
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="steam_info">
<property name="text">
<string>Getting Steam grades</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -22,7 +22,7 @@ class Ui_GameInfo(object):
self.layout_game_info_form.setObjectName("layout_game_info_form") self.layout_game_info_form.setObjectName("layout_game_info_form")
self.install_size = QtWidgets.QLabel(GameInfo) self.install_size = QtWidgets.QLabel(GameInfo)
self.install_size.setText("error") self.install_size.setText("error")
self.install_size.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.install_size.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.install_size.setObjectName("install_size") self.install_size.setObjectName("install_size")
self.layout_game_info_form.addWidget(self.install_size, 4, 1, 1, 1) self.layout_game_info_form.addWidget(self.install_size, 4, 1, 1, 1)
self.lbl_dev = QtWidgets.QLabel(GameInfo) self.lbl_dev = QtWidgets.QLabel(GameInfo)
@ -39,7 +39,7 @@ class Ui_GameInfo(object):
self.layout_game_info_form.addWidget(self.lbl_dev, 0, 0, 1, 1, QtCore.Qt.AlignRight) self.layout_game_info_form.addWidget(self.lbl_dev, 0, 0, 1, 1, QtCore.Qt.AlignRight)
self.version = QtWidgets.QLabel(GameInfo) self.version = QtWidgets.QLabel(GameInfo)
self.version.setText("error") self.version.setText("error")
self.version.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.version.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.version.setObjectName("version") self.version.setObjectName("version")
self.layout_game_info_form.addWidget(self.version, 2, 1, 1, 1) self.layout_game_info_form.addWidget(self.version, 2, 1, 1, 1)
self.lbl_install_path = QtWidgets.QLabel(GameInfo) self.lbl_install_path = QtWidgets.QLabel(GameInfo)
@ -106,7 +106,7 @@ class Ui_GameInfo(object):
self.repair_button = QtWidgets.QPushButton(self.wg_game_actions) self.repair_button = QtWidgets.QPushButton(self.wg_game_actions)
self.repair_button.setObjectName("repair_button") self.repair_button.setObjectName("repair_button")
self.layout_game_actions.addWidget(self.repair_button) self.layout_game_actions.addWidget(self.repair_button)
self.layout_game_info_form.addWidget(self.wg_game_actions, 6, 1, 1, 1, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.layout_game_info_form.addWidget(self.wg_game_actions, 6, 1, 1, 1, QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.lbl_version = QtWidgets.QLabel(GameInfo) self.lbl_version = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@ -133,18 +133,18 @@ class Ui_GameInfo(object):
self.layout_game_info_form.addWidget(self.lbl_app_name, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout_game_info_form.addWidget(self.lbl_app_name, 1, 0, 1, 1, QtCore.Qt.AlignRight)
self.dev = QtWidgets.QLabel(GameInfo) self.dev = QtWidgets.QLabel(GameInfo)
self.dev.setText("error") self.dev.setText("error")
self.dev.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.dev.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.dev.setObjectName("dev") self.dev.setObjectName("dev")
self.layout_game_info_form.addWidget(self.dev, 0, 1, 1, 1) self.layout_game_info_form.addWidget(self.dev, 0, 1, 1, 1)
self.app_name = QtWidgets.QLabel(GameInfo) self.app_name = QtWidgets.QLabel(GameInfo)
self.app_name.setText("error") self.app_name.setText("error")
self.app_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.app_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.app_name.setObjectName("app_name") self.app_name.setObjectName("app_name")
self.layout_game_info_form.addWidget(self.app_name, 1, 1, 1, 1) self.layout_game_info_form.addWidget(self.app_name, 1, 1, 1, 1)
self.install_path = QtWidgets.QLabel(GameInfo) self.install_path = QtWidgets.QLabel(GameInfo)
self.install_path.setText("error") self.install_path.setText("error")
self.install_path.setWordWrap(True) self.install_path.setWordWrap(True)
self.install_path.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.install_path.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.install_path.setObjectName("install_path") self.install_path.setObjectName("install_path")
self.layout_game_info_form.addWidget(self.install_path, 5, 1, 1, 1) self.layout_game_info_form.addWidget(self.install_path, 5, 1, 1, 1)
self.lbl_game_actions = QtWidgets.QLabel(GameInfo) self.lbl_game_actions = QtWidgets.QLabel(GameInfo)
@ -168,7 +168,7 @@ class Ui_GameInfo(object):
self.layout_game_info_form.addWidget(self.lbl_grade, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout_game_info_form.addWidget(self.lbl_grade, 3, 0, 1, 1, QtCore.Qt.AlignRight)
self.grade = QtWidgets.QLabel(GameInfo) self.grade = QtWidgets.QLabel(GameInfo)
self.grade.setText("error") self.grade.setText("error")
self.grade.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.grade.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.grade.setObjectName("grade") self.grade.setObjectName("grade")
self.layout_game_info_form.addWidget(self.grade, 3, 1, 1, 1) self.layout_game_info_form.addWidget(self.grade, 3, 1, 1, 1)
self.layout_game_info.addLayout(self.layout_game_info_form, 2, 1, 1, 1) self.layout_game_info.addLayout(self.layout_game_info_form, 2, 1, 1, 1)
@ -177,10 +177,10 @@ class Ui_GameInfo(object):
self.image.setFrameShadow(QtWidgets.QFrame.Sunken) self.image.setFrameShadow(QtWidgets.QFrame.Sunken)
self.image.setText("") self.image.setText("")
self.image.setObjectName("image") self.image.setObjectName("image")
self.layout_game_info.addWidget(self.image, 2, 0, 1, 1, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.layout_game_info.addWidget(self.image, 2, 0, 1, 1, QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.game_title = QtWidgets.QLabel(GameInfo) self.game_title = QtWidgets.QLabel(GameInfo)
self.game_title.setText("error") self.game_title.setText("error")
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.game_title.setObjectName("game_title") self.game_title.setObjectName("game_title")
self.layout_game_info.addWidget(self.game_title, 0, 0, 1, 3) self.layout_game_info.addWidget(self.game_title, 0, 0, 1, 3)
@ -205,6 +205,7 @@ class Ui_GameInfo(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
GameInfo = QtWidgets.QWidget() GameInfo = QtWidgets.QWidget()
ui = Ui_GameInfo() ui = Ui_GameInfo()

View file

@ -1,376 +1,376 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>GameInfo</class> <class>GameInfo</class>
<widget class="QWidget" name="GameInfo"> <widget class="QWidget" name="GameInfo">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>436</width> <width>436</width>
<height>317</height> <height>317</height>
</rect> </rect>
</property>
<property name="windowTitle">
<string>Game Info</string>
</property>
<layout class="QGridLayout" name="layout_game_info">
<item row="2" column="1">
<layout class="QGridLayout" name="layout_game_info_form">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<property name="spacing">
<number>12</number>
</property>
<item row="4" column="1">
<widget class="QLabel" name="install_size">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_dev">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Developer</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="version">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_install_path">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Installation Path</string>
</property>
</widget>
</item>
<item row="4" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_install_size">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Installation Size</string>
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="hs_game_info_form">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="0">
<spacer name="vs_game_info_form">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="1" alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="QWidget" name="wg_game_actions" native="true">
<property name="minimumSize">
<size>
<width>250</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="layout_game_actions">
<property name="leftMargin">
<number>0</number>
</property> </property>
<property name="topMargin"> <property name="windowTitle">
<number>0</number> <string>Game Info</string>
</property> </property>
<property name="rightMargin"> <layout class="QGridLayout" name="layout_game_info">
<number>0</number> <item row="2" column="1">
</property> <layout class="QGridLayout" name="layout_game_info_form">
<property name="bottomMargin"> <property name="leftMargin">
<number>0</number> <number>6</number>
</property> </property>
<item> <property name="topMargin">
<widget class="QPushButton" name="uninstall_button"> <number>6</number>
<property name="text"> </property>
<string>Uninstall Game</string> <property name="rightMargin">
</property> <number>6</number>
</widget> </property>
</item> <property name="bottomMargin">
<item> <number>6</number>
<widget class="QStackedWidget" name="verify_widget"> </property>
<property name="currentIndex"> <property name="spacing">
<number>0</number> <number>12</number>
</property> </property>
<widget class="QWidget" name="page_verify_button"> <item row="4" column="1">
<layout class="QVBoxLayout" name="layout_verify_button"> <widget class="QLabel" name="install_size">
<property name="spacing"> <property name="text">
<number>0</number> <string notr="true">error</string>
</property> </property>
<property name="leftMargin"> <property name="textInteractionFlags">
<number>0</number> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property> </property>
<property name="topMargin"> </widget>
<number>0</number> </item>
</property> <item row="0" column="0" alignment="Qt::AlignRight">
<property name="rightMargin"> <widget class="QLabel" name="lbl_dev">
<number>0</number> <property name="sizePolicy">
</property> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<property name="bottomMargin"> <horstretch>0</horstretch>
<number>0</number> <verstretch>0</verstretch>
</property> </sizepolicy>
<item> </property>
<widget class="QPushButton" name="verify_button"> <property name="font">
<property name="text"> <font>
<string>Verify Installation</string> <weight>75</weight>
</property> <bold>true</bold>
</widget> </font>
</property>
<property name="text">
<string>Developer</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="version">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_install_path">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Installation Path</string>
</property>
</widget>
</item>
<item row="4" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_install_size">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Installation Size</string>
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="hs_game_info_form">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="0">
<spacer name="vs_game_info_form">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="1" alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="QWidget" name="wg_game_actions" native="true">
<property name="minimumSize">
<size>
<width>250</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="layout_game_actions">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="uninstall_button">
<property name="text">
<string>Uninstall Game</string>
</property>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="verify_widget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_verify_button">
<layout class="QVBoxLayout" name="layout_verify_button">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="verify_button">
<property name="text">
<string>Verify Installation</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_verify_progress">
<layout class="QVBoxLayout" name="layout_verify_progress">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QProgressBar" name="verify_progress">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QPushButton" name="repair_button">
<property name="text">
<string>Repair Instalation</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_version">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_app_name">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Application Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="dev">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="app_name">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="install_path">
<property name="text">
<string notr="true">error</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="6" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_game_actions">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Actions</string>
</property>
</widget>
</item>
<item row="3" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_grade">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ProtonDB Grade</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="grade">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</item> </item>
</layout> <item row="2" column="0" alignment="Qt::AlignLeft|Qt::AlignTop">
</widget> <widget class="QLabel" name="image">
<widget class="QWidget" name="page_verify_progress"> <property name="frameShape">
<layout class="QVBoxLayout" name="layout_verify_progress"> <enum>QFrame::StyledPanel</enum>
<property name="spacing"> </property>
<number>0</number> <property name="frameShadow">
</property> <enum>QFrame::Sunken</enum>
<property name="leftMargin"> </property>
<number>0</number> <property name="text">
</property> <string notr="true"/>
<property name="topMargin"> </property>
<number>0</number> </widget>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QProgressBar" name="verify_progress">
<property name="value">
<number>24</number>
</property>
</widget>
</item> </item>
</layout> <item row="0" column="0" colspan="3">
</widget> <widget class="QLabel" name="game_title">
</widget> <property name="text">
</item> <string notr="true">error</string>
<item> </property>
<widget class="QPushButton" name="repair_button"> <property name="textInteractionFlags">
<property name="text"> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
<string>Repair Instalation</string> </property>
</property> </widget>
</widget> </item>
</item> </layout>
</layout>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_version">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_app_name">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Application Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="dev">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="app_name">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="install_path">
<property name="text">
<string notr="true">error</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="6" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_game_actions">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Actions</string>
</property>
</widget>
</item>
<item row="3" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_grade">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ProtonDB Grade</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="grade">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0" alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="QLabel" name="image">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget> </widget>
</item> <resources/>
<item row="0" column="0" colspan="3"> <connections/>
<widget class="QLabel" name="game_title">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtWidgets
class Ui_GameSettings(object): class Ui_GameSettings(object):
@ -19,7 +19,7 @@ class Ui_GameSettings(object):
self.game_settings_layout.setObjectName("game_settings_layout") self.game_settings_layout.setObjectName("game_settings_layout")
self.title = QtWidgets.QLabel(GameSettings) self.title = QtWidgets.QLabel(GameSettings)
self.title.setText("error") self.title.setText("error")
self.title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) self.title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.title.setObjectName("title") self.title.setObjectName("title")
self.game_settings_layout.addWidget(self.title) self.game_settings_layout.addWidget(self.title)
self.launch_settings_groupbox = QtWidgets.QGroupBox(GameSettings) self.launch_settings_groupbox = QtWidgets.QGroupBox(GameSettings)
@ -146,6 +146,7 @@ class Ui_GameSettings(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
GameSettings = QtWidgets.QWidget() GameSettings = QtWidgets.QWidget()
ui = Ui_GameSettings() ui = Ui_GameSettings()

View file

@ -1,277 +1,277 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>GameSettings</class> <class>GameSettings</class>
<widget class="QWidget" name="GameSettings"> <widget class="QWidget" name="GameSettings">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>759</width> <width>759</width>
<height>617</height> <height>617</height>
</rect> </rect>
</property>
<property name="windowTitle">
<string>GameSettings</string>
</property>
<layout class="QVBoxLayout" name="game_settings_layout">
<item>
<widget class="QLabel" name="title">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="launch_settings_groupbox">
<property name="title">
<string>Launch Settings</string>
</property>
<layout class="QGridLayout" name="launch_settings_layout">
<item row="0" column="1" alignment="Qt::AlignLeft">
<widget class="QComboBox" name="skip_update">
<item>
<property name="text">
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
</widget>
</item>
<item row="2" column="1" alignment="Qt::AlignLeft">
<widget class="QCheckBox" name="cloud_sync">
<property name="text">
<string notr="true"/>
</property> </property>
</widget> <property name="windowTitle">
</item> <string>GameSettings</string>
<item row="3" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="launch_params_label">
<property name="text">
<string>Launch parameters</string>
</property> </property>
</widget> <layout class="QVBoxLayout" name="game_settings_layout">
</item> <item>
<item row="4" column="0" alignment="Qt::AlignRight"> <widget class="QLabel" name="title">
<widget class="QLabel" name="wrapper_label"> <property name="text">
<property name="text"> <string notr="true">error</string>
<string>Wrapper</string> </property>
</property> <property name="textInteractionFlags">
</widget> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</item> </property>
<item row="0" column="0" alignment="Qt::AlignRight"> </widget>
<widget class="QLabel" name="skip_update_label"> </item>
<property name="text"> <item>
<string>Skip update check</string> <widget class="QGroupBox" name="launch_settings_groupbox">
</property> <property name="title">
</widget> <string>Launch Settings</string>
</item> </property>
<item row="4" column="1"> <layout class="QGridLayout" name="launch_settings_layout">
<widget class="QWidget" name="wrapper_widget" native="true"> <item row="0" column="1" alignment="Qt::AlignLeft">
<layout class="QHBoxLayout" name="wrapper_layout"> <widget class="QComboBox" name="skip_update">
<property name="leftMargin"> <item>
<number>0</number> <property name="text">
</property> <string>Default</string>
<property name="topMargin"> </property>
<number>0</number> </item>
</property> <item>
<property name="rightMargin"> <property name="text">
<number>0</number> <string>Yes</string>
</property> </property>
<property name="bottomMargin"> </item>
<number>0</number> <item>
</property> <property name="text">
<item> <string>No</string>
<widget class="QLineEdit" name="wrapper"> </property>
<property name="minimumSize"> </item>
<size> </widget>
<width>400</width> </item>
<height>0</height> <item row="2" column="1" alignment="Qt::AlignLeft">
</size> <widget class="QCheckBox" name="cloud_sync">
</property> <property name="text">
<property name="placeholderText"> <string notr="true"/>
<string>e.g. optirun</string> </property>
</property> </widget>
</widget> </item>
</item> <item row="3" column="0" alignment="Qt::AlignRight">
<item> <widget class="QLabel" name="launch_params_label">
<widget class="QPushButton" name="wrapper_button"> <property name="text">
<property name="text"> <string>Launch parameters</string>
<string>Save</string> </property>
</property> </widget>
</widget> </item>
</item> <item row="4" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="wrapper_label">
<property name="text">
<string>Wrapper</string>
</property>
</widget>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="skip_update_label">
<property name="text">
<string>Skip update check</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QWidget" name="wrapper_widget" native="true">
<layout class="QHBoxLayout" name="wrapper_layout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="wrapper">
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>e.g. optirun</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="wrapper_button">
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="offline_label">
<property name="text">
<string>Offline mode</string>
</property>
</widget>
</item>
<item row="1" column="1" alignment="Qt::AlignLeft">
<widget class="QComboBox" name="offline">
<item>
<property name="text">
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
</widget>
</item>
<item row="3" column="1">
<widget class="QWidget" name="launch_params_widget" native="true">
<layout class="QHBoxLayout" name="launch_params_layout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="launch_params">
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>parameters</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="launch_params_button">
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="cloud_sync_label">
<property name="text">
<string>Sync with cloud</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="proton_groupbox">
<property name="title">
<string>Linux Settings</string>
</property>
<layout class="QGridLayout" name="proton_layout">
<item row="0" column="1" alignment="Qt::AlignLeft">
<widget class="QComboBox" name="proton_wrapper">
<item>
<property name="text">
<string>Don't use Proton</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="proton_wrapper_label">
<property name="text">
<string>Proton</string>
</property>
</widget>
</item>
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="proton_prefix_label">
<property name="text">
<string>Prefix</string>
</property>
</widget>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Maximum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1" rowspan="2">
<layout class="QVBoxLayout" name="proton_prefix_layout"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="proton_prefix_alignment_label">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<layout class="QVBoxLayout" name="linux_layout">
<property name="spacing">
<number>0</number>
</property>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="game_settings_vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</widget>
</item>
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="offline_label">
<property name="text">
<string>Offline mode</string>
</property>
</widget>
</item>
<item row="1" column="1" alignment="Qt::AlignLeft">
<widget class="QComboBox" name="offline">
<item>
<property name="text">
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
</widget>
</item>
<item row="3" column="1">
<widget class="QWidget" name="launch_params_widget" native="true">
<layout class="QHBoxLayout" name="launch_params_layout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="launch_params">
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>parameters</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="launch_params_button">
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="cloud_sync_label">
<property name="text">
<string>Sync with cloud</string>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item> <connections/>
<widget class="QGroupBox" name="proton_groupbox">
<property name="title">
<string>Linux Settings</string>
</property>
<layout class="QGridLayout" name="proton_layout">
<item row="0" column="1" alignment="Qt::AlignLeft">
<widget class="QComboBox" name="proton_wrapper">
<item>
<property name="text">
<string>Don't use Proton</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="proton_wrapper_label">
<property name="text">
<string>Proton</string>
</property>
</widget>
</item>
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="proton_prefix_label">
<property name="text">
<string>Prefix</string>
</property>
</widget>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Maximum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1" rowspan="2">
<layout class="QVBoxLayout" name="proton_prefix_layout"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="proton_prefix_alignment_label">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<layout class="QVBoxLayout" name="linux_layout">
<property name="spacing">
<number>0</number>
</property>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="game_settings_vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -104,12 +104,14 @@ class Ui_About(object):
self.dev_label.setText(_translate("About", "Rare Developer")) self.dev_label.setText(_translate("About", "Rare Developer"))
self.license.setText(_translate("About", "GNU General Public License v3.0")) self.license.setText(_translate("About", "GNU General Public License v3.0"))
self.lgd_dev.setToolTip(_translate("About", "Github")) self.lgd_dev.setToolTip(_translate("About", "Github"))
self.info_text.setText(_translate("About", "This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on <a href=\'https://github.com/Dummerle/Rare/issues\'>Github</a>. You can also contact me on Discord (Dummerle#7419). Or you can join the <a href=\'https://discord.gg/YvmABK9YSk\'>Discord server</a>")) self.info_text.setText(_translate("About",
"This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on <a href=\'https://github.com/Dummerle/Rare/issues\'>Github</a>. You can also contact me on Discord (Dummerle#7419). Or you can join the <a href=\'https://discord.gg/YvmABK9YSk\'>Discord server</a>"))
self.title.setText(_translate("About", "<h2>About</h2>")) self.title.setText(_translate("About", "<h2>About</h2>"))
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
About = QtWidgets.QWidget() About = QtWidgets.QWidget()
ui = Ui_About() ui = Ui_About()

View file

@ -1,186 +1,190 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>About</class> <class>About</class>
<widget class="QWidget" name="About"> <widget class="QWidget" name="About">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>499</width> <width>499</width>
<height>396</height> <height>396</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>About</string> <string>About</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="4" column="1"> <item row="4" column="1">
<widget class="QPushButton" name="open_browser"> <widget class="QPushButton" name="open_browser">
<property name="text"> <property name="text">
<string>Download latest release</string> <string>Download latest release</string>
</property> </property>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="version_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="7" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="license_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>License</string>
</property>
</widget>
</item>
<item row="6" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lgd_dev_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Legendary Developer</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="dev">
<property name="toolTip">
<string>Github</string>
</property>
<property name="text">
<string notr="true">&lt;a href='https://github.com/Dummerle'&gt;Dummerle&lt;/a&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="update_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Update available</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="version">
<property name="text">
<string notr="true">error</string>
</property>
</widget>
</item>
<item row="5" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="dev_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Rare Developer</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLabel" name="license">
<property name="text">
<string>GNU General Public License v3.0</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="update">
<property name="text">
<string notr="true">error</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="lgd_dev">
<property name="toolTip">
<string>Github</string>
</property>
<property name="text">
<string notr="true">&lt;a href='https://github.com/derrod/'&gt;derrod&lt;/a&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="14" column="0" colspan="3">
<widget class="QLabel" name="info_text">
<property name="text">
<string>This is a beta version, so you can get bugs. If you get a bug, please report it by
creating an Issue on &lt;a href='https://github.com/Dummerle/Rare/issues'&gt;Github&lt;/a&gt;.
You can also contact me on Discord (Dummerle#7419). Or you can join the &lt;a
href='https://discord.gg/YvmABK9YSk'&gt;Discord server&lt;/a&gt;
</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="15" column="0" colspan="3">
<spacer name="about_vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="3">
<widget class="QLabel" name="title">
<property name="text">
<string>&lt;h2&gt;About&lt;/h2&gt;</string>
</property>
</widget>
</item>
<item row="2" column="2" rowspan="6">
<spacer name="about_hspacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item row="2" column="0" alignment="Qt::AlignRight"> <connections/>
<widget class="QLabel" name="version_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="7" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="license_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>License</string>
</property>
</widget>
</item>
<item row="6" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lgd_dev_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Legendary Developer</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="dev">
<property name="toolTip">
<string>Github</string>
</property>
<property name="text">
<string notr="true">&lt;a href='https://github.com/Dummerle'&gt;Dummerle&lt;/a&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="update_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Update available</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="version">
<property name="text">
<string notr="true">error</string>
</property>
</widget>
</item>
<item row="5" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="dev_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Rare Developer</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLabel" name="license">
<property name="text">
<string>GNU General Public License v3.0</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="update">
<property name="text">
<string notr="true">error</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="lgd_dev">
<property name="toolTip">
<string>Github</string>
</property>
<property name="text">
<string notr="true">&lt;a href='https://github.com/derrod/'&gt;derrod&lt;/a&gt;</string>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="14" column="0" colspan="3">
<widget class="QLabel" name="info_text">
<property name="text">
<string>This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on &lt;a href='https://github.com/Dummerle/Rare/issues'&gt;Github&lt;/a&gt;. You can also contact me on Discord (Dummerle#7419). Or you can join the &lt;a href='https://discord.gg/YvmABK9YSk'&gt;Discord server&lt;/a&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item row="15" column="0" colspan="3">
<spacer name="about_vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="3">
<widget class="QLabel" name="title">
<property name="text">
<string>&lt;h2&gt;About&lt;/h2&gt;</string>
</property>
</widget>
</item>
<item row="2" column="2" rowspan="6">
<spacer name="about_hspacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtWidgets
class Ui_DxvkSettings(object): class Ui_DxvkSettings(object):
@ -89,6 +89,7 @@ class Ui_DxvkSettings(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
DxvkSettings = QtWidgets.QGroupBox() DxvkSettings = QtWidgets.QGroupBox()
ui = Ui_DxvkSettings() ui = Ui_DxvkSettings()

View file

@ -1,138 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>DxvkSettings</class> <class>DxvkSettings</class>
<widget class="QGroupBox" name="DxvkSettings"> <widget class="QGroupBox" name="DxvkSettings">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>419</width> <width>419</width>
<height>185</height> <height>185</height>
</rect> </rect>
</property>
<property name="windowTitle">
<string>DxvkSettings</string>
</property>
<property name="title">
<string>DXVK Settings</string>
</property>
<layout class="QGridLayout" name="dxvk_layout">
<item row="2" column="0" colspan="3">
<widget class="QGroupBox" name="gb_dxvk_options">
<property name="title">
<string>DXVK HUD Options</string>
</property>
<layout class="QGridLayout" name="layout_dxvk_options">
<item row="0" column="2">
<widget class="QCheckBox" name="version">
<property name="text">
<string>DXVK Version</string>
</property> </property>
</widget> <property name="windowTitle">
</item> <string>DxvkSettings</string>
<item row="1" column="0">
<widget class="QCheckBox" name="fps">
<property name="text">
<string>FPS</string>
</property> </property>
</widget> <property name="title">
</item> <string>DXVK Settings</string>
<item row="0" column="1">
<widget class="QCheckBox" name="memory">
<property name="text">
<string>Memory Usage</string>
</property> </property>
</widget> <layout class="QGridLayout" name="dxvk_layout">
</item> <item row="2" column="0" colspan="3">
<item row="0" column="0"> <widget class="QGroupBox" name="gb_dxvk_options">
<widget class="QCheckBox" name="devinfo"> <property name="title">
<property name="text"> <string>DXVK HUD Options</string>
<string>Device Info</string> </property>
</property> <layout class="QGridLayout" name="layout_dxvk_options">
</widget> <item row="0" column="2">
</item> <widget class="QCheckBox" name="version">
<item row="1" column="1"> <property name="text">
<widget class="QCheckBox" name="gpuload"> <string>DXVK Version</string>
<property name="text"> </property>
<string>GPU Usage</string> </widget>
</property> </item>
</widget> <item row="1" column="0">
</item> <widget class="QCheckBox" name="fps">
<item row="2" column="0"> <property name="text">
<widget class="QCheckBox" name="frametime"> <string>FPS</string>
<property name="text"> </property>
<string>Frame Time graph</string> </widget>
</property> </item>
</widget> <item row="0" column="1">
</item> <widget class="QCheckBox" name="memory">
<item row="0" column="3" rowspan="3"> <property name="text">
<spacer name="hs_dxvk_options"> <string>Memory Usage</string>
<property name="orientation"> </property>
<enum>Qt::Horizontal</enum> </widget>
</property> </item>
<property name="sizeHint" stdset="0"> <item row="0" column="0">
<size> <widget class="QCheckBox" name="devinfo">
<width>0</width> <property name="text">
<height>20</height> <string>Device Info</string>
</size> </property>
</property> </widget>
</spacer> </item>
</item> <item row="1" column="1">
<item row="1" column="2"> <widget class="QCheckBox" name="gpuload">
<widget class="QCheckBox" name="api"> <property name="text">
<property name="text"> <string>GPU Usage</string>
<string>D3D Version</string> </property>
</property> </widget>
</widget> </item>
</item> <item row="2" column="0">
</layout> <widget class="QCheckBox" name="frametime">
<property name="text">
<string>Frame Time graph</string>
</property>
</widget>
</item>
<item row="0" column="3" rowspan="3">
<spacer name="hs_dxvk_options">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="2">
<widget class="QCheckBox" name="api">
<property name="text">
<string>D3D Version</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbl_show_dxvk">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Show HUD</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="show_dxvk">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>System Default</string>
</property>
</item>
<item>
<property name="text">
<string>Hidden</string>
</property>
</item>
<item>
<property name="text">
<string>Visible</string>
</property>
</item>
<item>
<property name="text">
<string>Custom Options</string>
</property>
</item>
</widget>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item row="0" column="0"> <connections/>
<widget class="QLabel" name="lbl_show_dxvk">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Show HUD</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="show_dxvk">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>System Default</string>
</property>
</item>
<item>
<property name="text">
<string>Hidden</string>
</property>
</item>
<item>
<property name="text">
<string>Visible</string>
</property>
</item>
<item>
<property name="text">
<string>Custom Options</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -150,6 +150,7 @@ class Ui_legendary_settings(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
legendary_settings = QtWidgets.QStackedWidget() legendary_settings = QtWidgets.QStackedWidget()
ui = Ui_legendary_settings() ui = Ui_legendary_settings()

View file

@ -1,234 +1,234 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>legendary_settings</class> <class>legendary_settings</class>
<widget class="QStackedWidget" name="legendary_settings"> <widget class="QStackedWidget" name="legendary_settings">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>532</width> <width>532</width>
<height>383</height> <height>383</height>
</rect> </rect>
</property>
<property name="windowTitle">
<string>StackedWidget</string>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="settings">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1">
<widget class="QGroupBox" name="gb_clean">
<property name="title">
<string>Cleanup</string>
</property>
<layout class="QVBoxLayout" name="layout_clean">
<item>
<widget class="QPushButton" name="clean_button_without_manifests">
<property name="text">
<string>Clean, but keep manifests</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="clean_button">
<property name="text">
<string>Remove everything</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="egl_sync">
<property name="title">
<string>EGL Sync</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="sync_button">
<property name="text">
<string>Sync Settings</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="gb_downloads">
<property name="title">
<string>Download Settings</string>
</property>
<layout class="QGridLayout" name="layout_downloads">
<item row="0" column="4">
<spacer name="hs_downloads">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="max_worker_select"/>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_max_workers">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Max Workers</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="lbl_max_workers_info">
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Less is slower (0: Default)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="gb_install_dir">
<property name="title">
<string>Default Installation Directory</string>
</property>
<layout class="QVBoxLayout" name="layout_install_dir"/>
</widget>
</item>
<item row="2" column="1">
<spacer name="vs_legendary">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="egl_sync_page">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QPushButton" name="back_button">
<property name="text">
<string>Back</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="title">
<property name="text">
<string>&lt;h2&gt;Sync Games with Epic Games Store&lt;/h2&gt;</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="pathedit_placeholder"/>
</item>
<item>
<widget class="QLabel" name="path_info">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QGroupBox" name="exportable_games">
<property name="title">
<string>Exportable Games</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_3"/> <property name="windowTitle">
</widget> <string>StackedWidget</string>
</item>
<item row="0" column="1">
<widget class="QGroupBox" name="importable_games">
<property name="title">
<string>Importable</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_4"/> <property name="currentIndex">
</widget> <number>1</number>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="export_all_button">
<property name="text">
<string>Export all Games</string>
</property> </property>
</widget> <widget class="QWidget" name="settings">
</item> <layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="1"> <item row="0" column="1">
<widget class="QPushButton" name="import_all_button"> <widget class="QGroupBox" name="gb_clean">
<property name="text"> <property name="title">
<string>Import all Games</string> <string>Cleanup</string>
</property> </property>
</widget> <layout class="QVBoxLayout" name="layout_clean">
</item> <item>
</layout> <widget class="QPushButton" name="clean_button_without_manifests">
</item> <property name="text">
<item> <string>Clean, but keep manifests</string>
<widget class="QGroupBox" name="groupBox"> </property>
<property name="title"> </widget>
<string>Enable Sync</string> </item>
</property> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <widget class="QPushButton" name="clean_button">
<item> <property name="text">
<widget class="QPushButton" name="sync_once_button"> <string>Remove everything</string>
<property name="text"> </property>
<string>Sync once</string> </widget>
</property> </item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="egl_sync">
<property name="title">
<string>EGL Sync</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="sync_button">
<property name="text">
<string>Sync Settings</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="gb_downloads">
<property name="title">
<string>Download Settings</string>
</property>
<layout class="QGridLayout" name="layout_downloads">
<item row="0" column="4">
<spacer name="hs_downloads">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="max_worker_select"/>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_max_workers">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Max Workers</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="lbl_max_workers_info">
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Less is slower (0: Default)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="gb_install_dir">
<property name="title">
<string>Default Installation Directory</string>
</property>
<layout class="QVBoxLayout" name="layout_install_dir"/>
</widget>
</item>
<item row="2" column="1">
<spacer name="vs_legendary">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
</item> <widget class="QWidget" name="egl_sync_page">
<item> <layout class="QVBoxLayout" name="verticalLayout_2">
<widget class="QPushButton" name="enable_sync_button"> <item>
<property name="text"> <widget class="QPushButton" name="back_button">
<string>Enable automatic sync</string> <property name="text">
</property> <string>Back</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="title">
<property name="text">
<string>&lt;h2&gt;Sync Games with Epic Games Store&lt;/h2&gt;</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="pathedit_placeholder"/>
</item>
<item>
<widget class="QLabel" name="path_info">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QGroupBox" name="exportable_games">
<property name="title">
<string>Exportable Games</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</item>
<item row="0" column="1">
<widget class="QGroupBox" name="importable_games">
<property name="title">
<string>Importable</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4"/>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="export_all_button">
<property name="text">
<string>Export all Games</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="import_all_button">
<property name="text">
<string>Import all Games</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Enable Sync</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="sync_once_button">
<property name="text">
<string>Sync once</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="enable_sync_button">
<property name="text">
<string>Enable automatic sync</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
</item> </widget>
</layout> <resources/>
</widget> <connections/>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtWidgets
class Ui_LinuxSettings(object): class Ui_LinuxSettings(object):
@ -63,6 +63,7 @@ class Ui_LinuxSettings(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
LinuxSettings = QtWidgets.QWidget() LinuxSettings = QtWidgets.QWidget()
ui = Ui_LinuxSettings() ui = Ui_LinuxSettings()

View file

@ -1,86 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>LinuxSettings</class> <class>LinuxSettings</class>
<widget class="QWidget" name="LinuxSettings"> <widget class="QWidget" name="LinuxSettings">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>569</width> <width>569</width>
<height>454</height> <height>454</height>
</rect> </rect>
</property>
<property name="windowTitle">
<string>LinuxSettings</string>
</property>
<layout class="QGridLayout" name="linux_layout">
<item row="3" column="0">
<spacer name="linux_vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="wine_groupbox">
<property name="title">
<string>Wine Settings</string>
</property>
<layout class="QGridLayout" name="wine_layout">
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="exec_label">
<property name="text">
<string>Executable</string>
</property> </property>
</widget> <property name="windowTitle">
</item> <string>LinuxSettings</string>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="prefix_label">
<property name="text">
<string>Prefix</string>
</property> </property>
</widget> <layout class="QGridLayout" name="linux_layout">
</item> <item row="3" column="0">
<item row="1" column="0"> <spacer name="linux_vspacer">
<widget class="QLabel" name="prefix_alignment_label"> <property name="orientation">
<property name="enabled"> <enum>Qt::Vertical</enum>
<bool>false</bool> </property>
</property> <property name="sizeHint" stdset="0">
<property name="text"> <size>
<string notr="true"/> <width>20</width>
</property> <height>40</height>
</widget> </size>
</item> </property>
<item row="3" column="0"> </spacer>
<widget class="QLabel" name="exec_alignment_label"> </item>
<property name="enabled"> <item row="0" column="0">
<bool>false</bool> <widget class="QGroupBox" name="wine_groupbox">
</property> <property name="title">
<property name="text"> <string>Wine Settings</string>
<string notr="true"/> </property>
</property> <layout class="QGridLayout" name="wine_layout">
</widget> <item row="2" column="0" alignment="Qt::AlignRight">
</item> <widget class="QLabel" name="exec_label">
<item row="0" column="1" rowspan="2"> <property name="text">
<layout class="QVBoxLayout" name="prefix_layout"/> <string>Executable</string>
</item> </property>
<item row="2" column="1" rowspan="2"> </widget>
<layout class="QVBoxLayout" name="exec_layout"/> </item>
</item> <item row="0" column="0" alignment="Qt::AlignRight">
</layout> <widget class="QLabel" name="prefix_label">
<property name="text">
<string>Prefix</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="prefix_alignment_label">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="exec_alignment_label">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="0" column="1" rowspan="2">
<layout class="QVBoxLayout" name="prefix_layout"/>
</item>
<item row="2" column="1" rowspan="2">
<layout class="QVBoxLayout" name="exec_layout"/>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<layout class="QVBoxLayout" name="dxvk_layout"/>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item row="1" column="0"> <connections/>
<layout class="QVBoxLayout" name="dxvk_layout"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -135,6 +135,7 @@ class Ui_RareSettings(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
RareSettings = QtWidgets.QWidget() RareSettings = QtWidgets.QWidget()
ui = Ui_RareSettings() ui = Ui_RareSettings()

View file

@ -1,219 +1,219 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>RareSettings</class> <class>RareSettings</class>
<widget class="QWidget" name="RareSettings"> <widget class="QWidget" name="RareSettings">
<property name="windowTitle"> <property name="windowTitle">
<string>RareSettings</string> <string>RareSettings</string>
</property>
<layout class="QGridLayout" name="rare_layout">
<item row="1" column="0" alignment="Qt::AlignTop">
<widget class="QGroupBox" name="interface_group">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Interface</string>
</property>
<layout class="QGridLayout" name="interface_layout">
<item row="1" column="1">
<widget class="QComboBox" name="color_select">
<item>
<property name="text">
<string>None</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="style_label">
<property name="text">
<string>Style Sheet</string>
</property> </property>
</widget> <layout class="QGridLayout" name="rare_layout">
</item> <item row="1" column="0" alignment="Qt::AlignTop">
<item row="0" column="0" alignment="Qt::AlignRight"> <widget class="QGroupBox" name="interface_group">
<widget class="QLabel" name="lang_label"> <property name="sizePolicy">
<property name="text"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<string>Language</string> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
</widget> </sizepolicy>
</item> </property>
<item row="0" column="1"> <property name="title">
<widget class="QComboBox" name="lang_select"/> <string>Interface</string>
</item> </property>
<item row="1" column="0" alignment="Qt::AlignRight"> <layout class="QGridLayout" name="interface_layout">
<widget class="QLabel" name="color_label"> <item row="1" column="1">
<property name="text"> <widget class="QComboBox" name="color_select">
<string>Color Scheme</string> <item>
</property> <property name="text">
</widget> <string>None</string>
</item> </property>
<item row="3" column="0" colspan="3"> </item>
<widget class="QLabel" name="interface_info"> </widget>
<property name="font"> </item>
<font> <item row="2" column="0" alignment="Qt::AlignRight">
<italic>true</italic> <widget class="QLabel" name="style_label">
</font> <property name="text">
</property> <string>Style Sheet</string>
<property name="text"> </property>
<string>Restart Rare to apply.</string> </widget>
</property> </item>
<property name="wordWrap"> <item row="0" column="0" alignment="Qt::AlignRight">
<bool>true</bool> <widget class="QLabel" name="lang_label">
</property> <property name="text">
</widget> <string>Language</string>
</item> </property>
<item row="2" column="1"> </widget>
<widget class="QComboBox" name="style_select"> </item>
<item> <item row="0" column="1">
<property name="text"> <widget class="QComboBox" name="lang_select"/>
<string>None</string> </item>
</property> <item row="1" column="0" alignment="Qt::AlignRight">
</item> <widget class="QLabel" name="color_label">
</widget> <property name="text">
</item> <string>Color Scheme</string>
<item row="1" column="2"> </property>
<spacer name="interface_hspacer"> </widget>
<property name="orientation"> </item>
<enum>Qt::Horizontal</enum> <item row="3" column="0" colspan="3">
</property> <widget class="QLabel" name="interface_info">
<property name="sizeHint" stdset="0"> <property name="font">
<size> <font>
<width>40</width> <italic>true</italic>
<height>20</height> </font>
</size> </property>
</property> <property name="text">
</spacer> <string>Restart Rare to apply.</string>
</item> </property>
</layout> <property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="style_select">
<item>
<property name="text">
<string>None</string>
</property>
</item>
</widget>
</item>
<item row="1" column="2">
<spacer name="interface_hspacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="0" column="0" alignment="Qt::AlignTop">
<widget class="QGroupBox" name="img_dir_group">
<property name="title">
<string>Image Cache Directory</string>
</property>
<layout class="QVBoxLayout" name="img_dir_layout"/>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignTop">
<widget class="QGroupBox" name="settings_group">
<property name="title">
<string>Behavior</string>
</property>
<layout class="QGridLayout" name="behavior_layout">
<item row="2" column="1" rowspan="2">
<spacer name="settings_hspacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="save_size">
<property name="text">
<string>Restore window size on application startup</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="notification">
<property name="text">
<string>Show notification on download completion</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="auto_sync_cloud">
<property name="text">
<string>Automatically sync with cloud</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="confirm_start">
<property name="text">
<string>Confirm game launch</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="auto_update">
<property name="text">
<string>Update games on application startup</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="sys_tray">
<property name="text">
<string>Exit to System tray</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1" alignment="Qt::AlignTop">
<widget class="QGroupBox" name="log_dir_group">
<property name="title">
<string>Logs</string>
</property>
<layout class="QVBoxLayout" name="log_dir_layout">
<item>
<widget class="QPushButton" name="log_dir_open_button">
<property name="text">
<string>Open Log directory</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="log_dir_clean_button">
<property name="text">
<string>Clean Log directory</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="log_dir_size_label">
<property name="text">
<string notr="true"/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<layout class="QVBoxLayout" name="rpc_layout"/>
</item>
<item row="2" column="1">
<spacer name="rare_vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item row="0" column="0" alignment="Qt::AlignTop"> <connections/>
<widget class="QGroupBox" name="img_dir_group">
<property name="title">
<string>Image Cache Directory</string>
</property>
<layout class="QVBoxLayout" name="img_dir_layout"/>
</widget>
</item>
<item row="2" column="0" alignment="Qt::AlignTop">
<widget class="QGroupBox" name="settings_group">
<property name="title">
<string>Behavior</string>
</property>
<layout class="QGridLayout" name="behavior_layout">
<item row="2" column="1" rowspan="2">
<spacer name="settings_hspacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="save_size">
<property name="text">
<string>Restore window size on application startup</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="notification">
<property name="text">
<string>Show notification on download completion</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="auto_sync_cloud">
<property name="text">
<string>Automatically sync with cloud</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="confirm_start">
<property name="text">
<string>Confirm game launch</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="auto_update">
<property name="text">
<string>Update games on application startup</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="sys_tray">
<property name="text">
<string>Exit to System tray</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1" alignment="Qt::AlignTop">
<widget class="QGroupBox" name="log_dir_group">
<property name="title">
<string>Logs</string>
</property>
<layout class="QVBoxLayout" name="log_dir_layout">
<item>
<widget class="QPushButton" name="log_dir_open_button">
<property name="text">
<string>Open Log directory</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="log_dir_clean_button">
<property name="text">
<string>Clean Log directory</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="log_dir_size_label">
<property name="text">
<string notr="true"/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<layout class="QVBoxLayout" name="rpc_layout"/>
</item>
<item row="2" column="1">
<spacer name="rare_vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtWidgets
class Ui_RPCSettings(object): class Ui_RPCSettings(object):
@ -58,6 +58,7 @@ class Ui_RPCSettings(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
RPCSettings = QtWidgets.QGroupBox() RPCSettings = QtWidgets.QGroupBox()
ui = Ui_RPCSettings() ui = Ui_RPCSettings()

View file

@ -1,69 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>RPCSettings</class> <class>RPCSettings</class>
<widget class="QGroupBox" name="RPCSettings"> <widget class="QGroupBox" name="RPCSettings">
<property name="windowTitle"> <property name="windowTitle">
<string>DiscordRPC</string> <string>DiscordRPC</string>
</property> </property>
<property name="title"> <property name="title">
<string>Discord RPC</string> <string>Discord RPC</string>
</property> </property>
<layout class="QGridLayout" name="layout"> <layout class="QGridLayout" name="layout">
<item row="0" column="1"> <item row="0" column="1">
<widget class="QComboBox" name="enable"> <widget class="QComboBox" name="enable">
<item> <item>
<property name="text"> <property name="text">
<string>When Playing</string> <string>When Playing</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>Always</string> <string>Always</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>Never</string> <string>Never</string>
</property> </property>
</item> </item>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Show</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="show_game">
<property name="text">
<string>Show Game</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="show_os">
<property name="text">
<string>Show OS</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="show_time">
<property name="text">
<string>Show Time playing</string>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item row="0" column="0"> <connections/>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Show</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="show_game">
<property name="text">
<string>Show Game</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="show_os">
<property name="text">
<string>Show OS</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="show_time">
<property name="text">
<string>Show Time playing</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtWidgets
class Ui_PathEdit(object): class Ui_PathEdit(object):
@ -47,6 +47,7 @@ class Ui_PathEdit(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
PathEdit = QtWidgets.QWidget() PathEdit = QtWidgets.QWidget()
ui = Ui_PathEdit() ui = Ui_PathEdit()

View file

@ -1,72 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>PathEdit</class> <class>PathEdit</class>
<widget class="QWidget" name="PathEdit"> <widget class="QWidget" name="PathEdit">
<property name="windowTitle"> <property name="windowTitle">
<string>PathEdit</string> <string>PathEdit</string>
</property> </property>
<layout class="QGridLayout" name="layout_pathedit"> <layout class="QGridLayout" name="layout_pathedit">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QToolButton" name="path_select"> <widget class="QToolButton" name="path_select">
<property name="text"> <property name="text">
<string>Browse...</string> <string>Browse...</string>
</property> </property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLineEdit" name="text_edit">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>Default</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="layout_pathedit_save">
<item>
<spacer name="hs_save">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="save_path_button">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget> </widget>
</item> <resources/>
<item row="0" column="0"> <connections/>
<widget class="QLineEdit" name="text_edit">
<property name="minimumSize">
<size>
<width>300</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>Default</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="layout_pathedit_save">
<item>
<spacer name="hs_save">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="save_path_button">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>

View file

@ -143,8 +143,8 @@ class QJsonModel(QtCore.QAbstractItemModel):
""" """
assert isinstance(document, (dict, list, tuple)), ( assert isinstance(document, (dict, list, tuple)), (
"`document` must be of dict, list or tuple, " "`document` must be of dict, list or tuple, "
"not %s" % type(document) "not %s" % type(document)
) )
self.beginResetModel() self.beginResetModel()
@ -194,7 +194,6 @@ class QJsonModel(QtCore.QAbstractItemModel):
item = index.internalPointer() item = index.internalPointer()
item.value = str(value) item.value = str(value)
self.dataChanged.emit(index, index, [QtCore.Qt.EditRole]) self.dataChanged.emit(index, index, [QtCore.Qt.EditRole])
return True return True
@ -317,8 +316,8 @@ if __name__ == '__main__':
# Sanity check # Sanity check
assert ( assert (
json.dumps(model.json(), sort_keys=True) == json.dumps(model.json(), sort_keys=True) ==
json.dumps(document, sort_keys=True) json.dumps(document, sort_keys=True)
) )
view.show() view.show()

View file

@ -64,7 +64,8 @@ def uninstall(app_name: str, core: LegendaryCore, options=None):
elif os.name == "nt": elif os.name == "nt":
if os.path.exists(os.path.expanduser(f"~/Desktop/{igame.title.split(':')[0]}.lnk")): if os.path.exists(os.path.expanduser(f"~/Desktop/{igame.title.split(':')[0]}.lnk")):
os.remove(os.path.expanduser(f"~/Desktop/{igame.title.split(':')[0]}.lnk")) os.remove(os.path.expanduser(f"~/Desktop/{igame.title.split(':')[0]}.lnk"))
elif os.path.exists(os.path.expandvars(f"%appdata%/Microsoft/Windows/Start Menu/{igame.title.split(':')[0]}.lnk")): elif os.path.exists(
os.path.expandvars(f"%appdata%/Microsoft/Windows/Start Menu/{igame.title.split(':')[0]}.lnk")):
os.remove(os.path.expandvars(f"%appdata%/Microsoft/Windows/Start Menu/{igame.title.split(':')[0]}.lnk")) os.remove(os.path.expandvars(f"%appdata%/Microsoft/Windows/Start Menu/{igame.title.split(':')[0]}.lnk"))
try: try:

View file

@ -4,7 +4,6 @@ from logging import getLogger
import pypresence.exceptions import pypresence.exceptions
from PyQt5.QtCore import QObject, QSettings from PyQt5.QtCore import QObject, QSettings
from PyQt5.QtWidgets import QMessageBox
from pypresence import Presence from pypresence import Presence
from custom_legendary.core import LegendaryCore from custom_legendary.core import LegendaryCore
@ -76,7 +75,8 @@ class DiscordRPC(QObject):
self.update_rpc(app_name) self.update_rpc(app_name)
def update_rpc(self, app_name=None): def update_rpc(self, app_name=None):
if self.settings.value("rpc_enable", 0, int) == 2 or (app_name is None and self.settings.value("rpc_enable", 0, int) == 0): if self.settings.value("rpc_enable", 0, int) == 2 or (
app_name is None and self.settings.value("rpc_enable", 0, int) == 0):
self.remove_rpc() self.remove_rpc()
return return
title = None title = None

View file

@ -8,16 +8,16 @@ with open("README.md", "r") as fh:
long_description = fh.read() long_description = fh.read()
requirements = [ requirements = [
"requests<3.0", "requests<3.0",
"pillow", "pillow",
"setuptools", "setuptools",
"wheel", "wheel",
"PyQt5", "PyQt5",
"QtAwesome", "QtAwesome",
"notify-py", "notify-py",
"psutil", "psutil",
"pypresence" "pypresence"
] ]
if os.name == "nt": if os.name == "nt":
requirements.append("pywin32") requirements.append("pywin32")