Subversion Repositories ExamClock

Rev

Rev 2 | Blame | Last modification | View Log | RSS feed

#-----------------------------------------------------------------------------
# Name:        mainwindow.py
# Purpose:
#
# Author:      Ron Wellsted
#
# Created:     2015-10-13
# Copyright:   (c) 2015
# Licence:     GPL 3.0
#-----------------------------------------------------------------------------
# Date      Author          Modification
#-----------------------------------------------------------------------------
# -*- coding: utf-8 -*-
from PyQt4 import uic, QtGui
from PyQt4.QtCore import pyqtSlot, QTime, QTimer

(Ui_MainWindow, QMainWindow) = uic.loadUiType('mainwindow.ui')

FoundationDuration = '00:55:00'
IntermediateDuration = '01:25:00'
AdvancedDuration = '02:00:00'

class MainWindow (QMainWindow):
    """MainWindow inherits QMainWindow"""
    _timer = None
    _Foundation = None
    _Intermediate = None
    _Advanced = None
    _running = False

    def __init__ (self, parent = None):
        QMainWindow.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self._timer = QTimer()
        self._timer.timeout.connect(self.slotUpdate)
        self._timer.start(1000)
        time = QTime.currentTime()
        now = time.toString('hh:mm:ss')
        self.ui.lcdNow.display(now)
        self._Foundation = QTime.fromString(FoundationDuration)
        self.ui.lcdFoundation.display(self._Foundation.toString('hh:mm:ss'))
        self._Intermediate = QTime.fromString(IntermediateDuration)
        self.ui.lcdIntermediate.display(self._Intermediate.toString('hh:mm:ss'))
        self._Advanced = QTime.fromString(AdvancedDuration)
        self.ui.lcdAdvanced.display(self._Advanced.toString('hh:mm:ss'))

    def closeEvent(self, event):
        if QtGui.QMessageBox.question(self, 'Confirmation', 'Close application ?', \
                QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) != QtGui.QMessageBox.Yes:
            event.ignore()
        else:
            event.accept()

    @pyqtSlot()
    def slotHelpAbout(self):
        from HelpAbout import HelpAbout
        dlg = HelpAbout(self)
        dlg.exec_()

    @pyqtSlot()
    def slotUpdate(self):
        time = QTime.currentTime()
        now = time.toString('hh:mm:ss')
        self.ui.lcdNow.display(now)
        if self._running:
            self._Foundation = self._Foundation.addSecs(-1)
            self._Intermediate = self._Intermediate.addSecs(-1)
            self._Advanced = self._Advanced.addSecs(-1)
        self.ui.lcdFoundation.display(self._Foundation.toString('hh:mm:ss'))
        self.ui.lcdIntermediate.display(self._Intermediate.toString('hh:mm:ss'))
        self.ui.lcdAdvanced.display(self._Advanced.toString('hh:mm:ss'))

    @pyqtSlot()
    def slotStart(self):
        self._running = True

    @pyqtSlot()
    def slotFoundation(self):
        pass

    @pyqtSlot()
    def slotIntermediate(self):
        pass

    @pyqtSlot()
    def slotAdvanced(self):
        pass