code: def setCurrentRule( self, rule ):
          
          curr_rule = self.currentRule()
          if ( curr_rule == rule ):
              return
          
          self._currentRule = rule
          
          curr_op     = self.uiOperatorDDL.currentText()
          self.uiOperatorDDL.blockSignals(True)
          self.uiOperatorDDL.clear()
          if ( rule ):
              self.uiOperatorDDL.addItems(rule.operators())
              index = self.uiOperatorDDL.findText(curr_op)
              if ( index != -1 ):
                  self.uiOperatorDDL.setCurrentIndex(index)
                  
          self.uiOperatorDDL.blockSignals(False)
          
          self.updateEditor()
docs: Sets the current query rule for this widget, updating its widget \
          editor if the types do not match.
          
          :param      rule | <QueryRule> || None