summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 797c61b..5edf102 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -409,795 +409,797 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f )
409 bool wrap = cfg. readBoolEntry ( "Wrap", true ); 409 bool wrap = cfg. readBoolEntry ( "Wrap", true );
410 wa-> setOn ( wrap ); 410 wa-> setOn ( wrap );
411 setWordWrap ( wrap ); 411 setWordWrap ( wrap );
412 412
413///////////////// 413/////////////////
414 if( qApp->argc() > 1) { 414 if( qApp->argc() > 1) {
415 currentFileName=qApp->argv()[1]; 415 currentFileName=qApp->argv()[1];
416 416
417 QFileInfo fi(currentFileName); 417 QFileInfo fi(currentFileName);
418 418
419 if(fi.baseName().left(1) == "") { 419 if(fi.baseName().left(1) == "") {
420 openDotFile(currentFileName); 420 openDotFile(currentFileName);
421 } else { 421 } else {
422 openFile(currentFileName); 422 openFile(currentFileName);
423 } 423 }
424 } else { 424 } else {
425 edited1=false; 425 edited1=false;
426 openDotFile(""); 426 openDotFile("");
427 } 427 }
428 428
429 viewSelection = cfg.readNumEntry( "FileView", 0 ); 429 viewSelection = cfg.readNumEntry( "FileView", 0 );
430} 430}
431 431
432TextEdit::~TextEdit() { 432TextEdit::~TextEdit() {
433 qWarning("textedit d'tor"); 433 qWarning("textedit d'tor");
434 delete editor; 434 delete editor;
435} 435}
436 436
437void TextEdit::closeEvent(QCloseEvent *) { 437void TextEdit::closeEvent(QCloseEvent *) {
438 if( edited1 && promptExit) 438 if( edited1 && promptExit)
439 { 439 {
440 switch( savePrompt() ) 440 switch( savePrompt() )
441 { 441 {
442 case 1: 442 case 1:
443 { 443 {
444 saveAs(); 444 saveAs();
445 qApp->quit(); 445 qApp->quit();
446 } 446 }
447 break; 447 break;
448 448
449 case 2: 449 case 2:
450 { 450 {
451 qApp->quit(); 451 qApp->quit();
452 } 452 }
453 break; 453 break;
454 454
455 case -1: 455 case -1:
456 break; 456 break;
457 }; 457 };
458 } 458 }
459 else 459 else
460 qApp->quit(); 460 qApp->quit();
461 461
462} 462}
463 463
464void TextEdit::cleanUp() { 464void TextEdit::cleanUp() {
465 465
466 Config cfg ( "TextEdit" ); 466 Config cfg ( "TextEdit" );
467 cfg. setGroup ( "Font" ); 467 cfg. setGroup ( "Font" );
468 QFont f = editor->font(); 468 QFont f = editor->font();
469 cfg.writeEntry ( "Family", f. family ( )); 469 cfg.writeEntry ( "Family", f. family ( ));
470 cfg.writeEntry ( "Size", f. pointSize ( )); 470 cfg.writeEntry ( "Size", f. pointSize ( ));
471 cfg.writeEntry ( "Weight", f. weight ( )); 471 cfg.writeEntry ( "Weight", f. weight ( ));
472 cfg.writeEntry ( "Italic", f. italic ( )); 472 cfg.writeEntry ( "Italic", f. italic ( ));
473 473
474 cfg.setGroup ( "View" ); 474 cfg.setGroup ( "View" );
475 cfg.writeEntry ( "Wrap", editor->wordWrap() == QMultiLineEdit::WidgetWidth ); 475 cfg.writeEntry ( "Wrap", editor->wordWrap() == QMultiLineEdit::WidgetWidth );
476 cfg.writeEntry ( "FileView", viewSelection ); 476 cfg.writeEntry ( "FileView", viewSelection );
477 477
478 cfg.writeEntry ( "PromptExit", promptExit ); 478 cfg.writeEntry ( "PromptExit", promptExit );
479 cfg.writeEntry ( "OpenDesktop", openDesktop ); 479 cfg.writeEntry ( "OpenDesktop", openDesktop );
480 cfg.writeEntry ( "FilePermissions", filePerms ); 480 cfg.writeEntry ( "FilePermissions", filePerms );
481 cfg.writeEntry ( "SearchBar", useSearchBar ); 481 cfg.writeEntry ( "SearchBar", useSearchBar );
482 cfg.writeEntry ( "startNew", startWithNew ); 482 cfg.writeEntry ( "startNew", startWithNew );
483 483
484} 484}
485 485
486 486
487void TextEdit::accept() { 487void TextEdit::accept() {
488 if( edited1) 488 if( edited1)
489 saveAs(); 489 saveAs();
490 qApp->quit(); 490 qApp->quit();
491} 491}
492 492
493void TextEdit::zoomIn() { 493void TextEdit::zoomIn() {
494 setFontSize(editor->font().pointSize()+1,false); 494 setFontSize(editor->font().pointSize()+1,false);
495} 495}
496 496
497void TextEdit::zoomOut() { 497void TextEdit::zoomOut() {
498 setFontSize(editor->font().pointSize()-1,true); 498 setFontSize(editor->font().pointSize()-1,true);
499} 499}
500 500
501 501
502void TextEdit::setFontSize(int sz, bool round_down_not_up) { 502void TextEdit::setFontSize(int sz, bool round_down_not_up) {
503 int s=10; 503 int s=10;
504 for (int i=0; i<nfontsizes; i++) { 504 for (int i=0; i<nfontsizes; i++) {
505 if ( fontsize[i] == sz ) { 505 if ( fontsize[i] == sz ) {
506 s = sz; 506 s = sz;
507 break; 507 break;
508 } else if ( round_down_not_up ) { 508 } else if ( round_down_not_up ) {
509 if ( fontsize[i] < sz ) 509 if ( fontsize[i] < sz )
510 s = fontsize[i]; 510 s = fontsize[i];
511 } else { 511 } else {
512 if ( fontsize[i] > sz ) { 512 if ( fontsize[i] > sz ) {
513 s = fontsize[i]; 513 s = fontsize[i];
514 break; 514 break;
515 } 515 }
516 } 516 }
517 } 517 }
518 518
519 QFont f = editor->font(); 519 QFont f = editor->font();
520 f.setPointSize(s); 520 f.setPointSize(s);
521 editor->setFont(f); 521 editor->setFont(f);
522 522
523 zin->setEnabled(s != fontsize[nfontsizes-1]); 523 zin->setEnabled(s != fontsize[nfontsizes-1]);
524 zout->setEnabled(s != fontsize[0]); 524 zout->setEnabled(s != fontsize[0]);
525} 525}
526 526
527void TextEdit::setBold(bool y) { 527void TextEdit::setBold(bool y) {
528 QFont f = editor->font(); 528 QFont f = editor->font();
529 f.setBold(y); 529 f.setBold(y);
530 editor->setFont(f); 530 editor->setFont(f);
531} 531}
532 532
533void TextEdit::setItalic(bool y) { 533void TextEdit::setItalic(bool y) {
534 QFont f = editor->font(); 534 QFont f = editor->font();
535 f.setItalic(y); 535 f.setItalic(y);
536 editor->setFont(f); 536 editor->setFont(f);
537} 537}
538 538
539void TextEdit::setWordWrap(bool y) { 539void TextEdit::setWordWrap(bool y) {
540 bool state = editor->edited(); 540 bool state = editor->edited();
541 QString captionStr = caption(); 541 QString captionStr = caption();
542 bool b1 = edited1; 542 bool b1 = edited1;
543 bool b2 = edited; 543 bool b2 = edited;
544 544
545 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap ); 545 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap );
546 editor->setEdited( state ); 546 editor->setEdited( state );
547 edited1=b1; 547 edited1=b1;
548 edited=b2; 548 edited=b2;
549 setCaption(captionStr); 549 setCaption(captionStr);
550} 550}
551 551
552void TextEdit::setSearchBar(bool b) { 552void TextEdit::setSearchBar(bool b) {
553 useSearchBar=b; 553 useSearchBar=b;
554 Config cfg("TextEdit"); 554 Config cfg("TextEdit");
555 cfg.setGroup("View"); 555 cfg.setGroup("View");
556 cfg.writeEntry ( "SearchBar", b ); 556 cfg.writeEntry ( "SearchBar", b );
557 searchBarAction->setOn(b); 557 searchBarAction->setOn(b);
558 if(b) 558 if(b)
559 searchBar->show(); 559 searchBar->show();
560 else 560 else
561 searchBar->hide(); 561 searchBar->hide();
562 editor->setFocus(); 562 editor->setFocus();
563} 563}
564 564
565void TextEdit::fileNew() { 565void TextEdit::fileNew() {
566// if( !bFromDocView ) { 566// if( !bFromDocView ) {
567// saveAs(); 567// saveAs();
568// } 568// }
569 newFile(DocLnk()); 569 newFile(DocLnk());
570} 570}
571 571
572void TextEdit::fileOpen() { 572void TextEdit::fileOpen() {
573 Config cfg("TextEdit"); 573 Config cfg("TextEdit");
574 cfg. setGroup ( "View" ); 574 cfg. setGroup ( "View" );
575 QString dir = cfg.readEntry("LastOpenDirectory", QPEApplication::documentDir()); 575 QString dir = cfg.readEntry("LastOpenDirectory", QPEApplication::documentDir());
576 QMap<QString, QStringList> map; 576 QMap<QString, QStringList> map;
577 map.insert(tr("All"), QStringList() ); 577 map.insert(tr("All"), QStringList() );
578 QStringList text; 578 QStringList text;
579 text << "text/*"; 579 text << "text/*";
580 map.insert(tr("Text"), text ); 580 map.insert(tr("Text"), text );
581 text << "*"; 581 text << "*";
582 map.insert(tr("All"), text ); 582 map.insert(tr("All"), text );
583 QString str = OFileDialog::getOpenFileName( 2, 583 QString str = OFileDialog::getOpenFileName( 2,
584 dir , 584 dir ,
585 QString::null, map); 585 QString::null, map);
586 if( !str.isEmpty() && QFile(str).exists() && !QFileInfo(str).isDir() ) 586 if( !str.isEmpty() && QFile(str).exists() && !QFileInfo(str).isDir() )
587 { 587 {
588 cfg.writeEntry("LastOpenDirectory", QFileInfo(str).dirPath(false)); 588 cfg.writeEntry("LastOpenDirectory", QFileInfo(str).dirPath(false));
589 openFile( str ); 589 openFile( str );
590 } 590 }
591 else 591 else
592 updateCaption(); 592 updateCaption();
593} 593}
594 594
595void TextEdit::doSearchBar() { 595void TextEdit::doSearchBar() {
596 if(!useSearchBar) 596 if(!useSearchBar)
597 searchBar->hide(); 597 searchBar->hide();
598 else 598 else
599 searchBar->show(); 599 searchBar->show();
600} 600}
601 601
602#if 0 602#if 0
603void TextEdit::slotFind() { 603void TextEdit::slotFind() {
604 FindDialog frmFind( tr("Text Editor"), this ); 604 FindDialog frmFind( tr("Text Editor"), this );
605 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), 605 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)),
606 editor, SLOT(slotDoFind( const QString&,bool,bool))); 606 editor, SLOT(slotDoFind( const QString&,bool,bool)));
607 607
608 //case sensitive, backwards, [category] 608 //case sensitive, backwards, [category]
609 609
610 connect( editor, SIGNAL(notFound()), 610 connect( editor, SIGNAL(notFound()),
611 &frmFind, SLOT(slotNotFound()) ); 611 &frmFind, SLOT(slotNotFound()) );
612 connect( editor, SIGNAL(searchWrapped()), 612 connect( editor, SIGNAL(searchWrapped()),
613 &frmFind, SLOT(slotWrapAround()) ); 613 &frmFind, SLOT(slotWrapAround()) );
614 614
615 frmFind.exec(); 615 frmFind.exec();
616 616
617 617
618} 618}
619#endif 619#endif
620 620
621void TextEdit::fileRevert() { 621void TextEdit::fileRevert() {
622 clear(); 622 clear();
623 fileOpen(); 623 fileOpen();
624} 624}
625 625
626void TextEdit::editCut() { 626void TextEdit::editCut() {
627#ifndef QT_NO_CLIPBOARD 627#ifndef QT_NO_CLIPBOARD
628 editor->cut(); 628 editor->cut();
629#endif 629#endif
630} 630}
631 631
632void TextEdit::editCopy() { 632void TextEdit::editCopy() {
633#ifndef QT_NO_CLIPBOARD 633#ifndef QT_NO_CLIPBOARD
634 editor->copy(); 634 editor->copy();
635#endif 635#endif
636} 636}
637 637
638void TextEdit::editPaste() { 638void TextEdit::editPaste() {
639#ifndef QT_NO_CLIPBOARD 639#ifndef QT_NO_CLIPBOARD
640 editor->paste(); 640 editor->paste();
641#endif 641#endif
642} 642}
643 643
644void TextEdit::editFind() { 644void TextEdit::editFind() {
645 searchBar->show(); 645 searchBar->show();
646 searchEdit->setFocus(); 646 searchEdit->setFocus();
647} 647}
648 648
649void TextEdit::findNext() { 649void TextEdit::findNext() {
650 editor->find( searchEdit->text(), false, false ); 650 editor->find( searchEdit->text(), false, false );
651 651
652} 652}
653 653
654void TextEdit::findClose() { 654void TextEdit::findClose() {
655 searchBar->hide(); 655 searchBar->hide();
656} 656}
657 657
658void TextEdit::search() { 658void TextEdit::search() {
659 editor->find( searchEdit->text(), false, false ); 659 editor->find( searchEdit->text(), false, false );
660} 660}
661 661
662void TextEdit::newFile( const DocLnk &f ) { 662void TextEdit::newFile( const DocLnk &f ) {
663 DocLnk nf = f; 663 DocLnk nf = f;
664 nf.setType("text/plain"); 664 nf.setType("text/plain");
665 clear(); 665 clear();
666 setWState (WState_Reserved1 ); 666 setWState (WState_Reserved1 );
667 editor->setFocus(); 667 editor->setFocus();
668 doc = new DocLnk(nf); 668 doc = new DocLnk(nf);
669 currentFileName = "Unnamed"; 669 currentFileName = "Unnamed";
670 qDebug("newFile "+currentFileName); 670 qDebug("newFile "+currentFileName);
671 updateCaption( currentFileName); 671 updateCaption( currentFileName);
672// editor->setEdited( false); 672// editor->setEdited( false);
673} 673}
674 674
675void TextEdit::openDotFile( const QString &f ) { 675void TextEdit::openDotFile( const QString &f ) {
676 if(!currentFileName.isEmpty()) { 676 if(!currentFileName.isEmpty()) {
677 currentFileName=f; 677 currentFileName=f;
678 678
679 qDebug("openFile dotfile " + currentFileName); 679 qDebug("openFile dotfile " + currentFileName);
680 QString txt; 680 QString txt;
681 QFile file(f); 681 QFile file(f);
682 file.open(IO_ReadWrite); 682 file.open(IO_ReadWrite);
683 QTextStream t(&file); 683 QTextStream t(&file);
684 while ( !t.atEnd()) { 684 while ( !t.atEnd()) {
685 txt+=t.readLine()+"\n"; 685 txt+=t.readLine()+"\n";
686 } 686 }
687 editor->setText(txt); 687 editor->setText(txt);
688 editor->setEdited( false); 688 editor->setEdited( false);
689 edited1=false; 689 edited1=false;
690 edited=false; 690 edited=false;
691 691
692 692
693 } 693 }
694 updateCaption( currentFileName); 694 updateCaption( currentFileName);
695} 695}
696 696
697void TextEdit::openFile( const QString &f ) { 697void TextEdit::openFile( const QString &f ) {
698 qDebug("filename is "+ f); 698 qDebug("filename is "+ f);
699 QString filer; 699 QString filer;
700 QFileInfo fi( f); 700 QFileInfo fi( f);
701// bFromDocView = true; 701// bFromDocView = true;
702 if(f.find(".desktop",0,true) != -1 && !openDesktop ) { 702 if(f.find(".desktop",0,true) != -1 && !openDesktop ) {
703 switch ( QMessageBox::warning(this,tr("Text Editor"), 703 switch ( QMessageBox::warning(this,tr("Text Editor"),
704 tr("Text Editor has detected<BR>you selected a <B>.desktop</B> 704 tr("Text Editor has detected<BR>you selected a <B>.desktop</B>
705file.<BR>Open <B>.desktop</B> file or <B>linked</B> file?"), 705file.<BR>Open <B>.desktop</B> file or <B>linked</B> file?"),
706 tr(".desktop File"),tr("Linked Document"),0,1,1) ) { 706 tr(".desktop File"),tr("Linked Document"),0,1,1) ) {
707 case 0: 707 case 0:
708 filer = f; 708 filer = f;
709 break; 709 break;
710 case 1: 710 case 1:
711 DocLnk sf(f); 711 DocLnk sf(f);
712 filer = sf.file(); 712 filer = sf.file();
713 break; 713 break;
714 } 714 }
715 } else if(fi.baseName().left(1) == "") { 715 } else if(fi.baseName().left(1) == "") {
716 currentFileName=f; 716 currentFileName=f;
717 openDotFile(currentFileName); 717 openDotFile(currentFileName);
718 } else { 718 } else {
719 DocLnk sf(f); 719 DocLnk sf(f);
720 filer = sf.file(); 720 filer = sf.file();
721 if(filer.right(1) == "/") 721 if(filer.right(1) == "/")
722 filer = f; 722 filer = f;
723 723
724 DocLnk nf; 724 DocLnk nf;
725 nf.setType("text/plain"); 725 nf.setType("text/plain");
726 nf.setFile(filer); 726 nf.setFile(filer);
727 currentFileName=filer; 727 currentFileName=filer;
728 728
729 nf.setName(fi.baseName()); 729 nf.setName(fi.baseName());
730 openFile(nf); 730 openFile(nf);
731 731
732 qDebug("openFile string "+currentFileName); 732 qDebug("openFile string "+currentFileName);
733 733
734 } 734 }
735 showEditTools(); 735 showEditTools();
736 // Show filename in caption 736 // Show filename in caption
737 QString name = filer; 737 QString name = filer;
738 int sep = name.findRev( '/' ); 738 int sep = name.findRev( '/' );
739 if ( sep > 0 ) 739 if ( sep > 0 )
740 name = name.mid( sep+1 ); 740 name = name.mid( sep+1 );
741 updateCaption( name ); 741 updateCaption( name );
742} 742}
743 743
744void TextEdit::openFile( const DocLnk &f ) { 744void TextEdit::openFile( const DocLnk &f ) {
745// clear(); 745// clear();
746// bFromDocView = true; 746// bFromDocView = true;
747 FileManager fm; 747 FileManager fm;
748 QString txt; 748 QString txt;
749 currentFileName=f.file(); 749 currentFileName=f.file();
750 qDebug("openFile doclnk " + currentFileName); 750 qDebug("openFile doclnk " + currentFileName);
751 if ( !fm.loadFile( f, txt ) ) { 751 if ( !fm.loadFile( f, txt ) ) {
752 // ####### could be a new file 752 // ####### could be a new file
753 qDebug( "Cannot open file" ); 753 qDebug( "Cannot open file" );
754 } 754 }
755// fileNew(); 755// fileNew();
756 if ( doc ) 756 if ( doc )
757 delete doc; 757 delete doc;
758 doc = new DocLnk(f); 758 doc = new DocLnk(f);
759 editor->setText(txt); 759 editor->setText(txt);
760 editor->setEdited( false); 760 editor->setEdited( false);
761 edited1=false; 761 edited1=false;
762 edited=false; 762 edited=false;
763 763
764 doc->setName(currentFileName); 764 doc->setName(currentFileName);
765 updateCaption(); 765 updateCaption();
766 setTimer(); 766 setTimer();
767} 767}
768 768
769void TextEdit::showEditTools() { 769void TextEdit::showEditTools() {
770 menu->show(); 770 menu->show();
771 editBar->show(); 771 editBar->show();
772 if(!useSearchBar) 772 if(!useSearchBar)
773 searchBar->hide(); 773 searchBar->hide();
774 else 774 else
775 searchBar->show(); 775 searchBar->show();
776 setWState (WState_Reserved1 ); 776 setWState (WState_Reserved1 );
777} 777}
778 778
779/*! 779/*!
780 unprompted save */ 780 unprompted save */
781bool TextEdit::save() { 781bool TextEdit::save() {
782 qDebug("saveAsFile " + currentFileName); 782 qDebug("saveAsFile " + currentFileName);
783 if(currentFileName.isEmpty()) { 783 if(currentFileName.isEmpty()) {
784 saveAs(); 784 saveAs();
785 return false; 785 return false;
786 } 786 }
787 787
788 QString file = doc->file(); 788 QString file = doc->file();
789 qDebug("saver file "+file); 789 qDebug("saver file "+file);
790 QString name= doc->name(); 790 QString name= doc->name();
791 qDebug("File named "+name); 791 qDebug("File named "+name);
792 QString rt = editor->text(); 792 QString rt = editor->text();
793 if( !rt.isEmpty() ) { 793 if( !rt.isEmpty() ) {
794 if(name.isEmpty()) { 794 if(name.isEmpty()) {
795 saveAs(); 795 saveAs();
796 } else { 796 } else {
797 currentFileName= name ; 797 currentFileName= name ;
798 qDebug("saveFile "+currentFileName); 798 qDebug("saveFile "+currentFileName);
799 799
800 struct stat buf; 800 struct stat buf;
801 mode_t mode; 801 mode_t mode;
802 stat(file.latin1(), &buf); 802 stat(file.latin1(), &buf);
803 mode = buf.st_mode; 803 mode = buf.st_mode;
804 804
805 if(!fileIs) { 805 if(!fileIs) {
806 doc->setName( name); 806 doc->setName( name);
807 FileManager fm; 807 FileManager fm;
808 if ( !fm.saveFile( *doc, rt ) ) { 808 if ( !fm.saveFile( *doc, rt ) ) {
809 return false; 809 return false;
810 } 810 }
811 } else { 811 } else {
812 qDebug("regular save file"); 812 qDebug("regular save file");
813 QFile f(file); 813 QFile f(file);
814 if( f.open(IO_WriteOnly)) { 814 if( f.open(IO_WriteOnly)) {
815 QCString crt = rt.utf8(); 815 QCString crt = rt.utf8();
816 f.writeBlock(crt,crt.length()); 816 f.writeBlock(crt,crt.length());
817 } else { 817 } else {
818 QMessageBox::message(tr("Text Edit"),tr("Write Failed")); 818 QMessageBox::message(tr("Text Edit"),tr("Write Failed"));
819 return false; 819 return false;
820 } 820 }
821 821
822 } 822 }
823 editor->setEdited( false); 823 editor->setEdited( false);
824 edited1=false; 824 edited1=false;
825 edited=false; 825 edited=false;
826 if(caption().left(1)=="*") 826 if(caption().left(1)=="*")
827 setCaption(caption().right(caption().length()-1)); 827 setCaption(caption().right(caption().length()-1));
828 828
829 829
830 chmod( file.latin1(), mode); 830 chmod( file.latin1(), mode);
831 } 831 }
832 return true; 832 return true;
833 } 833 }
834 return false; 834 return false;
835} 835}
836 836
837/*! 837/*!
838 prompted save */ 838 prompted save */
839bool TextEdit::saveAs() { 839bool TextEdit::saveAs() {
840 840
841 if(caption() == tr("Text Editor")) 841 if(caption() == tr("Text Editor"))
842 return false; 842 return false;
843 qDebug("saveAsFile " + currentFileName); 843 qDebug("saveAsFile " + currentFileName);
844 // case of nothing to save... 844 // case of nothing to save...
845// if ( !doc && !currentFileName.isEmpty()) { 845// if ( !doc && !currentFileName.isEmpty()) {
846// //|| !bFromDocView) 846// //|| !bFromDocView)
847// qDebug("no doc"); 847// qDebug("no doc");
848// return true; 848// return true;
849// } 849// }
850// if ( !editor->edited() ) { 850// if ( !editor->edited() ) {
851// delete doc; 851// delete doc;
852// doc = 0; 852// doc = 0;
853// return true; 853// return true;
854// } 854// }
855 855
856 QString rt = editor->text(); 856 QString rt = editor->text();
857 qDebug(currentFileName); 857 qDebug(currentFileName);
858 858
859 if( currentFileName.isEmpty() 859 if( currentFileName.isEmpty()
860 || currentFileName == tr("Unnamed") 860 || currentFileName == tr("Unnamed")
861 || currentFileName == tr("Text Editor")) { 861 || currentFileName == tr("Text Editor")) {
862 qDebug("do silly TT filename thing"); 862 qDebug("do silly TT filename thing");
863// if ( doc && doc->name().isEmpty() ) { 863// if ( doc && doc->name().isEmpty() ) {
864 QString pt = rt.simplifyWhiteSpace(); 864 QString pt = rt.simplifyWhiteSpace();
865 int i = pt.find( ' ' ); 865 int i = pt.find( ' ' );
866 QString docname = pt; 866 QString docname = pt;
867 if ( i > 0 ) 867 if ( i > 0 )
868 docname = pt.left( i ); 868 docname = pt.left( i );
869 // remove "." at the beginning 869 // remove "." at the beginning
870 while( docname.startsWith( "." ) ) 870 while( docname.startsWith( "." ) )
871 docname = docname.mid( 1 ); 871 docname = docname.mid( 1 );
872 docname.replace( QRegExp("/"), "_" ); 872 docname.replace( QRegExp("/"), "_" );
873 // cut the length. filenames longer than that 873 // cut the length. filenames longer than that
874 //don't make sense and something goes wrong when they get too long. 874 //don't make sense and something goes wrong when they get too long.
875 if ( docname.length() > 40 ) 875 if ( docname.length() > 40 )
876 docname = docname.left(40); 876 docname = docname.left(40);
877 if ( docname.isEmpty() ) 877 if ( docname.isEmpty() )
878 docname = tr("Unnamed"); 878 docname = tr("Unnamed");
879 if(doc) doc->setName(docname); 879 if(doc) doc->setName(docname);
880 currentFileName=docname; 880 currentFileName=docname;
881// } 881// }
882// else 882// else
883// qDebug("hmmmmmm"); 883// qDebug("hmmmmmm");
884 } 884 }
885 885
886 886
887 QMap<QString, QStringList> map; 887 QMap<QString, QStringList> map;
888 map.insert(tr("All"), QStringList() ); 888 map.insert(tr("All"), QStringList() );
889 QStringList text; 889 QStringList text;
890 text << "text/*"; 890 text << "text/*";
891 map.insert(tr("Text"), text ); 891 map.insert(tr("Text"), text );
892 text << "*"; 892 text << "*";
893 map.insert(tr("All"), text ); 893 map.insert(tr("All"), text );
894 894
895 QFileInfo cuFi( currentFileName); 895 QFileInfo cuFi( currentFileName);
896 QString filee = cuFi.fileName(); 896 QString filee = cuFi.fileName();
897 QString dire = cuFi.dirPath(); 897 QString dire = cuFi.dirPath();
898 if(dire==".") 898 if(dire==".")
899 dire = QPEApplication::documentDir(); 899 dire = QPEApplication::documentDir();
900 QString str; 900 QString str;
901 if( !featureAutoSave) 901 if( !featureAutoSave)
902 { 902 {
903 str = OFileDialog::getSaveFileName( 2, 903 str = OFileDialog::getSaveFileName( 2,
904 dire, 904 dire,
905 filee, map); 905 filee, map);
906 } 906 }
907 else 907 else
908 str=currentFileName; 908 str=currentFileName;
909 if(!str.isEmpty()) { 909 if(!str.isEmpty()) {
910 QString fileNm=str; 910 QString fileNm=str;
911 911
912 qDebug("saving filename "+fileNm); 912 qDebug("saving filename "+fileNm);
913 QFileInfo fi(fileNm); 913 QFileInfo fi(fileNm);
914 currentFileName=fi.fileName(); 914 currentFileName=fi.fileName();
915 if(doc) 915 if(doc)
916// QString file = doc->file(); 916// QString file = doc->file();
917// doc->removeFiles(); 917// doc->removeFiles();
918 delete doc; 918 delete doc;
919 DocLnk nf; 919 DocLnk nf;
920 nf.setType("text/plain"); 920 nf.setType("text/plain");
921 nf.setFile( fileNm); 921 nf.setFile( fileNm);
922 doc = new DocLnk(nf); 922 doc = new DocLnk(nf);
923// editor->setText(rt); 923// editor->setText(rt);
924 qDebug("Saving file as "+currentFileName); 924 qDebug("Saving file as "+currentFileName);
925 doc->setName( currentFileName); 925 doc->setName( currentFileName);
926 updateCaption( currentFileName); 926 updateCaption( currentFileName);
927 927
928 FileManager fm; 928 FileManager fm;
929 if ( !fm.saveFile( *doc, rt ) ) { 929 if ( !fm.saveFile( *doc, rt ) ) {
930 return false; 930 return false;
931 } 931 }
932 932
933 if( filePerms ) { 933 if( filePerms ) {
934 filePermissions *filePerm; 934 filePermissions *filePerm;
935 filePerm = new filePermissions(this, 935 filePerm = new filePermissions(this,
936 tr("Permissions"),true, 936 tr("Permissions"),true,
937 0,(const QString &)fileNm); 937 0,(const QString &)fileNm);
938 filePerm->showMaximized(); 938 filePerm->showMaximized();
939 filePerm->exec(); 939 filePerm->exec();
940 940
941 if( filePerm) 941 if( filePerm)
942 delete filePerm; 942 delete filePerm;
943 } 943 }
944// } 944// }
945 editor->setEdited( false); 945 editor->setEdited( false);
946 edited1 = false; 946 edited1 = false;
947 edited = false; 947 edited = false;
948 if(caption().left(1)=="*") 948 if(caption().left(1)=="*")
949 setCaption(caption().right(caption().length()-1)); 949 setCaption(caption().right(caption().length()-1));
950 950
951 return true; 951 return true;
952 } 952 }
953 qDebug("returning false"); 953 qDebug("returning false");
954 return false; 954 return false;
955} //end saveAs 955} //end saveAs
956 956
957void TextEdit::clear() { 957void TextEdit::clear() {
958 delete doc; 958 delete doc;
959 doc = 0; 959 doc = 0;
960 editor->clear(); 960 editor->clear();
961} 961}
962 962
963void TextEdit::updateCaption( const QString &name ) { 963void TextEdit::updateCaption( const QString &name ) {
964 964
965 if ( name.isEmpty() ) 965 if ( name.isEmpty() )
966 setCaption( tr("Text Editor") ); 966 setCaption( tr("Text Editor") );
967 else { 967 else {
968 QString s = name; 968 QString s = name;
969 if ( s.isNull() ) 969 if ( s.isNull() )
970 s = doc->name(); 970 s = doc->name();
971 if ( s.isEmpty() ) { 971 if ( s.isEmpty() ) {
972 s = tr( "Unnamed" ); 972 s = tr( "Unnamed" );
973 currentFileName=s; 973 currentFileName=s;
974 } 974 }
975// if(s.left(1) == "/") 975// if(s.left(1) == "/")
976// s = s.right(s.length()-1); 976// s = s.right(s.length()-1);
977 setCaption( s + " - " + tr("Text Editor") ); 977 setCaption( s + " - " + tr("Text Editor") );
978 } 978 }
979} 979}
980 980
981void TextEdit::setDocument(const QString& fileref) { 981void TextEdit::setDocument(const QString& fileref) {
982 if(fileref != "Unnamed") { 982 if(fileref != "Unnamed") {
983 currentFileName=fileref; 983 currentFileName=fileref;
984 qDebug("setDocument"); 984 qDebug("setDocument");
985 QFileInfo fi(currentFileName); 985 QFileInfo fi(currentFileName);
986 qDebug("basename:"+fi.baseName()+": current filenmame "+currentFileName); 986 qDebug("basename:"+fi.baseName()+": current filenmame "+currentFileName);
987 if( (fi.baseName().left(1)).isEmpty() ) { 987 if( (fi.baseName().left(1)).isEmpty() ) {
988 openDotFile(currentFileName); 988 openDotFile(currentFileName);
989 989
990 } else { 990 } else {
991 qDebug("setDoc open"); 991 qDebug("setDoc open");
992 bFromDocView = true; 992 bFromDocView = true;
993 openFile(fileref); 993 openFile(fileref);
994 editor->setEdited(true); 994 editor->setEdited(true);
995 edited1=false; 995 edited1=false;
996 edited=true; 996 edited=true;
997 // fromSetDocument=false; 997 // fromSetDocument=false;
998 // doSearchBar(); 998 // doSearchBar();
999 } 999 }
1000 } 1000 }
1001 updateCaption( currentFileName); 1001 updateCaption( currentFileName);
1002} 1002}
1003 1003
1004void TextEdit::changeFont() { 1004void TextEdit::changeFont() {
1005 QDialog *d = new QDialog ( this, "FontDialog", true ); 1005 QDialog *d = new QDialog ( this, "FontDialog", true );
1006 d-> setCaption ( tr( "Choose font" )); 1006 d-> setCaption ( tr( "Choose font" ));
1007 QBoxLayout *lay = new QVBoxLayout ( d ); 1007 QBoxLayout *lay = new QVBoxLayout ( d );
1008 OFontSelector *ofs = new OFontSelector ( true, d ); 1008 OFontSelector *ofs = new OFontSelector ( true, d );
1009 lay-> addWidget ( ofs ); 1009 lay-> addWidget ( ofs );
1010 ofs-> setSelectedFont ( editor-> font ( )); 1010 ofs-> setSelectedFont ( editor-> font ( ));
1011 1011
1012 d-> showMaximized ( ); 1012 d-> showMaximized ( );
1013 if ( d-> exec ( ) == QDialog::Accepted ) 1013 if ( d-> exec ( ) == QDialog::Accepted )
1014 editor-> setFont ( ofs-> selectedFont ( )); 1014 editor-> setFont ( ofs-> selectedFont ( ));
1015 delete d; 1015 delete d;
1016 1016
1017} 1017}
1018 1018
1019void TextEdit::editDelete() { 1019void TextEdit::editDelete() {
1020 switch ( QMessageBox::warning(this,tr("Text Editor"), 1020 switch ( QMessageBox::warning(this,tr("Text Editor"),
1021 tr("Do you really want<BR>to <B>delete</B> " 1021 tr("Do you really want<BR>to <B>delete</B> "
1022 "the current file\nfrom the disk?<BR>This is " 1022 "the current file\nfrom the disk?<BR>This is "
1023 "<B>irreversable!!</B>"), 1023 "<B>irreversable!!</B>"),
1024 tr("Yes"),tr("No"),0,0,1) ) { 1024 tr("Yes"),tr("No"),0,0,1) ) {
1025 case 0: 1025 case 0:
1026 if(doc) { 1026 if(doc) {
1027 doc->removeFiles(); 1027 doc->removeFiles();
1028 clear(); 1028 clear();
1029 setCaption( tr("Text Editor") ); 1029 setCaption( tr("Text Editor") );
1030 } 1030 }
1031 break; 1031 break;
1032 case 1: 1032 case 1:
1033 // exit 1033 // exit
1034 break; 1034 break;
1035 }; 1035 };
1036} 1036}
1037 1037
1038void TextEdit::changeStartConfig( bool b ) { 1038void TextEdit::changeStartConfig( bool b ) {
1039 startWithNew=b; 1039 startWithNew=b;
1040 Config cfg("TextEdit"); 1040 Config cfg("TextEdit");
1041 cfg.setGroup("View"); 1041 cfg.setGroup("View");
1042 cfg.writeEntry("startNew",b); 1042 cfg.writeEntry("startNew",b);
1043 update(); 1043 update();
1044} 1044}
1045 1045
1046void TextEdit::editorChanged() { 1046void TextEdit::editorChanged() {
1047// qDebug("editor changed"); 1047// qDebug("editor changed");
1048 if( /*editor->edited() &&*/ /*edited && */!edited1) { 1048 if( /*editor->edited() &&*/ /*edited && */!edited1) {
1049 setCaption( "*"+caption()); 1049 setCaption( "*"+caption());
1050 edited1=true; 1050 edited1=true;
1051 } 1051 }
1052 edited=true; 1052 edited=true;
1053} 1053}
1054 1054
1055void TextEdit::receive(const QCString&msg, const QByteArray &) { 1055void TextEdit::receive(const QCString&msg, const QByteArray &) {
1056 qDebug("QCop "+msg); 1056 qDebug("QCop "+msg);
1057 if ( msg == "setDocument(QString)" ) { 1057 if ( msg == "setDocument(QString)" ) {
1058 qDebug("bugger all"); 1058 qDebug("bugger all");
1059 1059
1060 } 1060 }
1061 1061
1062} 1062}
1063 1063
1064void TextEdit::doAbout() { 1064void TextEdit::doAbout() {
1065 QMessageBox::about(0,tr("Text Edit"),tr("Text Edit is copyright<BR>" 1065 QMessageBox::about(0,tr("Text Edit"),tr("Text Edit is copyright<BR>"
1066 "2000 Trolltech AS, and<BR>" 1066 "2000 Trolltech AS, and<BR>"
1067 "2002 by <B>L. J. Potter <BR>llornkcor@handhelds.org</B><BR>" 1067 "2002 by <B>L. J. Potter <BR>llornkcor@handhelds.org</B><BR>"
1068 "and is licensed under the GPL")); 1068 "and is licensed under the GPL"));
1069} 1069}
1070 1070
1071void TextEdit::doPrompt(bool b) { 1071void TextEdit::doPrompt(bool b) {
1072 promptExit=b; 1072 promptExit=b;
1073 Config cfg("TextEdit"); 1073 Config cfg("TextEdit");
1074 cfg.setGroup ( "View" ); 1074 cfg.setGroup ( "View" );
1075 cfg.writeEntry ( "PromptExit", b); 1075 cfg.writeEntry ( "PromptExit", b);
1076} 1076}
1077 1077
1078void TextEdit::doDesktop(bool b) { 1078void TextEdit::doDesktop(bool b) {
1079 openDesktop=b; 1079 openDesktop=b;
1080 Config cfg("TextEdit"); 1080 Config cfg("TextEdit");
1081 cfg.setGroup ( "View" ); 1081 cfg.setGroup ( "View" );
1082 cfg.writeEntry ( "OpenDesktop", b); 1082 cfg.writeEntry ( "OpenDesktop", b);
1083} 1083}
1084 1084
1085void TextEdit::doFilePerms(bool b) { 1085void TextEdit::doFilePerms(bool b) {
1086 filePerms=b; 1086 filePerms=b;
1087 Config cfg("TextEdit"); 1087 Config cfg("TextEdit");
1088 cfg.setGroup ( "View" ); 1088 cfg.setGroup ( "View" );
1089 cfg.writeEntry ( "FilePermissions", b); 1089 cfg.writeEntry ( "FilePermissions", b);
1090} 1090}
1091 1091
1092void TextEdit::editPasteTimeDate() { 1092void TextEdit::editPasteTimeDate() {
1093#ifndef QT_NO_CLIPBOARD 1093#ifndef QT_NO_CLIPBOARD
1094 QClipboard *cb = QApplication::clipboard(); 1094 QClipboard *cb = QApplication::clipboard();
1095 QDateTime dt = QDateTime::currentDateTime(); 1095 QDateTime dt = QDateTime::currentDateTime();
1096 cb->setText( dt.toString()); 1096 cb->setText( dt.toString());
1097 editor->paste(); 1097 editor->paste();
1098#endif 1098#endif
1099} 1099}
1100 1100
1101int TextEdit::savePrompt() 1101int TextEdit::savePrompt()
1102{ 1102{
1103 switch( QMessageBox::information( 0, (tr("Textedit")), 1103 switch( QMessageBox::information( 0, (tr("Textedit")),
1104 (tr("Textedit detected\n" 1104 (tr("Textedit detected\n"
1105 "you have unsaved changes\n" 1105 "you have unsaved changes\n"
1106 "Go ahead and save?\n")), 1106 "Go ahead and save?\n")),
1107 (tr("Save")), (tr("Don't Save")), (tr("&Cancel")), 2, 2 ) ) 1107 (tr("Save")), (tr("Don't Save")), (tr("&Cancel")), 2, 2 ) )
1108 { 1108 {
1109 case 0: 1109 case 0:
1110 { 1110 {
1111 return 1; 1111 return 1;
1112 } 1112 }
1113 break; 1113 break;
1114 1114
1115 case 1: 1115 case 1:
1116 { 1116 {
1117 return 2; 1117 return 2;
1118 } 1118 }
1119 break; 1119 break;
1120 1120
1121 case 2: 1121 case 2:
1122 { 1122 {
1123 return -1; 1123 return -1;
1124 } 1124 }
1125 break; 1125 break;
1126 }; 1126 };
1127 1127
1128 return 0; 1128 return 0;
1129} 1129}
1130 1130
1131void TextEdit::timerCrank() 1131void TextEdit::timerCrank()
1132{ 1132{
1133 if(featureAutoSave && edited1) 1133 if(featureAutoSave && edited1)
1134 { 1134 {
1135 if(currentFileName.isEmpty()) 1135 if(currentFileName.isEmpty())
1136 { 1136 {
1137 currentFileName = QDir::homeDirPath()+"/textedit.tmp"; 1137 currentFileName = QDir::homeDirPath()+"/textedit.tmp";
1138 saveAs(); 1138 saveAs();
1139 } 1139 }
1140 else 1140 else
1141 { 1141 {
1142// qDebug("autosave"); 1142// qDebug("autosave");
1143 save(); 1143 save();
1144 } 1144 }
1145 setTimer(); 1145 setTimer();
1146 } 1146 }
1147} 1147}
1148 1148
1149void TextEdit::doTimer(bool b) 1149void TextEdit::doTimer(bool b)
1150{ 1150{
1151 Config cfg("TextEdit"); 1151 Config cfg("TextEdit");
1152 cfg.setGroup ( "View" ); 1152 cfg.setGroup ( "View" );
1153 cfg.writeEntry ( "autosave", b); 1153 cfg.writeEntry ( "autosave", b);
1154 featureAutoSave = b; 1154 featureAutoSave = b;
1155 nAutoSave->setOn(b); 1155 nAutoSave->setOn(b);
1156 if(b) 1156 if(b)
1157 { 1157 {
1158// qDebug("doTimer true"); 1158// qDebug("doTimer true");
1159 setTimer(); 1159 setTimer();
1160 } 1160 }
1161// else 1161// else
1162// qDebug("doTimer false"); 1162// qDebug("doTimer false");
1163} 1163}
1164 1164
1165void TextEdit::setTimer() 1165void TextEdit::setTimer()
1166{ 1166{
1167if(featureAutoSave) 1167if(featureAutoSave)
1168 { 1168 {
1169// qDebug("setting autosave"); 1169// qDebug("setting autosave");
1170 QTimer *timer = new QTimer(this ); 1170 QTimer *timer = new QTimer(this );
1171 connect( timer, SIGNAL(timeout()), this, SLOT(timerCrank()) ); 1171 connect( timer, SIGNAL(timeout()), this, SLOT(timerCrank()) );
1172 timer->start( 300000, true); //5 minutes 1172 timer->start( 300000, true); //5 minutes
1173 } 1173 }
1174} 1174}
1175 1175
1176void TextEdit::gotoLine() { 1176void TextEdit::gotoLine() {
1177 1177 if( editor->length() < 1)
1178 return;
1178 QWidget *d = QApplication::desktop(); 1179 QWidget *d = QApplication::desktop();
1179 gotoEdit = new QLineEdit( 0, "Goto line"); 1180 gotoEdit = new QLineEdit( 0, "Goto line");
1180 1181
1181 gotoEdit->move( (d->width()/2) - ( gotoEdit->width()/2) , (d->height()/2) - (gotoEdit->height()/2)); 1182 gotoEdit->move( (d->width()/2) - ( gotoEdit->width()/2) , (d->height()/2) - (gotoEdit->height()/2));
1182 gotoEdit->setFrame(true); 1183 gotoEdit->setFrame(true);
1183 gotoEdit->show(); 1184 gotoEdit->show();
1184 connect (gotoEdit,SIGNAL(returnPressed()), this, SLOT(doGoto())); 1185 connect (gotoEdit,SIGNAL(returnPressed()), this, SLOT(doGoto()));
1185} 1186}
1186 1187
1187void TextEdit::doGoto() { 1188void TextEdit::doGoto() {
1188 QString number = gotoEdit->text(); 1189 QString number = gotoEdit->text();
1189 gotoEdit->hide(); 1190 gotoEdit->hide();
1191
1190 if(gotoEdit) { 1192 if(gotoEdit) {
1191 delete gotoEdit; 1193 delete gotoEdit;
1192 gotoEdit = 0; 1194 gotoEdit = 0;
1193 } 1195 }
1194 1196
1195 bool ok; 1197 bool ok;
1196 int lineNumber = number.toInt(&ok, 10); 1198 int lineNumber = number.toInt(&ok, 10);
1197 if(editor->numLines() < lineNumber) 1199 if( editor->numLines() < lineNumber)
1198 QMessageBox::message(tr("Text Edit"),tr("Not enough lines")); 1200 QMessageBox::message(tr("Text Edit"),tr("Not enough lines"));
1199 else 1201 else
1200 { 1202 {
1201 editor->setCursorPosition(lineNumber, 0, false); 1203 editor->setCursorPosition(lineNumber, 0, false);
1202 } 1204 }
1203} 1205}