Browse Source

Merge pull request #250 from ceccopierangiolieugenio/249-add-ui-file-save-signature-to-avoid-to-import-the-wrong-json

Added UI Signature
pull/252/head
Pier CeccoPierangioliEugenio 2 years ago committed by GitHub
parent
commit
8e678fcea4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 30
      TermTk/TTkUiTools/uiloader.py
  2. 5
      ttkDesigner/app/designer.py

30
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)

5
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)

Loading…
Cancel
Save