license-dialog/license-dialog

120 lines
3.3 KiB
Plaintext
Raw Normal View History

2011-06-15 16:35:17 +02:00
#!/usr/bin/python
# -*- coding: utf-8 -*-
2011-06-15 16:35:17 +02:00
import os #--Uscite possibili:
import sys #---: 0 -> licenza accettata
import gettext #---: 1 -> licenza rifiutata
from PyQt4 import QtGui, QtCore #---: 2 -> percorso licenza sbagliato o non presente o se l'argomento digitato è -h o --help
2011-06-15 16:35:17 +02:00
#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"
def usage():
print _("Usage: license-dialog /license/path")
print _("License-dialog is a simple PyQt4 based license accept/refuse dialog")
2011-06-15 16:35:17 +02:00
gettext.install('license-dialog', '/usr/share/locale', unicode=1)
try:
path = sys.argv[1]
#si verifica se non si fornisce alcun argomento
except:
usage()
print _("Error: path not defined")
sys.exit(2)
2011-06-15 16:35:17 +02:00
#controlla se la licenza esiste e la assegna a txt
if path == "-h" or path == "--help":
usage()
sys.exit(2)
#esce con 2 se è una cartella
elif not os.path.exists(path):
usage()
2011-06-15 16:35:17 +02:00
print _("Error: Wrong path")
sys.exit(2)
elif os.path.isdir(path):
usage()
print _("Error: path cannot be a directory")
sys.exit(2)
2011-06-15 16:35:17 +02:00
licenza = open(path, "r")
txtTp = licenza.read()
#così vanno i caratteri accentati sulla QTextEdit
txt= txtTp.decode("utf-8")
2011-06-15 16:35:17 +02:00
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.setPlainText(txt)
2011-06-15 16:35:17 +02:00
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_())