Source code for BaseMod.themes.paletteuiconnector

from PySide6.QtCore import Qt
from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import QTreeWidgetItem, QColorDialog, QFileDialog

from BaseMod.themes.RaspberryDark import RaspberryDark
from BaseMod.themes.paletteui import Ui_Paletteui
from RWS.Core import PATH
from RWS.Ui import ThemeUI


[docs] class RPDarkUI(ThemeUI):
[docs] def setup_ui(self, viewer): self.ui = Ui_Paletteui() self.ui.setupUi(viewer) self.theme: RaspberryDark self.ui.treeWidget.itemDoubleClicked.connect(self.clicked) self.ui.Import.clicked.connect(self.import_action) self.ui.Export.clicked.connect(self.export_action) self.ui.Palette.clear() self.ui.Palette.addItems(["RaspberryDark", "MintDark", "MoonlightDark", "MintLight"]) self.ui.Style.clear() self.ui.Style.addItems(["Sharp", "Circular", "Darkeum"]) self.theme.styleindex.link_combobox(self.ui.Style) self.theme.stylepalette.link_combobox(self.ui.Palette) self.theme.stylepalette.valueChanged.connect(self.fill_tree) self.fill_tree()
[docs] def fill_tree(self): self.ui.treeWidget.clear() for i in self.theme.colors: item = QTreeWidgetItem([i.description]) icon = QPixmap(10, 10) icon.fill(i.value) item.setIcon(0, icon) item.setData(0, Qt.ItemDataRole.UserRole, i) self.ui.treeWidget.addTopLevelItem(item)
# i.valueChanged.connect(self.updateitem)
[docs] def updateitem(self): if self.theme.multiple: return self.fill_tree() # well it won't be that bad
[docs] def clicked(self, item: QTreeWidgetItem, column): conf = item.data(0, Qt.ItemDataRole.UserRole) d = QColorDialog.getColor(conf.value, self.mod.manager.window, options=QColorDialog.ColorDialogOption.DontUseNativeDialog) # dialog = QColorDialog(conf.value, self.mod.manager.window) # dialog.open() if not d.isValid(): return conf.update_value(d) self.fill_tree()
# dialog.colorSelected.connect(lambda x: [conf.update_value(x), self.fill_tree()])
[docs] def import_action(self): file, _ = QFileDialog.getOpenFileName(self.mod.manager.window, "Select a file", PATH) if file == "": return self.theme.multiple = True self.theme.open_palette(file) self.theme.multiple = False self.fill_tree() self.theme.theme_reenable()
[docs] def export_action(self): file, _ = QFileDialog.getSaveFileName(self.mod.manager.window, "Saving themes palette", PATH) with open(file, "w") as f: for i in self.theme.colors: f.write(f"{i.value.name()}\n")