1 # Authors: Amaury Medeiros, Nicholas Alexander and Paulo Ouriques
2 # Software License: GPL
3 from functools import partial
5 from PyQt4.QtCore import *
6 from PyQt4.QtGui import *
8 from style.styleTabletSuite import *
9 from ui.pcsdevicewidget import PcsDeviceWidget
10 from ui.pcsuiutils import *
12 class PcsRestoreDialog(QDialog):
14 def __init__(self, deviceInfo, categoriesList, parent = None):
15 QDialog.__init__(self, parent, Qt.FramelessWindowHint)
16 self.setWindowTitle("%s Restore Backup" % APPLICATION_NAME)
17 self.setFixedSize(200, 300)
18 self.deviceInfo = deviceInfo
19 self.categories = categoriesList
20 self.validPositions = []
21 self.validCategories = []
23 self.layout = QVBoxLayout()
25 self.labelLayout = QHBoxLayout()
26 spc = QSpacerItem(15, 0)
27 self.labelLayout.addItem(spc)
28 label = QLabel("Which categories you want to restore?")
29 label.setWordWrap(True)
30 self.labelLayout.addWidget(label)
31 self.labelLayout.setMargin(0)
32 self.layout.addLayout(self.labelLayout)
34 # self.grid = QGridLayout()
35 # self.create_dialog()
36 # self.grid.setMargin(0)
37 # self.layout.addLayout(self.grid)
38 self.create_checkbox_frame()
40 self.buttonLayout = QHBoxLayout()
42 self.buttonLayout.setMargin(0)
43 self.layout.addLayout(self.buttonLayout)
45 self.setLayout(self.layout)
46 self.map_checked = {self.documents.name: False,
47 self.emails.name: False, self.media.name: False,
48 self.contacts.name: False,
49 self.bookmarks.name: False,
50 self.settings.name: False,
51 self.applications.name: False}
54 for index in self.map_checked.keys():
55 if self.map_checked[index]:
59 def create_buttons(self):
60 self.buttonOk = QPushButton("Ok")
61 self.buttonOk.setStyleSheet(DEFAULT_BUTTON_STYLE)
62 self.buttonLayout.addWidget(self.buttonOk)
64 self.buttonCancel = QPushButton("Cancel")
65 self.buttonCancel.setStyleSheet(DEFAULT_BUTTON_STYLE)
66 self.buttonLayout.addWidget(self.buttonCancel)
68 def create_checkbox_frame(self):
69 layout = QVBoxLayout()
71 l.setPixmap(QPixmap(COPY_BORDER))
73 self.frame = QScrollArea(self)
74 self.frame.setObjectName("restoreScroll")
75 self.frame.setWidgetResizable(True)
76 widget = QWidget(self.frame)
77 widget.setStyleSheet("QWidget{background: transparent;}")
78 self.grid = QGridLayout()
79 self.grid.setSpacing(0)
81 widget.setLayout(self.grid)
82 self.frame.setWidget(widget)
83 layout.addWidget(self.frame)
84 self.layout.addLayout(layout)
86 def create_dialog(self):
88 # self.add_select_all()
95 self.add_applications()
97 # def add_select_all(self):
98 # self.select_all = QCheckBox("Select All")
99 # self.connect(self.select_all, SIGNAL("stateChanged(int)"),
100 # self.select_all_func)
101 # self.validPositions.append((1,0))
102 # self.grid.addWidget(self.select_all, 1, 0, Qt.AlignTop)
104 def add_documents(self):
105 self.documents = QCheckBox("Documents")
106 self.documents.name = "documents"
107 callback = partial(self.select_func, self.documents)
108 self.connect(self.documents, SIGNAL("stateChanged(int)"),
110 if "documents" in self.categories:
111 self.validPositions.append((2, 0))
112 self.grid.addWidget(self.documents, 2, 0, Qt.AlignTop)
114 def add_emails(self):
115 self.emails = QCheckBox("Emails")
116 self.emails.name = "emails"
117 callback = partial(self.select_func, self.emails)
118 self.connect(self.emails, SIGNAL("stateChanged(int)"),
120 if "emails" in self.categories:
121 self.validPositions.append((3, 0))
122 self.grid.addWidget(self.emails, 3, 0, Qt.AlignTop)
125 self.media = QCheckBox("Media")
126 self.media.name = "media"
127 callback = partial(self.select_func, self.media)
128 self.connect(self.media, SIGNAL("stateChanged(int)"),
130 if "media" in self.categories:
131 self.validPositions.append((4, 0))
132 self.grid.addWidget(self.media, 4, 0, Qt.AlignTop)
134 def add_contacts(self):
135 self.contacts = QCheckBox("Contacts")
136 self.contacts.name = "contacts"
137 callback = partial(self.select_func, self.contacts)
138 self.connect(self.contacts, SIGNAL("stateChanged(int)"),
140 if "contacts" in self.categories:
141 self.validPositions.append((5, 0))
142 self.grid.addWidget(self.contacts, 5, 0, Qt.AlignTop)
144 def add_bookmarks(self):
145 self.bookmarks = QCheckBox("Bookmarks")
146 self.bookmarks.name = "bookmarks"
147 callback = partial(self.select_func, self.bookmarks)
148 self.connect(self.bookmarks, SIGNAL("stateChanged(int)"),
150 if "bookmarks" in self.categories:
151 self.validPositions.append((6, 0))
152 self.grid.addWidget(self.bookmarks, 6, 0, Qt.AlignTop)
154 def add_settings(self):
155 self.settings = QCheckBox("Settings")
156 self.settings.name = "settings"
157 callback = partial(self.select_func, self.settings)
158 self.connect(self.settings, SIGNAL("stateChanged(int)"),
160 if "settings" in self.categories:
161 self.validPositions.append((7, 0))
162 self.grid.addWidget(self.settings, 7, 0, Qt.AlignTop)
164 def add_applications(self):
165 self.applications = QCheckBox("Applications")
166 self.applications.name = "applications"
167 callback = partial(self.select_func, self.applications)
168 self.connect(self.applications, SIGNAL("stateChanged(int)"),
170 if "applications" in self.categories:
171 self.validPositions.append((8, 0))
172 self.grid.addWidget(self.applications, 8, 0, Qt.AlignTop)
174 # def select_all_func(self):
175 # checked = self.select_all.isChecked()
176 # list = self.map_checked.keys()
177 # for element in list:
178 # self.map_checked[element] = checked
179 # for tuple in self.validPositions:
180 # self.grid.itemAtPosition(tuple[0], tuple[1]).widget().setChecked(checked)
182 def select_func(self, checkbox):
183 checked = checkbox.isChecked()
184 self.map_checked[checkbox.name] = checked
187 for tuple in self.validPositions:
188 item = self.grid.itemAtPosition(tuple[0], tuple[1]).widget()
189 # if item == self.select_all:
193 # self.select_all.setChecked(False)
195 element.setChecked(True)
197 def getCategories(self):
198 return self.map_checked