Continue working on macros.
This commit is contained in:
@@ -4,6 +4,7 @@ import importlib
|
||||
import sys
|
||||
from os import listdir
|
||||
from pathlib import Path
|
||||
from uuid import uuid4
|
||||
from typing import Union
|
||||
|
||||
|
||||
@@ -14,6 +15,8 @@ class ResolutionManager:
|
||||
self.messageHandler = messageHandler
|
||||
self.mainWindow = mainWindow
|
||||
self.resolutions = {}
|
||||
# Macro dict item contents: tuple of (category, resolution name)
|
||||
self.macros = {}
|
||||
|
||||
def loadResolutionsFromDir(self, directory: Path) -> None:
|
||||
exceptionsCount = 0
|
||||
@@ -145,3 +148,9 @@ class ResolutionManager:
|
||||
resolutionClass = self.resolutions[category][resolution]['resolution']()
|
||||
result = resolutionClass.resolution(resolutionEntitiesInput, parameters)
|
||||
return result
|
||||
|
||||
def createMacro(self, resolutionList: list) -> str:
|
||||
macroUID = str(uuid4())
|
||||
self.macros[macroUID] = resolutionList
|
||||
|
||||
return macroUID
|
||||
|
||||
59
LinkScope.py
59
LinkScope.py
@@ -1227,6 +1227,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
resolutionThread[0].deleteLater()
|
||||
self.resolutions.remove(resolutionThread)
|
||||
|
||||
def showMacrosDialog(self) -> None:
|
||||
macrosDialog = MacroDialog(self)
|
||||
if macrosDialog.exec():
|
||||
pass
|
||||
|
||||
def getClientCollectors(self) -> dict:
|
||||
with self.serverCollectorsLock:
|
||||
try:
|
||||
@@ -4510,9 +4515,61 @@ class MacroDialog(QtWidgets.QDialog):
|
||||
def __init__(self, mainWindowObject: MainWindow):
|
||||
super(MacroDialog, self).__init__()
|
||||
self.setModal(True)
|
||||
self.setStyleSheet(Stylesheets.MAIN_WINDOW_STYLESHEET)
|
||||
|
||||
currentScene = mainWindowObject.centralWidget().tabbedPane.getCurrentScene()
|
||||
canvasName = currentScene.getSelfName()
|
||||
endPoints = [item.uid for item in currentScene.selectedItems()
|
||||
if isinstance(item, BaseNode)]
|
||||
currentCanvasGraph = currentScene.sceneGraph
|
||||
|
||||
# allResolutions = mainWindowObject.RESOLUTIONMANAGER.getAllResolutions() - need categories too.
|
||||
allMacros = mainWindowObject.RESOLUTIONMANAGER.macros
|
||||
|
||||
layout = QtWidgets.QVBoxLayout()
|
||||
self.setLayout(layout)
|
||||
|
||||
macroLabel = QtWidgets.QLabel("This is a list of all currently configured Macros. Click on a Macro to view the "
|
||||
"resolutions included in it.")
|
||||
"Resolutions included in it.")
|
||||
macroLabel.setWordWrap(True)
|
||||
macroTree = QtWidgets.QTreeWidget(self)
|
||||
macroTree.setSelectionMode(macroTree.SingleSelection)
|
||||
macroTree.setSelectionBehavior(macroTree.SelectRows)
|
||||
macroTree.setHeaderLabels(['Macro UID', 'Delete'])
|
||||
|
||||
for macro in allMacros:
|
||||
newMacro = QtWidgets.QTreeWidgetItem()
|
||||
macroTree.addTopLevelItem(newMacro)
|
||||
newMacro.setText(0, macro)
|
||||
newMacro.setText(1, 'DELETE BUTTON TODO')
|
||||
for resolution in allMacros[macro]:
|
||||
resolutionItem = QtWidgets.QTreeWidgetItem(newMacro)
|
||||
resolutionItem.setText(0, resolution)
|
||||
|
||||
buttonsWidget = QtWidgets.QWidget()
|
||||
buttonsWidgetLayout = QtWidgets.QHBoxLayout()
|
||||
buttonsWidget.setLayout(buttonsWidgetLayout)
|
||||
closeButton = QtWidgets.QPushButton('Close')
|
||||
closeButton.clicked.connect(self.reject)
|
||||
runSelectedButton = QtWidgets.QPushButton('Run Selected Macros')
|
||||
runSelectedButton.clicked.connect(self.accept)
|
||||
buttonsWidgetLayout.addWidget(closeButton)
|
||||
buttonsWidgetLayout.addWidget(runSelectedButton)
|
||||
|
||||
layout.addWidget(macroLabel)
|
||||
layout.addWidget(macroTree)
|
||||
layout.addWidget(buttonsWidget)
|
||||
|
||||
def createMacro(self) -> None:
|
||||
pass
|
||||
|
||||
def deleteMacro(self) -> None:
|
||||
pass
|
||||
|
||||
def accept(self) -> None:
|
||||
pass # TODO - run resolutions - function in main / thread?
|
||||
|
||||
super(MacroDialog, self).accept()
|
||||
|
||||
|
||||
class ExtractCyclesThread(QtCore.QThread):
|
||||
|
||||
Reference in New Issue
Block a user