[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