Diffstat (limited to 'core/apps/textedit/textedit.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/apps/textedit/textedit.cpp | 124 |
1 files changed, 47 insertions, 77 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index f6a869a..7b50a6c 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp @@ -5,79 +5,81 @@ ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ // changes added by L. J. Potter Sun 02-17-2002 21:31:31 /* useAdvancedfeatures = 1) do not prompt on cancel, even if text is edited. 2) prompt user is .desktop file 3) prompt user for File Permissions on saveAs */ #include "textedit.h" #include "filePermissions.h" -#include "fontDialog.h" +//#include "fontDialog.h" #include <opie/ofileselector.h> #include <opie/ofiledialog.h> +#include <opie/ofontselector.h> #include <qpe/fontdatabase.h> #include <qpe/global.h> #include <qpe/fileselector.h> #include <qpe/applnk.h> #include <qpe/resource.h> #include <qpe/config.h> #include <qpe/qpeapplication.h> #include <qpe/qpemenubar.h> #include <qpe/qpetoolbar.h> #include <qpe/qcopenvelope_qws.h> #include <qdatetime.h> #include <qclipboard.h> #include <qstringlist.h> #include <qaction.h> #include <qcolordialog.h> #include <qfileinfo.h> #include <qlineedit.h> #include <qmessagebox.h> #include <qobjectlist.h> #include <qpopupmenu.h> #include <qspinbox.h> #include <qtoolbutton.h> #include <qwidgetstack.h> #include <qcheckbox.h> #include <qcombo.h> +#include <qlayout.h> #include <unistd.h> #include <sys/stat.h> #include <stdlib.h> //getenv /* XPM */ static char * filesave_xpm[] = { "16 16 78 1", " c None", ". c #343434", "+ c #A0A0A0", "@ c #565656", "# c #9E9E9E", "$ c #525252", "% c #929292", "& c #676767", "* c #848484", "= c #666666", "- c #D8D8D8", "; c #FFFFFF", "> c #DBDBDB", ", c #636363", "' c #989898", @@ -291,196 +293,176 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) a = new QAction( tr( "Copy" ), Resource::loadPixmap( "copy" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( editCopy() ) ); a->addTo( editBar ); a->addTo( edit ); a = new QAction( tr( "Paste" ), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) ); a->addTo( editBar ); a->addTo( edit ); #ifndef QT_NO_CLIPBOARD a = new QAction( tr( "Insert Time and Date" ), Resource::loadPixmap( "paste" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( editPasteTimeDate() ) ); a->addTo( edit ); #endif a = new QAction( tr( "Find..." ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( editFind() ) ); edit->insertSeparator(); a->addTo( bar ); a->addTo( edit ); - int defsize; - bool defb, defi, wrap; - - Config cfg("TextEdit"); - cfg.setGroup("View"); - defsize = cfg.readNumEntry("FontSize",10); - defb = cfg.readBoolEntry("Bold",FALSE); - defi = cfg.readBoolEntry("Italic",FALSE); - wrap = cfg.readBoolEntry("Wrap",TRUE); zin = new QAction( tr("Zoom in"), QString::null, 0, this, 0 ); connect( zin, SIGNAL( activated() ), this, SLOT( zoomIn() ) ); zin->addTo( font ); zout = new QAction( tr("Zoom out"), QString::null, 0, this, 0 ); connect( zout, SIGNAL( activated() ), this, SLOT( zoomOut() ) ); zout->addTo( font ); font->insertSeparator(); -#if 0 - QAction *ba = new QAction( tr("Bold"), QString::null, 0, this, 0 ); - connect( ba, SIGNAL( toggled(bool) ), this, SLOT( setBold(bool) ) ); - ba->setToggleAction(TRUE); - ba->addTo( font ); - - QAction *ia = new QAction( tr("Italic"), QString::null, 0, this, 0 ); - connect( ia, SIGNAL( toggled(bool) ), this, SLOT( setItalic(bool) ) ); - ia->setToggleAction(TRUE); - ia->addTo( font ); - - ba->setOn(defb); - ia->setOn(defi); - - font->insertSeparator(); -#endif - QAction *wa = new QAction( tr("Wrap lines"), QString::null, 0, this, 0 ); connect( wa, SIGNAL( toggled(bool) ), this, SLOT( setWordWrap(bool) ) ); wa->setToggleAction(TRUE); wa->addTo( font ); font->insertSeparator(); font->insertItem(tr("Font"), this, SLOT(changeFont()) ); font->insertSeparator(); nStart = new QAction( tr("Start with new file"), QString::null, 0, this, 0 ); connect( nStart, SIGNAL( toggled(bool) ), this, SLOT( changeStartConfig(bool) ) ); nStart->setToggleAction(TRUE); nStart->addTo( font ); nAdvanced = new QAction( tr("Advanced features"), QString::null, 0, this, 0 ); connect( nAdvanced, SIGNAL( toggled(bool) ), this, SLOT( doAdvanced(bool) ) ); nAdvanced->setToggleAction(TRUE); nAdvanced->addTo( font ); - if(cfg.readBoolEntry("AdvancedFeatures")) { - qDebug("using advanced features"); - useAdvancedFeatures = true; - nAdvanced->setOn(TRUE); - } else - useAdvancedFeatures = false; font->insertSeparator(); font->insertItem(tr("About"), this, SLOT( doAbout()) ); mb->insertItem( tr( "File" ), file ); mb->insertItem( tr( "Edit" ), edit ); mb->insertItem( tr( "View" ), font ); searchBar = new QPEToolBar(this); addToolBar( searchBar, "Search", QMainWindow::Top, TRUE ); searchBar->setHorizontalStretchable( TRUE ); searchEdit = new QLineEdit( searchBar, "searchEdit" ); searchBar->setStretchableWidget( searchEdit ); connect( searchEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( search() ) ); a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); a->addTo( searchBar ); a->addTo( edit ); a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); a->addTo( searchBar ); edit->insertSeparator(); a = new QAction( tr( "Delete" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); connect( a, SIGNAL( activated() ), this, SLOT( editDelete() ) ); a->addTo( edit ); searchBar->hide(); editor = new QpeEditor( this ); setCentralWidget( editor ); editor->setFrameStyle( QFrame::Panel | QFrame::Sunken ); connect( editor, SIGNAL( textChanged() ), this, SLOT( editorChanged() ) ); -// resize( 200, 300 ); + Config cfg("TextEdit"); + + cfg. setGroup ( "Font" ); -// setFontSize(defsize,TRUE); - FontDatabase fdb; - QFont defaultFont=editor->font(); - QFontInfo fontInfo(defaultFont); + QFont defaultFont = editor-> font ( ); - cfg.setGroup("Font"); - QString family = cfg.readEntry("Family", fontInfo.family()); - QString style = cfg.readEntry("Style", fdb.styleString(defaultFont)); - int i_size = cfg.readNumEntry("Size", fontInfo.pointSize()/10); - QString charSet = cfg.readEntry("CharSet", QFont::encodingName( fontInfo.charSet()) ); + QString family = cfg. readEntry ( "Family", defaultFont. family ( )); + int size = cfg. readNumEntry ( "Size", defaultFont. pointSize ( )); + int weight = cfg. readNumEntry ( "Weight", defaultFont. weight ( )); + bool italic = cfg. readBoolEntry ( "Italic", defaultFont. italic ( )); - defaultFont = fdb.font(family,style,i_size,charSet); - editor->setFont( defaultFont); + defaultFont = QFont ( family, size, weight, italic ); + editor-> setFont ( defaultFont ); - wa->setOn(wrap); updateCaption(); - cfg.setGroup("View"); + cfg.setGroup ( "View" ); + + useAdvancedFeatures = cfg. readBoolEntry ( "AdvancedFeatures", false ); + + if ( useAdvancedFeatures ) + nAdvanced-> setOn ( true ); + + bool wrap = cfg. readBoolEntry ( "Wrap", true ); + wa-> setOn ( wrap ); + setWordWrap ( wrap ); + if(cfg.readEntry("startNew","TRUE") == "TRUE") { nStart->setOn(TRUE); fileNew(); } else { fileOpen(); } viewSelection = cfg.readNumEntry( "FileView", 0 ); } TextEdit::~TextEdit() { if( edited1 & !useAdvancedFeatures ) saveAs(); } void TextEdit::cleanUp() { -qDebug("cleanUp");// save(); - Config cfg("TextEdit"); - cfg.setGroup("View"); + qDebug("cleanUp");// save(); + + Config cfg ( "TextEdit" ); + cfg. setGroup ( "Font" ); QFont f = editor->font(); - cfg.writeEntry("FontSize",f.pointSize()); - cfg.writeEntry("Bold",f.bold()); - cfg.writeEntry("Italic",f.italic()); - cfg.writeEntry("Wrap",editor->wordWrap() == QMultiLineEdit::WidgetWidth); - cfg.writeEntry( "FileView", viewSelection ); + cfg. writeEntry ( "Family", f. family ( )); + cfg. writeEntry ( "Size", f. pointSize ( )); + cfg. writeEntry ( "Weight", f. weight ( )); + cfg. writeEntry ( "Italic", f. italic ( )); + + cfg. setGroup ( "View" ); + cfg. writeEntry ( "Wrap", editor-> wordWrap ( ) == QMultiLineEdit::WidgetWidth ); + cfg. writeEntry ( "FileView", viewSelection ); + cfg. writeEntry ( "AdvancedFeatures", useAdvancedFeatures ); } void TextEdit::accept() { if( edited1) saveAs(); exit(0); } void TextEdit::zoomIn() { setFontSize(editor->font().pointSize()+1,FALSE); } void TextEdit::zoomOut() { setFontSize(editor->font().pointSize()-1,TRUE); } void TextEdit::setFontSize(int sz, bool round_down_not_up) { int s=10; for (int i=0; i<nfontsizes; i++) { if ( fontsize[i] == sz ) { s = sz; break; @@ -879,68 +861,59 @@ void TextEdit::updateCaption( const QString &name ) { s = tr( "Unnamed" ); currentFileName=s; } if(s.left(1) == "/") s = s.right(s.length()-1); setCaption( s + " - " + tr("Text Editor") ); } } void TextEdit::setDocument(const QString& fileref) { bFromDocView = TRUE; openFile(fileref); editor->setEdited(TRUE); edited1=FALSE; edited=TRUE; doSearchBar(); } void TextEdit::closeEvent( QCloseEvent *e ) { bFromDocView = FALSE; e->accept(); } void TextEdit::changeFont() { - FontDatabase fdb; - QFont defaultFont=editor->font(); - QFontInfo fontInfo(defaultFont); - Config cfg("TextEdit"); - cfg.setGroup("Font"); - QString family = cfg.readEntry("Family", fontInfo.family()); - QString style = cfg.readEntry("Style", fdb.styleString(defaultFont)); - int i_size = cfg.readNumEntry("Size", fontInfo.pointSize()/10); - QString charSet = cfg.readEntry("CharSet", QFont::encodingName( fontInfo.charSet()) ); - - defaultFont = fdb.font(family,style,i_size,charSet); - - FontDialog *fontDlg; - fontDlg=new FontDialog(this,tr("FontDialog"),TRUE); + QDialog *d = new QDialog ( this, "FontDialog", true ); + d-> setCaption ( tr( "Choose font" )); + QBoxLayout *lay = new QVBoxLayout ( d ); + OFontSelector *ofs = new OFontSelector ( true, d ); + lay-> addWidget ( ofs ); + ofs-> setSelectedFont ( editor-> font ( )); - fontDlg->exec(); - - QFont myFont=fontDlg->selectedFont; - editor->setFont( myFont); - delete fontDlg; + d-> showMaximized ( ); + if ( d-> exec ( ) == QDialog::Accepted ) + editor-> setFont ( ofs-> selectedFont ( )); + delete d; } void TextEdit::editDelete() { switch ( QMessageBox::warning(this,tr("Text Editor"),tr("Do you really want<BR>to <B>delete</B> the current file\nfrom the disk?<BR>This is <B>irreversable!!</B>"),tr("Yes"),tr("No"),0,0,1) ) { case 0: if(doc) { doc->removeFiles(); clear(); setCaption( tr("Text Editor") ); } break; case 1: // exit break; }; } void TextEdit::changeStartConfig( bool b ) { Config cfg("TextEdit"); cfg.setGroup("View"); if(b) { qDebug("bool"); @@ -954,37 +927,34 @@ void TextEdit::changeStartConfig( bool b ) { void TextEdit::editorChanged() { if(editor->edited() && edited && !edited1) { setCaption( "*"+caption()); edited1=TRUE; } edited=TRUE; } void TextEdit::receive(const QCString&msg, const QByteArray&) { qDebug("QCop "+msg); if ( msg == "setDocument(QString)" ) { qDebug("bugger all"); } } void TextEdit::doAbout() { QMessageBox::about(0,tr("Text Edit"),tr("Text Edit is copyright<BR>" "2000 Trolltech AS, and<BR>" "2002 by <B>L. J. Potter <BR>llornkcor@handhelds.org</B><BR>" "and is licensed under the GPL")); } void TextEdit::doAdvanced(bool b) { useAdvancedFeatures=b; - Config cfg("TextEdit"); - cfg.setGroup("View"); - cfg.writeEntry("AdvancedFeatures",b); } void TextEdit::editPasteTimeDate() { #ifndef QT_NO_CLIPBOARD QClipboard *cb = QApplication::clipboard(); QDateTime dt = QDateTime::currentDateTime(); cb->setText( dt.toString()); editor->paste(); #endif } |