qhavesex: Implement the 'Notes' tab for taking notes about a contact
This commit is contained in:
parent
8afe645b0b
commit
b8adf34e52
2 changed files with 86 additions and 1 deletions
|
|
@ -35,6 +35,7 @@ from .ui.contacts_ui import Ui_Contacts
|
||||||
from .ui.contact_thread_ui import Ui_ContactThread
|
from .ui.contact_thread_ui import Ui_ContactThread
|
||||||
from .ui.thread_message_ui import Ui_ThreadMessage
|
from .ui.thread_message_ui import Ui_ThreadMessage
|
||||||
from .ui.profile_ui import Ui_Profile
|
from .ui.profile_ui import Ui_Profile
|
||||||
|
from .ui.notes_ui import Ui_Notes
|
||||||
|
|
||||||
class ThreadMessage(QFrame):
|
class ThreadMessage(QFrame):
|
||||||
"""
|
"""
|
||||||
|
|
@ -194,6 +195,9 @@ class ContactThread(QWidget):
|
||||||
QMessageBox.critical(self, self.tr('Error while posting reply'),
|
QMessageBox.critical(self, self.tr('Error while posting reply'),
|
||||||
content, QMessageBox.Ok)
|
content, QMessageBox.Ok)
|
||||||
self.process_reply = None
|
self.process_reply = None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ContactProfile(QWidget):
|
class ContactProfile(QWidget):
|
||||||
|
|
||||||
|
|
@ -334,6 +338,54 @@ class ContactProfile(QWidget):
|
||||||
text += '<br /><font color=#ff0000><i>(Hidden photo)</i></font>'
|
text += '<br /><font color=#ff0000><i>(Hidden photo)</i></font>'
|
||||||
self.ui.photoUrlLabel.setText(text)
|
self.ui.photoUrlLabel.setText(text)
|
||||||
|
|
||||||
|
class ContactNotes(QWidget):
|
||||||
|
""" Widget for storing notes about a contact """
|
||||||
|
|
||||||
|
def __init__(self, weboob, contact, parent=None):
|
||||||
|
QWidget.__init__(self, parent)
|
||||||
|
self.ui = Ui_Notes()
|
||||||
|
self.ui.setupUi(self)
|
||||||
|
|
||||||
|
self.weboob = weboob
|
||||||
|
self.contact = contact
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
def _getNotes_cb(self, backend, data):
|
||||||
|
if not backend:
|
||||||
|
self.process = None
|
||||||
|
return
|
||||||
|
|
||||||
|
self.ui.textEdit.setText(data)
|
||||||
|
|
||||||
|
|
||||||
|
def _getNotes_eb(self, backend, error, backtrace):
|
||||||
|
content = unicode(self.tr('Unable to load notes:\n%s\n')) % to_unicode(error)
|
||||||
|
if logging.root.level == logging.DEBUG:
|
||||||
|
content += '\n%s\n' % to_unicode(backtrace)
|
||||||
|
QMessageBox.critical(self, self.tr('Error while loading notes'),
|
||||||
|
content, QMessageBox.Ok)
|
||||||
|
|
||||||
|
def saveNotes(self):
|
||||||
|
text = unicode(self.ui.textEdit.toPlainText())
|
||||||
|
|
||||||
|
self.process = QtDo(self.weboob, self._saveNotes_cb, self._saveNotes_eb)
|
||||||
|
self.process.do('save_notes', self.contact.id, text, backends=(self.contact.backend,))
|
||||||
|
|
||||||
|
def _saveNotes_cb(self, backend, data):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def _saveNotes_eb(self, backend, error, backtrace):
|
||||||
|
content = unicode(self.tr('Unable to save notes:\n%s\n')) % to_unicode(error)
|
||||||
|
if logging.root.level == logging.DEBUG:
|
||||||
|
content += '\n%s\n' % to_unicode(backtrace)
|
||||||
|
QMessageBox.critical(self, self.tr('Error while saving notes'),
|
||||||
|
content, QMessageBox.Ok)
|
||||||
|
|
||||||
class IGroup(object):
|
class IGroup(object):
|
||||||
def __init__(self, weboob, id, name):
|
def __init__(self, weboob, id, name):
|
||||||
self.id = id
|
self.id = id
|
||||||
|
|
@ -490,7 +542,7 @@ class ContactsWidget(QWidget):
|
||||||
if backend.has_caps(ICapChat):
|
if backend.has_caps(ICapChat):
|
||||||
self.ui.tabWidget.addTab(QWidget(), self.tr('Chat'))
|
self.ui.tabWidget.addTab(QWidget(), self.tr('Chat'))
|
||||||
self.ui.tabWidget.addTab(QWidget(), self.tr('Calendar'))
|
self.ui.tabWidget.addTab(QWidget(), self.tr('Calendar'))
|
||||||
self.ui.tabWidget.addTab(QWidget(), self.tr('Notes'))
|
self.ui.tabWidget.addTab(ContactNotes(self.weboob, self.contact), self.tr('Notes'))
|
||||||
|
|
||||||
def urlClicked(self):
|
def urlClicked(self):
|
||||||
url = unicode(self.ui.urlEdit.text())
|
url = unicode(self.ui.urlEdit.text())
|
||||||
|
|
@ -520,3 +572,5 @@ class ContactsWidget(QWidget):
|
||||||
content += u'\n%s\n' % to_unicode(backtrace)
|
content += u'\n%s\n' % to_unicode(backtrace)
|
||||||
QMessageBox.critical(self, self.tr('Error while getting contact'),
|
QMessageBox.critical(self, self.tr('Error while getting contact'),
|
||||||
content, QMessageBox.Ok)
|
content, QMessageBox.Ok)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
31
weboob/applications/qhavesex/ui/notes.ui
Normal file
31
weboob/applications/qhavesex/ui/notes.ui
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>Notes</class>
|
||||||
|
<widget class="QWidget" name="Notes">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>430</width>
|
||||||
|
<height>323</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QTextEdit" name="textEdit"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="saveButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>Save</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue