[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