summaryrefslogtreecommitdiff
path: root/core/apps/textedit/textedit.cpp
Side-by-side diff
Diffstat (limited to 'core/apps/textedit/textedit.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/apps/textedit/textedit.cpp108
1 files changed, 39 insertions, 69 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);
- 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);
+ defaultFont = QFont ( family, size, weight, italic );
editor->setFont( defaultFont);
- wa->setOn(wrap);
updateCaption();
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");
+ cfg. setGroup ( "Font" );
QFont f = editor->font();
- cfg.writeEntry("FontSize",f.pointSize());
- cfg.writeEntry("Bold",f.bold());
+ 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);
+ 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 ( ));
- FontDialog *fontDlg;
- fontDlg=new FontDialog(this,tr("FontDialog"),TRUE);
-
- 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
}