src/eric7/UI/Previewers/PreviewerHTML.py

branch
eric7
changeset 11059
ecc945948048
parent 10496
f9925e08dbce
child 11090
f5f5f5803935
equal deleted inserted replaced
11058:5b5c28512359 11059:ecc945948048
64 QWebEngineView, 64 QWebEngineView,
65 ) 65 )
66 66
67 self.previewView = QWebEngineView(self) 67 self.previewView = QWebEngineView(self)
68 self.previewView.page().linkHovered.connect(self.__showLink) 68 self.previewView.page().linkHovered.connect(self.__showLink)
69
70 settings = self.previewView.settings()
71 settings.setAttribute(settings.WebAttribute.JavascriptEnabled, True)
72 # JavaScript needs to be enabled.
69 except ImportError: 73 except ImportError:
70 self.__previewAvailable = False 74 self.__previewAvailable = False
71 self.titleLabel.setText( 75 self.titleLabel.setText(
72 self.tr( 76 self.tr(
73 "<b>HTML Preview is not available!<br/>" 77 "<b>HTML Preview is not available!<br/>"
91 95
92 self.__footerLayout = QGridLayout() 96 self.__footerLayout = QGridLayout()
93 sizePolicy = QSizePolicy( 97 sizePolicy = QSizePolicy(
94 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred 98 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred
95 ) 99 )
96 self.jsCheckBox = QCheckBox(self.tr("Enable JavaScript"), self)
97 self.jsCheckBox.setToolTip(
98 self.tr("Select to enable JavaScript for HTML previews")
99 )
100 self.jsCheckBox.setSizePolicy(sizePolicy)
101 self.__footerLayout.addWidget(self.jsCheckBox, 0, 0)
102 100
103 self.ssiCheckBox = QCheckBox(self.tr("Enable Server Side Includes"), self) 101 self.ssiCheckBox = QCheckBox(self.tr("Enable Server Side Includes"), self)
104 self.ssiCheckBox.setToolTip( 102 self.ssiCheckBox.setToolTip(
105 self.tr("Select to enable support for Server Side Includes") 103 self.tr("Select to enable support for Server Side Includes")
106 ) 104 )
112 ) 110 )
113 self.__htmlButton.setEnabled(False) 111 self.__htmlButton.setEnabled(False)
114 self.__footerLayout.addWidget(self.__htmlButton, 1, 1) 112 self.__footerLayout.addWidget(self.__htmlButton, 1, 1)
115 self.__layout.addLayout(self.__footerLayout) 113 self.__layout.addLayout(self.__footerLayout)
116 114
117 self.jsCheckBox.clicked[bool].connect(self.on_jsCheckBox_clicked)
118 self.ssiCheckBox.clicked[bool].connect(self.on_ssiCheckBox_clicked) 115 self.ssiCheckBox.clicked[bool].connect(self.on_ssiCheckBox_clicked)
119 self.previewView.titleChanged.connect(self.on_previewView_titleChanged) 116 self.previewView.titleChanged.connect(self.on_previewView_titleChanged)
120 self.__htmlButton.clicked.connect(self.on_htmlButton_clicked) 117 self.__htmlButton.clicked.connect(self.on_htmlButton_clicked)
121 118
122 self.jsCheckBox.setChecked(Preferences.getUI("ShowFilePreviewJS"))
123 self.ssiCheckBox.setChecked(Preferences.getUI("ShowFilePreviewSSI")) 119 self.ssiCheckBox.setChecked(Preferences.getUI("ShowFilePreviewSSI"))
124 120
125 self.__scrollBarPositions = {} 121 self.__scrollBarPositions = {}
126 self.__vScrollBarAtEnd = {} 122 self.__vScrollBarAtEnd = {}
127 self.__hScrollBarAtEnd = {} 123 self.__hScrollBarAtEnd = {}
137 """ 133 """
138 Public method to perform shutdown actions. 134 Public method to perform shutdown actions.
139 """ 135 """
140 if self.__previewAvailable: 136 if self.__previewAvailable:
141 self.__processingThread.wait() 137 self.__processingThread.wait()
142
143 @pyqtSlot(bool)
144 def on_jsCheckBox_clicked(self, checked):
145 """
146 Private slot to enable/disable JavaScript.
147
148 @param checked state of the checkbox
149 @type bool
150 """
151 Preferences.setUI("ShowFilePreviewJS", checked)
152 self.__setJavaScriptEnabled(checked)
153
154 def __setJavaScriptEnabled(self, enable):
155 """
156 Private method to enable/disable JavaScript.
157
158 @param enable flag indicating the enable state
159 @type bool
160 """
161 self.jsCheckBox.setChecked(enable)
162
163 settings = self.previewView.settings()
164 settings.setAttribute(settings.WebAttribute.JavascriptEnabled, enable)
165
166 self.processEditor()
167 138
168 @pyqtSlot(bool) 139 @pyqtSlot(bool)
169 def on_ssiCheckBox_clicked(self, checked): 140 def on_ssiCheckBox_clicked(self, checked):
170 """ 141 """
171 Private slot to enable/disable SSI. 142 Private slot to enable/disable SSI.

eric ide

mercurial