[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/koffice-essen/libs/kotext/styles
From:       Thorsten Zachmann <t.zachmann () zagge ! de>
Date:       2010-12-04 8:45:04
Message-ID: 20101204084504.292BBAC8A4 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1203472 by zachmann:

Fix some init problems introduced by my speedup commit
Read the property from the correct namespace border-model is not in namespace style \
but table


 M  +49 -35    KoTableBorderStyle.cpp  
 M  +3 -0      KoTableBorderStyle.h  
 M  +1 -1      KoTableCellStyle.cpp  
 M  +2 -2      KoTableStyle.cpp  


--- branches/work/koffice-essen/libs/kotext/styles/KoTableBorderStyle.cpp \
#1203471:1203472 @@ -28,6 +28,23 @@
 
 KoTableBorderStylePrivate::KoTableBorderStylePrivate()
 {
+    edges[KoTableBorderStyle::Top].spacing = 0;
+    borderstyle[KoTableBorderStyle::Top] = KoTableBorderStyle::BorderNone;
+
+    edges[KoTableBorderStyle::Left].spacing = 0;
+    borderstyle[KoTableBorderStyle::Left] = KoTableBorderStyle::BorderNone;
+
+    edges[KoTableBorderStyle::Bottom].spacing = 0;
+    borderstyle[KoTableBorderStyle::Bottom] = KoTableBorderStyle::BorderNone;
+
+    edges[KoTableBorderStyle::Right].spacing = 0;
+    borderstyle[KoTableBorderStyle::Right] = KoTableBorderStyle::BorderNone;
+
+    edges[KoTableBorderStyle::TopLeftToBottomRight].spacing = 0;
+    borderstyle[KoTableBorderStyle::TopLeftToBottomRight] = \
KoTableBorderStyle::BorderNone; +
+    edges[KoTableBorderStyle::BottomLeftToTopRight].spacing = 0;
+    borderstyle[KoTableBorderStyle::BottomLeftToTopRight] = \
KoTableBorderStyle::BorderNone;  }
 
 KoTableBorderStylePrivate::~KoTableBorderStylePrivate()
@@ -38,39 +55,30 @@
     : QObject(parent)
     , d_ptr(new KoTableBorderStylePrivate())
 {
-    Q_D(KoTableBorderStyle);
-
-    //d->edges[Top].outerPen = format.penProperty(TopBorderOuterPen);
-    d->edges[Top].spacing = 0;
-   // d->edges[Top].innerPen = format.penProperty(TopBorderInnerPen);
-    d->borderstyle[Top] = BorderNone;
-
-   // d->edges[Left].outerPen = format.penProperty(LeftBorderOuterPen);
-    d->edges[Left].spacing = 0;
-   // d->edges[Left].innerPen = format.penProperty(LeftBorderInnerPen);
-    d->borderstyle[Left] = BorderNone;
-
-    //d->edges[Bottom].outerPen =format.penProperty(BottomBorderOuterPen);
-    d->edges[Bottom].spacing = 0;
-    //d->edges[Bottom].innerPen = format.penProperty(BottomBorderInnerPen);
-    d->borderstyle[Bottom] = BorderNone;
-
-    //d->edges[Right].outerPen = format.penProperty(RightBorderOuterPen);
-    d->edges[Right].spacing = 0;
-    //d->edges[Right].innerPen = format.penProperty(RightBorderInnerPen);
-    d->borderstyle[Right] = BorderNone;
-
-    d->edges[TopLeftToBottomRight].spacing = 0;
-    d->borderstyle[TopLeftToBottomRight] = BorderNone;
-
-    d->edges[BottomLeftToTopRight].spacing = 0;
-    d->borderstyle[BottomLeftToTopRight] = BorderNone;
 }
 
 KoTableBorderStyle::KoTableBorderStyle(const QTextTableCellFormat &format, QObject \
*parent)  : QObject(parent)
     , d_ptr(new KoTableBorderStylePrivate())
 {
+    init(format);
+}
+
+KoTableBorderStyle::KoTableBorderStyle(KoTableBorderStylePrivate &dd, const \
QTextTableCellFormat &format, QObject *parent) +    : QObject(parent)
+    , d_ptr(&dd)
+{
+    init(format);
+}
+
+KoTableBorderStyle::KoTableBorderStyle(KoTableBorderStylePrivate &dd, QObject \
*parent) +    : QObject(parent)
+    , d_ptr(&dd)
+{
+}
+
+void KoTableBorderStyle::init(const QTextTableCellFormat &format)
+{
     Q_D(KoTableBorderStyle);
 
     d->edges[Top].outerPen = format.penProperty(TopBorderOuterPen);
@@ -104,12 +112,6 @@
     d->borderstyle[BottomLeftToTopRight] = \
BorderStyle(format.intProperty(BottomLeftToTopRightBorderStyle));  }
 
-KoTableBorderStyle::KoTableBorderStyle(KoTableBorderStylePrivate &dd, QObject \
                *parent)
-    : QObject(parent)
-    , d_ptr(&dd)
-{
-}
-
 KoTableBorderStyle::~KoTableBorderStyle()
 {
     delete d_ptr;
@@ -425,11 +427,23 @@
     Q_D(const KoTableBorderStyle);
     const KoTableBorderStylePrivate *styleBelowD = static_cast<const \
KoTableBorderStylePrivate*>(styleBelow.d_func());  
-    // First determine which style "wins" by comparing total width
+    bool paintThis = true;
+    if (d->borderstyle[Bottom] == BorderNone) {
+        if (styleBelowD->borderstyle[Top] == BorderNone) {
+            return;
+        }
+        paintThis = false;
+    }
+    else {
+        if (styleBelowD->borderstyle[Top] != BorderNone) {
     qreal thisWidth = d->edges[Bottom].outerPen.widthF() + d->edges[Bottom].spacing \
                + d->edges[Bottom].innerPen.widthF();
     qreal thatWidth = styleBelowD->edges[Top].outerPen.widthF() + \
                styleBelowD->edges[Top].spacing
                                     + styleBelowD->edges[Top].innerPen.widthF();
-    if(thisWidth >= thatWidth) {
+            paintThis = thisWidth > thatWidth;
+        }
+    }
+
+    if (paintThis) {
         // bottom style wins
        qreal t=y;
         if (d->edges[Bottom].outerPen.widthF() > 0) {
--- branches/work/koffice-essen/libs/kotext/styles/KoTableBorderStyle.h \
#1203471:1203472 @@ -225,10 +225,13 @@
     qreal bottomBorderWidth() const;
 
 protected:
+    KoTableBorderStyle(KoTableBorderStylePrivate &dd, const QTextTableCellFormat \
&format, QObject *parent);  KoTableBorderStyle(KoTableBorderStylePrivate &dd, QObject \
*parent);  KoTableBorderStylePrivate *d_ptr;
 
 private:
+    void init(const QTextTableCellFormat &format);
+
     Q_DECLARE_PRIVATE(KoTableBorderStyle)
 };
 
--- branches/work/koffice-essen/libs/kotext/styles/KoTableCellStyle.cpp \
#1203471:1203472 @@ -60,7 +60,7 @@
 }
 
 KoTableCellStyle::KoTableCellStyle(const QTextTableCellFormat &format, QObject \
                *parent)
-    : KoTableBorderStyle(*new KoTableCellStylePrivate(), parent)
+    : KoTableBorderStyle(*new KoTableCellStylePrivate(), format, parent)
 {
     Q_D(KoTableCellStyle);
     d->stylesPrivate = format.properties();
--- branches/work/koffice-essen/libs/kotext/styles/KoTableStyle.cpp #1203471:1203472
@@ -446,9 +446,9 @@
     }
     
     // border-model 
-    if (styleStack.hasProperty(KoXmlNS::style, "border-model")) {
+    if (styleStack.hasProperty(KoXmlNS::table, "border-model")) {
         // OASIS spec says it's "auto"/"always", not a boolean.
-        QString val = styleStack.property(KoXmlNS::style, "border-model");
+        QString val = styleStack.property(KoXmlNS::table, "border-model");
         setCollapsingBorderModel(val =="collapsing");
     }
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic