Source code for RWESharp.ui.settingsuiconnector
from __future__ import annotations
from RWESharp.ui.uiscripts.settings import Ui_Settings
from PySide6.QtWidgets import QDialog, QTreeWidgetItem, QDialogButtonBox
from PySide6.QtCore import Qt, Slot
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from RWESharp.Core.Manager import Manager
[docs]
class SettingsDialogUI(QDialog):
[docs]
def __init__(self, manager: Manager, parent=None):
super().__init__(parent)
self.manager = manager
self.ui = Ui_Settings()
self.ui.setupUi(self)
self.ui.SettingsViewer.got_buttons(self)
if parent is not None:
self.setPalette(parent.palette())
# self.ui.SettingsViewer.load_ui(self.manager.setting_trees[0].ui)
for i in self.manager.setting_trees:
self.ui.treeWidget.addTopLevelItem(i.construct_tree())
self.ui.treeWidget.expandAll()
self.ui.treeWidget.itemClicked.connect(self.change)
self.ui.buttonBox.button(QDialogButtonBox.StandardButton.Reset).setText("Restore Changed")
self.ui.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
[docs]
@Slot(QTreeWidgetItem, int)
def change(self, item: QTreeWidgetItem, column: int):
data = item.data(0, Qt.ItemDataRole.UserRole)
if data[1] is None:
self.ui.SettingsViewer.clear_settings()
return
self.ui.SettingsViewer.load_ui(data[1])