License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+@todo Try gogol's bigger tree view items
+@todo Try gogol's wrapping for messages
+@bug Does special notifiers even work?
+@bug Messaging UI is bad(?)
+@bug Not logging back in on network reconnect
+
@todo Figure out how to integrate with the Maemo contacts app
-@todo Look into an actor system
@bug Session timeouts are bad, possible solutions:
@li For every X minutes, if logged in, attempt login
@li Restructure so code handling login/dial/sms is beneath everything else and login attempts are made if those fail
-@todo Can't text from dialpad (so can't do any arbitrary number texts)
@todo Add logging support to make debugging issues for people a lot easier
"""
self._widgetTree.get_widget("callbackcombo").get_child().set_property('hildon-input-mode', (1 << 4))
except TypeError, e:
warnings.warn(e.message)
- hildon.hildon_helper_set_thumb_scrollbar(self._widgetTree.get_widget('recent_scrolledwindow'), True)
- hildon.hildon_helper_set_thumb_scrollbar(self._widgetTree.get_widget('message_scrolledwindow'), True)
- hildon.hildon_helper_set_thumb_scrollbar(self._widgetTree.get_widget('contacts_scrolledwindow'), True)
+ for scrollingWidget in (
+ 'recent_scrolledwindow',
+ 'message_scrolledwindow',
+ 'contacts_scrolledwindow',
+ "phoneSelectionMessage_scrolledwindow",
+ "phonetypes_scrolledwindow",
+ "smsMessage_scrolledwindow",
+ "smsMessage_scrolledEntry",
+ ):
+ hildon.hildon_helper_set_thumb_scrollbar(self._widgetTree.get_widget(scrollingWidget), True)
gtkMenu = self._widgetTree.get_widget("dialpad_menubar")
menu = gtk.Menu()
self._alarmHandler = alarm_handler.AlarmHandler()
except ImportError:
alarm_handler = None
+ except Exception:
+ with gtk_toolbox.gtk_lock():
+ self._errorDisplay.push_exception()
+ alarm_handler = None
if hildon is not None:
import led_handler
self._ledHandler = led_handler.LedHandler()
- self._ledHandler.off()
# Setup maemo specifics
try:
import gv_backend
import gc_backend
import file_backend
- import evo_backend
import gc_views
try:
),
})
- evoBackend = evo_backend.EvolutionAddressBook()
fsContactsPath = os.path.join(constants._data_path_, "contacts")
fileBackend = file_backend.FilesystemAddressBookFactory(fsContactsPath)
for backendId in (self.GV_BACKEND, self.GC_BACKEND):
addressBooks = [
self._phoneBackends[backendId],
- evoBackend,
fileBackend,
]
mergedBook = gc_views.MergedAddressBook(addressBooks, gc_views.MergedAddressBook.advanced_lastname_sorter)
config.write(configFile)
def _refresh_active_tab(self):
- if self._ledHandler is not None:
- self._ledHandler.off()
-
pageIndex = self._notebook.get_current_page()
if pageIndex == self.CONTACTS_TAB:
self._contactsViews[self._selectedBackendId].update(force=True)
elif pageIndex == self.MESSAGES_TAB:
self._messagesViews[self._selectedBackendId].update(force=True)
+ if pageIndex in (self.RECENT_TAB, self.MESSAGES_TAB):
+ if self._ledHandler is not None:
+ self._ledHandler.off()
+
def _on_close(self, *args, **kwds):
try:
if self._osso is not None:
def _on_notebook_switch_page(self, notebook, page, pageIndex):
self._reset_tab_refresh()
+
+ didRecentUpdate = False
+ didMessagesUpdate = False
+
if pageIndex == self.RECENT_TAB:
- self._recentViews[self._selectedBackendId].update()
+ didRecentUpdate = self._recentViews[self._selectedBackendId].update()
elif pageIndex == self.MESSAGES_TAB:
- self._messagesViews[self._selectedBackendId].update()
+ didMessagesUpdate = self._messagesViews[self._selectedBackendId].update()
elif pageIndex == self.CONTACTS_TAB:
self._contactsViews[self._selectedBackendId].update()
elif pageIndex == self.ACCOUNT_TAB:
self._accountViews[self._selectedBackendId].update()
+ if didRecentUpdate or didMessagesUpdate:
+ if self._ledHandler is not None:
+ self._ledHandler.off()
+
def _set_tab_refresh(self, *args):
pageIndex = self._notebook.get_current_page()
child = self._notebook.get_nth_page(pageIndex)
except ValueError, e:
self._errorDisplay.push_exception()
+ if dialed:
+ self._dialpads[self._selectedBackendId].clear()
+
def _on_dial_clicked(self, number):
assert number, "No number to call"
try:
def run_dialpad():
_lock_file = os.path.join(constants._data_path_, ".lock")
- with gtk_toolbox.flock(_lock_file, 0):
- gtk.gdk.threads_init()
+ #with gtk_toolbox.flock(_lock_file, 0):
+ gtk.gdk.threads_init()
- if hildon is not None:
- gtk.set_application_name(constants.__pretty_app_name__)
- handle = Dialcentral()
- gtk.main()
+ if hildon is not None:
+ gtk.set_application_name(constants.__pretty_app_name__)
+ handle = Dialcentral()
+ gtk.main()
class DummyOptions(object):