1
0
Fork 0
mirror of synced 2024-06-21 12:00:25 +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.QtWidgets import (
QPlainTextEdit,
@ -8,20 +8,22 @@ from PyQt5.QtWidgets import (
QVBoxLayout,
QHBoxLayout,
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
def __init__(self, parent=None):
super(ConsoleWindow, self).__init__(parent=parent)
self.setWindowTitle("Rare Console")
super(Console, self).__init__(parent=parent)
self.setWindowTitle("Rare - Console")
self.setGeometry(0, 0, 600, 400)
layout = QVBoxLayout()
self.console = Console(self)
self.console = ConsoleEdit(self)
layout.addWidget(self.console)
button_layout = QHBoxLayout()
@ -43,7 +45,7 @@ class ConsoleWindow(QDialog):
self.setLayout(layout)
self.env_variables = EnvVariables(self)
self.env_variables = ConsoleEnv(self)
self.env_variables.hide()
def save(self):
@ -72,46 +74,12 @@ class ConsoleWindow(QDialog):
self.console.error(text + end)
class EnvVariables(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)
class ConsoleEnv(QDialog):
def __init__(self, parent=None):
super(EnvVariables, self).__init__(parent=parent)
self.ui = EnvVariables.Ui(self)
super(ConsoleEnv, self).__init__(parent=parent)
self.ui = Ui_ConsoleEnv()
self.ui.setupUi(self)
def setTable(self, env: QProcessEnvironment):
self.ui.table.clearContents()
@ -124,9 +92,9 @@ class EnvVariables(QDialog):
self.ui.table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
class Console(QPlainTextEdit):
class ConsoleEdit(QPlainTextEdit):
def __init__(self, parent=None):
super(Console, self).__init__(parent=parent)
super(ConsoleEdit, self).__init__(parent=parent)
self.setReadOnly(True)
self.setFont(QFont("monospace"))
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 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.shared import LegendaryCoreSingleton, GlobalSignalsSingleton, ArgumentsSingleton
from rare.utils import legendary_utils
@ -58,7 +58,7 @@ class GameUtils(QObject):
self.signals = GlobalSignalsSingleton()
self.args = ArgumentsSingleton()
self.console = ConsoleWindow()
self.console = Console()
self.cloud_save_utils = CloudSaveUtils()
self.cloud_save_utils.sync_finished.connect(self.sync_finished)
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>