Remove .svn/ (hidden folder)
[tablet-suite] / src / backup / .svn / text-base / pcsbackupmanagerui.py.svn-base
diff --git a/src/backup/.svn/text-base/pcsbackupmanagerui.py.svn-base b/src/backup/.svn/text-base/pcsbackupmanagerui.py.svn-base
deleted file mode 100644 (file)
index 2fdc32b..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-# Software License: GPL
-
-import os
-import sys
-
-from functools import partial
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from ui.pcsuiutils import *
-from ui.tsuigeneralmethods import *
-from ui.pcsapp import PcsApp
-from backup.pcsbackuputils import *
-
-from pcsbackuplistui import PCSBackupListUi
-from pcspcbackupmanager import PcsPcBackupManager
-from pcsdevicebackupmanager import PcsDeviceBackupManager
-from pcsprogressdialog import PcsProgressDialog
-from style.styleTabletSuite import *
-
-COPY_BUTTON_ID = 0
-DELETE_BUTTON_ID = 1
-RENAME_BUTTON_ID = 2
-VIEW_BUTTON_ID = 3
-_home_dir = os.path.expanduser("~")
-_default_dir = _home_dir + "/.pcsuite/Backup"
-
-
-class PcsBackupManagerUi(QDialog):
-    
-    ''' Class that calls a Backup Pc Suite application
-        with a Table Viewer'''
-
-    def __init__(self, deviceInfo, windowManager, parent=None):
-        QDialog.__init__(self, parent)
-        self.deviceInfo = deviceInfo
-        self.windowManager = windowManager
-        
-        self.setWindowIcon(QIcon(BACKUP_IMAGE))
-        self.setWindowTitle("%s Backup Manager" % APPLICATION_NAME)
-        self.setFixedSize(WINDOW_WIDTH, WINDOW_HEIGHT)
-        self._home_dir = os.path.expanduser("~")
-        self._default_dir = _home_dir + "/.pcsuite/Backup"
-        self.copyPath = self._default_dir
-        self.name_change = None
-        self._setupUi()
-        
-    def _setupUi(self):
-        # Creates the lists
-        self.pcBackupManager = PcsPcBackupManager()
-        self.deviceBackupManager = PcsDeviceBackupManager(self.deviceInfo)
-
-        self.pcListView = PCSBackupListUi(self.pcBackupManager)
-        self.pcListView.setObjectName("ListView")
-        # "Update pc list view"
-        pcListViewSelectionModel = self.pcListView.selectionModel()
-        self.connect(pcListViewSelectionModel, 
-                     SIGNAL("selectionChanged(QItemSelection, QItemSelection)"),
-                     self._updateButtonsState)
-        self.pcListView.updateBackupList()
-        
-        self.deviceListView = PCSBackupListUi(self.deviceBackupManager)
-        self.deviceListView.setObjectName("ListView")
-        deviceListViewSelectionModel = self.deviceListView.selectionModel()
-        self.connect(deviceListViewSelectionModel, 
-                     SIGNAL("selectionChanged(QItemSelection, QItemSelection)"), 
-                     self._updateButtonsState)
-        # "Update device List view"
-        self.deviceListView.updateBackupList()
-        
-        layout = QVBoxLayout()
-        menuLayout = self._menuButtons()
-        layout.addLayout(menuLayout, Qt.AlignTop)
-        wayLayout = self._wayLayout()
-        layout.addLayout(wayLayout, Qt.AlignLeft)
-        layout.addItem(QSpacerItem(0,3))
-        layout.addLayout(self._centerLayout(), Qt.AlignTop)
-
-        layout.addItem(QSpacerItem(0,15))
-        informationLayout = self._createInformationsLabel()
-        layout.addLayout(informationLayout)
-        layout.addItem(QSpacerItem(0,2))
-        self.setLayout(layout)
-    
-    def _centerLayout(self):
-        # Creates the tabs
-        layout = QVBoxLayout()
-        tabLayout = QVBoxLayout()
-        tab = QTabBar()
-        tab.setObjectName("managerTabs")
-        self.tabBar = QTabWidget()
-        self.tabBar.setTabBar(tab)
-        self.tabBar.setAttribute(Qt.WA_NoSystemBackground)
-        self.tabBar.setObjectName("tabBar")
-        self.tabBar.addTab(self.pcListView, "PC Backups")
-        self.tabBar.addTab(self.deviceListView, "Device Backups")
-        self.connect(self.tabBar, SIGNAL("currentChanged(int)"), self._updateButtonsState)
-        tabLayout.addWidget(self.tabBar)
-        layout.addLayout(tabLayout)
-        #Spacer
-        layout.addItem(QSpacerItem(0,5))        
-        # Creates the buttons
-        buttonBox = QHBoxLayout()
-        self._buttonCopy = QPushButton("Copy")
-        self._buttonCopy.setDisabled(True)
-        self._buttonCopy.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        buttonBox.addWidget(self._buttonCopy)
-        self.connect (self._buttonCopy, SIGNAL("clicked()"), self._doCopyBackup)
-        
-        self._buttonDelete = QPushButton("Delete")
-        self._buttonDelete.setDisabled(True)
-        buttonBox.addWidget(self._buttonDelete)
-        self._buttonDelete.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect (self._buttonDelete, SIGNAL("clicked()"), self._doDeleteBackup)
-        
-        self._buttonRename = QPushButton("Rename")
-        self._buttonRename.setDisabled(True)
-        buttonBox.addWidget(self._buttonRename)
-        self._buttonRename.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect (self._buttonRename, SIGNAL("clicked()"), self._doRenameBackup)
-        
-        self._buttonView = QPushButton("View")
-        self._buttonView.setDisabled(True)
-        buttonBox.addWidget(self._buttonView)
-        self._buttonView.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect (self._buttonView, SIGNAL("clicked()"), self._doViewBackup)
-        
-        self._buttonUpdate = QPushButton("Update")
-        self._buttonUpdate.setDisabled(False)
-        self._buttonUpdate.setVisible(False)
-        buttonBox.addWidget(self._buttonUpdate)
-        self._buttonUpdate.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect (self._buttonUpdate, SIGNAL("clicked()"), self._doUpdateList)
-        
-        layout.addLayout(buttonBox)
-        return layout
-        
-    def _menuButtons(self):
-        infList = [("New Backup", SMALL_ICON_NEW_BACKUP_STYLE, self._newBackupDialog), 
-                   ("Manage Backup", SMALL_ICON_MANAGER_BACKUP_STYLE_SELECTED),
-                   ("Restore Backup", SMALL_ICON_RESTORE_BACKUP_STYLE, self._restoreDialog)]
-        
-        buttonsLayout = QHBoxLayout()
-        for i in range(3):
-            but = QPushButton(infList[i][0])
-            but.setStyleSheet(infList[i][1])
-            if i <> 1:
-                buttonsLayout.addWidget(but, Qt.AlignLeft)
-                self.connect(but, SIGNAL("clicked()"), infList[i][2])
-            else:
-                buttonsLayout.addWidget(but)
-        buttonsLayout.setMargin(0)
-        return buttonsLayout    
-    
-    def _newBackupDialog(self):
-        if(self.deviceInfo and self.deviceInfo.ip != None):
-            newBackup = self.windowManager.getNewBackup()
-            centralize(newBackup)
-            newBackup.setGeometry(self.geometry())
-            newBackup.show()
-            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.geometry())
-            restoreBackup.show()
-            self.close()
-        else:
-            self._showNoDeviceFoundMessage()
-    
-    def _wayLayout(self):
-        self.barLayout = QHBoxLayout()
-        self.barLayout.setMargin(0)
-        spc = QSpacerItem(8, 0)
-        self.barLayout.addItem(spc)
-        main = QLabel("<font style='color: #333333'; size=2>Main</font>")
-        restore = QLabel("<font style='color: #FFFFFF'; size=2> Manage backups</font>")
-        spc = QSpacerItem(2, 0)
-        widgetList = [main, self._arrow(), restore]
-        
-        for widget in widgetList:
-            self.barLayout.addWidget(widget, Qt.AlignLeft)
-            self.barLayout.addItem(spc)
-                    
-        self.barLayout.addItem(QSpacerItem(300, 0))
-        return self.barLayout
-    
-    def _arrow(self):
-        label = QLabel()
-        label.setPixmap(QPixmap(BLACK_ARROW))
-        return label
-    
-    def _createInformationsLabel(self):
-        hLay = QHBoxLayout()
-        
-        self.infLabel = QLabel("<font style='color:"\
-                             "#333333'; size=2>"\
-                             "Select the backup you wish to manipulate.</font>")
-        iconAlert = QLabel()
-        hLay.setMargin(0)
-        iconAlert.setPixmap(QPixmap(ICON_ALERT))
-        spc = QSpacerItem(15, 0)
-        hLay.addItem(spc)
-        hLay.addWidget(iconAlert)
-        hLay.addWidget(self.infLabel, Qt.AlignLeft)
-        
-        return hLay
-    
-    def _doUpdateList(self):
-        self._currentBackupList().updateBackupList()
-        self._updateButtonsState(0)
-    
-    def _execCopyDialogToDevice(self):
-        self._copyDialogToDevice = QDialog(self, Qt.FramelessWindowHint)
-        self._copyDialogToDevice.setObjectName("copyDialogToDevice")
-        
-        self.rb1 = QRadioButton()
-        self.rb1.setText("External Memory Card")
-        self.rb2 = QRadioButton()
-        self.rb2.setText("Internal Memory Card")
-        
-        layout = QVBoxLayout()
-        layout.addWidget(self.rb1)
-        layout.addWidget(self.rb2)
-        
-        buttonCopy = QPushButton("Copy")
-        buttonCopy.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect(buttonCopy, SIGNAL("clicked()"), self._doCopyToDevice)
-        buttonCancel = QPushButton("Cancel")
-        buttonCancel.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect(buttonCancel, SIGNAL("clicked()"), self._copyDialogToDevice.close)
-        
-        hlay = QHBoxLayout()
-        hlay.addWidget(buttonCancel)
-        hlay.addWidget(buttonCopy)
-        layout.addLayout(hlay)
-        self._copyDialogToDevice.setLayout(layout)
-        self._copyDialogToDevice.exec_()
-    
-    def _execCopyDialogFromDevice(self):
-        self._copyDialogFromDevice = QDialog(self, Qt.FramelessWindowHint)
-        self._copyDialogFromDevice.setObjectName("copyDialogFromDevice")
-        
-        hLayout = QHBoxLayout()
-        hLayout.setMargin(0)
-        self.textField = QLineEdit(self)
-        buttonOpen = QPushButton()
-        buttonOpen.setObjectName("buttonBrowse")
-        self.connect(buttonOpen, SIGNAL("clicked()"), self._doBrowse)
-        copyPath = str(self._default_dir)
-        self.textField.setReadOnly(True)
-        self.textField.setText(self._default_dir)
-        hLayout.addWidget(self.textField)
-        hLayout.addWidget(buttonOpen)
-        
-        message = QLabel("<font style='color: #333333'; size=2> Backup copy destination: </font>")
-        message.setFixedHeight(15)
-        
-        layout = QVBoxLayout()
-        layout.addWidget(message)
-        layout.addLayout(hLayout)
-        
-        buttonCopy = QPushButton("Copy")
-        buttonCopy.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect(buttonCopy, SIGNAL("clicked()"), self._doCopyFromDevice)
-        buttonCancel = QPushButton("Cancel")
-        buttonCancel.setStyleSheet(DEFAULT_BUTTON_STYLE)
-        self.connect(buttonCancel, SIGNAL("clicked()"), self._copyDialogFromDevice.close)
-        
-        hlay = QHBoxLayout()
-        hlay.addWidget(buttonCancel)
-        hlay.addWidget(buttonCopy)
-        layout.addLayout(hlay)
-        self._copyDialogFromDevice.setLayout(layout)
-        self._copyDialogFromDevice.exec_()
-    
-    def _doCopyBackup(self):
-        if self.tabBar.currentIndex() == 0:
-            self._execCopyDialogToDevice()
-        else:
-            self._execCopyDialogFromDevice()
-    
-    def doCopy(self, device_ip, backupName, ret, destinationPath):
-        self.copyThread = CopyBackupThread(self, device_ip, backupName, ret, destinationPath)
-        self.copyThread.start()
-        self._runCopyProgress()
-        
-        self.connect(self.copyThread, SIGNAL("openFileError"), self._onOpenFileError)
-        self.connect(self.copyThread, SIGNAL("copyProgress"), self._updateProgress)
-        self.connect(self.copyThread, SIGNAL("copyDone"), self._onCopyDone)
-    
-    def _doCopyToDevice(self):
-        self._copyDialogToDevice.close()
-        ret = 1
-        if self.rb1.isChecked():
-            ret = 0
-        selectedBackupList = self._currentBackupList().getSelectedBackupList()
-        for backup in selectedBackupList: 
-            self.doCopy(self.deviceInfo.ip, str(backup).strip(), ret, "")
-        
-    def _doCopyFromDevice(self):
-        self._copyDialogFromDevice.close()
-        if self.copyPath != "":
-            selectedBackupList = self._currentBackupList().getSelectedBackupList()
-            self.name_change = False
-            for backup in selectedBackupList:
-                self.pcBackupManager.loadBackups()
-                self.correct_name = self.pcBackupManager._verify_backup_name(str(backup).strip())
-                self.doCopy(self.deviceInfo.ip, str(backup).strip(), 0, self.copyPath)
-                if self.correct_name != backup:
-                    self.name_change = True
-
-    def _showMessageCopyBackupDone(self):
-        if self.name_change == None or not self.name_change:
-            QMessageBox.information(self, "Copy Backup", "Backup(s) copied")
-        else:
-            QMessageBox.information(sopenFileErrorelf, "Copy Backup",
-                                    "Backup copied with name: %s" % self.correct_name)
-        
-    def _doBrowse(self):
-        pathDialog = QFileDialog()
-        prompt = "Select the folder you wish to copy your backup(s):"
-        self.copyPath = pathDialog.getExistingDirectory(self, prompt, self._home_dir)
-        if(self.copyPath != ""):
-            self.textField.setText(self.copyPath)
-
-    def _doRenameBackup(self):
-        res = False
-        (newName, ok) = QInputDialog.getText(self, "Rename Backup", "New Backup Name:",
-                                             QLineEdit.Normal, QString(),  
-                                             Qt.FramelessWindowHint)
-        if ok:
-            if newName:
-                newName = QString(str(newName).strip())
-            if not newName.isEmpty():
-                list = self._currentBackupList()
-                res = list.renameSelectedBackup(newName)
-            if res:
-                showMessageBox("Backup Renamed", "")
-            else:
-                showMessageBox("Error while renaming the backup", "")
-
-    def _doDeleteBackup(self):
-        
-        dialog = QMessageBox()
-        dialog.setText("Remove selected backup?")
-        dialog.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
-        dialog.setWindowFlags(Qt.FramelessWindowHint)
-        dialog.setStyleSheet(MESSAGE_BOX_DEFAULT)
-        ret = dialog.exec_()
-        if ret == QMessageBox.Yes:
-            list = self._currentBackupList()
-            list.removeSelectedBackups()
-            showMessageBox("Backup Removed", "")
-
-    def _currentBackupList(self):
-        if self.tabBar.currentIndex() == 0:
-            self._buttonRename.setVisible(True)
-            self._buttonDelete.setVisible(True)
-            self._buttonView.setVisible(True)
-            self._buttonUpdate.setVisible(False)
-            return self.pcListView
-        else:
-            self._buttonUpdate.setVisible(True)
-            self._buttonRename.setVisible(False)
-            self._buttonDelete.setVisible(False)
-            self._buttonView.setVisible(False)
-            return self.deviceListView
-
-    def _updateButtonsState(self, index):
-        list = self._currentBackupList()
-        selectionModel = list.selectionModel()
-        indexList = selectionModel.selectedRows()
-        
-        if len(indexList) != 1:
-            self._buttonRename.setDisabled(True)
-            self._buttonView.setDisabled(True)
-            self._buttonCopy.setDisabled(True)
-        else:
-            self._buttonRename.setEnabled(True)
-            self._buttonView.setEnabled(True)
-            self._buttonCopy.setEnabled(True)
-        
-        if len(indexList) == 0:
-            self._buttonDelete.setDisabled(True)
-#            self._buttonCopy.setDisabled(True)
-        else:
-            self._buttonDelete.setEnabled(True)
-#            self._buttonCopy.setEnabled(True)             
-        
-  
-    def _doViewBackup(self):
-        list = self._currentBackupList()
-        backupManager = list.getBackupManager()
-        backupName = (str(list.getSelectedBackup())).strip()
-        if backupName == None:
-            return False
-        
-        dialog = QDialog(self, Qt.FramelessWindowHint)
-        dialog.setObjectName("viewDialog")
-        dialog.setFixedSize(WINDOW_WIDTH, WINDOW_HEIGHT)
-        dialog.setWindowTitle("Backup Files")
-        dialog.setWindowIcon(QIcon(BACKUP_IMAGE))
-        
-        layout = QVBoxLayout()
-        listWidget = QListWidget()
-        listWidget.setObjectName("viewList")
-        listWidget.setDragDropMode(QAbstractItemView.NoDragDrop)
-        
-        try:
-            backupContentList = backupManager.listBackupContent(backupName)
-        except IOError:
-            showMessageBox(self.openFileError, "Error while opening file")
-            return False
-
-        for backupContent in backupContentList:
-            backup_button = QListWidgetItem()
-            backup_button.setText(backupContent)
-            listWidget.addItem(backup_button)
-        
-        okButton = QPushButton("OK")
-        okButton.setStyleSheet(SMALL_DEFAULT_BUTTON_STYLE)
-        visible = partial(dialog.setVisible, False)
-        self.connect(okButton, SIGNAL("clicked()"), visible)
-        hLay = QHBoxLayout()
-        hLay.addItem(QSpacerItem(200,0))
-        hLay.addWidget(okButton)
-        
-        layout.addWidget(listWidget)
-        layout.addLayout(hLay)
-        dialog.setLayout(layout)
-        dialog.show()
-    
-    def _runCopyProgress(self):
-        self._progressDialog = PcsProgressDialog(self)
-        self._progressDialog.setAction("copy")
-        self.connect(self._progressDialog.cancelButton, SIGNAL("clicked()"),
-                      self._onCopyCancel)
-        self._progressDialog.show()
-    
-    def _updateProgress(self, information):
-        progress, self.numberOfFiles, self.totalSize = information
-        self._progressDialog.setProgress(progress)
-    
-    def _onCopyDone(self):
-        self._progressDialog.updateInfo(self.totalSize, self.numberOfFiles)
-        self._progressDialog.progressDone()
-        self.pcListView.updateBackupList()
-    
-    def _onCopyCancel(self):
-        if self.tabBar.currentIndex() == 0:
-            self.pcBackupManager.setCopyInProgress(False)
-        else:
-            self.deviceBackupManager.setCopyInProgress(False)
-        self._progressDialog.progressCanceled()
-        
-    def _onOpenFileError(self):
-        self._progressDialog.close()
-        showMessageBox(OPEN_FILE_ERROR, OPEN_FILE_ERROR_TITLE)
-        
-        
-        
-class CopyBackupThread(QThread):
-    def __init__(self, manager, deviceIp, backupName, ret, destinationPath ):
-        QThread.__init__(self)
-        self.uiManager = manager
-        self.deviceIp = deviceIp
-        self.backupName = backupName
-        self.memoryCard = ret
-        self.destinationPath = destinationPath
-        self.connect(self.uiManager.pcBackupManager, SIGNAL("copyProgress"), 
-                     self.reEmit)
-        self.connect(self.uiManager.deviceBackupManager, SIGNAL("copyProgress"),
-                      self.reEmit)
-        
-    def reEmit(self, inf):
-        self.emit(SIGNAL("copyProgress"), inf)
-    
-    def run(self):
-        try:
-            if self.uiManager.tabBar.currentIndex() == 0:
-                manager = self.uiManager.pcBackupManager
-                manager.copyBackupToDevice(self.deviceIp, self.backupName, 
-                                            self.memoryCard)
-            else:
-                manager = self.uiManager.deviceBackupManager
-                manager.copyBackupFromDevice(self.backupName, 
-                                             self.destinationPath)
-        
-        except IOError:
-            self.emit(SIGNAL("openFileError"))
-            return
-        self.emit(SIGNAL("copyDone"))
-        
-        
-        
-