Changeset 452

Show
Ignore:
Timestamp:
03/17/14 17:46:06 (3 years ago)
Author:
mbutscher
Message:

branches/mbutscher/work:
* Bug fixed: For some wxPython versions radio button grouping on tab "Set

page list" of wiki-wide search failed

Location:
branches/mbutscher/work
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/mbutscher/work/WikidPad.xrc

    r439 r452  
    45284528          <object class="notebookpage"> 
    45294529            <label>Set page list</label> 
    4530             <object class="wxPanel"> 
     4530            <object class="wxPanel" name="panelPageList"> 
    45314531              <object class="wxBoxSizer"> 
    45324532                <orient>wxHORIZONTAL</orient> 
     
    45374537                      <object class="wxRadioButton" name="rbPagesAll"> 
    45384538                        <label>All Pages</label> 
    4539                         <style>wxRB_GROUP</style> 
     4539                        <style>wxRB_SINGLE</style> 
    45404540                      </object> 
    45414541                      <option>0</option> 
     
    45464546                      <object class="wxRadioButton" name="rbPagesMatchRe"> 
    45474547                        <label>Page names matching regular expression:</label> 
     4548                        <style>wxRB_SINGLE</style> 
    45484549                      </object> 
    45494550                      <option>0</option> 
     
    45764577                              <object class="wxRadioButton" name="rbPagesInList"> 
    45774578                                <label>Pages in list and </label> 
     4579                                <style>wxRB_SINGLE</style> 
    45784580                              </object> 
    45794581                              <option>0</option> 
  • branches/mbutscher/work/lib/pwiki/SearchAndReplaceDialogs.py

    r431 r452  
    11021102                self.mainControl.getWikiDocument().isSearchIndexEnabled()) 
    11031103 
     1104        self.pageListRadioButtons = (self.ctrls.rbPagesAll, 
     1105                self.ctrls.rbPagesMatchRe, self.ctrls.rbPagesInList) 
     1106 
     1107        self.panelPageListLastFocused = None   
     1108 
     1109 
    11041110        self._refreshSavedSearchesList() 
    11051111        self._refreshSearchHistoryCombo() 
     
    11211127            self.OnRadioBox(None)  # Refresh settings 
    11221128            self._updateTabTitle() 
    1123  
     1129             
     1130             
    11241131        # Fixes focus bug under Linux 
    11251132        self.SetFocus() 
     
    11601167        wx.EVT_TEXT(self, GUI_ID.tfMatchRe, self.OnTextPageNameMatchRe) 
    11611168 
    1162         wx.EVT_RADIOBUTTON(self, GUI_ID.rbPagesAll, self.OnListRefreshNeeded) 
    1163         wx.EVT_RADIOBUTTON(self, GUI_ID.rbPagesMatchRe, self.OnListRefreshNeeded) 
    1164         wx.EVT_RADIOBUTTON(self, GUI_ID.rbPagesInList, self.OnListRefreshNeeded) 
     1169        wx.EVT_RADIOBUTTON(self, GUI_ID.rbPagesAll, self.OnPageListRadioButtons) 
     1170        wx.EVT_RADIOBUTTON(self, GUI_ID.rbPagesMatchRe, self.OnPageListRadioButtons) 
     1171        wx.EVT_RADIOBUTTON(self, GUI_ID.rbPagesInList, self.OnPageListRadioButtons) 
    11651172 
    11661173        wx.EVT_TEXT_ENTER(self, GUI_ID.tfPageListToAdd, self.OnPageListAdd) 
     
    11951202        wx.EVT_CLOSE(self, self.OnClose) 
    11961203        wx.EVT_BUTTON(self, wx.ID_OK, self.OnOk) 
     1204         
     1205         
     1206        wx.EVT_CHILD_FOCUS(self.ctrls.panelPageList, self.OnPageListChildFocus) 
     1207         
    11971208         
    11981209#         _prof.stop() 
     
    12731284 
    12741285 
     1286    def OnPageListChildFocus(self, evt): 
     1287        self.panelPageListLastFocused = evt.GetEventObject() 
     1288        evt.Skip() 
     1289 
    12751290 
    12761291    def _buildSearchReplaceOperation(self): 
     
    13031318             
    13041319            if item.CLASS_PERSID == "AllPages": 
    1305                 self.ctrls.rbPagesAll.SetValue(True) 
     1320                self._setPageListRadioButton(self.ctrls.rbPagesAll) 
    13061321            elif item.CLASS_PERSID == "RegexPage": 
    1307                 self.ctrls.rbPagesMatchRe.SetValue(True) 
     1322                self._setPageListRadioButton(self.ctrls.rbPagesMatchRe) 
    13081323                self.ctrls.tfMatchRe.SetValue(item.getPattern()) 
    13091324            elif item.CLASS_PERSID == "ListItemWithSubtreePages": 
    1310                 self.ctrls.rbPagesInList.SetValue(True) 
     1325                self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    13111326                self.pageListData = item.rootWords[:] 
    13121327                self.ctrls.lbPageList.AppendItems(self.pageListData) 
     
    19031918 
    19041919    def OnTextSubtreeLevels(self, evt): 
    1905         self.ctrls.rbPagesInList.SetValue(True) 
     1920        self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    19061921        self._updateTabTitle() 
    19071922        self.listNeedsRefresh = True 
    19081923 
    19091924    def OnTextPageNameMatchRe(self, evt): 
    1910         self.ctrls.rbPagesMatchRe.SetValue(True) 
     1925        self._setPageListRadioButton(self.ctrls.rbPagesMatchRe) 
    19111926        self._updateTabTitle() 
    19121927        self.listNeedsRefresh = True 
     
    19351950            self.ctrls.nbSearchWiki.SetPageText(1, _(u"*Set page list*"))             
    19361951 
     1952 
     1953    def _setPageListRadioButton(self, selectedBtn): 
     1954        refocus = False 
     1955        focused = self.panelPageListLastFocused 
     1956         
     1957        for btn in self.pageListRadioButtons: 
     1958            if btn is selectedBtn: 
     1959                btn.SetValue(True) 
     1960            else: 
     1961                if btn is focused: 
     1962                    refocus = True 
     1963 
     1964                btn.SetValue(False) 
     1965                 
     1966        if refocus: 
     1967            self.ctrls.panelPageList.ProcessEvent(wx.ChildFocusEvent(selectedBtn)) 
     1968 
     1969 
     1970 
     1971    def OnPageListRadioButtons(self, evt): 
     1972        self._setPageListRadioButton(evt.GetEventObject()) 
     1973         
     1974        self.OnListRefreshNeeded(evt) 
     1975 
     1976 
    19371977    def OnPageListUp(self, evt): 
    19381978        sel = self.ctrls.lbPageList.GetSelection() 
     
    19722012 
    19732013    def OnPageListSort(self, evt): 
    1974         self.ctrls.rbPagesInList.SetValue(True) 
     2014        self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    19752015        self._updateTabTitle() 
    19762016        self.listNeedsRefresh = True 
     
    19832023 
    19842024    def OnPageListAdd(self, evt): 
    1985         self.ctrls.rbPagesInList.SetValue(True) 
     2025        self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    19862026        self._updateTabTitle() 
    19872027 
     
    20142054 
    20152055    def OnPageListDelete(self, evt): 
    2016         self.ctrls.rbPagesInList.SetValue(True) 
     2056        self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    20172057        self._updateTabTitle() 
    20182058 
     
    20362076 
    20372077    def OnPageListClearList(self, evt): 
    2038         self.ctrls.rbPagesInList.SetValue(True) 
     2078        self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    20392079        self._updateTabTitle() 
    20402080 
     
    20482088        Take wiki words from clipboard and enter them into the list 
    20492089        """ 
    2050         self.ctrls.rbPagesInList.SetValue(True) 
     2090        self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    20512091        self._updateTabTitle() 
    20522092 
     
    20812121        Take wiki words from clipboard and intersect with the list 
    20822122        """ 
    2083         self.ctrls.rbPagesInList.SetValue(True) 
     2123        self._setPageListRadioButton(self.ctrls.rbPagesInList) 
    20842124        self._updateTabTitle() 
    20852125