]> SALOME platform Git repositories - tools/sat.git/blob - data/templates/PythonComponent/src/View/TreeWidget.py
Salome HOME
Add Linux Mint to list of Ubuntu distributions
[tools/sat.git] / data / templates / PythonComponent / src / View / TreeWidget.py
1 from qtsalome import *
2 from Menu import Menu
3 from RenameDialog import RenameDialog
4 from EditPointDialog import EditPointDialog
5 from EditCenterDialog import EditCenterDialog
6 from EditRadiusDialog import EditRadiusDialog
7 from Polyline import Polyline
8 from Circle import Circle
9 from SalomePyQt import SalomePyQt
10 from libSALOME_Swig import SALOMEGUI_Swig
11
12 #########################################
13 # Global variables
14 #########################################
15
16 sgPyQt = SalomePyQt()
17 sg = SALOMEGUI_Swig()
18 sgDesktop = sgPyQt.getDesktop()
19
20 #########################################
21
22 class TreeWidget( QTreeWidget ) :
23
24    def __init__( self, desktop ) :
25        """Constructor"""
26
27        QTreeWidget.__init__( self )
28        self._desktop = desktop
29
30        #Creating popup menu
31        self.setContextMenuPolicy( Qt.CustomContextMenu )
32        self.customContextMenuRequested[QPoint].connect(self.createPopups)
33        pass
34
35    def createPopups( self, point ) :
36        item = self.itemAt( point )
37        if item is None : return
38        self.menu = Menu( item )
39        for action in item.getActionsList():
40           if action == "Show" :
41              self.menu.addAction(action).triggered.connect(self.show)
42              pass
43           elif action == 'Rename' :
44              self.menu.addAction(action).triggered.connect(self.showRenameDialog)
45              pass
46           elif action == 'Delete' :
47              self.menu.addAction(action).triggered.connect(self.delete)
48              pass
49           else :
50              self.menu.addAction(action).triggered.connect(self.showEditDialog)
51              pass
52           pass
53        self. menu.exec_( QCursor.pos() )
54        pass
55
56    def show( self ) :
57        model = self.menu.getItem().getModel()
58        controller = self._desktop.getController()
59        controller.showModel( model )
60        pass
61
62    def showRenameDialog( self ) :
63        model = self.menu.getItem().getModel()
64        oldName = model.getName()
65        widgetDialogBox = QDockWidget( sgDesktop )
66        myDialog = RenameDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, model, oldName )
67        widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea )
68        widgetDialogBox.setWidget( myDialog )
69        widgetDialogBox.setWindowTitle( "Object renaming" )
70        sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox )
71        pass
72
73    def delete( self ) :
74        answer = QMessageBox.question( self, 'Confirmation', 'Do you really want to remove the selected curve ?' , QMessageBox.Yes | QMessageBox.No )
75        if answer == QMessageBox.Yes :
76           model = self.menu.getItem().getModel()
77           controller = self._desktop.getController()
78           controller.removeModel( model )
79           pass
80        pass
81
82    def showEditDialog( self ) :
83        item = self.menu.getItem()
84        parentItem = item.parent()
85        parentModel = parentItem.getModel()
86        widgetDialogBox = QDockWidget( sgDesktop )
87        if isinstance( parentModel, Polyline ) :
88           pointRange = parentItem.indexOfChild( item )
89           oldPoint = item.text( 0 )
90           myDialog = EditPointDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldPoint, pointRange )
91           pass
92        elif isinstance( parentModel, Circle ) :
93           selectedRange = parentItem.indexOfChild( item )
94           oldSelected = item.text( 0 )
95           if selectedRange == 0 : myDialog = EditCenterDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldSelected )
96           elif selectedRange == 1 : myDialog = EditRadiusDialog("www.google.fr",self._desktop.getController(),widgetDialogBox,parentModel,oldSelected)
97           else : pass
98           pass
99        else : pass
100
101        widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea )
102        widgetDialogBox.setWidget( myDialog )
103        widgetDialogBox.setWindowTitle( "Object edition" )
104        sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox )
105        pass
106
107 pass