-rw-r--r-- | core/apps/textedit/textedit.cpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index 086fdb6..1d0df6a 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp @@ -770,63 +770,69 @@ void TextEdit::showEditTools() { else searchBar->show(); setWState (WState_Reserved1 ); } /*! unprompted save */ bool TextEdit::save() { + QString name, file; odebug << "saveAsFile " + currentFileName << oendl; if(currentFileName.isEmpty()) { saveAs(); return false; } - - QString file = doc->file(); - odebug << "saver file "+file << oendl; - QString name= doc->name(); - odebug << "File named "+name << oendl; + name = currentFileName; + if(doc) { + file = doc->file(); + odebug << "saver file "+file << oendl; + name = doc->name(); + odebug << "File named "+name << oendl; + } else { + name = file = currentFileName; + } + QString rt = editor->text(); if( !rt.isEmpty() ) { if(name.isEmpty()) { saveAs(); } else { - currentFileName= name ; + currentFileName = name; odebug << "saveFile "+currentFileName << oendl; struct stat buf; mode_t mode; stat(file.latin1(), &buf); mode = buf.st_mode; if(!fileIs) { doc->setName( name); FileManager fm; if ( !fm.saveFile( *doc, rt ) ) { - QMessageBox::message(tr("Text Edit"),tr("Save Failed")); + QMessageBox::message(tr("Text Edit"),tr("Save Failed")); return false; } } else { odebug << "regular save file" << oendl; QFile f(file); - if( f.open(IO_WriteOnly)) { - QCString crt = rt.utf8(); - f.writeBlock(crt,crt.length()); - } else { - QMessageBox::message(tr("Text Edit"),tr("Write Failed")); - return false; - } + if( f.open(IO_WriteOnly)) { + QCString crt = rt.utf8(); + f.writeBlock(crt,crt.length()); + } else { + QMessageBox::message(tr("Text Edit"),tr("Write Failed")); + return false; + } } editor->setEdited( false); edited1=false; edited=false; if(caption().left(1)=="*") - setCaption(caption().right(caption().length()-1)); + setCaption(caption().right(caption().length()-1)); chmod( file.latin1(), mode); } return true; } return false; } |