source: sasview/src/sas/qtgui/Utilities/ModelEditor.py @ 73fb503

ESS_GUIESS_GUI_opencl
Last change on this file since 73fb503 was 33c0561, checked in by Piotr Rozyczko <piotr.rozyczko@…>, 6 years ago

Replace Apply button menu driven functionality with additional button.
Removed Cancel.
Removed the window system context help button from all affected widgets.
SASVIEW-1239

  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[3b3b40b]1from PyQt5 import QtCore
2from PyQt5 import QtWidgets
3
4from sas.qtgui.Utilities.UI.ModelEditor import Ui_ModelEditor
[3933ee9]5from sas.qtgui.Utilities import GuiUtils
[3b3b40b]6
7class ModelEditor(QtWidgets.QDialog, Ui_ModelEditor):
8    """
9    Class describing the "advanced" model editor.
10    This is a simple text browser allowing for editing python and
11    supporting simple highlighting.
12    """
13    modelModified = QtCore.pyqtSignal()
[f2e199e]14    def __init__(self, parent=None, is_python=True):
[3b3b40b]15        super(ModelEditor, self).__init__(parent)
16        self.setupUi(self)
[33c0561]17        # disable the context help icon
18        self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowContextHelpButtonHint)
[3b3b40b]19
[f2e199e]20        self.is_python = is_python
21
[3b3b40b]22        self.setupWidgets()
23
24        self.addSignals()
25
26    def setupWidgets(self):
27        """
28        Set up dialog widgets.
29        Here - just the highlighter connected to the text edit.
30        """
[26970b3]31        # Weird import location - workaround for a bug in Sphinx choking on
32        # importing QSyntaxHighlighter
33        # DO NOT MOVE TO TOP
34        from sas.qtgui.Utilities.PythonSyntax import PythonHighlighter
[f2e199e]35        self.highlight = PythonHighlighter(self.txtEditor.document(), is_python=self.is_python)
[3b3b40b]36
[3933ee9]37        self.txtEditor.setFont(GuiUtils.getMonospaceFont())
38
[3b3b40b]39    def addSignals(self):
40        """
41        Respond to signals in the widget
42        """
43        self.txtEditor.textChanged.connect(self.onEdit)
44
45    def onEdit(self):
46        """
47        Respond to changes in the text browser.
48        """
49        # We have edited the model - notify the parent.
50        if self.txtEditor.toPlainText() != "":
51            self.modelModified.emit()
52
53    def getModel(self):
54        """
55        Return the current model, as displayed in the window
56        """
57        model = {'text':self.txtEditor.toPlainText()}
58        model['filename'] = ""
59        return model
60
Note: See TracBrowser for help on using the repository browser.