#from __future__ import unicode_literals
# -*- coding: utf-8 -*-
from __future__ import division
from time import time, sleep, strftime, localtime

from PyQt4.QtCore import *
from PyQt4.QtGui import *

from ui.ecran_creerPlateau import Ui_crp_fenetre

from outilsSvg import *

class EcranCreerPlateau(QDialog):
    """interface de creation/chargement de plateau"""
    def __init__(self, fenetrePrincipale, terrain=None, parent=None):
        """initialisation de la fenetre"""
        super (EcranCreerPlateau, self).__init__()
        self.fenetre = fenetrePrincipale
        self.couleur = QColor(0, 255, 0, 80)
        self._majEnCours = False
        self.createWidgets()
        self.majAffichage()
        
    def createWidgets(self):
        """construction de l'interface"""
        #construction de l'interface
        self.ui = Ui_crp_fenetre()
        self.ui.setupUi(self)
        self.ui.crp_couleur.setStyleSheet("QLabel {backGround:%s}" %(self.couleur))
        self.connect(self.ui.crp_couleur, SIGNAL("clicked()"), self.selectionCouleur)
        self.connect(self.ui.crp_listeDimensions, SIGNAL("activated(int)"), self.majDimensions)
        self.connect(self.ui.crp_largeur, SIGNAL("valueChanged(int)"), self.majListeDimensions)
        self.connect(self.ui.crp_hauteur, SIGNAL("valueChanged(int)"), self.majListeDimensions)
        
        self.connect(self.ui.crp_nom, SIGNAL("textEdited(QString)"), self.majAffichage)
        
        self.connect(self.ui.crp_ok, SIGNAL("clicked()"), self.creer)
        self.ui.crp_ok.setShortcut("Enter") 

    def creer(self):
        nom = self.ui.crp_nom.texte()
        largeur = self.ui.crp_largeur.value()
        hauteur = self.ui.crp_hauteur.value()
        chapitre = str(self.ui.crp_chapitre.value())
        if self.ui.crp_formeHexa.isChecked():
            formeCases = "H"
        else:
            formeCases = "C"
        ok = True
        if (largeur * hauteur) > 10000:
            reponse = QMessageBox.question(self, 'Message',
                                           "Attention ! \nLe nombre élevé de cases peut entrainer des ralentissements " \
                                           "importants...\nVoulez vous continuer?", QMessageBox.Yes | 
                                           QMessageBox.No, QMessageBox.No)
            ok = (reponse != QMessageBox.No)
        if ok == True:
            self.fenetre.creerPlateau(nom, chapitre, formeCases, largeur, hauteur, self.couleur)
            self.close()
       
    def majAffichage(self):
        self.ui.crp_ok.setEnabled(len(self.ui.crp_nom.texte()) > 0)
        
    def selectionCouleur(self):
        """selectionne la couleur dans la boite de dialogue dediee"""
        couleur = QColorDialog(self).getColor(QColor("white"), self)
        if couleur.isValid():
            nomCouleur = couleur.name()
            self.ui.crp_couleur.setStyleSheet("QLabel {backGround:%s}" %(nomCouleur))
            self.couleur = couleur    

    def majDimensions(self, index):
        if not self._majEnCours:
            dimensionsRapides = [(30,20), (50,30), (100,70), \
                                 (20,30), (30,50), (70,100), \
                                 (25, 25), (40, 40), (80, 80), \
                                 (1,1) ]
            largeur, hauteur = dimensionsRapides[index]
            self._majEnCours = True
            self.ui.crp_largeur.setValue(largeur)
            self.ui.crp_hauteur.setValue(hauteur)
            self._majEnCours = False

    def majListeDimensions(self):
        """l'utilisateur a modifie une dimension,
            la liste affiche 'personnalise'"""
        if not self._majEnCours:
            self._majEnCours = True
            self.ui.crp_listeDimensions.setCurrentIndex(9)
            self._majEnCours = False

