ScolaSync  1.0
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
preferences.py
Aller à la documentation de ce fichier.
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3 # $Id: preferences.py 42 2011-01-15 22:38:04Z georgesk $
4 
5 licence={}
6 licence['en']="""
7  file preferences.py
8  this file is part of the project scolasync
9 
10  Copyright (C) 2010 Georges Khaznadar <georgesk@ofset.org>
11 
12  This program is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version3 of the License, or
15  (at your option) any later version.
16 
17  This program is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with this program. If not, see <http://www.gnu.org/licenses/>.
24 """
25 
26 from PyQt4.QtCore import *
27 from PyQt4.QtGui import *
28 
30  ##
31  #
32  # Le constructeur
33  #
34  def __init__(self, parent=None):
35  QDialog.__init__(self, parent)
36  from Ui_preferences import Ui_Dialog
37  self.ui=Ui_Dialog()
38  self.ui.setupUi(self)
39  self.connect(self.ui.refreshEnabledBox, SIGNAL("stateChanged(int)"), self.enableDelay)
40  self.connect(self.ui.refreshDelaySlider, SIGNAL("valueChanged(int)"), self.updateRefreshLabel)
41 
42  ##
43  #
44  # active ou désactive le glisseur pour modifier le délai de rafraichissement
45  # @param state l'état coché ou décoché de la boîte qui contrôle le rafraichissement
46  #
47  def enableDelay(self, state):
48  self.ui.refreshDelaySlider.setEnabled(bool(state))
49 
50  ##
51  #
52  # Met à jour l'affichage de la valeur du délai de rafraichissement
53  # @param val un nombre entier qui exprime le délai en secondes
54  #
55  def updateRefreshLabel(self, val):
56  labelTxt=QApplication.translate("Dialog", "%1 secondes", None, QApplication.UnicodeUTF8)
57  val="%2d" %val
58  labelTxt=labelTxt.arg(val)
59  self.ui.refreshDelayLabel.setText(labelTxt)
60 
61  ##
62  #
63  # @return un dictionnaire de préférences
64  #
65  def values(self):
66  prefs={}
67  prefs["checkable"] = bool(self.ui.checkCheck.isChecked())
68  prefs["mv"] = bool(self.ui.mvCheck.isChecked())
69  prefs["schoolFile"] = "%s" %self.ui.lineEditSchoolFile.text().toUtf8()
70  prefs["workdir"] = "%s" %self.ui.dirEdit.text().toUtf8()
71  prefs["manfile"] = "%s" %self.ui.manFileEdit.text().toUtf8()
72  prefs["refreshEnabled"] = bool(self.ui.refreshEnabledBox.isChecked())
73  prefs["refreshDelay"] = self.ui.refreshDelaySlider.value()
74  return prefs
75 
76  ##
77  #
78  # Met en place les préférences dans le dialogue
79  # @param prefs un dictionnaire de préférences
80  #
81  def setValues(self, prefs):
82  if prefs["checkable"]:
83  state=Qt.Checked
84  else:
85  state=Qt.Unchecked
86  self.ui.checkCheck.setCheckState(state)
87  if prefs["mv"]:
88  state=Qt.Checked
89  else:
90  state=Qt.Unchecked
91  self.ui.mvCheck.setCheckState(state)
92  if prefs["refreshEnabled"]:
93  state=Qt.Checked
94  else:
95  state=Qt.Unchecked
96  self.ui.refreshEnabledBox.setCheckState(state)
97  self.ui.refreshDelaySlider.setEnabled(prefs["refreshEnabled"])
98  self.ui.lineEditSchoolFile.setText(prefs["schoolFile"])
99  self.ui.dirEdit.setText(prefs["workdir"])
100  self.ui.manFileEdit.setText(prefs["manfile"])
101  self.ui.refreshDelaySlider.setValue(prefs["refreshDelay"])
102