Displays the group menu to the user for modification.

def showGroupMenu( self ):
        """
        Displays the group menu to the user for modification.
        """
        group_active = self.isGroupingActive()
        group_by     = self.groupBy()
        
        menu = XMenu(self)
        menu.setTitle('Grouping Options')
        menu.setShowTitle(True)
        menu.addAction('Edit Advanced Grouping')
        
        menu.addSeparator()
        
        action = menu.addAction('No Grouping')
        action.setCheckable(True)
        action.setChecked(not group_active)
        
        action = menu.addAction('Advanced')
        action.setCheckable(True)
        action.setChecked(group_by == self.GroupByAdvancedKey and group_active)
        if ( group_by == self.GroupByAdvancedKey ):
            font = action.font()
            font.setBold(True)
            action.setFont(font)
        
        menu.addSeparator()
        
        # add dynamic options from the table schema
        tableType = self.tableType()
        if ( tableType ):
            columns = tableType.schema().columns()
            columns.sort(key = lambda x: x.displayName())
            for column in columns:
                action = menu.addAction(column.displayName())
                action.setCheckable(True)
                action.setChecked(group_by == column.displayName() and
                                  group_active)
                
                if ( column.displayName() == group_by ):
                    font = action.font()
                    font.setBold(True)
                    action.setFont(font)
        
        point = QPoint(0, self.uiGroupOptionsBTN.height())
        action = menu.exec_(self.uiGroupOptionsBTN.mapToGlobal(point))
        
        if ( not action ):
            return
        elif ( action.text() == 'Edit Advanced Grouping' ):
            print 'edit advanced grouping options'
        elif ( action.text() == 'No Grouping' ):
            self.setGroupingActive(False)
            
        elif ( action.text() == 'Advanced' ):
            self.uiGroupBTN.blockSignals(True)
            self.setGroupBy(self.GroupByAdvancedKey)
            self.setGroupingActive(True)
            self.uiGroupBTN.blockSignals(False)
            
            self.refreshResults()
        
        else:
            self.uiGroupBTN.blockSignals(True)
            self.setGroupBy(nativestring(action.text()))
            self.setGroupingActive(True)
            self.uiGroupBTN.blockSignals(False)
            
            self.refreshResults()