--- /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()