fix tabs, disable widgets during load/save, don't crash when there isn't any notes

This commit is contained in:
Romain Bignon 2011-12-04 11:26:57 +01:00
commit 3cd28382e8

View file

@ -342,28 +342,33 @@ class ContactNotes(QWidget):
""" Widget for storing notes about a contact """ """ Widget for storing notes about a contact """
def __init__(self, weboob, contact, parent=None): def __init__(self, weboob, contact, parent=None):
QWidget.__init__(self, parent) QWidget.__init__(self, parent)
self.ui = Ui_Notes() self.ui = Ui_Notes()
self.ui.setupUi(self) self.ui.setupUi(self)
self.weboob = weboob self.weboob = weboob
self.contact = contact self.contact = contact
self.process = QtDo(self.weboob, self._getNotes_cb, self._getNotes_eb) self.ui.textEdit.setEnabled(False)
self.process.do('get_notes', self.contact.id, backends=(self.contact.backend,)) self.ui.saveButton.setEnabled(False)
self.process = QtDo(self.weboob, self._getNotes_cb, self._getNotes_eb)
self.process.do('get_notes', self.contact.id, backends=(self.contact.backend,))
self.connect(self.ui.saveButton, SIGNAL('clicked()'), self.saveNotes) self.connect(self.ui.saveButton, SIGNAL('clicked()'), self.saveNotes)
def _getNotes_cb(self, backend, data): def _getNotes_cb(self, backend, data):
if not backend: if not backend or not data:
self.process = None self.process = None
self.ui.textEdit.setEnabled(True)
self.ui.saveButton.setEnabled(True)
return return
self.ui.textEdit.setText(data) self.ui.textEdit.setText(data)
def _getNotes_eb(self, backend, error, backtrace): def _getNotes_eb(self, backend, error, backtrace):
self.ui.textEdit.setEnabled(True)
self.ui.saveButton.setEnabled(True)
content = unicode(self.tr('Unable to load notes:\n%s\n')) % to_unicode(error) content = unicode(self.tr('Unable to load notes:\n%s\n')) % to_unicode(error)
if logging.root.level == logging.DEBUG: if logging.root.level == logging.DEBUG:
content += '\n%s\n' % to_unicode(backtrace) content += '\n%s\n' % to_unicode(backtrace)
@ -372,14 +377,20 @@ class ContactNotes(QWidget):
def saveNotes(self): def saveNotes(self):
text = unicode(self.ui.textEdit.toPlainText()) text = unicode(self.ui.textEdit.toPlainText())
self.ui.saveButton.setEnabled(False)
self.ui.textEdit.setEnabled(False)
self.process = QtDo(self.weboob, self._saveNotes_cb, self._saveNotes_eb) self.process = QtDo(self.weboob, self._saveNotes_cb, self._saveNotes_eb)
self.process.do('save_notes', self.contact.id, text, backends=(self.contact.backend,)) self.process.do('save_notes', self.contact.id, text, backends=(self.contact.backend,))
def _saveNotes_cb(self, backend, data): def _saveNotes_cb(self, backend, data):
self.ui.saveButton.setEnabled(True)
self.ui.textEdit.setEnabled(True)
pass pass
def _saveNotes_eb(self, backend, error, backtrace): def _saveNotes_eb(self, backend, error, backtrace):
self.ui.saveButton.setEnabled(True)
self.ui.textEdit.setEnabled(True)
content = unicode(self.tr('Unable to save notes:\n%s\n')) % to_unicode(error) content = unicode(self.tr('Unable to save notes:\n%s\n')) % to_unicode(error)
if logging.root.level == logging.DEBUG: if logging.root.level == logging.DEBUG:
content += '\n%s\n' % to_unicode(backtrace) content += '\n%s\n' % to_unicode(backtrace)