当前位置: 首页>>代码示例>>Python>>正文


Python Dialog.emit方法代码示例

本文整理汇总了Python中zim.gui.widgets.Dialog.emit方法的典型用法代码示例。如果您正苦于以下问题:Python Dialog.emit方法的具体用法?Python Dialog.emit怎么用?Python Dialog.emit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在zim.gui.widgets.Dialog的用法示例。


在下文中一共展示了Dialog.emit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: InstantsearchMainWindowExtension

# 需要导入模块: from zim.gui.widgets import Dialog [as 别名]
# 或者: from zim.gui.widgets.Dialog import emit [as 别名]

#.........这里部分代码省略.........
            state.items = sorted(state.menu, reverse=True, key=lambda item: (state.menu[item].intitle, -state.menu[item].lastOrder))

        state.items = [item for item in state.items if (state.menu[item].score + state.menu[item].bonus) > 0] # i dont know why there are items with 0 score

        if state == self.state:
            self.soutMenu()

    def soutMenu(self, displayImmediately=False):
        """ Displays menu and handles caret position. """
        if self.timeoutOpenPage:
            gobject.source_remove(self.timeoutOpenPage)
        self.gui.resize(300, 100) # reset size
        # treat possible caret deflection
        if self.caret['pos'] < 0 or self.caret['pos'] > len(self.state.items)-1: # place the caret to the beginning or the end of list
            self.caret['pos'] = self.caret['altPos']

        text = ""
        i = 0
        for item in self.state.items:
            score = self.state.menu[item].score + self.state.menu[item].bonus
            self.state.menu[item].lastOrder = i
            if i == self.caret['pos']:
                self.caret['text'] = item # caret is at this position
                text += '→ {} ({}) {}\n'.format(item, score, "" if self.state.menu[item].sure else "?")
            else:
                try:
                    text += '{} ({}) {}\n'.format(item, score, "" if self.state.menu[item].sure else "?")
                except:
                    text += "CHYBA\n"
                    text += item[0:-1] + "\n"
            i += 1

        self.labelObject.set_text(text)
        self.menuPage = Path(self.caret['text'] if len(self.state.items) else self.originalPage)

        if not displayImmediately:
            self.timeoutOpenPage = gobject.timeout_add(self.keystroke_delay, self._open_page, self.menuPage) # ideal delay between keystrokes
        else:
            self._open_page(self.menuPage)

    def move(self, widget, event):
        """ Move caret up and down. Enter to confirm, Esc closes search."""
        keyname = gtk.gdk.keyval_name(event.keyval)
        if keyname == "Up" or keyname == "ISO_Left_Tab":
            self.caret['pos'] -= 1
            self.soutMenu(displayImmediately=False)

        if keyname == "Down" or keyname == "Tab":
            self.caret['pos'] += 1
            self.soutMenu(displayImmediately=False)

        if keyname == "KP_Enter" or keyname == "Return":
            self._open_page(self.menuPage, excludeFromHistory=False)
            self.close()

        if keyname == "Escape":
            self._open_original()
            # GTK closes the windows itself on Escape, no self.close() needed

        return

    ## Safely closes
    # Xwhen closing directly, Python gave allocation error
    def close(self):
        if not self.isClosed:
            self.isClosed = True
            self.gui.emit("close")

    def _open_original(self):
        self._open_page(Path(self.originalPage))

    def _open_page(self, page, excludeFromHistory=True):
        """ Open page and highlight matches """
        self.timeoutOpenPage = None # no delayed page will be open
        if self.isClosed == True:
            return
        if page and page.name and page.name != self.lastPage:
            self.lastPage = page.name
            #print("*** HISTORY BEF", self.window.ui.history._history[-3:])
            self.window.ui.open_page(page)
            if excludeFromHistory:
                # there is no public API, so lets use protected _history instead
                self.window.ui.history._history.pop()
                self.window.ui.history._current = len(self.window.ui.history._history) - 1
        if not excludeFromHistory and self.window.ui.history.get_current().name is not page.name:
            # we insert the page to the history because it was likely to be just visited and excluded
            self.window.ui.history.append(page)

        # Popup find dialog with same query
        if self.queryO:# and self.queryO.simple_match:
            string = self.state.query
            string = string.strip('*') # support partial matches
            if self.plugin.preferences['highlight_search']:
                self._get_mainwindow().pageview.show_find(string, highlight=True)

    def _get_mainwindow(self): # #18
        try:
            return self.window.ui._mainwindow
        except AttributeError:
            return self.window.ui.mainwindow
开发者ID:heussd,项目名称:dotfiles,代码行数:104,代码来源:instantsearch.py


注:本文中的zim.gui.widgets.Dialog.emit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。