def sentOfflineUpdateEventHandler(self, result): """Gestisce il risultato dell'invio dei messaggi in coda""" close = None errors = [] remove = [] for i,hadError,data in result: if hadError: errors.append(u"Messaggio diretto a " + data["dest"] + \ u" utilizzando "+data["sender"]) else: remove.append(i) remove.sort(reverse=True) for i in remove: self.listBox.takeItem(i) if len(errors) == 0: self.mf.messageLabel.setText("SMS INVIATI!") self.mf.setIcon(getOkData()) QMessageBox.information(self, "Messaggi Inviati", u"Tutti i messaggi in coda sono stati\n"+\ u"inviati correttamente") close = True else: message = u"Si è verificato un errore nell'invio di alcuni " +\ u"messaggi:\n" for error in errors: message += error+u"\n" self.mf.messageLabel.setText("Alcuni SMS non sono stati inviati.") self.mf.setIcon(getErrorData()) QMessageBox.warning(self, "Errore", message) self.mf.gauge.hide() self.mf.bitmap.show() self.mf.messageLabel.show() self.mf.sendButton.setEnabled(True) self.mf.destinationComboBox.setEnabled(True) self.mf.addButton.setEnabled(True) self.mf.deleteButton.setEnabled(True) self.mf.messageTextCtrl.setEnabled(True) self.mf.senderRadioBox.setEnabled(True) self.mf.check.setEnabled(True) self.mf.sendButton.setDefault(True) self.mf.updateSentMessages() self.mf.setCursor(self.mf.normalcursor) self.delayedSend.setEnabled(True) self.sendButton.setEnabled(not self.delayedSend.isChecked()) self.removeButton.setEnabled(True) self.listBox.setEnabled(True) if close: self.done(1)
def sentUpdateEventHandler(self, hadError): """Gestisce l'aggiornameto della grafica a fine invio di un singolo SMS""" if hadError: self.setIcon(getErrorData()) self.messageLabel.setText(hadError) if self.traymessage: self.traymessage( u"Messaggio NON inviato", u"Messaggio NON inviato utilizzando " + self.getSender() + u"\ndiretto a " + unicode(self.destinationComboBox.currentText()), QSystemTrayIcon.Warning, 2000, ) else: self.messageLabel.setText("SMS INVIATO!") self.setIcon(getOkData()) if self.traymessage: self.traymessage( u"Messaggio inviato", u"Messaggio inviato correttamente tramite " + self.getSender() + u"\ndiretto a " + unicode(self.destinationComboBox.currentText()), ) # cancella il messaggio salvato if self.pm.isLastUsedAvailable("message"): self.pm.unsetField("lastused", "message") self.gauge.hide() self.bitmap.show() self.messageLabel.show() self.stopButton.hide() self.sendButton.show() self.destinationComboBox.setEnabled(True) self.addButton.setEnabled(True) self.deleteButton.setEnabled(True) self.messageTextCtrl.setEnabled(True) self.senderRadioBox.setEnabled(True) self.check.setEnabled(True) self.sendButton.setDefault(True) self.updateSentMessages() self.setCursor(self.normalcursor)
def updateLabel(self, event=None): """Aggiorna la barra dei messaggi segnalando all'utente eventuali problemi. Se vengono rilevati problemi, disabilita il bottone Invia""" canSend = True message = "" destString = unicode(self.destinationComboBox.currentText()) # 1- Segnalazioni di errore text = unicode(self.messageTextCtrl.toPlainText()) if destString == "": message = "Inserisci un destinatario" canSend = False elif self.isNumber(destString) == False and self.pm.isInContacts(destString) == False: message = "Non in rubrica" canSend = False elif self.isNumber(destString) and self.isValid(destString) == False: message = "Inserisci un numero di cellulare" canSend = False elif text == "": message = "Inserisci del testo nel messaggio" canSend = False # 2- Segnalazioni secondarie (da mostrare se non ci sono # errori if canSend: if not event or event == True: # 2.1- L'utente ha appena scritto un carattere del mesaggio # o ha selezionato un nuovo sender sender = Sender.getPlugins()[self.getSender()] texts = sender.splitText(sender.replaceNonAscii(text)) textCount = len(texts) lastTextCharCount = len(texts[-1]) remainingCharCount = sender.maxLength - lastTextCharCount newCharCount = sender.newCharCount(text) if textCount == 1: message = "Scritto un messaggio: " else: message = "Scritti " + str(textCount) + " messaggi: " if remainingCharCount == 0: message += "messaggio riempito." else: message += "mancano " + str(remainingCharCount) + " caratteri a riempire il messaggio" if textCount > 1 and not newCharCount == sender.maxLength: message += "\ne togli " + str(newCharCount) + " caratteri pe" + "r scrivere un messaggio in meno." else: # 2.2- L'utente ha appena scritto un carattere del destinatario if self.pm.isInContacts(destString): message = "In rubrica con il numero " + self.pm.lookup(destString) elif self.isValid(destString): message = "Puoi salvare questo numero in rubrica" # aggiorno il label sent sender self.updateSentMessages() # Aggiorno la grafica self.messageLabel.setText(message) self.gauge.hide() if canSend: self.setIcon(getOkData()) else: self.setIcon(getErrorData()) self.sendButton.setEnabled(canSend)