class SMSEntryWindow(object):
def __init__(self, parent, app, session, errorLog):
- self._contacts = []
self._session = session
self._session.draft.recipientsChanged.connect(self._on_recipients_changed)
self._session.draft.called.connect(self._on_op_finished)
self._characterCountLabel.setText("Letters: %s" % count)
def _update_button_state(self):
- if len(self._contacts) == 0:
+ if self._session.draft.get_num_contacts() == 0:
self._dialButton.setEnabled(False)
self._smsButton.setEnabled(False)
- elif len(self._contacts) == 1:
+ elif self._session.draft.get_num_contacts() == 1:
count = self._smsEntry.toPlainText().size()
if count == 0:
self._dialButton.setEnabled(True)
def _scroll_to_bottom(self):
self._scrollEntry.ensureWidgetVisible(self._smsEntry)
- @QtCore.pyqtSlot()
@misc_utils.log_exception(_moduleLogger)
- def _on_sms_clicked(self):
+ def _on_sms_clicked(self, arg):
message = str(self._smsEntry.toPlainText())
self._session.draft.send(message)
self._smsEntry.setPlainText("")
- @QtCore.pyqtSlot()
@misc_utils.log_exception(_moduleLogger)
- def _on_call_clicked(self):
+ def _on_call_clicked(self, arg):
self._session.draft.call()
self._smsEntry.setPlainText("")
recipientsChanged = QtCore.pyqtSignal()
- def __init__(self, pool):
+ def __init__(self, pool, backend):
QtCore.QObject.__init__(self)
self._contacts = {}
self._pool = pool
+ self._backend = backend
def send(self, text):
assert 0 < len(self._contacts)
def set_selected_number(self, cid, number):
# @note I'm lazy, this isn't firing any kind of signal since only one
# controller right now and that is the viewer
- return self._contacts[cid].numbers
+ assert number in (nWD[0] for nWD in self._contacts[cid].numbers)
+ self._contacts[cid].selectedNumber = number
def clear(self):
oldContacts = self._contacts
def _send(self, numbers, text):
self.sendingMessage.emit()
try:
- self.error.emit("Not Implemented")
+ yield (
+ self._backend[0].send_sms,
+ (numbers, text),
+ {},
+ )
self.sentMessage.emit()
self.clear()
except Exception, e:
def _call(self, number):
self.calling.emit()
try:
- self.error.emit("Not Implemented")
+ yield (
+ self._backend[0].call,
+ (number, ),
+ {},
+ )
self.called.emit()
self.clear()
except Exception, e:
self.cancelling.emit()
try:
yield (
- self._backend.cancel,
+ self._backend[0].cancel,
(),
{},
)
def __init__(self, cachePath = None):
QtCore.QObject.__init__(self)
self._pool = qore_utils.AsyncPool()
- self._backend = None
+ self._backend = []
self._loggedInTime = self._LOGGEDOUT_TIME
self._loginOps = []
self._cachePath = cachePath
self._username = None
- self._draft = Draft(self._pool)
+ self._draft = Draft(self._pool, self._backend)
self._contacts = {}
self._messages = []
else:
cookiePath = None
- if self._username != username or self._backend is None:
+ if self._username != username or not self._backend:
from backends import gv_backend
- self._backend = gv_backend.GVDialer(cookiePath)
+ del self._backend[:]
+ self._backend[0:0] = [gv_backend.GVDialer(cookiePath)]
self._pool.start()
le = concurrent.AsyncLinearExecution(self._pool, self._login)
assert self.state != self.LOGGEDOUT_STATE
self._pool.stop()
self._loggedInTime = self._LOGGEDOUT_TIME
- self._backend.persist()
+ self._backend[0].persist()
self._save_to_cache()
def clear(self):
assert self.state == self.LOGGEDOUT_STATE
- self._backend.logout()
- self._backend = None
+ self._backend[0].logout()
+ del self._backend[0]
self._clear_cache()
self._draft.clear()
oldDnd = self._dnd
try:
yield (
- self._backend.set_dnd,
+ self._backend[0].set_dnd,
(dnd),
{},
)
return self._dnd
def get_account_number(self):
- return self._backend.get_account_number()
+ return self._backend[0].get_account_number()
def get_callback_numbers(self):
# @todo Remove evilness
- return self._backend.get_callback_numbers()
+ return self._backend[0].get_callback_numbers()
def get_callback_number(self):
return self._callback
oldCallback = self._callback
try:
yield (
- self._backend.set_callback_number,
+ self._backend[0].set_callback_number,
(callback),
{},
)
try:
isLoggedIn = False
- if not isLoggedIn and self._backend.is_quick_login_possible():
+ if not isLoggedIn and self._backend[0].is_quick_login_possible():
isLoggedIn = yield (
- self._backend.is_authed,
+ self._backend[0].is_authed,
(),
{},
)
else:
# Force a clearing of the cookies
yield (
- self._backend.logout,
+ self._backend[0].logout,
(),
{},
)
if not isLoggedIn:
isLoggedIn = yield (
- self._backend.login,
+ self._backend[0].login,
(username, password),
{},
)
def _update_contacts(self):
try:
self._contacts = yield (
- self._backend.get_contacts,
+ self._backend[0].get_contacts,
(),
{},
)
def _update_messages(self):
try:
self._messages = yield (
- self._backend.get_messages,
+ self._backend[0].get_messages,
(),
{},
)
def _update_history(self):
try:
self._history = yield (
- self._backend.get_recent,
+ self._backend[0].get_recent,
(),
{},
)
oldDnd = self._dnd
try:
self._dnd = yield (
- self._backend.is_dnd,
+ self._backend[0].is_dnd,
(),
{},
)