]> SALOME platform Git repositories - samples/pylight.git/blobdiff - src/PYLIGHTGUI/PYLIGHTGUI.py
Salome HOME
Merge Python 3 porting.
[samples/pylight.git] / src / PYLIGHTGUI / PYLIGHTGUI.py
index 03e8dbd5d94f8899300a6ff1b4bf0fcf3c52bdbb..54e5744512e4c1d4f4c54afcade3efd1a6ee0f4a 100644 (file)
@@ -124,37 +124,37 @@ def verbose():
 
 # Create actions and menus
 def initialize():
-    if verbose(): print "PYLIGHTGUI::initialize()"
+    if verbose(): print("PYLIGHTGUI::initialize()")
     return
 
 # called when module is activated
 # returns True if activating is successfull and False otherwise
 def activate():
-    if verbose() : print "PYLIGHTGUI.activate()"
+    if verbose() : print("PYLIGHTGUI.activate()")
     GUIcontext()
     return True
 
 # called when module is deactivated
 def deactivate():
-    if verbose() : print "PYLIGHTGUI.deactivate()"
+    if verbose() : print("PYLIGHTGUI.deactivate()")
     pass
 
 # Process GUI action
 def OnGUIEvent(commandID):
-    if verbose() : print "PYLIGHTGUI::OnGUIEvent : commandID = %d" % commandID
-    if dict_command.has_key( commandID ):
+    if verbose() : print("PYLIGHTGUI::OnGUIEvent : commandID = %d" % commandID)
+    if commandID in dict_command:
         try:
             dict_command[commandID]()
         except:
             traceback.print_exc()
     else:
-       if verbose() : print "The command is not implemented: %d" % commandID
+       if verbose() : print("The command is not implemented: %d" % commandID)
     pass
 
 # Customize popup menu
 def createPopupMenu(popup, context):
     global __data_model__
-    if verbose() : print "PYLIGHTGUI.createPopupMenu(): context = %s" % context
+    if verbose() : print("PYLIGHTGUI.createPopupMenu(): context = %s" % context)
 
     if context != 'ObjectBrowser':
         return
@@ -188,7 +188,7 @@ def createPopupMenu(popup, context):
 # For saving data in the study
 def saveFiles(prefix):
     global __data_model__
-    if verbose(): print "PYLIGHTGUI::saveFile()"
+    if verbose(): print("PYLIGHTGUI::saveFile()")
     postfix = "PYLIGHT.txt"
     filename = prefix+postfix
     __data_model__.saveFile(filename)
@@ -197,7 +197,7 @@ def saveFiles(prefix):
 # For restore data from the study
 def openFiles(filelist):
     global __data_model__
-    if verbose(): print "PYLIGHTGUI::openFile()"
+    if verbose(): print("PYLIGHTGUI::openFile()")
     filename =  filelist[0]
     filename.append(filelist[1])
     __data_model__.loadFile(filename)
@@ -212,8 +212,6 @@ def loadfile():
     if isinstance(filename,tuple) and len(filename) >=2:
        filename = filename[0]
 
-    filename = unicode(filename)
-
     if len(filename) == 0:
         return
     
@@ -236,8 +234,6 @@ def savefile():
     if isinstance(filename,tuple) and len(filename) >=2:
         filename = filename[0]
 
-    filename = unicode(filename)
-
     if filename.endswith(".txt") == 0:
         filename+=".txt"
         pass
@@ -317,7 +313,7 @@ def editLine():
     if sg.SelectedCount() == 1:
         entry = sg.getSelected( 0 )
         obj = __data_model__.getObject(entry)
-        if(obj.getText() != "\n"):
+        if(obj is not None and obj.getText() != "\n"):
             #Get text line
             res = QInputDialog.getText(sgPyQt.getDesktop(),
                                        "Edit line",
@@ -349,7 +345,10 @@ def removeLine():
     while selcount != 0:
         entry = sg.getSelected( selcount - 1)
         #Check what only lines selected
-        if __data_model__.getObject(entry).getText() == "\n":
+        obj = __data_model__.getObject(entry)
+        if obj is None:
+            continue
+        if obj.getText() == "\n":
             onlyLines = False
             break
         lines.append(entry)
@@ -393,7 +392,13 @@ def displayLine():
     if sg.SelectedCount() != 1:
         return
     entry = sg.getSelected(0)
-    text = __data_model__.getObject(entry).getText()
+    obj = ctx.DM.getObject(entry)
+    if obj is None:
+        QMessageBox.information(sgPyQt.getDesktop(),
+                                'Info',
+                                'Please, select line!')
+        return
+    text = obj.getText()
     if text == "\n":
         return
     renderer=libSalomePy.getRenderer()
@@ -408,7 +413,7 @@ def displayLine():
     txtPr = vtk.vtkTextProperty()
     txtPr.SetFontSize(30)
     actor.SetTextProperty(txtPr)
-    for act in  dict_actors.values():
+    for act in  list(dict_actors.values()):
         renderer.RemoveActor(act)
     renderer.AddActor(actor)
     pass
@@ -427,7 +432,13 @@ def eraseLine():
     if sg.SelectedCount() != 1:
         return
     entry = sg.getSelected(0)
-    text = __data_model__.getObject(entry).getText()
+    obj = __data_model__.getObject(entry)
+    if obj is None:
+        QMessageBox.information(sgPyQt.getDesktop(),
+                                'Info',
+                                'Please, select line!')
+        return
+    text = obj.getText()
     if text == "\n":
         return
     renderer=libSalomePy.getRenderer()
@@ -440,7 +451,7 @@ def eraseLine():
 # Return vtkActor by entry
 def getActor(entry):
     entry = str(entry)
-    if dict_actors.has_key(entry):
+    if entry in dict_actors:
         return dict_actors[entry]
     return None