[prev in list] [next in list] [prev in thread] [next in thread]
List: koffice
Subject: Re: Bug#19794: kformula crashes when deleting document contents
From: Ulrich Kuettler <ulrich.kuettler () mailbox ! tu-dresden ! de>
Date: 2001-02-05 16:40:20
[Download RAW message or body]
On Monday 05 February 2001 17:04, Werner Trobin wrote:
>
> Please send your patches to the list and if they look okay
> we'll commit them, of course. It's a bit difficult for kformula,
> though, because noone can tell if it looks "okay" :)
That's fine with me. :-)
But as I want to do some more work on kformula I would prefer to apply the
patches myself. (Currently Andrea Rizzi and I are thinking about improving
the element structure.) I already asked David Faure to get cvs access but he
seems to be busy.
Uli
["refactoring.patch" (text/plain)]
? work
? ChangeLog
Index: BasicElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/BasicElement.cc,v
retrieving revision 1.23
diff -u -3 -p -r1.23 BasicElement.cc
--- BasicElement.cc 2000/10/19 11:39:21 1.23
+++ BasicElement.cc 2001/02/03 17:13:05
@@ -19,14 +19,14 @@
BasicElement::BasicElement(KFormulaContainer *Formula,
BasicElement *Prev,
int Relation,
- BasicElement *Next,
- QString Content)
+ BasicElement *Next/*,
+ QString Content*/)
{
formula=Formula;
prev=Prev;
relation=Relation;
next=Next;
- content=Content;
+ //content=Content;
if(prev!=NULL)
{
numericFont=prev->getNumericFont();
@@ -55,7 +55,7 @@ BasicElement::~BasicElement()
BasicElement *BasicElement::isInside(QPoint point)
{
int i;
- if(myArea.contains(point))
+ if(myArea().contains(point))
{
BasicElement *aValue=0L;
@@ -94,12 +94,12 @@ void BasicElement::draw(QPoint drawPoint
if( beActive )
pen->setPen(Qt::red);
pen->setBrush(Qt::NoBrush);
- pen->drawRect(x+familySize.x(),y-5,10,10);
+ pen->drawRect(x+familySize().x(),y-5,10,10);
- myArea=globalSize;
- myArea.moveBy(x,y);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
#ifdef RECT
- pen->drawRect(myArea);
+ pen->drawRect(myArea());
#endif
if(beActive)
pen->setPen(Qt::blue);
@@ -107,29 +107,29 @@ void BasicElement::draw(QPoint drawPoint
if(beActive)
pen->setPen(Qt::black);
if(next!=0L)
- next->draw(drawPoint+QPoint(localSize.width(),0),resolution);
+ next->draw(drawPoint+QPoint(localSize().width(),0),resolution);
}
void BasicElement::drawIndexes(QPainter *,int resolution)
{
//draw point
- QPoint dp = myArea.topLeft()-globalSize.topLeft();
+ QPoint dp = myArea().topLeft()-globalSize().topLeft();
if(index[0]!=0L)
- index[0]->draw(dp + familySize.topLeft() -
+ index[0]->draw(dp + familySize().topLeft() -
index[0]->getSize().bottomRight(),
resolution);
if(index[1]!=0L)
- index[1]->draw(dp + familySize.bottomLeft() -
+ index[1]->draw(dp + familySize().bottomLeft() -
index[1]->getSize().topRight(),
resolution);
if(index[2]!=0L)
- index[2]->draw(dp + familySize.topRight() -
+ index[2]->draw(dp + familySize().topRight() -
index[2]->getSize().bottomLeft(),
resolution);
if(index[3]!=0L)
- index[3]->draw(dp + familySize.bottomRight() -
+ index[3]->draw(dp + familySize().bottomRight() -
index[3]->getSize().topLeft(),
resolution);
}
@@ -145,14 +145,14 @@ void BasicElement::checkSize()
next->checkSize();
nextDimension=next->getSize();
}
- localSize=QRect(0,-5,10,10);
- familySize=localSize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left(),0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ setLocalSize(QRect(0,-5,10,10));
+ setFamilySize(localSize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left(),0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
}
@@ -182,31 +182,31 @@ void BasicElement::checkIndexesSize()
if(index[0]!=0L)
{
indexDimension=index[0]->getSize();
- vectorT=familySize.topLeft()-indexDimension.bottomRight();
+ vectorT=familySize().topLeft()-indexDimension.bottomRight();
indexDimension.moveBy(vectorT.x(),vectorT.y());
- localSize=localSize.unite(indexDimension);
+ setLocalSize(localSize().unite(indexDimension));
}
if(index[1]!=0L)
{
indexDimension=index[1]->getSize();
- vectorT=familySize.bottomLeft()-indexDimension.topRight();
+ vectorT=familySize().bottomLeft()-indexDimension.topRight();
indexDimension.moveBy(vectorT.x(),vectorT.y());
- localSize=localSize.unite(indexDimension);
+ setLocalSize(localSize().unite(indexDimension));
}
if(index[2]!=0L)
{
indexDimension=index[2]->getSize();
- vectorT=familySize.topRight()-indexDimension.bottomLeft();
+ vectorT=familySize().topRight()-indexDimension.bottomLeft();
indexDimension.moveBy(vectorT.x(),vectorT.y());
- localSize=localSize.unite(indexDimension);
+ setLocalSize(localSize().unite(indexDimension));
}
if(index[3]!=0L)
{
indexDimension=index[3]->getSize();
- vectorT=familySize.bottomRight()-indexDimension.topLeft();
+ vectorT=familySize().bottomRight()-indexDimension.topLeft();
indexDimension.moveBy(vectorT.x(),vectorT.y());
- localSize=localSize.unite(indexDimension);
+ setLocalSize(localSize().unite(indexDimension));
}
}
@@ -273,7 +273,7 @@ void BasicElement::setNumericFont(int va
void BasicElement::substituteElement(BasicElement *clone)
{
int i;
- clone->setContent(content);
+ clone->setContent(getContent());
clone->setNext(next);
clone->setPrev(prev);
for(i=0;i<4;i++)
@@ -492,15 +492,15 @@ void BasicElement::makeList(bool active)
QRect BasicElement::getCursor(int atPos)
{
- QPoint dp = myArea.topLeft()-globalSize.topLeft();
+ QPoint dp = myArea().topLeft()-globalSize().topLeft();
if (typeid(*this) == typeid(BasicElement))
- return (QRect(dp.x()+familySize.x()+3,dp.y()-8,5,16));
+ return (QRect(dp.x()+familySize().x()+3,dp.y()-8,5,16));
else
{
if(atPos==0)
- return (QRect(dp.x()+localSize.x(),dp.y()-7,5,14));
+ return (QRect(dp.x()+localSize().x(),dp.y()-7,5,14));
else
- return (QRect(dp.x()+localSize.right(),dp.y()-8,5,16));
+ return (QRect(dp.x()+localSize().right(),dp.y()-8,5,16));
}
Index: BasicElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/BasicElement.h,v
retrieving revision 1.17
diff -u -3 -p -r1.17 BasicElement.h
--- BasicElement.h 2000/10/19 11:39:21 1.17
+++ BasicElement.h 2001/02/03 17:13:06
@@ -42,8 +42,7 @@ class BasicElement
BasicElement(KFormulaContainer *Formula,
BasicElement *Prev=0,
int Relation=-1,
- BasicElement *Next=0,
- QString Content="");
+ BasicElement *Next=0);
/*
* Link Next & Prev removing itself
@@ -126,7 +125,7 @@ class BasicElement
/*
* Return globalsize (see globalSize)
*/
- QRect getSize() const { return globalSize; }
+ QRect getSize() const { return _globalSize; }
/*
* Return next
@@ -151,13 +150,18 @@ class BasicElement
* Return the default color of element
*/
QColor *getColor() const { return defaultColor; }
-
- QString getContent() const {return content;}
+
+ // I want these to disappear.
+ // They are overridden in every subtype. Each time with
+ // completly different meaning.
+ // There should be seperate methodes instead.
+ virtual QString getContent() const {return "";}
+ virtual void setContent(QString) {}
+ virtual QString getContent() { return "";}
+
/*
* Various Set-GetFunction
*/
- void setContent(QString a) {content=a.copy();}
- QString getContent() { return content;}
void setIndex(BasicElement *e,int i) {index[i]=e; }
void setChild(BasicElement *e,int i) {child[i]=e; }
void setColor(QColor *c) {defaultColor=c; }
@@ -200,7 +204,9 @@ class BasicElement
* I know nothing about the future of this member
*/
KFormulaContainer *formula;
-
+
+ // This one is bad. Prev is better off doing one thing only.
+ // The index and child relationship will need another connection.
/*
* realtionship with prev
* -1=I'm its Next
@@ -215,6 +221,7 @@ class BasicElement
BasicElement *next;
BasicElement *prev;
+ // Indexes should be handled by a separete class I think.
/*
* Index printed near the corners of element
* Those aren't integral or Sum limits
@@ -222,7 +229,9 @@ class BasicElement
* 0=left_up,1=left_down,2=right_up,3=right_down
*/
BasicElement *index[4];
-
+
+ // It should be up to derived classes to have children.
+ // So this attribute is going to disappear.
/*
* each dervied class could add children
* Sum,integral,matrix,fraction,root,delimiter,decoration need children
@@ -245,30 +254,65 @@ class BasicElement
/*
* real data: text,symbol code,delimiter code,matrix rows&cols
*/
- QString content;
+ // This has different meaning for different subtypes.
+ // So it should be defined there.
+ //QString content;
+private:
+
+ // I don't think all those are needed.
+
/*
* Size of (family+next) & next elements
*/
- QRect globalSize; //y=0 base line
+ QRect _globalSize; //y=0 base line
/*
* Size of family & indexes
* This name isn't very good.I'm sorry.
*/
- QRect localSize;
+ QRect _localSize;
/*
* Size of Family:father & children (without indexes )
*/
- QRect familySize;
+ QRect _familySize;
+
+ /*
+ * Area where I am painted (last time)
+ * localSize+drawPoint
+ */
+ QRect _myArea;
+
+protected:
+
+ /*
+ * Size of (family+next) & next elements
+ */
+ QRect& globalSize() { return _globalSize; }
+ void setGlobalSize(QRect globalSize) { _globalSize = globalSize; }
/*
+ * Size of family & indexes
+ * This name isn't very good.I'm sorry.
+ */
+ QRect& localSize() { return _localSize; }
+ void setLocalSize(QRect localSize) { _localSize = localSize; }
+
+ /*
+ * Size of Family:father & children (without indexes )
+ */
+ QRect& familySize() { return _familySize; }
+ void setFamilySize(QRect familySize) { _familySize = familySize; }
+
+ /*
* Area where I am painted (last time)
* localSize+drawPoint
*/
- QRect myArea;
+ QRect& myArea() { return _myArea; }
+ void setMyArea(QRect area) { _myArea = area; }
+
/*
* Font
*
Index: BracketElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/BracketElement.cc,v
retrieving revision 1.16
diff -u -3 -p -r1.16 BracketElement.cc
--- BracketElement.cc 2000/10/19 11:39:21 1.16
+++ BracketElement.cc 2001/02/03 17:13:06
@@ -21,7 +21,8 @@ BracketElement::BracketElement(KFormulaC
BasicElement *Prev,
int Relation,
BasicElement *Next,
- QString Content) : BasicElement(Formula,Prev,Relation,Next,Content)
+ QString Content)
+ : BasicElement(Formula,Prev,Relation,Next), content(Content)
{
/*
Stuff to load pixmap (if need)
@@ -47,8 +48,8 @@ void BracketElement::draw(QPoint drawPoi
if( beActive )
pen->setPen(Qt::red);
- // familySize IS A QRECT
- int unit=familySize.height()/4;
+ // familySize() IS A QRECT
+ int unit=familySize().height()/4;
/*
Draw Bracket!!
*/
@@ -60,9 +61,9 @@ void BracketElement::draw(QPoint drawPoi
x+=1;
for(int i=0;i<2;i++)
{
- ch=QChar(content[i]);
+ ch=QChar(getContent()[i]);
if(i)
- x+=familySize.width()-unit-ofs-3;
+ x+=familySize().width()-unit-ofs-3;
switch (ch)
{
@@ -72,10 +73,10 @@ void BracketElement::draw(QPoint drawPoi
*/
{
QPointArray points(5);
- points.setPoint(1,x+familySize.x()+unit/2,y+familySize.y());
- points.setPoint(2,x+familySize.x()+unit/2+ofs,y+familySize.y());
- points.setPoint(3,x+familySize.x()+unit/2+ofs,y+familySize.bottom());
- points.setPoint(4,x+familySize.x()+unit/2,y+familySize.bottom());
+ points.setPoint(1,x+familySize().x()+unit/2,y+familySize().y());
+ points.setPoint(2,x+familySize().x()+unit/2+ofs,y+familySize().y());
+ points.setPoint(3,x+familySize().x()+unit/2+ofs,y+familySize().bottom());
+ points.setPoint(4,x+familySize().x()+unit/2,y+familySize().bottom());
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,4);
}
@@ -86,16 +87,16 @@ void BracketElement::draw(QPoint drawPoi
case '?':
{
QPointArray points(5);
- points.setPoint(1,x+familySize.x()+unit/4,y+familySize.y());
- points.setPoint(2,x+familySize.x()+unit/4+ofs,y+familySize.y());
- points.setPoint(3,x+familySize.x()+unit/4+ofs,y+familySize.bottom());
- points.setPoint(4,x+familySize.x()+unit/4,y+familySize.bottom());
+ points.setPoint(1,x+familySize().x()+unit/4,y+familySize().y());
+ points.setPoint(2,x+familySize().x()+unit/4+ofs,y+familySize().y());
+ points.setPoint(3,x+familySize().x()+unit/4+ofs,y+familySize().bottom());
+ points.setPoint(4,x+familySize().x()+unit/4,y+familySize().bottom());
pen->setBrush(pen->pen().color());
pen->drawPolyline(points,1,4);
- \
points.setPoint(1,x+familySize.x()+unit*3/4,y+familySize.y());
- points.setPoint(2,x+familySize.x()+unit*3/4+ofs,y+familySize.y());
- points.setPoint(3,x+familySize.x()+unit*3/4+ofs,y+familySize.bottom());
- points.setPoint(4,x+familySize.x()+unit*3/4,y+familySize.bottom());
+ \
points.setPoint(1,x+familySize().x()+unit*3/4,y+familySize().y()); + \
points.setPoint(2,x+familySize().x()+unit*3/4+ofs,y+familySize().y()); + \
points.setPoint(3,x+familySize().x()+unit*3/4+ofs,y+familySize().bottom()); + \
points.setPoint(4,x+familySize().x()+unit*3/4,y+familySize().bottom()); \
pen->setBrush(pen->pen().color()); pen->drawPolyline(points,1,4);
}
@@ -112,10 +113,10 @@ void BracketElement::draw(QPoint drawPoi
case '\\':
{
QPointArray points(5);
- points.setPoint(1,x+familySize.x(),y+familySize.y());
- points.setPoint(2,x+familySize.x()+ofs,y+familySize.y());
- points.setPoint(3,x+familySize.x()+unit+ofs,y+familySize.bottom());
- points.setPoint(4,x+familySize.x()+unit,y+familySize.bottom());
+ points.setPoint(1,x+familySize().x(),y+familySize().y());
+ points.setPoint(2,x+familySize().x()+ofs,y+familySize().y());
+ points.setPoint(3,x+familySize().x()+unit+ofs,y+familySize().bottom());
+ points.setPoint(4,x+familySize().x()+unit,y+familySize().bottom());
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,4);
}
@@ -123,10 +124,10 @@ void BracketElement::draw(QPoint drawPoi
case '/':
{
QPointArray points(5);
- points.setPoint(1,x+familySize.x()+unit,y+familySize.y());
- points.setPoint(2,x+familySize.x()+unit+ofs,y+familySize.y());
- points.setPoint(3,x+familySize.x()+ofs,y+familySize.bottom());
- points.setPoint(4,x+familySize.x(),y+familySize.bottom());
+ points.setPoint(1,x+familySize().x()+unit,y+familySize().y());
+ points.setPoint(2,x+familySize().x()+unit+ofs,y+familySize().y());
+ points.setPoint(3,x+familySize().x()+ofs,y+familySize().bottom());
+ points.setPoint(4,x+familySize().x(),y+familySize().bottom());
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,4);
}
@@ -134,14 +135,14 @@ void BracketElement::draw(QPoint drawPoi
case '[':
{
QPointArray points(10);
- points.setPoint(1,x+familySize.x(),y+familySize.y());
- points.setPoint(2,x+familySize.x()-1+unit+ofs,y+familySize.y());
- points.setPoint(3,x+familySize.x()-1+unit+ofs,y+familySize.y()+ofs);
- points.setPoint(4,x+familySize.x()+ofs,y+familySize.y()+ofs);
- points.setPoint(5,x+familySize.x()+ofs,y+familySize.bottom()-ofs);
- points.setPoint(6,x+familySize.x()-1+unit+ofs,y+familySize.bottom()-ofs);
- points.setPoint(7,x+familySize.x()-1+unit+ofs,y+familySize.bottom());
- points.setPoint(8,x+familySize.x(),y+familySize.bottom());
+ points.setPoint(1,x+familySize().x(),y+familySize().y());
+ points.setPoint(2,x+familySize().x()-1+unit+ofs,y+familySize().y());
+ points.setPoint(3,x+familySize().x()-1+unit+ofs,y+familySize().y()+ofs);
+ points.setPoint(4,x+familySize().x()+ofs,y+familySize().y()+ofs);
+ points.setPoint(5,x+familySize().x()+ofs,y+familySize().bottom()-ofs);
+ points.setPoint(6,x+familySize().x()-1+unit+ofs,y+familySize().bottom()-ofs);
+ points.setPoint(7,x+familySize().x()-1+unit+ofs,y+familySize().bottom());
+ points.setPoint(8,x+familySize().x(),y+familySize().bottom());
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,8);
}
@@ -149,14 +150,14 @@ void BracketElement::draw(QPoint drawPoi
case ']':
{
QPointArray points(10);
- points.setPoint(1,x+familySize.x(),y+familySize.y());
- points.setPoint(2,x+familySize.x()-1+unit+ofs,y+familySize.y());
- points.setPoint(3,x+familySize.x()-1+unit+ofs,y+familySize.bottom());
- points.setPoint(4,x+familySize.x(),y+familySize.bottom());
- points.setPoint(5,x+familySize.x(),y+familySize.bottom()-ofs);
- points.setPoint(6,x+familySize.x()-1+unit,y+familySize.bottom()-ofs);
- points.setPoint(7,x+familySize.x()-1+unit,y+familySize.y()+ofs);
- points.setPoint(8,x+familySize.x(),y+familySize.y()+ofs);
+ points.setPoint(1,x+familySize().x(),y+familySize().y());
+ points.setPoint(2,x+familySize().x()-1+unit+ofs,y+familySize().y());
+ points.setPoint(3,x+familySize().x()-1+unit+ofs,y+familySize().bottom());
+ points.setPoint(4,x+familySize().x(),y+familySize().bottom());
+ points.setPoint(5,x+familySize().x(),y+familySize().bottom()-ofs);
+ points.setPoint(6,x+familySize().x()-1+unit,y+familySize().bottom()-ofs);
+ points.setPoint(7,x+familySize().x()-1+unit,y+familySize().y()+ofs);
+ points.setPoint(8,x+familySize().x(),y+familySize().y()+ofs);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,8);
}
@@ -166,16 +167,16 @@ void BracketElement::draw(QPoint drawPoi
QColor elementColor(pen->pen().color());
pen->setBrush(elementColor);
pen->setPen(QPen(elementColor,ofs));
- pen->drawArc(x+familySize.x(),y+familySize.y(),
- unit+ofs,familySize.height(),
+ pen->drawArc(x+familySize().x(),y+familySize().y(),
+ unit+ofs,familySize().height(),
90*16,180*16);
- /* pen->drawChord(x+familySize.x(),y+familySize.y(),
- unit+ofs,familySize.height(),
+ /* pen->drawChord(x+familySize().x(),y+familySize().y(),
+ unit+ofs,familySize().height(),
90*16,180*16);
pen->setBrush(pen->backgroundColor());
pen->setPen(pen->backgroundColor());
- pen->drawChord(x+familySize.x()+ofs+1,y+familySize.y(),
- unit,familySize.height(),
+ pen->drawChord(x+familySize().x()+ofs+1,y+familySize().y(),
+ unit,familySize().height(),
90*16,180*16);
*/
@@ -189,13 +190,13 @@ void BracketElement::draw(QPoint drawPoi
pen->setBrush(elementColor);
pen->setPen(QPen(elementColor,ofs));
- pen->drawArc(x+familySize.x(),y+familySize.y(),
- unit+ofs,familySize.height(),
+ pen->drawArc(x+familySize().x(),y+familySize().y(),
+ unit+ofs,familySize().height(),
270*16,180*16);
/* pen->setBrush(pen->backgroundColor());
pen->setPen(pen->backgroundColor());
- pen->drawChord(x+familySize.x()-1,y+familySize.y(),
- unit,familySize.height(),
+ pen->drawChord(x+familySize().x()-1,y+familySize().y(),
+ unit,familySize().height(),
270*16,180*16);
*/
pen->setPen(elementColor);
@@ -205,10 +206,10 @@ void BracketElement::draw(QPoint drawPoi
case '<':
{
QPointArray points(5);
- points.setPoint(1,x+familySize.x()+unit,y+familySize.y());
- points.setPoint(2,x+familySize.x(),y+familySize.y()+ \
(y+familySize.bottom()-(y+familySize.y()))/2);
- points.setPoint(3,x+familySize.x()+unit,y+familySize.bottom());
- //points.setPoint(4,x+familySize.x(),y+familySize.bottom());
+ points.setPoint(1,x+familySize().x()+unit,y+familySize().y());
+ points.setPoint(2,x+familySize().x(),y+familySize().y()+ \
(y+familySize().bottom()-(y+familySize().y()))/2); + \
points.setPoint(3,x+familySize().x()+unit,y+familySize().bottom()); + \
//points.setPoint(4,x+familySize().x(),y+familySize().bottom()); \
pen->setBrush(pen->pen().color()); pen->drawPolyline(points,1,/*4*/3);
}
@@ -216,10 +217,10 @@ void BracketElement::draw(QPoint drawPoi
case '>':
{
QPointArray points(5);
- points.setPoint(1,x+familySize.x(),y+familySize.y());
- points.setPoint(2,x+familySize.x()+unit,y+familySize.y()+ \
(y+familySize.bottom()-(y+familySize.y()))/2);
- points.setPoint(3,x+familySize.x(),y+familySize.bottom());
- //points.setPoint(4,x+familySize.x(),y+familySize.bottom());
+ points.setPoint(1,x+familySize().x(),y+familySize().y());
+ points.setPoint(2,x+familySize().x()+unit,y+familySize().y()+ \
(y+familySize().bottom()-(y+familySize().y()))/2); + \
points.setPoint(3,x+familySize().x(),y+familySize().bottom()); + \
//points.setPoint(4,x+familySize().x(),y+familySize().bottom()); \
pen->setBrush(pen->pen().color()); pen->drawPolyline(points,1,/*4*/3);
@@ -236,16 +237,16 @@ void BracketElement::draw(QPoint drawPoi
if( beActive )
pen->setPen(Qt::blue);
- child[0]->draw(QPoint(x+familySize.x()+unit+ofs+3,y),resolution);
- myArea=globalSize;;
- myArea.moveBy(x,y);
+ child[0]->draw(QPoint(x+familySize().x()+unit+ofs+3,y),resolution);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
// globalArea=
// globalArea.moveBy(x,y);
#ifdef RECT
pen->setBrush(Qt::green);
pen->setBrush(Qt::NoBrush);
- pen->drawRect(myArea);
- QRect area(localSize);
+ pen->drawRect(myArea());
+ QRect area(localSize());
area.moveBy(x,y);
pen->drawRect(area);
pen->setBrush(Qt::SolidPattern);
@@ -254,7 +255,7 @@ void BracketElement::draw(QPoint drawPoi
if( beActive )
pen->setPen(/*Qt::black*/QApplication::palette().active().text());
if(next!=0L)
- next->draw(drawPoint+QPoint(localSize.width()+1,0),resolution);
+ next->draw(drawPoint+QPoint(localSize().width()+1,0),resolution);
}
@@ -271,25 +272,25 @@ void BracketElement::checkSize()
}
child[0]->checkSize();
- familySize=child[0]->getSize();
+ setFamilySize(child[0]->getSize());
- if (familySize.height()<18)
+ if (familySize().height()<18)
{
- int fmY=familySize.height();
- familySize.setTop(familySize.top()-(16-fmY)/2-1);
- familySize.setBottom(familySize.bottom()+(16-fmY)/2+1);
+ int fmY=familySize().height();
+ familySize().setTop(familySize().top()-(16-fmY)/2-1);
+ familySize().setBottom(familySize().bottom()+(16-fmY)/2+1);
}
- familySize.setLeft(familySize.left()-(numericFont/24)-(familySize.height()/4)-2);
- familySize.setRight(familySize.right()+(numericFont/24)+(familySize.height()/4)+2);
+ familySize().setLeft(familySize().left()-(numericFont/24)-(familySize().height()/4)-2);
+ familySize().setRight(familySize().right()+(numericFont/24)+(familySize().height()/4)+2);
- localSize=familySize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left(),0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ setLocalSize(familySize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left(),0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
//warning("end");
}
Index: BracketElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/BracketElement.h,v
retrieving revision 1.10
diff -u -3 -p -r1.10 BracketElement.h
--- BracketElement.h 2000/10/19 11:39:21 1.10
+++ BracketElement.h 2001/02/03 17:13:06
@@ -75,7 +75,13 @@ class BracketElement : public BasicEleme
/* virtual void save(int file);
virtual void load(int file);
*/
- protected:
+
+ QString getContent() const {return content;}
+ void setContent(QString a) {content=a.copy();}
+ QString getContent() { return content;}
+
+//protected:
+private:
/*
* If usePixmap is True we need a...
@@ -84,7 +90,7 @@ class BracketElement : public BasicEleme
bool usePixmap;
-
+ QString content;
};
Index: DecorationElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/DecorationElement.cc,v
retrieving revision 1.2
diff -u -3 -p -r1.2 DecorationElement.cc
--- DecorationElement.cc 1999/04/16 20:05:07 1.2
+++ DecorationElement.cc 2001/02/03 17:13:10
@@ -18,7 +18,7 @@ DecorationElement::DecorationElement(KFo
int Relation,
BasicElement *Next,
QString Content) :
- BasicElement(Formula,Prev,Relation,Next,Content)
+ BasicElement(Formula,Prev,Relation,Next), content(Content)
{
/*
Stuff to load pixmap (if need)
@@ -37,12 +37,12 @@ void DecorationElement::draw(QPoint draw
QPainter *pen=formula->painter();
//QRect globalArea;
- int x,y,unit; //unit is familySize.height/4,used to draw proportional roots
+ int x,y,unit; //unit is familySize().height/4,used to draw proportional roots
x=drawPoint.x();
y=drawPoint.y();
if( beActive )
pen->setPen(red);
- unit=familySize.height()/4;
+ unit=familySize().height()/4;
/*
Draw root!!
@@ -55,25 +55,25 @@ void DecorationElement::draw(QPoint draw
/*
// int ofs;
for(ofs=0;ofs<rootFont+1;ofs++){
- pen->drawLine(x+familySize.x()+ofs,y+familySize.y()+unit+1,
- x+familySize.x()+unit+ofs,y+familySize.bottom()+3+ofs);//familySize.y is < 0
- pen->drawLine(x+familySize.x()+unit+ofs,y+familySize.y()+3+ofs,
- x+familySize.x()+unit+ofs,y+familySize.bottom()+ofs);
- pen->drawLine(x+familySize.x()+unit+ofs,y+familySize.y()+3+ofs,
- x+familySize.right()+rootFont+1,y+familySize.y()+3+ofs);
+ pen->drawLine(x+familySize().x()+ofs,y+familySize().y()+unit+1,
+ x+familySize().x()+unit+ofs,y+familySize().bottom()+3+ofs);//familySize().y is \
< 0 + pen->drawLine(x+familySize().x()+unit+ofs,y+familySize().y()+3+ofs,
+ x+familySize().x()+unit+ofs,y+familySize().bottom()+ofs);
+ pen->drawLine(x+familySize().x()+unit+ofs,y+familySize().y()+3+ofs,
+ x+familySize().right()+rootFont+1,y+familySize().y()+3+ofs);
}*/
warning("Array");
QPointArray points(10);
- points.setPoint(1,x+familySize.x(),y+familySize.y()+unit);
- points.setPoint(2,x+familySize.x()+unit,y+familySize.bottom()+1);
- points.setPoint(3,x+familySize.x()+unit+ofs,y+familySize.bottom()+1+ofs);
- points.setPoint(4,x+familySize.x()+unit+ofs,y+familySize.y()+1+ofs);
- points.setPoint(5,x+familySize.right()+ofs-2,y+familySize.y()+1+ofs);
- points.setPoint(6,x+familySize.right()+ofs-2,y+familySize.y()+1);
- points.setPoint(7,x+familySize.x()+unit,y+familySize.y()+1);
- points.setPoint(8,x+familySize.x()+unit,y+familySize.bottom()+1-2*ofs);
- // points.setPoint(9,x+familySize.x()+unit,y+familySize.bottom()+1);
- points.setPoint(9,x+familySize.x()+ofs,y+familySize.y()+unit);
+ points.setPoint(1,x+familySize().x(),y+familySize().y()+unit);
+ points.setPoint(2,x+familySize().x()+unit,y+familySize().bottom()+1);
+ points.setPoint(3,x+familySize().x()+unit+ofs,y+familySize().bottom()+1+ofs);
+ points.setPoint(4,x+familySize().x()+unit+ofs,y+familySize().y()+1+ofs);
+ points.setPoint(5,x+familySize().right()+ofs-2,y+familySize().y()+1+ofs);
+ points.setPoint(6,x+familySize().right()+ofs-2,y+familySize().y()+1);
+ points.setPoint(7,x+familySize().x()+unit,y+familySize().y()+1);
+ points.setPoint(8,x+familySize().x()+unit,y+familySize().bottom()+1-2*ofs);
+ // points.setPoint(9,x+familySize().x()+unit,y+familySize().bottom()+1);
+ points.setPoint(9,x+familySize().x()+ofs,y+familySize().y()+unit);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,9);
/*
@@ -81,18 +81,18 @@ void DecorationElement::draw(QPoint draw
*/
if( beActive )
pen->setPen(blue);
- child[0]->draw(QPoint(x+familySize.x()+unit+2+ofs+1,y),resolution);
- myArea=globalSize;;
- myArea.moveBy(x,y);
+ child[0]->draw(QPoint(x+familySize().x()+unit+2+ofs+1,y),resolution);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
// globalArea=
// globalArea.moveBy(x,y);
#ifdef RECT
- pen->drawRect(myArea);
+ pen->drawRect(myArea());
// pen->drawRect(globalArea);
#endif
if(index[0]!=0L)
index[0]->draw(drawPoint+
- familySize.topLeft()-
+ familySize().topLeft()-
index[0]->getSize().bottomRight()
+QPoint(unit/2,unit),
resolution);
@@ -100,7 +100,7 @@ void DecorationElement::draw(QPoint draw
drawIndexes(pen,resolution);
if( beActive )
pen->setPen(black);
- if(next!=0L) next->draw(drawPoint+QPoint(localSize.width(),0),resolution);
+ if(next!=0L) next->draw(drawPoint+QPoint(localSize().width(),0),resolution);
}
@@ -117,24 +117,24 @@ void DecorationElement::checkSize()
}
child[0]->checkSize();
- familySize=child[0]->getSize();
- familySize.setTop(familySize.top()-8-(numericFont/24));
- familySize.setLeft(familySize.left()-8-(numericFont/24)-(familySize.height()/4)); \
+ familySize(child[0]->getSize());
+ familySize().setTop(familySize().top()-8-(numericFont/24));
+ familySize().setLeft(familySize().left()-8-(numericFont/24)-(familySize().height()/4)); \
/*
- localSize is
+ localSize() is
child[0]+lines or pixmap
here put the code to calc it
- unit=familySize.height()/4;
+ unit=familySize().height()/4;
*/
- localSize=familySize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left(),0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ setLocalSize(familySize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left(),0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
//warning("end");
}
Index: DecorationElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/DecorationElement.h,v
retrieving revision 1.4
diff -u -3 -p -r1.4 DecorationElement.h
--- DecorationElement.h 2000/10/19 11:39:21 1.4
+++ DecorationElement.h 2001/02/03 17:13:10
@@ -58,8 +58,12 @@ class DecorationElement : public BasicEl
*/
virtual int takeAsciiFromKeyb(int action);
+ QString getContent() const {return content;}
+ void setContent(QString a) {content=a.copy();}
+ QString getContent() { return content;}
- protected:
+//protected:
+private:
/*
* If usePixmap is True we need a...
@@ -94,7 +98,7 @@ class DecorationElement : public BasicEl
.......
*/
-
+ QString content;
};
Index: FractionElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/FractionElement.cc,v
retrieving revision 1.15
diff -u -3 -p -r1.15 FractionElement.cc
--- FractionElement.cc 2000/10/19 11:39:21 1.15
+++ FractionElement.cc 2001/02/03 17:13:10
@@ -20,7 +20,7 @@ FractionElement::FractionElement(KFormul
int Relation,
BasicElement *Next,
QString Content) :
- BasicElement(Formula,Prev,Relation,Next,Content)
+ BasicElement(Formula,Prev,Relation,Next), content(Content)
{
/*
Central alligned fraction
@@ -63,10 +63,10 @@ void FractionElement::draw(QPoint drawPo
if (content[0]=='F') {
QPointArray points(5);
- points.setPoint(1,x+familySize.x()+1,y+offsetY-ofs/2);
- points.setPoint(2,x+familySize.right()-2,y+offsetY-ofs/2);
- points.setPoint(3,x+familySize.right()-2,y+offsetY+ofs/2);
- points.setPoint(4,x+familySize.x()+1,y+offsetY+ofs/2);
+ points.setPoint(1,x+familySize().x()+1,y+offsetY-ofs/2);
+ points.setPoint(2,x+familySize().right()-2,y+offsetY-ofs/2);
+ points.setPoint(3,x+familySize().right()-2,y+offsetY+ofs/2);
+ points.setPoint(4,x+familySize().x()+1,y+offsetY+ofs/2);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,9);
}
@@ -83,18 +83,18 @@ void FractionElement::draw(QPoint drawPo
child[0]->draw(QPoint(x+x0+3,y+y0),resolution);
child[1]->draw(QPoint(x+x1+3,y+y1),resolution);
- myArea=globalSize;
- myArea.moveBy(x,y);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
#ifdef RECT
- pen->drawRect(myArea);
+ pen->drawRect(myArea());
// pen->drawRect(globalArea);
#endif
drawIndexes(pen,resolution);
if( beActive )
pen->setPen(Qt::black);
- if(next!=0L) next->draw(drawPoint+QPoint(localSize.width(),0),resolution);
+ if(next!=0L) next->draw(drawPoint+QPoint(localSize().width(),0),resolution);
}
@@ -134,18 +134,18 @@ void FractionElement::checkSize()
}
child0Size.moveBy(0,-space/2-child0Size.bottom());
child1Size.moveBy(0,space/2-child1Size.top());
- familySize=child0Size.unite(child1Size);
+ setFamilySize(child0Size.unite(child1Size));
- familySize.moveBy(0,offsetY);
- familySize.setLeft(familySize.left()-3);
- familySize.setRight(familySize.right()+3);
- localSize=familySize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left(),0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ familySize().moveBy(0,offsetY);
+ familySize().setLeft(familySize().left()-3);
+ familySize().setRight(familySize().right()+3);
+ setLocalSize(familySize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left(),0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
}
/*int FractionElement::takeAsciiFromKeyb(int)
Index: FractionElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/FractionElement.h,v
retrieving revision 1.9
diff -u -3 -p -r1.9 FractionElement.h
--- FractionElement.h 2000/10/19 11:39:21 1.9
+++ FractionElement.h 2001/02/03 17:13:10
@@ -66,7 +66,13 @@ class FractionElement : public BasicElem
/* virtual void save(int file);
virtual void load(int file);
*/
- protected:
+
+ QString getContent() const {return content;}
+ void setContent(QString a) {content=a.copy();}
+ QString getContent() { return content;}
+
+//protected:
+private:
/*
* Note for "content" meaning:
@@ -75,6 +81,8 @@ class FractionElement : public BasicElem
* content[2]( HorizAlign) 'L'=left 'C'=center 'R'=right
* content+3 space between num & den
*/
+ QString content;
+
int offsetY;
int offsetX;
};
Index: MatrixElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/MatrixElement.cc,v
retrieving revision 1.15
diff -u -3 -p -r1.15 MatrixElement.cc
--- MatrixElement.cc 2000/10/19 11:39:21 1.15
+++ MatrixElement.cc 2001/02/03 17:13:11
@@ -19,7 +19,7 @@ MatrixElement::MatrixElement(KFormulaCon
int Relation,
BasicElement *Next,
QString Content) :
- BasicElement(Formula,Prev,Relation,Next,Content)
+ BasicElement(Formula,Prev,Relation,Next), content(Content)
{
/*
Central alligned noborder 3x3 Matrix
@@ -50,7 +50,7 @@ void MatrixElement::draw(QPoint drawPoin
pen=formula->painter();
//QRect globalArea;
int x,y;
- x=drawPoint.x()+familySize.x();
+ x=drawPoint.x()+familySize().x();
y=drawPoint.y();
int rows=content.mid(3,3).toInt();
int cols=content.mid(6,3).toInt();
@@ -79,9 +79,9 @@ void MatrixElement::draw(QPoint drawPoin
QPointArray points(4);
points.setPoint(0,x,y+hby[r]+childPoint[c+r*cols].y()+vspace/2-ofs+ofs/2);
points.setPoint(1,x,y+hby[r]+childPoint[c+r*cols].y()+vspace/2+ofs/2);
- points.setPoint(2,x+familySize.width(),
+ points.setPoint(2,x+familySize().width(),
y+hby[r]+childPoint[c+r*cols].y()+vspace/2+ofs/2);
- points.setPoint(3,x+familySize.width(),
+ points.setPoint(3,x+familySize().width(),
y+hby[r]+childPoint[c+r*cols].y()+vspace/2-ofs+ofs/2);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,0,4);
@@ -93,18 +93,18 @@ void MatrixElement::draw(QPoint drawPoin
QPointArray points(4);
points.setPoint(0,x,y+hby[r]+childPoint[c+r*cols].y()+vspace/2-1);
points.setPoint(1,x,y+hby[r]+childPoint[c+r*cols].y()+vspace/2+ofs-1);
- points.setPoint(2,x+familySize.width(),
+ points.setPoint(2,x+familySize().width(),
y+hby[r]+childPoint[c+r*cols].y()+vspace/2-1);
- points.setPoint(3,x+familySize.width(),
+ points.setPoint(3,x+familySize().width(),
y+hby[r]+childPoint[c+r*cols].y()+vspace/2+ofs-1);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,0,4);
points.setPoint(0,x,y+hby[r]+childPoint[c+r*cols].y()+vspace/2+1+2*ofs);
points.setPoint(1,x,y+hby[r]+childPoint[c+r*cols].y()+vspace/2+3*ofs+1);
- points.setPoint(2,x+familySize.width(),
+ points.setPoint(2,x+familySize().width(),
y+hby[r]+childPoint[c+r*cols].y()+vspace/2+1+2*ofs);
- points.setPoint(3,x+familySize.width(),
+ points.setPoint(3,x+familySize().width(),
y+hby[r]+childPoint[c+r*cols].y()+vspace/2+3*ofs+1);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,0,4);
@@ -118,10 +118,10 @@ void MatrixElement::draw(QPoint drawPoin
{
int hspace=content.mid(12,3).toInt()+ofs;
QPointArray points(4);
- points.setPoint(0,minX+x+3-hspace/2-ofs+ofs/2,y+familySize.y());
- points.setPoint(1,minX+x+3-hspace/2-ofs+ofs/2,y+familySize.bottom());
- points.setPoint(2,minX+x+3-hspace/2+ofs/2,y+familySize.bottom());
- points.setPoint(3,minX+x+3-hspace/2+ofs/2,y+familySize.y());
+ points.setPoint(0,minX+x+3-hspace/2-ofs+ofs/2,y+familySize().y());
+ points.setPoint(1,minX+x+3-hspace/2-ofs+ofs/2,y+familySize().bottom());
+ points.setPoint(2,minX+x+3-hspace/2+ofs/2,y+familySize().bottom());
+ points.setPoint(3,minX+x+3-hspace/2+ofs/2,y+familySize().y());
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,0,4);
}
@@ -129,16 +129,16 @@ void MatrixElement::draw(QPoint drawPoin
{
int hspace=content.mid(12,3).toInt();
QPointArray points(4);
- points.setPoint(0,minX+x+3-hspace/2-ofs+1,y+familySize.y());
- points.setPoint(1,minX+x+3-hspace/2-ofs+1,y+familySize.bottom());
- points.setPoint(2,minX+x+3-hspace/2+1,y+familySize.bottom());
- points.setPoint(3,minX+x+3-hspace/2+1,y+familySize.y());
+ points.setPoint(0,minX+x+3-hspace/2-ofs+1,y+familySize().y());
+ points.setPoint(1,minX+x+3-hspace/2-ofs+1,y+familySize().bottom());
+ points.setPoint(2,minX+x+3-hspace/2+1,y+familySize().bottom());
+ points.setPoint(3,minX+x+3-hspace/2+1,y+familySize().y());
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,0,4);
- points.setPoint(0,minX+x+3-hspace/2-3*ofs-1,y+familySize.y());
- points.setPoint(1,minX+x+3-hspace/2-3*ofs-1,y+familySize.bottom());
- points.setPoint(2,minX+x+3-hspace/2-2*ofs-1,y+familySize.bottom());
- points.setPoint(3,minX+x+3-hspace/2-2*ofs-1,y+familySize.y());
+ points.setPoint(0,minX+x+3-hspace/2-3*ofs-1,y+familySize().y());
+ points.setPoint(1,minX+x+3-hspace/2-3*ofs-1,y+familySize().bottom());
+ points.setPoint(2,minX+x+3-hspace/2-2*ofs-1,y+familySize().bottom());
+ points.setPoint(3,minX+x+3-hspace/2-2*ofs-1,y+familySize().y());
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,0,4);
@@ -150,18 +150,18 @@ void MatrixElement::draw(QPoint drawPoin
x=drawPoint.x();
- myArea=globalSize;
- myArea.moveBy(x,y);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
#ifdef RECT
- pen->drawRect(myArea);
+ pen->drawRect(myArea());
// pen->drawRect(globalArea);
#endif
drawIndexes(pen,resolution);
if( beActive )
pen->setPen(Qt::black);
- if(next!=0L) next->draw(drawPoint+QPoint(localSize.width(),0),resolution);
+ if(next!=0L) next->draw(drawPoint+QPoint(localSize().width(),0),resolution);
}
@@ -260,23 +260,23 @@ void MatrixElement::checkSize()
sizeC=sizeC.unite(sizeR);
}
- familySize=sizeC;
- // familySize.setBottom(familySize.bottom()+vspace);
- familySize.moveBy(0,correction);
+ setFamilySize(sizeC);
+ // familySize().setBottom(familySize().bottom()+vspace);
+ familySize().moveBy(0,correction);
int topBorderCorr=0;
if(content[17]=='L')
topBorderCorr=ofs+1+space;
if(content[17]=='D')
topBorderCorr=3*ofs+2+space;
//correction+=topBorderCorr;
- familySize.setTop(familySize.top()-topBorderCorr);
+ familySize().setTop(familySize().top()-topBorderCorr);
for(c=0;c<cols*rows;c++)
childPoint[c]+=QPoint(0,correction);
if(content[1]=='C')
- correction=-familySize.height()/2;
- familySize.moveBy(0,correction);
+ correction=-familySize().height()/2;
+ familySize().moveBy(0,correction);
for(c=0;c<cols*rows;c++)
childPoint[c]+=QPoint(0,correction);
@@ -317,19 +317,19 @@ And now columns!!
// warning("R+X:%i,Y:%i,W:%i,E:%i",sizeR.x(),sizeR.y(),sizeR.height(),sizeR.width());
}
sizeR.setRight(sizeR.right()-hspace);
- familySize=familySize.unite(sizeR);
+ setFamilySize(familySize().unite(sizeR));
//Add Margins!!!
- familySize.setLeft(familySize.left()-3);
- familySize.setRight(familySize.right()+3);
- localSize=familySize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left(),0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ familySize().setLeft(familySize().left()-3);
+ familySize().setRight(familySize().right()+3);
+ setLocalSize(familySize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left(),0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
}
/* int MatrixElement::takeAsciiFromKeyb(int)
Index: MatrixElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/MatrixElement.h,v
retrieving revision 1.10
diff -u -3 -p -r1.10 MatrixElement.h
--- MatrixElement.h 2000/10/19 11:39:21 1.10
+++ MatrixElement.h 2001/02/03 17:13:11
@@ -68,7 +68,13 @@ class MatrixElement : public BasicElemen
/* virtual void save(int file);
virtual void load(int file);
*/
- protected:
+
+ QString getContent() const {return content;}
+ void setContent(QString a) {content=a.copy();}
+ QString getContent() { return content;}
+
+//protected:
+private:
/*
* Note for "content" meaning:
@@ -80,6 +86,8 @@ class MatrixElement : public BasicElemen
* 2: C,L,R Horiz align
* 15,16,17,18,19,20=Horiz,Vert,top,bottom,left,right border: L=Single Line
*/
+ QString content;
+
QArray<QPoint> childPoint;
QArray<int> hby; // Y of internal H border
Index: PrefixedElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/PrefixedElement.cc,v
retrieving revision 1.14
diff -u -3 -p -r1.14 PrefixedElement.cc
--- PrefixedElement.cc 2000/10/19 11:39:21 1.14
+++ PrefixedElement.cc 2001/02/03 17:13:11
@@ -23,7 +23,7 @@ PrefixedElement::PrefixedElement(KFormul
int Relation,
BasicElement *Next,
QString Content) :
- BasicElement(Formula,Prev,Relation,Next,Content)
+ BasicElement(Formula,Prev,Relation,Next), content(Content)
{
/*
Stuff to load pixmap (if need)
@@ -46,7 +46,7 @@ void PrefixedElement::draw(QPoint drawPo
QPainter *pen=formula->painter();
//QRect globalArea;
- int x,y,unit=0; //unit is familySize.height/6,used to draw proportional Prefixeds
+ int x,y,unit=0; //unit is familySize().height/6,used to draw proportional \
Prefixeds x=drawPoint.x();
y=drawPoint.y();
if( beActive )
@@ -62,9 +62,9 @@ void PrefixedElement::draw(QPoint drawPo
int symB=0; // symbol (integral,sum...)
if( content[1]=='S')
{
- symT=familySize.top();
- symB=familySize.bottom();
- unit = (familySize.height()-2*ofs)/8;
+ symT=familySize().top();
+ symB=familySize().bottom();
+ unit = (familySize().height()-2*ofs)/8;
}
if( content[1]=='F')
{
@@ -84,32 +84,32 @@ void PrefixedElement::draw(QPoint drawPo
{
QColor elementColor(pen->pen().color());
pen->setBrush(elementColor);
- pen->drawChord(x+familySize.x()-ofs+unit+1,y+symT,
+ pen->drawChord(x+familySize().x()-ofs+unit+1,y+symT,
unit+2*ofs,(unit+ofs)*2,
0,180*16);
pen->setBrush(pen->backgroundColor());
pen->setPen(pen->backgroundColor());
- pen->drawChord(x+familySize.x()+unit+1,y+symT+ofs ,
+ pen->drawChord(x+familySize().x()+unit+1,y+symT+ofs ,
unit,unit*2+ofs,
0,180*16);
pen->setPen(elementColor);
pen->setBrush(elementColor);
- pen->drawChord(x+familySize.x()+1,y+symB-(unit+ofs)*2,
+ pen->drawChord(x+familySize().x()+1,y+symB-(unit+ofs)*2,
unit+ofs*2,(unit+ofs)*2,
180*16,180*16);
pen->setBrush(pen->backgroundColor());
pen->setPen(pen->backgroundColor());
- pen->drawChord(x+familySize.x()+ofs+1,y+symB-(unit+ofs)*2,
+ pen->drawChord(x+familySize().x()+ofs+1,y+symB-(unit+ofs)*2,
unit,unit*2+ofs,
180*16,180*16);
pen->setPen(elementColor);
QPointArray points(5);
- points.setPoint(1,x+familySize.x()+unit+ofs+1 ,y+symB-unit-ofs );
- points.setPoint(2,x+familySize.x()+unit+ofs*2 ,y+symB-unit-ofs );
- points.setPoint(3,x+familySize.x()+unit,y+symT+unit+ofs-1);
- points.setPoint(4,x+familySize.x()-ofs+unit+1,y+symT+unit+ofs-1);
+ points.setPoint(1,x+familySize().x()+unit+ofs+1 ,y+symB-unit-ofs );
+ points.setPoint(2,x+familySize().x()+unit+ofs*2 ,y+symB-unit-ofs );
+ points.setPoint(3,x+familySize().x()+unit,y+symT+unit+ofs-1);
+ points.setPoint(4,x+familySize().x()-ofs+unit+1,y+symT+unit+ofs-1);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,4);
}
@@ -118,11 +118,11 @@ void PrefixedElement::draw(QPoint drawPo
else if(content[0]=='S') //Sum
{
QPointArray points(6);
- points.setPoint(1,x+familySize.x()+unit , y+familySize.y() );
- points.setPoint(2,x+familySize.x() , y+familySize.y() );
- points.setPoint(3,x+familySize.x()+unit,y+familySize.y()+ \
(y+familySize.bottom()-(y+familySize.y()))/2);
- points.setPoint(4,x+familySize.x(),y+familySize.bottom());
- points.setPoint(5,x+familySize.x()+unit , y+familySize.bottom());
+ points.setPoint(1,x+familySize().x()+unit , y+familySize().y() );
+ points.setPoint(2,x+familySize().x() , y+familySize().y() );
+ points.setPoint(3,x+familySize().x()+unit,y+familySize().y()+ \
(y+familySize().bottom()-(y+familySize().y()))/2); + \
points.setPoint(4,x+familySize().x(),y+familySize().bottom()); + \
points.setPoint(5,x+familySize().x()+unit , y+familySize().bottom()); \
pen->setBrush(pen->pen().color()); pen->drawPolyline(points,1,5);
}
@@ -131,20 +131,20 @@ void PrefixedElement::draw(QPoint drawPo
else if(content[0]=='P') //Product
{
QPointArray points(6);
- points.setPoint(1,x+familySize.x()+unit , y+familySize.y() );
- points.setPoint(2,x+familySize.x() , y+familySize.y() );
+ points.setPoint(1,x+familySize().x()+unit , y+familySize().y() );
+ points.setPoint(2,x+familySize().x() , y+familySize().y() );
pen->setBrush(pen->pen().color());
pen->drawPolyline(points,1,2);
- points.setPoint(1,x+familySize.x()+unit/4,y+familySize.y());
- points.setPoint(2,x+familySize.x()+unit/4/*+ofs*/,y+familySize.y());
- points.setPoint(3,x+familySize.x()+unit/4/*+ofs*/,y+familySize.bottom());
- points.setPoint(4,x+familySize.x()+unit/4,y+familySize.bottom());
+ points.setPoint(1,x+familySize().x()+unit/4,y+familySize().y());
+ points.setPoint(2,x+familySize().x()+unit/4/*+ofs*/,y+familySize().y());
+ points.setPoint(3,x+familySize().x()+unit/4/*+ofs*/,y+familySize().bottom());
+ points.setPoint(4,x+familySize().x()+unit/4,y+familySize().bottom());
pen->setBrush(pen->pen().color());
pen->drawPolyline(points,1,4);
- \
points.setPoint(1,x+familySize.x()+unit*3/4,y+familySize.y());
- points.setPoint(2,x+familySize.x()+unit*3/4/*+ofs*/,y+familySize.y());
- points.setPoint(3,x+familySize.x()+unit*3/4/*+ofs*/,y+familySize.bottom());
- points.setPoint(4,x+familySize.x()+unit*3/4,y+familySize.bottom());
+ \
points.setPoint(1,x+familySize().x()+unit*3/4,y+familySize().y()); + \
points.setPoint(2,x+familySize().x()+unit*3/4/*+ofs*/,y+familySize().y()); + \
points.setPoint(3,x+familySize().x()+unit*3/4/*+ofs*/,y+familySize().bottom()); + \
points.setPoint(4,x+familySize().x()+unit*3/4,y+familySize().bottom()); \
pen->setBrush(pen->pen().color()); pen->drawPolyline(points,1,4);
@@ -155,16 +155,16 @@ void PrefixedElement::draw(QPoint drawPo
if( beActive )
pen->setPen(Qt::blue);
//I must add MaxLimitWidth
- // child[0]->draw(QPoint(x+familySize.x()+unit*2+ofs+1,y),resolution);
- child[0]->draw(QPoint(x+familySize.right()-child[0]->getSize().width(),y),resolution);
+ // child[0]->draw(QPoint(x+familySize().x()+unit*2+ofs+1,y),resolution);
+ child[0]->draw(QPoint(x+familySize().right()-child[0]->getSize().width(),y),resolution);
int y1=0,y2=0;
if( content[1]=='S')
{
if(child[1]!=0)
- y1=y-child[1]->getSize().top()+familySize.top();
+ y1=y-child[1]->getSize().top()+familySize().top();
if(child[2]!=0)
- y2=y-child[2]->getSize().bottom()+familySize.bottom();
+ y2=y-child[2]->getSize().bottom()+familySize().bottom();
}
if( content[1]=='F')
{
@@ -175,24 +175,24 @@ void PrefixedElement::draw(QPoint drawPo
}
if(child[1]!=0)
- child[1]->draw(QPoint(x+familySize.x()+unit*2+ofs+1,y1),resolution);
+ child[1]->draw(QPoint(x+familySize().x()+unit*2+ofs+1,y1),resolution);
if(child[2]!=0)
- child[2]->draw(QPoint(x+familySize.x()+unit*2+ofs+1,y2),resolution);
+ child[2]->draw(QPoint(x+familySize().x()+unit*2+ofs+1,y2),resolution);
- myArea=globalSize;
- myArea.moveBy(x,y);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
// globalArea=
// globalArea.moveBy(x,y);
#ifdef RECT
- pen->drawRect(myArea);
+ pen->drawRect(myArea());
// pen->drawRect(globalArea);
#endif
drawIndexes(pen,resolution);
if( beActive )
pen->setPen(Qt::black);
if(next!=0L)
- next->draw(drawPoint+QPoint(localSize.width(),0),resolution);
+ next->draw(drawPoint+QPoint(localSize().width(),0),resolution);
}
void PrefixedElement::checkSize()
@@ -207,7 +207,7 @@ void PrefixedElement::checkSize()
}
child[0]->checkSize();
- familySize=child[0]->getSize();
+ setFamilySize(child[0]->getSize());
if (child[1]!=0)
{
@@ -232,15 +232,16 @@ void PrefixedElement::checkSize()
MaxX=child1Size.width();
else
MaxX=child2Size.width();
- familySize.moveBy(MaxX,0);
- child1Size.moveBy(0,familySize.top()-child1Size.bottom());
- child2Size.moveBy(0,familySize.bottom()-child2Size.top());
- familySize=familySize.unite(child1Size);
- familySize=familySize.unite(child2Size);
+ familySize().moveBy(MaxX,0);
+ child1Size.moveBy(0,familySize().top()-child1Size.bottom());
+ child2Size.moveBy(0,familySize().bottom()-child2Size.top());
+#warning Nonsense!
+ setFamilySize(familySize().unite(child1Size));
+ setFamilySize(familySize().unite(child2Size));
int unit=0;
if( content[1]=='S')
- unit = (familySize.height())/8 ;
+ unit = (familySize().height())/8 ;
if( content[1]=='F')
unit = content.mid(2,3).toInt();
if (unit< 4)
@@ -249,25 +250,25 @@ void PrefixedElement::checkSize()
int ofs=(numericFont/24);
if (unit <6)ofs=1;
- familySize.setTop(familySize.top()-1-ofs);
- familySize.setLeft(familySize.left()-1-ofs-unit*2);
+ familySize().setTop(familySize().top()-1-ofs);
+ familySize().setLeft(familySize().left()-1-ofs-unit*2);
- if (familySize.height()< unit*8 )
+ if (familySize().height()< unit*8 )
{
- if (familySize.top() >-unit*4)
- familySize.setTop(-unit*4 );
- if (familySize.bottom() < unit*4)
- familySize.setBottom( unit*4 );
+ if (familySize().top() >-unit*4)
+ familySize().setTop(-unit*4 );
+ if (familySize().bottom() < unit*4)
+ familySize().setBottom( unit*4 );
}
- localSize=familySize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left(),0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ setLocalSize(familySize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left(),0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
}
/*
Index: PrefixedElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/PrefixedElement.h,v
retrieving revision 1.6
diff -u -3 -p -r1.6 PrefixedElement.h
--- PrefixedElement.h 2000/10/19 11:39:21 1.6
+++ PrefixedElement.h 2001/02/03 17:13:12
@@ -65,7 +65,13 @@ class PrefixedElement : public BasicElem
/* virtual void save(int file);
virtual void load(int file);
*/
- protected:
+
+ QString getContent() const {return content;}
+ void setContent(QString a) {content=a.copy();}
+ QString getContent() { return content;}
+
+//protected:
+private:
/*
*Note: Content meaning
@@ -75,7 +81,8 @@ class PrefixedElement : public BasicElem
* content[1] 'F'=Fixed size 'S'=AutoScale Size
* content[2..4] Fixed Size Value
*/
-
+ QString content;
+
/*
* If usePixmap is True we need a...
*/
Index: RootElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/RootElement.cc,v
retrieving revision 1.17
diff -u -3 -p -r1.17 RootElement.cc
--- RootElement.cc 2000/10/19 11:39:21 1.17
+++ RootElement.cc 2001/02/03 17:13:12
@@ -16,9 +16,8 @@
RootElement::RootElement(KFormulaContainer *Formula,
BasicElement *Prev,
int Relation,
- BasicElement *Next,
- QString Content) :
- BasicElement(Formula,Prev,Relation,Next,Content)
+ BasicElement *Next) :
+ BasicElement(Formula,Prev,Relation,Next)
{
/*
Stuff to load pixmap (if need)
@@ -40,10 +39,10 @@ void RootElement::draw(QPoint drawPoint,
QPainter *pen=formula->painter();
//QRect globalArea;
- int x,y,unit; //unit is familySize.height/4,used to draw proportional roots
+ int x,y,unit; //unit is familySize().height/4,used to draw proportional roots
x=drawPoint.x();
y=drawPoint.y();
- unit=familySize.height()/3;
+ unit=familySize().height()/3;
if( beActive )
pen->setPen(Qt::red);
@@ -59,12 +58,12 @@ void RootElement::draw(QPoint drawPoint,
/*
// int ofs;
for(ofs=0;ofs<rootFont+1;ofs++){
- pen->drawLine(x+familySize.x()+ofs,y+familySize.y()+unit+1,
- x+familySize.x()+unit+ofs,y+familySize.bottom()+3+ofs);//familySize.y is < 0
- pen->drawLine(x+familySize.x()+unit+ofs,y+familySize.y()+3+ofs,
- x+familySize.x()+unit+ofs,y+familySize.bottom()+ofs);
- pen->drawLine(x+familySize.x()+unit+ofs,y+familySize.y()+3+ofs,
- x+familySize.right()+rootFont+1,y+familySize.y()+3+ofs);
+ pen->drawLine(x+familySize().x()+ofs,y+familySize().y()+unit+1,
+ x+familySize().x()+unit+ofs,y+familySize().bottom()+3+ofs);//familySize().y is \
< 0 + pen->drawLine(x+familySize().x()+unit+ofs,y+familySize().y()+3+ofs,
+ x+familySize().x()+unit+ofs,y+familySize().bottom()+ofs);
+ pen->drawLine(x+familySize().x()+unit+ofs,y+familySize().y()+3+ofs,
+ x+familySize().right()+rootFont+1,y+familySize().y()+3+ofs);
} */
QColor elementColor(pen->pen().color());
@@ -72,33 +71,33 @@ void RootElement::draw(QPoint drawPoint,
pen->setPen(QPen(elementColor,ofs*2));
- pen->drawLine(x+familySize.x()+unit/3,y+familySize.y()+unit+2,
- x+familySize.x()+unit/2+unit/3,y+familySize.bottom()+1);//familySize.y is < 0
+ pen->drawLine(x+familySize().x()+unit/3,y+familySize().y()+unit+2,
+ x+familySize().x()+unit/2+unit/3,y+familySize().bottom()+1);//familySize().y \
is < 0
pen->setPen(QPen(elementColor,ofs));
- pen->drawLine(x+familySize.x()+unit+unit/3,y+familySize.y()+3,
- x+familySize.x()+unit/2+unit/3,y+familySize.bottom());
+ pen->drawLine(x+familySize().x()+unit+unit/3,y+familySize().y()+3,
+ x+familySize().x()+unit/2+unit/3,y+familySize().bottom());
- pen->drawLine(x+familySize.x()+unit+unit/3,y+familySize.y()+3,
- x+familySize.right()+1,y+familySize.y()+3);
+ pen->drawLine(x+familySize().x()+unit+unit/3,y+familySize().y()+3,
+ x+familySize().right()+1,y+familySize().y()+3);
- pen->drawLine(x+familySize.x()+unit/3,y+familySize.y()+unit+1,
- x+familySize.x(),y+familySize.y()+unit+1+unit/2);
+ pen->drawLine(x+familySize().x()+unit/3,y+familySize().y()+unit+1,
+ x+familySize().x(),y+familySize().y()+unit+1+unit/2);
/* warning("Array");
QPointArray points(10);
- points.setPoint(1,x+familySize.x(),y+familySize.y()+unit);
- points.setPoint(2,x+familySize.x()+unit,y+familySize.bottom()+1);
- points.setPoint(3,x+familySize.x()+unit+ofs,y+familySize.bottom()+1+ofs);
- points.setPoint(4,x+familySize.x()+unit+ofs,y+familySize.y()+1+ofs);
- points.setPoint(5,x+familySize.right()+ofs-2,y+familySize.y()+1+ofs);
- points.setPoint(6,x+familySize.right()+ofs-2,y+familySize.y()+1);
- points.setPoint(7,x+familySize.x()+unit,y+familySize.y()+1);
- points.setPoint(8,x+familySize.x()+unit,y+familySize.bottom()+1-2*ofs);
- // points.setPoint(9,x+familySize.x()+unit,y+familySize.bottom()+1);
- points.setPoint(9,x+familySize.x()+ofs,y+familySize.y()+unit);
+ points.setPoint(1,x+familySize().x(),y+familySize().y()+unit);
+ points.setPoint(2,x+familySize().x()+unit,y+familySize().bottom()+1);
+ points.setPoint(3,x+familySize().x()+unit+ofs,y+familySize().bottom()+1+ofs);
+ points.setPoint(4,x+familySize().x()+unit+ofs,y+familySize().y()+1+ofs);
+ points.setPoint(5,x+familySize().right()+ofs-2,y+familySize().y()+1+ofs);
+ points.setPoint(6,x+familySize().right()+ofs-2,y+familySize().y()+1);
+ points.setPoint(7,x+familySize().x()+unit,y+familySize().y()+1);
+ points.setPoint(8,x+familySize().x()+unit,y+familySize().bottom()+1-2*ofs);
+ // points.setPoint(9,x+familySize().x()+unit,y+familySize().bottom()+1);
+ points.setPoint(9,x+familySize().x()+ofs,y+familySize().y()+unit);
pen->setBrush(pen->pen().color());
pen->drawPolygon(points,FALSE,1,9);
*/ /*
@@ -106,18 +105,18 @@ void RootElement::draw(QPoint drawPoint,
*/
if( beActive )
pen->setPen(Qt::blue);
- child[0]->draw(QPoint(x+familySize.x()+unit+unit/3+2+ofs+1,y),resolution);
- myArea=globalSize;;
- myArea.moveBy(x,y);
+ child[0]->draw(QPoint(x+familySize().x()+unit+unit/3+2+ofs+1,y),resolution);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
// globalArea=
// globalArea.moveBy(x,y);
#ifdef RECT
- pen->drawRect(myArea);
+ pen->drawRect(myArea());
// pen->drawRect(globalArea);
#endif
if(index[0]!=0L)
index[0]->draw(drawPoint+
- familySize.topLeft()-
+ familySize().topLeft()-
index[0]->getSize().bottomRight()
+QPoint(unit/2+unit/3,unit),
resolution);
@@ -125,7 +124,7 @@ void RootElement::draw(QPoint drawPoint,
drawIndexes(pen,resolution);
if( beActive )
pen->setPen(Qt::black);
- if(next!=0L) next->draw(drawPoint+QPoint(localSize.width(),0),resolution);
+ if(next!=0L) next->draw(drawPoint+QPoint(localSize().width(),0),resolution);
}
@@ -142,24 +141,24 @@ void RootElement::checkSize()
}
child[0]->checkSize();
- familySize=child[0]->getSize();
- familySize.setTop(familySize.top()-8-(numericFont/24));
- familySize.setLeft(familySize.left()-8-(numericFont/24)-(familySize.height()/2));
+ setFamilySize(child[0]->getSize());
+ familySize().setTop(familySize().top()-8-(numericFont/24));
+ familySize().setLeft(familySize().left()-8-(numericFont/24)-(familySize().height()/2));
/*
- localSize is
+ localSize() is
child[0]+lines or pixmap
here put the code to calc it
- unit=familySize.height()/4;
+ unit=familySize().height()/4;
*/
- localSize=familySize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left(),0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ setLocalSize(familySize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left(),0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
//warning("end");
}
/*
@@ -189,15 +188,15 @@ void RootElement::drawIndexes(QPainter *
/*
Index[0] is in draw() must be lower...
*/
- QPoint dp = myArea.topLeft() - globalSize.topLeft();
+ QPoint dp = myArea().topLeft() - globalSize().topLeft();
if(index[1]!=0L)
- index[1]->draw(dp+familySize.bottomLeft() -
+ index[1]->draw(dp+familySize().bottomLeft() -
index[1]->getSize().topRight(),resolution);
if(index[2]!=0L)
- index[2]->draw(dp+familySize.topRight() -
+ index[2]->draw(dp+familySize().topRight() -
index[2]->getSize().bottomLeft(),resolution);
if(index[3]!=0L)
- index[3]->draw(dp+familySize.bottomRight() -
+ index[3]->draw(dp+familySize().bottomRight() -
index[3]->getSize().topLeft(),resolution);
}
Index: RootElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/RootElement.h,v
retrieving revision 1.10
diff -u -3 -p -r1.10 RootElement.h
--- RootElement.h 2000/10/19 11:39:21 1.10
+++ RootElement.h 2001/02/03 17:13:12
@@ -21,8 +21,7 @@ class RootElement : public BasicElement
* Normal constructor, Get font from prev element
*/
RootElement(KFormulaContainer *Formula,BasicElement *Prev=0,
- int Relation=-1,BasicElement *Next=0,
- QString Content="");
+ int Relation=-1,BasicElement *Next=0);
/*
* Link Next & Prev removing itself
Index: TextElement.cc
===================================================================
RCS file: /home/kde/koffice/kformula/TextElement.cc,v
retrieving revision 1.16
diff -u -3 -p -r1.16 TextElement.cc
--- TextElement.cc 2000/10/19 11:39:21 1.16
+++ TextElement.cc 2001/02/03 17:13:13
@@ -26,8 +26,8 @@ TextElement::TextElement(KFormulaContain
BasicElement *Prev,
int Relation,
BasicElement *Next,
- QString Content) :
- BasicElement(Formula,Prev,Relation,Next,Content)
+ QString Text) :
+ BasicElement(Formula,Prev,Relation,Next), text(Text)
{
kdDebug(39001) <<"A new text is born..\n";
QFont tmpfont = KGlobalSettings::generalFont();
@@ -53,31 +53,31 @@ void TextElement::draw(QPoint drawPoint,
if( beActive )
pen->setPen(Qt::red);
- if ( content.isEmpty() )
- pen->drawRect(x+familySize.x(),y-5,5,10);
+ if ( text.isEmpty() )
+ pen->drawRect(x+familySize().x(),y-5,5,10);
else
{
//kdDebug(39001) <<"Font for text\n";
pen->setFont(font);
- pen->drawText(x+familySize.x(),y+offsetY,content);
+ pen->drawText(x+familySize().x(),y+offsetY,text);
}
if(beActive)
pen->setPen(Qt::blue);
- myArea=globalSize;
- myArea.moveBy(x,y);
+ setMyArea(globalSize());
+ myArea().moveBy(x,y);
#ifdef RECT
/*QRect localArea;
- localArea=localSize;
+ localArea=localSize();
localArea.moveBy(x,y);
pen->drawRect(localArea);
- localArea=familySize;
+ localArea=familySize();
localArea.moveBy(x,y);
pen->drawRect(localArea);
*/
pen->setBrush(green);
pen->setBrush(NoBrush);
- pen->drawRect(myArea);
- QRect area(localSize);
+ pen->drawRect(myArea());
+ QRect area(localSize());
area.moveBy(x,y);
pen->drawRect(area);
pen->setBrush(SolidPattern);
@@ -87,7 +87,7 @@ void TextElement::draw(QPoint drawPoint,
if(beActive)
pen->setPen(Qt::black);
if(next!=0L)
- next->draw(drawPoint+QPoint(localSize.width(),0),resolution);
+ next->draw(drawPoint+QPoint(localSize().width(),0),resolution);
}
void TextElement::checkSize()
@@ -103,27 +103,27 @@ void TextElement::checkSize()
}
offsetY=fm.strikeOutPos();
- familySize=fm.boundingRect(content);
- familySize.moveBy(0,offsetY);
- if(content.isEmpty())
- familySize.setRect(0,-5,10,10);
+ setFamilySize(fm.boundingRect(text));
+ familySize().moveBy(0,offsetY);
+ if(text.isEmpty())
+ familySize().setRect(0,-5,10,10);
int offsetX; // Need To adjust X value
- offsetX=familySize.left();
+ offsetX=familySize().left();
if( offsetX<0)
- familySize.moveBy(-offsetX,0);
+ familySize().moveBy(-offsetX,0);
else {
- familySize.setLeft(0);
+ familySize().setLeft(0);
offsetX=0;
}
- localSize=familySize;
- checkIndexesSize(); //This will change localSize adding Indexes Size
- familySize.moveBy(-localSize.left()-offsetX,0);
- localSize.moveBy(-localSize.left(),0);
- globalSize=localSize;
- nextDimension.moveBy(localSize.width(),0);
- globalSize=globalSize.unite(nextDimension);
+ setLocalSize(familySize());
+ checkIndexesSize(); //This will change localSize() adding Indexes Size
+ familySize().moveBy(-localSize().left()-offsetX,0);
+ localSize().moveBy(-localSize().left(),0);
+ setGlobalSize(localSize());
+ nextDimension.moveBy(localSize().width(),0);
+ setGlobalSize(globalSize().unite(nextDimension));
kdDebug(39001) <<"End\n";
}
@@ -164,38 +164,38 @@ void TextElement::split(int pos)
//fix it
TextElement *FirstHalf = new TextElement(formula);
insertElement(FirstHalf);
- FirstHalf->setContent(content.left(pos));
+ FirstHalf->setContent(text.left(pos));
FirstHalf->setNumericFont(numericFont);
FirstHalf->changeFontFamily(font.family());
FirstHalf->changePropertieFont(font.bold(),font.underline(),font.italic());
- setContent(content.right(content.length()-pos));
- kdDebug(39001) <<content<<endl;
+ setContent(text.right(text.length()-pos));
+ kdDebug(39001) <<text<<endl;
- position=content.length();
+ position=text.length();
}
QRect TextElement::getCursor(int atPos)
{
- QPoint dp = myArea.topLeft()-globalSize.topLeft();
+ QPoint dp = myArea().topLeft()-globalSize().topLeft();
if(atPos>0)
{
atPos--;
QFontMetrics fm(font);
- return (QRect(dp.x()+familySize.x()+fm.width(content,atPos),
- dp.y()+familySize.top()-1,
- 5,familySize.height()+2));
+ return (QRect(dp.x()+familySize().x()+fm.width(text,atPos),
+ dp.y()+familySize().top()-1,
+ 5,familySize().height()+2));
}
else
{
if(atPos==0)
- return (QRect(dp.x()+familySize.x()-3,dp.y()-7,5,14));
+ return (QRect(dp.x()+familySize().x()-3,dp.y()-7,5,14));
else
- return (QRect(dp.x()+localSize.width()+2,dp.y()-8,5,16));
+ return (QRect(dp.x()+localSize().width()+2,dp.y()-8,5,16));
}
@@ -217,7 +217,7 @@ void TextElement::makeList(bool active)
}
kdDebug(39001) <<"index OK\n";
- for(unsigned int i=1;i<=content.length()+1;i++)
+ for(unsigned int i=1;i<=text.length()+1;i++)
formula->addElement(this, i);
for(int i=2;i<4;i++)
Index: TextElement.h
===================================================================
RCS file: /home/kde/koffice/kformula/TextElement.h,v
retrieving revision 1.14
diff -u -3 -p -r1.14 TextElement.h
--- TextElement.h 2000/10/19 11:39:21 1.14
+++ TextElement.h 2001/02/03 17:13:17
@@ -14,8 +14,8 @@
#include "BasicElement.h"
class TextElement : public BasicElement
- {
- public:
+{
+public:
/*
* Normal constructor, Get font from prev element
*/
@@ -91,7 +91,15 @@ class TextElement : public BasicElement
/* virtual void save(int file);
virtual void load(int file);
*/
- protected:
+
+ QString getContent() const {return text;}
+ void setContent(QString a) {text=a.copy();}
+ QString getContent() { return text;}
+
+//protected:
+private:
+
+ QString text;
/*
* Normal text need it
Index: kformula_doc.cc
===================================================================
RCS file: /home/kde/koffice/kformula/kformula_doc.cc,v
retrieving revision 1.51
diff -u -3 -p -r1.51 kformula_doc.cc
--- kformula_doc.cc 2000/10/22 12:22:02 1.51
+++ kformula_doc.cc 2001/02/03 17:13:18
@@ -57,7 +57,8 @@ KFormulaDoc::KFormulaDoc( QWidget *paren
m_bModified = false;
m_bEmpty = true;
- theFirstElement= new BasicElement(this,0L,-1,0L,"");
+ //theFirstElement= new BasicElement(this,0L,-1,0L,"");
+ theFirstElement= new BasicElement(this,0L,-1,0L);
addElement(theFirstElement, 0);
addElement(theFirstElement, -1);
eList.at(0);
@@ -549,10 +550,13 @@ if(!isReadWrite() )
if(action==Qt::Key_BackSpace)
{
- if(eList.prev()->element!=0)
- action=Qt::Key_Delete;
- else
- eList.next();
+ uint c = eList.at();
+ if(eList.prev()!=0) {
+ if (eList.current()->element!=0)
+ action=Qt::Key_Delete;
+ }
+ else
+ eList.at(c);
}
if(action==Qt::Key_Delete)
@@ -573,14 +577,20 @@ if(!isReadWrite() )
else
{
- if(eList.current()->pos==0)
- elReturn=FCOM_DELETEME;
- else
- {
- if(eList.next()->element!=0)
+ if(eList.current()->pos==0) {
elReturn=FCOM_DELETEME;
- else
- eList.prev();
+ }
+ else
+ {
+ // If you press `delete' in an empty document
+ // there is no next pos.
+ uint c = eList.at();
+ if (eList.next()!=0) {
+ if (eList.current()->element!=0)
+ elReturn=FCOM_DELETEME;
+ }
+ else
+ eList.at(c);
}
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic