EcranChargerPlateau.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #from __future__ import unicode_literals
  2. # -*- coding: utf-8 -*-
  3. import os
  4. from time import strftime, localtime
  5. from PyQt4.QtCore import SIGNAL, QString
  6. from PyQt4.QtGui import QDialog, QMessageBox, QIcon, QTableWidgetItem
  7. from lib.commun import rep
  8. from lib.outilsSvg import supprSvg, afficheSvg
  9. from mat import supprimerMat
  10. from ui.ecran_chargerPlateau import Ui_chp_fenetre
  11. class EcranChargerPlateau(QDialog):
  12. """interface de creation/chargement de plateau"""
  13. def __init__(self, fenetrePrincipale, parent=None):
  14. """initialisation de la fenetre"""
  15. super (EcranChargerPlateau, self).__init__()
  16. self.fenetre = fenetrePrincipale
  17. self._resultat = None
  18. self.createWidgets()
  19. self.majAffichage()
  20. def createWidgets(self):
  21. """construction de l'interface"""
  22. #construction de l'interface
  23. self.ui = Ui_chp_fenetre()
  24. self.ui.setupUi(self)
  25. self.majListeChargement()
  26. self.connect(self.ui.chp_supprimer, SIGNAL("clicked()"), self.supprimerPlateau)
  27. self.connect(self.ui.chp_ok, SIGNAL("clicked()"), self.ok)
  28. self.connect(self.ui.chp_chapitre, SIGNAL("valueChanged(int)"), self.majListeChargement)
  29. self.connect(self.ui.chp_toutAfficher, SIGNAL("stateChanged(int)"), self.majListeChargement)
  30. self.connect(self.ui.chp_liste, SIGNAL("cellClicked(int,int)"), self.majAffichage)
  31. self.connect(self.ui.chp_liste, SIGNAL("cellDoubleClicked(int,int)"), self.ok)
  32. def ok(self):
  33. """charge le plateau selectionne"""
  34. self._resultat = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0)
  35. self.done(1)
  36. def resultat(self):
  37. return self._resultat
  38. def supprimerPlateau(self):
  39. """supprime le plateau selectionne"""
  40. reponse = QMessageBox.question(self, 'Avertissement',
  41. QString().fromUtf8("Etes-vous sûr de vouloir supprimer ce plateau?"), QMessageBox.Yes |
  42. QMessageBox.No, QMessageBox.No)
  43. if reponse == QMessageBox.Yes:
  44. idM = self.ui.chp_liste.texte(self.ui.chp_liste.currentRow(), 0)
  45. supprimerMat(idM, "cbt")
  46. supprSvg(os.path.join(rep("cbt"), "infos_sauvegarde"), idM)
  47. self.majListeChargement()
  48. def majAffichage(self):
  49. self.ui.chp_ok.setEnabled(self.ui.chp_liste.currentRow()>=0)
  50. self.ui.chp_supprimer.setEnabled(self.ui.chp_liste.currentRow()>=0)
  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(os.path.join(rep("cbt"), "infos_sauvegarde"))
  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()