Exemplo n.º 1
0
    def read_mcu_file(self, idx):
        assert isinstance(idx, QModelIndex)
        model = self.mcuFilesListView.model()
        assert isinstance(model, QStringListModel)
        file_name = model.data(idx, Qt.EditRole)

        progress_dlg = FileTransferDialog(FileTransferDialog.DOWNLOAD)
        progress_dlg.finished.connect(lambda: self.finished_read_mcu_file(file_name, progress_dlg.transfer))
        progress_dlg.show()
        self._connection.read_file(file_name, progress_dlg.transfer)
Exemplo n.º 2
0
 def read_mcu_file(self, idx):
     assert isinstance(idx, QModelIndex)
     model = self.mcuFilesTreeView.model()
     # assert isinstance(model, QStringListModel)
     # file_name = model.data(idx, 0)
     file_name = model.itemFromIndex(model.index(idx.row(), 0)).text()
     progress_dlg = FileTransferDialog(FileTransferDialog.DOWNLOAD)
     progress_dlg.finished.connect(lambda: self.finished_read_mcu_file(
         file_name, progress_dlg.transfer))
     progress_dlg.show()
     self._connection.read_file(file_name, progress_dlg.transfer)
Exemplo n.º 3
0
    def transfer_to_pc(self):
        idx = self.mcuFilesListView.currentIndex()
        assert isinstance(idx, QModelIndex)
        model = self.mcuFilesListView.model()
        assert isinstance(model, QStringListModel)
        remote_path = model.data(idx, Qt.EditRole)
        local_path = self.localPathEdit.text() + "/" + remote_path

        progress_dlg = FileTransferDialog(FileTransferDialog.DOWNLOAD)
        progress_dlg.finished.connect(lambda: self.finished_transfer_to_pc(local_path, progress_dlg.transfer))
        progress_dlg.show()
        self._connection.read_file(remote_path, progress_dlg.transfer)
Exemplo n.º 4
0
    def _save_to_mcu(self):
        name = self.remotePathEdit.text()
        if not name:
            QMessageBox.warning(self, "Invalid name", "Enter correct name for remote file.")
            return

        content = self.codeEdit.toPlainText()
        if not content:
            QMessageBox.warning(self, "Empty file", "Can't write empty file.")
            return

        progress_dlg = FileTransferDialog(FileTransferDialog.UPLOAD)
        progress_dlg.finished.connect(self.mcu_file_saved.emit)
        progress_dlg.show()
        self._connection.write_file(name, content, progress_dlg.transfer)
Exemplo n.º 5
0
    def read_mcu_file(self, idx):
        assert isinstance(idx, QModelIndex)
        model = self.mcuFilesListView.model()
        assert isinstance(model, QStringListModel)
        file_name = model.data(idx, Qt.EditRole)
        if not file_name.endswith(".py"):
            QMessageBox.information(
                self, "Unknown file", "Files without .py ending won't open"
                " in editor, but can still be transferred.")
            return

        progress_dlg = FileTransferDialog(FileTransferDialog.DOWNLOAD)
        progress_dlg.finished.connect(lambda: self.finished_read_mcu_file(
            file_name, progress_dlg.transfer))
        progress_dlg.show()
        self._connection.read_file(file_name, progress_dlg.transfer)
Exemplo n.º 6
0
    def _save_to_mcu(self):
        name = self.remotePathEdit.text()
        if not name:
            QMessageBox.warning(self, "Invalid name",
                                "Enter correct name for remote file.")
            return

        content = self.codeEdit.toPlainText()
        if not content:
            QMessageBox.warning(self, "Empty file", "Can't write empty file.")
            return

        progress_dlg = FileTransferDialog(FileTransferDialog.UPLOAD)
        progress_dlg.finished.connect(self.mcu_file_saved.emit)
        progress_dlg.show()
        self._connection.write_file(name, content, progress_dlg.transfer)
Exemplo n.º 7
0
    def transfer_to_pc(self):
        file_names = self.get_remote_file_selection()
        local_paths = []
        for fn in file_names:
            local_paths.append(self.localPathEdit.text() + "/" + fn)

        callback = self.finished_transfer_to_pc

        progress_dlg = FileTransferDialog(FileTransferDialog.DOWNLOAD)
        # progress_dlg.finished.connect(self.list_mcu_files)
        progress_dlg.show()

        if len(file_names) == 1:
            local_path = self.localPathEdit.text() + "/" + file_names[0]
            progress_dlg.finished.connect(lambda: self.finished_transfer_to_pc(
                local_path, progress_dlg.transfer))
            self._connection.read_file(file_names[0], progress_dlg.transfer)
            return

        # Batch file transfer
        progress_dlg.enable_cancel()
        print(len(file_names))
        progress_dlg.transfer.set_file_count(len(file_names))
        self._connection.read_files(file_names, local_paths,
                                    progress_dlg.transfer, callback)
Exemplo n.º 8
0
    def transfer_to_mcu(self):
        local_file_paths = self.get_local_file_selection()

        progress_dlg = FileTransferDialog(FileTransferDialog.UPLOAD)
        progress_dlg.finished.connect(self.list_mcu_files)
        progress_dlg.show()

        # Handle single file transfer
        if len(local_file_paths) == 1:
            local_path = local_file_paths[0]
            remote_path = self.remoteNameEdit.text()
            with open(local_path, "rb") as f:
                content = f.read()
            self._connection.write_file(remote_path, content, progress_dlg.transfer)
            return

        # Batch file transfer
        progress_dlg.enable_cancel()
        progress_dlg.transfer.set_file_count(len(local_file_paths))
        self._connection.write_files(local_file_paths, progress_dlg.transfer)
Exemplo n.º 9
0
 def upload_transfer_scripts(self):
     progress_dlg = FileTransferDialog(FileTransferDialog.UPLOAD)
     progress_dlg.finished.connect(self.list_mcu_files)
     progress_dlg.show()
     self._connection.upload_transfer_files(progress_dlg.transfer)
Exemplo n.º 10
0
 def upload_transfer_scripts(self):
     progress_dlg = FileTransferDialog(FileTransferDialog.UPLOAD)
     progress_dlg.finished.connect(self.list_mcu_files)
     progress_dlg.show()
     self._connection.upload_transfer_files(progress_dlg.transfer)