X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=data%2Ftemplates%2FPythonComponent8%2Fsrc%2FView%2FTreeWidget.py;fp=data%2Ftemplates%2FPythonComponent8%2Fsrc%2FView%2FTreeWidget.py;h=c3b1ccd7e26e8b18fd8cd272a1bd182f2d2ae392;hb=2f7093e4aef1e2047b1f600781163f4e6d57f96d;hp=0000000000000000000000000000000000000000;hpb=606f9b6618e0e0659d4029c607eaa04d9b3501cc;p=tools%2Fsat.git diff --git a/data/templates/PythonComponent8/src/View/TreeWidget.py b/data/templates/PythonComponent8/src/View/TreeWidget.py new file mode 100755 index 0000000..c3b1ccd --- /dev/null +++ b/data/templates/PythonComponent8/src/View/TreeWidget.py @@ -0,0 +1,107 @@ +from qtsalome import * +from Menu import Menu +from RenameDialog import RenameDialog +from EditPointDialog import EditPointDialog +from EditCenterDialog import EditCenterDialog +from EditRadiusDialog import EditRadiusDialog +from Polyline import Polyline +from Circle import Circle +from SalomePyQt import SalomePyQt +from libSALOME_Swig import SALOMEGUI_Swig + +######################################### +# Global variables +######################################### + +sgPyQt = SalomePyQt() +sg = SALOMEGUI_Swig() +sgDesktop = sgPyQt.getDesktop() + +######################################### + +class TreeWidget( QTreeWidget ) : + + def __init__( self, desktop ) : + """Constructor""" + + QTreeWidget.__init__( self ) + self._desktop = desktop + + #Creating popup menu + self.setContextMenuPolicy( Qt.CustomContextMenu ) + self.customContextMenuRequested[QPoint].connect(self.createPopups) + pass + + def createPopups( self, point ) : + item = self.itemAt( point ) + if item is None : return + self.menu = Menu( item ) + for action in item.getActionsList(): + if action == "Show" : + self.menu.addAction(action).triggered.connect(self.show) + pass + elif action == 'Rename' : + self.menu.addAction(action).triggered.connect(self.showRenameDialog) + pass + elif action == 'Delete' : + self.menu.addAction(action).triggered.connect(self.delete) + pass + else : + self.menu.addAction(action).triggered.connect(self.showEditDialog) + pass + pass + self. menu.exec_( QCursor.pos() ) + pass + + def show( self ) : + model = self.menu.getItem().getModel() + controller = self._desktop.getController() + controller.showModel( model ) + pass + + def showRenameDialog( self ) : + model = self.menu.getItem().getModel() + oldName = model.getName() + widgetDialogBox = QDockWidget( sgDesktop ) + myDialog = RenameDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, model, oldName ) + widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Object renaming" ) + sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox ) + pass + + def delete( self ) : + answer = QMessageBox.question( self, 'Confirmation', 'Do you really want to remove the selected curve ?' , QMessageBox.Yes | QMessageBox.No ) + if answer == QMessageBox.Yes : + model = self.menu.getItem().getModel() + controller = self._desktop.getController() + controller.removeModel( model ) + pass + pass + + def showEditDialog( self ) : + item = self.menu.getItem() + parentItem = item.parent() + parentModel = parentItem.getModel() + widgetDialogBox = QDockWidget( sgDesktop ) + if isinstance( parentModel, Polyline ) : + pointRange = parentItem.indexOfChild( item ) + oldPoint = item.text( 0 ) + myDialog = EditPointDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldPoint, pointRange ) + pass + elif isinstance( parentModel, Circle ) : + selectedRange = parentItem.indexOfChild( item ) + oldSelected = item.text( 0 ) + if selectedRange == 0 : myDialog = EditCenterDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldSelected ) + elif selectedRange == 1 : myDialog = EditRadiusDialog("www.google.fr",self._desktop.getController(),widgetDialogBox,parentModel,oldSelected) + else : pass + pass + else : pass + + widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Object edition" ) + sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox ) + pass + +pass