1.1 --- a/OpenSecurity/bin/ui/notification.py Wed Apr 02 09:51:21 2014 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,151 +0,0 @@
1.4 -#!/bin/env python
1.5 -# -*- coding: utf-8 -*-
1.6 -
1.7 -# ------------------------------------------------------------
1.8 -# notification-dialog
1.9 -#
1.10 -# show the user an opensecurity specific message box
1.11 -#
1.12 -# Autor: Oliver Maurhart, <oliver.maurhart@ait.ac.at>
1.13 -#
1.14 -# Copyright (C) 2013 AIT Austrian Institute of Technology
1.15 -# AIT Austrian Institute of Technology GmbH
1.16 -# Donau-City-Strasse 1 | 1220 Vienna | Austria
1.17 -# http://www.ait.ac.at
1.18 -#
1.19 -# This program is free software; you can redistribute it and/or
1.20 -# modify it under the terms of the GNU General Public License
1.21 -# as published by the Free Software Foundation version 2.
1.22 -#
1.23 -# This program is distributed in the hope that it will be useful,
1.24 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1.25 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.26 -# GNU General Public License for more details.
1.27 -#
1.28 -# You should have received a copy of the GNU General Public License
1.29 -# along with this program; if not, write to the Free Software
1.30 -# Foundation, Inc., 51 Franklin Street, Fifth Floor,
1.31 -# Boston, MA 02110-1301, USA.
1.32 -# ------------------------------------------------------------
1.33 -
1.34 -
1.35 -# ------------------------------------------------------------
1.36 -# imports
1.37 -
1.38 -import sys
1.39 -
1.40 -from PyQt4 import QtCore
1.41 -from PyQt4 import QtGui
1.42 -
1.43 -# local
1.44 -from about import About
1.45 -
1.46 -
1.47 -# ------------------------------------------------------------
1.48 -# code
1.49 -
1.50 -class Notification(QtGui.QDialog):
1.51 -
1.52 - """Show the user an OpenSecurity specific notification."""
1.53 -
1.54 - TYPES = ['information', 'warning', 'critical']
1.55 -
1.56 - def __init__(self, msgtype, text, parent = None, flags = QtCore.Qt.WindowFlags(0)):
1.57 -
1.58 - # super call and widget init
1.59 - super(Notification, self).__init__(parent, flags)
1.60 - self.setWindowTitle('OpenSecuirty Notification')
1.61 - self.setup_ui(msgtype)
1.62 -
1.63 - # positionate ourself central
1.64 - screen = QtGui.QDesktopWidget().screenGeometry()
1.65 - self.resize(self.geometry().width() * 1.25, self.geometry().height())
1.66 - size = self.geometry()
1.67 - self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)
1.68 -
1.69 - # fix up text
1.70 - if msgtype in Notification.TYPES:
1.71 -
1.72 - typetext = {
1.73 - 'information': 'OpenSecurity information',
1.74 - 'warning': '<b>OpenSecurity warning</b>',
1.75 - 'critical': '<b>OpenSecurity critical error</b>'
1.76 - }
1.77 - self.lbMsgType.setText(typetext[msgtype])
1.78 -
1.79 - captiontext = {
1.80 - 'information': 'OpenSecurity: Information',
1.81 - 'warning': 'OpenSecurity: Warning',
1.82 - 'critical': 'OpenSecurity: Critical'
1.83 - }
1.84 - self.setWindowTitle(captiontext[msgtype])
1.85 -
1.86 - else:
1.87 - raise ValueError('unknown msgtype')
1.88 -
1.89 - self.lbText.setText(text)
1.90 -
1.91 -
1.92 - def clicked_about(self):
1.93 - """clicked the about button"""
1.94 - dlgAbout = About()
1.95 - dlgAbout.exec_()
1.96 -
1.97 -
1.98 - def clicked_ok(self):
1.99 - """clicked the ok button"""
1.100 - self.accept()
1.101 -
1.102 -
1.103 - def setup_ui(self, msgtype):
1.104 -
1.105 - """Create the widgets."""
1.106 -
1.107 - lyMain = QtGui.QVBoxLayout(self)
1.108 - lyMain.setContentsMargins(8, 8, 8, 8)
1.109 -
1.110 - # content area: left pixmap, right text
1.111 - lyContent = QtGui.QHBoxLayout()
1.112 - lyMain.addLayout(lyContent)
1.113 -
1.114 - # pixmap
1.115 - lbPix = QtGui.QLabel()
1.116 - lbPix.setPixmap(QtGui.QPixmapCache.find('opensecurity_icon_64'))
1.117 - lyContent.addWidget(lbPix, 0, QtCore.Qt.Alignment(QtCore.Qt.AlignTop + QtCore.Qt.AlignHCenter))
1.118 - lyContent.addSpacing(16)
1.119 -
1.120 - # text ...
1.121 - lyText = QtGui.QVBoxLayout()
1.122 - lyContent.addLayout(lyText, 1)
1.123 -
1.124 - self.lbMsgType = QtGui.QLabel()
1.125 - lyText.addWidget(self.lbMsgType)
1.126 - self.lbText = QtGui.QLabel()
1.127 - lyText.addWidget(self.lbText)
1.128 - lyText.addStretch(1)
1.129 -
1.130 - lyMain.addStretch(1)
1.131 -
1.132 - # buttons
1.133 - lyButton = QtGui.QHBoxLayout()
1.134 - lyMain.addLayout(lyButton)
1.135 -
1.136 - lyButton.addStretch(1)
1.137 - btnOk = QtGui.QPushButton('&Ok', self)
1.138 - btnOk.setDefault(True)
1.139 - btnOk.setMinimumWidth(100)
1.140 - lyButton.addWidget(btnOk)
1.141 - btnAbout = QtGui.QPushButton('&About', self)
1.142 - btnAbout.setMinimumWidth(100)
1.143 - lyButton.addWidget(btnAbout)
1.144 -
1.145 - button_width = max(btnOk.width(), btnAbout.width())
1.146 - btnOk.setMinimumWidth(button_width)
1.147 - btnAbout.setMinimumWidth(button_width)
1.148 -
1.149 - # reduce to the max
1.150 - self.resize(lyMain.minimumSize())
1.151 -
1.152 - # connectors
1.153 - btnOk.clicked.connect(self.clicked_ok)
1.154 - btnAbout.clicked.connect(self.clicked_about)