Выполнить команду из объектива единства

Я пытаюсь создать универсальный объектив, как выполнить команду, когда мы выбираем запись из универсального объектива в следующем коде results.append (URL, значок, категория, тип MIME, текст, комментарий, перетаскивание и drop url) я попытался установить file: //, но он открывает файл в текстовом редакторе (если он не читается в текстовом редакторе, он ничего не делает) Пожалуйста, помогите

Спасибо Vishnu V

2
задан 18 June 2012 в 18:04

1 ответ

Вы можете подключиться к сигналу activit-uri для выполнения действий с результатом, отображаемым в объективе.

Использование Python

Во-первых, вам необходимо подключить сигнал activit-uri в функции демона init (где вы подключаете search-change и filters-change )

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

Затем создайте функцию activ_uri в демоне.

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

Эта функция берет объект области и параметр url из результата. url не обязательно должен быть uri, но должен быть текстовым. Вы можете делать что угодно с текстом в функции. В конце функции вам нужно вернуть Unity.ActivationResponse , как описано выше, чтобы закрыть черту.

Взгляните на http://bazaar.launchpad.net/~markjtully/+junk/calendar-lens/view/30/calendar-lens-daemon.py , строка 101 & amp; 274-296 для примера этого в действии.

Использование быстрого или единственного синглета

С быстрым, это еще проще: Добавить функцию

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

в ваш класс объективов (в __init__.py ). Он будет автоматически подключен к сигналу, вам не нужно заботиться об этом. Не забудьте добавить из gi.repository import Unity в свои операторы импорта.

0
ответ дан 18 June 2012 в 18:04

Другие вопросы по тегам:

Похожие вопросы: