summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 2a4d391..8e106bf 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -724,313 +724,314 @@ void TextEdit::openFile( const QString &f ) {
724 */ 724 */
725 else if (f.find(".desktop",0,true) != -1 ) 725 else if (f.find(".desktop",0,true) != -1 )
726 { 726 {
727 DocLnk sf(f); 727 DocLnk sf(f);
728 filer = sf.file(); 728 filer = sf.file();
729 if(filer.right(1) == "/") 729 if(filer.right(1) == "/")
730 filer = f; 730 filer = f;
731 731
732 } 732 }
733 else 733 else
734 filer = f; 734 filer = f;
735 735
736 DocLnk nf; 736 DocLnk nf;
737 nf.setType("text/plain"); 737 nf.setType("text/plain");
738 nf.setFile(filer); 738 nf.setFile(filer);
739 currentFileName=filer; 739 currentFileName=filer;
740 740
741 nf.setName(fi.baseName()); 741 nf.setName(fi.baseName());
742 openFile(nf); 742 openFile(nf);
743 743
744 qDebug("openFile string "+currentFileName); 744 qDebug("openFile string "+currentFileName);
745 745
746 showEditTools(); 746 showEditTools();
747 // Show filename in caption 747 // Show filename in caption
748 QString name = filer; 748 QString name = filer;
749 int sep = name.findRev( '/' ); 749 int sep = name.findRev( '/' );
750 if ( sep > 0 ) 750 if ( sep > 0 )
751 name = name.mid( sep+1 ); 751 name = name.mid( sep+1 );
752 updateCaption( name ); 752 updateCaption( name );
753} 753}
754 754
755void TextEdit::openFile( const DocLnk &f ) { 755void TextEdit::openFile( const DocLnk &f ) {
756// clear(); 756// clear();
757// bFromDocView = true; 757// bFromDocView = true;
758 FileManager fm; 758 FileManager fm;
759 QString txt; 759 QString txt;
760 currentFileName=f.file(); 760 currentFileName=f.file();
761 qDebug("openFile doclnk " + currentFileName); 761 qDebug("openFile doclnk " + currentFileName);
762 if ( !fm.loadFile( f, txt ) ) { 762 if ( !fm.loadFile( f, txt ) ) {
763 // ####### could be a new file 763 // ####### could be a new file
764 qDebug( "Cannot open file" ); 764 qDebug( "Cannot open file" );
765 } 765 }
766// fileNew(); 766// fileNew();
767 if ( doc ) 767 if ( doc )
768 delete doc; 768 delete doc;
769 doc = new DocLnk(f); 769 doc = new DocLnk(f);
770 editor->setText(txt); 770 editor->setText(txt);
771 editor->setEdited( false); 771 editor->setEdited( false);
772 edited1=false; 772 edited1=false;
773 edited=false; 773 edited=false;
774 774
775 doc->setName(currentFileName); 775 doc->setName(currentFileName);
776 updateCaption(); 776 updateCaption();
777 setTimer(); 777 setTimer();
778} 778}
779 779
780void TextEdit::showEditTools() { 780void TextEdit::showEditTools() {
781 menu->show(); 781 menu->show();
782 editBar->show(); 782 editBar->show();
783 if(!useSearchBar) 783 if(!useSearchBar)
784 searchBar->hide(); 784 searchBar->hide();
785 else 785 else
786 searchBar->show(); 786 searchBar->show();
787 setWState (WState_Reserved1 ); 787 setWState (WState_Reserved1 );
788} 788}
789 789
790/*! 790/*!
791 unprompted save */ 791 unprompted save */
792bool TextEdit::save() { 792bool TextEdit::save() {
793 qDebug("saveAsFile " + currentFileName); 793 qDebug("saveAsFile " + currentFileName);
794 if(currentFileName.isEmpty()) { 794 if(currentFileName.isEmpty()) {
795 saveAs(); 795 saveAs();
796 return false; 796 return false;
797 } 797 }
798 798
799 QString file = doc->file(); 799 QString file = doc->file();
800 qDebug("saver file "+file); 800 qDebug("saver file "+file);
801 QString name= doc->name(); 801 QString name= doc->name();
802 qDebug("File named "+name); 802 qDebug("File named "+name);
803 QString rt = editor->text(); 803 QString rt = editor->text();
804 if( !rt.isEmpty() ) { 804 if( !rt.isEmpty() ) {
805 if(name.isEmpty()) { 805 if(name.isEmpty()) {
806 saveAs(); 806 saveAs();
807 } else { 807 } else {
808 currentFileName= name ; 808 currentFileName= name ;
809 qDebug("saveFile "+currentFileName); 809 qDebug("saveFile "+currentFileName);
810 810
811 struct stat buf; 811 struct stat buf;
812 mode_t mode; 812 mode_t mode;
813 stat(file.latin1(), &buf); 813 stat(file.latin1(), &buf);
814 mode = buf.st_mode; 814 mode = buf.st_mode;
815 815
816 if(!fileIs) { 816 if(!fileIs) {
817 doc->setName( name); 817 doc->setName( name);
818 FileManager fm; 818 FileManager fm;
819 if ( !fm.saveFile( *doc, rt ) ) { 819 if ( !fm.saveFile( *doc, rt ) ) {
820 QMessageBox::message(tr("Text Edit"),tr("Save Failed"));
820 return false; 821 return false;
821 } 822 }
822 } else { 823 } else {
823 qDebug("regular save file"); 824 qDebug("regular save file");
824 QFile f(file); 825 QFile f(file);
825 if( f.open(IO_WriteOnly)) { 826 if( f.open(IO_WriteOnly)) {
826 QCString crt = rt.utf8(); 827 QCString crt = rt.utf8();
827 f.writeBlock(crt,crt.length()); 828 f.writeBlock(crt,crt.length());
828 } else { 829 } else {
829 QMessageBox::message(tr("Text Edit"),tr("Write Failed")); 830 QMessageBox::message(tr("Text Edit"),tr("Write Failed"));
830 return false; 831 return false;
831 } 832 }
832 833
833 } 834 }
834 editor->setEdited( false); 835 editor->setEdited( false);
835 edited1=false; 836 edited1=false;
836 edited=false; 837 edited=false;
837 if(caption().left(1)=="*") 838 if(caption().left(1)=="*")
838 setCaption(caption().right(caption().length()-1)); 839 setCaption(caption().right(caption().length()-1));
839 840
840 841
841 chmod( file.latin1(), mode); 842 chmod( file.latin1(), mode);
842 } 843 }
843 return true; 844 return true;
844 } 845 }
845 return false; 846 return false;
846} 847}
847 848
848/*! 849/*!
849 prompted save */ 850 prompted save */
850bool TextEdit::saveAs() { 851bool TextEdit::saveAs() {
851 852
852 if(caption() == tr("Text Editor")) 853 if(caption() == tr("Text Editor"))
853 return false; 854 return false;
854 qDebug("saveAsFile " + currentFileName); 855 qDebug("saveAsFile " + currentFileName);
855 // case of nothing to save... 856 // case of nothing to save...
856// if ( !doc && !currentFileName.isEmpty()) { 857// if ( !doc && !currentFileName.isEmpty()) {
857// //|| !bFromDocView) 858// //|| !bFromDocView)
858// qDebug("no doc"); 859// qDebug("no doc");
859// return true; 860// return true;
860// } 861// }
861// if ( !editor->edited() ) { 862// if ( !editor->edited() ) {
862// delete doc; 863// delete doc;
863// doc = 0; 864// doc = 0;
864// return true; 865// return true;
865// } 866// }
866 867
867 QString rt = editor->text(); 868 QString rt = editor->text();
868 qDebug(currentFileName); 869 qDebug(currentFileName);
869 870
870 if( currentFileName.isEmpty() 871 if( currentFileName.isEmpty()
871 || currentFileName == tr("Unnamed") 872 || currentFileName == tr("Unnamed")
872 || currentFileName == tr("Text Editor")) { 873 || currentFileName == tr("Text Editor")) {
873 qDebug("do silly TT filename thing"); 874 qDebug("do silly TT filename thing");
874// if ( doc && doc->name().isEmpty() ) { 875// if ( doc && doc->name().isEmpty() ) {
875 QString pt = rt.simplifyWhiteSpace(); 876 QString pt = rt.simplifyWhiteSpace();
876 int i = pt.find( ' ' ); 877 int i = pt.find( ' ' );
877 QString docname = pt; 878 QString docname = pt;
878 if ( i > 0 ) 879 if ( i > 0 )
879 docname = pt.left( i ); 880 docname = pt.left( i );
880 // remove "." at the beginning 881 // remove "." at the beginning
881 while( docname.startsWith( "." ) ) 882 while( docname.startsWith( "." ) )
882 docname = docname.mid( 1 ); 883 docname = docname.mid( 1 );
883 docname.replace( QRegExp("/"), "_" ); 884 docname.replace( QRegExp("/"), "_" );
884 // cut the length. filenames longer than that 885 // cut the length. filenames longer than that
885 //don't make sense and something goes wrong when they get too long. 886 //don't make sense and something goes wrong when they get too long.
886 if ( docname.length() > 40 ) 887 if ( docname.length() > 40 )
887 docname = docname.left(40); 888 docname = docname.left(40);
888 if ( docname.isEmpty() ) 889 if ( docname.isEmpty() )
889 docname = tr("Unnamed"); 890 docname = tr("Unnamed");
890 if(doc) doc->setName(docname); 891 if(doc) doc->setName(docname);
891 currentFileName=docname; 892 currentFileName=docname;
892// } 893// }
893// else 894// else
894// qDebug("hmmmmmm"); 895// qDebug("hmmmmmm");
895 } 896 }
896 897
897 898
898 QMap<QString, QStringList> map; 899 QMap<QString, QStringList> map;
899 map.insert(tr("All"), QStringList() ); 900 map.insert(tr("All"), QStringList() );
900 QStringList text; 901 QStringList text;
901 text << "text/*"; 902 text << "text/*";
902 map.insert(tr("Text"), text ); 903 map.insert(tr("Text"), text );
903 text << "*"; 904 text << "*";
904 map.insert(tr("All"), text ); 905 map.insert(tr("All"), text );
905 906
906 QFileInfo cuFi( currentFileName); 907 QFileInfo cuFi( currentFileName);
907 QString filee = cuFi.fileName(); 908 QString filee = cuFi.fileName();
908 QString dire = cuFi.dirPath(); 909 QString dire = cuFi.dirPath();
909 if(dire==".") 910 if(dire==".")
910 dire = QPEApplication::documentDir(); 911 dire = QPEApplication::documentDir();
911 QString str; 912 QString str;
912 if( !featureAutoSave) 913 if( !featureAutoSave) {
913 {
914 str = OFileDialog::getSaveFileName( 2, 914 str = OFileDialog::getSaveFileName( 2,
915 dire, 915 dire,
916 filee, map); 916 filee, map);
917 } 917 } else
918 else
919 str=currentFileName; 918 str=currentFileName;
919
920 if(!str.isEmpty()) { 920 if(!str.isEmpty()) {
921 QString fileNm=str; 921 QString fileNm=str;
922 922
923 qDebug("saving filename "+fileNm); 923 qDebug("saving filename "+fileNm);
924 QFileInfo fi(fileNm); 924 QFileInfo fi(fileNm);
925 currentFileName=fi.fileName(); 925 currentFileName=fi.fileName();
926 if(doc) 926 if(doc)
927// QString file = doc->file(); 927// QString file = doc->file();
928// doc->removeFiles(); 928// doc->removeFiles();
929 delete doc; 929 delete doc;
930 DocLnk nf; 930 DocLnk nf;
931 nf.setType("text/plain"); 931 nf.setType("text/plain");
932 nf.setFile( fileNm); 932 nf.setFile( fileNm);
933 doc = new DocLnk(nf); 933 doc = new DocLnk(nf);
934// editor->setText(rt); 934// editor->setText(rt);
935 qDebug("Saving file as "+currentFileName); 935 qDebug("Saving file as "+currentFileName);
936 doc->setName( currentFileName); 936 doc->setName( currentFileName);
937 updateCaption( currentFileName); 937 updateCaption( currentFileName);
938 938
939 FileManager fm; 939 FileManager fm;
940 if ( !fm.saveFile( *doc, rt ) ) { 940 if ( !fm.saveFile( *doc, rt ) ) {
941 QMessageBox::message(tr("Text Edit"),tr("Save Failed"));
941 return false; 942 return false;
942 } 943 }
943 944
944 if( filePerms ) { 945 if( filePerms ) {
945 filePermissions *filePerm; 946 filePermissions *filePerm;
946 filePerm = new filePermissions(this, 947 filePerm = new filePermissions(this,
947 tr("Permissions"),true, 948 tr("Permissions"),true,
948 0,(const QString &)fileNm); 949 0,(const QString &)fileNm);
949 QPEApplication::execDialog( filePerm ); 950 QPEApplication::execDialog( filePerm );
950 951
951 if( filePerm) 952 if( filePerm)
952 delete filePerm; 953 delete filePerm;
953 } 954 }
954// } 955// }
955 editor->setEdited( false); 956 editor->setEdited( false);
956 edited1 = false; 957 edited1 = false;
957 edited = false; 958 edited = false;
958 if(caption().left(1)=="*") 959 if(caption().left(1)=="*")
959 setCaption(caption().right(caption().length()-1)); 960 setCaption(caption().right(caption().length()-1));
960 961
961 return true; 962 return true;
962 } 963 }
963 qDebug("returning false"); 964 qDebug("returning false");
964 return false; 965 return false;
965} //end saveAs 966} //end saveAs
966 967
967void TextEdit::clear() { 968void TextEdit::clear() {
968 delete doc; 969 delete doc;
969 doc = 0; 970 doc = 0;
970 editor->clear(); 971 editor->clear();
971} 972}
972 973
973void TextEdit::updateCaption( const QString &name ) { 974void TextEdit::updateCaption( const QString &name ) {
974 975
975 if ( name.isEmpty() ) 976 if ( name.isEmpty() )
976 setCaption( tr("Text Editor") ); 977 setCaption( tr("Text Editor") );
977 else { 978 else {
978 QString s = name; 979 QString s = name;
979 if ( s.isNull() ) 980 if ( s.isNull() )
980 s = doc->name(); 981 s = doc->name();
981 if ( s.isEmpty() ) { 982 if ( s.isEmpty() ) {
982 s = tr( "Unnamed" ); 983 s = tr( "Unnamed" );
983 currentFileName=s; 984 currentFileName=s;
984 } 985 }
985// if(s.left(1) == "/") 986// if(s.left(1) == "/")
986// s = s.right(s.length()-1); 987// s = s.right(s.length()-1);
987 setCaption( tr("%1 - Text Editor").arg( s ) ); 988 setCaption( tr("%1 - Text Editor").arg( s ) );
988 } 989 }
989} 990}
990 991
991void TextEdit::setDocument(const QString& fileref) { 992void TextEdit::setDocument(const QString& fileref) {
992 if(fileref != "Unnamed") { 993 if(fileref != "Unnamed") {
993 currentFileName=fileref; 994 currentFileName=fileref;
994 qDebug("setDocument"); 995 qDebug("setDocument");
995 QFileInfo fi(currentFileName); 996 QFileInfo fi(currentFileName);
996 qDebug("basename:"+fi.baseName()+": current filenmame "+currentFileName); 997 qDebug("basename:"+fi.baseName()+": current filenmame "+currentFileName);
997 if( (fi.baseName().left(1)).isEmpty() ) { 998 if( (fi.baseName().left(1)).isEmpty() ) {
998 openDotFile(currentFileName); 999 openDotFile(currentFileName);
999 1000
1000 } else { 1001 } else {
1001 qDebug("setDoc open"); 1002 qDebug("setDoc open");
1002 bFromDocView = true; 1003 bFromDocView = true;
1003 openFile(fileref); 1004 openFile(fileref);
1004 editor->setEdited(true); 1005 editor->setEdited(true);
1005 edited1=false; 1006 edited1=false;
1006 edited=true; 1007 edited=true;
1007 // fromSetDocument=false; 1008 // fromSetDocument=false;
1008 // doSearchBar(); 1009 // doSearchBar();
1009 } 1010 }
1010 } 1011 }
1011 updateCaption( currentFileName); 1012 updateCaption( currentFileName);
1012} 1013}
1013 1014
1014void TextEdit::changeFont() { 1015void TextEdit::changeFont() {
1015 QDialog *d = new QDialog ( this, "FontDialog", true ); 1016 QDialog *d = new QDialog ( this, "FontDialog", true );
1016 d-> setCaption ( tr( "Choose font" )); 1017 d-> setCaption ( tr( "Choose font" ));
1017 QBoxLayout *lay = new QVBoxLayout ( d ); 1018 QBoxLayout *lay = new QVBoxLayout ( d );
1018 OFontSelector *ofs = new OFontSelector ( true, d ); 1019 OFontSelector *ofs = new OFontSelector ( true, d );
1019 lay-> addWidget ( ofs ); 1020 lay-> addWidget ( ofs );
1020 ofs-> setSelectedFont ( editor-> font ( )); 1021 ofs-> setSelectedFont ( editor-> font ( ));
1021 1022
1022 if ( QPEApplication::execDialog( d ) == QDialog::Accepted ) 1023 if ( QPEApplication::execDialog( d ) == QDialog::Accepted )
1023 editor-> setFont ( ofs-> selectedFont ( )); 1024 editor-> setFont ( ofs-> selectedFont ( ));
1024 delete d; 1025 delete d;
1025 1026
1026} 1027}
1027 1028
1028void TextEdit::editDelete() { 1029void TextEdit::editDelete() {
1029 switch ( QMessageBox::warning(this,tr("Text Editor"), 1030 switch ( QMessageBox::warning(this,tr("Text Editor"),
1030 tr("Do you really want<BR>to <B>delete</B> " 1031 tr("Do you really want<BR>to <B>delete</B> "
1031 "the current file\nfrom the disk?<BR>This is " 1032 "the current file\nfrom the disk?<BR>This is "
1032 "<B>irreversable!</B>"), 1033 "<B>irreversable!</B>"),
1033 tr("Yes"),tr("No"),0,0,1) ) { 1034 tr("Yes"),tr("No"),0,0,1) ) {
1034 case 0: 1035 case 0:
1035 if(doc) { 1036 if(doc) {
1036 doc->removeFiles(); 1037 doc->removeFiles();