Exemple #1
0
 def _populate_tree_item(self, mode, filename, itemid, group, text,
                                                             description):
     if mode == 'child':
         return core_api.append_item(filename, itemid, group, text=text,
                                                 description=description)
     elif mode == 'sibling':
         return core_api.insert_item_after(filename, itemid, group,
                                         text=text, description=description)
Exemple #2
0
def paste_items(filename, baseid, mode, group, description='Paste items'):
    qmemory = core_api.get_memory_connection()
    cursor = qmemory.cursor()
    cursor.execute(queries.copy_select_parent_roots)
    old_roots = cursor.fetchall()
    core_api.give_memory_connection(qmemory)

    old_to_new_ids = {}

    def recurse(baseid, previd):
        cursor.execute(queries.copy_select_parent, (baseid, previd))
        child = cursor.fetchone()

        if child:
            id_ = child['C_id']

            old_to_new_ids[id_] = core_api.append_item(
                                filename, old_to_new_ids[baseid], group=group,
                                text=child['C_text'], description=description)

            item_paste_event.signal(filename=filename, id_=old_to_new_ids[id_],
                                    oldid=id_, group=group,
                                    description=description)

            recurse(id_, 0)
            recurse(baseid, id_)

    if mode == 'siblings':
        old_roots.reverse()

    for root in old_roots:
        if mode == 'children':
            old_to_new_ids[root['C_id']] = core_api.append_item(
                                filename, baseid, group=group,
                                text=root['C_text'], description=description)
        elif mode == 'siblings':
            old_to_new_ids[root['C_id']] = core_api.insert_item_after(
                                filename, baseid, group=group,
                                text=root['C_text'], description=description)

        item_paste_event.signal(filename=filename,
                                            id_=old_to_new_ids[root['C_id']],
                                            oldid=root['C_id'], group=group,
                                            description=description)

        recurse(root['C_id'], 0)

    new_ids = old_to_new_ids.values()
    new_roots = [old_to_new_ids[root['C_id']] for root in old_roots]

    items_pasted_event.signal()

    return (new_roots, new_ids)
Exemple #3
0
def paste_items(filename, baseid, mode, group, description='Paste items'):
    qmemory = core_api.get_memory_connection()
    cursor = qmemory.cursor()
    cursor.execute(queries.copy_select_parent_roots)
    old_roots = cursor.fetchall()
    core_api.give_memory_connection(qmemory)

    old_to_new_ids = {}

    def recurse(baseid, previd):
        cursor.execute(queries.copy_select_parent, (baseid, previd))
        child = cursor.fetchone()

        if child:
            id_ = child['C_id']

            old_to_new_ids[id_] = core_api.append_item(
                                filename, old_to_new_ids[baseid], group=group,
                                text=child['C_text'], description=description)

            item_paste_event.signal(filename=filename, id_=old_to_new_ids[id_],
                                    oldid=id_, group=group,
                                    description=description)

            recurse(id_, 0)
            recurse(baseid, id_)

    if mode == 'siblings':
        old_roots.reverse()

    for root in old_roots:
        if mode == 'children':
            old_to_new_ids[root['C_id']] = core_api.append_item(
                                filename, baseid, group=group,
                                text=root['C_text'], description=description)
        elif mode == 'siblings':
            old_to_new_ids[root['C_id']] = core_api.insert_item_after(
                                filename, baseid, group=group,
                                text=root['C_text'], description=description)

        item_paste_event.signal(filename=filename,
                                            id_=old_to_new_ids[root['C_id']],
                                            oldid=root['C_id'], group=group,
                                            description=description)

        recurse(root['C_id'], 0)

    new_ids = old_to_new_ids.values()
    new_roots = [old_to_new_ids[root['C_id']] for root in old_roots]

    items_pasted_event.signal()

    return (new_roots, new_ids)
Exemple #4
0
 def _populate_tree_item(self, mode, filename, itemid, group, text,
                         description):
     if mode == 'child':
         return core_api.append_item(filename,
                                     itemid,
                                     group,
                                     text=text,
                                     description=description)
     elif mode == 'sibling':
         return core_api.insert_item_after(filename,
                                           itemid,
                                           group,
                                           text=text,
                                           description=description)