class WebInspector(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) vbox = QVBoxLayout(self) self._webInspector = QWebInspector(self) vbox.addWidget(self._webInspector) self.btnDock = QPushButton(translations.TR_UNDOCK) vbox.addWidget(self.btnDock) ExplorerContainer.register_tab(translations.TR_TAB_WEB_INSPECTOR, self) IDE.register_service('web_inspector', self) def refresh_inspector(self): self._webInspector.hide() self._webInspector.show() def set_inspection_page(self, page): self._webInspector.setPage(page) self._webInspector.setVisible(True)
class WebInspector(QWidget): def __init__(self, parent): QWidget.__init__(self, parent) vbox = QVBoxLayout(self) self._webInspector = QWebInspector(self) vbox.addWidget(self._webInspector) self.btnDock = QPushButton(translations.TR_UNDOCK) vbox.addWidget(self.btnDock) ExplorerContainer.register_tab(translations.TR_TAB_WEB_INSPECTOR, self) def refresh_inspector(self): self._webInspector.hide() self._webInspector.show() def set_inspection_page(self, page): self._webInspector.setPage(page) self._webInspector.setVisible(True)
class WebInspector(QWidget): """WebInspector widget class""" def __init__(self, parent): QWidget.__init__(self, parent) vbox = QVBoxLayout(self) self._webInspector = QWebInspector(self) vbox.addWidget(self._webInspector) self.btnDock = QPushButton(translations.TR_UNDOCK) vbox.addWidget(self.btnDock) ExplorerContainer.register_tab(translations.TR_TAB_WEB_INSPECTOR, self) IDE.register_service('web_inspector', self) def refresh_inspector(self): """Refresh WebInspector widget by hiding and showing""" self._webInspector.hide() self._webInspector.show() def set_inspection_page(self, page): """Method to load an argument page object on the WebInspector""" self._webInspector.setPage(page) self._webInspector.setVisible(True)
class MainWindow(QtGui.QMainWindow): ''' classdocs ''' def __init__(self, parent=None): ''' Constructor ''' QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) # Clear all of the tabs on the widget while self.ui.javascriptTabs.count() > 0: self.ui.javascriptTabs.removeTab(0) # Document filename self.docxFile = '' self.document = None # Create one new one newTab = ScriptEditor() self.ui.javascriptTabs.addTab(newTab, 'untitled') # Connect all of my signals self.ui.actionNew_Script.triggered.connect(self.newScript) self.ui.actionOpen_Docx.triggered.connect(self.openDocx) self.ui.actionOpen_Javascript.triggered.connect(self.openScript) self.ui.actionSave_Current.triggered.connect(self.saveCurrentScript) self.ui.actionSave_All.triggered.connect(self.saveAllScripts) self.ui.javascriptTabs.tabCloseRequested.connect(self.onTabClose) self.ui.resetButton.clicked.connect(self.resetDocx) self.ui.inspectorButton.clicked.connect(self.openInspector) self.ui.run1Button.clicked.connect(self.runScript1) self.ui.run2Button.clicked.connect(self.runScript2) self.ui.run3Button.clicked.connect(self.runScript3) # For my web inspector self.ui.documentView.settings().setAttribute( QWebSettings.DeveloperExtrasEnabled, True) self.webInspector = QWebInspector() def newScript(self): print 'Adding new script...' newTab = ScriptEditor() self.ui.javascriptTabs.addTab(newTab, newTab.label) def openDocx(self): print 'Opening document...' dir = os.path.normpath(os.path.join(os.getcwd(), '../tests')) newFile = QtGui.QFileDialog.getOpenFileName(caption='Open Docx...', directory=dir, filter='(*.docx)') if len(newFile) > 0: self.docxFile = str(newFile) url = os.path.join(os.getcwd(), '../import') baseUrl = QUrl.fromLocalFile(url) self.document = DocxDocument(str(self.docxFile)) self.ui.documentView.setHtml(self.document.getMainPage(), baseUrl) print 'Done!' def openScript(self): print 'Opening script...' dir = os.path.normpath(os.path.join(os.getcwd(), '../docx')) newFile = QtGui.QFileDialog.getOpenFileName( caption='Open JavaScript...', directory=dir) if len(newFile) > 0: newTab = ScriptEditor(filename=str(newFile)) self.ui.javascriptTabs.addTab(newTab, newTab.label) self.ui.javascriptTabs.setCurrentIndex( self.ui.javascriptTabs.count() - 1) def saveScript(self, index): # Check to see if it is modified. If not, don't do anything current = self.ui.javascriptTabs.widget(index) if current.modified: if len(current.filename) > 0: f = open(current.filename, 'w') f.write(current.editor.text()) f.close() current.modified = False return True else: newFile = QtGui.QFileDialog.getSaveFileName() if len(newFile) > 0: f.open(newFile, 'w') f.write(current.editor.text()) f.close() current.filename = newFile current.modified = False return True else: return False def saveCurrentScript(self): print 'Saving current script...' index = self.ui.javascriptTabs.currentIndex() self.saveScript(index) self.resetDocx(None) def saveAllScripts(self): print 'Saving all scripts...' for i in range(self.ui.javascriptTabs.count()): self.saveScript(i) self.resetDocx(None) def onTabClose(self, index): print 'Tab closing:', index if self.ui.javascriptTabs.widget(index).modified: quit_msg = "Do you want to save?" reply = QtGui.QMessageBox.question(self, 'Save Script?', quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: saved = self.saveScript(index) if saved: self.ui.javascriptTabs.removeTab(index) else: self.ui.javascriptTabs.removeTab(index) else: self.ui.javascriptTabs.removeTab(index) def resetDocx(self, e): print 'Resetting document...' if len(self.docxFile) > 0: content = self.document.getMainPage() baseUrl = QUrl.fromLocalFile(os.path.join(os.getcwd(), '../import')) self.ui.documentView.setHtml(content, baseUrl) def openInspector(self, e): self.webInspector.setPage(self.ui.documentView.page()) self.webInspector.setVisible(True) def runScript1(self): print 'Running 1:', str(self.ui.commandLine1.text()) self.ui.documentView.page().mainFrame().evaluateJavaScript( self.ui.commandLine1.text()) def runScript2(self): print 'Running 2:', str(self.ui.commandLine2.text()) self.ui.documentView.page().mainFrame().evaluateJavaScript( self.ui.commandLine2.text()) def runScript3(self): print 'Running 3:', str(self.ui.commandLine3.text()) self.ui.documentView.page().mainFrame().evaluateJavaScript( self.ui.commandLine3.text()) def quit(self): self.close()
def saveTranslations(self, translations): pass @pyqtSlot(int, result=str) def open_files(self, mode): a = QFileDialog() if mode == 1: v = a.getOpenFileNames(caption="Импорт файлов rpm...", filter="RPM Files (*.rpm);;Any files (*.*)") return json.dumps(str(v)) elif mode == 2: return a.getExistingDirectory(options=QFileDialog.ShowDirsOnly) elif mode == 3: return a.getOpenFileName() if __name__ == '__main__': app = QApplication(sys.argv) view = Browser() view.page().mainFrame().addToJavaScriptWindowObject("Bridge", view) view.setWindowTitle("Handsome Localizer v1.0") view.load(QUrl("html/main.html")) view.setVisible(True) view.setMinimumWidth(1024) view.setMinimumHeight(480) view.page().settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True) inspector = QWebInspector() inspector.setPage(view.page()) inspector.setVisible(True) app.exec_()