author | ar <ar> | 2004-10-16 23:11:36 (UTC) |
---|---|---|
committer | ar <ar> | 2004-10-16 23:11:36 (UTC) |
commit | 1deb4b9d09fcb0eddd8425de7d66e8919e1e0d32 (patch) (unidiff) | |
tree | db323920bf4258d8afc1e0af722b968b2a520b9e | |
parent | 5fb6ed213aa8b4b1101082671f57db45d7b10d01 (diff) | |
download | opie-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
-rw-r--r-- | core/apps/textedit/textedit.cpp | 1 |
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 | ||
959 | void TextEdit::clear() { | 960 | void TextEdit::clear() { |
960 | delete doc; | 961 | delete doc; |
961 | doc = 0; | 962 | doc = 0; |
962 | editor->clear(); | 963 | editor->clear(); |
963 | } | 964 | } |
964 | 965 | ||
965 | void TextEdit::updateCaption( const QString &name ) { | 966 | void 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 | ||
983 | void TextEdit::setDocument(const QString& fileref) { | 984 | void 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 | ||
1006 | void TextEdit::changeFont() { | 1007 | void 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 | ||
1020 | void TextEdit::editDelete() { | 1021 | void 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 | ||
1039 | void TextEdit::changeStartConfig( bool b ) { | 1040 | void 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 | ||
1047 | void TextEdit::editorChanged() { | 1048 | void 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; |