Пример #1
0
def onClose(e):
    nwindows = list(windows.get_with(core.manager, network=e.window.network))

    if isinstance(e.window, windows.ChannelWindow):
        cwindows = list(
            windows.get_with(core.manager,
                             network=e.window.network,
                             wclass=windows.ChannelWindow))

        #if we only have one window for the network, don't bother to part as
        # we'll soon be quitting anyway
        if len(nwindows) != 1 and irc_script.ischan(e.window.network,
                                                    e.window.id):
            e.window.network.part(e.window.id)

    if len(nwindows) == 1:
        core.events.trigger("CloseNetwork",
                            window=e.window,
                            network=e.window.network)

    elif isinstance(e.window, windows.StatusWindow) and conf.get('status'):
        core.events.trigger("CloseNetwork",
                            window=e.window,
                            network=e.window.network)
        for window in nwindows:
            if window != e.window:
                window.close()

    if len(core.manager) == 1:
        windows.new(windows.StatusWindow, irc.Network(), "status", core)
Пример #2
0
def onKeyPress(e):
    if e.key in shortcuts:
        e.window.input.insert(shortcuts[e.key])

    elif e.key == '!c':
        e.window.output.copy()

    elif e.key == 'Page_Up':
        e.window.output.y = e.window.output.y - e.window.output.height / 2

    elif e.key == 'Page_Down':
        e.window.output.y = e.window.output.y + e.window.output.height / 2

    elif e.key == '^Home':
        e.window.output.y = 0

    elif e.key == '^End':
        e.window.output.y = e.window.output.ymax

    elif e.key in ('^Page_Up', '^Page_Down'):
        winlist = list(windows.manager)
        index = winlist.index(e.window) + ((e.key == '^Page_Down') and 1 or -1)
        if 0 <= index < len(winlist):
            winlist[index].activate()

    elif e.key == '!a':
        winlist = list(windows.manager)
        winlist = winlist[winlist.index(e.window):] + winlist
        w = [w for w in winlist if widgets.HILIT in w.activity]

        if not w:
            w = [w for w in winlist if widgets.TEXT in w.activity]

        if w:
            windows.manager.set_active(w[0])

    # tabbed browsing
    elif e.key == '^t':
        windows.new(
            windows.StatusWindow,
            irc.Network(core),
            'status',
            core).activate()

    elif e.key == '^w':
        windows.manager.get_active().close()

    elif e.key == '^f':
        window = windows.manager.get_active()

        find = widgets.FindBox(window)

        window.pack_start(find, expand=False)

        find.textbox.grab_focus()

    elif len(e.key) == 2 and e.key.startswith('!') and e.key[1].isdigit():
        n = int(e.key[1])
        if n and n <= len(core.manager):
            list(core.manager)[n - 1].activate()
Пример #3
0
def onClose(e):
    nwindows = list(windows.get_with(network=e.window.network))
    
    if isinstance(e.window, windows.ChannelWindow): 
        cwindows = list(windows.get_with(
                            network=e.window.network,
                            wclass=windows.ChannelWindow
                            ))
        
        #if we only have one window for the network, don't bother to part as
        # we'll soon be quitting anyway
        if len(nwindows) != 1 and irc_script.ischan(e.window.network, e.window.id):
            e.window.network.part(e.window.id) 
    
    if len(nwindows) == 1:
        events.trigger("CloseNetwork", window=e.window, network=e.window.network)
    
    elif isinstance(e.window, windows.StatusWindow) and conf.get('status'):
        events.trigger("CloseNetwork", window=e.window, network=e.window.network)
        for window in nwindows:
            if window != e.window:
                window.close()
        
    if len(windows.manager) == 1:
        windows.new(windows.StatusWindow, irc.Network(), "status")
Пример #4
0
def server(server=None, port=6667, network=None, connect=True):
    network_info = {}

    if server:
        network_info["name"] = server
        network_info["server"] = server
        if port:
            network_info["port"] = port
        get_network_info(server, network_info)

    if not network:
        network = irc.Network(**network_info)
        windows.new(windows.StatusWindow, network, "status").activate()
    else:
        if "server" in network_info:
            network.name = network_info['name']
            network.server = network_info['server']
            if not network.status:
                window = windows.get_default(network, core.manager)
                if window:
                    window.update()
        if "port" in network_info:
            network.port = network_info["port"]

    if network.status:
        network.quit()
    if connect:
        network.connect()
        #core.window.write("* Connecting to %s on port %s" % (network.server, network.port))
        windows.get_default(network, core.manager).write(
            "* Connecting to %s on port %s" % (network.server, network.port)
        )

    return network
Пример #5
0
def onKeyPress(e):
    if e.key in shortcuts:
        e.window.input.insert(shortcuts[e.key])

    elif e.key == '!c':
        e.window.output.copy()

    elif e.key == 'Page_Up':
        e.window.output.y = e.window.output.y - e.window.output.height / 2

    elif e.key == 'Page_Down':
        e.window.output.y = e.window.output.y + e.window.output.height / 2

    elif e.key == '^Home':
        e.window.output.y = 0

    elif e.key == '^End':
        e.window.output.y = e.window.output.ymax

    elif e.key in ('^Page_Up', '^Page_Down'):
        winlist = list(windows.manager)
        index = winlist.index(e.window) + ((e.key == '^Page_Down') and 1 or -1)
        if 0 <= index < len(winlist):
            winlist[index].activate()

    elif e.key == '!a':
        winlist = list(windows.manager)
        winlist = winlist[winlist.index(e.window):] + winlist
        w = [w for w in winlist if widgets.HILIT in w.activity]

        if not w:
            w = [w for w in winlist if widgets.TEXT in w.activity]

        if w:
            windows.manager.set_active(w[0])

    # tabbed browsing
    elif e.key == '^t':
        windows.new(windows.StatusWindow, irc.Network(core), 'status',
                    core).activate()

    elif e.key == '^w':
        windows.manager.get_active().close()

    elif e.key == '^f':
        window = windows.manager.get_active()

        find = widgets.FindBox(window)

        window.pack_start(find, expand=False)

        find.textbox.grab_focus()

    elif len(e.key) == 2 and e.key.startswith('!') and e.key[1].isdigit():
        n = int(e.key[1])
        if n and n <= len(core.manager):
            list(core.manager)[n - 1].activate()
Пример #6
0
def onCommandDebug(e):
    window = get_debug(e.network)
    if e.args and e.args[0] == 'off':
        if window:
            window.close()
        else:
            e.window.write('* There is no debug window for this network.')
    elif not window:
        debug = 1
        while not not_debug('debug '+str(debug)):
            debug += 1
        windows.new(DebugWindow, e.network, 'debug '+str(debug))
    else:
        e.window.write('* There is already a debug window for this network.')
Пример #7
0
def setupText(e):
    if e.target == e.network.me:
        e.window = windows.new(windows.QueryWindow, e.network, e.source)
    else:
        e.window = \
            windows.get(windows.ChannelWindow, e.network, e.target) or \
            windows.get(windows.QueryWindow, e.network, e.source) or \
            e.window
Пример #8
0
def setupText(e):
    if e.target == e.network.me:
        e.window = windows.new(windows.QueryWindow, e.network, e.source, core)
    else:
        e.window = \
            windows.get(windows.ChannelWindow, e.network, e.target, core) or \
            windows.get(windows.QueryWindow, e.network, e.source, core) or \
            e.window
Пример #9
0
def setupJoin(e):
    if e.source == e.network.me:
        window = windows.new(windows.ChannelWindow, e.network, e.target, core)

        if e.requested:
            window.activate()

    e.window = windows.get(windows.ChannelWindow, e.network, e.target,
                           core) or e.window
Пример #10
0
    def trigger_start():
        events.trigger("Start")
        
        window = windows.manager.get_active()
        
        if not window:
           window = windows.new(windows.StatusWindow, irc.Network(), "status")
           window.activate()

        events.run(command, window, window.network)
Пример #11
0
def setupJoin(e):
    if e.source == e.network.me:
        window = windows.new(windows.ChannelWindow, e.network, e.target, core)

        if e.requested:
            window.activate()

    e.window = windows.get(
        windows.ChannelWindow,
        e.network,
        e.target,
        core) or e.window
Пример #12
0
def setupJoin(e):
    if e.source == e.network.me:
        window = windows.get(windows.StatusWindow, e.network, 'status')
        
        if window and not conf.get('status'):
            window.mutate(windows.ChannelWindow, e.network, e.target)
        else:
            window = windows.new(windows.ChannelWindow, e.network, e.target)
        
        if e.requested:
            window.activate()

    e.window = windows.get(windows.ChannelWindow, e.network, e.target) or e.window
Пример #13
0
    def __init__(self):
        self.window = None
        self.trigger = Trigger()
        self.events = self.trigger.events
        self.manager = widgets.UrkUITabs(self)
        self.channels = []

        mods = self.trigger.get_modules()

        for m in mods:
            m.core = self
            m.manager = self.manager

        if not self.window:
            self.window = windows.new(windows.StatusWindow, irc.Network(self),
                                      "status", self)
            self.window.activate()
Пример #14
0
    def __init__(self, activity):
        self.window = None
        self.trigger = Trigger()
        self.events = self.trigger.events
        self.manager = widgets.UrkUITabs(self)
        self.channels = []

        mods = self.trigger.get_modules()

        for m in mods:
            m.core = self
            m.manager = self.manager

        if not self.window:
            self.window = windows.new(
                windows.StatusWindow,
                irc.Network(self, activity),
                "status",
                self)
            self.window.activate()
Пример #15
0
def onStart(e):
    if conf.get('start-console'):
        windows.new(ConsoleWindow, None, "console")
Пример #16
0
def onCommandConsole(e):
    windows.new(ConsoleWindow, None, "console").activate()
Пример #17
0
def onCommandQuery(e):
    windows.new(windows.QueryWindow, e.network, e.args[0], core).activate()
    if len(e.args) > 1:
        message = ' '.join(e.args[1:])
        if message:  # this is false if you do "/query nickname "
            e.network.msg(e.args[0], ' '.join(e.args[1:]))
Пример #18
0
def onStart(e):
    if conf.get('start-console'):
        windows.new(ConsoleWindow, None, "console")
Пример #19
0
def onCommandConsole(e):
    windows.new(ConsoleWindow, None, "console").activate()