Changeset 2841:49d234d53912 in livinglogic.python.xist

Show
Ignore:
Timestamp:
08/02/07 15:53:48 (12 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

html.applycss() Only set style if there is one. Speed up iterstyles().

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/ll/xist/ns/html.py

    r2840 r2841  
    14701470            style = node.attrs.style 
    14711471            if not style.isfancy(): 
    1472                 # parse the style out of the style attribute 
    1473                 stylerule = cssutils.parseString(u"*{%s}" % style).cssRules[0] 
    1474                 styleselector = xfind.IsSelector(node) 
    1475                 styleweight = xfind.CSSWeight(1, 0, 0) 
     1472                styledata = ( 
     1473                    xfind.CSSWeight(1, 0, 0), 
     1474                    xfind.IsSelector(node), 
     1475                    cssutils.parseString(u"*{%s}" % style).cssRules[0] # parse the style out of the style attribute 
     1476                ) 
    14761477                # put the style attribute into the order as the last of the selectors with ID weight (see http://www.w3.org/TR/REC-CSS1#cascading-order) 
    14771478                done = False 
    1478                 for (weight, selector, rule) in rules: 
    1479                     if weight > styleweight and not done: 
    1480                         yield (styleweight, styleselector, stylerule) 
     1479                for data in rules: 
     1480                    if data[0] > styledata[0] and not done: 
     1481                        yield styledata 
    14811482                        done = True 
    1482                     yield (weight, selector, rule) 
     1483                    yield data 
    14831484                if not done: 
    1484                     yield (styleweight, styleselector, stylerule) 
     1485                    yield styledata 
    14851486                return 
    14861487        for x in rules: 
     
    15051506                                count += 1 
    15061507                    style = " ".join("%s: %s;" % (name, value) for (count, name, value) in sorted(styles.itervalues())) 
    1507                     path[-1].attrs.style = style 
     1508                    if style: 
     1509                        path[-1].attrs.style = style 
    15081510        del path[-1][_isstyle] # drop style sheet nodes 
    15091511