code: def find( self, flags = 0 ):
          
          # check against the web and text views
          if ( not (self._textEdit or self._webView) ):
              fg = QColor('darkRed')
              bg = QColor('red').lighter(180)
              
              palette = self.palette()
              palette.setColor(palette.Text, fg)
              palette.setColor(palette.Base, bg)
              
              self._searchEdit.setPalette(palette)
              self._searchEdit.setToolTip( 'No Text Edit is linked.' )
              
              return False
          
          if ( self._caseSensitiveCheckbox.isChecked() ):
              flags |= QTextDocument.FindCaseSensitively
          
          if ( self._textEdit and self._wholeWordsCheckbox.isChecked() ):
              flags |= QTextDocument.FindWholeWords
          
          terms = self._searchEdit.text()
          if ( terms != self._lastText ):
              self._lastCursor = QTextCursor()
          
          if ( self._regexCheckbox.isChecked() ):
              terms = QRegExp(terms)
          
          palette = self.palette()
          
          # search on a text edit
          if ( self._textEdit ):
              cursor  = self._textEdit.document().find(terms, 
                                                   self._lastCursor, 
                                                   QTextDocument.FindFlags(flags))
              found   = not cursor.isNull()
              self._lastCursor = cursor
              self._textEdit.setTextCursor(cursor)
          
          elif ( QWebPage ):
              flags = QWebPage.FindFlags(flags)
              flags |= QWebPage.FindWrapsAroundDocument
              
              found = self._webView.findText(terms, flags)
          
          self._lastText = self._searchEdit.text()
          
          if ( not terms or found ):
              fg = palette.color(palette.Text)
              bg = palette.color(palette.Base)
          else:
              fg = QColor('darkRed')
              bg = QColor('red').lighter(180)
          
          palette.setColor(palette.Text, fg)
          palette.setColor(palette.Base, bg)
          
          self._searchEdit.setPalette(palette)
          
          return found
docs: Looks throught the text document based on the current criteria.  The \
          inputed flags will be merged with the generated search flags.
          
          :param      flags | <QTextDocument.FindFlag>
          
          :return     <bool> | success