[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesdk/kbabel/kbabel
From: Stanislav Visnovsky <visnovsky () nenya ! ms ! mff ! cuni ! cz>
Date: 2002-12-18 19:01:48
[Download RAW message or body]
CVS commit by nanulo:
Be quick or be dead - use bitblt() for painting space points
M +0 -2 kbabelview.cpp 1.198
M +23 -4 mymultilineedit.cpp 1.94
M +6 -0 mymultilineedit.h 1.46
--- kdesdk/kbabel/kbabel/kbabelview.cpp #1.197:1.198
@@ -3718,6 +3718,4 @@ void KBabelView::autoCheck(bool onlyWhen
QStringList oldStatus = _catalog->itemStatus(_currentIndex);
- QValueList<KDataToolInfo> tools = ToolAction::validationTools();
-
QStringList status = _catalog->itemStatus( _currentIndex,true, \
_autocheckTools );
--- kdesdk/kbabel/kbabel/mymultilineedit.cpp #1.93:1.94
@@ -545,4 +545,5 @@ MsgMultiLineEdit::MsgMultiLineEdit(int I
_errorColor(Qt::red),
_currentColor(Qt::black),
+ _whitespace(0),
_hlSyntax(true),
_quoteColor(Qt::darkGreen),
@@ -560,4 +561,16 @@ MsgMultiLineEdit::MsgMultiLineEdit(int I
diffPos.clear();
+ _whitespace = new QPixmap(2,2,-1,QPixmap::BestOptim);
+ _whitespace->fill(_textColor);
+
+ _whitespaceNB = new QPixmap(3,3,-1,QPixmap::BestOptim);
+ _whitespaceNB->fill();
+
+ QPainter p(_whitespaceNB);
+ p.setPen( _textColor );
+ p.drawEllipse(_whitespaceNB->rect());
+
+ // this will setup bitBlt pixmaps
+ setFont( font() );
highlighter = new KBabelHighlighter( this );
@@ -790,4 +803,10 @@ void MsgMultiLineEdit::setFont(const QFo
KTextEdit::setFont(font);
+ // we don't need to calculate a special offset for non-breaking space, since
+ // they are very similar in size
+ QFontMetrics fm(font);
+ _wsOffsetX = QMAX(fm.width(' ')/2-2,1);
+ _wsOffsetY = QMAX(fm.height()/2-1,0);
+
repaint();
}
@@ -876,5 +895,5 @@ void MsgMultiLineEdit::paintSpacePoints(
}
- if( _spacePoints ) {
+ if( _spacePoints && _whitespace ) {
painter.setPen( _currentColor );
@@ -892,7 +911,7 @@ void MsgMultiLineEdit::paintSpacePoints(
p = contentsToViewport( QPoint(ch->x,myrowY));
if( ch->c.unicode() == 0x00A0U )
- painter.drawEllipse( p.x()+mypar->string()->width(i)/2-1, \
p.y()+mypar->lineHeight(0)/2,3,3 ); + bitBlt(viewport(), \
QPoint(p.x()+_wsOffsetX, p.y()+_wsOffsetY), _whitespaceNB, _whitespaceNB->rect(), \
Qt::CopyROP); else
- painter.drawEllipse( p.x()+mypar->string()->width(i)/2-1, \
p.y()+mypar->lineHeight(0)/2,2,2 ); + bitBlt(viewport(), \
QPoint(p.x()+_wsOffsetX, p.y()+_wsOffsetY), _whitespace, _whitespace->rect(), \
Qt::CopyROP); i = s.find( " ", i+1 );
}
--- kdesdk/kbabel/kbabel/mymultilineedit.h #1.45:1.46
@@ -32,4 +32,5 @@
class EditCommand;
class KBabelHighlighter;
+class QPixmap;
class MyMultiLineEdit : public KTextEdit
@@ -226,4 +227,9 @@ private:
QColor _errorColor;
QColor _currentColor;
+
+ QPixmap* _whitespace;
+ QPixmap* _whitespaceNB;
+ int _wsOffsetX;
+ int _wsOffsetY;
bool _hlSyntax;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic