Ignore:
Timestamp:
Mar 17, 2014 5:46:06 PM (4 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
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.