* Improved error reporting
authorepage <eopage@byu.net>
Wed, 2 Jul 2008 01:46:07 +0000 (01:46 +0000)
committerepage <eopage@byu.net>
Wed, 2 Jul 2008 01:46:07 +0000 (01:46 +0000)
 * 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

build_script.sh
gc_dialer/gc_dialer.py
gc_dialer/gcbackend.py

index cae9096..bd1e089 100755 (executable)
@@ -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
 # 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
index f0dbf24..f29a0c9 100755 (executable)
@@ -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("")
index 85b8fe4..e84e7d2 100644 (file)
@@ -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):