From: epage Date: Wed, 2 Jul 2008 01:46:07 +0000 (+0000) Subject: * Improved error reporting X-Git-Url: http://git.maemo.org/git/?a=commitdiff_plain;h=46e54d83fd6542ab814659d1ef3643d944fe04b6;hp=ed16e86811f514c166a26c6baa948351aa6940ab;p=gc-dialer * Improved error reporting * Preliminary support for 770 (not as good as the 770 branch yet) * Made the build_script.sh let you choose platforms to build for git-svn-id: file:///svnroot/gc-dialer/trunk@46 c39d3808-3fe2-4d86-a59f-b7f623ee9f21 --- diff --git a/build_script.sh b/build_script.sh index cae9096..bd1e089 100755 --- a/build_script.sh +++ b/build_script.sh @@ -1,5 +1,21 @@ #!/bin/sh +PLATFORM="$1" +if [ "$PLATFORM" != "desktop" -a "$PLATFORM" != "os2007" -a "$PLATFORM" != "os2008" ]; then + echo "Invalid platform parameter, defaulting to OS 2008" + PLATFORM="os2008" +else + echo "Building for $PLATFORM" +fi + +LEGACY_GLADE="0" +if [ "$PLATFORM" = "os2007" ]; then + LEGACY_GLADE="1" +fi +BUILD_BASE=./build-$PLATFORM + + + # Create PyPackager directory structure from the original files # Please make sure the following files are in this directory before # running this script @@ -13,29 +29,42 @@ # gcbackend.py # browser_emu.py -# The script creates the directories and concatenates the .py into a -# single python script -mkdir -p build/usr/share/icons/hicolor/scalable/hildon -mkdir -p build/usr/share/icons/hicolor/26x26/hildon -mkdir -p build/usr/share/icons/hicolor/64x64/hildon -mkdir -p build/usr/share/applications/hildon -mkdir -p build/usr/local/bin -mkdir -p build/usr/local/lib +mkdir -p $BUILD_BASE/usr/share/icons/hicolor/scalable/hildon +mkdir -p $BUILD_BASE/usr/share/icons/hicolor/26x26/hildon +mkdir -p $BUILD_BASE/usr/share/icons/hicolor/64x64/hildon +mkdir -p $BUILD_BASE/usr/share/applications/hildon +mkdir -p $BUILD_BASE/usr/local/bin +mkdir -p $BUILD_BASE/usr/local/lib + +cp gc_dialer/gc_dialer_256.png $BUILD_BASE/usr/share/icons/hicolor/scalable/hildon/gc_dialer.png +cp gc_dialer/gc_dialer_64.png $BUILD_BASE/usr/share/icons/hicolor/64x64/hildon/gc_dialer.png +cp gc_dialer/gc_dialer_26.png $BUILD_BASE/usr/share/icons/hicolor/26x26/hildon/gc_dialer.png + +cp gc_dialer/gc_dialer.desktop $BUILD_BASE/usr/share/applications/hildon + +cp gc_dialer/gc_dialer.xml $BUILD_BASE/usr/local/lib + + +#Construct the program by cat-ing all the python files together +echo "#!/usr/bin/python" > $BUILD_BASE/usr/local/bin/gc_dialer.py +#echo "from __future__ import with_statement" >> $BUILD_BASE/usr/local/bin/gc_dialer.py +cat gc_dialer/gc_dialer.py gc_dialer/gcbackend.py gc_dialer/browser_emu.py | grep -e '^import ' | sort -u >> $BUILD_BASE/usr/local/bin/gc_dialer.py +cat gc_dialer/browser_emu.py gc_dialer/gcbackend.py gc_dialer/gc_dialer.py | grep -v 'browser_emu' | grep -v 'gcbackend' | grep -v "#!" >> $BUILD_BASE/usr/local/bin/gc_dialer.py +chmod 755 $BUILD_BASE/usr/local/bin/gc_dialer.py -cp gc_dialer/gc_dialer_256.png build/usr/share/icons/hicolor/scalable/hildon/gc_dialer.png -cp gc_dialer/gc_dialer_64.png build/usr/share/icons/hicolor/64x64/hildon/gc_dialer.png -cp gc_dialer/gc_dialer_26.png build/usr/share/icons/hicolor/26x26/hildon/gc_dialer.png -cp gc_dialer/gc_dialer.desktop build/usr/share/applications/hildon -cp gc_dialer/gc_dialer.xml build/usr/local/lib +#Perform platform specific work +if [ "$PLATFORM" != "desktop" ]; then + echo " Generic Maemo Support" + # Compress whitespace for 30% savings, make sure we are a HildonWindow + sed -i 's/^[ \t]*//;s/[ \t]*$//;s/GtkWindow/HildonWindow/' $BUILD_BASE/usr/local/lib/gc_dialer.xml +fi -# Compress whitespace for 30% savings, make sure we are a HildonWindow -sed -i 's/^[ \t]*//;s/[ \t]*$//;s/GtkWindow/HildonWindow/' build/usr/local/lib/gc_dialer.xml +if [ "$LEGACY_GLADE" = "1" ]; then + echo " Legacy version of Glade" + sed -i 's/interface/glade-interface/;s/object/widget/' $BUILD_BASE/usr/local/lib/gc_dialer.xml + sed -i 's/get_object/get_widget/;s/connect_signals/signal_autoconnect/' $BUILD_BASE/usr/local/bin/gc_dialer.py +fi -echo "#!/usr/bin/python" > build/usr/local/bin/gc_dialer.py -#echo "from __future__ import with_statement" >> build/usr/local/bin/gc_dialer.py -cat gc_dialer/gc_dialer.py gc_dialer/gcbackend.py gc_dialer/browser_emu.py | grep -e '^import ' | sort -u >> build/usr/local/bin/gc_dialer.py -cat gc_dialer/browser_emu.py gc_dialer/gcbackend.py gc_dialer/gc_dialer.py | grep -v 'browser_emu' | grep -v 'gcbackend' | grep -v "#!" >> build/usr/local/bin/gc_dialer.py -chmod 755 build/usr/local/bin/gc_dialer.py diff --git a/gc_dialer/gc_dialer.py b/gc_dialer/gc_dialer.py index f0dbf24..f29a0c9 100755 --- a/gc_dialer/gc_dialer.py +++ b/gc_dialer/gc_dialer.py @@ -10,6 +10,7 @@ bergman@merctech.com import sys +import gc import os import re import time @@ -17,13 +18,22 @@ import threading import contextlib import gobject import gtk -import gc + try: import hildon except ImportError: hildon = None try: + if hasattr(gtk, "Builder"): + #detected that this is not a legacy system + raise ImportError + #Legacy support + import gtk.glade +except ImportError: + gtk.glade = None + +try: import osso try: import abook @@ -121,7 +131,6 @@ class Dialpad(object): self.prettynumber = "" self.areacode = "518" self.clipboard = gtk.clipboard_get() - self.wTree = gtk.Builder() self.recentmodel = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) self.recentviewselection = None self.callbackNeedsSetup = True @@ -131,7 +140,12 @@ class Dialpad(object): '../lib/gc_dialer.xml', '/usr/local/lib/gc_dialer.xml' ]: if os.path.isfile(path): - self.wTree.add_from_file(path) + if gtk.glade is None: + self.wTree = gtk.Builder() + self.wTree.add_from_file(path) + else: + self.wTree = gtk.glade.XML(path) + self.wTree.get_object = self.wTree.get_widget break else: self.ErrPopUp("Cannot find gc_dialer.xml") @@ -345,7 +359,13 @@ class Dialpad(object): # #add default area code # self.phonenumber = self.areacode + self.phonenumber - if self.gcd.dial(self.phonenumber) is False: + try: + callSuccess = self.gcd.dial(self.phonenumber) + except ValueError, e: + self.gcd._msg = e.message + callSuccess = False + + if not callSuccess: self.ErrPopUp(self.gcd._msg) else: self.setNumber("") diff --git a/gc_dialer/gcbackend.py b/gc_dialer/gcbackend.py index 85b8fe4..e84e7d2 100644 --- a/gc_dialer/gcbackend.py +++ b/gc_dialer/gcbackend.py @@ -187,12 +187,15 @@ class GCDialer(object): """ This is the main function responsible for initating the callback """ + self._msg = "" + # If the number is not valid throw exception if self.validate(number) is False: raise ValueError('number is not valid') # No point if we don't have the magic cookie if not self.isAuthed(): + self._msg = "Not authenticated" return False # Strip leading 1 from 11 digit dialing @@ -207,9 +210,12 @@ class GCDialer(object): if GCDialer._gcDialingStrRe.search(self._lastData) is not None: return True else: + self._msg = "Grand Central returned an error" return False except: pass + + self._msg = "Unknown Error" return False def get_recent(self):