summaryrefslogtreecommitdiff
authorar <ar>2004-10-16 23:11:36 (UTC)
committer ar <ar>2004-10-16 23:11:36 (UTC)
commit1deb4b9d09fcb0eddd8425de7d66e8919e1e0d32 (patch) (unidiff)
treedb323920bf4258d8afc1e0af722b968b2a520b9e
parent5fb6ed213aa8b4b1101082671f57db45d7b10d01 (diff)
downloadopie-1deb4b9d09fcb0eddd8425de7d66e8919e1e0d32.zip
opie-1deb4b9d09fcb0eddd8425de7d66e8919e1e0d32.tar.gz
opie-1deb4b9d09fcb0eddd8425de7d66e8919e1e0d32.tar.bz2
- BugFix: clear currentFileName in SaveAs when the user abort.
otherwise it crashs when user try to save after aborted saveas action
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 1d0df6a..571df27 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -860,192 +860,193 @@ bool TextEdit::saveAs() {
860 odebug << currentFileName << oendl; 860 odebug << currentFileName << oendl;
861 861
862 if( currentFileName.isEmpty() 862 if( currentFileName.isEmpty()
863 || currentFileName == tr("Unnamed") 863 || currentFileName == tr("Unnamed")
864 || currentFileName == tr("Text Editor")) { 864 || currentFileName == tr("Text Editor")) {
865 odebug << "do silly TT filename thing" << oendl; 865 odebug << "do silly TT filename thing" << oendl;
866// if ( doc && doc->name().isEmpty() ) { 866// if ( doc && doc->name().isEmpty() ) {
867 QString pt = rt.simplifyWhiteSpace(); 867 QString pt = rt.simplifyWhiteSpace();
868 int i = pt.find( ' ' ); 868 int i = pt.find( ' ' );
869 QString docname = pt; 869 QString docname = pt;
870 if ( i > 0 ) 870 if ( i > 0 )
871 docname = pt.left( i ); 871 docname = pt.left( i );
872 // remove "." at the beginning 872 // remove "." at the beginning
873 while( docname.startsWith( "." ) ) 873 while( docname.startsWith( "." ) )
874 docname = docname.mid( 1 ); 874 docname = docname.mid( 1 );
875 docname.replace( QRegExp("/"), "_" ); 875 docname.replace( QRegExp("/"), "_" );
876 // cut the length. filenames longer than that 876 // cut the length. filenames longer than that
877 //don't make sense and something goes wrong when they get too long. 877 //don't make sense and something goes wrong when they get too long.
878 if ( docname.length() > 40 ) 878 if ( docname.length() > 40 )
879 docname = docname.left(40); 879 docname = docname.left(40);
880 if ( docname.isEmpty() ) 880 if ( docname.isEmpty() )
881 docname = tr("Unnamed"); 881 docname = tr("Unnamed");
882 if(doc) doc->setName(docname); 882 if(doc) doc->setName(docname);
883 currentFileName=docname; 883 currentFileName=docname;
884// } 884// }
885// else 885// else
886// odebug << "hmmmmmm" << oendl; 886// odebug << "hmmmmmm" << oendl;
887 } 887 }
888 888
889 889
890 QMap<QString, QStringList> map; 890 QMap<QString, QStringList> map;
891 map.insert(tr("All"), QStringList() ); 891 map.insert(tr("All"), QStringList() );
892 QStringList text; 892 QStringList text;
893 text << "text/*"; 893 text << "text/*";
894 map.insert(tr("Text"), text ); 894 map.insert(tr("Text"), text );
895 text << "*"; 895 text << "*";
896 map.insert(tr("All"), text ); 896 map.insert(tr("All"), text );
897 897
898 QFileInfo cuFi( currentFileName); 898 QFileInfo cuFi( currentFileName);
899 QString filee = cuFi.fileName(); 899 QString filee = cuFi.fileName();
900 QString dire = cuFi.dirPath(); 900 QString dire = cuFi.dirPath();
901 if(dire==".") 901 if(dire==".")
902 dire = QPEApplication::documentDir(); 902 dire = QPEApplication::documentDir();
903 QString str; 903 QString str;
904 if( !featureAutoSave) { 904 if( !featureAutoSave) {
905 str = OFileDialog::getSaveFileName( 2, 905 str = OFileDialog::getSaveFileName( 2,
906 dire, 906 dire,
907 filee, map); 907 filee, map);
908 } else 908 } else
909 str=currentFileName; 909 str=currentFileName;
910 910
911 if(!str.isEmpty()) { 911 if(!str.isEmpty()) {
912 QString fileNm=str; 912 QString fileNm=str;
913 913
914 odebug << "saving filename "+fileNm << oendl; 914 odebug << "saving filename "+fileNm << oendl;
915 QFileInfo fi(fileNm); 915 QFileInfo fi(fileNm);
916 currentFileName=fi.fileName(); 916 currentFileName=fi.fileName();
917 if(doc) 917 if(doc)
918// QString file = doc->file(); 918// QString file = doc->file();
919// doc->removeFiles(); 919// doc->removeFiles();
920 delete doc; 920 delete doc;
921 DocLnk nf; 921 DocLnk nf;
922 nf.setType("text/plain"); 922 nf.setType("text/plain");
923 nf.setFile( fileNm); 923 nf.setFile( fileNm);
924 doc = new DocLnk(nf); 924 doc = new DocLnk(nf);
925// editor->setText(rt); 925// editor->setText(rt);
926 odebug << "Saving file as "+currentFileName << oendl; 926 odebug << "Saving file as "+currentFileName << oendl;
927 doc->setName( currentFileName); 927 doc->setName( currentFileName);
928 updateCaption( currentFileName); 928 updateCaption( currentFileName);
929 929
930 FileManager fm; 930 FileManager fm;
931 if ( !fm.saveFile( *doc, rt ) ) { 931 if ( !fm.saveFile( *doc, rt ) ) {
932 QMessageBox::message(tr("Text Edit"),tr("Save Failed")); 932 QMessageBox::message(tr("Text Edit"),tr("Save Failed"));
933 return false; 933 return false;
934 } 934 }
935 935
936 if( filePerms ) { 936 if( filePerms ) {
937 filePermissions *filePerm; 937 filePermissions *filePerm;
938 filePerm = new filePermissions(this, 938 filePerm = new filePermissions(this,
939 tr("Permissions"),true, 939 tr("Permissions"),true,
940 0,(const QString &)fileNm); 940 0,(const QString &)fileNm);
941 QPEApplication::execDialog( filePerm ); 941 QPEApplication::execDialog( filePerm );
942 942
943 if( filePerm) 943 if( filePerm)
944 delete filePerm; 944 delete filePerm;
945 } 945 }
946// } 946// }
947 editor->setEdited( false); 947 editor->setEdited( false);
948 edited1 = false; 948 edited1 = false;
949 edited = false; 949 edited = false;
950 if(caption().left(1)=="*") 950 if(caption().left(1)=="*")
951 setCaption(caption().right(caption().length()-1)); 951 setCaption(caption().right(caption().length()-1));
952 952
953 return true; 953 return true;
954 } 954 }
955 odebug << "returning false" << oendl; 955 odebug << "returning false" << oendl;
956 currentFileName = "";
956 return false; 957 return false;
957} //end saveAs 958} //end saveAs
958 959
959void TextEdit::clear() { 960void TextEdit::clear() {
960 delete doc; 961 delete doc;
961 doc = 0; 962 doc = 0;
962 editor->clear(); 963 editor->clear();
963} 964}
964 965
965void TextEdit::updateCaption( const QString &name ) { 966void TextEdit::updateCaption( const QString &name ) {
966 967
967 if ( name.isEmpty() ) 968 if ( name.isEmpty() )
968 setCaption( tr("Text Editor") ); 969 setCaption( tr("Text Editor") );
969 else { 970 else {
970 QString s = name; 971 QString s = name;
971 if ( s.isNull() ) 972 if ( s.isNull() )
972 s = doc->name(); 973 s = doc->name();
973 if ( s.isEmpty() ) { 974 if ( s.isEmpty() ) {
974 s = tr( "Unnamed" ); 975 s = tr( "Unnamed" );
975 currentFileName=s; 976 currentFileName=s;
976 } 977 }
977// if(s.left(1) == "/") 978// if(s.left(1) == "/")
978// s = s.right(s.length()-1); 979// s = s.right(s.length()-1);
979 setCaption( tr("%1 - Text Editor").arg( s ) ); 980 setCaption( tr("%1 - Text Editor").arg( s ) );
980 } 981 }
981} 982}
982 983
983void TextEdit::setDocument(const QString& fileref) { 984void TextEdit::setDocument(const QString& fileref) {
984 if(fileref != "Unnamed") { 985 if(fileref != "Unnamed") {
985 currentFileName=fileref; 986 currentFileName=fileref;
986 odebug << "setDocument" << oendl; 987 odebug << "setDocument" << oendl;
987 QFileInfo fi(currentFileName); 988 QFileInfo fi(currentFileName);
988 odebug << "basename:"+fi.baseName()+": current filenmame "+currentFileName << oendl; 989 odebug << "basename:"+fi.baseName()+": current filenmame "+currentFileName << oendl;
989 if( (fi.baseName().left(1)).isEmpty() ) { 990 if( (fi.baseName().left(1)).isEmpty() ) {
990 openDotFile(currentFileName); 991 openDotFile(currentFileName);
991 992
992 } else { 993 } else {
993 odebug << "setDoc open" << oendl; 994 odebug << "setDoc open" << oendl;
994 bFromDocView = true; 995 bFromDocView = true;
995 openFile(fileref); 996 openFile(fileref);
996 editor->setEdited(true); 997 editor->setEdited(true);
997 edited1=false; 998 edited1=false;
998 edited=true; 999 edited=true;
999 // fromSetDocument=false; 1000 // fromSetDocument=false;
1000 // doSearchBar(); 1001 // doSearchBar();
1001 } 1002 }
1002 } 1003 }
1003 updateCaption( currentFileName); 1004 updateCaption( currentFileName);
1004} 1005}
1005 1006
1006void TextEdit::changeFont() { 1007void TextEdit::changeFont() {
1007 QDialog *d = new QDialog ( this, "FontDialog", true ); 1008 QDialog *d = new QDialog ( this, "FontDialog", true );
1008 d-> setCaption ( tr( "Choose font" )); 1009 d-> setCaption ( tr( "Choose font" ));
1009 QBoxLayout *lay = new QVBoxLayout ( d ); 1010 QBoxLayout *lay = new QVBoxLayout ( d );
1010 OFontSelector *ofs = new OFontSelector ( true, d ); 1011 OFontSelector *ofs = new OFontSelector ( true, d );
1011 lay-> addWidget ( ofs ); 1012 lay-> addWidget ( ofs );
1012 ofs-> setSelectedFont ( editor-> font ( )); 1013 ofs-> setSelectedFont ( editor-> font ( ));
1013 1014
1014 if ( QPEApplication::execDialog( d ) == QDialog::Accepted ) 1015 if ( QPEApplication::execDialog( d ) == QDialog::Accepted )
1015 editor-> setFont ( ofs-> selectedFont ( )); 1016 editor-> setFont ( ofs-> selectedFont ( ));
1016 delete d; 1017 delete d;
1017 1018
1018} 1019}
1019 1020
1020void TextEdit::editDelete() { 1021void TextEdit::editDelete() {
1021 switch ( QMessageBox::warning(this,tr("Text Editor"), 1022 switch ( QMessageBox::warning(this,tr("Text Editor"),
1022 tr("Do you really want<BR>to <B>delete</B> " 1023 tr("Do you really want<BR>to <B>delete</B> "
1023 "the current file\nfrom the disk?<BR>This is " 1024 "the current file\nfrom the disk?<BR>This is "
1024 "<B>irreversable!</B>"), 1025 "<B>irreversable!</B>"),
1025 tr("Yes"),tr("No"),0,0,1) ) { 1026 tr("Yes"),tr("No"),0,0,1) ) {
1026 case 0: 1027 case 0:
1027 if(doc) { 1028 if(doc) {
1028 doc->removeFiles(); 1029 doc->removeFiles();
1029 clear(); 1030 clear();
1030 setCaption( tr("Text Editor") ); 1031 setCaption( tr("Text Editor") );
1031 } 1032 }
1032 break; 1033 break;
1033 case 1: 1034 case 1:
1034 // exit 1035 // exit
1035 break; 1036 break;
1036 }; 1037 };
1037} 1038}
1038 1039
1039void TextEdit::changeStartConfig( bool b ) { 1040void TextEdit::changeStartConfig( bool b ) {
1040 startWithNew=b; 1041 startWithNew=b;
1041 Config cfg("TextEdit"); 1042 Config cfg("TextEdit");
1042 cfg.setGroup("View"); 1043 cfg.setGroup("View");
1043 cfg.writeEntry("startNew",b); 1044 cfg.writeEntry("startNew",b);
1044 update(); 1045 update();
1045} 1046}
1046 1047
1047void TextEdit::editorChanged() { 1048void TextEdit::editorChanged() {
1048// odebug << "editor changed" << oendl; 1049// odebug << "editor changed" << oendl;
1049 if( /*editor->edited() &&*/ /*edited && */!edited1) { 1050 if( /*editor->edited() &&*/ /*edited && */!edited1) {
1050 setCaption( "*"+caption()); 1051 setCaption( "*"+caption());
1051 edited1=true; 1052 edited1=true;