예제 #1
0
    def parsing(self):

        fileName = QFileInfo(self.folder_path)

        self.PROJECT = fileName.fileName()[:-4]
        self.TOP_LEVEL_FILE = fileName.fileName()
        self.FAMILY = self.family_name
        self.PART = self.part_num
        self.DIRECTORY = self.folder_path.strip("\\" + fileName.fileName())

        print("PROJECT: " + self.PROJECT)
        print("TOP LEVEL: " + self.TOP_LEVEL_FILE)
        print("FAMILY: " + self.FAMILY)
        print("PART: " + self.PART)
        print("DIRECTORY: " + self.DIRECTORY)

        os.chdir(self.DIRECTORY)

        command1 = "C:\\intelFPGA\\17.1\\quartus\\bin64\\quartus_map " + self.PROJECT + " --source=" + self.TOP_LEVEL_FILE + " --family=" + "\"" + self.FAMILY + "\""
        command2 = "C:\\intelFPGA\\17.1\\quartus\\bin64\\quartus_fit " + self.PROJECT + " --part=" + self.PART + " --pack_register=minimize_area"
        command3 = "C:\\intelFPGA\\17.1\\quartus\\bin64\\quartus_asm " + self.PROJECT
        command4 = "C:\\intelFPGA\\17.1\\quartus\\bin64\\quartus_sta " + self.PROJECT

        self.dropBoxUpdate.emit("Beginning Analysis and Synthesis")
        #self.progressBarUpdate.emit(0, 26)
        self.signalThreadSet.emit(25)
        os.system(command1)
        self.dropBoxUpdate.emit("Analysis and Synthesis: SUCCESSFUL")

        self.dropBoxUpdate.emit("Beginning Fitter")
        #self.progressBarUpdate.emit(25, 51)
        self.signalThreadSet.emit(50)
        os.system(command2)
        self.dropBoxUpdate.emit("Fitter: SUCCESSFUL")

        self.dropBoxUpdate.emit("Beginning Assembler")
        #self.progressBarUpdate.emit(50, 76)
        self.signalThreadSet.emit(75)
        os.system(command3)
        self.dropBoxUpdate.emit("Assembler: SUCCESSFUL")

        self.dropBoxUpdate.emit("Beginning Timing Analysis")
        #self.progressBarUpdate.emit(75, 101)
        self.signalThreadSet.emit(100)
        os.system(command4)
        self.dropBoxUpdate.emit("Timing Analysis: SUCCESSFUL")
        self.signalThreadSet.emit(125)
        self.dropBoxUpdate.emit("DONE")

        self.MoveFiles()

        self.reportSig.emit()
예제 #2
0
    def loadImages(self, fileNames):
        for fileName in fileNames:
            row = self.imagesTable.rowCount()
            self.imagesTable.setRowCount(row + 1)
            fileInfo = QFileInfo(fileName)
            imageName = fileInfo.baseName()
            fileImage2x = fileInfo.absolutePath(
            ) + '/' + imageName + "@2x." + fileInfo.suffix()
            fileInfo2x = QFileInfo(fileImage2x)
            image = QImage(fileName)
            toolTip = "Directory: {}\nFile: {}\nFile@2x: {}\nSize: {}x{}".format(
                QDir.toNativeSeparators(fileInfo.absolutePath()),
                fileInfo.fileName(),
                fileInfo2x.fileName() if fileInfo2x.exists else "<None>",
                image.width(), image.height())
            fileItem = QTableWidgetItem(imageName)
            fileItem.setData(Qt.UserRole, fileName)
            fileItem.setIcon(QIcon(QPixmap.fromImage(image)))
            fileItem.setFlags((fileItem.flags() | Qt.ItemIsUserCheckable)
                              & ~Qt.ItemIsEditable)
            fileItem.setToolTip(toolTip)
            self.imagesTable.setItem(row, 0, fileItem)

            mode = QIcon.Normal
            state = QIcon.Off

            if self.guessModeStateAct.isChecked():
                if "_act" in imageName:
                    mode = QIcon.Active
                elif "_dis" in imageName:
                    mode = QIcon.Disabled
                elif "_sel" in imageName:
                    mode = QIcon.Selected

                if "_on" in imageName:
                    mode = QIcon.On

            modeItem = QTableWidgetItem(IconPreviewArea.iconModeNames()[
                IconPreviewArea.iconModes().index(mode)])
            modeItem.setToolTip(toolTip)
            self.imagesTable.setItem(row, 1, modeItem)
            stateItem = QTableWidgetItem(IconPreviewArea.iconStateNames()[
                IconPreviewArea.iconStates().index(state)])
            stateItem.setToolTip(toolTip)
            self.imagesTable.setItem(row, 2, stateItem)
            self.imagesTable.openPersistentEditor(modeItem)
            self.imagesTable.openPersistentEditor(stateItem)
            fileItem.setCheckState(Qt.Checked)
예제 #3
0
    def openJSONData(self, filePath):
        self.msgBox = QMessageBox()
        self.fly = QApplication.desktop().screen().rect().center(
        ) - self.msgBox.rect().center()
        fileInfo = QFileInfo(filePath)
        fileName = fileInfo.fileName()
        openFile = QFile(filePath)

        openFile.open(QIODevice.ReadOnly | QIODevice.Text)
        if openFile.error() != openFile.NoError:
            self.msgBox.information(
                QDialog().move(self.fly), "{}".format(fileName),
                self.translate("openV2rayJSONFile",
                               "Unable to open the file {}:  {}.").format(
                                   fileName, openFile.errorString()))
            openFile = None
            return

        JSONData = str(openFile.readAll(), "utf-8")
        try:
            JSONData = json.loads(JSONData)
        except ValueError as e:
            self.msgBox.information(
                QDialog().move(self.fly),
                self.translate("openV2rayJSONFile", "Parse JSON Data Error"),
                self.translate("openV2rayJSONFile",
                               "Unable to parse {}:  error:{}.").format(
                                   fileName, e))
            openFile = None
            JSONData = None
            return
        else:
            return JSONData
        openFile.close()
예제 #4
0
 def openfile(self, MainWindow):
     self.PredictButton.setText('Push to Predict')
     self.might_like_label.setText('You might also like...')
     self.MainPlayButton.setIcon(self.toPlay)
     if (self.status == 'playing'):
         self.status = 'stop'
         self.Thread.terminate()
         self.playAuthor = 0
     print('openfile')
     fname = QFileDialog.getOpenFileName(MainWindow, '打开文件', './')
     if fname[0] == '':
         return
     filename = fname[0]  #带完整路径的文件名
     self.TobePredictSong = filename
     fileinfo = QFileInfo(fname[0])
     file_name = fileinfo.fileName()
     #仅文件名
     self.getPicFromMp3(filename)
     self.addSongInfo(self.mainListWidget, self.solveSongInfo(filename))
     audiofile = eyed3.load(filename)
     self.Type = str(audiofile.tag.genre)
     font = QFont()
     font.setPointSize(15)
     font.setFamily('Comic Sans MS')
     self.mainListWidget.setFont(font)
     if (filename[-1] == '3'):  # 如果读入的是一个mp3文件
         sound = AudioSegment.from_mp3(filename)
         self.cursong0 = 'cursong0' + '.wav'
         sound.export('cursong0' + '.wav', format="wav")
     else:
         self.cursong0 = filename
     with open('curpic.jpg', 'rb') as img:
         pix = QPixmap('curpic.jpg')
         self.songImage.setPixmap(pix)
         self.songImage.setScaledContents(True)
예제 #5
0
 def __insertFlashCookie(self, path):
     """
     Private method to insert a Flash cookie into the cache.
     
     @param path Flash cookies path
     @type str
     """
     solFile = QFile(path)
     if not solFile.open(QFile.ReadOnly):
         return
     
     dataStr = ""
     data = bytes(solFile.readAll())
     if data:
         try:
             reader = FlashCookieReader()
             reader.setBytes(data)
             reader.parse()
             dataStr = reader.toString()
         except FlashCookieReaderError as err:
             dataStr = err.msg
     
     solFileInfo = QFileInfo(solFile)
     
     cookie = FlashCookie()
     cookie.contents = dataStr
     cookie.name = solFileInfo.fileName()
     cookie.path = solFileInfo.canonicalPath()
     cookie.size = int(solFile.size())
     cookie.lastModified = solFileInfo.lastModified()
     cookie.origin = self.__extractOriginFrom(path)
     
     self.__flashCookies.append(cookie)
예제 #6
0
    def pBtn_RunClicked(self):
        fi = QFileInfo(self.lnEdit_Prog.text())
        #runName=fi.baseName()
        ns3path = os.path.dirname(fi.dir().path())
        ns3path = os.path.dirname(ns3path)
        self.exepath = os.path.dirname(ns3path)
        routingName = self.cmBox_RoutingName.currentText()
        simSpan = self.cmBox_SimulationSpan.currentText()
        pool = Pool(processes=self.spinBox_processes.value())
        cmds = {}
        for traffic in range(string.atoi(self.lnEdit_loadStart.text()),
                             string.atoi(self.lnEdit_loadEnd.text()),
                             string.atoi(self.lnEdit_loadStep.text())):
            if fi.suffix() == "cpp":
                cmds[
                    traffic] = "./waf --run='{1} --routingName={3} --simulationSpan={2} --InterestsPerSec={0}'".format(
                        traffic, fi.baseName(), simSpan, routingName)
            else:
                cmds[
                    traffic] = "./waf --pyrun='{1} --routingName={3} --simulationSpan={2} --InterestsPerSec={0}'".format(
                        traffic, 'src/ndnSIM/examples/' + fi.fileName(),
                        simSpan, routingName)
            res = pool.apply_async(runJob,
                                   args=(cmds[traffic], self.exepath),
                                   callback=self.invokeRefresh)
            self.listWidget_activeProg.addItem(cmds[traffic])
            #res.wait()
            #print(res.get())
        pool.close()  #关闭线程池,不再接收新任务

        #proc=Process(target=ajob.runJob, args=("./waf --run='ndn-zhangyu-multipath --simulationSpan=50 --InterestsPerSec=50'", os.environ['HOME']+"/ndnSIM20170130/ns-3/"))
        #proc.start()
        #proc.join()
        self.refreshGUI("")
    def seek(self):
        fileName = ""
        dialog = QFileDialog()
        dialog.setFileMode(QFileDialog.AnyFile)
        dialog.setNameFilter("Images (*.png *.gif *.jpg)All (*)")
        dialog.setWindowTitle("Load Image")
        dialog.setOption(QFileDialog.DontUseNativeDialog, True)
        dialog.setAcceptMode(QFileDialog.AcceptOpen)
        if dialog.exec():
            fileName = dialog.selectedFiles()[0]
        if not fileName:
            return

        # copy file to assets dir
        info = QFileInfo(fileName)
        name = info.fileName().replace(" ", "_")
        path = os.path.join(self.site.source_path, "assets", "images", name)
        self.source.setText(path)
        try:
            shutil.copy2(fileName, path)
        except shutil.SameFileError:
            pass  # just ignore
        # also copy file to deploy dir for previews
        dpath = os.path.join(self.site.source_path, self.site.output, "docs",
                             "assets", "images", name)
        shutil.copy2(fileName, dpath)

        self.image.setImage(QImage(path))
        self.contentChanged()
예제 #8
0
	def windowIndicator(self):
		filename = ""
		if self.fileHandler != None:
			filename = self.fileHandler.fileName
		statusbarText = ""
		pluginname = self.completeModel.headerData(1, Qt.Horizontal, Qt.DisplayRole).pluginname
		if pluginname != "":
			statusbarText += "Plugin: " + pluginname + " "
			
		if self.fileHandler != None:
			if filename != "":
				statusbarText += "File: " + filename
				
		self.statusBar.setText(statusbarText)
		if filename != "":
			info = QFileInfo(filename)
			fn = info.fileName()
		else:
			fn = ""
		if fn != "":
			if self.unsavedContent:
				self.setWindowTitle("* " + fn + " - APE")
			else:
				self.setWindowTitle(fn + " - APE")
		else:
			if self.unsavedContent:
				self.setWindowTitle("* APE")
			else:
				self.setWindowTitle("APE")
예제 #9
0
    def generate_pj_info(self):
        """
        triggered by button add
        1. create new project info dict every time
        2. extract project name and address from LineEdit; check if exist and if it is cas and msh file
        3. when second step done, get journal path from get_journal function
        :return: signal_add_pj(dict)
        """
        self.pj_dict = {
            "project_name": '',
            "project_address": '',
            "journal": ''
        }
        if self.checkbox_journal.isChecked():
            case_path = QFileInfo(self.edit_journal_address.text())
        else:
            case_path = QFileInfo(self.edit_project_address.text()
                                  )  # QFileInfo can deeply analyze path info
        accepted_file_type = ['cas', 'msh', 'h5', 'jou']

        if (case_path.exists()) and (case_path.suffix() in accepted_file_type):
            self.pj_dict["project_name"] = case_path.baseName()
            self.pj_dict["project_address"] = case_path.absolutePath()
            self.pj_dict['journal'] = self.get_journal(case_path,
                                                       case_path.fileName())
            self.signal_add_pj.emit(self.pj_dict)
            self.close()
            print('generate new project:', self.pj_dict)
        else:
            QMessageBox.warning(self, self.make_trans('warning'),
                                self.make_trans('no_case_mesh'),
                                QMessageBox.Yes, QMessageBox.Yes)
            print('file not exists')
예제 #10
0
    def downloadV2raycore(self, url=False):
        if (url):
            self.downloadURL = url
        fileInfo = QFileInfo(self.downloadURL.path())
        self.fileName = fileName = fileInfo.fileName()

        if not fileName:
            fileName = "v2ray.zip"

        if QFile.exists(fileName):
            QFile.remove(fileName)

        self.outFile = QFile(fileName)

        if not self.outFile.open(QIODevice.WriteOnly):
            if (self.silentInstall == False):
                self.msgBox.information(
                    QDialog().move(self.fly),
                    self.translate("updateV2ray",
                                   "Download {}").format(fileName),
                    self.translate("updateV2ray",
                                   "Unable to save the file {}: {}.").format(
                                       fileName, self.outFile.errorString()))
            self.outFile = None
            return

        self.httpRequestAborted = False

        if (self.silentInstall == False):
            self.progressDialog = QProgressDialog()
            self.progressDialog.setLabelText(
                self.translate("updateV2ray", "v2ray-core is downloading..."))
            self.progressDialog.canceled.connect(self.cancelDownload)

        self.startRequest(self.downloadURL)
예제 #11
0
    def msg(self):

        directory1 = QFileDialog.getExistingDirectory(self, "选择文件夹", "/")
        print(directory1)  # 打印文件夹路径

        fileName, filetype = QFileDialog.getOpenFileName(
            self, "选择文件", "/", "All Files (*);;Text Files (*.txt)")
        print(fileName, filetype)  # 打印文件全部路径(包括文件名和后缀名)和文件类型
        print(fileName)  # 打印文件全部路径(包括文件名和后缀名)
        fileinfo = QFileInfo(fileName)
        print(fileinfo)  # 打印与系统相关的文件信息,包括文件的名字和在文件系统中位置,文件的访问权限,是否是目录或符合链接,等等。
        file_name = fileinfo.fileName()
        print(file_name)  # 打印文件名和后缀名
        file_suffix = fileinfo.suffix()
        print(file_suffix)  # 打印文件后缀名
        file_path = fileinfo.absolutePath()
        print(file_path)  # 打印文件绝对路径(不包括文件名和后缀名)

        files, ok1 = QFileDialog.getOpenFileNames(self, "多文件选择", "/",
                                                  "所有文件 (*);;文本文件 (*.txt)")
        print(files, ok1)  # 打印所选文件全部路径(包括文件名和后缀名)和文件类型

        fileName2, ok2 = QFileDialog.getSaveFileName(self, "文件保存", "/",
                                                     "图片文件 (*.png);;(*.jpeg)")
        print(fileName2)  # 打印保存文件的全部路径(包括文件名和后缀名)
예제 #12
0
파일: utilities.py 프로젝트: B-Rich/PPQT2
class FileBasedTextStream(QTextStream):
    def __init__(self, qfile):
        super().__init__(qfile)
        self.saved_file = qfile
        self.qfi = None # may never need this
    def rewind(self):
        self.flush()
        self.seek(0)
    def writeLine(self, str):
        self << str
        self << '\n'
    def open_mode(self):
        return self.saved_file.openMode()
    def fullpath(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.canonicalFilePath()
    def folderpath(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.canonicalPath()
    def filename(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.fileName()
    def basename(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.completeBaseName()
    def suffix(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.suffix()
예제 #13
0
    def on_actTree_AddFiles_triggered(self):
        fileList, flt = QFileDialog.getOpenFileNames(self, "选择一个或多个文件", "",
                                                     "Images(*.jpg)")
        #多选文件,返回两个结果,fileList是一个列表类型,存储了所有文件名; flt是设置的文件filter,即"Images(*.jpg)"
        if (len(fileList) < 1):  #fileList是list[str]
            return

        item = self.ui.treeFiles.currentItem()  #当前节点
        if (item.type() == TreeItemType.itImageItem.value
            ):  #若当前节点是图片节点,取其父节点作为父节点
            parItem = item.parent()
        else:  #否则取当前节点为父节点
            parItem = item

        icon = QIcon(":/images/icons/31.ico")
        for i in range(len(fileList)):
            fullFileName = fileList[i]  #带路径文件名
            fileinfo = QFileInfo(fullFileName)
            nodeText = fileinfo.fileName()  #不带路径文件名

            item = QTreeWidgetItem(TreeItemType.itImageItem.value)  #节点类型
            item.setIcon(TreeColNum.colItem.value, icon)  #第1列的图标
            item.setText(TreeColNum.colItem.value, nodeText)  #第1列的文字
            item.setText(TreeColNum.colItemType.value, "Image")  #第2列的文字
            item.setFlags(self.itemFlags)
            item.setCheckState(TreeColNum.colItem.value, Qt.Checked)

            item.setData(TreeColNum.colItem.value, Qt.UserRole,
                         fullFileName)  #关联数据为文件全名
            parItem.addChild(item)

        parItem.setExpanded(True)  #展开节点
예제 #14
0
	def openNet(self):
		filename, filter = QFileDialog.getOpenFileName(self, "Abrir arquivo...", self._lastPath, "XML files (*.xml *.pnml)")
		if filename is None or filename == "":
			return
		if not (filename.endswith(".xml") or filename.endswith(".pnml")):
			filename = filename + ".xml"
		file = QFile(filename)
		if not file.open(QIODevice.ReadOnly):
			return
		doc = QDomDocument("PetriNetDoc")
		ans, errMsg, errLine, errColl = doc.setContent(file)
		if not ans:
			return
		nets = PFSNet.createFromXml(doc, self)
		if len(nets) == 0:
			return
		self.nonempty.emit()
		for net in nets:
			f = QFileInfo(filename)
			net._filename = f.fileName()
			net._filepath = f.absolutePath()
			file.close()
			self._lastPath = net._filepath
			net.undoStack.cleanChanged.connect(self.changeCurrentTabName)
			self._idNet = self._idNet + 1
			i = self._tab.addTab(net, net.getTabName())
			self._tab.setCurrentIndex(i)
			if self._tab.count() == 1:
				self.updateUndoRedoAction()
			self._sm.fixTransitions(net._pages[0]._scene)
			self.nonempty.emit()
			if self._tab.count() == 1:
				self.updateUndoRedoAction()
예제 #15
0
    def dropEvent(self, event):
        if event.mimeData().hasUrls():
            event.setDropAction(Qt.CopyAction)
            event.accept()
            icon = QIcon("loaded.png")
            for url in event.mimeData().urls():
                if url.isLocalFile():
                    fi = QFileInfo(url.toLocalFile())
                    if fi.isDir():
                        it = QDirIterator(
                            fi.fileName(),
                            QDir.Files,
                            QDirIterator.Subdirectories,
                        )
                        while it.hasNext():
                            item = QListWidgetItem()
                            item.setData(PathRole, it.next())
                            self.addItem(item)
                    elif fi.isFile():
                        item = QListWidgetItem()
                        item.setData(PathRole, url.toLocalFile())
                        self.addItem(item)

        else:
            event.ignore()
예제 #16
0
    def __insertFlashCookie(self, path):
        """
        Private method to insert a Flash cookie into the cache.
        
        @param path Flash cookies path
        @type str
        """
        solFile = QFile(path)
        if not solFile.open(QFile.ReadOnly):
            return

        dataStr = ""
        data = bytes(solFile.readAll())
        if data:
            try:
                reader = FlashCookieReader()
                reader.setBytes(data)
                reader.parse()
                dataStr = reader.toString()
            except FlashCookieReaderError as err:
                dataStr = err.msg

        solFileInfo = QFileInfo(solFile)

        cookie = FlashCookie()
        cookie.contents = dataStr
        cookie.name = solFileInfo.fileName()
        cookie.path = solFileInfo.canonicalPath()
        cookie.size = int(solFile.size())
        cookie.lastModified = solFileInfo.lastModified()
        cookie.origin = self.__extractOriginFrom(path)

        self.__flashCookies.append(cookie)
예제 #17
0
    def startSearch(self, query):
        print("search started..", query)
        filters = QDir.Files
        nameFilters = ["*.cpp"]
        iterator = QDirIterator("/home/alexanderb", nameFilters, filters,
                                QDirIterator.Subdirectories)
        while (iterator.hasNext()):
            filePath = iterator.next()
            fileInfo = QFileInfo(filePath)
            currentFile = QFile(filePath)
            currentFile.open(QFile.ReadOnly | QFile.Text)
            fileContents = currentFile.readAll().data().decode('utf8',
                                                               errors='ignore')
            if (fileContents.find(query) != -1):
                qtwItem = QTreeWidgetItem()
                qtwItem.setText(0, fileInfo.fileName())
                qtwItem.setText(1, fileInfo.suffix())
                qtwItem.setText(2, str(fileInfo.size() / 1024))
                qtwItem.setText(3,
                                fileInfo.lastModified().toString("MM/dd/yyyy"))
                qtwItem.setText(4, fileInfo.created().toString("MM/dd/yyyy"))
                qtwItem.setText(5, str("...here is the content..."))
                qtwItem.setText(6, filePath)
                self.qtwItems.append(qtwItem)

                self.match_found.emit(qtwItem)

        self.finished.emit()
예제 #18
0
파일: main.py 프로젝트: 1314liuwei/PyQt5
    def on_action_OpenFile_triggered(self):
        fileList, flt = QFileDialog.getOpenFileNames(self, '选择一个或多个文件', '', 'Images(*.jpg)')
        if len(fileList) < 1:
            return
        
        item = self._ui.treeWidget.currentItem()
        if item.type() == TreeItemType.ItImageItem.value:
            parItem = item.parent()
        else:
            parItem = item

        icon = QIcon(':/icons/icons/31.ico')
        for fullFileName in fileList:
            fileinfo = QFileInfo(fullFileName)
            nodeText = fileinfo.fileName()

            item = QTreeWidgetItem(TreeColNum.ColItem.value)
            item.setIcon(TreeColNum.ColItem.value, icon)
            item.setText(TreeColNum.ColItem.value, nodeText)
            item.setText(TreeColNum.ColItemType.value, 'Image')
            item.setFlags(self.itemFlags)
            item.setCheckState(TreeColNum.ColItem.value, Qt.Checked)
            item.setData(TreeColNum.ColItem.value, Qt.UserRole, fullFileName)
            parItem.addChild(item)

        parItem.setExpanded(True)
예제 #19
0
    def saveTextdata(self, filePath, data):
        outFile = QFileInfo(filePath)

        fileName = outFile.fileName()
        if QFile.exists(fileName):
            QFile.remove(fileName)

        outFile = QFile(outFile.absoluteFilePath())

        outFile.open(QIODevice.WriteOnly | QIODevice.Text)
        if outFile.error() != outFile.NoError:
            self.msgBox.information(
                QDialog().move(self.fly), "{}".format(fileName),
                self.translate("openV2rayJSONFile",
                               "Unable to open the file {}:  {}.").format(
                                   fileName, outFile.errorString()))
            outFile = None
            return False

        outFile.write(codecs.encode(data, "utf-8"))

        if outFile.error() != outFile.NoError:
            self.msgBox.information(
                QDialog().move(self.fly), "{}".format(fileName),
                self.translate("openV2rayJSONFile",
                               "Unable to save the file {}:  {}.").format(
                                   fileName, outFile.errorString()))
            outFile = None
            return False

        outFile.close()
예제 #20
0
    def __setFileName(self, fileName):
        """
        Private method to set the file name to save the download into.
        
        @param fileName name of the file to save into
        @type str
        """
        fileInfo = QFileInfo(fileName)
        WebBrowserWindow.downloadManager().setDownloadDirectory(
            fileInfo.absoluteDir().absolutePath())
        self.filenameLabel.setText(fileInfo.fileName())

        self.__fileName = fileName

        # check file path for saving
        saveDirPath = QFileInfo(self.__fileName).dir()
        if not saveDirPath.exists():
            if not saveDirPath.mkpath(saveDirPath.absolutePath()):
                self.progressBar.setVisible(False)
                self.on_stopButton_clicked()
                self.infoLabel.setText(
                    self.tr("Download directory ({0}) couldn't be created.").
                    format(saveDirPath.absolutePath()))
                self.__setDateTime()
                return

        self.filenameLabel.setText(QFileInfo(self.__fileName).fileName())
예제 #21
0
   def on_actOpen_triggered(self):
      curPath=QDir.currentPath()    #获取当前路径
      filename,flt=QFileDialog.getOpenFileName(self,"打开一个文件",curPath,
                  "地震数据文件(*.txt);;所有文件(*.*)")
      if (filename==""):
         return

      aFile=open(filename,'r')
      allLines=aFile.readlines()  #读取所有行,list类型,每行末尾带有 \n
      aFile.close()
      fileInfo=QFileInfo(filename)
      QDir.setCurrent(fileInfo.absolutePath())
      self.__labFileName.setText("数据文件:"+fileInfo.fileName())
      
      rowCnt=len(allLines)    #行数,即数据点数
      self.__vectData=[0]*rowCnt   #列表
      for i in range(rowCnt):      
         lineText=allLines[i].strip()  #字符串表示的数字
         self.__vectData[i]=float(lineText)
      minV=min(self.__vectData)  #最小值
      self.ui.spinY_Min.setValue(minV)
      maxV=max(self.__vectData)  #最大值
      self.ui.spinY_Max.setValue(maxV)
      
      if self.ui.radioFill_None.isChecked():
         self.do_redrawWave()    #绘制波形曲线
      else:
         self.do_redrawFill()    #绘制有填充的波形
      self.ui.frameSetup.setEnabled(True)
예제 #22
0
 def saveV2raycoreJSONFile(self):
     JSONData = {}
     JSONData["preferences"] = copy.deepcopy(self.preferences)
     JSONData["update"]      = copy.deepcopy(self.update)
     JSONData["configFiles"] = copy.deepcopy(self.configFiles)
     
     outFile = QFileInfo(self.v2rayshellConfigFileName)
     
     fileName = outFile.fileName()
     if QFile.exists(fileName):
         QFile.remove(fileName)
         
     outFile = QFile(fileName)
     
     outFile.open(QIODevice.WriteOnly | QIODevice.Text)
     if outFile.error() != outFile.NoError:
         self.msgBox.information(QDialog().move(self.fly), 
                            "{}".format(fileName), 
                            self.translate("bridgetreasureChest", "Unable to open the file {}:  {}.").format(fileName, 
                                                                      outFile.errorString()))
         outFile = None
         return False
     
     outFile.write(codecs.encode(json.dumps(JSONData, indent = 4, sort_keys = False), "utf-8"))
     
     if outFile.error() != outFile.NoError:
         self.msgBox.information(QDialog().move(self.fly), 
                            "{}".format(fileName), 
                            self.translate("bridgetreasureChest", "Unable to save the file {}:  {}.").format(fileName, 
                                                                      outFile.errorString()))
         outFile = None
         return False
     
     outFile.close()
예제 #23
0
 def saveMusic(self, _file):
     fileinfo = QFileInfo(_file)
     filename = fileinfo.fileName()
     # 缓存二进制数据
     f = open(_file, 'rb')
     self.status.music = f.read()
     f.close()
예제 #24
0
 def saveAccompaniment(self, _file):
     fileinfo = QFileInfo(_file)
     filename = fileinfo.fileName()
     # 缓存二进制数据
     f = open(_file, 'rb')
     self.status.accompaniment = f.read()
     f.close()
예제 #25
0
    def downloadFile(self):
        self.url = QUrl(self.urlLineEdit.text())
        fileInfo = QFileInfo(self.url.path())
        fileName = fileInfo.fileName()

        if not fileName:
            fileName = 'index.html'

        if QFile.exists(fileName):
            ret = QMessageBox.question(self, "HTTP",
                    "There already exists a file called %s in the current "
                    "directory. Overwrite?" % fileName,
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

            if ret == QMessageBox.No:
                return

            QFile.remove(fileName)

        self.outFile = QFile(fileName)
        if not self.outFile.open(QIODevice.WriteOnly):
            QMessageBox.information(self, "HTTP",
                    "Unable to save the file %s: %s." % (fileName, self.outFile.errorString()))
            self.outFile = None
            return

        self.progressDialog.setWindowTitle("HTTP")
        self.progressDialog.setLabelText("Downloading %s." % fileName)
        self.downloadButton.setEnabled(False)

        self.httpRequestAborted = False
        self.startRequest(self.url)
예제 #26
0
 def __init__(self, pluginManager, pluginFileNames, parent=None):
     """
     Constructor
     
     @param pluginManager reference to the plugin manager object
     @param pluginFileNames list of plugin files suggested for
         installation (list of strings)
     @param parent parent of this dialog (QWidget)
     """
     super(PluginInstallWidget, self).__init__(parent)
     self.setupUi(self)
     
     if pluginManager is None:
         # started as external plugin installer
         from .PluginManager import PluginManager
         self.__pluginManager = PluginManager(doLoadPlugins=False)
         self.__external = True
     else:
         self.__pluginManager = pluginManager
         self.__external = False
     
     self.__backButton = self.buttonBox.addButton(
         self.tr("< Back"), QDialogButtonBox.ActionRole)
     self.__nextButton = self.buttonBox.addButton(
         self.tr("Next >"), QDialogButtonBox.ActionRole)
     self.__finishButton = self.buttonBox.addButton(
         self.tr("Install"), QDialogButtonBox.ActionRole)
     
     self.__closeButton = self.buttonBox.button(QDialogButtonBox.Close)
     self.__cancelButton = self.buttonBox.button(QDialogButtonBox.Cancel)
     
     userDir = self.__pluginManager.getPluginDir("user")
     if userDir is not None:
         self.destinationCombo.addItem(
             self.tr("User plugins directory"),
             userDir)
     
     globalDir = self.__pluginManager.getPluginDir("global")
     if globalDir is not None and os.access(globalDir, os.W_OK):
         self.destinationCombo.addItem(
             self.tr("Global plugins directory"),
             globalDir)
     
     self.__installedDirs = []
     self.__installedFiles = []
     
     self.__restartNeeded = False
     
     downloadDir = QDir(Preferences.getPluginManager("DownloadPath"))
     for pluginFileName in pluginFileNames:
         fi = QFileInfo(pluginFileName)
         if fi.isRelative():
             pluginFileName = QFileInfo(
                 downloadDir, fi.fileName()).absoluteFilePath()
         self.archivesList.addItem(pluginFileName)
         self.archivesList.sortItems()
     
     self.__currentIndex = 0
     self.__selectPage()
예제 #27
0
 def checkdownloadFileExists(self, downloadPath):
     if (not downloadPath or not downloadPath): return False
     filePath = QUrl(downloadPath)
     fileInfo = QFileInfo(filePath.path())
     fileName = fileInfo.fileName()
     if QFile.exists(fileName):
         QFile.remove(fileName)
         return True
예제 #28
0
    def _getFileName(self) -> str:
        #Get base file name from a absolute path
        fileInfo = QFileInfo(self._path)

        if not fileInfo.exists():
            return ""
        else:
            return fileInfo.fileName()
예제 #29
0
    def __download(self, item):
        default_path = QDir(item.downloadDirectory()).filePath(
            item.downloadFileName())

        path, _ = QFileDialog.getSaveFileName(self, "Save as", default_path)

        if path is None or len(path) == 0:
            item.cancel()
            return

        info = QFileInfo(path)
        item.setDownloadDirectory(info.dir().path())
        item.setDownloadFileName(info.fileName())
        item.accept()
        self.download_windows.append(
            DownloadProgressWindow(item,
                                   info.dir().path() + "/" + info.fileName()))
예제 #30
0
 def GetFile(self, typeOfFile, suff):
     options = QFileDialog.Options()
     fileName, _ = QFileDialog.getOpenFileName(
         self,
         "Open {} File".format(typeOfFile),
         "",
         "{}".format(suff),
         options=options)
     if fileName:
         if typeOfFile == "any":
             myCipher.fileToBeSigned = fileName
             f = QFileInfo(fileName)
             n = f.fileName()
             file_info = "Informations about the file:\n \n"
             file_info += "Name: " + n + "\n"
             p = f.filePath()
             file_info += "Path: " + p + "\n"
             suf = f.suffix()
             file_info += "Suffix: " + suf + "\n"
             size = f.size()
             file_info += "Size (in bytes): " + str(size) + "\n"
             lastModify = f.lastModified().toPyDateTime()
             file_info += "Date of last change: " + str(lastModify)
             self.fileInfo.setText(file_info)
         elif typeOfFile == "Signed":
             myCipher.userFile = fileName
         elif typeOfFile == "Private key":
             myCipher.privPath = fileName
             with open(fileName, "r") as f:
                 f.seek(4)
                 base64Text = f.readline()
                 decodedBase64D = self.decodeFromBase64(base64Text)
                 myCipher.d = int(decodedBase64D, 10)
                 base64Text2 = f.readline()
                 decodedBase64N = self.decodeFromBase64(base64Text2)
                 myCipher.n = int(decodedBase64N, 10)
         elif typeOfFile == "Public key":
             myCipher.pubPath = fileName
             with open(fileName, "r") as f:
                 f.seek(4)
                 base64Text = f.readline()
                 decodedBase64E = self.decodeFromBase64(base64Text)
                 myCipher.e = int(decodedBase64E, 10)
                 base64Text2 = f.readline()
                 decodedBase64N = self.decodeFromBase64(base64Text2)
                 myCipher.n = int(decodedBase64N, 10)
         elif typeOfFile == "Zip":
             myCipher.zipPath = fileName
             with zipfile.ZipFile(fileName, "r") as z:
                 z.extractall("Extracted_files")
         elif typeOfFile == "Sign":
             myCipher.fileToBeVerified = fileName
             with open(fileName, "r") as f:
                 f.seek(13)
                 base64Text = f.readline()
                 decodedBase64 = self.decodeFromBase64(base64Text)
                 myCipher.toVerifyMessage = list(decodedBase64)
예제 #31
0
def _qfile_to_stream(a_file, I_or_O, encoding=None):
    if not a_file.open(I_or_O | QIODevice.Text) :
        f_info = QFileInfo(a_file) # for the name
        utilities_logger.error('Error {0} ({1}) opening file {2}'.format(
            a_file.error(), a_file.errorString(), f_info.fileName() ) )
        return None
    fbts = FileBasedTextStream(a_file)
    fbts.setCodec(_check_encoding(fbts.filename()) if encoding is None else encoding)
    return fbts
예제 #32
0
    def saveas_mission(self):
        """ Save a mission with new name"""
        if self.mission.num_steps == 0:
            reply = QMessageBox.question(
                None, "Save Mission",
                "You are about to save an empty mission. Do you want to proceed?",
                QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
            if reply == QMessageBox.No:
                return False, None
        elif float(
                self.mission.get_step(self.mission.get_length() - 1).
                get_maneuver().get_position().get_z()) != 0.0:
            # vehicle last waypoint is not at zero depth.
            reply = QMessageBox.question(
                None, "Save Mission",
                "You are about to save and the last waypoint is not at zero depth. "
                "Do you want to proceed?", QMessageBox.Yes | QMessageBox.No,
                QMessageBox.Yes)
            if reply == QMessageBox.No:
                return False, None

        mission_filename, selected_filter = QFileDialog.getSaveFileName(
            None, 'Save mission', self.mission_filename, 'XML (*.xml)')

        if mission_filename != '':
            if selected_filter == "XML (*.xml)":
                file_info = QFileInfo(mission_filename)

                self.mission.write_mission(mission_filename)

                logger.debug(file_info.fileName())
                self.set_mission_name(file_info.fileName())
                self.set_mission_filename(mission_filename)
                self.mission_layer.setName(file_info.baseName())
                self.mission_layer.setCustomProperty("mission_xml",
                                                     self.mission_filename)

                self.saved = True
                self.modified = False

            return True, mission_filename

        else:
            return False, None
예제 #33
0
    def load_auv_config(self):
        """Open dialog to load auv config"""
        configuration_filename, __ = QFileDialog.getOpenFileName(
            self, 'AUV configuration', QDir.homePath(),
            "AUV configuration(*.xml) ;; All files (*.*)", QDir.homePath())
        if configuration_filename:
            file_info = QFileInfo(configuration_filename)
            filename = file_info.fileName()

            self.auv_config_lineEdit.setText(str(filename))
class QuarkNotebookModel:
    """Subdirectories located in the Quark notes directory (defined by its path in
'config.json' under "notes_dir") are represented by this class in the Quark
note manager."""

    def __init__(self, dirPath):
        """Initialize data for the model."""

        self._notebookDir = QFileInfo(dirPath)  #store path to the notebook as a 'QFileInfo' for added flexibility
        q = QFileIconProvider()                 #objec used to create model display icon
        self._icon = q.icon(self._notebookDir)  #create model display icon
        self._notes = []                        #initialize empty list of notes

        notebookPath = self._notebookDir.absoluteFilePath() #get the absolute path to the notebook

        #load all the notes inside this notebook
        for item in sorted(os.listdir(notebookPath)):               #for every item in the notebook

            itemPath = os.path.join(notebookPath, item)         #get absolute path to the item

            if os.path.isfile(itemPath):                        #if the item is a file/note
                self._notes.append( QuarkNoteModel(itemPath, self) )    #append a new note to the notes list


    def noteAt(self, i):
        """Returns the note at a given index."""

        if i >= 0 and i < len(self._notes):
            return self._notes[i]
        else:
            return None


    def noteCount(self):
        """Returns the number notes inside this notebook."""

        return len(self._notes)


    def getName(self):
        """Returns the name of this notebook/directory."""

        return self._notebookDir.fileName()


    def getFilePath(self):
        """Returns path to the note."""

        return self._notebookDir.absoluteFilePath()


    def getIcon(self):
        """Returns the icon to be displayed in the Quark note manager."""

        return self._icon
예제 #35
0
    def addFilesClicked(self):
        newFiles = QFileDialog.getOpenFileNames(self, "Please select the files to add to stack", "",
                                                "Images (*.png *.jpg *.bmp)")
        for file in newFiles[0]:
            entries = self.fileTreeWidget.findItems(file, Qt.MatchCaseSensitive)
            for entry in entries:
                self.fileTreeWidget.takeItem(self.fileTreeWidget.row(entry))
            item = QTreeWidgetItem()

            fileInfo = QFileInfo(file)
            fileInfo.fileName()

            exif = getExifInfo(file)

            item.setText(0, fileInfo.fileName())
            item.setText(1, exif.exposureTime)
            item.setText(2, exif.aperture)
            item.setText(3, exif.ISO)
            item.setText(4, fileInfo.absolutePath())
            self.fileTreeWidget.insertTopLevelItem(self.fileTreeWidget.topLevelItemCount(), item)
예제 #36
0
파일: tab.py 프로젝트: modulexcite/retext
	def getDocumentTitle(self, baseName=False):
		if self.markup and not baseName:
			text = self.editBox.toPlainText()
			try:
				return self.markup.get_document_title(text)
			except Exception:
				self.p.printError()
		if self.fileName:
			fileinfo = QFileInfo(self.fileName)
			basename = fileinfo.completeBaseName()
			return (basename if basename else fileinfo.fileName())
		return self.tr("New document")
예제 #37
0
    def read_file(self, path):
        """Read in a file
        """
        file = QFile(path)
        fileinfo = QFileInfo(file)

        file.open(QIODevice.ReadOnly)
        data = file.readAll()
        codec = QTextCodec.codecForName("UTF-8")

        self.contents = codec.toUnicode(data).rstrip("\n")

        self.filename = fileinfo.fileName()
예제 #38
0
    def open_file(self, filename):
        if not QFile.exists(filename):
            return

        # is file open?
        idx = self.find_tab_by_filename(filename)
        if idx is not None:
            self.main_tabs.setCurrentIndex(idx)
            return

        file = QFile(filename)
        fileinfo = QFileInfo(file)

        self.create_new_editor(fileinfo.fileName(), filename)
예제 #39
0
파일: window.py 프로젝트: zisecheng/retext
	def getDocumentTitle(self, baseName=False):
		markup = self.markups[self.ind]
		realTitle = ''
		if markup and not baseName:
			text = self.editBoxes[self.ind].toPlainText()
			try:
				realTitle = markup.get_document_title(text)
			except Exception:
				self.printError()
		if realTitle:
			return realTitle
		elif self.fileNames[self.ind]:
			fileinfo = QFileInfo(self.fileNames[self.ind])
			basename = fileinfo.completeBaseName()
			return (basename if basename else fileinfo.fileName())
		return self.tr("New document")
예제 #40
0
    def save_as(self, tab_index, filename):
        if not self.is_editor_modified(tab_index):
            return

        sci = self.get_editor(tab_index)
        sci.set_mode_by_filename(filename)

        out_file = QFile(filename)
        out_file.open(QFile.WriteOnly)
        out_file.write(sci.text.encode())
        out_file.close()

        sci.modified = False
        sci.filename = filename

        file_info = QFileInfo(out_file)
        self.main_tabs.setTabText(tab_index, file_info.fileName())
예제 #41
0
class FileBasedTextStream(QTextStream):
    def __init__(self, qfile):
        super().__init__(qfile)
        self.saved_file = qfile
        self.qfi = None # may never need this
    def rewind(self):
        self.flush()
        self.seek(0)
    def writeLine(self, str):
        self << str
        self << '\n'
    def open_mode(self):
        return self.saved_file.openMode()
    def fullpath(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.canonicalFilePath()
    def folderpath(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.canonicalPath()
    def filename(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.fileName()
    def basename(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.completeBaseName()
    def suffix(self):
        if self.qfi is None:
            self.qfi = QFileInfo(self.saved_file)
        return self.qfi.suffix()
    def flush(self):
        super().flush() # make sure text buffer goes to device
        return self.device().flush() # do a real flush
    def show_error( self, action, parent ):
        error_number = self.device().error()
        if error_number : # is not 0, no error
            error_string = self.device().errorString()
            msg_string = 'Error {} ({}) on {}'.format(
                error_number, error_string, action )
            warning_msg( msg_string, self.fullpath(), parent )
class QuarkNoteModel:
    """Files located in the Quark notes directory (defined by its path in
'config.json' under "notes_dir") are represented by this class in the Quark
note manager."""

    def __init__(self, fileInfo, _parent = None):
        """Initializes data for the model."""

        self._noteFile = QFileInfo(fileInfo)
        q = QFileIconProvider()
        self._icon = q.icon(self._noteFile)
        self._parent = _parent


    def getIcon(self):
        """Returns the icon to be displayed in the Quark note manager."""

        return self._icon


    def getName(self):
        """Returns the file name of the note."""

        return self._noteFile.fileName()


    def getFilePath(self):
        """Returns path to the note."""

        return self._noteFile.absoluteFilePath()


    def getParent(self):
        """Returns the parent notebook."""

        return self._parent


    def setNewParent(self, newParent):
        """Set a new parent for the note."""

        self._parent = newParent
예제 #43
0
파일: spectra.py 프로젝트: scholi/pySPM
 def open(self, t_filename=None):
     settings = QSettings(QSettings.IniFormat, QSettings.UserScope, "pySPM", "pySPM")
     if t_filename is None:
         home = QDir.cleanPath(os.getenv("HOMEPATH"))
         path = settings.value("lastPath", home)
         self.filename = QFileDialog.getOpenFileName(None, "Choose measurement file", path, "*.ita")
     else:
         self.filename = t_filename
     
     check_file = QFileInfo(self.filename)
     self.setWindowTitle(check_file.fileName())
     if not check_file.exists() or  not check_file.isFile():
         return
     
     settings.setValue("lastPath", check_file.path())
     self.ita = pySPM.ITA(self.filename)
     self.t, self.S = self.ita.getSpectrum(time=True)
     self.sf, self.k0 = self.ita.get_mass_cal()
     self.mass = pySPM.utils.time2mass(self.t, self.sf, self.k0)
     self.spec = self.ax.plot(self.mass, self.S)[0]
     SatLevel = self.ita.size['pixels']['x']*self.ita.size['pixels']['y']*self.ita.Nscan
     self.sat_level = self.ax.axhline(SatLevel, color='r')
     if 'pySPM' in self.ita.root.goto("MassScale"):
         self.MassCal = []
         N = self.ita.root.goto("MassScale/pySPM/N").get_ulong()
         for i in range(N):
             elt = self.ita.root.goto("MassScale/pySPM/"+str(i)+"/elt").value.decode('utf8')
             mass = self.ita.root.goto("MassScale/pySPM/"+str(i)+"/mass").get_double()
             time = self.ita.root.goto("MassScale/pySPM/"+str(i)+"/time").get_double()
             self.MassCal.append(dict(elt=elt, mass=mass, time=time))
     else:
         self.MassCal = []
         for x in self.ita.root.goto("MassScale/calib"):
             if x.name == 'assign':
                 self.MassCal.append({'elt':x.get_string()})
             if x.name == 'mcp':
                 mcp = struct.unpack("<10d", x.value)
                 self.MassCal[-1]['time'] = mcp[0]
                 self.MassCal[-1]['mass']  =  mcp[1]
     self.DoMassCal()                    
예제 #44
0
 def getBaseName(self):
     if self._fileName:
         fileinfo = QFileInfo(self._fileName)
         basename = fileinfo.completeBaseName()
         return basename if basename else fileinfo.fileName()
     return self.tr("New document")
예제 #45
0
 def __getFileName(self):
     """
     Private method to get the file name to save to from the user.
     """
     if self.__gettingFileName:
         return
     
     import Helpviewer.HelpWindow
     downloadDirectory = Helpviewer.HelpWindow.HelpWindow\
         .downloadManager().downloadDirectory()
     
     if self.__fileName:
         fileName = self.__fileName
         originalFileName = self.__originalFileName
         self.__toDownload = True
         ask = False
     else:
         defaultFileName, originalFileName = \
             self.__saveFileName(downloadDirectory)
         fileName = defaultFileName
         self.__originalFileName = originalFileName
         ask = True
     self.__autoOpen = False
     if not self.__toDownload:
         from .DownloadAskActionDialog import DownloadAskActionDialog
         url = self.__reply.url()
         dlg = DownloadAskActionDialog(
             QFileInfo(originalFileName).fileName(),
             self.__reply.header(QNetworkRequest.ContentTypeHeader),
             "{0}://{1}".format(url.scheme(), url.authority()),
             self)
         if dlg.exec_() == QDialog.Rejected or dlg.getAction() == "cancel":
             self.progressBar.setVisible(False)
             self.__reply.close()
             self.on_stopButton_clicked()
             self.filenameLabel.setText(
                 self.tr("Download canceled: {0}").format(
                     QFileInfo(defaultFileName).fileName()))
             self.__canceledFileSelect = True
             return
         
         if dlg.getAction() == "scan":
             self.__mainWindow.requestVirusTotalScan(url)
             
             self.progressBar.setVisible(False)
             self.__reply.close()
             self.on_stopButton_clicked()
             self.filenameLabel.setText(
                 self.tr("VirusTotal scan scheduled: {0}").format(
                     QFileInfo(defaultFileName).fileName()))
             self.__canceledFileSelect = True
             return
         
         self.__autoOpen = dlg.getAction() == "open"
         if PYQT_VERSION_STR >= "5.0.0":
             from PyQt5.QtCore import QStandardPaths
             tempLocation = QStandardPaths.standardLocations(
                 QStandardPaths.TempLocation)[0]
         else:
             from PyQt5.QtGui import QDesktopServices
             tempLocation = QDesktopServices.storageLocation(
                 QDesktopServices.TempLocation)
         fileName = tempLocation + '/' + \
             QFileInfo(fileName).completeBaseName()
     
     if ask and not self.__autoOpen and self.__requestFilename:
         self.__gettingFileName = True
         fileName = E5FileDialog.getSaveFileName(
             None,
             self.tr("Save File"),
             defaultFileName,
             "")
         self.__gettingFileName = False
         if not fileName:
             self.progressBar.setVisible(False)
             self.__reply.close()
             self.on_stopButton_clicked()
             self.filenameLabel.setText(
                 self.tr("Download canceled: {0}")
                     .format(QFileInfo(defaultFileName).fileName()))
             self.__canceledFileSelect = True
             return
     
     fileInfo = QFileInfo(fileName)
     Helpviewer.HelpWindow.HelpWindow.downloadManager()\
         .setDownloadDirectory(fileInfo.absoluteDir().absolutePath())
     self.filenameLabel.setText(fileInfo.fileName())
     
     self.__output.setFileName(fileName + ".part")
     self.__fileName = fileName
     
     # check file path for saving
     saveDirPath = QFileInfo(self.__fileName).dir()
     if not saveDirPath.exists():
         if not saveDirPath.mkpath(saveDirPath.absolutePath()):
             self.progressBar.setVisible(False)
             self.on_stopButton_clicked()
             self.infoLabel.setText(self.tr(
                 "Download directory ({0}) couldn't be created.")
                 .format(saveDirPath.absolutePath()))
             return
     
     self.filenameLabel.setText(QFileInfo(self.__fileName).fileName())
     if self.__requestFilename:
         self.__readyRead()