Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)