author | llornkcor <llornkcor> | 2002-07-16 23:46:36 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-07-16 23:46:36 (UTC) |
commit | 238f77dac6c82b420e2e6334fabf9b7744abd844 (patch) (unidiff) | |
tree | 23771c76cb5ffa8da248ae4977ec13e36c5cb62f | |
parent | 6d5261a534612f0f993caca801e7c7e1a5c74f32 (diff) | |
download | opie-238f77dac6c82b420e2e6334fabf9b7744abd844.zip opie-238f77dac6c82b420e2e6334fabf9b7744abd844.tar.gz opie-238f77dac6c82b420e2e6334fabf9b7744abd844.tar.bz2 |
fix for initial start crash when there's no config file
-rw-r--r-- | noncore/apps/opie-reader/QTReader.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/noncore/apps/opie-reader/QTReader.cpp b/noncore/apps/opie-reader/QTReader.cpp index fc9cffb..6335ea2 100644 --- a/noncore/apps/opie-reader/QTReader.cpp +++ b/noncore/apps/opie-reader/QTReader.cpp | |||
@@ -580,192 +580,193 @@ void QTReader::init() | |||
580 | } | 580 | } |
581 | 581 | ||
582 | // | 582 | // |
583 | // Clean up | 583 | // Clean up |
584 | // | 584 | // |
585 | QTReader::~QTReader() | 585 | QTReader::~QTReader() |
586 | { | 586 | { |
587 | if (fontsizes != NULL) delete [] fontsizes; | 587 | if (fontsizes != NULL) delete [] fontsizes; |
588 | #ifndef QT_NO_PRINTER | 588 | #ifndef QT_NO_PRINTER |
589 | // delete printer; | 589 | // delete printer; |
590 | #endif | 590 | #endif |
591 | } | 591 | } |
592 | 592 | ||
593 | // | 593 | // |
594 | // Calls the drawing function as specified by the radio buttons. | 594 | // Calls the drawing function as specified by the radio buttons. |
595 | // | 595 | // |
596 | 596 | ||
597 | void QTReader::drawIt( QPainter *p ) | 597 | void QTReader::drawIt( QPainter *p ) |
598 | { | 598 | { |
599 | drawFonts(p); | 599 | drawFonts(p); |
600 | } | 600 | } |
601 | 601 | ||
602 | // | 602 | // |
603 | // Called when the print button is clicked. | 603 | // Called when the print button is clicked. |
604 | // | 604 | // |
605 | /* | 605 | /* |
606 | void QTReader::printIt() | 606 | void QTReader::printIt() |
607 | { | 607 | { |
608 | #ifndef QT_NO_PRINTER | 608 | #ifndef QT_NO_PRINTER |
609 | if ( printer->setup( this ) ) { | 609 | if ( printer->setup( this ) ) { |
610 | QPainter paint; | 610 | QPainter paint; |
611 | if ( !paint.begin( printer ) ) | 611 | if ( !paint.begin( printer ) ) |
612 | return; | 612 | return; |
613 | drawIt( &paint ); | 613 | drawIt( &paint ); |
614 | } | 614 | } |
615 | #endif | 615 | #endif |
616 | } | 616 | } |
617 | */ | 617 | */ |
618 | // | 618 | // |
619 | // Called when the widget needs to be updated. | 619 | // Called when the widget needs to be updated. |
620 | // | 620 | // |
621 | 621 | ||
622 | void QTReader::paintEvent( QPaintEvent * ) | 622 | void QTReader::paintEvent( QPaintEvent * ) |
623 | { | 623 | { |
624 | QPainter paint( this ); | 624 | QPainter paint( this ); |
625 | drawIt( &paint ); | 625 | drawIt( &paint ); |
626 | } | 626 | } |
627 | 627 | ||
628 | // | 628 | // |
629 | // Called when the widget has been resized. | 629 | // Called when the widget has been resized. |
630 | // Moves the button group to the upper right corner | 630 | // Moves the button group to the upper right corner |
631 | // of the widget. | 631 | // of the widget. |
632 | 632 | ||
633 | /* | 633 | /* |
634 | void QTReader::resizeEvent( QResizeEvent * ) | 634 | void QTReader::resizeEvent( QResizeEvent * ) |
635 | { | 635 | { |
636 | // qDebug("resize:(%u,%u)", width(), height()); | 636 | // qDebug("resize:(%u,%u)", width(), height()); |
637 | // bgroup->move( width()-bgroup->width(), 0 ); | 637 | // bgroup->move( width()-bgroup->width(), 0 ); |
638 | } | 638 | } |
639 | */ | 639 | */ |
640 | 640 | ||
641 | // | 641 | // |
642 | // Create and display our widget. | 642 | // Create and display our widget. |
643 | // | 643 | // |
644 | /* | 644 | /* |
645 | int main( int argc, tchar **argv ) | 645 | int main( int argc, tchar **argv ) |
646 | { | 646 | { |
647 | QApplication app( argc, argv ); | 647 | QApplication app( argc, argv ); |
648 | QTReader draw; | 648 | QTReader draw; |
649 | app.setMainWidget( &draw ); | 649 | app.setMainWidget( &draw ); |
650 | draw.setCaption("Qt Example - Drawdemo"); | 650 | draw.setCaption("Qt Example - Drawdemo"); |
651 | draw.show(); | 651 | draw.show(); |
652 | return app.exec(); | 652 | return app.exec(); |
653 | } | 653 | } |
654 | */ | 654 | */ |
655 | 655 | ||
656 | 656 | ||
657 | bool QTReader::locate(unsigned long n) { | 657 | bool QTReader::locate(unsigned long n) { |
658 | //printf("Locate\n"); | 658 | //printf("Locate\n"); |
659 | buffdoc.locate(n); | 659 | buffdoc.locate(n); |
660 | // qDebug("&buffdoc.located"); | 660 | // qDebug("&buffdoc.located"); |
661 | fillbuffer(); | 661 | fillbuffer(); |
662 | // qDebug("&Buffer filled"); | 662 | // qDebug("&Buffer filled"); |
663 | update(); | 663 | update(); |
664 | // qDebug("&Located"); | 664 | // qDebug("&Located"); |
665 | return true; | 665 | return true; |
666 | } | 666 | } |
667 | 667 | ||
668 | unsigned int QTReader::screenlines() | 668 | unsigned int QTReader::screenlines() |
669 | { | 669 | { |
670 | // int linespacing = (tight) ? m_ascent : m_ascent+m_descent; | 670 | // int linespacing = (tight) ? m_ascent : m_ascent+m_descent; |
671 | // return (height()-m_descent)/(m_linespacing); | 671 | // return (height()-m_descent)/(m_linespacing); |
672 | return (height()-2)/(m_linespacing); | 672 | return (height()-2)/(m_linespacing); |
673 | }; | 673 | }; |
674 | 674 | ||
675 | bool QTReader::fillbuffer() { | 675 | bool QTReader::fillbuffer() { |
676 | if (buffdoc.empty()) return false; | ||
676 | //printf("Fillbuffer\n"); | 677 | //printf("Fillbuffer\n"); |
677 | m_scrolldy = 0; | 678 | m_scrolldy = 0; |
678 | int ch; | 679 | int ch; |
679 | bool ret = false; | 680 | bool ret = false; |
680 | int delta = screenlines(); | 681 | int delta = screenlines(); |
681 | // qDebug("fillbuffer:%u-%u",delta,numlines); | 682 | // qDebug("fillbuffer:%u-%u",delta,numlines); |
682 | if (delta != numlines) | 683 | if (delta != numlines) |
683 | { | 684 | { |
684 | if (textarray != NULL) | 685 | if (textarray != NULL) |
685 | { | 686 | { |
686 | for (int i = 0; i < numlines; i++) delete textarray[i]; | 687 | for (int i = 0; i < numlines; i++) delete textarray[i]; |
687 | delete [] textarray; | 688 | delete [] textarray; |
688 | delete [] locnarray; | 689 | delete [] locnarray; |
689 | } | 690 | } |
690 | numlines = delta; | 691 | numlines = delta; |
691 | textarray = new CBuffer*[numlines]; | 692 | textarray = new CBuffer*[numlines]; |
692 | locnarray = new size_t[numlines]; | 693 | locnarray = new size_t[numlines]; |
693 | for (int i = 0; i < numlines; i++) textarray[i] = new CBuffer; | 694 | for (int i = 0; i < numlines; i++) textarray[i] = new CBuffer; |
694 | } | 695 | } |
695 | // qDebug("fillbuffer:pagepos:%u",pagepos); | 696 | // qDebug("fillbuffer:pagepos:%u",pagepos); |
696 | unsigned int oldpagepos = pagepos; | 697 | unsigned int oldpagepos = pagepos; |
697 | // if (textarray != NULL) | 698 | // if (textarray != NULL) |
698 | // pagepos = locnarray[0]; | 699 | // pagepos = locnarray[0]; |
699 | // else | 700 | // else |
700 | pagepos = locate(); | 701 | pagepos = locate(); |
701 | for (int i = 0; i < delta; i++) | 702 | for (int i = 0; i < delta; i++) |
702 | { | 703 | { |
703 | locnarray[i] = locate(); | 704 | locnarray[i] = locate(); |
704 | ch = getline(textarray[i]); | 705 | ch = getline(textarray[i]); |
705 | // if (ch == EOF) { | 706 | // if (ch == EOF) { |
706 | if (!ch) | 707 | if (!ch) |
707 | { | 708 | { |
708 | if (i == 0) | 709 | if (i == 0) |
709 | { | 710 | { |
710 | locate(oldpagepos); | 711 | locate(oldpagepos); |
711 | return false; | 712 | return false; |
712 | } | 713 | } |
713 | else | 714 | else |
714 | { | 715 | { |
715 | ret = true; | 716 | ret = true; |
716 | for (int j = i+1; j < delta; j++) | 717 | for (int j = i+1; j < delta; j++) |
717 | { | 718 | { |
718 | locnarray[j] = locnarray[j-1]; | 719 | locnarray[j] = locnarray[j-1]; |
719 | (*(textarray[j]))[0] = '\0'; | 720 | (*(textarray[j]))[0] = '\0'; |
720 | } | 721 | } |
721 | break; | 722 | break; |
722 | } | 723 | } |
723 | } | 724 | } |
724 | if (ch == '\012') ret = true; | 725 | if (ch == '\012') ret = true; |
725 | } | 726 | } |
726 | mylastpos = locate(); | 727 | mylastpos = locate(); |
727 | // qDebug("fillbuffer:lastpos:%u",mylastpos); | 728 | // qDebug("fillbuffer:lastpos:%u",mylastpos); |
728 | return true; | 729 | return true; |
729 | } | 730 | } |
730 | 731 | ||
731 | 732 | ||
732 | void QTReader::dopagedn() | 733 | void QTReader::dopagedn() |
733 | { | 734 | { |
734 | if (m_overlap == 0) | 735 | if (m_overlap == 0) |
735 | { | 736 | { |
736 | if (locate() != mylastpos) jumpto(mylastpos); | 737 | if (locate() != mylastpos) jumpto(mylastpos); |
737 | } | 738 | } |
738 | else | 739 | else |
739 | { | 740 | { |
740 | if (m_overlap >= screenlines()) m_overlap = screenlines()/2; | 741 | if (m_overlap >= screenlines()) m_overlap = screenlines()/2; |
741 | jumpto(locnarray[screenlines()-m_overlap]); | 742 | jumpto(locnarray[screenlines()-m_overlap]); |
742 | } | 743 | } |
743 | if (fillbuffer()) | 744 | if (fillbuffer()) |
744 | { | 745 | { |
745 | update(); | 746 | update(); |
746 | } | 747 | } |
747 | } | 748 | } |
748 | 749 | ||
749 | void QTReader::dopageup() | 750 | void QTReader::dopageup() |
750 | { | 751 | { |
751 | CBuffer** buff = textarray; | 752 | CBuffer** buff = textarray; |
752 | unsigned int *loc = new unsigned int[numlines]; | 753 | unsigned int *loc = new unsigned int[numlines]; |
753 | int cbptr = 0; | 754 | int cbptr = 0; |
754 | if (locate() != mylastpos) jumpto(mylastpos); | 755 | if (locate() != mylastpos) jumpto(mylastpos); |
755 | if (m_overlap >= screenlines()) m_overlap = screenlines()/2; | 756 | if (m_overlap >= screenlines()) m_overlap = screenlines()/2; |
756 | unsigned int target = locnarray[m_overlap]; | 757 | unsigned int target = locnarray[m_overlap]; |
757 | if (buffdoc.hasrandomaccess()) | 758 | if (buffdoc.hasrandomaccess()) |
758 | { | 759 | { |
759 | unsigned int delta = locate()-pagelocate(); | 760 | unsigned int delta = locate()-pagelocate(); |
760 | if (delta < 64) delta = 64; | 761 | if (delta < 64) delta = 64; |
761 | if (delta % 2 != 0) delta++; | 762 | if (delta % 2 != 0) delta++; |
762 | if (target % 2 != 0) target++; | 763 | if (target % 2 != 0) target++; |
763 | do | 764 | do |
764 | { | 765 | { |
765 | delta <<= 1; | 766 | delta <<= 1; |
766 | if (delta >= target) | 767 | if (delta >= target) |
767 | { | 768 | { |
768 | delta = target; | 769 | delta = target; |
769 | jumpto(0); | 770 | jumpto(0); |
770 | for (int i = 0; i < numlines; i++) | 771 | for (int i = 0; i < numlines; i++) |
771 | { | 772 | { |