# -*- coding: utf-8 -*-
"""ensemble des widgets surchargés"""
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from lib.outilsSvg import *

class DmGraphicsView(QGraphicsView):
    """surcharge de QGraphicsView"""
    def __init__(self, parent = None):
        super(DmGraphicsView, self).__init__(parent)

    def resizeEvent(self, event):
        super(DmGraphicsView, self).resizeEvent(event)
        self.emit(SIGNAL("resizeEvent()"))
    
class DmTableWidget(QTableWidget):
    """surcharge de QTableWidget"""
    def __init__(self, parent = None):
        super(DmTableWidget, self).__init__(parent)
        self.majEnCours = False

    def vider(self):
        """supprime toutes les lignes"""
        self.majEnCours = True
        while self.rowCount() > 0:
            self.removeRow(0)
        self.majEnCours = False    

    def masquerColonneId(self):
        """masque la colonne en position 0 qui contient les identifiants"""
        self.setColumnWidth(0, 0)
        

class DmTableBiblio(DmTableWidget):
    """table utilisee pour afficher les bibliotheques d'objets:
        terrains, decors, creatures"""
    def __init__(self, parent = None):
        super(DmTableBiblio, self).__init__(parent)
        self.fichier = ""
        self.masquerColonneId()

    def defFichier(self, fichier):
        """definit le fichier de sauvegarde qui la source des donnees de la table"""
        self.fichier = fichier

    def initAffichage(self):
        """fait les differents reglages relatifs a l'apparence"""
        self.setColumnWidth(0, 0)
        self.setIconSize(QSize(30,20))   
        self.horizontalHeader().setStretchLastSection(True)
        
    def remplir(self):
        """remplit la table avec les donnees contenues dans le dictionnaire de la savuvegarde"""
        dico = afficheSvg(self.fichier)
        self.majEnCours = True
        self.setSortingEnabled(False)
        index = 0
        for elt in dico:
            objet = dico[elt]
            self.insertRow(int(index))
            
            #code de l'objet
            self.setItem(int(index),0,QTableWidgetItem(QString.fromUtf8(elt)))
            #icone et nom
            icon = QIcon("img\\"+objet.icone())
            item = QTableWidgetItem(icon,QString.fromUtf8(objet.nom))
            self.setItem(int(index),1,item)
            
            index += 1        
        self.sizeHintForColumn(1)
        self.setSortingEnabled(True)
        self.sortItems(1)
        self.majEnCours = False

    def maj(self):
        self.vider()
        self.remplir()

    def actuel(self):
        """renvoie l'objet actuellement selectionne"""
        objet = None
        index = self.item(self.currentRow(), 0)
        if index > 0:
            objet = charger(self.fichier, str(index.text().toUtf8()))
        return objet
    



