Add update button, to update EOS overlay
This commit is contained in:
parent
9072a78461
commit
d801a145ab
|
@ -3,6 +3,7 @@ import platform
|
|||
from logging import getLogger
|
||||
from typing import List
|
||||
|
||||
from PyQt5.QtCore import QRunnable, QObject, pyqtSignal, QThreadPool
|
||||
from PyQt5.QtWidgets import QGroupBox, QFormLayout, QMessageBox
|
||||
|
||||
from legendary.utils import eos
|
||||
|
@ -34,7 +35,19 @@ def get_wine_prefixes() -> List[str]:
|
|||
return prefixes
|
||||
|
||||
|
||||
# TODO Update Button
|
||||
class WorkerSignals(QObject):
|
||||
update_available = pyqtSignal(bool)
|
||||
|
||||
|
||||
class CheckForUpdateWorker(QRunnable):
|
||||
def __init__(self):
|
||||
super(CheckForUpdateWorker, self).__init__()
|
||||
self.setAutoDelete(True)
|
||||
self.signals = WorkerSignals()
|
||||
|
||||
def run(self) -> None:
|
||||
shared.core.check_for_overlay_updates()
|
||||
self.signals.update_available.emit(shared.core.overlay_update_available)
|
||||
|
||||
|
||||
class EosWidget(QGroupBox, Ui_EosWidget):
|
||||
|
@ -52,12 +65,14 @@ class EosWidget(QGroupBox, Ui_EosWidget):
|
|||
self.uninstall_button.clicked.connect(self.uninstall_overlay)
|
||||
|
||||
self.update_button.setVisible(False)
|
||||
self.update_info_lbl.setVisible(False)
|
||||
self.overlay = self.core.lgd.get_overlay_install_info()
|
||||
|
||||
shared.signals.overlay_installation_finished.connect(self.overlay_installation_finished)
|
||||
|
||||
self.update_check_button.clicked.connect(self.check_for_update)
|
||||
self.install_button.clicked.connect(self.install_overlay)
|
||||
self.update_button.clicked.connect(lambda: self.install_overlay(True))
|
||||
|
||||
if self.overlay: # installed
|
||||
self.installed_version_lbl.setText(self.overlay.version)
|
||||
|
@ -85,9 +100,15 @@ class EosWidget(QGroupBox, Ui_EosWidget):
|
|||
self.enabled_info_label.setText("")
|
||||
|
||||
def check_for_update(self):
|
||||
self.core.check_for_overlay_updates()
|
||||
if self.core.overlay_update_available:
|
||||
self.update_button.setVisible(True)
|
||||
def worker_finished(update_available):
|
||||
self.update_button.setVisible(update_available)
|
||||
self.update_info_lbl.setVisible(update_available)
|
||||
self.update_check_button.setDisabled(False)
|
||||
|
||||
self.update_check_button.setDisabled(True)
|
||||
worker = CheckForUpdateWorker()
|
||||
worker.signals.update_available.connect(worker_finished)
|
||||
QThreadPool.globalInstance().start(worker)
|
||||
|
||||
def overlay_installation_finished(self):
|
||||
self.overlay = self.core.lgd.get_overlay_install_info()
|
||||
|
@ -101,6 +122,9 @@ class EosWidget(QGroupBox, Ui_EosWidget):
|
|||
self.installed_version_lbl.setText(self.overlay.version)
|
||||
self.installed_path_lbl.setText(self.overlay.install_path)
|
||||
|
||||
self.update_button.setVisible(False)
|
||||
self.update_info_lbl.setVisible(False)
|
||||
|
||||
self.enable_gb.setEnabled(True)
|
||||
|
||||
def update_select_combo(self, i: None):
|
||||
|
@ -156,8 +180,18 @@ class EosWidget(QGroupBox, Ui_EosWidget):
|
|||
enabled = True
|
||||
self.enabled_cb.setChecked(enabled)
|
||||
|
||||
def install_overlay(self):
|
||||
options = InstallOptionsModel(app_name="", base_path=os.path.expanduser("~/legendary/.overlay"),
|
||||
def install_overlay(self, update=False):
|
||||
|
||||
base_path = os.path.expanduser("~/legendary/.overlay")
|
||||
if update:
|
||||
if not self.overlay:
|
||||
self.info_stack.setCurrentIndex(1)
|
||||
self.enable_gb.setDisabled(True)
|
||||
QMessageBox.warning(self, "Warning", self.tr("Overlay is not installed. Could not update"))
|
||||
return
|
||||
base_path = self.overlay.install_path
|
||||
|
||||
options = InstallOptionsModel(app_name="", base_path=base_path,
|
||||
platform="Windows", overlay=True)
|
||||
|
||||
shared.signals.install_game.emit(options)
|
||||
|
|
|
@ -76,9 +76,6 @@ class Ui_EosWidget(object):
|
|||
self.update_check_button.setMaximumSize(QtCore.QSize(150, 16777215))
|
||||
self.update_check_button.setObjectName("update_check_button")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.update_check_button)
|
||||
self.update_button = QtWidgets.QPushButton(self.installed_info_gb)
|
||||
self.update_button.setObjectName("update_button")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.update_button)
|
||||
self.uninstall_info_label = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.uninstall_info_label.setObjectName("uninstall_info_label")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.uninstall_info_label)
|
||||
|
@ -91,6 +88,18 @@ class Ui_EosWidget(object):
|
|||
self.uninstall_button.setMaximumSize(QtCore.QSize(150, 16777215))
|
||||
self.uninstall_button.setObjectName("uninstall_button")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.uninstall_button)
|
||||
self.update_button = QtWidgets.QPushButton(self.installed_info_gb)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.update_button.sizePolicy().hasHeightForWidth())
|
||||
self.update_button.setSizePolicy(sizePolicy)
|
||||
self.update_button.setMaximumSize(QtCore.QSize(150, 16777215))
|
||||
self.update_button.setObjectName("update_button")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.update_button)
|
||||
self.update_info_lbl = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.update_info_lbl.setObjectName("update_info_lbl")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.update_info_lbl)
|
||||
self.horizontalLayout.addWidget(self.installed_info_gb)
|
||||
self.install_overlay_gb = QtWidgets.QGroupBox(EosWidget)
|
||||
self.install_overlay_gb.setObjectName("install_overlay_gb")
|
||||
|
@ -119,13 +128,14 @@ class Ui_EosWidget(object):
|
|||
self.enable_gb.setTitle(_translate("EosWidget", "Enable / Disable"))
|
||||
self.enabled_cb.setText(_translate("EosWidget", "Activated"))
|
||||
self.installed_info_gb.setTitle(_translate("EosWidget", "Installed Info"))
|
||||
self.installed_version_info_lbl.setText(_translate("EosWidget", "Installed version: "))
|
||||
self.installed_version_info_lbl.setText(_translate("EosWidget", "Installed version:"))
|
||||
self.installed_path_info_lbl.setText(_translate("EosWidget", "Installed path"))
|
||||
self.update_available_info_label.setText(_translate("EosWidget", "Updates"))
|
||||
self.update_check_button.setText(_translate("EosWidget", "Check for Update"))
|
||||
self.update_button.setText(_translate("EosWidget", "Update"))
|
||||
self.uninstall_info_label.setText(_translate("EosWidget", "Uninstall"))
|
||||
self.uninstall_button.setText(_translate("EosWidget", "Uninstall"))
|
||||
self.update_button.setText(_translate("EosWidget", "Update"))
|
||||
self.update_info_lbl.setText(_translate("EosWidget", "Install Update"))
|
||||
self.install_overlay_gb.setTitle(_translate("EosWidget", "Install Overlay"))
|
||||
self.label.setText(_translate("EosWidget", "No overlays are installed"))
|
||||
self.install_button.setText(_translate("EosWidget", "Install"))
|
||||
|
@ -133,7 +143,6 @@ class Ui_EosWidget(object):
|
|||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
EosWidget = QtWidgets.QGroupBox()
|
||||
ui = Ui_EosWidget()
|
||||
|
|
|
@ -134,13 +134,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="update_button">
|
||||
<property name="text">
|
||||
<string>Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="uninstall_info_label">
|
||||
<property name="text">
|
||||
|
@ -167,6 +160,32 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="update_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="update_info_lbl">
|
||||
<property name="text">
|
||||
<string>Install Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
Loading…
Reference in a new issue