From 067b31a32597ec146c0f383028d3edb0f746e5dc Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 11 Aug 2010 15:42:23 +0200 Subject: winMain: make a special class for the time label --- nephilim/winMain.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/nephilim/winMain.py b/nephilim/winMain.py index ab320a0..c8ae92a 100644 --- a/nephilim/winMain.py +++ b/nephilim/winMain.py @@ -17,7 +17,7 @@ # from PyQt4 import QtGui, QtCore -from PyQt4.QtCore import QVariant +from PyQt4.QtCore import QVariant, pyqtSlot as Slot import logging from common import APPNAME, sec2min, appIcon @@ -54,8 +54,7 @@ class winMain(QtGui.QMainWindow): self.__time_slider = QtGui.QSlider(QtCore.Qt.Horizontal, self) self.__time_slider.setMaximumWidth(self.width()/4) self.__time_slider.sliderReleased.connect( self.__on___time_slider_change) - self.__time_label = QtGui.QLabel() - self.__time_label.duration = '0:00' + self.__time_label = TimeLabel(self, mpclient) self.statusBar().addWidget(self.__statuslabel) self.statusBar().addPermanentWidget(self.__time_label) @@ -184,10 +183,24 @@ class winMain(QtGui.QMainWindow): status = self.mpclient.status() self.__time_slider.setMaximum(status['length']) self.__time_slider.setEnabled(True) - self.__time_label.duration = sec2min(status['length']) self.__update_state_messages() def __on_time_change(self, new_time): if not self.__time_slider.isSliderDown(): self.__time_slider.setValue(new_time) - self.__time_label.setText(sec2min(new_time) + '/' + self.__time_label.duration) + +class TimeLabel(QtGui.QLabel): + + _mpclient = None + + def __init__(self, parent, mpclient): + QtGui.QLabel.__init__(self, parent) + + self._mpclient = mpclient + + self._mpclient.time_changed.connect(self._update_text) + self._update_text(self._mpclient.status()['time']) + + @Slot(int) + def _update_text(self, time): + self.setText('%s/%s'%(sec2min(time), sec2min(self._mpclient.status()['length']))) -- cgit v1.2.3