Beispiel #1
0
    def connectOrDisconnect(self):
        if self.ftp:
            self.ftp.abort()
            self.ftp.deleteLater()
            self.ftp = None

            self.fileList.setEnabled(False)
            self.cdToParentButton.setEnabled(False)
            self.downloadButton.setEnabled(False)
            self.connectButton.setEnabled(True)
            self.connectButton.setText("Connect")
            self.setCursor(QtCore.Qt.ArrowCursor)

            return

        self.setCursor(QtCore.Qt.WaitCursor)

        self.ftp = QtNetwork.QFtp(self)
        self.ftp.commandFinished.connect(self.ftpCommandFinished)
        self.ftp.listInfo.connect(self.addToList)
        self.ftp.dataTransferProgress.connect(self.updateDataTransferProgress)

        self.fileList.clear()
        self.currentPath = ''
        self.isDirectory.clear()

        url = QtCore.QUrl(self.ftpServerLineEdit.text())
        if not url.isValid() or url.scheme().lower() != 'ftp':
            self.ftp.connectToHost(self.ftpServerLineEdit.text(), 21)
            self.ftp.login()
        else:
            self.ftp.connectToHost(url.host(), url.port(21))

            user_name = url.userName()
            if user_name:
                try:
                    # Python v3.
                    user_name = bytes(user_name, encoding='latin1')
                except:
                    # Python v2.
                    pass

                self.ftp.login(QtCore.QUrl.fromPercentEncoding(user_name),
                               url.password())
            else:
                self.ftp.login()

            if url.path():
                self.ftp.cd(url.path())

        self.fileList.setEnabled(True)
        self.connectButton.setEnabled(False)
        self.connectButton.setText("Disconnect")
        self.statusLabel.setText("Connecting to FTP server %s..." %
                                 self.ftpServerLineEdit.text())
Beispiel #2
0
    def initUI(self):
        #layout variables
        cw = qt.QWidget()
        self.setCentralWidget(cw)
        grid = qt.QGridLayout()

        #toolbar action
        openAction = qt.QAction(
            self.style().standardIcon(qt.QStyle.SP_DriveNetIcon),
            'Open Connection', self)
        openAction.triggered.connect(self.openConnectionWin)
        #toolbar
        self.toolbar = self.addToolBar('FTP')
        self.toolbar.addAction(openAction)

        #init identifiers dictionary
        self.identifiers = {}
        #init ftp
        self.ftp = qnw.QFtp(self)

        #ftp tree
        self.serverTree = qt.QTreeWidget()
        self.serverTree.itemDoubleClicked.connect(self.twDblClicked)
        #self.serverTree.dropEvent.connect(self.itemDropped)
        lbls = ["Name", "Size"]
        self.serverTree.setHeaderLabels(lbls)
        self.serverTree.setColumnWidth(0, 200)

        #parent directory button is put on toolbar
        icn = self.style().standardIcon(qt.QStyle.SP_FileDialogToParent)
        upBtn = qt.QAction(icn, "Parent dir", self)
        upBtn.triggered.connect(self.upDir)
        self.toolbar.addAction(upBtn)

        #layout code
        policy = qt.QSizePolicy(qt.QSizePolicy.Expanding,
                                qt.QSizePolicy.Expanding)
        self.serverTree.setSizePolicy(policy)
        grid.addWidget(self.serverTree, 0, 0)
        cw.setLayout(grid)
        self.setGeometry(100, 100, 450, 575)
        self.setWindowTitle('FTP')
        self.setWindowIcon(qt.QIcon('icon.png'))
        self.show()