← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-client/trunk-page_tooltips-rga into lp:openobject-client

 

Ravi Gadhia (OpenERP) has proposed merging lp:~openerp-dev/openobject-client/trunk-page_tooltips-rga into lp:openobject-client.

Requested reviews:
  Naresh(OpenERP) (nch-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-page_tooltips-rga/+merge/53422

Hello
This branch implement following blueprint
https://blueprints.launchpad.net/openobject-client/+spec/tooltips-tab-information
-- 
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-page_tooltips-rga/+merge/53422
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client/trunk-page_tooltips-rga.
=== modified file 'bin/modules/gui/main.py'
--- bin/modules/gui/main.py	2011-01-27 06:31:03 +0000
+++ bin/modules/gui/main.py	2011-03-15 12:21:52 +0000
@@ -1206,6 +1206,7 @@
                 return True
             return False
         return True
+    
 
     def win_add(self, win, datas):
         """
@@ -1226,6 +1227,10 @@
         closebtn.unset_flags(gtk.CAN_FOCUS)
 
         box_label = gtk.Label(win.name)
+        box_label.set_tooltip_text(win.name)
+        win.page_label = box_label
+
+        
         event_box = gtk.EventBox()
         event_box.add(box_label)
         event_box.set_visible_window(False)

=== modified file 'bin/modules/gui/window/__init__.py'
--- bin/modules/gui/window/__init__.py	2010-12-21 05:18:43 +0000
+++ bin/modules/gui/window/__init__.py	2011-03-15 12:21:52 +0000
@@ -40,7 +40,6 @@
         if context is None:
             context = {}
         context.update(rpc.session.context)
-
         if view_type=='form':
             mode = (mode or 'form,tree').split(',')
             win = form.form(model, res_id, domain, view_type=mode,

=== modified file 'bin/modules/gui/window/form.py'
--- bin/modules/gui/window/form.py	2011-01-27 10:49:17 +0000
+++ bin/modules/gui/window/form.py	2011-03-15 12:21:52 +0000
@@ -67,6 +67,7 @@
         self.fields = fields
         self.domain = domain
         self.context = context
+        self.page_label = None
         self.screen = Screen(self.model, view_type=view_type,
                 context=self.context, view_ids=view_ids, domain=domain,help=help,
                 hastoolbar=options.options['form.toolbar'], hassubmenu=options.options['form.submenu'],
@@ -136,7 +137,19 @@
 
         if auto_refresh and int(auto_refresh):
             gobject.timeout_add(int(auto_refresh) * 1000, self.sig_reload)
-
+    
+    def set_tooltips(fn):
+        def _decorate(self, *args, **kws):
+            result = fn(self, *args, **kws)
+            if self.screen.current_view.view_type == 'form':
+                tips= self.screen.current_model and self.screen.current_model.value.get('name') or self.name
+                tooltips = tips == self.name and self.name or  self.name + ': ' + tips[:64]
+                self.page_label.set_tooltip_text(tooltips)
+            else:
+                self.page_label.set_tooltip_text(self.name)
+            return result
+        return _decorate
+    
     def sig_switch_diagram(self, widget=None):
         return self.sig_switch(widget, 'diagram')
 
@@ -229,7 +242,7 @@
         else:
             self.message_state(_('No record selected ! You can only attach to existing record.'), color='red')
         return True
-
+    
     def sig_switch(self, widget=None, mode=None):
         if not self.modified_save():
             return
@@ -262,7 +275,8 @@
                 message+=val+': '+str(line[key] or '/')+'\n'
         common.message(message)
         return True
-
+    
+    @set_tooltips
     def sig_remove(self, widget=None):
         if not self.id_get():
             msg = _('Record is not saved ! \n Do you want to clear current record ?')
@@ -286,7 +300,7 @@
         screen_fields = copy.deepcopy(self.screen.fields)
         win = win_import.win_import(self.model, screen_fields, fields, parent=self.window,local_context= self.screen.context)
         res = win.go()
-
+        
     def sig_save_as(self, widget=None):
         fields = []
         while(self.screen.view_to_load):
@@ -294,7 +308,7 @@
         screen_fields = copy.deepcopy(self.screen.fields)
         win = win_export.win_export(self.model, self.screen.ids_get(), screen_fields, fields, parent=self.window, context=self.context)
         res = win.go()
-
+    
     def sig_new(self, widget=None, autosave=True):
         if autosave:
             if not self.modified_save():
@@ -303,6 +317,8 @@
             return
         self.screen.new()
         self.message_state('')
+        self.page_label and self.page_label.set_tooltip_text(self.name)
+
 
     def sig_copy(self, *args):
         if not self.modified_save():
@@ -319,7 +335,8 @@
 
     def _form_save(self, auto_continue=True):
         pass
-
+    
+    @set_tooltips
     def sig_save(self, widget=None, sig_new=True, auto_continue=True):
         res = self.screen.save_current()
         warning = False
@@ -337,12 +354,14 @@
             common.warning(warning,_('Warning !'), parent=self.screen.current_view.window)
         return bool(id)
 
+    @set_tooltips
     def sig_previous(self, widget=None):
         if not self.modified_save():
             return
         self.screen.display_prev()
         self.message_state('')
-
+        
+    @set_tooltips
     def sig_next(self, widget=None):
         if not self.modified_save():
             return

=== modified file 'bin/widget/screen/screen.py'
--- bin/widget/screen/screen.py	2011-01-27 12:43:03 +0000
+++ bin/widget/screen/screen.py	2011-03-15 12:21:52 +0000
@@ -498,6 +498,18 @@
         del self.win_search
         del self.win_search_callback
         del self.window
+        
+    def set_tooltips(self):
+        terp_main = service.LocalService('gui.main')
+        page_id= terp_main.notebook.get_current_page()
+        form_obj = terp_main.pages[page_id]
+        action_name = form_obj.name or ''
+        if self.current_view.view_type == 'form':
+            tips = self.current_model and self.current_model.value.get('name') or action_name
+            tooltips = tips == action_name and action_name or  action_name + ': ' + tips[:64] 
+        else:
+            tooltips = action_name
+        form_obj.page_label.set_tooltip_text(tooltips)
 
     # mode: False = next view, value = open this view
     def switch_view(self, screen=None, mode=False):
@@ -546,6 +558,8 @@
         self.current_view.set_cursor()
 
         main = service.LocalService('gui.main')
+        if mode:
+            self.set_tooltips()
         if main:
             main.sb_set()
 


Follow ups