1 from PyQt4.QtGui import *
2 from PyQt4.QtCore import *
4 from RenameDialog import RenameDialog
5 from EditPointDialog import EditPointDialog
6 from EditCenterDialog import EditCenterDialog
7 from EditRadiusDialog import EditRadiusDialog
8 from Polyline import Polyline
9 from Circle import Circle
10 from SalomePyQt import SalomePyQt
11 from libSALOME_Swig import SALOMEGUI_Swig
13 #########################################
15 #########################################
19 sgDesktop = sgPyQt.getDesktop()
21 #########################################
23 class TreeWidget( QTreeWidget ) :
25 def __init__( self, desktop ) :
28 QTreeWidget.__init__( self )
29 self._desktop = desktop
32 self.setContextMenuPolicy( Qt.CustomContextMenu )
33 self.connect ( self, SIGNAL("customContextMenuRequested(const QPoint)"), self.createPopups )
36 def createPopups( self, point ) :
37 item = self.itemAt( point )
38 if item is None : return
39 self.menu = Menu( item )
40 for action in item.getActionsList():
42 self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.show )
44 elif action == 'Rename' :
45 self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.showRenameDialog )
47 elif action == 'Delete' :
48 self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.delete )
51 self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.showEditDialog )
54 self. menu.exec_( QCursor.pos() )
58 model = self.menu.getItem().getModel()
59 controller = self._desktop.getController()
60 controller.showModel( model )
63 def showRenameDialog( self ) :
64 model = self.menu.getItem().getModel()
65 oldName = model.getName()
66 widgetDialogBox = QDockWidget( sgDesktop )
67 myDialog = RenameDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, model, oldName )
68 widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea )
69 widgetDialogBox.setWidget( myDialog )
70 widgetDialogBox.setWindowTitle( "Object renaming" )
71 sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox )
75 answer = QMessageBox.question( self, 'Confirmation', 'Do you really want to remove the selected curve ?' , QMessageBox.Yes | QMessageBox.No )
76 if answer == QMessageBox.Yes :
77 model = self.menu.getItem().getModel()
78 controller = self._desktop.getController()
79 controller.removeModel( model )
83 def showEditDialog( self ) :
84 item = self.menu.getItem()
85 parentItem = item.parent()
86 parentModel = parentItem.getModel()
87 widgetDialogBox = QDockWidget( sgDesktop )
88 if isinstance( parentModel, Polyline ) :
89 pointRange = parentItem.indexOfChild( item )
90 oldPoint = item.text( 0 )
91 myDialog = EditPointDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldPoint, pointRange )
93 elif isinstance( parentModel, Circle ) :
94 selectedRange = parentItem.indexOfChild( item )
95 oldSelected = item.text( 0 )
96 if selectedRange == 0 : myDialog = EditCenterDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldSelected )
97 elif selectedRange == 1 : myDialog = EditRadiusDialog("www.google.fr",self._desktop.getController(),widgetDialogBox,parentModel,oldSelected)
102 widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea )
103 widgetDialogBox.setWidget( myDialog )
104 widgetDialogBox.setWindowTitle( "Object edition" )
105 sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox )