1
0
Fork 0
mirror of synced 2024-09-28 15:31:14 +12:00

Console: Move Environment Variables UI to a file

Signed-off-by: Stelios Tsampas <loathingkernel@gmail.com>
This commit is contained in:
Stelios Tsampas 2022-05-04 23:44:53 +03:00 committed by loathingKernel
parent 1c296474c5
commit f91b3651ae
5 changed files with 194 additions and 49 deletions

View file

@ -1,4 +1,4 @@
from PyQt5.QtCore import Qt, QCoreApplication, QMetaObject, QProcessEnvironment from PyQt5.QtCore import QProcessEnvironment
from PyQt5.QtGui import QTextCursor, QFont from PyQt5.QtGui import QTextCursor, QFont
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QPlainTextEdit, QPlainTextEdit,
@ -8,20 +8,22 @@ from PyQt5.QtWidgets import (
QVBoxLayout, QVBoxLayout,
QHBoxLayout, QHBoxLayout,
QSpacerItem, QSpacerItem,
QSizePolicy, QTableWidget, QTableWidgetItem, QAbstractItemView, QDialogButtonBox, QHeaderView, QSizePolicy, QTableWidgetItem, QHeaderView,
) )
from rare.ui.components.extra.console_env import Ui_ConsoleEnv
class ConsoleWindow(QDialog):
class Console(QDialog):
env: QProcessEnvironment env: QProcessEnvironment
def __init__(self, parent=None): def __init__(self, parent=None):
super(ConsoleWindow, self).__init__(parent=parent) super(Console, self).__init__(parent=parent)
self.setWindowTitle("Rare Console") self.setWindowTitle("Rare - Console")
self.setGeometry(0, 0, 600, 400) self.setGeometry(0, 0, 600, 400)
layout = QVBoxLayout() layout = QVBoxLayout()
self.console = Console(self) self.console = ConsoleEdit(self)
layout.addWidget(self.console) layout.addWidget(self.console)
button_layout = QHBoxLayout() button_layout = QHBoxLayout()
@ -43,7 +45,7 @@ class ConsoleWindow(QDialog):
self.setLayout(layout) self.setLayout(layout)
self.env_variables = EnvVariables(self) self.env_variables = ConsoleEnv(self)
self.env_variables.hide() self.env_variables.hide()
def save(self): def save(self):
@ -72,46 +74,12 @@ class ConsoleWindow(QDialog):
self.console.error(text + end) self.console.error(text + end)
class EnvVariables(QDialog): class ConsoleEnv(QDialog):
class Ui(object):
def __init__(self, container):
layout = QVBoxLayout()
self.table = QTableWidget(container)
self.table.setColumnCount(2)
self.table.setHorizontalHeaderItem(0, QTableWidgetItem())
self.table.setHorizontalHeaderItem(1, QTableWidgetItem())
font = QFont()
font.setFamily(u"Monospace")
self.table.setFont(font)
self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.table.setAlternatingRowColors(True)
self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
self.table.setSortingEnabled(True)
self.table.setCornerButtonEnabled(True)
self.table.horizontalHeader().setVisible(True)
self.table.horizontalHeader().setStretchLastSection(True)
self.table.verticalHeader().setVisible(False)
self.table.horizontalHeaderItem(0).setText(container.tr("Variable"))
self.table.horizontalHeaderItem(1).setText(container.tr("Value"))
layout.addWidget(self.table)
self.buttons = QDialogButtonBox(container)
self.buttons.setOrientation(Qt.Horizontal)
self.buttons.setStandardButtons(QDialogButtonBox.Close)
self.buttons.accepted.connect(container.accept)
self.buttons.rejected.connect(container.reject)
layout.addWidget(self.buttons)
container.setLayout(layout)
container.setObjectName(type(self).__name__)
container.setWindowTitle("Rare Console Environment")
container.setGeometry(0, 0, 600, 400)
def __init__(self, parent=None): def __init__(self, parent=None):
super(EnvVariables, self).__init__(parent=parent) super(ConsoleEnv, self).__init__(parent=parent)
self.ui = EnvVariables.Ui(self) self.ui = Ui_ConsoleEnv()
self.ui.setupUi(self)
def setTable(self, env: QProcessEnvironment): def setTable(self, env: QProcessEnvironment):
self.ui.table.clearContents() self.ui.table.clearContents()
@ -124,9 +92,9 @@ class EnvVariables(QDialog):
self.ui.table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.ui.table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
class Console(QPlainTextEdit): class ConsoleEdit(QPlainTextEdit):
def __init__(self, parent=None): def __init__(self, parent=None):
super(Console, self).__init__(parent=parent) super(ConsoleEdit, self).__init__(parent=parent)
self.setReadOnly(True) self.setReadOnly(True)
self.setFont(QFont("monospace")) self.setFont(QFont("monospace"))
self._cursor_output = self.textCursor() self._cursor_output = self.textCursor()

View file

@ -11,7 +11,7 @@ from PyQt5.QtWidgets import QMessageBox, QPushButton
from legendary.models.game import LaunchParameters, InstalledGame from legendary.models.game import LaunchParameters, InstalledGame
from rare.components.dialogs.uninstall_dialog import UninstallDialog from rare.components.dialogs.uninstall_dialog import UninstallDialog
from rare.components.extra.console import ConsoleWindow from rare.components.extra.console import Console
from rare.components.tabs.games import CloudSaveUtils from rare.components.tabs.games import CloudSaveUtils
from rare.shared import LegendaryCoreSingleton, GlobalSignalsSingleton, ArgumentsSingleton from rare.shared import LegendaryCoreSingleton, GlobalSignalsSingleton, ArgumentsSingleton
from rare.utils import legendary_utils from rare.utils import legendary_utils
@ -58,7 +58,7 @@ class GameUtils(QObject):
self.signals = GlobalSignalsSingleton() self.signals = GlobalSignalsSingleton()
self.args = ArgumentsSingleton() self.args = ArgumentsSingleton()
self.console = ConsoleWindow() self.console = Console()
self.cloud_save_utils = CloudSaveUtils() self.cloud_save_utils = CloudSaveUtils()
self.cloud_save_utils.sync_finished.connect(self.sync_finished) self.cloud_save_utils.sync_finished.connect(self.sync_finished)
self.game_meta = RareGameMeta() self.game_meta = RareGameMeta()

View file

View file

@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'rare/ui/components/extra/console_env.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# 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_ConsoleEnv(object):
def setupUi(self, ConsoleEnv):
ConsoleEnv.setObjectName("ConsoleEnv")
ConsoleEnv.resize(600, 400)
self.layout = QtWidgets.QVBoxLayout(ConsoleEnv)
self.layout.setObjectName("layout")
self.table = QtWidgets.QTableWidget(ConsoleEnv)
font = QtGui.QFont()
font.setFamily("Monospace")
self.table.setFont(font)
self.table.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.table.setAlternatingRowColors(True)
self.table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.table.setCornerButtonEnabled(True)
self.table.setColumnCount(2)
self.table.setObjectName("table")
self.table.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.table.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.table.setHorizontalHeaderItem(1, item)
self.table.horizontalHeader().setVisible(True)
self.table.horizontalHeader().setStretchLastSection(True)
self.table.verticalHeader().setVisible(False)
self.layout.addWidget(self.table)
self.buttons = QtWidgets.QDialogButtonBox(ConsoleEnv)
self.buttons.setOrientation(QtCore.Qt.Horizontal)
self.buttons.setStandardButtons(QtWidgets.QDialogButtonBox.Close)
self.buttons.setObjectName("buttons")
self.layout.addWidget(self.buttons)
self.retranslateUi(ConsoleEnv)
self.buttons.accepted.connect(ConsoleEnv.accept) # type: ignore
self.buttons.rejected.connect(ConsoleEnv.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(ConsoleEnv)
def retranslateUi(self, ConsoleEnv):
_translate = QtCore.QCoreApplication.translate
ConsoleEnv.setWindowTitle(_translate("ConsoleEnv", "Rare - Console Environment"))
self.table.setSortingEnabled(True)
item = self.table.horizontalHeaderItem(0)
item.setText(_translate("ConsoleEnv", "Variable"))
item = self.table.horizontalHeaderItem(1)
item.setText(_translate("ConsoleEnv", "Value"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ConsoleEnv = QtWidgets.QDialog()
ui = Ui_ConsoleEnv()
ui.setupUi(ConsoleEnv)
ConsoleEnv.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ConsoleEnv</class>
<widget class="QDialog" name="ConsoleEnv">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>400</height>
</rect>
</property>
<property name="windowTitle">
<string>Rare - Console Environment</string>
</property>
<layout class="QVBoxLayout" name="layout">
<item>
<widget class="QTableWidget" name="table">
<property name="font">
<font>
<family>Monospace</family>
</font>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<property name="cornerButtonEnabled">
<bool>true</bool>
</property>
<property name="columnCount">
<number>2</number>
</property>
<attribute name="horizontalHeaderVisible">
<bool>true</bool>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Variable</string>
</property>
</column>
<column>
<property name="text">
<string>Value</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttons">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Close</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttons</sender>
<signal>accepted()</signal>
<receiver>ConsoleEnv</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttons</sender>
<signal>rejected()</signal>
<receiver>ConsoleEnv</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>