Initial commit (Vesion 0.1)
[tablet-suite] / src / backup / .svn / text-base / pcsrestoredialog.py.svn-base
diff --git a/src/backup/.svn/text-base/pcsrestoredialog.py.svn-base b/src/backup/.svn/text-base/pcsrestoredialog.py.svn-base
new file mode 100644 (file)
index 0000000..dbef514
--- /dev/null
@@ -0,0 +1,199 @@
+# Authors: Amaury Medeiros, Nicholas Alexander and Paulo Ouriques
+# Software License: GPL
+from functools import partial
+
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+from style.styleTabletSuite import *
+from ui.pcsdevicewidget import PcsDeviceWidget
+from ui.pcsuiutils import *
+
+class PcsRestoreDialog(QDialog):
+       
+    def __init__(self, deviceInfo, categoriesList, parent = None):
+        QDialog.__init__(self, parent, Qt.FramelessWindowHint)
+        self.setWindowTitle("%s Restore Backup" % APPLICATION_NAME)
+        self.setFixedSize(200, 300)
+        self.deviceInfo = deviceInfo
+        self.categories = categoriesList
+        self.validPositions = []
+        self.validCategories = []
+        
+        self.layout = QVBoxLayout()
+        
+        self.labelLayout = QHBoxLayout()  
+        spc = QSpacerItem(15, 0)
+        self.labelLayout.addItem(spc)
+        label = QLabel("Which categories you want to restore?")
+        label.setWordWrap(True)
+        self.labelLayout.addWidget(label)
+        self.labelLayout.setMargin(0)
+        self.layout.addLayout(self.labelLayout)
+             
+#        self.grid = QGridLayout()
+#        self.create_dialog()
+#        self.grid.setMargin(0)
+#        self.layout.addLayout(self.grid)
+        self.create_checkbox_frame()
+        
+        self.buttonLayout = QHBoxLayout()
+        self.create_buttons()
+        self.buttonLayout.setMargin(0)
+        self.layout.addLayout(self.buttonLayout)
+        
+        self.setLayout(self.layout)
+        self.map_checked = {self.documents.name: False,
+                            self.emails.name: False, self.media.name: False,
+                            self.contacts.name: False, 
+                            self.bookmarks.name: False,
+                            self.settings.name: False, 
+                            self.applications.name: False}
+    
+    def empty_map(self):
+        for index in self.map_checked.keys():
+            if self.map_checked[index]:
+                return False
+        return True
+    
+    def create_buttons(self):
+        self.buttonOk = QPushButton("Ok")
+        self.buttonOk.setStyleSheet(DEFAULT_BUTTON_STYLE)
+        self.buttonLayout.addWidget(self.buttonOk)
+        
+        self.buttonCancel = QPushButton("Cancel")
+        self.buttonCancel.setStyleSheet(DEFAULT_BUTTON_STYLE)
+        self.buttonLayout.addWidget(self.buttonCancel)
+    
+    def create_checkbox_frame(self):
+        layout = QVBoxLayout()
+        l = QLabel()
+        l.setPixmap(QPixmap(COPY_BORDER))
+       
+        self.frame = QScrollArea(self)
+        self.frame.setObjectName("restoreScroll")
+        self.frame.setWidgetResizable(True)
+        widget = QWidget(self.frame)
+        widget.setStyleSheet("QWidget{background: transparent;}")
+        self.grid = QGridLayout()
+        self.grid.setSpacing(0)
+        self.create_dialog()
+        widget.setLayout(self.grid)
+        self.frame.setWidget(widget)
+        layout.addWidget(self.frame)
+        self.layout.addLayout(layout)
+        
+    def create_dialog(self):
+        #Add Checkboxes
+#        self.add_select_all()
+        self.add_documents()
+        self.add_emails()
+        self.add_media()
+        self.add_contacts()
+        self.add_bookmarks()
+        self.add_settings()
+        self.add_applications()            
+        
+#    def add_select_all(self):
+#        self.select_all = QCheckBox("Select All")
+#        self.connect(self.select_all, SIGNAL("stateChanged(int)"), 
+#                     self.select_all_func)
+#        self.validPositions.append((1,0))
+#        self.grid.addWidget(self.select_all, 1, 0, Qt.AlignTop)          
+#    
+    def add_documents(self):
+        self.documents = QCheckBox("Documents")
+        self.documents.name = "documents"
+        callback = partial(self.select_func, self.documents)
+        self.connect(self.documents, SIGNAL("stateChanged(int)"), 
+                     callback)
+        if "documents" in self.categories:
+            self.validPositions.append((2, 0))
+            self.grid.addWidget(self.documents, 2, 0, Qt.AlignTop)
+    
+    def add_emails(self):
+        self.emails = QCheckBox("Emails")
+        self.emails.name = "emails"
+        callback = partial(self.select_func, self.emails)
+        self.connect(self.emails, SIGNAL("stateChanged(int)"), 
+                     callback)
+        if "emails" in self.categories:
+            self.validPositions.append((3, 0))
+            self.grid.addWidget(self.emails, 3, 0, Qt.AlignTop)
+    
+    def add_media(self):
+        self.media = QCheckBox("Media")
+        self.media.name = "media"
+        callback = partial(self.select_func, self.media)
+        self.connect(self.media, SIGNAL("stateChanged(int)"), 
+                     callback)
+        if "media" in self.categories:
+            self.validPositions.append((4, 0))
+            self.grid.addWidget(self.media, 4, 0, Qt.AlignTop)
+    
+    def add_contacts(self):
+        self.contacts = QCheckBox("Contacts")
+        self.contacts.name = "contacts"
+        callback = partial(self.select_func, self.contacts)
+        self.connect(self.contacts, SIGNAL("stateChanged(int)"), 
+                     callback)
+        if "contacts" in self.categories:
+            self.validPositions.append((5, 0))
+            self.grid.addWidget(self.contacts, 5, 0, Qt.AlignTop)
+    
+    def add_bookmarks(self):
+        self.bookmarks = QCheckBox("Bookmarks")
+        self.bookmarks.name = "bookmarks"
+        callback = partial(self.select_func, self.bookmarks)
+        self.connect(self.bookmarks, SIGNAL("stateChanged(int)"), 
+                     callback)
+        if "bookmarks" in self.categories:
+            self.validPositions.append((6, 0))
+            self.grid.addWidget(self.bookmarks, 6, 0, Qt.AlignTop)
+        
+    def add_settings(self):
+        self.settings = QCheckBox("Settings")
+        self.settings.name = "settings"
+        callback = partial(self.select_func, self.settings)
+        self.connect(self.settings, SIGNAL("stateChanged(int)"), 
+                     callback)
+        if "settings" in self.categories:
+            self.validPositions.append((7, 0))
+            self.grid.addWidget(self.settings, 7, 0, Qt.AlignTop)
+
+    def add_applications(self):
+        self.applications = QCheckBox("Applications")
+        self.applications.name = "applications"
+        callback = partial(self.select_func, self.applications)
+        self.connect(self.applications, SIGNAL("stateChanged(int)"), 
+                     callback)
+        if "applications" in self.categories:
+            self.validPositions.append((8, 0))
+            self.grid.addWidget(self.applications, 8, 0, Qt.AlignTop)
+
+#    def select_all_func(self):
+#        checked = self.select_all.isChecked()
+#        list = self.map_checked.keys()
+#        for element in list:
+#            self.map_checked[element] = checked
+#        for tuple in self.validPositions:
+#            self.grid.itemAtPosition(tuple[0], tuple[1]).widget().setChecked(checked)
+#        
+    def select_func(self, checkbox):
+        checked = checkbox.isChecked()
+        self.map_checked[checkbox.name] = checked
+        if not checked:
+            list = []
+            for tuple in self.validPositions:
+                item = self.grid.itemAtPosition(tuple[0], tuple[1]).widget()
+#                if item == self.select_all:
+#                    pass
+                if item.isChecked():
+                    list.append(item)
+#            self.select_all.setChecked(False)
+            for element in list:
+                element.setChecked(True)         
+            
+    def getCategories(self):
+        return self.map_checked
+