author | llornkcor <llornkcor> | 2002-07-20 03:00:42 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-07-20 03:00:42 (UTC) |
commit | c42e3e2485c545beedd482115927bff7d1bf65a2 (patch) (unidiff) | |
tree | 9b82c86631917d5ae66d9307c6b5e44237c1ecc9 | |
parent | 8256eec0103a50f80905e71891904a4267754559 (diff) | |
download | opie-c42e3e2485c545beedd482115927bff7d1bf65a2.zip opie-c42e3e2485c545beedd482115927bff7d1bf65a2.tar.gz opie-c42e3e2485c545beedd482115927bff7d1bf65a2.tar.bz2 |
added 'Advanced Features for prompting for .desktop files and permissions on saving
-rw-r--r-- | core/apps/textedit/textedit.cpp | 24 | ||||
-rw-r--r-- | core/apps/textedit/textedit.h | 5 |
2 files changed, 23 insertions, 6 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index b276cbb..0af18da 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp | |||
@@ -321,54 +321,63 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) | |||
321 | connect( ba, SIGNAL( toggled(bool) ), this, SLOT( setBold(bool) ) ); | 321 | connect( ba, SIGNAL( toggled(bool) ), this, SLOT( setBold(bool) ) ); |
322 | ba->setToggleAction(TRUE); | 322 | ba->setToggleAction(TRUE); |
323 | ba->addTo( font ); | 323 | ba->addTo( font ); |
324 | 324 | ||
325 | QAction *ia = new QAction( tr("Italic"), QString::null, 0, this, 0 ); | 325 | QAction *ia = new QAction( tr("Italic"), QString::null, 0, this, 0 ); |
326 | connect( ia, SIGNAL( toggled(bool) ), this, SLOT( setItalic(bool) ) ); | 326 | connect( ia, SIGNAL( toggled(bool) ), this, SLOT( setItalic(bool) ) ); |
327 | ia->setToggleAction(TRUE); | 327 | ia->setToggleAction(TRUE); |
328 | ia->addTo( font ); | 328 | ia->addTo( font ); |
329 | 329 | ||
330 | ba->setOn(defb); | 330 | ba->setOn(defb); |
331 | ia->setOn(defi); | 331 | ia->setOn(defi); |
332 | 332 | ||
333 | font->insertSeparator(); | 333 | font->insertSeparator(); |
334 | #endif | 334 | #endif |
335 | 335 | ||
336 | QAction *wa = new QAction( tr("Wrap lines"), QString::null, 0, this, 0 ); | 336 | QAction *wa = new QAction( tr("Wrap lines"), QString::null, 0, this, 0 ); |
337 | connect( wa, SIGNAL( toggled(bool) ), this, SLOT( setWordWrap(bool) ) ); | 337 | connect( wa, SIGNAL( toggled(bool) ), this, SLOT( setWordWrap(bool) ) ); |
338 | wa->setToggleAction(TRUE); | 338 | wa->setToggleAction(TRUE); |
339 | wa->addTo( font ); | 339 | wa->addTo( font ); |
340 | 340 | ||
341 | font->insertSeparator(); | 341 | font->insertSeparator(); |
342 | font->insertItem(tr("Font"), this, SLOT(changeFont()) ); | 342 | font->insertItem(tr("Font"), this, SLOT(changeFont()) ); |
343 | 343 | ||
344 | font->insertSeparator(); | 344 | font->insertSeparator(); |
345 | |||
345 | nStart = new QAction( tr("Start with new file"), QString::null, 0, this, 0 ); | 346 | nStart = new QAction( tr("Start with new file"), QString::null, 0, this, 0 ); |
346 | connect( nStart, SIGNAL( toggled(bool) ), this, SLOT( changeStartConfig(bool) ) ); | 347 | connect( nStart, SIGNAL( toggled(bool) ), this, SLOT( changeStartConfig(bool) ) ); |
347 | nStart->setToggleAction(TRUE); | 348 | nStart->setToggleAction(TRUE); |
348 | nStart->addTo( font ); | 349 | nStart->addTo( font ); |
350 | |||
351 | nAdvanced = new QAction( tr("Advanced features"), QString::null, 0, this, 0 ); | ||
352 | connect( nAdvanced, SIGNAL( toggled(bool) ), this, SLOT( doAdvanced(bool) ) ); | ||
353 | nAdvanced->setToggleAction(TRUE); | ||
354 | nAdvanced->addTo( font ); | ||
355 | if(cfg.readBoolEntry("AdvancedFeatures")) | ||
356 | nAdvanced->setOn(TRUE); | ||
349 | font->insertSeparator(); | 357 | font->insertSeparator(); |
350 | font->insertItem(tr("About"), this, SLOT( doAbout()) ); | 358 | |
359 | font->insertItem(tr("About"), this, SLOT( doAbout()) ); | ||
351 | 360 | ||
352 | mb->insertItem( tr( "File" ), file ); | 361 | mb->insertItem( tr( "File" ), file ); |
353 | mb->insertItem( tr( "Edit" ), edit ); | 362 | mb->insertItem( tr( "Edit" ), edit ); |
354 | mb->insertItem( tr( "View" ), font ); | 363 | mb->insertItem( tr( "View" ), font ); |
355 | 364 | ||
356 | searchBar = new QPEToolBar(this); | 365 | searchBar = new QPEToolBar(this); |
357 | addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); | 366 | addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); |
358 | 367 | ||
359 | searchBar->setHorizontalStretchable( TRUE ); | 368 | searchBar->setHorizontalStretchable( TRUE ); |
360 | 369 | ||
361 | searchEdit = new QLineEdit( searchBar, "searchEdit" ); | 370 | searchEdit = new QLineEdit( searchBar, "searchEdit" ); |
362 | searchBar->setStretchableWidget( searchEdit ); | 371 | searchBar->setStretchableWidget( searchEdit ); |
363 | connect( searchEdit, SIGNAL( textChanged( const QString & ) ), | 372 | connect( searchEdit, SIGNAL( textChanged( const QString & ) ), |
364 | this, SLOT( search() ) ); | 373 | this, SLOT( search() ) ); |
365 | 374 | ||
366 | a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); | 375 | a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); |
367 | connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); | 376 | connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); |
368 | a->addTo( searchBar ); | 377 | a->addTo( searchBar ); |
369 | a->addTo( edit ); | 378 | a->addTo( edit ); |
370 | 379 | ||
371 | a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); | 380 | a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); |
372 | connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); | 381 | connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); |
373 | a->addTo( searchBar ); | 382 | a->addTo( searchBar ); |
374 | 383 | ||
@@ -602,49 +611,49 @@ void TextEdit::findClose() | |||
602 | void TextEdit::search() | 611 | void TextEdit::search() |
603 | { | 612 | { |
604 | editor->find( searchEdit->text(), FALSE, FALSE ); | 613 | editor->find( searchEdit->text(), FALSE, FALSE ); |
605 | } | 614 | } |
606 | 615 | ||
607 | void TextEdit::newFile( const DocLnk &f ) | 616 | void TextEdit::newFile( const DocLnk &f ) |
608 | { | 617 | { |
609 | DocLnk nf = f; | 618 | DocLnk nf = f; |
610 | nf.setType("text/plain"); | 619 | nf.setType("text/plain"); |
611 | clear(); | 620 | clear(); |
612 | setWState (WState_Reserved1 ); | 621 | setWState (WState_Reserved1 ); |
613 | editor->setFocus(); | 622 | editor->setFocus(); |
614 | doc = new DocLnk(nf); | 623 | doc = new DocLnk(nf); |
615 | currentFileName = "Unnamed"; | 624 | currentFileName = "Unnamed"; |
616 | qDebug("newFile "+currentFileName); | 625 | qDebug("newFile "+currentFileName); |
617 | updateCaption( currentFileName); | 626 | updateCaption( currentFileName); |
618 | // editor->setEdited( FALSE); | 627 | // editor->setEdited( FALSE); |
619 | } | 628 | } |
620 | 629 | ||
621 | void TextEdit::openFile( const QString &f ) | 630 | void TextEdit::openFile( const QString &f ) |
622 | { | 631 | { |
623 | qDebug("filename is "+ f); | 632 | qDebug("filename is "+ f); |
624 | QString filer; | 633 | QString filer; |
625 | // bFromDocView = TRUE; | 634 | // bFromDocView = TRUE; |
626 | if(f.find(".desktop",0,TRUE) != -1) { | 635 | if(f.find(".desktop",0,TRUE) != -1 && useAdvancedFeatures) { |
627 | switch ( QMessageBox::warning(this,tr("Text Editor"), | 636 | switch ( QMessageBox::warning(this,tr("Text Editor"), |
628 | tr("Text Editor has detected\n you selected a .desktop file.\nOpen .desktop file or linked file?"), | 637 | tr("Text Editor has detected\n you selected a .desktop file.\nOpen .desktop file or linked file?"), |
629 | tr(".desktop File"),tr("Linked Document"),0,1,1) ) { | 638 | tr(".desktop File"),tr("Linked Document"),0,1,1) ) { |
630 | case 0: | 639 | case 0: |
631 | filer = f; | 640 | filer = f; |
632 | break; | 641 | break; |
633 | case 1: | 642 | case 1: |
634 | DocLnk sf(f); | 643 | DocLnk sf(f); |
635 | filer = sf.file(); | 644 | filer = sf.file(); |
636 | break; | 645 | break; |
637 | } | 646 | } |
638 | } else { | 647 | } else { |
639 | filer = f; | 648 | filer = f; |
640 | fileIs = TRUE; | 649 | fileIs = TRUE; |
641 | } | 650 | } |
642 | 651 | ||
643 | DocLnk nf; | 652 | DocLnk nf; |
644 | nf.setType("text/plain"); | 653 | nf.setType("text/plain"); |
645 | nf.setFile(filer); | 654 | nf.setFile(filer); |
646 | currentFileName=filer; | 655 | currentFileName=filer; |
647 | QFileInfo fi( currentFileName); | 656 | QFileInfo fi( currentFileName); |
648 | nf.setName(fi.baseName()); | 657 | nf.setName(fi.baseName()); |
649 | qDebug("openFile string "+currentFileName); | 658 | qDebug("openFile string "+currentFileName); |
650 | 659 | ||
@@ -802,56 +811,56 @@ bool TextEdit::saveAs() | |||
802 | if(!str.isEmpty() ) { | 811 | if(!str.isEmpty() ) { |
803 | QString fileNm=str; | 812 | QString fileNm=str; |
804 | 813 | ||
805 | qDebug("saving filename "+fileNm); | 814 | qDebug("saving filename "+fileNm); |
806 | QFileInfo fi(fileNm); | 815 | QFileInfo fi(fileNm); |
807 | currentFileName=fi.fileName(); | 816 | currentFileName=fi.fileName(); |
808 | if(doc) { | 817 | if(doc) { |
809 | // QString file = doc->file(); | 818 | // QString file = doc->file(); |
810 | // doc->removeFiles(); | 819 | // doc->removeFiles(); |
811 | delete doc; | 820 | delete doc; |
812 | DocLnk nf; | 821 | DocLnk nf; |
813 | nf.setType("text/plain"); | 822 | nf.setType("text/plain"); |
814 | nf.setFile( fileNm); | 823 | nf.setFile( fileNm); |
815 | doc = new DocLnk(nf); | 824 | doc = new DocLnk(nf); |
816 | // editor->setText(rt); | 825 | // editor->setText(rt); |
817 | // qDebug("openFile doclnk "+currentFileName); | 826 | // qDebug("openFile doclnk "+currentFileName); |
818 | doc->setName( currentFileName); | 827 | doc->setName( currentFileName); |
819 | updateCaption( currentFileName); | 828 | updateCaption( currentFileName); |
820 | 829 | ||
821 | FileManager fm; | 830 | FileManager fm; |
822 | if ( !fm.saveFile( *doc, rt ) ) { | 831 | if ( !fm.saveFile( *doc, rt ) ) { |
823 | return false; | 832 | return false; |
824 | } | 833 | } |
825 | 834 | ||
826 | // if( fileSaveDlg->filePermCheck->isChecked() ) { | 835 | if( useAdvancedFfeatures ) { |
827 | filePermissions *filePerm; | 836 | filePermissions *filePerm; |
828 | filePerm = new filePermissions(this, tr("Permissions"),true,0,(const QString &)fileNm); | 837 | filePerm = new filePermissions(this, tr("Permissions"),true,0,(const QString &)fileNm); |
829 | filePerm->exec(); | 838 | filePerm->exec(); |
830 | 839 | ||
831 | if( filePerm) | 840 | if( filePerm) |
832 | delete filePerm; | 841 | delete filePerm; |
833 | // } | 842 | } |
834 | } | 843 | } |
835 | } | 844 | } |
836 | editor->setEdited(TRUE); | 845 | editor->setEdited(TRUE); |
837 | edited1=FALSE; | 846 | edited1=FALSE; |
838 | edited=TRUE; | 847 | edited=TRUE; |
839 | if(caption().left(1)=="*") | 848 | if(caption().left(1)=="*") |
840 | setCaption(caption().right(caption().length()-1)); | 849 | setCaption(caption().right(caption().length()-1)); |
841 | 850 | ||
842 | return true; | 851 | return true; |
843 | } //end saveAs | 852 | } //end saveAs |
844 | 853 | ||
845 | void TextEdit::clear() | 854 | void TextEdit::clear() |
846 | { | 855 | { |
847 | delete doc; | 856 | delete doc; |
848 | doc = 0; | 857 | doc = 0; |
849 | editor->clear(); | 858 | editor->clear(); |
850 | } | 859 | } |
851 | 860 | ||
852 | void TextEdit::updateCaption( const QString &name ) | 861 | void TextEdit::updateCaption( const QString &name ) |
853 | { | 862 | { |
854 | if ( !doc ) | 863 | if ( !doc ) |
855 | setCaption( tr("Text Editor") ); | 864 | setCaption( tr("Text Editor") ); |
856 | else { | 865 | else { |
857 | QString s = name; | 866 | QString s = name; |
@@ -945,24 +954,31 @@ void TextEdit::changeStartConfig( bool b ) { | |||
945 | update(); | 954 | update(); |
946 | } | 955 | } |
947 | 956 | ||
948 | void TextEdit::editorChanged() { | 957 | void TextEdit::editorChanged() { |
949 | if(editor->edited() && edited && !edited1) { | 958 | if(editor->edited() && edited && !edited1) { |
950 | setCaption( "*"+caption()); | 959 | setCaption( "*"+caption()); |
951 | edited1=TRUE; | 960 | edited1=TRUE; |
952 | } | 961 | } |
953 | edited=TRUE; | 962 | edited=TRUE; |
954 | } | 963 | } |
955 | 964 | ||
956 | void TextEdit::receive(const QCString&msg, const QByteArray&) { | 965 | void TextEdit::receive(const QCString&msg, const QByteArray&) { |
957 | qDebug("QCop "+msg); | 966 | qDebug("QCop "+msg); |
958 | if ( msg == "setDocument(QString)" ) { | 967 | if ( msg == "setDocument(QString)" ) { |
959 | qDebug("bugger all"); | 968 | qDebug("bugger all"); |
960 | } | 969 | } |
961 | 970 | ||
962 | } | 971 | } |
963 | void TextEdit::doAbout() { | 972 | void TextEdit::doAbout() { |
964 | QMessageBox::about(0,"Text Edit","Text Edit is copyright\n" | 973 | QMessageBox::about(0,"Text Edit","Text Edit is copyright\n" |
965 | "2000 Trolltech AS, and\n" | 974 | "2000 Trolltech AS, and\n" |
966 | "2002 by L.J.Potter \nljp@llornkcor.com\n" | 975 | "2002 by L.J.Potter \nljp@llornkcor.com\n" |
967 | "and is licensed under the GPL"); | 976 | "and is licensed under the GPL"); |
968 | } | 977 | } |
978 | |||
979 | void TextEdit::doAdvanced(bool b) { | ||
980 | useAdvancedFeatures=b; | ||
981 | Config cfg("TextEdit"); | ||
982 | cfg.setGroup("View"); | ||
983 | cfg.writeEntry("AdvancedFeatures",b); | ||
984 | } | ||
diff --git a/core/apps/textedit/textedit.h b/core/apps/textedit/textedit.h index 764d852..aec6427 100644 --- a/core/apps/textedit/textedit.h +++ b/core/apps/textedit/textedit.h | |||
@@ -36,60 +36,61 @@ | |||
36 | #include <qmultilineedit.h> | 36 | #include <qmultilineedit.h> |
37 | #include <qlist.h> | 37 | #include <qlist.h> |
38 | #include <qmap.h> | 38 | #include <qmap.h> |
39 | 39 | ||
40 | class QAction; | 40 | class QAction; |
41 | class QWidgetStack; | 41 | class QWidgetStack; |
42 | class QToolButton; | 42 | class QToolButton; |
43 | class QPopupMenu; | 43 | class QPopupMenu; |
44 | class QToolBar; | 44 | class QToolBar; |
45 | class QLineEdit; | 45 | class QLineEdit; |
46 | class QAction; | 46 | class QAction; |
47 | class FileSelector; | 47 | class FileSelector; |
48 | class QpeEditor; | 48 | class QpeEditor; |
49 | class QPopupMenu; | 49 | class QPopupMenu; |
50 | 50 | ||
51 | class TextEdit : public QMainWindow | 51 | class TextEdit : public QMainWindow |
52 | { | 52 | { |
53 | Q_OBJECT | 53 | Q_OBJECT |
54 | 54 | ||
55 | public: | 55 | public: |
56 | TextEdit( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); | 56 | TextEdit( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); |
57 | ~TextEdit(); | 57 | ~TextEdit(); |
58 | 58 | ||
59 | QPopupMenu *font; | 59 | QPopupMenu *font; |
60 | QAction *nStart, *nFileDlgOpt; | 60 | QAction *nStart, *nFileDlgOpt, *nAdvanced; |
61 | bool edited, edited1; | 61 | bool edited, edited1; |
62 | void openFile( const QString & ); | 62 | void openFile( const QString & ); |
63 | QCopChannel * channel; | 63 | QCopChannel * channel; |
64 | public slots: | 64 | public slots: |
65 | void editorChanged(); | 65 | void editorChanged(); |
66 | void receive(const QCString&, const QByteArray&); | 66 | void receive(const QCString&, const QByteArray&); |
67 | protected: | 67 | protected: |
68 | bool fileIs; | 68 | bool fileIs, useAdvancedFeatures; |
69 | void closeEvent( QCloseEvent *e ); | 69 | void closeEvent( QCloseEvent *e ); |
70 | void doSearchBar(); | 70 | void doSearchBar(); |
71 | private slots: | 71 | private slots: |
72 | void doAdvanced(bool); | ||
72 | void doAbout(); | 73 | void doAbout(); |
73 | void setDocument(const QString&); | 74 | void setDocument(const QString&); |
74 | void changeFont(); | 75 | void changeFont(); |
75 | void fileNew(); | 76 | void fileNew(); |
76 | void fileRevert(); | 77 | void fileRevert(); |
77 | void fileOpen(); | 78 | void fileOpen(); |
78 | void changeStartConfig(bool); | 79 | void changeStartConfig(bool); |
79 | bool save(); | 80 | bool save(); |
80 | bool saveAs(); | 81 | bool saveAs(); |
81 | void cleanUp(); | 82 | void cleanUp(); |
82 | 83 | ||
83 | 84 | ||
84 | void editCut(); | 85 | void editCut(); |
85 | void editCopy(); | 86 | void editCopy(); |
86 | void editPaste(); | 87 | void editPaste(); |
87 | void editFind(); | 88 | void editFind(); |
88 | void editDelete(); | 89 | void editDelete(); |
89 | 90 | ||
90 | void findNext(); | 91 | void findNext(); |
91 | void findClose(); | 92 | void findClose(); |
92 | 93 | ||
93 | void search(); | 94 | void search(); |
94 | void accept(); | 95 | void accept(); |
95 | 96 | ||