def open_dir(self): """ show open dir dialog and open repo """ last_dir = self.settings.value('last_fileopen_dir', '') fd = QFileDialog(self, 'Open .git', last_dir) fd.setFileMode(QFileDialog.DirectoryOnly) fd.setFilter( QDir.Filters(QDir.Dirs | QDir.Hidden | QDir.NoDot | QDir.NoDotDot)) while True: if not fd.exec(): return self.dir_name = fd.selectedFiles()[0] parent = os.path.dirname(self.dir_name) self.settings.setValue('last_fileopen_dir', parent) self.settings.setValue('last_opened_repo', self.dir_name) try: pygit2.Repository(self.dir_name) break except pygit2.GitError: QMessageBox(self, text='Cannot open repo: ' + self.dir_name).exec() self.open_repo()
def sizeString(self, fInfo): if (not fInfo.isDir()): return "" dir = QDir(fInfo.filePath()) fileFilters = QDir.Filters(QDir.Files | QDir.System | QDir.Hidden) size = 0 for filePath in dir.entryList(fileFilters): fi = QFileInfo(dir, filePath) size += fi.size() if (size > 1024 * 1024 * 10): return str("%4.1f" % (size / (1024 * 1024))) + 'MB' if (size > 1024 * 10): return str("%4.1f" % (size / 1024)) + 'KB' return str(size)