Initial commit (Vesion 0.1)
[tablet-suite] / src / backup / .svn / text-base / pcsrestoredialog.py.svn-base
1 # Authors: Amaury Medeiros, Nicholas Alexander and Paulo Ouriques
2 # Software License: GPL
3 from functools import partial
4
5 from PyQt4.QtCore import *
6 from PyQt4.QtGui import *
7
8 from style.styleTabletSuite import *
9 from ui.pcsdevicewidget import PcsDeviceWidget
10 from ui.pcsuiutils import *
11
12 class PcsRestoreDialog(QDialog):
13        
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 = []
22         
23         self.layout = QVBoxLayout()
24         
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)
33              
34 #        self.grid = QGridLayout()
35 #        self.create_dialog()
36 #        self.grid.setMargin(0)
37 #        self.layout.addLayout(self.grid)
38         self.create_checkbox_frame()
39         
40         self.buttonLayout = QHBoxLayout()
41         self.create_buttons()
42         self.buttonLayout.setMargin(0)
43         self.layout.addLayout(self.buttonLayout)
44         
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}
52     
53     def empty_map(self):
54         for index in self.map_checked.keys():
55             if self.map_checked[index]:
56                 return False
57         return True
58     
59     def create_buttons(self):
60         self.buttonOk = QPushButton("Ok")
61         self.buttonOk.setStyleSheet(DEFAULT_BUTTON_STYLE)
62         self.buttonLayout.addWidget(self.buttonOk)
63         
64         self.buttonCancel = QPushButton("Cancel")
65         self.buttonCancel.setStyleSheet(DEFAULT_BUTTON_STYLE)
66         self.buttonLayout.addWidget(self.buttonCancel)
67     
68     def create_checkbox_frame(self):
69         layout = QVBoxLayout()
70         l = QLabel()
71         l.setPixmap(QPixmap(COPY_BORDER))
72        
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)
80         self.create_dialog()
81         widget.setLayout(self.grid)
82         self.frame.setWidget(widget)
83         layout.addWidget(self.frame)
84         self.layout.addLayout(layout)
85         
86     def create_dialog(self):
87         #Add Checkboxes
88 #        self.add_select_all()
89         self.add_documents()
90         self.add_emails()
91         self.add_media()
92         self.add_contacts()
93         self.add_bookmarks()
94         self.add_settings()
95         self.add_applications()            
96         
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)          
103 #    
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)"), 
109                      callback)
110         if "documents" in self.categories:
111             self.validPositions.append((2, 0))
112             self.grid.addWidget(self.documents, 2, 0, Qt.AlignTop)
113     
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)"), 
119                      callback)
120         if "emails" in self.categories:
121             self.validPositions.append((3, 0))
122             self.grid.addWidget(self.emails, 3, 0, Qt.AlignTop)
123     
124     def add_media(self):
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)"), 
129                      callback)
130         if "media" in self.categories:
131             self.validPositions.append((4, 0))
132             self.grid.addWidget(self.media, 4, 0, Qt.AlignTop)
133     
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)"), 
139                      callback)
140         if "contacts" in self.categories:
141             self.validPositions.append((5, 0))
142             self.grid.addWidget(self.contacts, 5, 0, Qt.AlignTop)
143     
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)"), 
149                      callback)
150         if "bookmarks" in self.categories:
151             self.validPositions.append((6, 0))
152             self.grid.addWidget(self.bookmarks, 6, 0, Qt.AlignTop)
153         
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)"), 
159                      callback)
160         if "settings" in self.categories:
161             self.validPositions.append((7, 0))
162             self.grid.addWidget(self.settings, 7, 0, Qt.AlignTop)
163
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)"), 
169                      callback)
170         if "applications" in self.categories:
171             self.validPositions.append((8, 0))
172             self.grid.addWidget(self.applications, 8, 0, Qt.AlignTop)
173
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)
181 #        
182     def select_func(self, checkbox):
183         checked = checkbox.isChecked()
184         self.map_checked[checkbox.name] = checked
185         if not checked:
186             list = []
187             for tuple in self.validPositions:
188                 item = self.grid.itemAtPosition(tuple[0], tuple[1]).widget()
189 #                if item == self.select_all:
190 #                    pass
191                 if item.isChecked():
192                     list.append(item)
193 #            self.select_all.setChecked(False)
194             for element in list:
195                 element.setChecked(True)         
196             
197     def getCategories(self):
198         return self.map_checked
199