Sun, 20 May 2018 16:13:48 +0200
Added actions to convert to/from PySide2.
--- a/ChangeLog Sun Dec 31 16:59:13 2017 +0100 +++ b/ChangeLog Sun May 20 16:13:48 2018 +0200 @@ -1,5 +1,8 @@ ChangeLog --------- +Version 2.2.0: +- added actions to convert to/from PySide2 + Version 2.1.1: - bug fixes
--- a/PluginPySide2PyQt.py Sun Dec 31 16:59:13 2017 +0100 +++ b/PluginPySide2PyQt.py Sun May 20 16:13:48 2018 +0200 @@ -21,12 +21,12 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "2.1.1" +version = "2.2.0" className = "PySide2PyQtPlugin" packageName = "PySide2PyQt" shortDescription = "Convert PySide file to PyQt and vice versa" longDescription = \ - """This plug-in implements a tool to convert a PySide file""" \ + """This plug-in implements a tool to convert a PySide/PySide2 file""" \ """ to PyQt4 or PyQt5 and vice versa. It works with the text of the""" \ """ current editor.""" needsRestart = False @@ -137,14 +137,19 @@ Private method to initialize the menu. """ self.__menu = QMenu(self.tr("PySide to/from PyQt")) - self.__menu.addAction(self.tr("PySide to PyQt4"), self.__pyside2Pyqt)\ - .setData("pyqt4") - self.__menu.addAction(self.tr("PySide to PyQt5"), self.__pyside2Pyqt)\ - .setData("pyqt5") - self.__menu.addAction(self.tr("PyQt4 to PySide"), self.__pyqt2Pyside)\ - .setData("pyqt4") - self.__menu.addAction(self.tr("PyQt5 to PySide"), self.__pyqt2Pyside)\ - .setData("pyqt5") + self.__menu.addAction(self.tr("PySide to PyQt4"), + lambda: self.__pyside2Pyqt("pyside", "pyqt4")) + self.__menu.addAction(self.tr("PySide to PyQt5"), + lambda: self.__pyside2Pyqt("pyside", "pyqt5")) + self.__menu.addAction(self.tr("PySide2 to PyQt5"), + lambda: self.__pyside2Pyqt("pyside2", "pyqt5")) + self.__menu.addSeparator() + self.__menu.addAction(self.tr("PyQt4 to PySide"), + lambda: self.__pyqt2Pyside("pyqt4", "pyside")) + self.__menu.addAction(self.tr("PyQt5 to PySide2"), + lambda: self.__pyqt2Pyside("pyqt5", "pyside2")) + self.__menu.addAction(self.tr("PyQt5 to PySide"), + lambda: self.__pyqt2Pyside("pyqt5", "pyside")) self.__menu.setEnabled(False) def __populateMenu(self, name, menu): @@ -216,21 +221,21 @@ act = menu.addMenu(self.__menu) self.__editors[editor].append(act) - def __pyside2Pyqt(self): + def __pyside2Pyqt(self, pyside, pyqt): """ Private slot to convert the code of the current editor from PySide to PyQt. + + @param pyside PySide variant (pyside or pyside2) + @type str + @param pyqt PyQt variant (pyqt4 or pyqt5) + @type str """ editor = e5App().getObject("ViewManager").activeWindow() if editor is None: return - act = self.sender() - if act is None: - return - text = editor.text() - pyqt = act.data() if pyqt == "pyqt4": newText = (text .replace("PySide", "PyQt4") @@ -242,12 +247,15 @@ .replace("pyside-lupdate", "pylupdate4") ) elif pyqt == "pyqt5": - # Note: this code does no Qt4 to Qt5 conversion newText = (text - .replace("PySide", "PyQt5") .replace("Signal", "pyqtSignal") .replace("Slot", "pyqtSlot") .replace("Property", "pyqtProperty") + .replace("PySide2", "PyQt5") + .replace("pyside2-uic", "pyuic5") + .replace("pyside2-rcc", "pyrcc5") + .replace("pyside2-lupdate", "pylupdate5") + .replace("PySide", "PyQt5") .replace("pyside-uic", "pyuic5") .replace("pyside-rcc", "pyrcc5") .replace("pyside-lupdate", "pylupdate5") @@ -261,21 +269,21 @@ editor.replaceSelectedText(newText) editor.endUndoAction() - def __pyqt2Pyside(self): + def __pyqt2Pyside(self, pyqt, pyside): """ Private slot to convert the code of the current editor from PyQt to PySide. + + @param pyqt PyQt variant (pyqt4 or pyqt5) + @type str + @param pyside PySide variant (pyside or pyside2) + @type str """ editor = e5App().getObject("ViewManager").activeWindow() if editor is None: return - act = self.sender() - if act is None: - return - text = editor.text() - pyqt = act.data() if pyqt == "pyqt4": newText = (text .replace("PyQt4", "PySide") @@ -286,8 +294,7 @@ .replace("pyrcc4", "pyside-rcc") .replace("pylupdate4", "pyside-lupdate") ) - elif pyqt == "pyqt5": - # Note: this code does no Qt4 to Qt5 conversion + elif pyqt == "pyqt5" and pyside == "pyside": newText = (text .replace("PyQt5", "PySide") .replace("pyqtSignal", "Signal") @@ -297,6 +304,16 @@ .replace("pyrcc5", "pyside-rcc") .replace("pylupdate5", "pyside-lupdate") ) + elif pyqt == "pyqt5" and pyside == "pyside2": + newText = (text + .replace("PyQt5", "PySide2") + .replace("pyqtSignal", "Signal") + .replace("pyqtSlot", "Slot") + .replace("pyqtProperty", "Property") + .replace("pyuic5", "pyside2-uic") + .replace("pyrcc5", "pyside2-rcc") + .replace("pylupdate5", "pyside2-lupdate") + ) else: return
--- a/PySide2PyQt.e4p Sun Dec 31 16:59:13 2017 +0100 +++ b/PySide2PyQt.e4p Sun May 20 16:13:48 2018 +0200 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Project SYSTEM "Project-5.1.dtd"> <!-- eric project file for project PySide2PyQt --> -<!-- Copyright (C) 2017 Detlev Offenbach, detlev@die-offenbachs.de --> +<!-- Copyright (C) 2018 Detlev Offenbach, detlev@die-offenbachs.de --> <Project version="5.1"> <Language>en_US</Language> <Hash>d994091d1e81ad5afcdcbc00ecea86f23163c696</Hash> @@ -18,10 +18,10 @@ <Source>PySide2PyQt/__init__.py</Source> <Source>__init__.py</Source> </Sources> - <Forms/> <Translations> <Translation>PySide2PyQt/i18n/pyside2pyqt_de.qm</Translation> <Translation>PySide2PyQt/i18n/pyside2pyqt_de.ts</Translation> + <Translation>PySide2PyQt/i18n/pyside2pyqt_empty.ts</Translation> <Translation>PySide2PyQt/i18n/pyside2pyqt_en.qm</Translation> <Translation>PySide2PyQt/i18n/pyside2pyqt_en.ts</Translation> <Translation>PySide2PyQt/i18n/pyside2pyqt_es.qm</Translation> @@ -31,8 +31,6 @@ <Translation>PySide2PyQt/i18n/pyside2pyqt_ru.qm</Translation> <Translation>PySide2PyQt/i18n/pyside2pyqt_ru.ts</Translation> </Translations> - <Resources/> - <Interfaces/> <Others> <Other>.hgignore</Other> <Other>ChangeLog</Other>
--- a/PySide2PyQt/Documentation/source/Plugin_Tools_PySide2PyQt.PluginPySide2PyQt.html Sun Dec 31 16:59:13 2017 +0100 +++ b/PySide2PyQt/Documentation/source/Plugin_Tools_PySide2PyQt.PluginPySide2PyQt.html Sun May 20 16:13:48 2018 +0200 @@ -167,17 +167,33 @@ </dd> </dl><a NAME="PySide2PyQtPlugin.__pyqt2Pyside" ID="PySide2PyQtPlugin.__pyqt2Pyside"></a> <h4>PySide2PyQtPlugin.__pyqt2Pyside</h4> -<b>__pyqt2Pyside</b>(<i></i>) +<b>__pyqt2Pyside</b>(<i>pyqt, pyside</i>) <p> Private slot to convert the code of the current editor from PyQt to PySide. -</p><a NAME="PySide2PyQtPlugin.__pyside2Pyqt" ID="PySide2PyQtPlugin.__pyside2Pyqt"></a> +</p><dl> +<dt><i>pyqt</i> (str)</dt> +<dd> +PyQt variant (pyqt4 or pyqt5) +</dd><dt><i>pyside</i> (str)</dt> +<dd> +PySide variant (pyside or pyside2) +</dd> +</dl><a NAME="PySide2PyQtPlugin.__pyside2Pyqt" ID="PySide2PyQtPlugin.__pyside2Pyqt"></a> <h4>PySide2PyQtPlugin.__pyside2Pyqt</h4> -<b>__pyside2Pyqt</b>(<i></i>) +<b>__pyside2Pyqt</b>(<i>pyside, pyqt</i>) <p> Private slot to convert the code of the current editor from PySide to PyQt. -</p><a NAME="PySide2PyQtPlugin.activate" ID="PySide2PyQtPlugin.activate"></a> +</p><dl> +<dt><i>pyside</i> (str)</dt> +<dd> +PySide variant (pyside or pyside2) +</dd><dt><i>pyqt</i> (str)</dt> +<dd> +PyQt variant (pyqt4 or pyqt5) +</dd> +</dl><a NAME="PySide2PyQtPlugin.activate" ID="PySide2PyQtPlugin.activate"></a> <h4>PySide2PyQtPlugin.activate</h4> <b>activate</b>(<i></i>) <p>
--- a/PySide2PyQt/i18n/pyside2pyqt_de.ts Sun Dec 31 16:59:13 2017 +0100 +++ b/PySide2PyQt/i18n/pyside2pyqt_de.ts Sun May 20 16:13:48 2018 +0200 @@ -1,31 +1,42 @@ <?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS><TS version="2.0" language="de_DE" sourcelanguage=""> +<!DOCTYPE TS> +<TS version="2.1" language="de_DE"> <context> <name>PySide2PyQtPlugin</name> <message> - <location filename="../../PluginPySide2PyQt.py" line="125"/> + <location filename="../../PluginPySide2PyQt.py" line="141"/> <source>PySide to PyQt4</source> <translation>PySide nach PyQt4</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="129"/> + <location filename="../../PluginPySide2PyQt.py" line="148"/> <source>PyQt4 to PySide</source> <translation>PyQt4 nach PySide</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="124"/> + <location filename="../../PluginPySide2PyQt.py" line="140"/> <source>PySide to/from PyQt</source> <translation>PySide von/nach PyQt</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="127"/> + <location filename="../../PluginPySide2PyQt.py" line="143"/> <source>PySide to PyQt5</source> <translation>PySide nach PyQt5</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="131"/> + <location filename="../../PluginPySide2PyQt.py" line="152"/> <source>PyQt5 to PySide</source> <translation>PyQt5 nach PySide</translation> </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="145"/> + <source>PySide2 to PyQt5</source> + <translation>PySide2 nach PyQt5</translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="150"/> + <source>PyQt5 to PySide2</source> + <translation>PyQt5 nach PySide2</translation> + </message> </context> </TS>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PySide2PyQt/i18n/pyside2pyqt_empty.ts Sun May 20 16:13:48 2018 +0200 @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS><TS version="2.0"> +<context> + <name>PySide2PyQtPlugin</name> + <message> + <location filename="../../PluginPySide2PyQt.py" line="140"/> + <source>PySide to/from PyQt</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="141"/> + <source>PySide to PyQt4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="143"/> + <source>PySide to PyQt5</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="145"/> + <source>PySide2 to PyQt5</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="148"/> + <source>PyQt4 to PySide</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="150"/> + <source>PyQt5 to PySide2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="152"/> + <source>PyQt5 to PySide</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS>
--- a/PySide2PyQt/i18n/pyside2pyqt_en.ts Sun Dec 31 16:59:13 2017 +0100 +++ b/PySide2PyQt/i18n/pyside2pyqt_en.ts Sun May 20 16:13:48 2018 +0200 @@ -3,29 +3,39 @@ <context> <name>PySide2PyQtPlugin</name> <message> - <location filename="../../PluginPySide2PyQt.py" line="125"/> + <location filename="../../PluginPySide2PyQt.py" line="141"/> <source>PySide to PyQt4</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="129"/> + <location filename="../../PluginPySide2PyQt.py" line="148"/> <source>PyQt4 to PySide</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="124"/> + <location filename="../../PluginPySide2PyQt.py" line="140"/> <source>PySide to/from PyQt</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="127"/> + <location filename="../../PluginPySide2PyQt.py" line="143"/> <source>PySide to PyQt5</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="131"/> + <location filename="../../PluginPySide2PyQt.py" line="152"/> <source>PyQt5 to PySide</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="145"/> + <source>PySide2 to PyQt5</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="150"/> + <source>PyQt5 to PySide2</source> + <translation type="unfinished"></translation> + </message> </context> </TS>
--- a/PySide2PyQt/i18n/pyside2pyqt_es.ts Sun Dec 31 16:59:13 2017 +0100 +++ b/PySide2PyQt/i18n/pyside2pyqt_es.ts Sun May 20 16:13:48 2018 +0200 @@ -3,29 +3,39 @@ <context> <name>PySide2PyQtPlugin</name> <message> - <location filename="../../PluginPySide2PyQt.py" line="125"/> + <location filename="../../PluginPySide2PyQt.py" line="141"/> <source>PySide to PyQt4</source> <translation>PySide a PyQt4</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="129"/> + <location filename="../../PluginPySide2PyQt.py" line="148"/> <source>PyQt4 to PySide</source> <translation>PyQt4 a PySide</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="124"/> + <location filename="../../PluginPySide2PyQt.py" line="140"/> <source>PySide to/from PyQt</source> <translation>PySide a/desde PyQt</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="127"/> + <location filename="../../PluginPySide2PyQt.py" line="143"/> <source>PySide to PyQt5</source> <translation>PySide a PyQt5</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="131"/> + <location filename="../../PluginPySide2PyQt.py" line="152"/> <source>PyQt5 to PySide</source> <translation>PyQt4 a PySide</translation> </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="145"/> + <source>PySide2 to PyQt5</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="150"/> + <source>PyQt5 to PySide2</source> + <translation type="unfinished"></translation> + </message> </context> </TS>
--- a/PySide2PyQt/i18n/pyside2pyqt_pt.ts Sun Dec 31 16:59:13 2017 +0100 +++ b/PySide2PyQt/i18n/pyside2pyqt_pt.ts Sun May 20 16:13:48 2018 +0200 @@ -3,29 +3,39 @@ <context> <name>PySide2PyQtPlugin</name> <message> - <location filename="../../PluginPySide2PyQt.py" line="126"/> + <location filename="../../PluginPySide2PyQt.py" line="141"/> <source>PySide to PyQt4</source> <translation>PySide a PyQt4</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="130"/> + <location filename="../../PluginPySide2PyQt.py" line="148"/> <source>PyQt4 to PySide</source> <translation>PyQt4 a PySide</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="125"/> + <location filename="../../PluginPySide2PyQt.py" line="140"/> <source>PySide to/from PyQt</source> <translation>PySide de/a PyQt</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="128"/> + <location filename="../../PluginPySide2PyQt.py" line="143"/> <source>PySide to PyQt5</source> <translation>PySide a PyQt5</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="132"/> + <location filename="../../PluginPySide2PyQt.py" line="152"/> <source>PyQt5 to PySide</source> <translation>PyQt5 a PySide</translation> </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="145"/> + <source>PySide2 to PyQt5</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="150"/> + <source>PyQt5 to PySide2</source> + <translation type="unfinished"></translation> + </message> </context> </TS>
--- a/PySide2PyQt/i18n/pyside2pyqt_ru.ts Sun Dec 31 16:59:13 2017 +0100 +++ b/PySide2PyQt/i18n/pyside2pyqt_ru.ts Sun May 20 16:13:48 2018 +0200 @@ -3,29 +3,39 @@ <context> <name>PySide2PyQtPlugin</name> <message> - <location filename="../../PluginPySide2PyQt.py" line="126"/> + <location filename="../../PluginPySide2PyQt.py" line="141"/> <source>PySide to PyQt4</source> <translation>PySide в PyQt4</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="130"/> + <location filename="../../PluginPySide2PyQt.py" line="148"/> <source>PyQt4 to PySide</source> <translation>PyQt4 в PySide</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="125"/> + <location filename="../../PluginPySide2PyQt.py" line="140"/> <source>PySide to/from PyQt</source> <translation>PySide в/из PyQt</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="128"/> + <location filename="../../PluginPySide2PyQt.py" line="143"/> <source>PySide to PyQt5</source> <translation>PySide в PyQt5</translation> </message> <message> - <location filename="../../PluginPySide2PyQt.py" line="132"/> + <location filename="../../PluginPySide2PyQt.py" line="152"/> <source>PyQt5 to PySide</source> <translation>PyQt5 в PySide</translation> </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="145"/> + <source>PySide2 to PyQt5</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../PluginPySide2PyQt.py" line="150"/> + <source>PyQt5 to PySide2</source> + <translation type="unfinished"></translation> + </message> </context> </TS>