diff --git a/TermTk/TTkUiTools/uiloader.py b/TermTk/TTkUiTools/uiloader.py index cce532db..a34017d9 100644 --- a/TermTk/TTkUiTools/uiloader.py +++ b/TermTk/TTkUiTools/uiloader.py @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -__all__ = ['TTkUiLoader'] +__all__ = ['TTkUiLoader','TTkUiSignature'] import json @@ -31,6 +31,8 @@ from TermTk.TTkWidgets import * from TermTk.TTkTestWidgets import * from TermTk.TTkUiTools.uiproperties import TTkUiProperties +TTkUiSignature = "TTkUi/Document" + class TTkUiLoader(): '''TTkUiLoader @@ -73,6 +75,13 @@ class TTkUiLoader(): ''' return TTkUiLoader.loadDict(json.loads(text), baseWidget, kwargs) + def _convert_2_0_0_to_2_0_1(ui): + return { + "type": TTkUiSignature, + "version": "2.0.1", + "connections" : ui['connections'], + "tui": ui['tui'] } + def _convert_1_0_1_to_2_0_0(ui): def _processWidget(_wid): if issubclass(globals()[_wid['class']],TTkContainer): @@ -98,8 +107,19 @@ class TTkUiLoader(): ui = TTkUiLoader._convert_1_0_1_to_2_0_0(ui) return TTkUiLoader._loadDict_2_0_0(ui, *args, **kwargs) + def _loadDict_2_0_0(ui, *args, **kwargs): + ui = TTkUiLoader._convert_2_0_0_to_2_0_1(ui) + return TTkUiLoader._loadDict_2_0_1(ui, *args, **kwargs) + @staticmethod - def _loadDict_2_0_0(ui, baseWidget:TTkWidget=None, args=None): + def _loadDict_2_0_1(ui, baseWidget:TTkWidget=None, args=None): + if ( + ui['version'] != '2.0.1' or + 'type' not in ui or + ui['type'] != TTkUiSignature): + TTkLog.error("Ui Format not valid") + return None + def _setMenuButton(_menuButtonProp, _menuButton:TTkMenuButton): if 'submenu' in _menuButtonProp: for _sm in _menuButtonProp['submenu']: @@ -288,7 +308,8 @@ class TTkUiLoader(): def normalise(ui): cb = {'1.0.0' : TTkUiLoader._convert_1_0_1_to_2_0_0, '1.0.1' : TTkUiLoader._convert_1_0_1_to_2_0_0, - '2.0.0' : lambda x: x + '2.0.0' : TTkUiLoader._convert_2_0_0_to_2_0_1, + '2.0.1' : lambda x: x }.get(ui['version'], lambda x: x) return cb(ui) @@ -307,7 +328,8 @@ class TTkUiLoader(): ''' cb = {'1.0.0' : TTkUiLoader._loadDict_1_0_0, '1.0.1' : TTkUiLoader._loadDict_1_0_0, - '2.0.0' : TTkUiLoader._loadDict_2_0_0 + '2.0.0' : TTkUiLoader._loadDict_2_0_0, + '2.0.1' : TTkUiLoader._loadDict_2_0_1, }.get(ui['version'], None) if cb: return cb(ui, baseWidget, kwargs) diff --git a/ttkDesigner/app/designer.py b/ttkDesigner/app/designer.py index 3dd3b9c6..af00aa4b 100644 --- a/ttkDesigner/app/designer.py +++ b/ttkDesigner/app/designer.py @@ -34,7 +34,7 @@ from TermTk import TTkFileDialogPicker, TTkMessageBox from TermTk import TTkGridLayout, TTkVBoxLayout, TTkHBoxLayout from TermTk import TTkSplitter, TTkAppTemplate, TTkMenuBarLayout from TermTk import TTkLogViewer, TTkKeyPressView -from TermTk import TTkUiLoader, TTkUtil +from TermTk import TTkUiLoader, TTkUiSignature, TTkUtil from .cfg import * from .about import * @@ -455,7 +455,8 @@ class TTkDesigner(TTkAppTemplate): tui = self._windowEditor.dumpDict() connections = self._sigslotEditor.dumpDict() newUI = { - 'version':'2.0.0', + 'type': TTkUiSignature, + 'version':'2.0.1', 'tui':tui, 'connections':connections} jj = json.dumps(newUI, indent=1)