Diffstat (limited to 'noncore/apps/opie-reader/CDrawBuffer.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/CDrawBuffer.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/noncore/apps/opie-reader/CDrawBuffer.cpp b/noncore/apps/opie-reader/CDrawBuffer.cpp index bfb3027..227f0f6 100644 --- a/noncore/apps/opie-reader/CDrawBuffer.cpp +++ b/noncore/apps/opie-reader/CDrawBuffer.cpp | |||
@@ -361,12 +361,13 @@ int CDrawBuffer::offset(int scwidth, unsigned short _lborder, unsigned short _rb | |||
361 | leftMargin() - rightMargin() | 361 | leftMargin() - rightMargin() |
362 | - width(availht))/2 + _lborder; | 362 | - width(availht))/2 + _lborder; |
363 | } | 363 | } |
364 | break; | 364 | break; |
365 | case m_AlignJustify: | 365 | case m_AlignJustify: |
366 | case m_AlignLeft: | 366 | case m_AlignLeft: |
367 | case m_AlignNone: | ||
367 | currentx = _lborder + leftMargin(); | 368 | currentx = _lborder + leftMargin(); |
368 | break; | 369 | break; |
369 | } | 370 | } |
370 | return currentx; | 371 | return currentx; |
371 | } | 372 | } |
372 | 373 | ||
@@ -481,13 +482,13 @@ void CDrawBuffer::render(QPainter* _p, int _y, bool _bMono, int _charWidth, int | |||
481 | QFont f((currentstyle.isMono() && fc->hasCourier()) ? fc->fixedfontname() : fc->name(), fc->getsize(currentstyle), (currentstyle.isBold()) ? QFont::Bold : QFont::Normal, (currentstyle.isItalic()) ); | 482 | QFont f((currentstyle.isMono() && fc->hasCourier()) ? fc->fixedfontname() : fc->name(), fc->getsize(currentstyle), (currentstyle.isBold()) ? QFont::Bold : QFont::Normal, (currentstyle.isItalic()) ); |
482 | //f.setUnderline(currentstyle.isUnderline()); | 483 | //f.setUnderline(currentstyle.isUnderline()); |
483 | //if (currentstyle.isUnderline()) qDebug("UNDERLINE"); | 484 | //if (currentstyle.isUnderline()) qDebug("UNDERLINE"); |
484 | _p->setFont(f); | 485 | _p->setFont(f); |
485 | QString str = text.mid(textstart->start, end-textstart->start); | 486 | QString str = text.mid(textstart->start, end-textstart->start); |
486 | #if defined(OPIE) || !defined(USEQPE) | 487 | #if defined(OPIE) || !defined(USEQPE) |
487 | _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/100)); | 488 | _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/10/*0*/)); |
488 | #else | 489 | #else |
489 | _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/10)); | 490 | _p->setPen(QPen(QColor(currentstyle.Red(), currentstyle.Green(), currentstyle.Blue()), fc->getsize(currentstyle)/10)); |
490 | #endif | 491 | #endif |
491 | int voffset = currentstyle.getVOffset()*fc->getsize(currentstyle)/2; | 492 | int voffset = currentstyle.getVOffset()*fc->getsize(currentstyle)/2; |
492 | 493 | ||
493 | if (_bMono) | 494 | if (_bMono) |
@@ -655,13 +656,13 @@ CStyle CDrawBuffer::laststyle() | |||
655 | 656 | ||
656 | CStyle CDrawBuffer::firststyle() | 657 | CStyle CDrawBuffer::firststyle() |
657 | { | 658 | { |
658 | return segs.first().style; | 659 | return segs.first().style; |
659 | } | 660 | } |
660 | 661 | ||
661 | linkType CDrawBuffer::getLinkType(int numchars, size_t& tgt, size_t& offset, size_t& pictgt, QImage*& img) | 662 | linkType CDrawBuffer::getLinkType(int numchars, size_t& tgt, size_t& offset, size_t& pictgt, QImage*& img, size_t& tabletgt) |
662 | { | 663 | { |
663 | linkType ret = eNone; | 664 | linkType ret = eNone; |
664 | int end = 0; | 665 | int end = 0; |
665 | CStyle currentstyle; | 666 | CStyle currentstyle; |
666 | CList<textsegment>::iterator textstart = segs.begin(); | 667 | CList<textsegment>::iterator textstart = segs.begin(); |
667 | CList<textsegment>::iterator textend = textstart; | 668 | CList<textsegment>::iterator textend = textstart; |
@@ -687,12 +688,17 @@ linkType CDrawBuffer::getLinkType(int numchars, size_t& tgt, size_t& offset, siz | |||
687 | if (currentstyle.getLink()) | 688 | if (currentstyle.getLink()) |
688 | { | 689 | { |
689 | tgt = currentstyle.getData(); | 690 | tgt = currentstyle.getData(); |
690 | offset = currentstyle.getOffset(); | 691 | offset = currentstyle.getOffset(); |
691 | ret |= eLink; | 692 | ret |= eLink; |
692 | } | 693 | } |
694 | if (currentstyle.isTable()) | ||
695 | { | ||
696 | tabletgt = currentstyle.getTable(); | ||
697 | ret |= eTable; | ||
698 | } | ||
693 | return ret; | 699 | return ret; |
694 | } | 700 | } |
695 | 701 | ||
696 | void CDrawBuffer::resize(int availht) | 702 | void CDrawBuffer::resize(int availht) |
697 | { | 703 | { |
698 | int gzoom = fc->gzoom(); | 704 | int gzoom = fc->gzoom(); |
@@ -713,13 +719,13 @@ void CDrawBuffer::resize(int availht) | |||
713 | break; | 719 | break; |
714 | } | 720 | } |
715 | iter++; | 721 | iter++; |
716 | } | 722 | } |
717 | if (m_hastext) | 723 | if (m_hastext) |
718 | { | 724 | { |
719 | 725 | int p_linespacing = 0; | |
720 | for (CList<textsegment>::iterator iter = segs.begin(); iter != segs.end() && iter->start <= len; ) | 726 | for (CList<textsegment>::iterator iter = segs.begin(); iter != segs.end() && iter->start <= len; ) |
721 | { | 727 | { |
722 | CList<textsegment>::iterator next = iter; | 728 | CList<textsegment>::iterator next = iter; |
723 | iter++; | 729 | iter++; |
724 | int st = next->start; | 730 | int st = next->start; |
725 | if (st < 0) st = 0; | 731 | if (st < 0) st = 0; |
@@ -753,12 +759,23 @@ void CDrawBuffer::resize(int availht) | |||
753 | } | 759 | } |
754 | if (willscale || _style.canScale()) | 760 | if (willscale || _style.canScale()) |
755 | { | 761 | { |
756 | descent = ((gzoom*_style.getPicture()->height())/100-ascent)/2; | 762 | descent = ((gzoom*_style.getPicture()->height())/100-ascent)/2; |
757 | ascent = ((gzoom*_style.getPicture()->height())/100+ascent)/2; | 763 | ascent = ((gzoom*_style.getPicture()->height())/100+ascent)/2; |
758 | } | 764 | } |
765 | else | ||
766 | { | ||
767 | descent = (_style.getPicture()->height()-ascent)/2; | ||
768 | ascent = (_style.getPicture()->height()+ascent)/2; | ||
769 | } | ||
770 | int lineSpacing = ascent+descent; | ||
771 | if (lineSpacing > p_linespacing) | ||
772 | { | ||
773 | p_linespacing = lineSpacing; | ||
774 | } | ||
775 | extra = 0; | ||
759 | } | 776 | } |
760 | 777 | ||
761 | /* | 778 | /* |
762 | else if (fc != NULL) | 779 | else if (fc != NULL) |
763 | { | 780 | { |
764 | ascent = fc->ascent(_style); | 781 | ascent = fc->ascent(_style); |
@@ -769,13 +786,13 @@ void CDrawBuffer::resize(int availht) | |||
769 | */ | 786 | */ |
770 | if (ascent > m_ascent) m_ascent = ascent; | 787 | if (ascent > m_ascent) m_ascent = ascent; |
771 | if (descent > m_descent) m_descent = descent; | 788 | if (descent > m_descent) m_descent = descent; |
772 | if (extra > m_lineExtraSpacing) m_lineExtraSpacing = extra; | 789 | if (extra > m_lineExtraSpacing) m_lineExtraSpacing = extra; |
773 | m_lineSpacing = m_ascent+m_descent+m_lineExtraSpacing; | 790 | m_lineSpacing = m_ascent+m_descent+m_lineExtraSpacing; |
774 | } | 791 | } |
775 | m_showPartial = (m_lineSpacing > t_lineSpacing); | 792 | m_showPartial = (p_linespacing > t_lineSpacing); |
776 | int lead = fc->getlead(); | 793 | int lead = fc->getlead(); |
777 | if (lead != 0) | 794 | if (lead != 0) |
778 | { | 795 | { |
779 | int xt = (lead*t_lineSpacing+5)/10; | 796 | int xt = (lead*t_lineSpacing+5)/10; |
780 | m_lineExtraSpacing += xt; | 797 | m_lineExtraSpacing += xt; |
781 | m_lineSpacing += xt; | 798 | m_lineSpacing += xt; |