license-dialog 2.67 KB
#!/usr/bin/python

import os                              #--Uscite possibili:
import sys                             #---: 0 -> licenza accettata
import gettext                         #---: 1 -> licenza rifiutata
from PyQt4 import QtGui, QtCore        #---: 2 -> percorso licenza sbagliato

#kde
imgAccetto = "/opt/kde/share/icons/oxygen/32x32/actions/dialog-ok-apply.png"
imgRifiuto = "/opt/kde/share/icons/oxygen/32x32/actions/dialog-close.png"
imgForm = "/opt/kde/share/icons/oxygen/32x32/mimetypes/text-rtf.png"

#gnome
#imgAccetto = "/usr/share/icons/gnome/32x32/actions/go-next.png"
#imgRifiuto = "/usr/share/icons/gnome/32x32/actions/gtk-stop.png"
#imgForm = "/usr/share/icons/gnome/32x32/mimetypes/document.png"

gettext.install('license-dialog', '/usr/share/locale', unicode=1)
path = sys.argv[1]

 
#controlla se la licenza esiste e la assegna a txt
if not os.path.exists(path):
	print _("Error: Wrong path")
	sys.exit(2)
licenza = open(path, "r")
txt = licenza.read()
licenza.close()


#centra il form sullo schermo
def center(self):
	screen = QtGui.QDesktopWidget().screenGeometry()
        size =  self.geometry()
        self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2)


class Form(QtGui.QWidget):
	def __init__(self, parent=None):
		QtGui.QWidget.__init__(self, parent)
		
		self.setWindowTitle(_("Licenze"))
		self.setWindowIcon(QtGui.QIcon(imgForm))
		self.resize(500, 400)
		center(self)
        	QtGui.QToolTip.setFont(QtGui.QFont('sans', 10))
	
		btnAccetto = QtGui.QPushButton(QtGui.QIcon(imgAccetto), _("I agree"))
		btnAccetto.setToolTip(_("Click here if you want to accept the license"))
		self.connect(btnAccetto, QtCore.SIGNAL('clicked()'), evtAccetto)

		btnRifiuto = QtGui.QPushButton(QtGui.QIcon(imgRifiuto), _("I do not agree"))
		btnRifiuto.setToolTip(_("Click here if you do <b>not</b> want to accept the license"))
		self.connect(btnRifiuto, QtCore.SIGNAL('clicked()'), evtRifiuto)
		
		licenza = QtGui.QTextEdit()
		licenza.setReadOnly(True)
		licenza.setText(txt)

		grid = QtGui.QGridLayout()
       		grid.setSpacing(10)
		
		grid.addWidget(licenza, 1, 0, 1, 2)
		grid.addWidget(btnRifiuto, 2, 0)
		grid.addWidget(btnAccetto, 2, 1)
		
		
		self.setLayout(grid)

	#annulla la chiusura con la x del window manager
	def closeEvent(form, event):
		event.ignore()
		


def evtAccetto():
	sys.exit(0)


def evtRifiuto():
	#mostra un messaggio:
	msg = QtGui.QMessageBox.question(form, _("Message"), _("Are you sure to refuse?"), QtGui.QMessageBox.Yes | 			QtGui.QMessageBox.No, QtGui.QMessageBox.No)
	if msg == QtGui.QMessageBox.Yes:
        	sys.exit(1)



#crea la finestra di dialogo
app = QtGui.QApplication(sys.argv)
form = Form()
form.show()
sys.exit(app.exec_())