Rename ImportSync files to indicate what the underlying widget is.
Split Import/Export lists to separate widgets to reduce code duplication. Signed-off-by: Stelios Tsampas <loathingkernel@gmail.com>
This commit is contained in:
parent
d8f39857db
commit
458e233327
|
@ -1,8 +1,8 @@
|
||||||
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QLabel, QSpacerItem, QSizePolicy
|
from PyQt5.QtWidgets import QVBoxLayout, QWidget, QLabel, QSpacerItem, QSizePolicy
|
||||||
|
|
||||||
from rare.utils.extra_widgets import SideTabWidget
|
from rare.utils.extra_widgets import SideTabWidget
|
||||||
from .egl_sync_widget import EGLSyncGroup
|
from .egl_sync_group import EGLSyncGroup
|
||||||
from .import_widget import ImportGroup
|
from .import_group import ImportGroup
|
||||||
|
|
||||||
|
|
||||||
class ImportSyncTabs(SideTabWidget):
|
class ImportSyncTabs(SideTabWidget):
|
||||||
|
@ -42,8 +42,9 @@ class ImportSyncWidget(QWidget):
|
||||||
def __init__(self, widget: QWidget, title: str, info: str, parent=None):
|
def __init__(self, widget: QWidget, title: str, info: str, parent=None):
|
||||||
super(ImportSyncWidget, self).__init__(parent=parent)
|
super(ImportSyncWidget, self).__init__(parent=parent)
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
# self.title = QLabel(f"<h2>{title}</h2")
|
self.title = QLabel(f"<h2>{title}</h2")
|
||||||
# self.layout.addWidget(self.title)
|
self.layout.addWidget(self.title)
|
||||||
|
self.title.setVisible(False)
|
||||||
self.group = widget
|
self.group = widget
|
||||||
self.layout.addWidget(self.group)
|
self.layout.addWidget(self.group)
|
||||||
self.info = QLabel(f"<h4>{info}</h4>")
|
self.info = QLabel(f"<h4>{info}</h4>")
|
||||||
|
|
|
@ -1,32 +1,28 @@
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
from glob import glob
|
|
||||||
from typing import Tuple
|
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
from typing import List, Tuple
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QThread, QFileSystemWatcher
|
from PyQt5.QtCore import Qt, QThread, QFileSystemWatcher
|
||||||
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QLabel, QGroupBox, \
|
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QLabel, QGroupBox, \
|
||||||
QCheckBox, QPushButton, QListWidgetItem, QDialog, QFileDialog, QSizePolicy
|
QCheckBox, QPushButton, QListWidgetItem, QDialog, QFileDialog
|
||||||
|
|
||||||
import rare.shared as shared
|
import rare.shared as shared
|
||||||
from rare.ui.components.tabs.games.import_sync.egl_sync_widget import Ui_EGLSyncGroup
|
from rare.ui.components.tabs.games.import_sync.egl_sync_group import Ui_EGLSyncGroup
|
||||||
|
from rare.ui.components.tabs.games.import_sync.egl_sync_list_group import Ui_EGLSyncListGroup
|
||||||
from rare.utils.extra_widgets import PathEdit
|
from rare.utils.extra_widgets import PathEdit
|
||||||
from rare.utils.utils import WineResolver
|
|
||||||
from rare.utils.models import PathSpec
|
from rare.utils.models import PathSpec
|
||||||
|
from rare.utils.utils import WineResolver
|
||||||
|
|
||||||
logger = getLogger("EGLSync")
|
logger = getLogger("EGLSync")
|
||||||
|
|
||||||
|
|
||||||
class EGLSyncGroup(QGroupBox, Ui_EGLSyncGroup):
|
class EGLSyncGroup(QGroupBox, Ui_EGLSyncGroup):
|
||||||
importable_items = list()
|
|
||||||
exportable_items = list()
|
|
||||||
wine_resolver: QThread
|
wine_resolver: QThread
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super(EGLSyncGroup, self).__init__(parent=parent)
|
super(EGLSyncGroup, self).__init__(parent=parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.export_list.setProperty("noBorder", 1)
|
|
||||||
self.import_list.setProperty("noBorder", 1)
|
|
||||||
|
|
||||||
self.core = shared.core
|
self.core = shared.core
|
||||||
|
|
||||||
|
@ -88,24 +84,10 @@ class EGLSyncGroup(QGroupBox, Ui_EGLSyncGroup):
|
||||||
self.egl_sync_check.setChecked(shared.core.egl_sync_enabled)
|
self.egl_sync_check.setChecked(shared.core.egl_sync_enabled)
|
||||||
self.egl_sync_check.stateChanged.connect(self.egl_sync_changed)
|
self.egl_sync_check.stateChanged.connect(self.egl_sync_changed)
|
||||||
|
|
||||||
self.export_list.itemDoubleClicked.connect(
|
self.import_list = EGLSyncListGroup(export=False, parent=self)
|
||||||
lambda item:
|
self.import_export_layout.addWidget(self.import_list)
|
||||||
item.setCheckState(Qt.Unchecked) if item.checkState() != Qt.Unchecked else item.setCheckState(Qt.Checked))
|
self.export_list = EGLSyncListGroup(export=True, parent=self)
|
||||||
self.import_list.itemDoubleClicked.connect(
|
self.import_export_layout.addWidget(self.export_list)
|
||||||
lambda item:
|
|
||||||
item.setCheckState(Qt.Unchecked) if item.checkState() != Qt.Unchecked else item.setCheckState(Qt.Checked))
|
|
||||||
|
|
||||||
self.export_select_all_button.clicked.connect(
|
|
||||||
lambda: self.select_items(self.exportable_items, Qt.Checked))
|
|
||||||
self.export_select_none_button.clicked.connect(
|
|
||||||
lambda: self.select_items(self.exportable_items, Qt.Unchecked))
|
|
||||||
self.import_select_all_button.clicked.connect(
|
|
||||||
lambda: self.select_items(self.importable_items, Qt.Checked))
|
|
||||||
self.import_select_none_button.clicked.connect(
|
|
||||||
lambda: self.select_items(self.importable_items, Qt.Unchecked))
|
|
||||||
|
|
||||||
self.export_button.clicked.connect(self.export_selected)
|
|
||||||
self.import_button.clicked.connect(self.import_selected)
|
|
||||||
|
|
||||||
self.update_lists()
|
self.update_lists()
|
||||||
|
|
||||||
|
@ -173,73 +155,15 @@ class EGLSyncGroup(QGroupBox, Ui_EGLSyncGroup):
|
||||||
self.egl_sync_label.setEnabled(have_path)
|
self.egl_sync_label.setEnabled(have_path)
|
||||||
self.egl_sync_check.setEnabled(have_path)
|
self.egl_sync_check.setEnabled(have_path)
|
||||||
|
|
||||||
self.import_export_widget.setEnabled(have_path)
|
self.import_list.populate(have_path)
|
||||||
|
self.import_list.setEnabled(have_path)
|
||||||
self.import_label.setVisible(not have_path)
|
self.export_list.populate(have_path)
|
||||||
self.import_list.setVisible(have_path)
|
self.export_list.setEnabled(have_path)
|
||||||
self.import_buttons_widget.setVisible(have_path)
|
|
||||||
|
|
||||||
self.export_label.setVisible(not have_path)
|
|
||||||
self.export_list.setVisible(have_path)
|
|
||||||
self.export_buttons_widget.setVisible(have_path)
|
|
||||||
|
|
||||||
if not have_path:
|
|
||||||
return
|
|
||||||
|
|
||||||
self.update_import_list()
|
|
||||||
self.update_export_list()
|
|
||||||
|
|
||||||
def update_import_list(self):
|
|
||||||
self.import_list.clear()
|
|
||||||
self.importable_items.clear()
|
|
||||||
importable_games = shared.core.egl_get_importable()
|
|
||||||
for game in importable_games:
|
|
||||||
iw = EGLSyncItem(game, False, self.import_list)
|
|
||||||
self.importable_items.append(iw)
|
|
||||||
self.import_list.addItem(iw)
|
|
||||||
have_importable = bool(importable_games)
|
|
||||||
self.import_label.setVisible(not have_importable)
|
|
||||||
self.import_list.setVisible(have_importable)
|
|
||||||
self.import_buttons_widget.setVisible(have_importable)
|
|
||||||
|
|
||||||
def update_export_list(self):
|
|
||||||
self.export_list.clear()
|
|
||||||
self.exportable_items.clear()
|
|
||||||
exportable_games = shared.core.egl_get_exportable()
|
|
||||||
for igame in exportable_games:
|
|
||||||
ew = EGLSyncItem(igame, True, self.export_list)
|
|
||||||
self.exportable_items.append(ew)
|
|
||||||
self.export_list.addItem(ew)
|
|
||||||
have_exportable = bool(exportable_games)
|
|
||||||
self.export_label.setVisible(not have_exportable)
|
|
||||||
self.export_list.setVisible(have_exportable)
|
|
||||||
self.export_buttons_widget.setVisible(have_exportable)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def select_items(item_list, state):
|
|
||||||
for w in item_list:
|
|
||||||
w.setCheckState(state)
|
|
||||||
|
|
||||||
def import_selected(self):
|
|
||||||
for iw in self.importable_items:
|
|
||||||
if iw.is_checked:
|
|
||||||
iw.import_game()
|
|
||||||
self.import_list.takeItem(self.import_list.row(iw))
|
|
||||||
self.core.egl_sync()
|
|
||||||
self.update_import_list()
|
|
||||||
|
|
||||||
def export_selected(self):
|
|
||||||
for ew in self.exportable_items:
|
|
||||||
if ew.is_checked():
|
|
||||||
ew.export_game()
|
|
||||||
self.export_list.takeItem(self.export_list.row(ew))
|
|
||||||
self.core.egl_sync()
|
|
||||||
self.update_export_list()
|
|
||||||
|
|
||||||
|
|
||||||
class EGLSyncItem(QListWidgetItem):
|
class EGLSyncListItem(QListWidgetItem):
|
||||||
def __init__(self, game, export: bool, parent=None):
|
def __init__(self, game, export: bool, parent=None):
|
||||||
super(EGLSyncItem, self).__init__(parent=parent)
|
super(EGLSyncListItem, self).__init__(parent=parent)
|
||||||
self.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsUserCheckable)
|
self.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsUserCheckable)
|
||||||
self.setCheckState(Qt.Unchecked)
|
self.setCheckState(Qt.Unchecked)
|
||||||
self.game = game
|
self.game = game
|
||||||
|
@ -252,11 +176,67 @@ class EGLSyncItem(QListWidgetItem):
|
||||||
def is_checked(self):
|
def is_checked(self):
|
||||||
return True if self.checkState() == Qt.Checked else False
|
return True if self.checkState() == Qt.Checked else False
|
||||||
|
|
||||||
def export_game(self):
|
def action(self):
|
||||||
shared.core.egl_export(self.game.app_name)
|
if self.export:
|
||||||
|
shared.core.egl_export(self.game.app_name)
|
||||||
|
else:
|
||||||
|
shared.core.egl_import(self.game.app_name)
|
||||||
|
|
||||||
def import_game(self):
|
|
||||||
shared.core.egl_import(self.game.app_name)
|
class EGLSyncListGroup(QGroupBox, Ui_EGLSyncListGroup):
|
||||||
|
|
||||||
|
def __init__(self, export: bool, parent=None):
|
||||||
|
super(EGLSyncListGroup, self).__init__(parent=parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
self.list.setProperty("noBorder", 1)
|
||||||
|
|
||||||
|
self.export = export
|
||||||
|
|
||||||
|
if export:
|
||||||
|
self.setTitle(self.tr('Exportable games'))
|
||||||
|
self.label.setText(self.tr('No games to export to EGL'))
|
||||||
|
self.action_button.setText(self.tr('Export'))
|
||||||
|
self.list_func = shared.core.egl_get_exportable
|
||||||
|
else:
|
||||||
|
self.setTitle(self.tr('Importable games'))
|
||||||
|
self.label.setText(self.tr('No games to import from EGL'))
|
||||||
|
self.action_button.setText(self.tr('Import'))
|
||||||
|
self.list_func = shared.core.egl_get_importable
|
||||||
|
|
||||||
|
self.list.itemDoubleClicked.connect(
|
||||||
|
lambda item:
|
||||||
|
item.setCheckState(Qt.Unchecked) if item.checkState() != Qt.Unchecked else item.setCheckState(Qt.Checked)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.select_all_button.clicked.connect(lambda: self.mark(Qt.Checked))
|
||||||
|
self.select_none_button.clicked.connect(lambda: self.mark(Qt.Unchecked))
|
||||||
|
|
||||||
|
self.action_button.clicked.connect(self.action)
|
||||||
|
|
||||||
|
def mark(self, state):
|
||||||
|
for item in self.items:
|
||||||
|
item.setCheckState(state)
|
||||||
|
|
||||||
|
def populate(self, enabled: bool):
|
||||||
|
if enabled:
|
||||||
|
self.list.clear()
|
||||||
|
for item in self.list_func():
|
||||||
|
self.list.addItem(EGLSyncListItem(item, self.export, self.list))
|
||||||
|
self.label.setVisible(not enabled or not bool(self.list.count()))
|
||||||
|
self.list.setVisible(enabled and bool(self.list.count()))
|
||||||
|
self.buttons_widget.setVisible(enabled and bool(self.list.count()))
|
||||||
|
|
||||||
|
def action(self):
|
||||||
|
for item in self.items:
|
||||||
|
if item.is_checked:
|
||||||
|
item.action()
|
||||||
|
self.list.takeItem(self.list.row(item))
|
||||||
|
self.core.egl_sync()
|
||||||
|
self.populate(True)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def items(self) -> List[EGLSyncListItem]:
|
||||||
|
return [self.list.item(i) for i in range(self.list.count())]
|
||||||
|
|
||||||
|
|
||||||
class DisableSyncDialog(QDialog):
|
class DisableSyncDialog(QDialog):
|
|
@ -6,7 +6,7 @@ from typing import Tuple
|
||||||
from PyQt5.QtWidgets import QFileDialog, QGroupBox
|
from PyQt5.QtWidgets import QFileDialog, QGroupBox
|
||||||
|
|
||||||
import rare.shared as shared
|
import rare.shared as shared
|
||||||
from rare.ui.components.tabs.games.import_sync.import_widget import Ui_ImportGroup
|
from rare.ui.components.tabs.games.import_sync.import_group import Ui_ImportGroup
|
||||||
from rare.utils import legendary_utils
|
from rare.utils import legendary_utils
|
||||||
from rare.utils.extra_widgets import IndicatorLineEdit, PathEdit
|
from rare.utils.extra_widgets import IndicatorLineEdit, PathEdit
|
||||||
|
|
|
@ -12,10 +12,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
QLabel {
|
QLabel {
|
||||||
border-width: 1px;
|
border-width: 0px;
|
||||||
border-style: solid;
|
|
||||||
border-radius: 2px;
|
|
||||||
border-color: transparent;
|
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
selection-background-color: #2f4f4f;
|
selection-background-color: #2f4f4f;
|
||||||
|
|
67
rare/ui/components/tabs/games/import_sync/egl_sync_group.py
Normal file
67
rare/ui/components/tabs/games/import_sync/egl_sync_group.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/import_sync/egl_sync_group.ui'
|
||||||
|
#
|
||||||
|
# Created by: PyQt5 UI code generator 5.15.4
|
||||||
|
#
|
||||||
|
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||||
|
# run again. Do not edit this file unless you know what you are doing.
|
||||||
|
|
||||||
|
|
||||||
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
|
class Ui_EGLSyncGroup(object):
|
||||||
|
def setupUi(self, EGLSyncGroup):
|
||||||
|
EGLSyncGroup.setObjectName("EGLSyncGroup")
|
||||||
|
EGLSyncGroup.resize(478, 106)
|
||||||
|
EGLSyncGroup.setWindowTitle("EGLSyncGroup")
|
||||||
|
EGLSyncGroup.setCheckable(False)
|
||||||
|
EGLSyncGroup.setChecked(False)
|
||||||
|
self.egl_sync_layout = QtWidgets.QFormLayout(EGLSyncGroup)
|
||||||
|
self.egl_sync_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||||
|
self.egl_sync_layout.setObjectName("egl_sync_layout")
|
||||||
|
self.egl_path_label = QtWidgets.QLabel(EGLSyncGroup)
|
||||||
|
self.egl_path_label.setObjectName("egl_path_label")
|
||||||
|
self.egl_sync_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.egl_path_label)
|
||||||
|
self.egl_path_layout = QtWidgets.QHBoxLayout()
|
||||||
|
self.egl_path_layout.setObjectName("egl_path_layout")
|
||||||
|
self.egl_sync_layout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.egl_path_layout)
|
||||||
|
self.egl_path_info_label = QtWidgets.QLabel(EGLSyncGroup)
|
||||||
|
self.egl_path_info_label.setObjectName("egl_path_info_label")
|
||||||
|
self.egl_sync_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.egl_path_info_label)
|
||||||
|
self.egl_path_info = QtWidgets.QLabel(EGLSyncGroup)
|
||||||
|
self.egl_path_info.setText("error")
|
||||||
|
self.egl_path_info.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
|
||||||
|
self.egl_path_info.setObjectName("egl_path_info")
|
||||||
|
self.egl_sync_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.egl_path_info)
|
||||||
|
self.egl_sync_check = QtWidgets.QCheckBox(EGLSyncGroup)
|
||||||
|
self.egl_sync_check.setText("")
|
||||||
|
self.egl_sync_check.setObjectName("egl_sync_check")
|
||||||
|
self.egl_sync_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.egl_sync_check)
|
||||||
|
self.import_export_layout = QtWidgets.QVBoxLayout()
|
||||||
|
self.import_export_layout.setObjectName("import_export_layout")
|
||||||
|
self.egl_sync_layout.setLayout(3, QtWidgets.QFormLayout.SpanningRole, self.import_export_layout)
|
||||||
|
self.egl_sync_label = QtWidgets.QLabel(EGLSyncGroup)
|
||||||
|
self.egl_sync_label.setObjectName("egl_sync_label")
|
||||||
|
self.egl_sync_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.egl_sync_label)
|
||||||
|
|
||||||
|
self.retranslateUi(EGLSyncGroup)
|
||||||
|
QtCore.QMetaObject.connectSlotsByName(EGLSyncGroup)
|
||||||
|
|
||||||
|
def retranslateUi(self, EGLSyncGroup):
|
||||||
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
EGLSyncGroup.setTitle(_translate("EGLSyncGroup", "Sync with Epic Games Launcher"))
|
||||||
|
self.egl_path_label.setText(_translate("EGLSyncGroup", "Prefix/Manifest path"))
|
||||||
|
self.egl_path_info_label.setText(_translate("EGLSyncGroup", "Estimated path"))
|
||||||
|
self.egl_sync_label.setText(_translate("EGLSyncGroup", "Enable automatic sync"))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import sys
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
EGLSyncGroup = QtWidgets.QGroupBox()
|
||||||
|
ui = Ui_EGLSyncGroup()
|
||||||
|
ui.setupUi(EGLSyncGroup)
|
||||||
|
EGLSyncGroup.show()
|
||||||
|
sys.exit(app.exec_())
|
77
rare/ui/components/tabs/games/import_sync/egl_sync_group.ui
Normal file
77
rare/ui/components/tabs/games/import_sync/egl_sync_group.ui
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>EGLSyncGroup</class>
|
||||||
|
<widget class="QGroupBox" name="EGLSyncGroup">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>478</width>
|
||||||
|
<height>106</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string notr="true">EGLSyncGroup</string>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Sync with Epic Games Launcher</string>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<layout class="QFormLayout" name="egl_sync_layout">
|
||||||
|
<property name="labelAlignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="egl_path_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Prefix/Manifest path</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="egl_path_layout"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="egl_path_info_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Estimated path</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="egl_path_info">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">error</string>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QCheckBox" name="egl_sync_check">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<layout class="QVBoxLayout" name="import_export_layout"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="egl_sync_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable automatic sync</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -0,0 +1,71 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/import_sync/egl_sync_list_group.ui'
|
||||||
|
#
|
||||||
|
# Created by: PyQt5 UI code generator 5.15.4
|
||||||
|
#
|
||||||
|
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||||
|
# run again. Do not edit this file unless you know what you are doing.
|
||||||
|
|
||||||
|
|
||||||
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
|
class Ui_EGLSyncListGroup(object):
|
||||||
|
def setupUi(self, EGLSyncListGroup):
|
||||||
|
EGLSyncListGroup.setObjectName("EGLSyncListGroup")
|
||||||
|
EGLSyncListGroup.resize(461, 206)
|
||||||
|
EGLSyncListGroup.setWindowTitle("EGLSyncListGroup")
|
||||||
|
EGLSyncListGroup.setTitle("")
|
||||||
|
self.egl_sync_list_layout = QtWidgets.QVBoxLayout(EGLSyncListGroup)
|
||||||
|
self.egl_sync_list_layout.setObjectName("egl_sync_list_layout")
|
||||||
|
self.label = QtWidgets.QLabel(EGLSyncListGroup)
|
||||||
|
self.label.setText("")
|
||||||
|
self.label.setObjectName("label")
|
||||||
|
self.egl_sync_list_layout.addWidget(self.label)
|
||||||
|
self.list = QtWidgets.QListWidget(EGLSyncListGroup)
|
||||||
|
self.list.setAlternatingRowColors(True)
|
||||||
|
self.list.setObjectName("list")
|
||||||
|
self.egl_sync_list_layout.addWidget(self.list)
|
||||||
|
self.buttons_widget = QtWidgets.QWidget(EGLSyncListGroup)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.buttons_widget.sizePolicy().hasHeightForWidth())
|
||||||
|
self.buttons_widget.setSizePolicy(sizePolicy)
|
||||||
|
self.buttons_widget.setObjectName("buttons_widget")
|
||||||
|
self.buttons_layout = QtWidgets.QHBoxLayout(self.buttons_widget)
|
||||||
|
self.buttons_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.buttons_layout.setObjectName("buttons_layout")
|
||||||
|
self.select_all_button = QtWidgets.QPushButton(self.buttons_widget)
|
||||||
|
self.select_all_button.setObjectName("select_all_button")
|
||||||
|
self.buttons_layout.addWidget(self.select_all_button)
|
||||||
|
self.select_none_button = QtWidgets.QPushButton(self.buttons_widget)
|
||||||
|
self.select_none_button.setObjectName("select_none_button")
|
||||||
|
self.buttons_layout.addWidget(self.select_none_button)
|
||||||
|
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
self.buttons_layout.addItem(spacerItem)
|
||||||
|
self.action_button = QtWidgets.QPushButton(self.buttons_widget)
|
||||||
|
self.action_button.setText("Action")
|
||||||
|
self.action_button.setObjectName("action_button")
|
||||||
|
self.buttons_layout.addWidget(self.action_button)
|
||||||
|
self.egl_sync_list_layout.addWidget(self.buttons_widget)
|
||||||
|
|
||||||
|
self.retranslateUi(EGLSyncListGroup)
|
||||||
|
QtCore.QMetaObject.connectSlotsByName(EGLSyncListGroup)
|
||||||
|
|
||||||
|
def retranslateUi(self, EGLSyncListGroup):
|
||||||
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
self.list.setSortingEnabled(True)
|
||||||
|
self.select_all_button.setText(_translate("EGLSyncListGroup", "Select all"))
|
||||||
|
self.select_none_button.setText(_translate("EGLSyncListGroup", "Select none"))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import sys
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
EGLSyncListGroup = QtWidgets.QGroupBox()
|
||||||
|
ui = Ui_EGLSyncListGroup()
|
||||||
|
ui.setupUi(EGLSyncListGroup)
|
||||||
|
EGLSyncListGroup.show()
|
||||||
|
sys.exit(app.exec_())
|
102
rare/ui/components/tabs/games/import_sync/egl_sync_list_group.ui
Normal file
102
rare/ui/components/tabs/games/import_sync/egl_sync_list_group.ui
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>EGLSyncListGroup</class>
|
||||||
|
<widget class="QGroupBox" name="EGLSyncListGroup">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>461</width>
|
||||||
|
<height>206</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string notr="true">EGLSyncListGroup</string>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="egl_sync_list_layout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QListWidget" name="list">
|
||||||
|
<property name="alternatingRowColors">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="sortingEnabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="buttons_widget" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="buttons_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="QPushButton" name="select_all_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select all</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="select_none_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Select none</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="buttons_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>
|
||||||
|
<widget class="QPushButton" name="action_button">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">Action</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -1,140 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/import_sync/egl_sync_widget.ui'
|
|
||||||
#
|
|
||||||
# Created by: PyQt5 UI code generator 5.15.4
|
|
||||||
#
|
|
||||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
|
||||||
# run again. Do not edit this file unless you know what you are doing.
|
|
||||||
|
|
||||||
|
|
||||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
||||||
|
|
||||||
|
|
||||||
class Ui_EGLSyncGroup(object):
|
|
||||||
def setupUi(self, EGLSyncGroup):
|
|
||||||
EGLSyncGroup.setObjectName("EGLSyncGroup")
|
|
||||||
EGLSyncGroup.resize(814, 702)
|
|
||||||
EGLSyncGroup.setCheckable(False)
|
|
||||||
EGLSyncGroup.setChecked(False)
|
|
||||||
self.egl_sync_layout = QtWidgets.QFormLayout(EGLSyncGroup)
|
|
||||||
self.egl_sync_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
|
||||||
self.egl_sync_layout.setObjectName("egl_sync_layout")
|
|
||||||
self.egl_path_label = QtWidgets.QLabel(EGLSyncGroup)
|
|
||||||
self.egl_path_label.setObjectName("egl_path_label")
|
|
||||||
self.egl_sync_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.egl_path_label)
|
|
||||||
self.egl_path_layout = QtWidgets.QHBoxLayout()
|
|
||||||
self.egl_path_layout.setObjectName("egl_path_layout")
|
|
||||||
self.egl_sync_layout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.egl_path_layout)
|
|
||||||
self.egl_path_info_label = QtWidgets.QLabel(EGLSyncGroup)
|
|
||||||
self.egl_path_info_label.setObjectName("egl_path_info_label")
|
|
||||||
self.egl_sync_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.egl_path_info_label)
|
|
||||||
self.egl_path_info = QtWidgets.QLabel(EGLSyncGroup)
|
|
||||||
self.egl_path_info.setText("error")
|
|
||||||
self.egl_path_info.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
|
|
||||||
self.egl_path_info.setObjectName("egl_path_info")
|
|
||||||
self.egl_sync_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.egl_path_info)
|
|
||||||
self.egl_sync_label = QtWidgets.QLabel(EGLSyncGroup)
|
|
||||||
self.egl_sync_label.setObjectName("egl_sync_label")
|
|
||||||
self.egl_sync_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.egl_sync_label)
|
|
||||||
self.egl_sync_check = QtWidgets.QCheckBox(EGLSyncGroup)
|
|
||||||
self.egl_sync_check.setText("")
|
|
||||||
self.egl_sync_check.setObjectName("egl_sync_check")
|
|
||||||
self.egl_sync_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.egl_sync_check)
|
|
||||||
self.import_export_widget = QtWidgets.QWidget(EGLSyncGroup)
|
|
||||||
self.import_export_widget.setObjectName("import_export_widget")
|
|
||||||
self.import_export_layout = QtWidgets.QVBoxLayout(self.import_export_widget)
|
|
||||||
self.import_export_layout.setContentsMargins(0, 0, 0, 0)
|
|
||||||
self.import_export_layout.setObjectName("import_export_layout")
|
|
||||||
self.import_group = QtWidgets.QGroupBox(self.import_export_widget)
|
|
||||||
self.import_group.setObjectName("import_group")
|
|
||||||
self.import_layout = QtWidgets.QVBoxLayout(self.import_group)
|
|
||||||
self.import_layout.setObjectName("import_layout")
|
|
||||||
self.import_label = QtWidgets.QLabel(self.import_group)
|
|
||||||
self.import_label.setObjectName("import_label")
|
|
||||||
self.import_layout.addWidget(self.import_label)
|
|
||||||
self.import_list = QtWidgets.QListWidget(self.import_group)
|
|
||||||
self.import_list.setAlternatingRowColors(True)
|
|
||||||
self.import_list.setObjectName("import_list")
|
|
||||||
self.import_layout.addWidget(self.import_list)
|
|
||||||
self.import_buttons_widget = QtWidgets.QWidget(self.import_group)
|
|
||||||
self.import_buttons_widget.setObjectName("import_buttons_widget")
|
|
||||||
self.import_buttons_layout = QtWidgets.QHBoxLayout(self.import_buttons_widget)
|
|
||||||
self.import_buttons_layout.setContentsMargins(0, 0, 0, 0)
|
|
||||||
self.import_buttons_layout.setObjectName("import_buttons_layout")
|
|
||||||
self.import_select_all_button = QtWidgets.QPushButton(self.import_buttons_widget)
|
|
||||||
self.import_select_all_button.setObjectName("import_select_all_button")
|
|
||||||
self.import_buttons_layout.addWidget(self.import_select_all_button)
|
|
||||||
self.import_select_none_button = QtWidgets.QPushButton(self.import_buttons_widget)
|
|
||||||
self.import_select_none_button.setObjectName("import_select_none_button")
|
|
||||||
self.import_buttons_layout.addWidget(self.import_select_none_button)
|
|
||||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
|
||||||
self.import_buttons_layout.addItem(spacerItem)
|
|
||||||
self.import_button = QtWidgets.QPushButton(self.import_buttons_widget)
|
|
||||||
self.import_button.setObjectName("import_button")
|
|
||||||
self.import_buttons_layout.addWidget(self.import_button)
|
|
||||||
self.import_layout.addWidget(self.import_buttons_widget, 0, QtCore.Qt.AlignLeft)
|
|
||||||
self.import_export_layout.addWidget(self.import_group)
|
|
||||||
self.export_group = QtWidgets.QGroupBox(self.import_export_widget)
|
|
||||||
self.export_group.setObjectName("export_group")
|
|
||||||
self.export_layout = QtWidgets.QVBoxLayout(self.export_group)
|
|
||||||
self.export_layout.setObjectName("export_layout")
|
|
||||||
self.export_label = QtWidgets.QLabel(self.export_group)
|
|
||||||
self.export_label.setObjectName("export_label")
|
|
||||||
self.export_layout.addWidget(self.export_label)
|
|
||||||
self.export_list = QtWidgets.QListWidget(self.export_group)
|
|
||||||
self.export_list.setAlternatingRowColors(True)
|
|
||||||
self.export_list.setObjectName("export_list")
|
|
||||||
self.export_layout.addWidget(self.export_list)
|
|
||||||
self.export_buttons_widget = QtWidgets.QWidget(self.export_group)
|
|
||||||
self.export_buttons_widget.setObjectName("export_buttons_widget")
|
|
||||||
self.export_buttons_layout = QtWidgets.QHBoxLayout(self.export_buttons_widget)
|
|
||||||
self.export_buttons_layout.setContentsMargins(0, 0, 0, 0)
|
|
||||||
self.export_buttons_layout.setObjectName("export_buttons_layout")
|
|
||||||
self.export_select_all_button = QtWidgets.QPushButton(self.export_buttons_widget)
|
|
||||||
self.export_select_all_button.setObjectName("export_select_all_button")
|
|
||||||
self.export_buttons_layout.addWidget(self.export_select_all_button)
|
|
||||||
self.export_select_none_button = QtWidgets.QPushButton(self.export_buttons_widget)
|
|
||||||
self.export_select_none_button.setObjectName("export_select_none_button")
|
|
||||||
self.export_buttons_layout.addWidget(self.export_select_none_button)
|
|
||||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
|
||||||
self.export_buttons_layout.addItem(spacerItem1)
|
|
||||||
self.export_button = QtWidgets.QPushButton(self.export_buttons_widget)
|
|
||||||
self.export_button.setObjectName("export_button")
|
|
||||||
self.export_buttons_layout.addWidget(self.export_button)
|
|
||||||
self.export_layout.addWidget(self.export_buttons_widget, 0, QtCore.Qt.AlignLeft)
|
|
||||||
self.import_export_layout.addWidget(self.export_group)
|
|
||||||
self.egl_sync_layout.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.import_export_widget)
|
|
||||||
|
|
||||||
self.retranslateUi(EGLSyncGroup)
|
|
||||||
QtCore.QMetaObject.connectSlotsByName(EGLSyncGroup)
|
|
||||||
|
|
||||||
def retranslateUi(self, EGLSyncGroup):
|
|
||||||
_translate = QtCore.QCoreApplication.translate
|
|
||||||
EGLSyncGroup.setWindowTitle(_translate("EGLSyncGroup", "EGLSyncGroup"))
|
|
||||||
EGLSyncGroup.setTitle(_translate("EGLSyncGroup", "Sync with Epic Games Launcher"))
|
|
||||||
self.egl_path_label.setText(_translate("EGLSyncGroup", "Prefix/Manifest path"))
|
|
||||||
self.egl_path_info_label.setText(_translate("EGLSyncGroup", "Estimated path"))
|
|
||||||
self.egl_sync_label.setText(_translate("EGLSyncGroup", "Enable automatic sync"))
|
|
||||||
self.import_group.setTitle(_translate("EGLSyncGroup", "Importable games"))
|
|
||||||
self.import_label.setText(_translate("EGLSyncGroup", "No games to import from EGS"))
|
|
||||||
self.import_list.setSortingEnabled(True)
|
|
||||||
self.import_select_all_button.setText(_translate("EGLSyncGroup", "Select all"))
|
|
||||||
self.import_select_none_button.setText(_translate("EGLSyncGroup", "Select none"))
|
|
||||||
self.import_button.setText(_translate("EGLSyncGroup", "Import"))
|
|
||||||
self.export_group.setTitle(_translate("EGLSyncGroup", "Exportable games"))
|
|
||||||
self.export_label.setText(_translate("EGLSyncGroup", "No games to export to EGS"))
|
|
||||||
self.export_list.setSortingEnabled(True)
|
|
||||||
self.export_select_all_button.setText(_translate("EGLSyncGroup", "Select all"))
|
|
||||||
self.export_select_none_button.setText(_translate("EGLSyncGroup", "Select none"))
|
|
||||||
self.export_button.setText(_translate("EGLSyncGroup", "Export"))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
import sys
|
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
|
||||||
EGLSyncGroup = QtWidgets.QGroupBox()
|
|
||||||
ui = Ui_EGLSyncGroup()
|
|
||||||
ui.setupUi(EGLSyncGroup)
|
|
||||||
EGLSyncGroup.show()
|
|
||||||
sys.exit(app.exec_())
|
|
|
@ -1,254 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>EGLSyncGroup</class>
|
|
||||||
<widget class="QGroupBox" name="EGLSyncGroup">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>814</width>
|
|
||||||
<height>702</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>EGLSyncGroup</string>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>Sync with Epic Games Launcher</string>
|
|
||||||
</property>
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<layout class="QFormLayout" name="egl_sync_layout">
|
|
||||||
<property name="labelAlignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="egl_path_label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Prefix/Manifest path</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<layout class="QHBoxLayout" name="egl_path_layout"/>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="egl_path_info_label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Estimated path</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLabel" name="egl_path_info">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">error</string>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="egl_sync_label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Enable automatic sync</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QCheckBox" name="egl_sync_check">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true"/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0" colspan="2">
|
|
||||||
<widget class="QWidget" name="import_export_widget" native="true">
|
|
||||||
<layout class="QVBoxLayout" name="import_export_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="QGroupBox" name="import_group">
|
|
||||||
<property name="title">
|
|
||||||
<string>Importable games</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="import_layout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="import_label">
|
|
||||||
<property name="text">
|
|
||||||
<string>No games to import from EGS</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QListWidget" name="import_list">
|
|
||||||
<property name="alternatingRowColors">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="sortingEnabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item alignment="Qt::AlignLeft">
|
|
||||||
<widget class="QWidget" name="import_buttons_widget" native="true">
|
|
||||||
<layout class="QHBoxLayout" name="import_buttons_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="QPushButton" name="import_select_all_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Select all</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="import_select_none_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Select none</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="import_buttons_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>
|
|
||||||
<widget class="QPushButton" name="import_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Import</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="export_group">
|
|
||||||
<property name="title">
|
|
||||||
<string>Exportable games</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="export_layout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="export_label">
|
|
||||||
<property name="text">
|
|
||||||
<string>No games to export to EGS</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QListWidget" name="export_list">
|
|
||||||
<property name="alternatingRowColors">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="spacing">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="sortingEnabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item alignment="Qt::AlignLeft">
|
|
||||||
<widget class="QWidget" name="export_buttons_widget" native="true">
|
|
||||||
<layout class="QHBoxLayout" name="export_buttons_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="QPushButton" name="export_select_all_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Select all</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="export_select_none_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Select none</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="export_buttons_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>
|
|
||||||
<widget class="QPushButton" name="export_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Export</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/import_sync/import_widget.ui'
|
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/import_sync/import_group.ui'
|
||||||
#
|
#
|
||||||
# Created by: PyQt5 UI code generator 5.15.4
|
# Created by: PyQt5 UI code generator 5.15.4
|
||||||
#
|
#
|
Loading…
Reference in a new issue