+++ /dev/null
-from time import sleep
-import threading
-
-from functools import partial
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from ui.pcsuiutils import *
-from style.styleTabletSuite import *
-
-from pcsprogresswizard import *
-from pcscheckboxwizard import *
-from pcsopenfilewizard import *
-from pcspcbackupmanager import *
-from pcsdevicemanager import *
-
-class PcsBackupWizard(QWizard):
-
- ''' Class that creates a wizard responsible for doing backup '''
-
- def __init__(self, deviceInfo, windowManager, parent = None):
- QWizard.__init__(self, parent)
- self.windowManager = windowManager
- self.deviceInfo = deviceInfo
- stylesheet = '''QWizard{background-image:url('''+ BACKUP_BG + ''')};'''
- self.setStyleSheet(stylesheet)
- self.setWindowIcon(QIcon(BACKUP_IMAGE))
- self.setWindowTitle("%s Backup" % APPLICATION_NAME)
- self.setFixedSize(WINDOW_WIDTH,WINDOW_HEIGHT)
-
- self.setButtonLayout([])
- self.setWizardStyle(4)
-
- self.checkboxPage = PcsCheckboxWizard(self.deviceInfo, windowManager, self)
- self.addPage(self.checkboxPage)
-
- self.chooseFilePage = PcsOpenFileWizard(self.deviceInfo, windowManager, self)
- self.connect(self.chooseFilePage.finishButton, SIGNAL("clicked()"),
- self.noNameTest)
- self.addPage(self.chooseFilePage)
-
- self.progressWizard = PcsProgressWizard(self.deviceInfo,self, windowManager, self)
- self.connect(self.progressWizard.cancelButton, SIGNAL("clicked()"),
- self._confirmsCancel)
- self.connect(self.progressWizard.doneButton, SIGNAL("clicked()"), self._done)
- self.connect(self.progressWizard, SIGNAL("destroyed()"), self.test)
- self.addPage(self.progressWizard)
-
- def test(self):
- print "entrou caraiiiiii"
-
- def noNameTest(self):
- if(str(self.chooseFilePage.getBackupName()).strip() == ""):
- message = "Your backup name can't be blank."
- showMessageBox(message, "Backup name blank")
- else:
- self.doNewBackup()
- self.next()
-
- def _done(self):
- self.done(0)
- self.progressWizard._resetPage()
- self.chooseFilePage._resetPage()
-
- def doNewBackup(self):
-
- hostIp = self.deviceInfo.ip
- backupName = self.chooseFilePage.getBackupName()
- backupPath = self.chooseFilePage.getPath()
- categories = self.checkboxPage.getCategories()
- self.backupManager = PcsPcBackupManager()
- self.backupManager.loadBackups()
- comments = ""
-
- self._updateThread = UpdateBackupProgress(backupName, backupPath,
- hostIp,categories, comments,
- self.backupManager,
- self.progressWizard)
- self.connect(self._updateThread, SIGNAL("backupFinished"),
- self._onBackupDone)
- self.connect(self._updateThread, SIGNAL("backupCanceled"),
- self._onBackupCancel)
- self.connect(self._updateThread, SIGNAL("backupNameChanged"),
- self._onBackupNameChanged)
- self.connect(self._updateThread, SIGNAL("backupProgress"),
- self._updateCategoriesAndProgress)
-
- self._updateThread.start()
-
- def _updateCategoriesAndProgress(self, information):
- progress, category = information
- self.progressWizard.setProgress(progress)
- self.progressWizard.setCategory(category)
-
-
- def _onBackupDone(self, info):
- self.progressWizard.updateInfo(info[0], info[1])
- self.progressWizard.progressDone()
- self.windowManager.getBackupManager().pcListView.updateBackupList()
-
- def _onBackupNameChanged(self, correct_name):
- """
- Check if backup name was changed and show message case positive.
- """
- nameChangeMessage = "Backup with same name was found in" + \
- " backup list, Backup name changed to %s" \
- % correct_name
- showMessageBox(nameChangeMessage, "Backup name changed")
-
- def _confirmsCancel(self):
- """
- Confirms the backup canceling.
- """
- dialog = QMessageBox()
- dialog.setText("Do you really want cancel this backup?")
- dialog.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
- dialog.setWindowFlags(Qt.FramelessWindowHint)
- dialog.setStyleSheet(MESSAGE_BOX_DEFAULT)
- ret = dialog.exec_()
- if ret == QMessageBox.Yes:
- self._onBackupCancel()
-
- def _onBackupCancel(self):
- """
- Stops current backup process in backup manager.
- Also, shows a message box informing about canceling.
-
- """
- self.progressWizard.progressCanceled()
- self.backupManager.setBackupInProgress(False)
-
- def setVisible (self, visible):
- if(visible == False):
- self.emit("")
-
-
-class UpdateBackupProgress(QThread):
-
- def __init__(self, backupName, path, hostIp, categories, comment,
- backupManager, progressWizard):
- QThread.__init__(self)
-
- self.backupName = backupName
- self.path = path
- self.hostIp = hostIp
- self.categories = categories
- self.comment = comment
- self.backupManager = backupManager
-
-
- def run(self):
- self._backupFlag = True
-
- self.correctName = self.backupManager._verify_backup_name(self.backupName)
- self.nameChanged = self.correctName != self.backupName
-
- self.connect(self.backupManager, SIGNAL("backupProgress"), self._reEmitSignal)
- self.connect(self.backupManager, SIGNAL("backupDone"), self._onBackupDone)
- res = self.backupManager.createBackup(self.correctName, self.path,
- self.hostIp, self.categories,
- self.comment)
-
- while (self._backupFlag):
- sleep(0.1)
-
- def _reEmitSignal(self, informations):
- self.emit(SIGNAL("backupProgress"), informations)
-
- def _onBackupDone(self, res, info):
- self._backupFlag = False
- # If backup was not canceled, emit done signal
- if res != 0:
- if self.nameChanged:
- self.emit(SIGNAL("backupNameChanged"), self.correctName)
- self.emit(SIGNAL("backupFinished"), info)
- else:
- self.emit(SIGNAL("backupCanceled"))
-
-
\ No newline at end of file