diff -r 000000000000 -r ca70ae20a155 src/extras/fileserver/fsgui.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/extras/fileserver/fsgui.py Tue Feb 16 10:07:05 2010 +0530 @@ -0,0 +1,82 @@ +# fsgui.py +# +# A launcher script for the simple file transfer server +# for Series 60 Python environment. +# +# Copyright (c) 2005 Nokia Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import appuifw +import socket +import os +import e32 + +CONFIG_DIR='c:/system/apps/python' + +def discover_address(configfile): + import appuifw + CONFIG_FILE=os.path.join(CONFIG_DIR,configfile) + try: + f=open(CONFIG_FILE,'r') + config=eval(f.read()) + f.close() + except: + config={} + + address=config.get('target','') + + if address: + choice=appuifw.popup_menu([u'Default host', + u'Other...'],u'Connect to:') + if choice==1: + address=None + if choice==None: + return None # popup menu was cancelled. + if not address: + print "Discovering..." + addr,services=socket.bt_discover() + print "Discovered: %s, %s"%(addr,services) + if len(services)>1: + choices=services.keys() + choices.sort() + choice=appuifw.popup_menu([unicode(services[x])+": "+x + for x in choices],u'Choose port:') + port=services[choices[choice]] + else: + port=services[services.keys()[0]] + address=(addr,port) + config['target']=address + # make sure the configuration file exists. + if not os.path.isdir(CONFIG_DIR): + os.makedirs(CONFIG_DIR) + f=open(CONFIG_FILE,'wt') + f.write(repr(config)) + f.close() + return address + +def startserver(): + if os.path.isfile(u'e:\\system\\libs\\fileserver.py'): + server_script=u'e:\\system\\libs\\fileserver.py' + elif os.path.isfile(u'c:\\system\\libs\\fileserver.py'): + server_script=u'c:\\system\\libs\\fileserver.py' + else: + appuifw.note(u'fileserver.py not found','error') + return + addr=discover_address('fileserver_conf.txt') + if addr: + e32.start_server(server_script) + appuifw.note(u'File server started','info') + +startserver()