170 lines
5.9 KiB
Python
170 lines
5.9 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# This file is part of the Coriolis Software.
|
|
# Copyright (c) UPMC 2014-2018, All Rights Reserved
|
|
#
|
|
# +-----------------------------------------------------------------+
|
|
# | C O R I O L I S |
|
|
# | C u m u l u s - P y t h o n T o o l s |
|
|
# | |
|
|
# | Author : Jean-Paul CHAPUT |
|
|
# | E-mail : Jean-Paul.Chaput@lip6.fr |
|
|
# | =============================================================== |
|
|
# | Python : "./plugins/aboutwindow.py" |
|
|
# +-----------------------------------------------------------------+
|
|
|
|
|
|
|
|
try:
|
|
import sys
|
|
import traceback
|
|
try:
|
|
from PyQt4.QtCore import Qt
|
|
from PyQt4.QtCore import QEventLoop
|
|
from PyQt4.QtGui import QDialog
|
|
from PyQt4.QtGui import QPalette
|
|
from PyQt4.QtGui import QColor
|
|
from PyQt4.QtGui import QFont
|
|
from PyQt4.QtGui import QWidget
|
|
from PyQt4.QtGui import QFrame
|
|
from PyQt4.QtGui import QLabel
|
|
from PyQt4.QtGui import QVBoxLayout
|
|
from PyQt4.QtGui import QAction
|
|
from PyQt4.QtGui import QKeySequence
|
|
from PyQt4.QtGui import QApplication
|
|
except:
|
|
try:
|
|
from PyQt5.QtCore import Qt
|
|
from PyQt5.QtCore import QEventLoop
|
|
from PyQt5.QtWidgets import QDialog
|
|
from PyQt5.QtGui import QPalette
|
|
from PyQt5.QtGui import QColor
|
|
from PyQt5.QtGui import QFont
|
|
from PyQt5.QtWidgets import QWidget
|
|
from PyQt5.QtWidgets import QFrame
|
|
from PyQt5.QtWidgets import QLabel
|
|
from PyQt5.QtWidgets import QVBoxLayout
|
|
from PyQt5.QtWidgets import QAction
|
|
from PyQt5.QtGui import QKeySequence
|
|
from PyQt5.QtWidgets import QApplication
|
|
except:
|
|
print '[ERROR] AboutWindow: Neither PyQt4 nor PyQt5 is available.'
|
|
sys.exit( 1 )
|
|
import Viewer
|
|
import helpers
|
|
from helpers.io import ErrorMessage
|
|
from helpers.io import WarningMessage
|
|
import plugins
|
|
except Exception, e:
|
|
helpers.io.catch( e )
|
|
sys.exit(2)
|
|
|
|
|
|
# --------------------------------------------------------------------
|
|
# Class : "AboutWidget".
|
|
|
|
|
|
class AboutWidget ( QDialog ):
|
|
|
|
def __init__ ( self, parent=None ):
|
|
QWidget.__init__ ( self, parent )
|
|
#self.setFixedSize( 500, 400 )
|
|
#self.setStyleSheet( 'background-color: #ffffdd;' )
|
|
|
|
topLine = QFrame()
|
|
topLine.setFrameShape( QFrame.HLine )
|
|
topLine.setLineWidth ( 2 )
|
|
botLine = QFrame()
|
|
botLine.setFrameShape( QFrame.HLine )
|
|
botLine.setLineWidth ( 2 )
|
|
|
|
title = QLabel( 'CCB' )
|
|
title.setAlignment( Qt.AlignCenter )
|
|
font = title.font()
|
|
font.setPointSize( 72 )
|
|
font.setWeight ( QFont.Bold )
|
|
title.setFont( font )
|
|
|
|
subTitle = QLabel( 'Coriolis & Chams Builder for the Dummies' )
|
|
subTitle.setAlignment( Qt.AlignCenter )
|
|
subTitle.setFont( QFont('Courier',10,QFont.Bold) )
|
|
|
|
authors = QLabel( 'Coriolis CAD System 1.0 . . . . . . . . ccb 1.0\n'
|
|
'Copyright (c) 2008-2016 . . . . . . . . . . UPMC\n'
|
|
'Authors . . . . . . . . . . . . . Damien Dupuis\n'
|
|
' . . . . . . . . . . . . Jean-Paul Chaput\n'
|
|
'E-Mail . . . . . . . . Jean-Paul.Chaput@lip6.fr'
|
|
)
|
|
authors.setAlignment( Qt.AlignCenter )
|
|
authors.setFont( QFont('Courier',10,QFont.Bold) )
|
|
|
|
vLayout = QVBoxLayout()
|
|
vLayout.addStretch(10)
|
|
vLayout.addWidget( topLine )
|
|
vLayout.addWidget( title )
|
|
vLayout.addStretch(1)
|
|
vLayout.addWidget( subTitle )
|
|
vLayout.addWidget( authors )
|
|
vLayout.addStretch(1)
|
|
vLayout.addWidget( botLine )
|
|
vLayout.addStretch(10)
|
|
|
|
frame = QFrame()
|
|
frame.setFrameShape ( QFrame.Box )
|
|
frame.setFrameShadow( QFrame.Sunken )
|
|
frame.setLayout ( vLayout )
|
|
frame.setLineWidth ( 1 )
|
|
|
|
vLayout = QVBoxLayout()
|
|
vLayout.addWidget( frame )
|
|
|
|
self.setLayout( vLayout )
|
|
|
|
self._exitAction = QAction( '&Exit', self )
|
|
self._exitAction.setStatusTip( 'Exit CCB (settings are saved)' )
|
|
self._exitAction.setShortcut ( QKeySequence('CTRL+Q') )
|
|
#self._exitAction.triggered.connect( QApplication.closeAllWindows )
|
|
self._exitAction.triggered.connect( self.reject )
|
|
self.addAction( self._exitAction )
|
|
|
|
self._closeAction = QAction( '&Close', self )
|
|
self._closeAction.setStatusTip( 'Close the About Window' )
|
|
self._closeAction.setShortcut ( QKeySequence('CTRL+A') )
|
|
#self._closeAction.triggered.connect( self.close )
|
|
self._closeAction.triggered.connect( self.accept )
|
|
self.addAction( self._closeAction )
|
|
|
|
return
|
|
|
|
|
|
# --------------------------------------------------------------------
|
|
# Plugin hook functions, unicornHook:menus, ScritMain:call
|
|
|
|
def unicornHook ( **kw ):
|
|
plugins.kwUnicornHook( 'file.About'
|
|
, 'About Coriolis'
|
|
, 'Informations about the Coriolis Software'
|
|
, sys.modules[__name__].__file__
|
|
, **kw
|
|
)
|
|
return
|
|
|
|
|
|
def scriptMain ( **kw ):
|
|
rvalue = True
|
|
try:
|
|
#helpers.setTraceLevel( 550 )
|
|
|
|
aboutWidget = AboutWidget()
|
|
answer = aboutWidget.exec_()
|
|
print 'answer:', answer
|
|
if not answer: return True
|
|
|
|
except Exception, e:
|
|
helpers.io.catch( e )
|
|
|
|
sys.stdout.flush()
|
|
sys.stderr.flush()
|
|
|
|
return rvalue
|