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 52 of file uicontroller.py.

Constructor & Destructor Documentation

◆ __init__()

scripter.uicontroller.UIController.__init__ ( self)

Definition at line 56 of file uicontroller.py.

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

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 239 of file uicontroller.py.

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

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 266 of file uicontroller.py.

266 def _saveSettings(self):
267 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 213 of file uicontroller.py.

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

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 107 of file uicontroller.py.

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

References scripter.uicontroller.UIController.menu_bar.

◆ clearEditor()

◆ closeScripter()

scripter.uicontroller.UIController.closeScripter ( self)

◆ findTabWidget()

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

Definition at line 167 of file uicontroller.py.

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

References scripter.uicontroller.UIController.tabWidget.

◆ initialize()

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

Definition at line 68 of file uicontroller.py.

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

◆ invokeAction()

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

◆ loadActions()

scripter.uicontroller.UIController.loadActions ( self)

Definition at line 120 of file uicontroller.py.

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

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 104 of file uicontroller.py.

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

References scripter.uicontroller.UIController.addMenu().

◆ loadWidgets()

scripter.uicontroller.UIController.loadWidgets ( self)

Definition at line 143 of file uicontroller.py.

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

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 195 of file uicontroller.py.

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

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 185 of file uicontroller.py.

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

◆ setStatusModified()

◆ setStepped()

◆ showException()

Member Data Documentation

◆ actions

scripter.uicontroller.UIController.actions

Definition at line 64 of file uicontroller.py.

◆ actionToolbar

scripter.uicontroller.UIController.actionToolbar

Definition at line 58 of file uicontroller.py.

◆ documentModifiedText [1/2]

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

Definition at line 53 of file uicontroller.py.

◆ documentModifiedText [2/2]

scripter.uicontroller.UIController.documentModifiedText

Definition at line 187 of file uicontroller.py.

◆ documentStatusBarText [1/2]

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

Definition at line 54 of file uicontroller.py.

◆ documentStatusBarText [2/2]

scripter.uicontroller.UIController.documentStatusBarText

Definition at line 186 of file uicontroller.py.

◆ editor

scripter.uicontroller.UIController.editor

Definition at line 69 of file uicontroller.py.

◆ highlight

scripter.uicontroller.UIController.highlight

Definition at line 75 of file uicontroller.py.

◆ mainWidget

scripter.uicontroller.UIController.mainWidget

Definition at line 57 of file uicontroller.py.

◆ menu_bar

scripter.uicontroller.UIController.menu_bar

Definition at line 59 of file uicontroller.py.

◆ newMenu

scripter.uicontroller.UIController.newMenu

Definition at line 109 of file uicontroller.py.

◆ scripter

scripter.uicontroller.UIController.scripter

Definition at line 82 of file uicontroller.py.

◆ setStatusModified

scripter.uicontroller.UIController.setStatusModified

Definition at line 102 of file uicontroller.py.

◆ splitter

scripter.uicontroller.UIController.splitter

Definition at line 73 of file uicontroller.py.

◆ statusBar

scripter.uicontroller.UIController.statusBar

Definition at line 71 of file uicontroller.py.

◆ tabWidget

scripter.uicontroller.UIController.tabWidget

Definition at line 70 of file uicontroller.py.


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