4267b16286bac6f89de3dd09262c3c343c7e3d81
[oldschool] / oldschool-0.9.0 / src / opt / oldschool / old_school.py
1 #!/usr/bin/env python
2
3 import sys
4 from PyQt4 import QtGui,  QtCore
5 from n900_levels import LevelReader
6
7 bar_width = 140
8 bar_length = 35
9 signal_bar_y = 430
10 power_bar_y = 15
11
12 quit_x_min = 700
13 quit_x_max = 765
14 quit_y_min = 160
15 quit_y_max = 335
16
17 bar_x_1 = 460
18 bar_x_2 = 310
19 bar_x_3 = 160
20 bar_x_4 = 10
21
22 class Bar(QtGui.QWidget):
23     def __init__(self, parent,  x,  y,  fill_percent=100,  mirror=False):
24         QtGui.QWidget.__init__(self, parent)
25         self.resize(bar_width, bar_length)
26         self.move(x, y)
27         
28         label_y = 0
29         label_length = bar_length * fill_percent / 100
30         if (mirror):
31             label_y = bar_length - label_length
32         
33         self.label = QtGui.QLabel(self)
34         self.label.resize(bar_width, label_length)
35         if label_y>0:
36             self.label.move(0, label_y)
37         self.label.setStyleSheet("background-color: black")
38      
39
40 class OldSchoolWidget(QtGui.QWidget):
41     power_bar = []
42     signal_bar = []
43     quit_pressed = QtCore.pyqtSignal()
44
45     def __init__(self,  parent=None):
46         QtGui.QWidget.__init__(self, parent)
47         palette = QtGui.QPalette()
48         palette.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QImage("old_school_bg.jpg")));
49         self.setPalette(palette)
50         
51         self.power_bar.append(Bar(self, bar_x_1, power_bar_y, 25))
52         self.power_bar.append(Bar(self, bar_x_2, power_bar_y, 50))
53         self.power_bar.append(Bar(self, bar_x_3, power_bar_y, 75))
54         self.power_bar.append(Bar(self, bar_x_4, power_bar_y, 100))
55         
56         self.signal_bar.append(Bar(self, bar_x_1, signal_bar_y, 25, True))
57         self.signal_bar.append(Bar(self, bar_x_2, signal_bar_y, 50, True))
58         self.signal_bar.append(Bar(self, bar_x_3, signal_bar_y, 75,  True))
59         self.signal_bar.append(Bar(self, bar_x_4, signal_bar_y, 100, True))
60
61     def mousePressEvent(self, ev):
62         click_position = QtCore.QPoint(ev.pos())
63         x = click_position.x()
64         y = click_position.y()
65         if (x>=quit_x_min and x <=quit_x_max and y>=quit_y_min and y<=quit_y_max):
66             self.quit_pressed.emit()
67
68     def percent_to_bars(self, percent):
69         if percent<=20:
70             return 0
71         if percent <=40:
72             return 1
73         if percent <=60:
74             return 2
75         if percent <=80:
76             return 3
77         return 4
78
79     def set_signal(self, value):
80         for index in range(1, 4):
81             bar = self.signal_bar[index]
82             if value>index:
83                 bar.show()
84             else:
85                 bar.hide()
86
87     @QtCore.pyqtSlot(int)
88     def set_signal_percent(self,  percentage):
89         bar_count = self.percent_to_bars(percentage)
90         self.set_signal(bar_count)
91
92     def set_power(self, value):
93         for index in range(1, 4):
94             bar = self.power_bar[index]
95             if value>index:
96                 bar.show()
97             else:
98                 bar.hide()
99
100     @QtCore.pyqtSlot(int)
101     def set_power_percent(self,  percentage):
102         bar_count = self.percent_to_bars(percentage)
103         self.set_power(bar_count)
104
105 def do_normal():
106     app = QtGui.QApplication(sys.argv)
107     old_school = OldSchoolWidget()
108     old_school.showFullScreen()
109     QtCore.QObject.connect(old_school, QtCore.SIGNAL('quit_pressed()'),QtGui.qApp, QtCore.SLOT('quit()'))
110     level_reader = LevelReader()
111     QtCore.QObject.connect(level_reader, QtCore.SIGNAL("battery_change(int)") , old_school,  QtCore.SLOT("set_power_percent(int)"))
112     QtCore.QObject.connect(level_reader, QtCore.SIGNAL("signal_change(int)") , old_school,  QtCore.SLOT("set_signal_percent(int)"))
113     level_reader.check_battery_change()
114     level_reader.check_signal_change()
115     sys.exit(app.exec_())
116     
117 def do_test_gui():
118     app = QtGui.QApplication(sys.argv)
119     old_school = OldSchoolWidget()
120     old_school.resize(800, 480)
121     old_school.show()
122     QtCore.QObject.connect(old_school, QtCore.SIGNAL('quit_pressed()'),QtGui.qApp, QtCore.SLOT('quit()'))
123     old_school.set_signal_percent(75)
124     old_school.set_power_percent(30)
125     sys.exit(app.exec_())
126
127 if __name__ == "__main__":
128     args = sys.argv
129     if len(args)>1:
130         if args[1]=="test_gui":
131             do_test_gui()
132             quit()
133     do_normal()
134