Execute o comando da lente da unidade

2

Estou tentando criar uma lente unitária, como executar um comando quando selecionamos uma entrada da unidade-lente no seguinte código results.append (url, ícone,             categoria,             mimo tipo             texto,             Comente,             arrastar e soltar url) Eu tentei definir arquivo: //, mas abre o arquivo com o editor de texto (se não for legível com o editor de texto não fazer nada) Por favor ajude

Obrigado Vishnu V

    
por Vishnu V 18.06.2012 / 16:04

1 resposta

1

Você pode se conectar ao sinal activate-uri para executar ações em um resultado exibido em uma lente.

Usando o Python

Primeiro, você precisa conectar o sinal activate-uri na função init do Daemon (onde você conecta o search-changed e < strong> filters-changed )

self.scope.connect ("activate-uri", self.activate_uri)

Em seguida, crie uma função activate_uri no Daemon.

def activate_uri(self, scope, uri):
  #Do stuff with uri here
  return Unity.ActivationResponse (handled = Unity.HandledType.HIDE_DASH, goto_uri = '')

Essa função usa o objeto de escopo e o parâmetro url do resultado. O url não precisa necessariamente ser um uri, mas deve ser texto. Você pode fazer o que quiser com o texto na função. No final da função, você precisa retornar o Unity.ActivationResponse conforme detalhado acima para fechar o traço.

Dê uma olhada no link linha 101 & 274-296 para um exemplo disso em ação.

Usando rapidamente ou unidade-singlet

Com rapidez, é ainda mais fácil: adicionar uma função

def handle_uri(self, scope, uri): 
  # Do stuff with the uri here

para sua classe de lente (em __init__.py). Ele será automaticamente conectado ao sinal, você não precisa cuidar disso. Não se esqueça de adicionar a partir de gi.repository import Unity às suas declarações de importação.

    
por Mark Tully 19.06.2012 / 02:14

Tags