Changeset 31 for page.py

Show
Ignore:
Timestamp:
07/09/06 12:42:50 (2 years ago)
Author:
ploum
Message:

Transition to XML completed. Bookmarks are now described in XML 1.0.
This is needed in order to implement bookmarks storage and advanced search
support for bookmarks

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • page.py

    r30 r31  
    11#!/usr/bin/env python 
    22# -*- coding: utf-8 -*- 
    3 import sys 
    4 import string 
     3import sys, string, xml.dom.minidom 
    54try: 
    65        import gtk 
     
    1817        string = widget.get_name() 
    1918        # this must be modified if we change the string representation 
    20         array=string.split("\n\n",2) 
    21         return array 
     19        doc = xml.dom.minidom.parseString(string) 
     20        bmark = doc.getElementsByTagName("bookmark")[0] 
     21        stype = int(bmark.getAttribute("type")) 
     22        title = bmark.getAttribute("title") 
     23        return [title, stype, string] 
    2224 
    2325def read_descr(string) : 
     
    5557                zename='' 
    5658                title='' 
     59                doc = xml.dom.minidom.Document() 
     60                bmark = doc.createElement("bookmark") 
     61                doc.appendChild(bmark) 
    5762                if search_type == 1 : 
     63                        bmark.setAttribute("type","1") 
    5864                        title = "bug #%s"%args 
    59                         zename= "%s\n\n1\n\n%s" %(title,args) 
     65                        bmark.setAttribute("title", title) 
     66                        node = doc.createElement("bug") 
     67                        node_text = doc.createTextNode(args) 
     68                        node.appendChild(node_text) 
     69                        bmark.appendChild(node) 
    6070                elif search_type == 2 : 
    6171                        search = args["search"] 
    6272                        title = "%s" %search 
    63                         zename = "%s\n\n2\n\n%s"%(title,search) 
     73                        bmark.setAttribute("type","2") 
     74                        bmark.setAttribute("title", title) 
     75                        node = doc.createElement("search") 
     76                        node_text = doc.createTextNode(search) 
     77                        node.appendChild(node_text) 
     78                        bmark.appendChild(node)          
    6479                elif search_type == 3 : 
     80                        bmark.setAttribute("type","3") 
     81                        search = args["search"] 
    6582                        product = args["product"] 
    66                         search = args["search"] 
    6783                        if search == None : 
    6884                                title = "(%s)"%product 
    69                                 descr = product 
    7085                        else : 
    7186                                title = "(%s) %s"%(product,search) 
    72                                 descr = "%s\n%s"%(product, search) 
    73                         zename = "%s\n\n3\n\n%s"%(title,descr) 
     87                                node = doc.createElement("search") 
     88                                node_text = doc.createTextNode(search) 
     89                                node.appendChild(node_text) 
     90                                bmark.appendChild(node)          
     91                         
     92                        bmark.setAttribute("title", title) 
     93                        prod = doc.createElement("product") 
     94                        prod_text = doc.createTextNode(product) 
     95                        prod.appendChild(prod_text) 
     96                        bmark.appendChild(prod) 
     97 
     98                zename = doc.toxml() 
    7499                return [title, zename] 
    75100