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
|
"""
/*
* This file is part of PySide: Python for Qt
*
* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
*
* Contact: PySide team <contact@pyside.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
*/
"""
from PySide.QtCore import *
from PySide.QtGui import *
class ContactResource(object):
SmallPhoto = 0
LargePhoto = 1
_instance_ = None
def __init__(self):
fp = QFile(":/contactlist.txt")
fp.open(QIODevice.ReadOnly)
self._values = []
buffer = QTextStream(fp)
while not buffer.atEnd():
line = buffer.readLine().strip()
if not line:
continue
parts = line.split(':')
values = {}
values[0] = parts[0]
values[1] = parts[1]
if not parts[2]:
values[2] = ""
values[3] = ""
else:
values[2] = "list_photo_%s" % parts[2]
values[3] = "call_photo_%s" % parts[2]
self._values.append(values)
fp.close()
def data(self, index, role):
if index < 0 or index >= len(self._values):
return ""
else:
if role in self._values[index]:
return self._values[index][role]
else:
return ""
@staticmethod
def instance():
if not ContactResource._instance_:
ContactResource._instance_ = ContactResource()
return ContactResource._instance_
@staticmethod
def count():
return len(ContactResource.instance()._values)
@staticmethod
def name(index):
return ContactResource.instance().data(index, 0)
@staticmethod
def phone(index):
return ContactResource.instance().data(index, 1)
@staticmethod
def photo(index, type = SmallPhoto):
int_type = 3
if type == ContactResource.SmallPhoto:
int_type = 2
return ContactResource.instance().data(index, int_type)
@staticmethod
def indexFromPhone(phone):
d = ContactResource.instance()
total = ContactResource.count()
for i in range(total):
if phone == d.data(i, 1):
return i
return -1
|