+++ /dev/null
-# Authors: Amaury Medeiros and Paulo Ouriques
-# Software License: GPL
-
-from functools import partial
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from ui.pcsbutton import *
-from ui.pcsdevicewidget import PcsDeviceWidget
-from ui.pcscustombuttons import PcsCustomButton as customButton
-from ui.pcsuiutils import *
-from style.styleTabletSuite import *
-from pcsbackupmanagerui import *
-from pcsrestorebackupui import *
-
-class PcsCheckboxWizard(QWizardPage):
-
- def __init__(self, deviceInfo, windowManager, parent = None):
- QWizardPage.__init__(self, parent)
- self.deviceInfo = deviceInfo
- self.windowManager = windowManager
-
- self.layout = QVBoxLayout()
- self.layout.setMargin(0)
- self.layout.setSpacing(0)
- buttonsLayout = self._menuButtons()
- self.layout.addLayout(buttonsLayout)
- self.layout.addItem(QSpacerItem(0, 8))
- wayLayout = self._wayLayout()
- self.layout.addLayout(wayLayout)
-
- self.layout.addItem(QSpacerItem(0, 10))
-
- self.hlayout = QHBoxLayout()
- self.hlayout.setMargin(0)
-
- self.vertical = QVBoxLayout()
- self.vertical.setMargin(0)
- self.vertical.setSpacing(0)
- self.create_vertical_components()
- self.hlayout.addLayout(self.vertical)
- self.hlayout.setMargin(0)
- self.hlayout.setSpacing(0)
-
- self.create_checkbox_frame()
-# self.hlayout.addItem(QSpacerItem(30, 0))
- self.layout.addLayout(self.hlayout)
-
- self.layout.addItem(QSpacerItem(0, 35))
- informationLayout = QHBoxLayout()
- informationLayout.setMargin(0)
- spc = QSpacerItem(10, 0)
- iconAlert = QLabel()
- iconAlert.setPixmap(QPixmap(ICON_ALERT))
- information = QLabel("<font style='color:"\
- "#333333'; size=2>"\
- "Select the types of file you wish to backup.</font>")
- informationLayout.addItem(spc)
- informationLayout.addWidget(iconAlert)
- informationLayout.addWidget(information, Qt.AlignLeft)
-
- self.layout.addLayout(informationLayout)
-
- 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}
- self.enableNext = QLineEdit()
- self.registerField("enableNext*", self.enableNext)
-
- def _wayLayout(self):
- barLayout = QHBoxLayout()
- barLayout.setMargin(0)
- main = QLabel("<font style='color: #333333'; size=2>Main</font>")
- arrow = self._arrow()
- arrow2 = self._arrow()
- spc = QSpacerItem(5, 0)
- newBackup = QLabel("<font style='color: #333333'; size=2> New Backup</font>")
- files = QLabel("<font style='color: #FFFFFF'; size=2>Files</font>")
- widgetList = [main, arrow, newBackup, arrow2, files]
- for widget in widgetList:
- barLayout.addWidget(widget, Qt.AlignLeft)
- barLayout.addItem(spc)
- barLayout.addItem(QSpacerItem(300, 0))
- return barLayout
-
- def _arrow(self):
- label = QLabel()
- label.setPixmap(QPixmap(BLACK_ARROW))
- return label
-
- def _menuButtons(self):
- infList = [("New Backup", SMALL_ICON_NEW_BACKUP_STYLE_SELECTED),
- ("Manage Backup", SMALL_ICON_MANAGER_BACKUP_STYLE, self._manageDialog),
- ("Restore Backup", SMALL_ICON_RESTORE_BACKUP_STYLE, self._restoreDialog)]
- buttonsLayout = QHBoxLayout()
- buttonsLayout.setMargin(0)
- for i in range(3):
- but = QPushButton(infList[i][0])
- but.setStyleSheet(infList[i][1])
- if i <> 0:
- buttonsLayout.addWidget(but, Qt.AlignLeft)
- self.connect(but, SIGNAL("clicked()"), infList[i][2])
- else:
- buttonsLayout.addWidget(but)
- return buttonsLayout
-
- def _manageDialog(self):
- if(self.deviceInfo and self.deviceInfo.ip != None):
- backupManager = self.windowManager.getBackupManager()
- centralize(backupManager)
- backupManager.setGeometry(self.wizard().geometry())
- backupManager.show()
- self.wizard().close()
- self.close()
- else:
- self._showNoDeviceFoundMessage()
-
- def _restoreDialog(self):
- if(self.deviceInfo and self.deviceInfo.ip != None):
- restoreBackup = self.windowManager.getRestoreBackup()
- centralize(restoreBackup)
- restoreBackup.setGeometry(self.wizard().geometry())
- restoreBackup.show()
- self.wizard().close()
- self.close()
- else:
- self._showNoDeviceFoundMessage()
-
- def _goNextPage(self):
- if self.empty_map():
- return False
- else:
- self.wizard().next()
-
-
- def _showNoDeviceFoundMessage(self):
- inf = QMessageBox(self)
- inf.setWindowTitle("Connect a device.")
- inf.setText("No devices were found.")
- inf.show()
-
- def create_checkbox_frame(self):
- layout = QVBoxLayout()
- l = QLabel()
- l.setPixmap(QPixmap(COPY_BORDER))
-
- self.frame = QScrollArea(self)
- self.frame.setWidgetResizable(True)
- widget = QWidget(self.frame)
- widget.setStyleSheet("QWidget{background: transparent;}")
- self.grid = QGridLayout()
- self.grid.setSpacing(0)
- self.createCheckboxPanel()
- widget.setLayout(self.grid)
- self.frame.setWidget(widget)
- layout.addItem(QSpacerItem(0,25))
- layout.addWidget(self.frame)
- self.hlayout.addLayout(layout)
-
-
- def empty_map(self):
- for index in self.map_checked.keys():
- if self.map_checked[index]:
- return False
- return True
-
- def createCheckboxPanel(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.grid.addWidget(self.select_all, 0, 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)
- self.grid.addWidget(self.documents, 1, 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)
- self.grid.addWidget(self.emails, 2, 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)
- self.grid.addWidget(self.media, 3, 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)
- self.grid.addWidget(self.contacts, 4, 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)
- self.grid.addWidget(self.bookmarks, 5, 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)
- self.grid.addWidget(self.settings, 6, 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)
- self.grid.addWidget(self.applications, 7, 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 i in range(1,8):
-# self.grid.itemAtPosition(i, 0).widget().setChecked(checked)
-#
- def select_func(self, checkbox):
- checked = checkbox.isChecked()
- self.map_checked[checkbox.name] = checked
- if not checked:
- list = []
- for i in range(1,8):
- item = self.grid.itemAtPosition(i, 0).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)
- if self.empty_map():
- self.enableNext.setText("")
- else:
- self.enableNext.setText("Next Button Enabled")
-
- def getCategories(self):
- return self.map_checked
-
- def create_vertical_components(self):
- deviceWidget = PcsDeviceWidget(2)
- deviceWidget.setImage(DEVICE_DISCONNECTED)
- deviceWidget.addBorder()
- deviceWidget.addDeviceName()
- deviceWidget.setDeviceInfo(self.deviceInfo)
- self.vertical.addWidget(deviceWidget, Qt.AlignTop)
- self.nextButton = QPushButton()
- self.nextButton.setText("Next")
- self.nextButton.setStyleSheet(BACKUP_BUTTON_STYLE)
- self.connect(self.nextButton, SIGNAL("clicked()"), self._goNextPage)
- self.vertical.addItem(QSpacerItem(0, 20))
- buttonLayout = QHBoxLayout()
- buttonLayout.addItem(QSpacerItem(5,0))
- buttonLayout.addWidget(self.nextButton, Qt.AlignCenter)
- self.vertical.addLayout(buttonLayout)
- self.vertical.addItem(QSpacerItem(0,10))
-
\ No newline at end of file