summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp31
1 files changed, 20 insertions, 11 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index cc3ccbc..834bd8c 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -549,206 +549,220 @@ void TextEdit::doSearchBar()
549 549
550#if 0 550#if 0
551void TextEdit::slotFind() 551void TextEdit::slotFind()
552{ 552{
553 FindDialog frmFind( tr("Text Editor"), this ); 553 FindDialog frmFind( tr("Text Editor"), this );
554 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), 554 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)),
555 editor, SLOT(slotDoFind( const QString&,bool,bool))); 555 editor, SLOT(slotDoFind( const QString&,bool,bool)));
556 556
557 //case sensitive, backwards, [category] 557 //case sensitive, backwards, [category]
558 558
559 connect( editor, SIGNAL(notFound()), 559 connect( editor, SIGNAL(notFound()),
560 &frmFind, SLOT(slotNotFound()) ); 560 &frmFind, SLOT(slotNotFound()) );
561 connect( editor, SIGNAL(searchWrapped()), 561 connect( editor, SIGNAL(searchWrapped()),
562 &frmFind, SLOT(slotWrapAround()) ); 562 &frmFind, SLOT(slotWrapAround()) );
563 563
564 frmFind.exec(); 564 frmFind.exec();
565 565
566 566
567} 567}
568#endif 568#endif
569 569
570void TextEdit::fileRevert() 570void TextEdit::fileRevert()
571{ 571{
572 clear(); 572 clear();
573 fileOpen(); 573 fileOpen();
574} 574}
575 575
576void TextEdit::editCut() 576void TextEdit::editCut()
577{ 577{
578#ifndef QT_NO_CLIPBOARD 578#ifndef QT_NO_CLIPBOARD
579 editor->cut(); 579 editor->cut();
580#endif 580#endif
581} 581}
582 582
583void TextEdit::editCopy() 583void TextEdit::editCopy()
584{ 584{
585#ifndef QT_NO_CLIPBOARD 585#ifndef QT_NO_CLIPBOARD
586 editor->copy(); 586 editor->copy();
587#endif 587#endif
588} 588}
589 589
590void TextEdit::editPaste() 590void TextEdit::editPaste()
591{ 591{
592#ifndef QT_NO_CLIPBOARD 592#ifndef QT_NO_CLIPBOARD
593 editor->paste(); 593 editor->paste();
594#endif 594#endif
595} 595}
596 596
597void TextEdit::editFind() 597void TextEdit::editFind()
598{ 598{
599 searchBar->show(); 599 searchBar->show();
600 searchVisible = TRUE; 600 searchVisible = TRUE;
601 searchEdit->setFocus(); 601 searchEdit->setFocus();
602 Config cfg("TextEdit"); 602 Config cfg("TextEdit");
603 cfg.setGroup("View"); 603 cfg.setGroup("View");
604 cfg.writeEntry("SearchBar","Opened"); 604 cfg.writeEntry("SearchBar","Opened");
605 605
606} 606}
607 607
608void TextEdit::findNext() 608void TextEdit::findNext()
609{ 609{
610 editor->find( searchEdit->text(), FALSE, FALSE ); 610 editor->find( searchEdit->text(), FALSE, FALSE );
611 611
612} 612}
613 613
614void TextEdit::findClose() 614void TextEdit::findClose()
615{ 615{
616 searchVisible = FALSE; 616 searchVisible = FALSE;
617 searchBar->hide(); 617 searchBar->hide();
618 Config cfg("TextEdit"); 618 Config cfg("TextEdit");
619 cfg.setGroup("View"); 619 cfg.setGroup("View");
620 cfg.writeEntry("SearchBar","Closed"); 620 cfg.writeEntry("SearchBar","Closed");
621 cfg.write(); 621 cfg.write();
622} 622}
623 623
624void TextEdit::search() 624void TextEdit::search()
625{ 625{
626 editor->find( searchEdit->text(), FALSE, FALSE ); 626 editor->find( searchEdit->text(), FALSE, FALSE );
627} 627}
628 628
629void TextEdit::newFile( const DocLnk &f ) 629void TextEdit::newFile( const DocLnk &f )
630{ 630{
631 DocLnk nf = f; 631 DocLnk nf = f;
632 nf.setType("text/plain"); 632 nf.setType("text/plain");
633 clear(); 633 clear();
634 setWState (WState_Reserved1 ); 634 setWState (WState_Reserved1 );
635 editor->setFocus(); 635 editor->setFocus();
636 doc = new DocLnk(nf); 636 doc = new DocLnk(nf);
637 currentFileName = "Unnamed"; 637 currentFileName = "Unnamed";
638 qDebug("newFile "+currentFileName); 638 qDebug("newFile "+currentFileName);
639 updateCaption( currentFileName); 639 updateCaption( currentFileName);
640// editor->setEdited( FALSE); 640// editor->setEdited( FALSE);
641} 641}
642 642
643void TextEdit::openFile( const QString &f ) 643void TextEdit::openFile( const QString &f )
644{ 644{
645 645 qDebug("filename is "+ f);
646 QString filer;
646// bFromDocView = TRUE; 647// bFromDocView = TRUE;
648 if(f.find(".desktop",0,TRUE)) {
649 switch ( QMessageBox::warning(this,tr("Text Editor"),
650 tr("Text Editor has detected\n you selected a .desktop file.\nOpen .desktop file or linked file?"),
651 tr(".desktop File"),tr("Link"),0,0,1) ) {
652 case 0:
653 filer = f;
654 break;
655 case 1:
656 DocLnk sf(f);
657 filer = sf.file();
658 break;
659 }
660 }
647 DocLnk nf; 661 DocLnk nf;
648 nf.setType("text/plain"); 662 nf.setType("text/plain");
649 nf.setFile(f); 663 nf.setFile(filer);
650 currentFileName=f; 664 currentFileName=filer;
651 QFileInfo fi( currentFileName); 665 QFileInfo fi( currentFileName);
652 nf.setName(fi.baseName()); 666 nf.setName(fi.baseName());
653 qDebug("openFile string"+currentFileName); 667 qDebug("openFile string "+currentFileName);
654 668
655 openFile(nf); 669 openFile(nf);
656 showEditTools(); 670 showEditTools();
657 // Show filename in caption 671 // Show filename in caption
658 QString name = f; 672 QString name = filer;
659 int sep = name.findRev( '/' ); 673 int sep = name.findRev( '/' );
660 if ( sep > 0 ) 674 if ( sep > 0 )
661 name = name.mid( sep+1 ); 675 name = name.mid( sep+1 );
662 updateCaption( name ); 676 updateCaption( name );
663} 677}
664 678
665void TextEdit::openFile( const DocLnk &f ) 679void TextEdit::openFile( const DocLnk &f )
666{ 680{
667// clear(); 681// clear();
668// bFromDocView = TRUE; 682// bFromDocView = TRUE;
669 FileManager fm; 683 FileManager fm;
670 QString txt; 684 QString txt;
671 currentFileName=f.name(); 685 currentFileName=f.name();
672 qDebug("openFile doclnk " + currentFileName); 686 qDebug("openFile doclnk " + currentFileName);
673 if ( !fm.loadFile( f, txt ) ) { 687 if ( !fm.loadFile( f, txt ) ) {
674 // ####### could be a new file 688 // ####### could be a new file
675 qDebug( "Cannot open file" ); 689 qDebug( "Cannot open file" );
676 } 690 }
677// fileNew(); 691// fileNew();
678 if ( doc ) 692 if ( doc )
679 delete doc; 693 delete doc;
680 doc = new DocLnk(f); 694 doc = new DocLnk(f);
681 editor->setText(txt); 695 editor->setText(txt);
682 editor->setEdited( FALSE); 696 editor->setEdited( FALSE);
683 edited1=FALSE; 697 edited1=FALSE;
684 edited=FALSE; 698 edited=FALSE;
685 699
686 doc->setName(currentFileName); 700 doc->setName(currentFileName);
687 updateCaption(); 701 updateCaption();
688} 702}
689 703
690void TextEdit::showEditTools() 704void TextEdit::showEditTools()
691{ 705{
692// if ( !doc ) 706// if ( !doc )
693// close(); 707// close();
694// clear(); 708// clear();
695 menu->show(); 709 menu->show();
696 editBar->show(); 710 editBar->show();
697 if ( searchVisible ) 711 if ( searchVisible )
698 searchBar->show(); 712 searchBar->show();
699// updateCaption(); 713// updateCaption();
700 setWState (WState_Reserved1 ); 714 setWState (WState_Reserved1 );
701} 715}
702 716
703/*! 717/*!
704 unprompted save */ 718 unprompted save */
705bool TextEdit::save() 719bool TextEdit::save()
706{ 720{
707 QString file = doc->file(); 721 QString file = doc->file();
708 qDebug("saver file "+file); 722 qDebug("saver file "+file);
709 QString name= doc->name(); 723 QString name= doc->name();
710 qDebug("File named "+name); 724 qDebug("File named "+name);
711 QString rt = editor->text(); 725 QString rt = editor->text();
712 if( !rt.isEmpty() ) { 726 if( !rt.isEmpty() ) {
713 if(name.isEmpty()) { 727 if(name.isEmpty()) {
714 saveAs(); 728 saveAs();
715 } else { 729 } else {
716 currentFileName= name ; 730 currentFileName= name ;
717 qDebug("saveFile "+currentFileName); 731 qDebug("saveFile "+currentFileName);
718 732
719 struct stat buf; 733 struct stat buf;
720 mode_t mode; 734 mode_t mode;
721 stat(file.latin1(), &buf); 735 stat(file.latin1(), &buf);
722 mode = buf.st_mode; 736 mode = buf.st_mode;
723 737
724 doc->setName( name); 738 doc->setName( name);
725 FileManager fm; 739 FileManager fm;
726 if ( !fm.saveFile( *doc, rt ) ) { 740 if ( !fm.saveFile( *doc, rt ) ) {
727 return false; 741 return false;
728 } 742 }
729 editor->setEdited( FALSE); 743 editor->setEdited( FALSE);
730 edited1=FALSE; 744 edited1=FALSE;
731 edited=FALSE; 745 edited=FALSE;
732 if(caption().left(1)=="*") 746 if(caption().left(1)=="*")
733 setCaption(caption().right(caption().length()-1)); 747 setCaption(caption().right(caption().length()-1));
734 748
735 749
736 chmod( file.latin1(), mode); 750 chmod( file.latin1(), mode);
737 } 751 }
738 return true; 752 return true;
739 } 753 }
740 return false; 754 return false;
741} 755}
742 756
743/*! 757/*!
744 prompted save */ 758 prompted save */
745bool TextEdit::saveAs() 759bool TextEdit::saveAs()
746{ 760{
747// qDebug("saveAsFile "+currentFileName); 761// qDebug("saveAsFile "+currentFileName);
748 // case of nothing to save... 762 // case of nothing to save...
749 if ( !doc )//|| !bFromDocView) 763 if ( !doc )//|| !bFromDocView)
750 { 764 {
751 qDebug("no doc"); 765 qDebug("no doc");
752 return true; 766 return true;
753 } 767 }
754 if ( !editor->edited() ) { 768 if ( !editor->edited() ) {
@@ -764,191 +778,186 @@ bool TextEdit::saveAs()
764 qDebug("do silly TT filename thing"); 778 qDebug("do silly TT filename thing");
765 if ( doc->name().isEmpty() ) { 779 if ( doc->name().isEmpty() ) {
766 QString pt = rt.simplifyWhiteSpace(); 780 QString pt = rt.simplifyWhiteSpace();
767 int i = pt.find( ' ' ); 781 int i = pt.find( ' ' );
768 QString docname = pt; 782 QString docname = pt;
769 if ( i > 0 ) 783 if ( i > 0 )
770 docname = pt.left( i ); 784 docname = pt.left( i );
771 // remove "." at the beginning 785 // remove "." at the beginning
772 while( docname.startsWith( "." ) ) 786 while( docname.startsWith( "." ) )
773 docname = docname.mid( 1 ); 787 docname = docname.mid( 1 );
774 docname.replace( QRegExp("/"), "_" ); 788 docname.replace( QRegExp("/"), "_" );
775 // cut the length. filenames longer than that don't make sense and something goes wrong when they get too long. 789 // cut the length. filenames longer than that don't make sense and something goes wrong when they get too long.
776 if ( docname.length() > 40 ) 790 if ( docname.length() > 40 )
777 docname = docname.left(40); 791 docname = docname.left(40);
778 if ( docname.isEmpty() ) 792 if ( docname.isEmpty() )
779 docname = tr("Unnamed"); 793 docname = tr("Unnamed");
780 doc->setName(docname); 794 doc->setName(docname);
781 currentFileName=docname; 795 currentFileName=docname;
782 } 796 }
783 } 797 }
784 798
785 799
786 fileSaveDlg=new fileSaver(this,tr("Save File As?"),TRUE, 0, currentFileName); 800 fileSaveDlg=new fileSaver(this,tr("Save File As?"),TRUE, 0, currentFileName);
787 qDebug("wanna save filename "+currentFileName); 801 qDebug("wanna save filename "+currentFileName);
788 fileSaveDlg->exec(); 802 fileSaveDlg->exec();
789 if( fileSaveDlg->result() == 1 ) { 803 if( fileSaveDlg->result() == 1 ) {
790 QString fileNm=fileSaveDlg->selectedFileName; 804 QString fileNm=fileSaveDlg->selectedFileName;
791 qDebug("saving filename "+fileNm); 805 qDebug("saving filename "+fileNm);
792 QFileInfo fi(fileNm); 806 QFileInfo fi(fileNm);
793 currentFileName=fi.fileName(); 807 currentFileName=fi.fileName();
794 if(doc) { 808 if(doc) {
795// QString file = doc->file(); 809// QString file = doc->file();
796// doc->removeFiles(); 810// doc->removeFiles();
797 delete doc; 811 delete doc;
798 DocLnk nf; 812 DocLnk nf;
799 nf.setType("text/plain"); 813 nf.setType("text/plain");
800 nf.setFile( fileNm); 814 nf.setFile( fileNm);
801 doc = new DocLnk(nf); 815 doc = new DocLnk(nf);
802// editor->setText(rt); 816// editor->setText(rt);
803// qDebug("openFile doclnk "+currentFileName); 817// qDebug("openFile doclnk "+currentFileName);
804 doc->setName( currentFileName); 818 doc->setName( currentFileName);
805 updateCaption( currentFileName); 819 updateCaption( currentFileName);
806 820
807 FileManager fm; 821 FileManager fm;
808 if ( !fm.saveFile( *doc, rt ) ) { 822 if ( !fm.saveFile( *doc, rt ) ) {
809 return false; 823 return false;
810 } 824 }
811 if( fileSaveDlg->filePermCheck->isChecked() ) { 825 if( fileSaveDlg->filePermCheck->isChecked() ) {
812 filePermissions *filePerm; 826 filePermissions *filePerm;
813 filePerm = new filePermissions(this, tr("Permissions"),true,0,(const QString &)fileNm); 827 filePerm = new filePermissions(this, tr("Permissions"),true,0,(const QString &)fileNm);
814 filePerm->exec(); 828 filePerm->exec();
815 829
816 if( filePerm) 830 if( filePerm)
817 delete filePerm; 831 delete filePerm;
818 } 832 }
819 } 833 }
820 } 834 }
821 editor->setEdited(TRUE); 835 editor->setEdited(TRUE);
822 edited1=FALSE; 836 edited1=FALSE;
823 edited=TRUE; 837 edited=TRUE;
824 if(caption().left(1)=="*") 838 if(caption().left(1)=="*")
825 setCaption(caption().right(caption().length()-1)); 839 setCaption(caption().right(caption().length()-1));
826 840
827 if(fileSaveDlg) 841 if(fileSaveDlg)
828 delete fileSaveDlg; 842 delete fileSaveDlg;
829 return true; 843 return true;
830} //end saveAs 844} //end saveAs
831 845
832void TextEdit::clear() 846void TextEdit::clear()
833{ 847{
834 delete doc; 848 delete doc;
835 doc = 0; 849 doc = 0;
836 editor->clear(); 850 editor->clear();
837} 851}
838 852
839void TextEdit::updateCaption( const QString &name ) 853void TextEdit::updateCaption( const QString &name )
840{ 854{
841 if ( !doc ) 855 if ( !doc )
842 setCaption( tr("Text Editor") ); 856 setCaption( tr("Text Editor") );
843 else { 857 else {
844 QString s = name; 858 QString s = name;
845 if ( s.isNull() ) 859 if ( s.isNull() )
846 s = doc->name(); 860 s = doc->name();
847 if ( s.isEmpty() ) { 861 if ( s.isEmpty() ) {
848 s = tr( "Unnamed" ); 862 s = tr( "Unnamed" );
849 currentFileName=s; 863 currentFileName=s;
850 } 864 }
851 if(s.left(1) == "/") 865 if(s.left(1) == "/")
852 s = s.right(s.length()-1); 866 s = s.right(s.length()-1);
853 setCaption( s + " - " + tr("Text Editor") ); 867 setCaption( s + " - " + tr("Text Editor") );
854 } 868 }
855} 869}
856 870
857void TextEdit::setDocument(const QString& fileref) 871void TextEdit::setDocument(const QString& fileref)
858{ 872{
859 bFromDocView = TRUE; 873 bFromDocView = TRUE;
860 if(fileref.find(".desktop",0,TRUE) == -1) { 874 openFile(fileref);
861 openFile(fileref);
862 } else {
863 qDebug("is desktop file");
864 openFile(DocLnk(fileref));
865 }
866 editor->setEdited(TRUE); 875 editor->setEdited(TRUE);
867 edited1=FALSE; 876 edited1=FALSE;
868 edited=TRUE; 877 edited=TRUE;
869 doSearchBar(); 878 doSearchBar();
870} 879}
871 880
872void TextEdit::closeEvent( QCloseEvent *e ) 881void TextEdit::closeEvent( QCloseEvent *e )
873{ 882{
874 bFromDocView = FALSE; 883 bFromDocView = FALSE;
875 e->accept(); 884 e->accept();
876} 885}
877 886
878void TextEdit::accept() 887void TextEdit::accept()
879 { 888 {
880 //if(caption() !="Unnamed") 889 //if(caption() !="Unnamed")
881 if(edited1) 890 if(edited1)
882 saveAs(); 891 saveAs();
883 exit(0); 892 exit(0);
884 893
885} 894}
886 895
887void TextEdit::changeFont() { 896void TextEdit::changeFont() {
888 FontDatabase fdb; 897 FontDatabase fdb;
889 QFont defaultFont=editor->font(); 898 QFont defaultFont=editor->font();
890 QFontInfo fontInfo(defaultFont); 899 QFontInfo fontInfo(defaultFont);
891 Config cfg("TextEdit"); 900 Config cfg("TextEdit");
892 cfg.setGroup("Font"); 901 cfg.setGroup("Font");
893 QString family = cfg.readEntry("Family", fontInfo.family()); 902 QString family = cfg.readEntry("Family", fontInfo.family());
894 QString style = cfg.readEntry("Style", fdb.styleString(defaultFont)); 903 QString style = cfg.readEntry("Style", fdb.styleString(defaultFont));
895 int i_size = cfg.readNumEntry("Size", fontInfo.pointSize()/10); 904 int i_size = cfg.readNumEntry("Size", fontInfo.pointSize()/10);
896 QString charSet = cfg.readEntry("CharSet", QFont::encodingName( fontInfo.charSet()) ); 905 QString charSet = cfg.readEntry("CharSet", QFont::encodingName( fontInfo.charSet()) );
897 906
898 defaultFont = fdb.font(family,style,i_size,charSet); 907 defaultFont = fdb.font(family,style,i_size,charSet);
899 908
900 FontDialog *fontDlg; 909 FontDialog *fontDlg;
901 fontDlg=new FontDialog(this,tr("FontDialog"),TRUE); 910 fontDlg=new FontDialog(this,tr("FontDialog"),TRUE);
902 911
903 fontDlg->exec(); 912 fontDlg->exec();
904 913
905 QFont myFont=fontDlg->selectedFont; 914 QFont myFont=fontDlg->selectedFont;
906 editor->setFont( myFont); 915 editor->setFont( myFont);
907 delete fontDlg; 916 delete fontDlg;
908 917
909} 918}
910 919
911void TextEdit::editDelete() 920void TextEdit::editDelete()
912{ 921{
913 switch ( QMessageBox::warning(this,tr("Text Editor"),tr("Do you really want\nto delete the current file\nfrom the disk?\nThis is irreversable!!"),tr("Yes"),tr("No"),0,0,1) ) { 922 switch ( QMessageBox::warning(this,tr("Text Editor"),tr("Do you really want\nto delete the current file\nfrom the disk?\nThis is irreversable!!"),tr("Yes"),tr("No"),0,0,1) ) {
914 case 0: 923 case 0:
915 if(doc) { 924 if(doc) {
916 doc->removeFiles(); 925 doc->removeFiles();
917 clear(); 926 clear();
918 setCaption( tr("Text Editor") ); 927 setCaption( tr("Text Editor") );
919 } 928 }
920 break; 929 break;
921 case 1: 930 case 1:
922 // exit 931 // exit
923 break; 932 break;
924 }; 933 };
925} 934}
926 935
927void TextEdit::changeStartConfig( bool b ) { 936void TextEdit::changeStartConfig( bool b ) {
928 937
929 Config cfg("TextEdit"); 938 Config cfg("TextEdit");
930 cfg.setGroup("View"); 939 cfg.setGroup("View");
931 if(b) { 940 if(b) {
932 qDebug("bool"); 941 qDebug("bool");
933 cfg.writeEntry("startNew","TRUE"); 942 cfg.writeEntry("startNew","TRUE");
934 } else { 943 } else {
935 cfg.writeEntry("startNew","FALSE"); 944 cfg.writeEntry("startNew","FALSE");
936 } 945 }
937 update(); 946 update();
938} 947}
939 948
940void TextEdit::editorChanged() { 949void TextEdit::editorChanged() {
941 if(editor->edited() && edited && !edited1) { 950 if(editor->edited() && edited && !edited1) {
942 setCaption( "*"+caption()); 951 setCaption( "*"+caption());
943 edited1=TRUE; 952 edited1=TRUE;
944 } 953 }
945 edited=TRUE; 954 edited=TRUE;
946} 955}
947 956
948void TextEdit::receive(const QCString&msg, const QByteArray&) { 957void TextEdit::receive(const QCString&msg, const QByteArray&) {
949 qDebug("QCop "+msg); 958 qDebug("QCop "+msg);
950 if ( msg == "setDocument(QString)" ) { 959 if ( msg == "setDocument(QString)" ) {
951 qDebug("bugger all"); 960 qDebug("bugger all");
952 } 961 }
953 962
954} 963}