EcranChargerPlateau.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. from __future__ import division
  4. from time import strftime, localtime
  5. import os
  6. from PyQt4.QtCore import *
  7. from PyQt4.QtGui import *
  8. from ui.ecran_chargerPlateau import Ui_chp_fenetre
  9. from outilsSvg import *
  10. class EcranChargerPlateau(QDialog):
  11. """interface de creation/chargement de plateau"""
  12. def __init__(self, fenetrePrincipale, terrain=None, parent=None):
  13. """initialisation de la fenetre"""
  14. super (EcranChargerPlateau, self).__init__()
  15. self.fenetre = fenetrePrincipale
  16. self.createWidgets()
  17. self.majAffichage()
  18. def createWidgets(self):
  19. """construction de l'interface"""
  20. #construction de l'interface
  21. self.ui = Ui_chp_fenetre()
  22. self.ui.setupUi(self)
  23. self.majListeChargement()
  24. self.connect(self.ui.chp_supprimer, SIGNAL("clicked()"), self.supprimerPlateau)
  25. self.connect(self.ui.chp_ok, SIGNAL("clicked()"), self.charger)
  26. self.connect(self.ui.chp_chapitre, SIGNAL("valueChanged(int)"), self.majListeChargement)
  27. self.connect(self.ui.chp_toutAfficher, SIGNAL("stateChanged(int)"), self.majListeChargement)
  28. self.connect(self.ui.chp_liste, SIGNAL("cellClicked(int,int)"), self.focusBoutonCharger)
  29. self.connect(self.ui.chp_liste, SIGNAL("cellClicked(int,int)"), self.majAffichage)
  30. self.connect(self.ui.chp_liste, SIGNAL("cellDoubleClicked(int,int)"), self.charger)
  31. def charger(self):
  32. """charge le plateau selectionne"""
  33. index = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0)
  34. self.fenetre.chargerPlateau(index)
  35. self.done(1)
  36. def supprimerPlateau(self):
  37. """supprime le plateau selectionne"""
  38. reponse = QMessageBox.question(self, 'Avertissement',
  39. QString().fromUtf8("Etes-vous sûr de vouloir supprimer ce plateau?"), QMessageBox.Yes |
  40. QMessageBox.No, QMessageBox.No)
  41. if reponse == QMessageBox.Yes:
  42. index = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0)
  43. os.remove("parties\\{}\\svg\\{}.p".format(self.fenetre.partie, index))
  44. supprSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie), index)
  45. self.majListeChargement()
  46. def majAffichage(self):
  47. self.ui.chp_ok.setEnabled(self.ui.chp_liste.currentRow()>=0)
  48. self.ui.chp_supprimer.setEnabled(self.ui.chp_liste.currentRow()>=0)
  49. def focusBoutonCharger(self):
  50. self.ui.chp_ok.setFocus()
  51. def majListeChargement(self):
  52. """remplit ou maj la liste des plateaux sauvegardes"""
  53. #on met a jour la largeur des colonnes
  54. largeurs = [0, 30, 30, 310, 100, 0]
  55. for col in self.ui.chp_liste.colonnes():
  56. self.ui.chp_liste.setColumnWidth(col, largeurs[col]);
  57. self.ui.chp_liste.setSortingEnabled(False)
  58. self.ui.chp_liste.vider()
  59. infosSvg = afficheSvg("parties\\{}\\svg\\infos_sauvegarde".format(self.fenetre.partie))
  60. for id_svg in infosSvg:
  61. if infosSvg[id_svg]["chapitre"] == str(self.ui.chp_chapitre.value()) or bool(self.ui.chp_toutAfficher.checkState()) == True:
  62. ligne = self.ui.chp_liste.nouvelleLigneFin()
  63. self.ui.chp_liste.majTexte(ligne, 0, str(id_svg))
  64. if infosSvg[id_svg]["public"] == True:
  65. icone = QIcon(":/interface/32/ressource/oeil_32.png")
  66. else:
  67. icone = QIcon(":/interface/32/ressource/oeilBarre2_32.png")
  68. item = QTableWidgetItem(icone, QString(""))
  69. self.ui.chp_liste.setItem(ligne, 1, item)
  70. self.ui.chp_liste.majTexte(ligne, 2, (str(infosSvg[id_svg]["chapitre"])))
  71. self.ui.chp_liste.majTexte(ligne, 3, infosSvg[id_svg]["nom"])
  72. self.ui.chp_liste.majTexte(ligne, 4, strftime('%d/%m/%y %H:%M',localtime(infosSvg[id_svg]["dateSvg"])))
  73. self.ui.chp_liste.majData(ligne, 5, infosSvg[id_svg]["dateSvg"])
  74. for col in self.ui.chp_liste.colonnes():
  75. self.ui.chp_liste.sizeHintForColumn(col)
  76. #on trie par date
  77. self.ui.chp_liste.setSortingEnabled(True)
  78. self.ui.chp_liste.sortItems(5, 1)
  79. self.majAffichage()