summaryrefslogtreecommitdiffstats
path: root/python/pyqt/examples3/biff.py
blob: ee5bfe382daf12084f13f3c9d7f61625bad3433e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#!/usr/bin/env python

import os, sys, string
from qt import *


if QT_VERSION < 0x030100:
    print "This example requires Qt v3.1.0 or later."
    sys.exit(1)


FALSE = 0
TRUE  = 1

hasmail_bmp_data = [
"48 48 3 1",
" 	c None",
".	c #000000",
"+	c #FFFFFF",
"................................................",
".............................++++++++++.........",
".............................++++++++++.........",
"........................++++.+++.+.+.++.........",
"......................++++.++++.+.+.+++.........",
".....................+++.....+++.+.+.++.........",
"....................++.......++.+.+.+++.........",
"...................++........++++++++++.........",
"..................++.........++++++++++.........",
".................++..........+++..+.............",
"................++...........+++..+.............",
"...............++............+++.++.............",
"..............+++++++........++++++.............",
".............++++++++++......++++++.............",
"............+++......+++.....++++.+.............",
"...........+++.........++....+++..+.............",
"...........++..........++...++++..+.............",
"..........++............++.+++++..+.............",
"..........++............++++++++..+.............",
".........++....++++++....+++.+++..+.............",
".........++......++......++..+++..+.............",
".........++..............++..+++..+.............",
".........++..............++..+++..+.............",
".........++..............++..++...+.............",
"+++++++..++.+.+..+..+.+..++.......+..+++++++++++",
".........++.+++.+.+.+.+..++.......+.............",
".........++.+.+.+++.+.+..++.......+.............",
".........++.+.+.+.+.+.+..++......++.............",
".........++.+.+.+.+.+.++.++.....++..............",
".........++..............++....++...............",
"..+.+.+..++..............++...++..+.+.+.+.+.+.+.",
".+.+.+.+.++..............++..++..+.+.+.+.+.+.+..",
"..+.+.+..++..............++.++..+.+.+.+.+.+.+.+.",
".+.+.+.+.++..............+++++.+.+.+.+.+.+.+.+..",
"..+.+.+..+++++++++++++++++++.++.+.+.+.+.+.+.+.+.",
".+.+.+.+..+++++++++++++++++..+.+.+.+.+.+.+.+.+..",
"..+.+.+.+..........+...+.....++.+.+.+.+.+.+.+.+.",
".+.+.+.+.+.+.+.+.+.+...+.....+.+.+.+.+.+.+.+.+..",
"..+.+.+.+.+.+.+.+.++...+.....++.+.+.+.+.+.+.+.+.",
".+.+.+.+.+.+.+.+.+.+...+.....+.+.+.+.+.+.+.+.+..",
"..+.+.+.+.+.+.+.+.++...+.....++.+.+.+.+.+.+.+.+.",
".+.+.+.+.+.+.+.+.+.+...+.....+.+.+.+.+.+.+.+.+..",
"..+.+.+.+.+.+.+.+.++...+....+.+.+.+.+.+.+.+.+.+.",
".+.+.+.+.+.+.+.+.+.+...+...+.+.+.+.+.+.+.+.+.+..",
"..+.+.+.+.+.+.+.+.+.+..+..+.+.+.+.+.+.+.+.+.+.+.",
".+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+..",
"..+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+...",
"................................................"
]

nomail_bmp_data = [
"48 48 3 1",
" 	c None",
".	c #FFFFFF",
"+	c #000000",
"................................................",
"................................................",
"................................................",
".........................++++...................",
".......................++++++++.................",
".....................++++....+++................",
"....................+++........++...............",
"...................++...........++..............",
"..................++............++..............",
".................++..............++.......+.....",
"................++...............++......++.....",
"...............++................++.....+++.....",
"..............+++++++...........+++....++++.....",
".............++++++++++........++++...+++++.....",
"............+++......+++......+++.+..++++++.....",
"...........+++.........++....+++..+.+++.+++.....",
"...........++..........++...+++...++++..+++.....",
"..........++............++.+++...++++...++......",
"..........++............+++++...++++............",
".........++....++++++....+++...++++.............",
".........++......++......++...+++.+.............",
".........++..............++...+++.+.............",
".........++..............++...++..+.............",
".........++..............++.......+.............",
"+++++++..++..............++.......+..+++++++++++",
".........++..............++.......+.............",
".........++..............++.......+.............",
".........++..............++......++.............",
".........++..............++.....++..............",
".........++..............++....++...............",
".........++..............++...++................",
".........++..............++..++.................",
".........++..............++.++..................",
".........++..............+++++..................",
".........+++++++++++++++++++.+..................",
"..........+++++++++++++++++..+..................",
"...................+...+.....+..................",
"...................+...+.....+..................",
"...................+...+.....+..................",
"...................+...+.....+..................",
"...................+...+.....+..................",
"...................+...+.....+..................",
"...................+...+.....+..................",
"...................+...+.....+..................",
"+++.++++++++++.+.+++...+..+++++++++++.++...+++++",
"+.+++..+++.+.+++++.++..+.++.+++..+..+.++.+.++++.",
".++...+.....++...+...+++++++....+....++++++...+.",
"++++++++++++++++++++++++++++++++++++++++++++++++"
]

class Biff(QWidget):
	def __init__(self):
		QWidget.__init__(self, None, "Biff - example application")
	
		mail = os.getenv("MAIL")
		fi = QFileInfo(mail);
		if not fi.exists():
			s = "/var/spool/mail/"+os.getenv("USER") 
			fi.setFile(s)

		if fi.exists():
			self.mailbox = fi.absFilePath()
			self.startTimer(1000)

		self.setMinimumSize(48, 48)
		self.setMaximumSize(48, 48)
		self.resize(48, 48)

		self.hasNewMail = QPixmap(hasmail_bmp_data)
		self.noNewMail = QPixmap(nomail_bmp_data)

		self.gotMail = FALSE
		self.lastModified = fi.lastModified()

	def timerEvent(self, te):
		fi = QFileInfo(self.mailbox)
		newState = ( fi.lastModified().toTime_t() != self.lastModified.toTime_t() and fi.lastModified().toTime_t() > fi.lastRead().toTime_t())
		if newState != self.gotMail:
			if self.gotMail == TRUE:
				self.lastModified = fi.lastModified()
			self.gotMail = newState
			self.repaint(FALSE)

	def paintEvent(self, pe):
		if self.gotMail:
			bitBlt(self, 0, 0, self.hasNewMail)
		else:
			bitBlt(self, 0, 0, self.noNewMail)

	def mousePressEvent(self, me):
		fi = QFileInfo(self.mailbox)
		lastModified = fi.lastModified()


a = QApplication(sys.argv)
b = Biff()
a.setMainWidget(b)
b.show()
a.exec_loop()