3 from PyQt4
.QtCore
import SIGNAL
,SLOT
,Qt
4 from PyQt4
.QtCore
import QPoint
5 from PyQt4
.QtCore
import QSettings
6 from PyQt4
.QtCore
import QDir
7 from PyQt4
.QtCore
import QCoreApplication
9 from PyQt4
.QtGui
import QWidget
10 from PyQt4
.QtGui
import QMainWindow
11 from PyQt4
.QtGui
import QSlider
12 from PyQt4
.QtGui
import QFileDialog
13 from PyQt4
.QtGui
import QIcon
15 from mprocess
import MProcess
16 from ui_mainwindow
import Ui_MainWindow
18 class MainWindow(QMainWindow
,Ui_MainWindow
):
19 def __init__(self
, parent
= None):
20 super(MainWindow
, self
).__init
__(parent
)
23 ##Quit if close this window
24 self
.setAttribute(Qt
.WA_QuitOnClose
)
25 self
.settings
= QSettings(".KRepeater",QSettings
.NativeFormat
,self
)
26 self
.currDir
= QDir(self
.settings
.value("LastPath").toString())
28 ##Set up the volume slide widget for setting volume
29 self
.volumeSlide
= QSlider(self
)
30 self
.volumeSlide
.hide()
31 self
.volumeSlide
.setFocusPolicy(Qt
.NoFocus
)
32 self
.volumeSlide
.resize(15,110)
33 self
.volumeSlide
.setRange(0,100)
34 self
.volumeSlide
.setValue(60) # Write to config later
36 #Create a mprocess object to control mplayer process
37 self
.mprocess
= MProcess(self
.videoWidget
.winId(),self
)
39 self
.mprocess
.setSlider(self
.slider
)
41 self
.connect(self
.pauseBtn
, SIGNAL("clicked()"),
44 self
.connect(self
.stopBtn
, SIGNAL("clicked()"),
47 self
.connect(self
.volumeBtn
, SIGNAL("toggled(bool)"),
48 self
.volumeBtnToggled
)
50 self
.connect(self
.volumeSlide
, SIGNAL("valueChanged(int)"),
51 self
.mprocess
.setVolume
)
53 self
.connect(self
.openAction
,SIGNAL("triggered()"),
56 self
.connect(self
.openBtn
,SIGNAL("clicked()"),
59 self
.connect(self
.mprocess
,SIGNAL("stopped()"),
62 self
.connect(self
.aBtn
, SIGNAL("toggled(bool)"),self
.pointA
)
63 self
.connect(self
.bBtn
, SIGNAL("toggled(bool)"),self
.pointB
)
65 #END def __init__(self, parent = None)
67 def showVolumeSlide(self
):
68 globalPoint
= self
.btnWidget
.mapToGlobal(self
.volumeBtn
.pos())
69 newPoint
= self
.mapFromGlobal(globalPoint
) \
70 + QPoint(self
.volumeBtn
.width(),
71 self
.volumeBtn
.height() - self
.volumeSlide
.height())
72 self
.volumeSlide
.move(newPoint
)
73 self
.volumeSlide
.show()
74 #END def showVolumeSlide(self)
76 def volumeBtnToggled(self
,checked
):
78 self
.volumeBtn
.setChecked(True)
79 self
.showVolumeSlide()
81 self
.volumeBtn
.setChecked(False)
82 self
.volumeSlide
.hide()
83 #END def volumeBtnToggled(self,checked):
85 def mouseReleaseEvent(self
,event
):
86 self
.volumeBtnToggled(False)
87 #END def mouseReleasedEvent(self,event)
90 fileName
= str(QFileDialog
.getOpenFileName(self
,
93 if(len(fileName
) == 0):
96 n
= fileName
.rfind(str(QDir
.separator().toAscii()))
97 self
.currDir
.setPath(fileName
[0:n
])
98 self
.settings
.setValue("LastPath",self
.currDir
.path())
100 self
.mprocess
.setFileName(fileName
)
102 #END def openFile(self)
106 self
.pauseBtn
.setEnabled(True)
107 self
.stopBtn
.setEnabled(True)
108 self
.aBtn
.setEnabled(True)
109 self
.pauseBtn
.setIcon(QIcon(":/pause.png"))
113 self
.pauseBtn
.setIcon(QIcon(":/play.png"))
114 self
.pauseBtn
.setEnabled(False)
115 self
.stopBtn
.setEnabled(False)
116 self
.slider
.setValue(0)
117 QCoreApplication
.processEvents()
118 #END def stopped(self):
126 self
.mprocess
.pause()
127 print "self.mprocess.playerState ", self
.mprocess
.playerState
128 if(self
.mprocess
.playerState
== MProcess
.PAUSED
):
129 self
.pauseBtn
.setIcon(QIcon(":/play.png"))
131 self
.pauseBtn
.setIcon(QIcon(":/pause.png"))
132 #END def pause(self):
135 if(self
.aBtn
.isChecked()):
137 self
.bBtn
.setEnabled(True)
139 self
.mprocess
.cleanPoints()
140 self
.bBtn
.setChecked(False)
141 self
.bBtn
.setEnabled(False)
142 #END def pointA(self):
145 if(self
.bBtn
.isChecked()):
148 self
.mprocess
.cleanPoints()
149 self
.aBtn
.setChecked(False)
150 self
.bBtn
.setChecked(False)
152 self
.aBtn
.setEnabled(True)
153 self
.bBtn
.setEnabled(False)
154 #END def pointB(self):
156 #END class MainWindow(QMainWindow,Ui_MainWindow)