Krita Source Code Documentation
Loading...
Searching...
No Matches
scripter.uicontroller.UIController Class Reference
+ Inheritance diagram for scripter.uicontroller.UIController:

Public Member Functions

 __init__ (self)
 
 addMenu (self, menuName, parentName)
 
 clearEditor (self)
 
 closeScripter (self)
 
 findTabWidget (self, widgetName, childName='')
 
 initialize (self, scripter)
 
 invokeAction (self, actionName)
 
 loadActions (self)
 
 loadMenus (self)
 
 loadWidgets (self)
 
 repaintDebugArea (self)
 
 setActiveWidget (self, widgetName)
 
 setDocumentEditor (self, document)
 
 setStatusBar (self, value='untitled')
 
 setStatusModified (self)
 
 setStepped (self, status)
 
 showException (self, exception)
 

Public Attributes

 actions
 
 actionToolbar
 
 documentModifiedText
 
 documentStatusBarText
 
 editor
 
 highlight
 
 mainWidget
 
 menu_bar
 
 newMenu
 
 scripter
 
 setStatusModified
 
 splitter
 
 statusBar
 
 tabWidget
 

Static Public Attributes

str documentModifiedText = ""
 
str documentStatusBarText = "untitled"
 

Protected Member Functions

 _readSettings (self)
 
 _saveSettings (self)
 
 _writeSettings (self)
 

Detailed Description

Definition at line 51 of file uicontroller.py.

Constructor & Destructor Documentation

◆ __init__()

scripter.uicontroller.UIController.__init__ ( self)

Definition at line 55 of file uicontroller.py.

55 def __init__(self):
56 self.mainWidget = scripterdialog.ScripterDialog(self)
57 self.actionToolbar = QToolBar('toolBar', self.mainWidget)
58 self.menu_bar = QMenuBar(self.mainWidget)
59
60 self.actionToolbar.setObjectName('toolBar')
61 self.menu_bar.setObjectName('menuBar')
62
63 self.actions = []
64
65 self.mainWidget.setWindowModality(Qt.WindowModality.NonModal)
66

Member Function Documentation

◆ _readSettings()

scripter.uicontroller.UIController._readSettings ( self)
protected
 It's similar to _writeSettings, but reading the settings when the ScripterDialog is closed. 

Definition at line 238 of file uicontroller.py.

238 def _readSettings(self):
239 """ It's similar to _writeSettings, but reading the settings when the ScripterDialog is closed. """
240
241 self.scripter.settings.beginGroup('scripter')
242
243 activeDocumentPath = self.scripter.settings.value('activeDocumentPath', '')
244
245 if activeDocumentPath:
246 if QFileInfo(activeDocumentPath).exists():
247 document = self.scripter.documentcontroller.openDocument(activeDocumentPath)
248 self.setStatusBar(document.filePath)
249 self.setDocumentEditor(document)
250
251 for action in self.actions:
252 readSettings = getattr(action['action'], "readSettings", None)
253 if callable(readSettings):
254 readSettings()
255
256 pointSize = self.scripter.settings.value('editorFontSize', str(self.editor.fontInfo().pointSize()))
257 self.editor.setFontSize(int(pointSize))
258
259 # Window Geometry
260 rect = self.scripter.settings.value(KEY_GEOMETRY, DEFAULT_GEOMETRY)
261 self.mainWidget.setGeometry(rect)
262
263 self.scripter.settings.endGroup()
264

References KisInputProfileManager.actions, KisInputProfileManager.actions(), KisKMainWindowInterface.actions(), Krita.actions(), KisActionManager.actions, KisKActionCategoryPrivate.actions, KisKActionCategory.actions(), KisKActionCollectionPrivate.actions, TasksetModel.actions(), KisKActionCollection.actions(), KDEPrivate::ToolBarHandler::Private.actions, KisKXMLGUI::ContainerClient.actions, scriptdocker.scriptdocker.ScriptDocker.actions, scripter.uicontroller.UIController.actions, SvgTextCursor.actions, krita.sceditor.indenter.TextIndenter.editor, krita.sceditor.widget.EditorSidebar.editor, scripter.ui_scripter.actions.reloadaction.reloadaction.ReloadAction.editor, scripter.ui_scripter.actions.runaction.runaction.RunAction.editor, scripter.ui_scripter.actions.saveaction.saveaction.SaveAction.editor, scripter.ui_scripter.actions.saveasaction.saveasaction.SaveAsAction.editor, scripter.ui_scripter.actions.settingsaction.fontscombobox.FontsComboBox.editor, scripter.ui_scripter.actions.settingsaction.syntaxstylescombobox.SyntaxStylesComboBox.editor, scripter.uicontroller.UIController.editor, KoDialog.mainWidget(), krita.sceditor.dockwidget.DockWidget.mainWidget, photobash_images.photobash_images_docker.PhotobashDocker.mainWidget, scripter.uicontroller.UIController.mainWidget, scripter.debugcontroller.DebugController.scripter, scripter.debugger_scripter.debugger.Debugger.scripter, scripter.ui_scripter.actions.closeaction.closeaction.CloseAction.scripter, scripter.ui_scripter.actions.debugaction.debugaction.DebugAction.scripter, scripter.ui_scripter.actions.newaction.newaction.NewAction.scripter, scripter.ui_scripter.actions.openaction.openaction.OpenAction.scripter, scripter.ui_scripter.actions.reloadaction.reloadaction.ReloadAction.scripter, scripter.ui_scripter.actions.runaction.runaction.RunAction.scripter, scripter.ui_scripter.actions.saveaction.saveaction.SaveAction.scripter, scripter.ui_scripter.actions.saveasaction.saveasaction.SaveAsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsaction.SettingsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsdialog.SettingsDialog.scripter, scripter.ui_scripter.editor.pythoneditor.CodeEditor.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.debuggerwidget.DebuggerWidget.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stepaction.StepAction.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stopaction.StopAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.clearaction.ClearAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.outputwidget.OutPutWidget.scripter, scripter.uicontroller.UIController.scripter, scripter.uicontroller.UIController.setDocumentEditor(), and scripter.uicontroller.UIController.setStatusBar().

◆ _saveSettings()

scripter.uicontroller.UIController._saveSettings ( self)
protected

Definition at line 265 of file uicontroller.py.

265 def _saveSettings(self):
266 self.scripter.settings.sync()

References scripter.debugcontroller.DebugController.scripter, scripter.debugger_scripter.debugger.Debugger.scripter, scripter.ui_scripter.actions.closeaction.closeaction.CloseAction.scripter, scripter.ui_scripter.actions.debugaction.debugaction.DebugAction.scripter, scripter.ui_scripter.actions.newaction.newaction.NewAction.scripter, scripter.ui_scripter.actions.openaction.openaction.OpenAction.scripter, scripter.ui_scripter.actions.reloadaction.reloadaction.ReloadAction.scripter, scripter.ui_scripter.actions.runaction.runaction.RunAction.scripter, scripter.ui_scripter.actions.saveaction.saveaction.SaveAction.scripter, scripter.ui_scripter.actions.saveasaction.saveasaction.SaveAsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsaction.SettingsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsdialog.SettingsDialog.scripter, scripter.ui_scripter.editor.pythoneditor.CodeEditor.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.debuggerwidget.DebuggerWidget.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stepaction.StepAction.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stopaction.StopAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.clearaction.ClearAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.outputwidget.OutPutWidget.scripter, and scripter.uicontroller.UIController.scripter.

◆ _writeSettings()

scripter.uicontroller.UIController._writeSettings ( self)
protected
 _writeSettings is a method invoked when the scripter starts, making
    control inversion. Actions can implement a writeSettings method to
    save your own settings without this method to know about it. 

Definition at line 212 of file uicontroller.py.

212 def _writeSettings(self):
213 """ _writeSettings is a method invoked when the scripter starts, making
214 control inversion. Actions can implement a writeSettings method to
215 save your own settings without this method to know about it. """
216
217 self.scripter.settings.beginGroup('scripter')
218
219 document = self.scripter.documentcontroller.activeDocument
220 if document:
221 self.scripter.settings.setValue('activeDocumentPath', document.filePath)
222 else:
223 self.scripter.settings.setValue('activeDocumentPath', '')
224
225 self.scripter.settings.setValue('editorFontSize', self.editor.fontInfo().pointSize())
226
227 for action in self.actions:
228 writeSettings = getattr(action['action'], "writeSettings", None)
229 if callable(writeSettings):
230 writeSettings()
231
232 # Window Geometry
233 rect = self.mainWidget.geometry()
234 self.scripter.settings.setValue(KEY_GEOMETRY, rect)
235
236 self.scripter.settings.endGroup()
237

References Krita.actions(), KisInputProfileManager.actions, KisInputProfileManager.actions(), KisActionManager.actions, KisKActionCategoryPrivate.actions, KisKActionCollectionPrivate.actions, KisKMainWindowInterface.actions(), KisKActionCategory.actions(), KDEPrivate::ToolBarHandler::Private.actions, KisKXMLGUI::ContainerClient.actions, TasksetModel.actions(), KisKActionCollection.actions(), scriptdocker.scriptdocker.ScriptDocker.actions, scripter.uicontroller.UIController.actions, SvgTextCursor.actions, krita.sceditor.indenter.TextIndenter.editor, krita.sceditor.widget.EditorSidebar.editor, scripter.ui_scripter.actions.reloadaction.reloadaction.ReloadAction.editor, scripter.ui_scripter.actions.runaction.runaction.RunAction.editor, scripter.ui_scripter.actions.saveaction.saveaction.SaveAction.editor, scripter.ui_scripter.actions.saveasaction.saveasaction.SaveAsAction.editor, scripter.ui_scripter.actions.settingsaction.fontscombobox.FontsComboBox.editor, scripter.ui_scripter.actions.settingsaction.syntaxstylescombobox.SyntaxStylesComboBox.editor, scripter.uicontroller.UIController.editor, KoDialog.mainWidget(), krita.sceditor.dockwidget.DockWidget.mainWidget, photobash_images.photobash_images_docker.PhotobashDocker.mainWidget, scripter.uicontroller.UIController.mainWidget, scripter.debugcontroller.DebugController.scripter, scripter.debugger_scripter.debugger.Debugger.scripter, scripter.ui_scripter.actions.closeaction.closeaction.CloseAction.scripter, scripter.ui_scripter.actions.debugaction.debugaction.DebugAction.scripter, scripter.ui_scripter.actions.newaction.newaction.NewAction.scripter, scripter.ui_scripter.actions.openaction.openaction.OpenAction.scripter, scripter.ui_scripter.actions.reloadaction.reloadaction.ReloadAction.scripter, scripter.ui_scripter.actions.runaction.runaction.RunAction.scripter, scripter.ui_scripter.actions.saveaction.saveaction.SaveAction.scripter, scripter.ui_scripter.actions.saveasaction.saveasaction.SaveAsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsaction.SettingsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsdialog.SettingsDialog.scripter, scripter.ui_scripter.editor.pythoneditor.CodeEditor.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.debuggerwidget.DebuggerWidget.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stepaction.StepAction.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stopaction.StopAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.clearaction.ClearAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.outputwidget.OutPutWidget.scripter, and scripter.uicontroller.UIController.scripter.

◆ addMenu()

scripter.uicontroller.UIController.addMenu ( self,
menuName,
parentName )

Definition at line 106 of file uicontroller.py.

106 def addMenu(self, menuName, parentName):
107 parent = self.menu_bar.findChild(QObject, parentName)
108 self.newMenu = None
109
110 if parent:
111 self.newMenu = parent.addMenu(menuName)
112 else:
113 self.newMenu = self.menu_bar.addMenu(menuName)
114
115 self.newMenu.setObjectName(menuName)
116
117 return self.newMenu
118

References scripter.uicontroller.UIController.menu_bar.

◆ clearEditor()

◆ closeScripter()

scripter.uicontroller.UIController.closeScripter ( self)

◆ findTabWidget()

scripter.uicontroller.UIController.findTabWidget ( self,
widgetName,
childName = '' )

Definition at line 166 of file uicontroller.py.

166 def findTabWidget(self, widgetName, childName=''):
167 for index in range(self.tabWidget.count()):
168 widget = self.tabWidget.widget(index)
169 if widget.objectName() == widgetName:
170 if childName:
171 widget = widget.findChild(QObject, childName)
172 return widget
173

References scripter.uicontroller.UIController.tabWidget.

◆ initialize()

scripter.uicontroller.UIController.initialize ( self,
scripter )

Definition at line 67 of file uicontroller.py.

67 def initialize(self, scripter):
68 self.editor = pythoneditor.CodeEditor(scripter)
69 self.tabWidget = QTabWidget()
70 self.statusBar = Elided_Text_Label()
71 self.statusBar.setMainText('untitled')
72 self.splitter = QSplitter()
73 self.splitter.setOrientation(Qt.Orientation.Vertical)
74 self.highlight = syntax.PythonHighlighter(self.editor.document(), syntaxstyles.DefaultSyntaxStyle())
75 p = self.editor.palette()
76 p.setColor(QPalette.ColorRole.Base, syntaxstyles.DefaultSyntaxStyle()['background'].foreground().color())
77 p.setColor(QPalette.ColorRole.Text, syntaxstyles.DefaultSyntaxStyle()['foreground'].foreground().color())
78 self.editor.setPalette(p)
79
80 utils.setNeedDarkIcon(self.mainWidget.palette().window().color())
81 self.scripter = scripter
82
83 self.loadMenus()
84 self.loadWidgets()
85 self.loadActions()
86 self._readSettings() # sets window size
87
88 vbox = QVBoxLayout(self.mainWidget)
89 vbox.addWidget(self.menu_bar)
90 vbox.addWidget(self.actionToolbar)
91 self.splitter.addWidget(self.editor)
92 self.splitter.addWidget(self.tabWidget)
93 vbox.addWidget(self.splitter)
94 vbox.addWidget(self.statusBar)
95
96 self.mainWidget.setWindowTitle(i18n("Scripter"))
97 self.mainWidget.setSizeGripEnabled(True)
98 self.mainWidget.show()
99 self.mainWidget.activateWindow()
100
101 self.editor.undoAvailable.connect(self.setStatusModified)
102
rgba palette[MAX_PALETTE]
Definition palette.c:35

◆ invokeAction()

scripter.uicontroller.UIController.invokeAction ( self,
actionName )

◆ loadActions()

scripter.uicontroller.UIController.loadActions ( self)

Definition at line 119 of file uicontroller.py.

119 def loadActions(self):
120 module_path = 'scripter.ui_scripter.actions'
121 actions_module = importlib.import_module(module_path)
122 modules = []
123
124 for class_path in actions_module.action_classes:
125 _module = class_path[:class_path.rfind(".")]
126 _klass = class_path[class_path.rfind(".") + 1:]
127 modules.append(dict(module='{0}.{1}'.format(module_path, _module),
128 klass=_klass))
129
130 for module in modules:
131 m = importlib.import_module(module['module'])
132 action_class = getattr(m, module['klass'])
133 obj = action_class(self.scripter)
134 obj_parent = obj.parent
135 for name in obj_parent:
136 parent = self.mainWidget.findChild(QObject, i18n(name))
137 self.actions.append(dict(action=obj, parent=parent))
138
139 for action in self.actions:
140 action['parent'].addAction(action['action'])
141

References Krita.actions(), KisInputProfileManager.actions, KisInputProfileManager.actions(), KisActionManager.actions, KisKActionCategoryPrivate.actions, KisKActionCollectionPrivate.actions, KisKMainWindowInterface.actions(), KDEPrivate::ToolBarHandler::Private.actions, TasksetModel.actions(), KisKActionCategory.actions(), KisKActionCollection.actions(), KisKXMLGUI::ContainerClient.actions, scriptdocker.scriptdocker.ScriptDocker.actions, scripter.uicontroller.UIController.actions, SvgTextCursor.actions, KoDialog.mainWidget(), krita.sceditor.dockwidget.DockWidget.mainWidget, photobash_images.photobash_images_docker.PhotobashDocker.mainWidget, scripter.uicontroller.UIController.mainWidget, scripter.debugcontroller.DebugController.scripter, scripter.debugger_scripter.debugger.Debugger.scripter, scripter.ui_scripter.actions.closeaction.closeaction.CloseAction.scripter, scripter.ui_scripter.actions.debugaction.debugaction.DebugAction.scripter, scripter.ui_scripter.actions.newaction.newaction.NewAction.scripter, scripter.ui_scripter.actions.openaction.openaction.OpenAction.scripter, scripter.ui_scripter.actions.reloadaction.reloadaction.ReloadAction.scripter, scripter.ui_scripter.actions.runaction.runaction.RunAction.scripter, scripter.ui_scripter.actions.saveaction.saveaction.SaveAction.scripter, scripter.ui_scripter.actions.saveasaction.saveasaction.SaveAsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsaction.SettingsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsdialog.SettingsDialog.scripter, scripter.ui_scripter.editor.pythoneditor.CodeEditor.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.debuggerwidget.DebuggerWidget.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stepaction.StepAction.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stopaction.StopAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.clearaction.ClearAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.outputwidget.OutPutWidget.scripter, and scripter.uicontroller.UIController.scripter.

◆ loadMenus()

scripter.uicontroller.UIController.loadMenus ( self)

Definition at line 103 of file uicontroller.py.

103 def loadMenus(self):
104 self.addMenu(i18n('File'), i18n('File'))
105

References scripter.uicontroller.UIController.addMenu().

◆ loadWidgets()

scripter.uicontroller.UIController.loadWidgets ( self)

Definition at line 142 of file uicontroller.py.

142 def loadWidgets(self):
143 modulePath = 'scripter.ui_scripter.tabwidgets'
144 widgetsModule = importlib.import_module(modulePath)
145 modules = []
146
147 for class_path in widgetsModule.widgetClasses:
148 _module = class_path[:class_path.rfind(".")]
149 _klass = class_path[class_path.rfind(".") + 1:]
150 modules.append(dict(module='{0}.{1}'.format(modulePath, _module),
151 klass=_klass))
152
153 for module in modules:
154 m = importlib.import_module(module['module'])
155 widgetClass = getattr(m, module['klass'])
156 obj = widgetClass(self.scripter)
157 self.tabWidget.addTab(obj, obj.objectName())
158

References scripter.debugcontroller.DebugController.scripter, scripter.debugger_scripter.debugger.Debugger.scripter, scripter.ui_scripter.actions.closeaction.closeaction.CloseAction.scripter, scripter.ui_scripter.actions.debugaction.debugaction.DebugAction.scripter, scripter.ui_scripter.actions.newaction.newaction.NewAction.scripter, scripter.ui_scripter.actions.openaction.openaction.OpenAction.scripter, scripter.ui_scripter.actions.reloadaction.reloadaction.ReloadAction.scripter, scripter.ui_scripter.actions.runaction.runaction.RunAction.scripter, scripter.ui_scripter.actions.saveaction.saveaction.SaveAction.scripter, scripter.ui_scripter.actions.saveasaction.saveasaction.SaveAsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsaction.SettingsAction.scripter, scripter.ui_scripter.actions.settingsaction.settingsdialog.SettingsDialog.scripter, scripter.ui_scripter.editor.pythoneditor.CodeEditor.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.debuggerwidget.DebuggerWidget.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stepaction.StepAction.scripter, scripter.ui_scripter.tabwidgets.debuggerwidget.stopaction.StopAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.clearaction.ClearAction.scripter, scripter.ui_scripter.tabwidgets.outputwidget.outputwidget.OutPutWidget.scripter, scripter.uicontroller.UIController.scripter, and scripter.uicontroller.UIController.tabWidget.

◆ repaintDebugArea()

◆ setActiveWidget()

scripter.uicontroller.UIController.setActiveWidget ( self,
widgetName )

Definition at line 194 of file uicontroller.py.

194 def setActiveWidget(self, widgetName):
195 widget = self.findTabWidget(widgetName)
196
197 if widget:
198 self.tabWidget.setCurrentWidget(widget)
199

References scripter.uicontroller.UIController.findTabWidget(), and scripter.uicontroller.UIController.tabWidget.

◆ setDocumentEditor()

scripter.uicontroller.UIController.setDocumentEditor ( self,
document )

◆ setStatusBar()

scripter.uicontroller.UIController.setStatusBar ( self,
value = 'untitled' )

Definition at line 184 of file uicontroller.py.

184 def setStatusBar(self, value='untitled'):
185 self.documentStatusBarText = value
186 self.statusBar.setMainText(self.documentStatusBarText + self.documentModifiedText)
187

◆ setStatusModified()

◆ setStepped()

◆ showException()

Member Data Documentation

◆ actions

scripter.uicontroller.UIController.actions

Definition at line 63 of file uicontroller.py.

◆ actionToolbar

scripter.uicontroller.UIController.actionToolbar

Definition at line 57 of file uicontroller.py.

◆ documentModifiedText [1/2]

str scripter.uicontroller.UIController.documentModifiedText = ""
static

Definition at line 52 of file uicontroller.py.

◆ documentModifiedText [2/2]

scripter.uicontroller.UIController.documentModifiedText

Definition at line 186 of file uicontroller.py.

◆ documentStatusBarText [1/2]

str scripter.uicontroller.UIController.documentStatusBarText = "untitled"
static

Definition at line 53 of file uicontroller.py.

◆ documentStatusBarText [2/2]

scripter.uicontroller.UIController.documentStatusBarText

Definition at line 185 of file uicontroller.py.

◆ editor

scripter.uicontroller.UIController.editor

Definition at line 68 of file uicontroller.py.

◆ highlight

scripter.uicontroller.UIController.highlight

Definition at line 74 of file uicontroller.py.

◆ mainWidget

scripter.uicontroller.UIController.mainWidget

Definition at line 56 of file uicontroller.py.

◆ menu_bar

scripter.uicontroller.UIController.menu_bar

Definition at line 58 of file uicontroller.py.

◆ newMenu

scripter.uicontroller.UIController.newMenu

Definition at line 108 of file uicontroller.py.

◆ scripter

scripter.uicontroller.UIController.scripter

Definition at line 81 of file uicontroller.py.

◆ setStatusModified

scripter.uicontroller.UIController.setStatusModified

Definition at line 101 of file uicontroller.py.

◆ splitter

scripter.uicontroller.UIController.splitter

Definition at line 72 of file uicontroller.py.

◆ statusBar

scripter.uicontroller.UIController.statusBar

Definition at line 70 of file uicontroller.py.

◆ tabWidget

scripter.uicontroller.UIController.tabWidget

Definition at line 69 of file uicontroller.py.


The documentation for this class was generated from the following file: