Управление меню Действия

Что делать, если нужно в зависимости от каких-то условий запрещать выполнение некоторых пунктов меню Действия?
Кстати, что такое GUI-логика :)?

В разделе INIT:

def makeUpActions(mem=mem):
    #стандартные действия
    sc.refreshToolBar(mem)
    if mem.prevMem.t.r.status>='3':
        mem.disableGridAction(u"Удалить", 1)
        mem.disableGridAction(u"Правка", 1)
    else:
        mem.disableGridAction(u"Удалить", not mem.t.rowCount()>0)
        mem.disableGridAction(u"Правка", not mem.t.rowCount()>0)
        
#Заменяем стандарный метод
mem.refreshToolBar=makeUpActions

Можно и так
в разделе кода Init пишем:

def makeUpActions(mem):
	def realDo():
		if mem.prevMem.t.r.draft!="*":
			mem.disableGridAction(u"Правка", 1)
			mem.disableGridAction(u"Новая", 1)
			mem.disableGridAction(u"Копия", 1)
			mem.disableGridAction(u"Удалить", 1)
			mem.disableGridAction(u"Строку вниз", 1)
			mem.disableGridAction(u"Строку вверх", 1)
			mem.disableGridAction(u"Сдвинуть вниз", 1)
	return realDo

mem.zzGridWidget.connect(mem.zzGridWidget, SIGNAL("gridRowChanged(grid)"),makeUpActions(mem))
mem.heap.makeUpActions=makeUpActions(mem)
mem.heap.makeUpActions()

«Включение» отображения подчиненной таблицы

if "mem" in locals() and "scname" in dir(mem):#убедимся, что мы в нужном месте
    if mem.scname=="spr_tmc":
        for x in xrange(len(mem.scActions)):
            if u'Цены' in mem.scActions[x]['text']:
                mem.scActions[x]['dtl_noshow']=""