00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 from Koo.Common import Api
00031 from Koo.Common import Common
00032 from Koo.Common import Debug
00033 from FormWidget import *
00034 from TreeWidget import *
00035 from WebWidget import *
00036
00037 from Koo import Rpc
00038
00039
00040 def createWindow(view_ids, model, res_id=False, domain=None,
00041 view_type='form', window=None, context=None, mode=None, name=False, autoReload=False, target='current'):
00042
00043 if context is None:
00044 context = {}
00045 context.update(Rpc.session.context)
00046
00047 if view_type=='form':
00048 QApplication.setOverrideCursor( Qt.WaitCursor )
00049 mode = (mode or 'form,tree').split(',')
00050 try:
00051 widget = FormWidget(model, res_id, domain, view_type=mode,
00052 view_ids = (view_ids or []),
00053 context=context, name=name )
00054 except Rpc.RpcException, e:
00055 QApplication.restoreOverrideCursor()
00056 return
00057 if target == 'new':
00058 widget.setStatusBarVisible( False )
00059 widget.setAutoReload( autoReload )
00060 QApplication.restoreOverrideCursor()
00061 Api.instance.windowCreated( widget, target )
00062 elif view_type=='tree':
00063 QApplication.setOverrideCursor( Qt.WaitCursor )
00064 try:
00065 if view_ids and view_ids[0]:
00066 view_base = Rpc.session.execute('/object', 'execute',
00067 'ir.ui.view', 'read', [view_ids[0]],
00068 ['model', 'type'], context)[0]
00069 model = view_base['model']
00070 view = Rpc.session.execute('/object', 'execute',
00071 view_base['model'], 'fields_view_get', view_ids[0],
00072 view_base['type'],context)
00073 else:
00074 view = Rpc.session.execute('/object', 'execute', model,
00075 'fields_view_get', False, view_type, context)
00076 win = TreeWidget(view, model, domain, context, name=name)
00077 except Rpc.RpcException, e:
00078 QApplication.restoreOverrideCursor()
00079 return
00080 QApplication.restoreOverrideCursor()
00081 Api.instance.windowCreated( win, target )
00082 else:
00083 Debug.error( 'unknown view type: ' + view_type )
00084
00085 def createWebWindow(url, title):
00086 url = url or ''
00087 if QApplication.keyboardModifiers() & Qt.ControlModifier:
00088 QDesktopServices.openUrl( QUrl( url ) )
00089 return
00090 QApplication.setOverrideCursor( Qt.WaitCursor )
00091 widget = WebWidget()
00092 widget.setTitle( title or _('Web') )
00093 widget.setUrl( QUrl( url ) )
00094 QApplication.restoreOverrideCursor()
00095 Api.instance.windowCreated(widget, 'current')