예제 #1
0
파일: commands.py 프로젝트: doggerel/vim
    def _postExec(self):
        UBCmdSave.doDefault()

        ub_set_meta(self.item.getKeyProperty(), self.itemKey)
        vim.command("setl nomodified")

        evt = eval("UB%sSaveEvent('%s')" % (self.itemType == "tmpl" and "Tmpl" or "Post", self.itemKey))
        UBEventQueue.fireEvent(evt)
        UBEventQueue.processEvents()
예제 #2
0
    def _postExec(self):
        UBCmdSave.doDefault()

        ub_set_meta(self.item.getKeyProperty(), self.itemKey)
        vim.command('setl nomodified')
        
        evt = eval("UB%sSaveEvent('%s')" % (self.itemType=='tmpl' and 'Tmpl' or 'Post', self.itemKey));
        UBEventQueue.fireEvent(evt)
        UBEventQueue.processEvents()
예제 #3
0
    def _postExec(self):
        UBCmdSave.doDefault()

        ub_set_meta(self.item.getKeyProperty(), self.itemKey)
        vim.command('setl nomodified')

        evt = eval(
            "UB%sSaveEvent('%s')" %
            (self.itemType == 'tmpl' and 'Tmpl' or 'Post', self.itemKey))
        UBEventQueue.fireEvent(evt)
        UBEventQueue.processEvents()
예제 #4
0
파일: commands.py 프로젝트: doggerel/vim
    def _postExec(self):
        UBCmdSend.doDefault()

        if self.postId != ub_get_meta("post_id"):
            ub_set_meta("post_id", self.postId)
        if self.status != ub_get_meta("status"):
            ub_set_meta("status", self.status)

        saveit = ub_get_option("ub_save_after_sent")
        if "1" == vim.eval("&modified") and saveit is not None and saveit.isdigit() and int(saveit) == 1:
            ub_save_item()

        evt = eval("UBPostSendEvent(%s)" % self.postId)
        UBEventQueue.fireEvent(evt)
        UBEventQueue.processEvents()
예제 #5
0
    def _postExec(self):
        UBCmdSend.doDefault()

        if self.postId != ub_get_meta('post_id'):
            ub_set_meta('post_id', self.postId)
        if self.status != ub_get_meta('status'):
            ub_set_meta('status', self.status)

        saveit = ub_get_option('ub_save_after_sent')
        if '1'==vim.eval('&modified') and saveit is not None and saveit.isdigit() and int(saveit) == 1:
            ub_save_item()
        
        evt = eval("UBPostSendEvent(%s)" % self.postId)
        UBEventQueue.fireEvent(evt)
        UBEventQueue.processEvents()
예제 #6
0
    def _postExec(self):
        UBCmdSend.doDefault()

        if self.postId != ub_get_meta('post_id'):
            ub_set_meta('post_id', self.postId)
        if self.status != ub_get_meta('status'):
            ub_set_meta('status', self.status)

        saveit = ub_get_option('ub_save_after_sent')
        if '1' == vim.eval(
                '&modified') and saveit is not None and saveit.isdigit(
                ) and int(saveit) == 1:
            ub_save_item()

        evt = eval("UBPostSendEvent(%s)" % self.postId)
        UBEventQueue.fireEvent(evt)
        UBEventQueue.processEvents()
예제 #7
0
def ub_wise_open_view(view_name=None, view_type=None):
    '''Wisely decide whether to wipe out the content of current buffer 
    or to open a new splitted window or a new tab.
    '''
    if view_type == 'tab':
        vim.command(":tabnew")
    elif view_type == 'split':
        vim.command(":new")
    elif vim.current.buffer.name is None and vim.eval('&modified') == '0':
        vim.command('setl modifiable')
        del vim.current.buffer[:]
        vim.command('call UBClearUndo()')
        vim.command('setl nomodified')
    else:
        vim.command(":new")

    if view_name is not None:
        vim.command("let b:ub_view_name = '%s'" % view_name)

    UBEventQueue.fireEvent(UBViewEnterEvent(view_name))
    UBEventQueue.processEvents()
예제 #8
0
def ub_wise_open_view(view_name=None, view_type=None):
    '''Wisely decide whether to wipe out the content of current buffer 
    or to open a new splitted window or a new tab.
    '''
    if view_type == 'tab':
        vim.command(":tabnew")
    elif view_type == 'split':
        vim.command(":new")
    elif vim.current.buffer.name is None and vim.eval('&modified')=='0':
        vim.command('setl modifiable')
        del vim.current.buffer[:]
        vim.command('call UBClearUndo()')
        vim.command('setl nomodified')
    else:
        vim.command(":new")

    if view_name is not None:
        vim.command("let b:ub_view_name = '%s'" % view_name)

    UBEventQueue.fireEvent(UBViewEnterEvent(view_name))
    UBEventQueue.processEvents()
예제 #9
0
 def _exec(self):
     try:
         if self.itemType == 'tmpl':
             self.sess.query(Template).filter(Template.name==self.itemKey.decode(self.enc)).delete()
             UBEventQueue.fireEvent(UBTmplDelEvent(self.itemKey))
         else:
             if self.scope=='remote':
                 if self.itemType=='page':
                     api.wp.deletePage('', cfg.loginName, cfg.password, self.itemKey)
                 else:
                     api.metaWeblog.deletePost('', self.itemKey, cfg.loginName, cfg.password)
                 UBEventQueue.fireEvent(UBRemotePostDelEvent(self.itemKey))
             else:
                 self.sess.query(Post).filter(Post.type==self.itemType).filter(Post.id==self.itemKey).delete()
                 UBEventQueue.fireEvent(UBLocalPostDelEvent(self.itemKey))
     except Exception,e:
         self.sess.rollback()
         self.sess.close()
         raise e
예제 #10
0
 def _exec(self):
     try:
         if self.itemType == 'tmpl':
             self.sess.query(Template).filter(
                 Template.name == self.itemKey.decode(self.enc)).delete()
             UBEventQueue.fireEvent(UBTmplDelEvent(self.itemKey))
         else:
             if self.scope == 'remote':
                 if self.itemType == 'page':
                     api.wp.deletePage('', cfg.loginName, cfg.password,
                                       self.itemKey)
                 else:
                     api.metaWeblog.deletePost('', self.itemKey,
                                               cfg.loginName, cfg.password)
                 UBEventQueue.fireEvent(UBRemotePostDelEvent(self.itemKey))
             else:
                 self.sess.query(Post).filter(
                     Post.type == self.itemType).filter(
                         Post.id == self.itemKey).delete()
                 UBEventQueue.fireEvent(UBLocalPostDelEvent(self.itemKey))
     except Exception, e:
         self.sess.rollback()
         self.sess.close()
         raise e
예제 #11
0
파일: listeners.py 프로젝트: doggerel/vim
        for nr in ub_get_buffers(
            ['post_list', 'page_list', 'search_result_list']):
            if nr == ub_get_bufnr('%'):
                ub_refresh_current_view()
            else:
                ub_set_view_outdated(nr)


class UBPostSendListener(UBListener):
    ''' Listener for sending posts/pages
    1. Mark all remote list views outdated
    '''
    eventType = UBPostSendEvent

    @staticmethod
    def processEvent(evt):
        for nr in ub_get_buffers(['remote_post_list', 'remote_page_list']):
            ub_set_view_outdated(nr)


UBEventQueue.registerListener(UBDebugListener)
UBEventQueue.registerListener(UBTmplDelListener)
UBEventQueue.registerListener(UBTmplSaveListener)
UBEventQueue.registerListener(UBLocalPostDelListener)
UBEventQueue.registerListener(UBRemotePostDelListener)
UBEventQueue.registerListener(UBPostSendListener)
UBEventQueue.registerListener(UBPostSaveListener)

if __name__ == '__main__':
    pass
예제 #12
0
        vim.command("command! -buffer -nargs=0 UBRefresh exec('py ub_refresh_current_view()')")

class UBReplaceCompleteListener(UBListener):
    ''' Listener for context replacement event
    1. Refresh the current view if it is an list view of this post
    2. Mark all list views of posts/pages outdated
    '''
    eventType = UBReplaceCompleteEvent

    @staticmethod
    def processEvent(evt):
        if evt.srcObj <= 0: return
        for nr in ub_get_buffers(['post_edit','page_edit','post_list','page_list','search_result_list']):
            if nr == ub_get_bufnr('%'):
                ub_refresh_current_view()
            else:
                ub_set_view_outdated(nr)

UBEventQueue.registerListener(UBDebugListener)
UBEventQueue.registerListener(UBTmplDelListener)
UBEventQueue.registerListener(UBTmplSaveListener)
UBEventQueue.registerListener(UBLocalPostDelListener)
UBEventQueue.registerListener(UBRemotePostDelListener)
UBEventQueue.registerListener(UBPostSendListener)
UBEventQueue.registerListener(UBPostSaveListener)
UBEventQueue.registerListener(UBViewEnterListener)
UBEventQueue.registerListener(UBReplaceCompleteListener)

if __name__ == '__main__':
    pass
예제 #13
0
파일: listeners.py 프로젝트: doggerel/vim
                else:
                    ub_set_view_outdated(nr)

        for nr in ub_get_buffers(['post_list','page_list','search_result_list']):
            if nr == ub_get_bufnr('%'):
                ub_refresh_current_view()
            else:
                ub_set_view_outdated(nr)

class UBPostSendListener(UBListener):
    ''' Listener for sending posts/pages
    1. Mark all remote list views outdated
    '''
    eventType = UBPostSendEvent

    @staticmethod
    def processEvent(evt):
        for nr in ub_get_buffers(['remote_post_list','remote_page_list']):
            ub_set_view_outdated(nr)

UBEventQueue.registerListener(UBDebugListener)
UBEventQueue.registerListener(UBTmplDelListener)
UBEventQueue.registerListener(UBTmplSaveListener)
UBEventQueue.registerListener(UBLocalPostDelListener)
UBEventQueue.registerListener(UBRemotePostDelListener)
UBEventQueue.registerListener(UBPostSendListener)
UBEventQueue.registerListener(UBPostSaveListener)

if __name__ == '__main__':
    pass
예제 #14
0
 def _postExec(self):
     UBCmdReplace.doDefault()
     evt = UBReplaceCompleteEvent(self.count)
     UBEventQueue.fireEvent(evt)
     UBEventQueue.processEvents()
     ub_echo(_('%d items substituted !') % self.count)
예제 #15
0
                    else:
                        api.metaWeblog.deletePost('', self.itemKey,
                                                  cfg.loginName, cfg.password)
                    UBEventQueue.fireEvent(UBRemotePostDelEvent(self.itemKey))
                else:
                    self.sess.query(Post).filter(
                        Post.type == self.itemType).filter(
                            Post.id == self.itemKey).delete()
                    UBEventQueue.fireEvent(UBLocalPostDelEvent(self.itemKey))
        except Exception, e:
            self.sess.rollback()
            self.sess.close()
            raise e
        else:
            self.sess.commit()
            UBEventQueue.processEvents()
            msg = _('%s %s "%s" was deleted !') % (
                self.scopeName.capitalize(), self.itemTypeName, self.itemName)
            ub_echo(msg)


class UBCmdOpenItemUnderCursor(UBCommand):
    def __init__(self, viewType=None):
        UBCommand.__init__(self)
        self.viewType = viewType
        self.viewScopes = ['list']

        lineParts = vim.current.line.split()
        if ub_is_cursorline_valid('template'):
            self.itemKey = lineParts[0]
        elif ub_is_cursorline_valid('general'):
예제 #16
0
    1. Refresh the current view if it is an list view of this post
    2. Mark all list views of posts/pages outdated
    '''
    eventType = UBReplaceCompleteEvent

    @staticmethod
    def processEvent(evt):
        if evt.srcObj <= 0: return
        for nr in ub_get_buffers([
                'post_edit', 'page_edit', 'post_list', 'page_list',
                'search_result_list'
        ]):
            if nr == ub_get_bufnr('%'):
                ub_refresh_current_view()
            else:
                ub_set_view_outdated(nr)


UBEventQueue.registerListener(UBDebugListener)
UBEventQueue.registerListener(UBTmplDelListener)
UBEventQueue.registerListener(UBTmplSaveListener)
UBEventQueue.registerListener(UBLocalPostDelListener)
UBEventQueue.registerListener(UBRemotePostDelListener)
UBEventQueue.registerListener(UBPostSendListener)
UBEventQueue.registerListener(UBPostSaveListener)
UBEventQueue.registerListener(UBViewEnterListener)
UBEventQueue.registerListener(UBReplaceCompleteListener)

if __name__ == '__main__':
    pass
예제 #17
0
                if self.scope=='remote':
                    if self.itemType=='page':
                        api.wp.deletePage('', cfg.loginName, cfg.password, self.itemKey)
                    else:
                        api.metaWeblog.deletePost('', self.itemKey, cfg.loginName, cfg.password)
                    UBEventQueue.fireEvent(UBRemotePostDelEvent(self.itemKey))
                else:
                    self.sess.query(Post).filter(Post.type==self.itemType).filter(Post.id==self.itemKey).delete()
                    UBEventQueue.fireEvent(UBLocalPostDelEvent(self.itemKey))
        except Exception,e:
            self.sess.rollback()
            self.sess.close()
            raise e
        else:
            self.sess.commit()
            UBEventQueue.processEvents()
            msg = _('%s %s "%s" was deleted !') % (self.scopeName.capitalize(), self.itemTypeName, self.itemName)
            ub_echo(msg)

class UBCmdOpenItemUnderCursor(UBCommand):
    def __init__(self, viewType=None):
        UBCommand.__init__(self)
        self.viewType = viewType
        self.viewScopes = ['list']

        lineParts = vim.current.line.split()
        if ub_is_cursorline_valid('template'):
            self.itemKey = lineParts[0]
        elif ub_is_cursorline_valid('general'):
            if self.scope == 'local':
                self.itemKey = int(lineParts[0])
예제 #18
0
 def _postExec(self):
     UBCmdReplace.doDefault()
     evt = UBReplaceCompleteEvent(self.count)
     UBEventQueue.fireEvent(evt)
     UBEventQueue.processEvents()
     ub_echo(_('%d items substituted !') % self.count)