Salome HOME
mse a jour du 07/03/2016 pour sauvegarde
[tools/eficas.git] / InterfaceQT4 / monViewTexte.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013   EDF R&D
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
8 #
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 # Modules Python
21 import string,types,os
22 import traceback
23
24 from Extensions.i18n import tr
25
26 from determine import monEnvQT5
27 if monEnvQT5 :
28    from PyQt5.QtWidgets import QDialog, QMessageBox
29 else :
30    from PyQt4.QtGui import *
31    from PyQt4.QtCore import *
32 from desViewTexte import Ui_dView
33
34 # ------------------------------- #
35 class ViewText(Ui_dView,QDialog):
36 # ------------------------------- #
37     """
38     Classe permettant la visualisation de texte
39     """
40     def __init__(self,parent,editor=None,entete=None,texte=None,largeur=600,hauteur=600):
41         QDialog.__init__(self,parent)
42         self.editor=editor
43         self.setupUi(self)
44
45         self.resize( QSize(largeur,hauteur).expandedTo(self.minimumSizeHint()) )
46         if monEnvQT5 :
47            self.bclose.clicked.connect(self.close)
48            self.bsave.clicked.connect(self.saveFile )
49         else :
50            self.connect( self.bclose,SIGNAL("clicked()"), self, SLOT("close()") )
51            self.connect( self.bsave,SIGNAL("clicked()"), self.saveFile )
52         if entete != None : self.setWindowTitle (entete)
53         if entete != None : self.setText (texte)
54
55         
56     def setText(self, txt ):    
57         self.view.setText(txt)
58         
59     def saveFile(self):
60         #recuperation du nom du fichier
61         if self.editor != None :
62            dir=self.editor.appliEficas.CONFIGURATION.savedir
63         else:
64            dir='/tmp'
65         fn = QFileDialog.getSaveFileName(None,
66                 tr("Sauvegarder le fichier"),
67                 dir)
68         if fn.isNull() : return
69         if fn == None : return (0, None)
70         if monEnvQT5 :  fn=fn[0]
71
72         ulfile = os.path.abspath(unicode(fn))
73         if self.editor != None :
74            self.editor.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0]
75         try:
76            f = open(fn, 'wb')
77            f.write(str(self.view.toPlainText()))
78            f.close()
79            return 1
80         except IOError, why:
81            QMessageBox.critical(self, tr("Sauvegarder le fichier"),
82                  tr('Le fichier')+str(fn) + tr('n a pas pu etre sauvegarde : ') + str(why))
83            return
84
85
86