| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- #from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- """Interface principale du programme DMonde
- """
- import os
- from PyQt4.QtCore import SIGNAL
- from PyQt4.QtGui import QMainWindow, QApplication
- from lib.EcranChargerPartie import EcranChargerPartie
- from lib.FenetreEditionPartie import FenetreEditionPartie
- from lib.Partie import Partie
- from lib.Profil import Profil
- from lib.commun import Session, sessionEnCours, rep
- from lib.mat import chargerMat
- from lib.ui.ecran_principal import Ui_principal
- class DMonde(QMainWindow):
- """interface principale de DMonde"""
- def __init__(self, parent=None):
- """initialisation de la fenetre"""
- super (DMonde, self).__init__()
- # self.plateau = None
- # self.util = "Joueur"
- self.profil = Profil()
- self.partie = None
- # self.regles = ""
- # self.idPlateauEnCours = ""
- # self.plateauConnecte = False
- # self.pjs = [] #liste des idM des personnages du groupe
- self.createWidgets()
- def createWidgets(self):
- """construction de l'interface"""
- self.ui = Ui_principal()
- self.ui.setupUi(self)
- self.connect(self.ui.dm_panneauCentre, SIGNAL("currentChanged(int)"), self.rafraichir)
-
- self.connect(self.ui.pt_nouvelle, SIGNAL("clicked()"), self.nouvellePartie)
- self.connect(self.ui.pt_editer, SIGNAL("clicked()"), self.editerPartie)
- self.connect(self.ui.pt_fermer, SIGNAL("clicked()"), self.fermerPartie)
- self.connect(self.ui.pt_charger, SIGNAL("clicked()"), self.afficherEcranChargerPartie)
- self.ouverture()
- def ouverture(self):
- """operations menees a l'ouverture de la fenetre principale"""
- # self.majLargeurOnglets()
- self.majAffichage()
- # self.chargerPartie("")
- def rafraichir(self):
- """fonction utilisee pour forcer le repaint"""
- self.majLargeurOnglets()
- def estMj(self):
- return True
- def majAffichage(self):
- actif = (self.partie != None)
- self.ui.dm_panneauCentre.setTabEnabled(1, actif)
- self.ui.dm_panneauCentre.setTabEnabled(2, actif)
- self.ui.dm_panneauCentre.setTabEnabled(3, actif)
- self.ui.pt_page.setCurrentIndex( (1 if actif else 0) )
- def majLargeurOnglets(self):
- val = (self.ui.dm_panneauCentre.width() - 20) / 4
- self.ui.dm_panneauCentre.setStyleSheet("QTabBar::tab { height: 25; width: "+str(val)+"px; }")
- def nouvellePartie(self):
- fen = FenetreEditionPartie()
- fen.nouvelle()
- fen.show()
- r = fen.exec_()
- if r == 1:
- partie = fen.resultat()
- self.partie = partie
- self.partie.afficher(self)
- self.majPartieEnCours()
- self.majAffichage()
-
- del fen
- def editerPartie(self):
- if not self.partie: return
- fen = FenetreEditionPartie()
- fen.charger(self.partie)
- fen.show()
- r = fen.exec_()
- if r == 1:
- partie = fen.resultat()
- self.partie = partie
- self.partie.majAffichage()
- del fen
-
- def fermerPartie(self):
- if self.partie:
- self.partie.fermer()
- self.majAffichage()
- def afficherEcranChargerPartie(self):
- fen = EcranChargerPartie(self)
- fen.show()
- r = fen.exec_()
- if r == 1:
- idM = fen.resultat()
- self.chargerPartie(idM)
- del fen
- def chargerPartie(self, idPartie):
- """charge la partie"""
- repParties = os.path.join( rep("app"), "parties\\" )
- chemin = os.path.join( os.path.join( repParties, "{}\\".format(idPartie) ), "{}.dm".format(idPartie) )
- partie = chargerMat( chemin )
- if partie:
- self.partie = partie
- self.partie.afficher(self)
- self.majPartieEnCours()
- self.majAffichage()
- def majPartieEnCours(self):
- s = sessionEnCours()
- idM = self.partie.idM() if self.partie else "defaut"
- s.majPartie(idM)
- s.enregistrer()
- def resizeEvent(self, event):
- self.majLargeurOnglets()
-
-
- if __name__ == "__main__":
- s = Session()
- arg = ["DMonde", s.idS()]
- app = QApplication(arg)
- #settrace(trace_calls)
- dm = DMonde()
- dm.show()
- dm.rafraichir()
- r = app.exec_()
- s.fin()
- exit(r)
-
-
|