summaryrefslogtreecommitdiff
authorzecke <zecke>2003-12-06 11:48:47 (UTC)
committer zecke <zecke>2003-12-06 11:48:47 (UTC)
commit72336536db05459e3802b3be5032e55607985d0c (patch) (unidiff)
tree6920e4d51efa0b5dd6977e536575c45c1bf785b4
parentfaaeb2cd28b47d79e9644e770622d141d315c195 (diff)
downloadopie-72336536db05459e3802b3be5032e55607985d0c.zip
opie-72336536db05459e3802b3be5032e55607985d0c.tar.gz
opie-72336536db05459e3802b3be5032e55607985d0c.tar.bz2
quirk for opening renamed desktop files...
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index 1c95a97..b875228 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
@@ -461,519 +461,526 @@ void TextEdit::closeEvent(QCloseEvent *) {
461void TextEdit::cleanUp() { 461void TextEdit::cleanUp() {
462 462
463 Config cfg ( "TextEdit" ); 463 Config cfg ( "TextEdit" );
464 cfg. setGroup ( "Font" ); 464 cfg. setGroup ( "Font" );
465 QFont f = editor->font(); 465 QFont f = editor->font();
466 cfg.writeEntry ( "Family", f. family ( )); 466 cfg.writeEntry ( "Family", f. family ( ));
467 cfg.writeEntry ( "Size", f. pointSize ( )); 467 cfg.writeEntry ( "Size", f. pointSize ( ));
468 cfg.writeEntry ( "Weight", f. weight ( )); 468 cfg.writeEntry ( "Weight", f. weight ( ));
469 cfg.writeEntry ( "Italic", f. italic ( )); 469 cfg.writeEntry ( "Italic", f. italic ( ));
470 470
471 cfg.setGroup ( "View" ); 471 cfg.setGroup ( "View" );
472 cfg.writeEntry ( "Wrap", editor->wordWrap() == QMultiLineEdit::WidgetWidth ); 472 cfg.writeEntry ( "Wrap", editor->wordWrap() == QMultiLineEdit::WidgetWidth );
473 cfg.writeEntry ( "FileView", viewSelection ); 473 cfg.writeEntry ( "FileView", viewSelection );
474 474
475 cfg.writeEntry ( "PromptExit", promptExit ); 475 cfg.writeEntry ( "PromptExit", promptExit );
476 cfg.writeEntry ( "OpenDesktop", openDesktop ); 476 cfg.writeEntry ( "OpenDesktop", openDesktop );
477 cfg.writeEntry ( "FilePermissions", filePerms ); 477 cfg.writeEntry ( "FilePermissions", filePerms );
478 cfg.writeEntry ( "SearchBar", useSearchBar ); 478 cfg.writeEntry ( "SearchBar", useSearchBar );
479 cfg.writeEntry ( "startNew", startWithNew ); 479 cfg.writeEntry ( "startNew", startWithNew );
480 480
481} 481}
482 482
483 483
484void TextEdit::accept() { 484void TextEdit::accept() {
485 if( edited1) 485 if( edited1)
486 saveAs(); 486 saveAs();
487 qApp->quit(); 487 qApp->quit();
488} 488}
489 489
490void TextEdit::zoomIn() { 490void TextEdit::zoomIn() {
491 setFontSize(editor->font().pointSize()+1,false); 491 setFontSize(editor->font().pointSize()+1,false);
492} 492}
493 493
494void TextEdit::zoomOut() { 494void TextEdit::zoomOut() {
495 setFontSize(editor->font().pointSize()-1,true); 495 setFontSize(editor->font().pointSize()-1,true);
496} 496}
497 497
498 498
499void TextEdit::setFontSize(int sz, bool round_down_not_up) { 499void TextEdit::setFontSize(int sz, bool round_down_not_up) {
500 int s=10; 500 int s=10;
501 for (int i=0; i<nfontsizes; i++) { 501 for (int i=0; i<nfontsizes; i++) {
502 if ( fontsize[i] == sz ) { 502 if ( fontsize[i] == sz ) {
503 s = sz; 503 s = sz;
504 break; 504 break;
505 } else if ( round_down_not_up ) { 505 } else if ( round_down_not_up ) {
506 if ( fontsize[i] < sz ) 506 if ( fontsize[i] < sz )
507 s = fontsize[i]; 507 s = fontsize[i];
508 } else { 508 } else {
509 if ( fontsize[i] > sz ) { 509 if ( fontsize[i] > sz ) {
510 s = fontsize[i]; 510 s = fontsize[i];
511 break; 511 break;
512 } 512 }
513 } 513 }
514 } 514 }
515 515
516 QFont f = editor->font(); 516 QFont f = editor->font();
517 f.setPointSize(s); 517 f.setPointSize(s);
518 editor->setFont(f); 518 editor->setFont(f);
519 519
520 zin->setEnabled(s != fontsize[nfontsizes-1]); 520 zin->setEnabled(s != fontsize[nfontsizes-1]);
521 zout->setEnabled(s != fontsize[0]); 521 zout->setEnabled(s != fontsize[0]);
522} 522}
523 523
524void TextEdit::setBold(bool y) { 524void TextEdit::setBold(bool y) {
525 QFont f = editor->font(); 525 QFont f = editor->font();
526 f.setBold(y); 526 f.setBold(y);
527 editor->setFont(f); 527 editor->setFont(f);
528} 528}
529 529
530void TextEdit::setItalic(bool y) { 530void TextEdit::setItalic(bool y) {
531 QFont f = editor->font(); 531 QFont f = editor->font();
532 f.setItalic(y); 532 f.setItalic(y);
533 editor->setFont(f); 533 editor->setFont(f);
534} 534}
535 535
536void TextEdit::setWordWrap(bool y) { 536void TextEdit::setWordWrap(bool y) {
537 bool state = editor->edited(); 537 bool state = editor->edited();
538 QString captionStr = caption(); 538 QString captionStr = caption();
539 bool b1 = edited1; 539 bool b1 = edited1;
540 bool b2 = edited; 540 bool b2 = edited;
541 541
542 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap ); 542 editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap );
543 editor->setEdited( state ); 543 editor->setEdited( state );
544 edited1=b1; 544 edited1=b1;
545 edited=b2; 545 edited=b2;
546 setCaption(captionStr); 546 setCaption(captionStr);
547} 547}
548 548
549void TextEdit::setSearchBar(bool b) { 549void TextEdit::setSearchBar(bool b) {
550 useSearchBar=b; 550 useSearchBar=b;
551 Config cfg("TextEdit"); 551 Config cfg("TextEdit");
552 cfg.setGroup("View"); 552 cfg.setGroup("View");
553 cfg.writeEntry ( "SearchBar", b ); 553 cfg.writeEntry ( "SearchBar", b );
554 searchBarAction->setOn(b); 554 searchBarAction->setOn(b);
555 if(b) 555 if(b)
556 searchBar->show(); 556 searchBar->show();
557 else 557 else
558 searchBar->hide(); 558 searchBar->hide();
559 editor->setFocus(); 559 editor->setFocus();
560} 560}
561 561
562void TextEdit::fileNew() { 562void TextEdit::fileNew() {
563// if( !bFromDocView ) { 563// if( !bFromDocView ) {
564// saveAs(); 564// saveAs();
565// } 565// }
566 newFile(DocLnk()); 566 newFile(DocLnk());
567} 567}
568 568
569void TextEdit::fileOpen() { 569void TextEdit::fileOpen() {
570 Config cfg("TextEdit"); 570 Config cfg("TextEdit");
571 cfg. setGroup ( "View" ); 571 cfg. setGroup ( "View" );
572 QMap<QString, QStringList> map; 572 QMap<QString, QStringList> map;
573 map.insert(tr("All"), QStringList() ); 573 map.insert(tr("All"), QStringList() );
574 QStringList text; 574 QStringList text;
575 text << "text/*"; 575 text << "text/*";
576 map.insert(tr("Text"), text ); 576 map.insert(tr("Text"), text );
577 text << "*"; 577 text << "*";
578 map.insert(tr("All"), text ); 578 map.insert(tr("All"), text );
579 QString str = OFileDialog::getOpenFileName( 2, 579 QString str = OFileDialog::getOpenFileName( 2,
580 QString::null , 580 QString::null ,
581 QString::null, map); 581 QString::null, map);
582 if( !str.isEmpty() && QFile(str).exists() && !QFileInfo(str).isDir() ) 582 if( !str.isEmpty() && QFile(str).exists() && !QFileInfo(str).isDir() )
583 { 583 {
584 openFile( str ); 584 openFile( str );
585 } 585 }
586 else 586 else
587 updateCaption(); 587 updateCaption();
588} 588}
589 589
590void TextEdit::doSearchBar() { 590void TextEdit::doSearchBar() {
591 if(!useSearchBar) 591 if(!useSearchBar)
592 searchBar->hide(); 592 searchBar->hide();
593 else 593 else
594 searchBar->show(); 594 searchBar->show();
595} 595}
596 596
597#if 0 597#if 0
598void TextEdit::slotFind() { 598void TextEdit::slotFind() {
599 FindDialog frmFind( tr("Text Editor"), this ); 599 FindDialog frmFind( tr("Text Editor"), this );
600 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), 600 connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)),
601 editor, SLOT(slotDoFind( const QString&,bool,bool))); 601 editor, SLOT(slotDoFind( const QString&,bool,bool)));
602 602
603 //case sensitive, backwards, [category] 603 //case sensitive, backwards, [category]
604 604
605 connect( editor, SIGNAL(notFound()), 605 connect( editor, SIGNAL(notFound()),
606 &frmFind, SLOT(slotNotFound()) ); 606 &frmFind, SLOT(slotNotFound()) );
607 connect( editor, SIGNAL(searchWrapped()), 607 connect( editor, SIGNAL(searchWrapped()),
608 &frmFind, SLOT(slotWrapAround()) ); 608 &frmFind, SLOT(slotWrapAround()) );
609 609
610 frmFind.exec(); 610 frmFind.exec();
611 611
612 612
613} 613}
614#endif 614#endif
615 615
616void TextEdit::fileRevert() { 616void TextEdit::fileRevert() {
617 clear(); 617 clear();
618 fileOpen(); 618 fileOpen();
619} 619}
620 620
621void TextEdit::editCut() { 621void TextEdit::editCut() {
622#ifndef QT_NO_CLIPBOARD 622#ifndef QT_NO_CLIPBOARD
623 editor->cut(); 623 editor->cut();
624#endif 624#endif
625} 625}
626 626
627void TextEdit::editCopy() { 627void TextEdit::editCopy() {
628#ifndef QT_NO_CLIPBOARD 628#ifndef QT_NO_CLIPBOARD
629 editor->copy(); 629 editor->copy();
630#endif 630#endif
631} 631}
632 632
633void TextEdit::editPaste() { 633void TextEdit::editPaste() {
634#ifndef QT_NO_CLIPBOARD 634#ifndef QT_NO_CLIPBOARD
635 editor->paste(); 635 editor->paste();
636#endif 636#endif
637} 637}
638 638
639void TextEdit::editFind() { 639void TextEdit::editFind() {
640 searchBar->show(); 640 searchBar->show();
641 searchEdit->setFocus(); 641 searchEdit->setFocus();
642} 642}
643 643
644void TextEdit::findNext() { 644void TextEdit::findNext() {
645 editor->find( searchEdit->text(), false, false ); 645 editor->find( searchEdit->text(), false, false );
646 646
647} 647}
648 648
649void TextEdit::findClose() { 649void TextEdit::findClose() {
650 searchBar->hide(); 650 searchBar->hide();
651} 651}
652 652
653void TextEdit::search() { 653void TextEdit::search() {
654 editor->find( searchEdit->text(), false, false ); 654 editor->find( searchEdit->text(), false, false );
655} 655}
656 656
657void TextEdit::newFile( const DocLnk &f ) { 657void TextEdit::newFile( const DocLnk &f ) {
658 DocLnk nf = f; 658 DocLnk nf = f;
659 nf.setType("text/plain"); 659 nf.setType("text/plain");
660 clear(); 660 clear();
661 setWState (WState_Reserved1 ); 661 setWState (WState_Reserved1 );
662 editor->setFocus(); 662 editor->setFocus();
663 doc = new DocLnk(nf); 663 doc = new DocLnk(nf);
664 currentFileName = "Unnamed"; 664 currentFileName = "Unnamed";
665 qDebug("newFile "+currentFileName); 665 qDebug("newFile "+currentFileName);
666 updateCaption( currentFileName); 666 updateCaption( currentFileName);
667// editor->setEdited( false); 667// editor->setEdited( false);
668} 668}
669 669
670void TextEdit::openDotFile( const QString &f ) { 670void TextEdit::openDotFile( const QString &f ) {
671 if(!currentFileName.isEmpty()) { 671 if(!currentFileName.isEmpty()) {
672 currentFileName=f; 672 currentFileName=f;
673 673
674 qDebug("openFile dotfile " + currentFileName); 674 qDebug("openFile dotfile " + currentFileName);
675 QString txt; 675 QString txt;
676 QFile file(f); 676 QFile file(f);
677 file.open(IO_ReadWrite); 677 file.open(IO_ReadWrite);
678 QTextStream t(&file); 678 QTextStream t(&file);
679 while ( !t.atEnd()) { 679 while ( !t.atEnd()) {
680 txt+=t.readLine()+"\n"; 680 txt+=t.readLine()+"\n";
681 } 681 }
682 editor->setText(txt); 682 editor->setText(txt);
683 editor->setEdited( false); 683 editor->setEdited( false);
684 edited1=false; 684 edited1=false;
685 edited=false; 685 edited=false;
686 686
687 687
688 } 688 }
689 updateCaption( currentFileName); 689 updateCaption( currentFileName);
690} 690}
691 691
692void TextEdit::openFile( const QString &f ) { 692void TextEdit::openFile( const QString &f ) {
693 qDebug("filename is "+ f); 693 qDebug("filename is "+ f);
694 QString filer; 694 QString filer;
695 QFileInfo fi( f); 695 QFileInfo fi( f);
696// bFromDocView = true; 696// bFromDocView = true;
697 if(f.find(".desktop",0,true) != -1 && !openDesktop ) 697 if(f.find(".desktop",0,true) != -1 && !openDesktop )
698 { 698 {
699 switch ( QMessageBox::warning(this,tr("Text Editor"),tr("Text Editor has detected<BR>you selected a <B>.desktop</B>file.<BR>Open<B>.desktop</B> file or <B>linked</B> file?"),tr(".desktop File"),tr("Linked Document"),0,1,1) ) 699 switch ( QMessageBox::warning(this,tr("Text Editor"),tr("Text Editor has detected<BR>you selected a <B>.desktop</B>file.<BR>Open<B>.desktop</B> file or <B>linked</B> file?"),tr(".desktop File"),tr("Linked Document"),0,1,1) )
700 { 700 {
701 case 0: //desktop 701 case 0: //desktop
702 filer = f; 702 filer = f;
703 break; 703 break;
704 case 1: //linked 704 case 1: //linked
705 DocLnk sf(f); 705 DocLnk sf(f);
706 filer = sf.file(); 706 filer = sf.file();
707 break; 707 break;
708 }; 708 };
709 } 709 }
710 else if(fi.baseName().left(1) == "") 710 else if(fi.baseName().left(1) == "")
711 { 711 {
712 qDebug("opening dotfile"); 712 qDebug("opening dotfile");
713 currentFileName=f; 713 currentFileName=f;
714 openDotFile(currentFileName); 714 openDotFile(currentFileName);
715 return; 715 return;
716 } 716 }
717 else 717 /*
718 * The problem is a file where Config(f).isValid() and it does not
719 * end with .desktop will be treated as desktop file
720 */
721 else if (f.find(".desktop",0,true) != -1 )
718 { 722 {
719 DocLnk sf(f); 723 DocLnk sf(f);
720 filer = sf.file(); 724 filer = sf.file();
721 if(filer.right(1) == "/") 725 if(filer.right(1) == "/")
722 filer = f; 726 filer = f;
727
723 } 728 }
729 else
730 filer = f;
724 731
725 DocLnk nf; 732 DocLnk nf;
726 nf.setType("text/plain"); 733 nf.setType("text/plain");
727 nf.setFile(filer); 734 nf.setFile(filer);
728 currentFileName=filer; 735 currentFileName=filer;
729 736
730 nf.setName(fi.baseName()); 737 nf.setName(fi.baseName());
731 openFile(nf); 738 openFile(nf);
732 739
733 qDebug("openFile string "+currentFileName); 740 qDebug("openFile string "+currentFileName);
734 741
735 showEditTools(); 742 showEditTools();
736 // Show filename in caption 743 // Show filename in caption
737 QString name = filer; 744 QString name = filer;
738 int sep = name.findRev( '/' ); 745 int sep = name.findRev( '/' );
739 if ( sep > 0 ) 746 if ( sep > 0 )
740 name = name.mid( sep+1 ); 747 name = name.mid( sep+1 );
741 updateCaption( name ); 748 updateCaption( name );
742} 749}
743 750
744void TextEdit::openFile( const DocLnk &f ) { 751void TextEdit::openFile( const DocLnk &f ) {
745// clear(); 752// clear();
746// bFromDocView = true; 753// bFromDocView = true;
747 FileManager fm; 754 FileManager fm;
748 QString txt; 755 QString txt;
749 currentFileName=f.file(); 756 currentFileName=f.file();
750 qDebug("openFile doclnk " + currentFileName); 757 qDebug("openFile doclnk " + currentFileName);
751 if ( !fm.loadFile( f, txt ) ) { 758 if ( !fm.loadFile( f, txt ) ) {
752 // ####### could be a new file 759 // ####### could be a new file
753 qDebug( "Cannot open file" ); 760 qDebug( "Cannot open file" );
754 } 761 }
755// fileNew(); 762// fileNew();
756 if ( doc ) 763 if ( doc )
757 delete doc; 764 delete doc;
758 doc = new DocLnk(f); 765 doc = new DocLnk(f);
759 editor->setText(txt); 766 editor->setText(txt);
760 editor->setEdited( false); 767 editor->setEdited( false);
761 edited1=false; 768 edited1=false;
762 edited=false; 769 edited=false;
763 770
764 doc->setName(currentFileName); 771 doc->setName(currentFileName);
765 updateCaption(); 772 updateCaption();
766 setTimer(); 773 setTimer();
767} 774}
768 775
769void TextEdit::showEditTools() { 776void TextEdit::showEditTools() {
770 menu->show(); 777 menu->show();
771 editBar->show(); 778 editBar->show();
772 if(!useSearchBar) 779 if(!useSearchBar)
773 searchBar->hide(); 780 searchBar->hide();
774 else 781 else
775 searchBar->show(); 782 searchBar->show();
776 setWState (WState_Reserved1 ); 783 setWState (WState_Reserved1 );
777} 784}
778 785
779/*! 786/*!
780 unprompted save */ 787 unprompted save */
781bool TextEdit::save() { 788bool TextEdit::save() {
782 qDebug("saveAsFile " + currentFileName); 789 qDebug("saveAsFile " + currentFileName);
783 if(currentFileName.isEmpty()) { 790 if(currentFileName.isEmpty()) {
784 saveAs(); 791 saveAs();
785 return false; 792 return false;
786 } 793 }
787 794
788 QString file = doc->file(); 795 QString file = doc->file();
789 qDebug("saver file "+file); 796 qDebug("saver file "+file);
790 QString name= doc->name(); 797 QString name= doc->name();
791 qDebug("File named "+name); 798 qDebug("File named "+name);
792 QString rt = editor->text(); 799 QString rt = editor->text();
793 if( !rt.isEmpty() ) { 800 if( !rt.isEmpty() ) {
794 if(name.isEmpty()) { 801 if(name.isEmpty()) {
795 saveAs(); 802 saveAs();
796 } else { 803 } else {
797 currentFileName= name ; 804 currentFileName= name ;
798 qDebug("saveFile "+currentFileName); 805 qDebug("saveFile "+currentFileName);
799 806
800 struct stat buf; 807 struct stat buf;
801 mode_t mode; 808 mode_t mode;
802 stat(file.latin1(), &buf); 809 stat(file.latin1(), &buf);
803 mode = buf.st_mode; 810 mode = buf.st_mode;
804 811
805 if(!fileIs) { 812 if(!fileIs) {
806 doc->setName( name); 813 doc->setName( name);
807 FileManager fm; 814 FileManager fm;
808 if ( !fm.saveFile( *doc, rt ) ) { 815 if ( !fm.saveFile( *doc, rt ) ) {
809 return false; 816 return false;
810 } 817 }
811 } else { 818 } else {
812 qDebug("regular save file"); 819 qDebug("regular save file");
813 QFile f(file); 820 QFile f(file);
814 if( f.open(IO_WriteOnly)) { 821 if( f.open(IO_WriteOnly)) {
815 QCString crt = rt.utf8(); 822 QCString crt = rt.utf8();
816 f.writeBlock(crt,crt.length()); 823 f.writeBlock(crt,crt.length());
817 } else { 824 } else {
818 QMessageBox::message(tr("Text Edit"),tr("Write Failed")); 825 QMessageBox::message(tr("Text Edit"),tr("Write Failed"));
819 return false; 826 return false;
820 } 827 }
821 828
822 } 829 }
823 editor->setEdited( false); 830 editor->setEdited( false);
824 edited1=false; 831 edited1=false;
825 edited=false; 832 edited=false;
826 if(caption().left(1)=="*") 833 if(caption().left(1)=="*")
827 setCaption(caption().right(caption().length()-1)); 834 setCaption(caption().right(caption().length()-1));
828 835
829 836
830 chmod( file.latin1(), mode); 837 chmod( file.latin1(), mode);
831 } 838 }
832 return true; 839 return true;
833 } 840 }
834 return false; 841 return false;
835} 842}
836 843
837/*! 844/*!
838 prompted save */ 845 prompted save */
839bool TextEdit::saveAs() { 846bool TextEdit::saveAs() {
840 847
841 if(caption() == tr("Text Editor")) 848 if(caption() == tr("Text Editor"))
842 return false; 849 return false;
843 qDebug("saveAsFile " + currentFileName); 850 qDebug("saveAsFile " + currentFileName);
844 // case of nothing to save... 851 // case of nothing to save...
845// if ( !doc && !currentFileName.isEmpty()) { 852// if ( !doc && !currentFileName.isEmpty()) {
846// //|| !bFromDocView) 853// //|| !bFromDocView)
847// qDebug("no doc"); 854// qDebug("no doc");
848// return true; 855// return true;
849// } 856// }
850// if ( !editor->edited() ) { 857// if ( !editor->edited() ) {
851// delete doc; 858// delete doc;
852// doc = 0; 859// doc = 0;
853// return true; 860// return true;
854// } 861// }
855 862
856 QString rt = editor->text(); 863 QString rt = editor->text();
857 qDebug(currentFileName); 864 qDebug(currentFileName);
858 865
859 if( currentFileName.isEmpty() 866 if( currentFileName.isEmpty()
860 || currentFileName == tr("Unnamed") 867 || currentFileName == tr("Unnamed")
861 || currentFileName == tr("Text Editor")) { 868 || currentFileName == tr("Text Editor")) {
862 qDebug("do silly TT filename thing"); 869 qDebug("do silly TT filename thing");
863// if ( doc && doc->name().isEmpty() ) { 870// if ( doc && doc->name().isEmpty() ) {
864 QString pt = rt.simplifyWhiteSpace(); 871 QString pt = rt.simplifyWhiteSpace();
865 int i = pt.find( ' ' ); 872 int i = pt.find( ' ' );
866 QString docname = pt; 873 QString docname = pt;
867 if ( i > 0 ) 874 if ( i > 0 )
868 docname = pt.left( i ); 875 docname = pt.left( i );
869 // remove "." at the beginning 876 // remove "." at the beginning
870 while( docname.startsWith( "." ) ) 877 while( docname.startsWith( "." ) )
871 docname = docname.mid( 1 ); 878 docname = docname.mid( 1 );
872 docname.replace( QRegExp("/"), "_" ); 879 docname.replace( QRegExp("/"), "_" );
873 // cut the length. filenames longer than that 880 // cut the length. filenames longer than that
874 //don't make sense and something goes wrong when they get too long. 881 //don't make sense and something goes wrong when they get too long.
875 if ( docname.length() > 40 ) 882 if ( docname.length() > 40 )
876 docname = docname.left(40); 883 docname = docname.left(40);
877 if ( docname.isEmpty() ) 884 if ( docname.isEmpty() )
878 docname = tr("Unnamed"); 885 docname = tr("Unnamed");
879 if(doc) doc->setName(docname); 886 if(doc) doc->setName(docname);
880 currentFileName=docname; 887 currentFileName=docname;
881// } 888// }
882// else 889// else
883// qDebug("hmmmmmm"); 890// qDebug("hmmmmmm");
884 } 891 }
885 892
886 893
887 QMap<QString, QStringList> map; 894 QMap<QString, QStringList> map;
888 map.insert(tr("All"), QStringList() ); 895 map.insert(tr("All"), QStringList() );
889 QStringList text; 896 QStringList text;
890 text << "text/*"; 897 text << "text/*";
891 map.insert(tr("Text"), text ); 898 map.insert(tr("Text"), text );
892 text << "*"; 899 text << "*";
893 map.insert(tr("All"), text ); 900 map.insert(tr("All"), text );
894 901
895 QFileInfo cuFi( currentFileName); 902 QFileInfo cuFi( currentFileName);
896 QString filee = cuFi.fileName(); 903 QString filee = cuFi.fileName();
897 QString dire = cuFi.dirPath(); 904 QString dire = cuFi.dirPath();
898 if(dire==".") 905 if(dire==".")
899 dire = QPEApplication::documentDir(); 906 dire = QPEApplication::documentDir();
900 QString str; 907 QString str;
901 if( !featureAutoSave) 908 if( !featureAutoSave)
902 { 909 {
903 str = OFileDialog::getSaveFileName( 2, 910 str = OFileDialog::getSaveFileName( 2,
904 dire, 911 dire,
905 filee, map); 912 filee, map);
906 } 913 }
907 else 914 else
908 str=currentFileName; 915 str=currentFileName;
909 if(!str.isEmpty()) { 916 if(!str.isEmpty()) {
910 QString fileNm=str; 917 QString fileNm=str;
911 918
912 qDebug("saving filename "+fileNm); 919 qDebug("saving filename "+fileNm);
913 QFileInfo fi(fileNm); 920 QFileInfo fi(fileNm);
914 currentFileName=fi.fileName(); 921 currentFileName=fi.fileName();
915 if(doc) 922 if(doc)
916// QString file = doc->file(); 923// QString file = doc->file();
917// doc->removeFiles(); 924// doc->removeFiles();
918 delete doc; 925 delete doc;
919 DocLnk nf; 926 DocLnk nf;
920 nf.setType("text/plain"); 927 nf.setType("text/plain");
921 nf.setFile( fileNm); 928 nf.setFile( fileNm);
922 doc = new DocLnk(nf); 929 doc = new DocLnk(nf);
923// editor->setText(rt); 930// editor->setText(rt);
924 qDebug("Saving file as "+currentFileName); 931 qDebug("Saving file as "+currentFileName);
925 doc->setName( currentFileName); 932 doc->setName( currentFileName);
926 updateCaption( currentFileName); 933 updateCaption( currentFileName);
927 934
928 FileManager fm; 935 FileManager fm;
929 if ( !fm.saveFile( *doc, rt ) ) { 936 if ( !fm.saveFile( *doc, rt ) ) {
930 return false; 937 return false;
931 } 938 }
932 939
933 if( filePerms ) { 940 if( filePerms ) {
934 filePermissions *filePerm; 941 filePermissions *filePerm;
935 filePerm = new filePermissions(this, 942 filePerm = new filePermissions(this,
936 tr("Permissions"),true, 943 tr("Permissions"),true,
937 0,(const QString &)fileNm); 944 0,(const QString &)fileNm);
938 filePerm->showMaximized(); 945 filePerm->showMaximized();
939 filePerm->exec(); 946 filePerm->exec();
940 947
941 if( filePerm) 948 if( filePerm)
942 delete filePerm; 949 delete filePerm;
943 } 950 }
944// } 951// }
945 editor->setEdited( false); 952 editor->setEdited( false);
946 edited1 = false; 953 edited1 = false;
947 edited = false; 954 edited = false;
948 if(caption().left(1)=="*") 955 if(caption().left(1)=="*")
949 setCaption(caption().right(caption().length()-1)); 956 setCaption(caption().right(caption().length()-1));
950 957
951 return true; 958 return true;
952 } 959 }
953 qDebug("returning false"); 960 qDebug("returning false");
954 return false; 961 return false;
955} //end saveAs 962} //end saveAs
956 963
957void TextEdit::clear() { 964void TextEdit::clear() {
958 delete doc; 965 delete doc;
959 doc = 0; 966 doc = 0;
960 editor->clear(); 967 editor->clear();
961} 968}
962 969
963void TextEdit::updateCaption( const QString &name ) { 970void TextEdit::updateCaption( const QString &name ) {
964 971
965 if ( name.isEmpty() ) 972 if ( name.isEmpty() )
966 setCaption( tr("Text Editor") ); 973 setCaption( tr("Text Editor") );
967 else { 974 else {
968 QString s = name; 975 QString s = name;
969 if ( s.isNull() ) 976 if ( s.isNull() )
970 s = doc->name(); 977 s = doc->name();
971 if ( s.isEmpty() ) { 978 if ( s.isEmpty() ) {
972 s = tr( "Unnamed" ); 979 s = tr( "Unnamed" );
973 currentFileName=s; 980 currentFileName=s;
974 } 981 }
975// if(s.left(1) == "/") 982// if(s.left(1) == "/")
976// s = s.right(s.length()-1); 983// s = s.right(s.length()-1);
977 setCaption( tr("%1 - Text Editor").arg( s ) ); 984 setCaption( tr("%1 - Text Editor").arg( s ) );
978 } 985 }
979} 986}