# Authors: Amaury Medeiros and Paulo Ouriques
# Software License: GPL
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from ui.pcsapp import PcsApp
from ui.pcsdevicewidget import PcsDeviceWidget
from ui.pcsuiutils import *
from ui.pcsbutton import *
from ui.tsuigeneralmethods import *
from ui.pcscustombuttons import PcsCustomButton as customButton
from pcswindowmanager import *
class PcsBackup(PcsApp):
def __init__(self, deviceInfo, parent=None):
PcsApp.__init__(self, parent)
self.deviceInfo = deviceInfo
if (self.deviceInfo != None):
self.windowManager = PcsWindowManager(self.deviceInfo, self)
self.setWindowIcon(QIcon(BACKUP_IMAGE))
self.setWindowTitle("%s Backup" % APPLICATION_NAME)
self.hLayout = QHBoxLayout()
self.hLayout.setMargin(8)
self.vLayout = QVBoxLayout()
spc = QSpacerItem(0,50)
self.optionsLayout = QVBoxLayout()
self.optionsLayout.addItem(spc)
self._addButtons()
self.optionsLayout.addItem(spc)
self.deviceWidget = PcsDeviceWidget(1)
self.deviceWidget.addBorder()
self.deviceWidget.addDeviceName()
self.deviceWidget.setDeviceInfo(self.deviceInfo)
self.optionsBorderLayout = QGridLayout()
self.optionsBorderLabel = QLabel()
self.optionsBorderLabel.setFixedSize(208, 205)
self.optionsBorderLabel.setPixmap(QPixmap(DEVICE_BACKUP_BORDER))
self.optionsBorderLayout.addWidget(self.optionsBorderLabel, 0, 0, Qt.AlignCenter)
self.optionsBorderLayout.addLayout(self.optionsLayout, 0, 0, Qt.AlignCenter)
self.hLayout.addLayout(self.optionsBorderLayout)
self.hLayout.addWidget(self.deviceWidget)
#FIXE ME
l1 = QLabel("Main")
self.vLayout.addItem(TOP_SPACER)
self.vLayout.addWidget(l1)
self.vLayout.addLayout(self.hLayout)
informationLayout = QHBoxLayout()
spc = QSpacerItem(10, 0)
iconAlert = QLabel()
iconAlert.setPixmap(QPixmap(ICON_ALERT))
information = QLabel(""\
"Select an action.")
informationLayout.addItem(spc)
informationLayout.addWidget(iconAlert)
informationLayout.addWidget(information, Qt.AlignLeft)
self.vLayout.addLayout(informationLayout)
self.vLayout.setMargin(8)
self.setLayout(self.vLayout)
def openBackupWizard(self):
if(self.deviceInfo and self.deviceInfo.ip != None):
backup_wizard = self.windowManager.getNewBackup()
centralize(backup_wizard)
backup_wizard.setGeometry(self.geometry())
backup_wizard.exec_()
self.setVisible(False)
self.setGeometry(backup_wizard.geometry())
else:
showMessageBox("No devices were found.", "")
def openBackupManagerDialog(self):
if(self.deviceInfo and self.deviceInfo.ip != None):
backupManager = self.windowManager.getBackupManager()
centralize(backupManager)
backupManager.show()
self.setVisible(False)
else:
showMessageBox("No devices were found.", "")
def openRestoreBackupDialog(self):
if(self.deviceInfo and self.deviceInfo.ip != None):
restoreBackup = self.windowManager.getRestoreBackup()
centralize(restoreBackup)
restoreBackup.show()
self.setVisible(False)
else:
showMessageBox("No devices were found.", "")
def _addButtons(self):
infList = [("New Backup ", ICON_NEW_BACKUP),
("Manage Backups", ICON_MANAGER_BACKUP),
("Restore Backups ", ICON_RESTORE_BACKUP)]
buttonsList = []
for inf in infList:
buttonOptions = PcsButton(inf[0])
buttonOptions.setStyleSheet("background-image\
:url("+ BUTTON_WITH_ICON_BG +");\
qproperty-icon:url("+inf[1]+");\
min-height:50px; min-width:188px;\
max-height:50px; max-width:188px;\
qproperty-iconSize: 43px 36px")
self.optionsLayout.addWidget(buttonOptions)
buttonsList.append(buttonOptions)
self.connect(buttonsList[0], SIGNAL("clicked()"),
self.openBackupWizard)
self.connect(buttonsList[1], SIGNAL("clicked()"),
self.openBackupManagerDialog)
self.connect(buttonsList[2], SIGNAL("clicked()"),
self.openRestoreBackupDialog)