summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <wyskas@gmail.com>2010-08-11 15:42:23 +0200
committerAnton Khirnov <wyskas@gmail.com>2010-08-12 19:31:29 +0200
commit067b31a32597ec146c0f383028d3edb0f746e5dc (patch)
tree8155a93bbcef97ebb39860769a349ef9d7b4efd0
parente9d838f08999833a9a88f27fd063069d464d73ff (diff)
winMain: make a special class for the time label
-rw-r--r--nephilim/winMain.py23
1 files 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'])))