summaryrefslogtreecommitdiff
path: root/core/apps/textedit/textedit.cpp
authorllornkcor <llornkcor>2002-02-18 14:52:54 (UTC)
committer llornkcor <llornkcor>2002-02-18 14:52:54 (UTC)
commit00f89d28e669140eb50f1f220c389f88fba1105c (patch) (unidiff)
treedeb87bb87d855bbacddc79d8a0a79edfb1cf1cd8 /core/apps/textedit/textedit.cpp
parent9741205aa0b0892b870d2b7df7c5dd7e25b0bb18 (diff)
downloadopie-00f89d28e669140eb50f1f220c389f88fba1105c.zip
opie-00f89d28e669140eb50f1f220c389f88fba1105c.tar.gz
opie-00f89d28e669140eb50f1f220c389f88fba1105c.tar.bz2
fixed filesave and fileopen cancel
Diffstat (limited to 'core/apps/textedit/textedit.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp52
1 files changed, 29 insertions, 23 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 14bc496..429c195 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -476,25 +476,27 @@ void TextEdit::setItalic(bool y)
476 editor->setFont(f); 476 editor->setFont(f);
477} 477}
478 478
479void TextEdit::setWordWrap(bool y) 479void TextEdit::setWordWrap(bool y)
480{ 480{
481 bool state = editor->edited(); 481 bool state = editor->edited();
482 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap ); 482 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap );
483 editor->setEdited( state ); 483 editor->setEdited( state );
484} 484}
485 485
486void TextEdit::fileNew() 486void TextEdit::fileNew()
487{ 487{
488 save(); 488 if( !bFromDocView ) {
489 save();
490 }
489 newFile(DocLnk()); 491 newFile(DocLnk());
490} 492}
491 493
492void TextEdit::fileOpen() 494void TextEdit::fileOpen()
493{ 495{
494// if ( !save() ) { 496// if ( !save() ) {
495// if ( QMessageBox::critical( this, tr( "Out of space" ), 497// if ( QMessageBox::critical( this, tr( "Out of space" ),
496// tr( "Text Editor was unable to\n" 498// tr( "Text Editor was unable to\n"
497// "save your changes.\n" 499// "save your changes.\n"
498// "Free some space and try again.\n" 500// "Free some space and try again.\n"
499// "\nContinue anyway?" ), 501// "\nContinue anyway?" ),
500// QMessageBox::Yes|QMessageBox::Escape, 502// QMessageBox::Yes|QMessageBox::Escape,
@@ -503,45 +505,46 @@ void TextEdit::fileOpen()
503// return; 505// return;
504// else { 506// else {
505// delete doc; 507// delete doc;
506// doc = 0; 508// doc = 0;
507// } 509// }
508// } 510// }
509 menu->hide(); 511 menu->hide();
510 editBar->hide(); 512 editBar->hide();
511 searchBar->hide(); 513 searchBar->hide();
512 clearWState (WState_Reserved1 ); 514 clearWState (WState_Reserved1 );
513 editorStack->raiseWidget( fileSelector ); 515 editorStack->raiseWidget( fileSelector );
514 fileSelector->reread(); 516 fileSelector->reread();
515 updateCaption(); 517 updateCaption(currentFileName);
516} 518}
517 519
518void TextEdit::newFileOpen() 520void TextEdit::newFileOpen()
519{ 521{
520 fileBrowser *browseForFiles; 522 fileBrowser *browseForFiles;
521 browseForFiles=new fileBrowser(this,"fileBrowser",TRUE,0, "*"); 523 browseForFiles=new fileBrowser(this,"fileBrowser",TRUE,0, "*");
522 browseForFiles->exec(); 524 if( browseForFiles->exec()!= 0 ) {
523 QString selFile= browseForFiles->selectedFileName; 525 QString selFile= browseForFiles->selectedFileName;
524 QStringList fileList=browseForFiles->fileList; 526 QStringList fileList=browseForFiles->fileList;
525 qDebug(selFile); 527 qDebug(selFile);
526 QStringList::ConstIterator f; 528 QStringList::ConstIterator f;
527 QString fileTemp; 529 QString fileTemp;
528 for ( f = fileList.begin(); f != fileList.end(); f++ ) { 530 for ( f = fileList.begin(); f != fileList.end(); f++ ) {
529 fileTemp = *f; 531 fileTemp = *f;
530 fileTemp.right( fileTemp.length()-5); 532 fileTemp.right( fileTemp.length()-5);
531 QString fileName = fileTemp; 533 QString fileName = fileTemp;
532 if( fileName != "Unnamed" || fileName != "Empty Text" ) { 534 if( fileName != "Unnamed" || fileName != "Empty Text" ) {
533 currentFileName = fileName; 535 currentFileName = fileName;
534 qDebug("please open "+currentFileName); 536// qDebug("please open "+currentFileName);
535 openFile(fileName ); 537 openFile(fileName );
538 }
536 } 539 }
537 } 540 }
538 delete browseForFiles; 541 delete browseForFiles;
539 542
540} 543}
541 544
542#if 0 545#if 0
543void TextEdit::slotFind() 546void TextEdit::slotFind()
544{ 547{
545 FindDialog frmFind( "Text Editor", this ); 548 FindDialog frmFind( "Text Editor", this );
546 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), 549 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)),
547 editor, SLOT(slotDoFind( const QString&,bool,bool))); 550 editor, SLOT(slotDoFind( const QString&,bool,bool)));
@@ -610,121 +613,124 @@ void TextEdit::search()
610 editor->find( searchEdit->text(), FALSE, FALSE ); 613 editor->find( searchEdit->text(), FALSE, FALSE );
611} 614}
612 615
613void TextEdit::newFile( const DocLnk &f ) 616void TextEdit::newFile( const DocLnk &f )
614{ 617{
615 DocLnk nf = f; 618 DocLnk nf = f;
616 nf.setType("text/plain"); 619 nf.setType("text/plain");
617 clear(); 620 clear();
618 editorStack->raiseWidget( editor ); 621 editorStack->raiseWidget( editor );
619 setWState (WState_Reserved1 ); 622 setWState (WState_Reserved1 );
620 editor->setFocus(); 623 editor->setFocus();
621 doc = new DocLnk(nf); 624 doc = new DocLnk(nf);
622 updateCaption(); 625// updateCaption();
623} 626}
624 627
625void TextEdit::openFile( const QString &f ) 628void TextEdit::openFile( const QString &f )
626{ 629{
627 bFromDocView = TRUE; 630 bFromDocView = TRUE;
628 DocLnk nf; 631 DocLnk nf;
629 nf.setType("text/plain"); 632 nf.setType("text/plain");
630 nf.setFile(f); 633 nf.setFile(f);
631 openFile(nf); 634 openFile(nf);
632 showEditTools(); 635 showEditTools();
633 // Show filename in caption 636 // Show filename in caption
634 QString name = f; 637 QString name = f;
635 int sep = name.findRev( '/' ); 638 int sep = name.findRev( '/' );
636 if ( sep > 0 ) 639 if ( sep > 0 )
637 name = name.mid( sep+1 ); 640 name = name.mid( sep+1 );
638 updateCaption( name ); 641 updateCaption( name );
639} 642}
640 643
641void TextEdit::openFile( const DocLnk &f ) 644void TextEdit::openFile( const DocLnk &f )
642{ 645{
643// clear(); 646// clear();
647 bFromDocView = TRUE;
644 FileManager fm; 648 FileManager fm;
645 QString txt; 649 QString txt;
646 if ( !fm.loadFile( f, txt ) ) { 650 if ( !fm.loadFile( f, txt ) ) {
647 // ####### could be a new file 651 // ####### could be a new file
648 qDebug( "Cannot open file" ); 652 qDebug( "Cannot open file" );
649 653
650 //return; 654 //return;
651 } 655 }
652 656
653 fileNew(); 657 fileNew();
654 if ( doc ) 658 if ( doc )
655 delete doc; 659 delete doc;
656 doc = new DocLnk(f); 660 doc = new DocLnk(f);
657 editor->setText(txt); 661 editor->setText(txt);
658 editor->setEdited(FALSE); 662 editor->setEdited(FALSE);
659 updateCaption(); 663 updateCaption(currentFileName);
660} 664}
661 665
662void TextEdit::showEditTools() 666void TextEdit::showEditTools()
663{ 667{
664// if ( !doc ) 668// if ( !doc )
665// close(); 669// close();
666// clear(); 670// clear();
667 fileSelector->hide(); 671 fileSelector->hide();
668 menu->show(); 672 menu->show();
669 editBar->show(); 673 editBar->show();
670 if ( searchVisible ) 674 if ( searchVisible )
671 searchBar->show(); 675 searchBar->show();
672 updateCaption(); 676// updateCaption();
673 editorStack->raiseWidget( editor ); 677 editorStack->raiseWidget( editor );
674 setWState (WState_Reserved1 ); 678 setWState (WState_Reserved1 );
675} 679}
676 680
677bool TextEdit::save() 681bool TextEdit::save()
678{ 682{
679 // case of nothing to save... 683 // case of nothing to save...
680 if ( !doc || !bFromDocView) 684 if ( !doc || !bFromDocView)
681 return true; 685 return true;
682 if ( !editor->edited() ) { 686 if ( !editor->edited() ) {
683 delete doc; 687 delete doc;
684 doc = 0; 688 doc = 0;
685 return true; 689 return true;
686 } 690 }
687 691
688 QString rt = editor->text(); 692 QString rt = editor->text();
689 693 qDebug(currentFileName);
690 if(currentFileName.isEmpty() || currentFileName == "Unnamed") { 694
695 if( currentFileName.isEmpty() || currentFileName == "Unnamed") {
691 696
692 if ( doc->name().isEmpty() ) { 697 if ( doc->name().isEmpty() ) {
693 QString pt = rt.simplifyWhiteSpace(); 698 QString pt = rt.simplifyWhiteSpace();
694 int i = pt.find( ' ' ); 699 int i = pt.find( ' ' );
695 QString docname = pt; 700 QString docname = pt;
696 if ( i > 0 ) 701 if ( i > 0 )
697 docname = pt.left( i ); 702 docname = pt.left( i );
698 // remove "." at the beginning 703 // remove "." at the beginning
699 while( docname.startsWith( "." ) ) 704 while( docname.startsWith( "." ) )
700 docname = docname.mid( 1 ); 705 docname = docname.mid( 1 );
701 docname.replace( QRegExp("/"), "_" ); 706 docname.replace( QRegExp("/"), "_" );
702 // cut the length. filenames longer than that don't make sense and something goes wrong when they get too long. 707 // cut the length. filenames longer than that don't make sense and something goes wrong when they get too long.
703 if ( docname.length() > 40 ) 708 if ( docname.length() > 40 )
704 docname = docname.left(40); 709 docname = docname.left(40);
705 if ( docname.isEmpty() ) 710 if ( docname.isEmpty() )
706 docname = "Empty Text"; 711 docname = "Empty Text";
707 doc->setName(docname); 712 doc->setName(docname);
708 currentFileName=docname; 713 currentFileName=docname;
709 } 714 }
710 } 715 }
711 716
712 fileSaver *fileSaveDlg; 717 fileSaver *fileSaveDlg;
713 fileSaveDlg=new fileSaver(this,"SaveFile",TRUE,0, currentFileName); 718 fileSaveDlg=new fileSaver(this,"SaveFile",TRUE,0, currentFileName);
714 fileSaveDlg->exec(); 719 if( fileSaveDlg->exec() != 0 ) {
715 QString fileNm=fileSaveDlg->selectedFileName; 720 QString fileNm=fileSaveDlg->selectedFileName;
716 qDebug("save filename "+fileNm); 721 qDebug("save filename "+fileNm);
717 doc->setName(fileNm); 722 doc->setName(fileNm);
718 updateCaption(); 723 updateCaption(fileNm);
724 }
719 delete fileSaveDlg; 725 delete fileSaveDlg;
720 726
721 FileManager fm; 727 FileManager fm;
722 if ( !fm.saveFile( *doc, rt ) ) { 728 if ( !fm.saveFile( *doc, rt ) ) {
723 return false; 729 return false;
724 } 730 }
725 delete doc; 731 delete doc;
726 doc = 0; 732 doc = 0;
727 editor->setEdited( false ); 733 editor->setEdited( false );
728 return true; 734 return true;
729} 735}
730 736