def deleteRecords(self): """ Delete selected records """ indexes = self._getWriteableSelectedModelIndexes() if indexes: proxyModel = self.tableView.model() if QtGui.QMessageBox.question( self, 'Delete Records', 'Are you sure you want to delete %d rows?' % len(indexes), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) != QtGui.QMessageBox.Yes: return with utils.showWaitCursor(): if not proxyModel.sourceModel().deleteRecords(indexes): QtGui.QMessageBox.critical( self, 'Database Error', proxyModel.sourceModel().lastError().text(), QtGui.QMessageBox.Ok) # Finally, re-populate accounts and date range in case this has changed self.populateAccounts() self.populateDates() self.setDateRange()
def removeTag(self): """ Delete a tag - ask for confirmation if tag is currently assigned to records """ proxyModel = self.tagView.model() for proxyIndex in self.tagView.selectionModel().selectedRows(): assignedRecords = proxyModel.sourceModel().index(proxyModel.mapToSource(proxyIndex).row(), enum.kTags_RecordIds).data() if assignedRecords: if QtGui.QMessageBox.question( self, 'Delete Tags', 'There are %d records assigned to this tag\nSure you want to delete it?' % len(assignedRecords), QtGui.QMessageBox.Yes|QtGui.QMessageBox.No) != QtGui.QMessageBox.Yes: continue with utils.showWaitCursor(): tagId = proxyModel.sourceModel().index(proxyModel.mapToSource(proxyIndex).row(), enum.kTags_TagId).data() proxyModel.sourceModel().removeTag(tagId) self.tagView.resizeColumnsToContents()
def removeTag(self): """ Delete a tag - ask for confirmation if tag is currently assigned to records """ proxyModel = self.tagView.model() for proxyIndex in self.tagView.selectionModel().selectedRows(): assignedRecords = proxyModel.sourceModel().index( proxyModel.mapToSource(proxyIndex).row(), enum.kTags_RecordIds).data() if assignedRecords: if QtGui.QMessageBox.question( self, 'Delete Tags', 'There are %d records assigned to this tag\nSure you want to delete it?' % len(assignedRecords), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) != QtGui.QMessageBox.Yes: continue with utils.showWaitCursor(): tagId = proxyModel.sourceModel().index( proxyModel.mapToSource(proxyIndex).row(), enum.kTags_TagId).data() proxyModel.sourceModel().removeTag(tagId) self.tagView.resizeColumnsToContents()
def deleteRecords(self): """ Delete selected records """ indexes = self._getWriteableSelectedModelIndexes() if indexes: proxyModel = self.tableView.model() if QtGui.QMessageBox.question( self, 'Delete Records', 'Are you sure you want to delete %d rows?' % len(indexes), QtGui.QMessageBox.Yes|QtGui.QMessageBox.No) != QtGui.QMessageBox.Yes: return with utils.showWaitCursor(): if not proxyModel.sourceModel().deleteRecords(indexes): QtGui.QMessageBox.critical(self, 'Database Error', proxyModel.sourceModel().lastError().text(), QtGui.QMessageBox.Ok) # Finally, re-populate accounts and date range in case this has changed self.populateAccounts() self.populateDates() self.setDateRange()