Changeset 07c8630 in sasview


Ignore:
Timestamp:
Jun 27, 2011 6:43:40 PM (14 years ago)
Author:
Jae Cho <jhjcho@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
2c6b224
Parents:
904193cd
Message:

added copy and paste menu in the menubar and toolbar

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • guiframe/gui_manager.py

    r9660c14 r07c8630  
    11871187        wx.EVT_MENU(self, GUIFRAME_ID.REDO_ID, self.on_redo_panel) 
    11881188        self._edit_menu.AppendSeparator() 
     1189        self._edit_menu.Append(GUIFRAME_ID.COPY_ID, '&Copy',  
     1190                               'Copy parameter values') 
     1191        wx.EVT_MENU(self, GUIFRAME_ID.COPY_ID, self.on_copy_panel) 
     1192        self._edit_menu.Append(GUIFRAME_ID.PASTE_ID, '&Paste',  
     1193                               'Paste parameter values') 
     1194        wx.EVT_MENU(self, GUIFRAME_ID.PASTE_ID, self.on_paste_panel) 
     1195        self._edit_menu.AppendSeparator() 
     1196         
    11891197        self._edit_menu.Append(GUIFRAME_ID.PREVIEW_ID, '&Report', 
    11901198                               'Preview current panel') 
     
    21452153            flag = self.cpanel_on_focus.get_redo_flag() 
    21462154            self._edit_menu.Enable(GUIFRAME_ID.REDO_ID, flag) 
     2155            flag = self.cpanel_on_focus.get_copy_flag() 
     2156            self._edit_menu.Enable(GUIFRAME_ID.COPY_ID, flag) 
     2157            flag = self.cpanel_on_focus.get_paste_flag() 
     2158            self._edit_menu.Enable(GUIFRAME_ID.PASTE_ID, flag) 
    21472159            #flag = self.cpanel_on_focus.get_print_flag() 
    21482160            #self._edit_menu.Enable(GUIFRAME_ID.PRINT_ID, flag) 
     
    21552167            self._edit_menu.Enable(GUIFRAME_ID.UNDO_ID, flag) 
    21562168            self._edit_menu.Enable(GUIFRAME_ID.REDO_ID, flag) 
     2169            self._edit_menu.Enable(GUIFRAME_ID.COPY_ID, flag) 
     2170            self._edit_menu.Enable(GUIFRAME_ID.PASTE_ID, flag) 
    21572171            #self._edit_menu.Enable(GUIFRAME_ID.PRINT_ID, flag) 
    21582172            self._edit_menu.Enable(GUIFRAME_ID.PREVIEW_ID, flag) 
     
    21732187            self.cpanel_on_focus.on_redo(event) 
    21742188             
     2189    def on_copy_panel(self, event=None): 
     2190        """ 
     2191        copy the last panel on focus if possible 
     2192        """ 
     2193        if self.cpanel_on_focus is not None: 
     2194            self.cpanel_on_focus.on_copy(event) 
     2195             
     2196    def on_paste_panel(self, event=None): 
     2197        """ 
     2198        paste clipboard to the last panel on focus 
     2199        """ 
     2200        if self.cpanel_on_focus is not None: 
     2201            self.cpanel_on_focus.on_paste(event) 
     2202                     
    21752203    def on_bookmark_panel(self, event=None): 
    21762204        """ 
     
    22562284            self._toolbar.enable_redo(self.cpanel_on_focus) 
    22572285             
     2286    def enable_copy(self): 
     2287        """ 
     2288        enable copy related control 
     2289        """ 
     2290        if self.cpanel_on_focus is not None: 
     2291            self._toolbar.enable_copy(self.cpanel_on_focus) 
     2292             
     2293    def enable_paste(self): 
     2294        """ 
     2295        enable paste  
     2296        """ 
     2297        if self.cpanel_on_focus is not None: 
     2298            self._toolbar.enable_paste(self.cpanel_on_focus) 
     2299                        
    22582300    def enable_bookmark(self): 
    22592301        """ 
  • guiframe/gui_style.py

    radf44c2 r07c8630  
    2424    UNDO_ID = wx.NewId() 
    2525    REDO_ID = wx.NewId() 
     26    COPY_ID = wx.NewId() 
     27    PASTE_ID = wx.NewId() 
    2628    BOOKMARK_ID = wx.NewId() 
    2729    SAVE_ID = wx.NewId() 
     
    4143    UNDO_ICON_PATH = os.path.join(PATH, 'undo.png') 
    4244    REDO_ICON_PATH = os.path.join(PATH, 'redo.png') 
     45    COPY_ICON_PATH = os.path.join(PATH, 'copy.png') 
     46    PASTE_ICON_PATH = os.path.join(PATH, 'paste.png') 
    4347    BOOKMARK_ICON_PATH = os.path.join(PATH, 'bookmark.png') 
    4448    ZOOM_IN_ID_PATH = os.path.join(PATH, 'zoom_in.png') 
     
    5357    UNDO_ICON = wx.Image(os.path.join(PATH, 'undo.png')) 
    5458    REDO_ICON = wx.Image(os.path.join(PATH, 'redo.png')) 
     59    COPY_ICON = wx.Image(os.path.join(PATH, 'copy.png')) 
     60    PASTE_ICON = wx.Image(os.path.join(PATH, 'paste.png')) 
    5561    BOOKMARK_ICON = wx.Image(os.path.join(PATH, 'bookmark.png')) 
    5662    ZOOM_IN_ICON = wx.Image(os.path.join(PATH, 'zoom_in.png')) 
  • guiframe/gui_toolbar.py

    rbdde9bd r07c8630  
    100100                          disable_redo_bmp, button_type,'Redo') 
    101101        self.AddSeparator() 
     102        copy_im = GUIFRAME_ICON.COPY_ICON 
     103        copy_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH) 
     104        copy_bmp = copy_im.ConvertToBitmap() 
     105        #disable_undo_bmp = clear_image(undo_im).ConvertToBitmap() 
     106        disable_copy_bmp = wx.NullBitmap 
     107        self.AddLabelTool(GUIFRAME_ID.COPY_ID, 'Copy', copy_bmp, 
     108                          disable_copy_bmp, button_type,'Copy parameter values') 
     109        self.AddSeparator() 
     110        paste_im = GUIFRAME_ICON.PASTE_ICON 
     111        paste_im.Rescale(tbar_size[0], tbar_size[1], wx.IMAGE_QUALITY_HIGH) 
     112        paste_bmp = paste_im.ConvertToBitmap() 
     113        #disable_redo_bmp = clear_image(redo_im).ConvertToBitmap() 
     114        disable_paste_bmp = wx.NullBitmap 
     115        self.AddLabelTool(GUIFRAME_ID.PASTE_ID, 'Paste', paste_bmp, 
     116                          disable_paste_bmp, button_type,'Paste parameter values') 
     117 
     118        self.AddSeparator() 
    102119        #add button for the current application 
    103120        #self.button_application = wx.StaticText(self, -1, 'Welcome') 
     
    136153        self.button_panel.SetToolTipString(hint) 
    137154        self.AddControl(self.button_panel) 
    138          
     155        self.AddSeparator() 
    139156        self.Realize() 
    140157     
     
    157174            self.parent.Bind(wx.EVT_TOOL, self.parent.on_undo_panel, 
    158175                             id=GUIFRAME_ID.UNDO_ID) 
     176            self.parent.Bind(wx.EVT_TOOL, self.parent.on_copy_panel, 
     177                             id=GUIFRAME_ID.COPY_ID) 
     178            self.parent.Bind(wx.EVT_TOOL, self.parent.on_paste_panel, 
     179                             id=GUIFRAME_ID.PASTE_ID) 
    159180            self.parent.Bind(wx.EVT_TOOL, self.parent.on_reset_panel, 
    160181                             id=GUIFRAME_ID.RESET_ID) 
     
    180201            self.EnableTool(GUIFRAME_ID.UNDO_ID,False) 
    181202            self.EnableTool(GUIFRAME_ID.REDO_ID, False) 
     203            self.EnableTool(GUIFRAME_ID.COPY_ID,False) 
     204            self.EnableTool(GUIFRAME_ID.PASTE_ID, False) 
    182205            self.EnableTool(GUIFRAME_ID.PREVIEW_ID, False) 
    183206            self.EnableTool(GUIFRAME_ID.RESET_ID, False) 
     
    189212            self.EnableTool(GUIFRAME_ID.UNDO_ID, panel.get_undo_flag()) 
    190213            self.EnableTool(GUIFRAME_ID.REDO_ID, panel.get_redo_flag()) 
     214            self.EnableTool(GUIFRAME_ID.COPY_ID, panel.get_copy_flag()) 
     215            self.EnableTool(GUIFRAME_ID.PASTE_ID, panel.get_paste_flag()) 
    191216            self.EnableTool(GUIFRAME_ID.PREVIEW_ID, panel.get_preview_flag()) 
    192217            self.EnableTool(GUIFRAME_ID.RESET_ID, panel.get_reset_flag()) 
     
    203228        self.Realize() 
    204229         
     230    def enable_copy(self, panel): 
     231        self.EnableTool(GUIFRAME_ID.COPY_ID, panel.get_copy_flag()) 
     232        self.Realize() 
     233         
     234    def enable_paste(self, panel): 
     235        self.EnableTool(GUIFRAME_ID.PASTE_ID, panel.get_paste_flag()) 
     236        self.Realize()  
     237             
    205238    def enable_print(self, panel): 
    206239        self.EnableTool(GUIFRAME_ID.PRINT_ID, panel.get_print_flag()) 
  • guiframe/panel_base.py

    r6f28e70 r07c8630  
    4040        self._undo_flag = False 
    4141        self._redo_flag = False 
     42        self._copy_flag = False 
     43        self._paste_flag = False 
    4244        self._preview_flag = False 
    4345        self._bookmark_flag = False 
     
    126128        """ 
    127129        return self._redo_flag 
    128      
     130 
     131    def _set_copy_flag(self, flag=True): 
     132        """ 
     133        The derivative class sets the copy flag value to indicate that the  
     134        action done can be recovered 
     135        """ 
     136        if flag == self._copy_flag: 
     137            self._has_changed = False 
     138            return 
     139        self._has_changed = True 
     140        self._copy_flag = flag 
     141        if self._manager is not None and self._manager.parent is not None: 
     142            self._manager.parent.cpanel_on_focus = self 
     143            self._manager.parent.enable_copy() 
     144       
     145    def get_copy_flag(self): 
     146        """ 
     147        Get the copy flag to update appropriately the tool bar 
     148        """ 
     149        return self._copy_flag 
     150     
     151    def _set_paste_flag(self, flag=True): 
     152        """ 
     153        The derivative class sets the paste flag value to indicate that the  
     154        action done can be recovered 
     155        """ 
     156        if flag == self._paste_flag: 
     157            self._has_changed = False 
     158            return 
     159        self._has_changed = True 
     160        self._paste_flag = flag 
     161        if self._manager is not None and self._manager.parent is not None: 
     162            self._manager.parent.cpanel_on_focus = self 
     163            self._manager.parent.enable_paste() 
     164       
     165    def get_paste_flag(self): 
     166        """ 
     167        Get the copy flag to update appropriately the tool bar 
     168        """ 
     169        return self._copy_flag 
     170        
    129171    def _set_zoomed_in_flag(self, flag=True): 
    130172        """ 
     
    311353        The current action is canceled 
    312354        """ 
     355    def on_copy(self, event): 
     356        """ 
     357        The copy action if possible 
     358        """ 
     359    def on_paste(self, event): 
     360        """ 
     361        The paste action if possible 
     362        """ 
    313363    def on_bookmark(self, event): 
    314364        """ 
  • sansview/perspectives/fitting/basepage.py

    r37e0e5d r07c8630  
    531531        return new_state   
    532532     
     533    def on_copy(self, event): 
     534        """ 
     535        Copy Parameter values to the clipboad 
     536        """ 
     537        flag = self.get_copy() 
     538        if event != None: 
     539            event.Skip() 
     540        # messages depending on the flag 
     541        self._copy_info(flag) 
     542         
     543    def on_paste(self, event): 
     544        """ 
     545        Paste Parameter values to the panel if possible 
     546        """ 
     547        flag = self.get_paste() 
     548        if event != None: 
     549            event.Skip() 
     550        # messages depending on the flag 
     551        self._copy_info(flag) 
     552         
     553    def _copy_info(self, flag): 
     554        """ 
     555        Send event dpemding on flag 
     556         
     557        : Param flag: flag that distinguish event 
     558        """ 
     559        # messages depending on the flag 
     560        if flag == None: 
     561            msg = " Parameter values are copied to the clipboard..." 
     562            infor = 'warning' 
     563        elif flag: 
     564            msg = " Parameter values are pasted from the clipboad..." 
     565            infor = "warning" 
     566        else: 
     567            msg = "Error was occured " 
     568            msg += ": No valid parameter values to paste from the clipboard..." 
     569            infor = "error" 
     570        # inform msg to wx 
     571        wx.PostEvent( self.parent.parent,  
     572                      StatusEvent(status= msg, info=infor)) 
     573         
    533574    def _get_time_stamp(self): 
    534575        """ 
  • sansview/perspectives/fitting/fitpage.py

    rc365765 r07c8630  
    5656        self._set_save_flag(False) 
    5757        self._set_preview_flag(False) 
     58        self._set_copy_flag(False) 
     59        self._set_paste_flag(False) 
    5860        self.btFit.SetFocus() 
    5961   
     
    10771079       
    10781080        if self.model != None: 
     1081            self._set_copy_flag(True) 
     1082            self._set_paste_flag(True) 
    10791083            if self.data != None: 
    10801084                self._set_bookmark_flag(True) 
Note: See TracChangeset for help on using the changeset viewer.