def save_challenge(self, filename=None): # Saves the challenge data to a json file. if not filename: filename = QFileDialog().getSaveFileName( self, 'Save challenge', self.exportPath, 'Anime Challenge List Object(*.aclo)')[0] if not filename: return False self.exportPath = filename.rstrip(filename.split('/')[-1]) entries = {} for k in range(0, self.challengeEntries.count()): name = self.challengeEntries.item(k).text() data = self.challengeEntries.item(k).data(Qt.UserRole) challengeData = {} for attr in data.savedAttributesList: challengeData[attr] = getattr(data, attr, None) entries[name] = challengeData savedata = { 'name': self.challengeName.text(), 'username': self.username.text(), 'entryNumbers': self.entryNumbers, 'exportPath': self.exportPath, 'startDate': self.startDate.text(), 'entries': entries } with open(filename, 'w') as f: json.dump(savedata, f, indent=4) return True
def export_image(self): # Asks for a save location and name and saves the current entry image. data = self.challengeEntries.currentItem().data(Qt.UserRole) filename = QFileDialog().getSaveFileName(self, 'Save image', self.exportPath, 'PNG(*.png)')[0] if not filename: return self.exportPath = filename.rstrip(filename.split('/')[-1]) image = data.image.build_full_image() image.save(filename, 'png')