Diffstat (limited to 'core/apps/textedit/textedit.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/apps/textedit/textedit.cpp | 214 |
1 files changed, 147 insertions, 67 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index e3b8361..464671a 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp @@ -40,12 +40,13 @@ #include <qpe/config.h> #include <qpe/qpeapplication.h> #include <qpe/qpemenubar.h> #include <qpe/qpetoolbar.h> #include <qpe/qcopenvelope_qws.h> +#include <qtextstream.h> #include <qdatetime.h> #include <qclipboard.h> #include <qstringlist.h> #include <qaction.h> #include <qcolordialog.h> #include <qfileinfo.h> @@ -56,13 +57,13 @@ #include <qspinbox.h> #include <qtoolbutton.h> #include <qwidgetstack.h> #include <qcheckbox.h> #include <qcombo.h> #include <qlayout.h> - +#include <qapplication.h> #include <unistd.h> #include <sys/stat.h> #include <stdlib.h> //getenv /* XPM */ @@ -168,17 +169,16 @@ static char * filesave_xpm[] = { class QpeEditor : public QMultiLineEdit { // Q_OBJECT public: QpeEditor( QWidget *parent, const char * name = 0 ) - : QMultiLineEdit( parent, name ) - { + : QMultiLineEdit( parent, name ) { clearTableFlags(); setTableFlags( Tbl_vScrollBar | Tbl_autoHScrollBar ); - } +} void find( const QString &txt, bool caseSensitive, bool backwards ); //public slots: /* signals: @@ -221,15 +221,13 @@ void QpeEditor::find ( const QString &txt, bool caseSensitive, //found = TRUE; break; } line++; col = 0; } - } - } #else #error "Must make a QpeEditor that inherits QTextEdit" @@ -354,12 +352,18 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) filePermAction = new QAction( tr("File Permissions"), QString::null, 0, this, 0 ); connect( filePermAction, SIGNAL( toggled(bool) ), this, SLOT( doFilePerms(bool) ) ); filePermAction->setToggleAction(TRUE); filePermAction->addTo( advancedMenu); + searchBarAction = new QAction( tr("Search Bar Open"), QString::null, 0, this, 0 ); + connect( searchBarAction, SIGNAL( toggled(bool) ), this, SLOT( setSearchBar(bool) ) ); + searchBarAction->setToggleAction(TRUE); + searchBarAction->addTo( advancedMenu); + + font->insertSeparator(); font->insertItem(tr("About"), this, SLOT( doAbout()) ); mb->insertItem( tr( "File" ), file ); mb->insertItem( tr( "Edit" ), edit ); @@ -407,35 +411,55 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) int weight = cfg. readNumEntry ( "Weight", defaultFont. weight ( )); bool italic = cfg. readBoolEntry ( "Italic", defaultFont. italic ( )); defaultFont = QFont ( family, size, weight, italic ); editor-> setFont ( defaultFont ); - updateCaption(); +// updateCaption(); cfg.setGroup ( "View" ); - promptExit = cfg. readBoolEntry ( "PromptExit", false ); - openDesktop = cfg. readBoolEntry ( "OpenDesktop", true ); - filePerms = cfg. readBoolEntry ( "FilePermissions", false ); - + promptExit = cfg.readBoolEntry ( "PromptExit", false ); + openDesktop = cfg.readBoolEntry ( "OpenDesktop", true ); + filePerms = cfg.readBoolEntry ( "FilePermissions", false ); + useSearchBar = cfg.readBoolEntry ( "SearchBar", false ); + + if(useSearchBar) { + searchBarAction->setOn(true); + } else{ + } if(promptExit ) nAdvanced->setOn ( true ); if(openDesktop) desktopAction->setOn ( true ); if(filePerms) filePermAction->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(); - } - + if( qApp->argc() > 0) { + currentFileName=qApp->argv()[1]; +// qDebug("<<<<<<<<<<<<<<<<<<<<<<<< "+currentFileName); + QFileInfo fi(currentFileName); + + if(fi.baseName().left(1) == "") { + openDotFile(currentFileName); + } else { + + nStart->setOn(TRUE); + openFile(currentFileName); + } + } else + if(cfg.readEntry("startNew","TRUE") == "TRUE") { + + nStart->setOn(TRUE); + fileNew(); + } else { + + fileOpen(); + } + viewSelection = cfg.readNumEntry( "FileView", 0 ); } TextEdit::~TextEdit() { if( edited1 & promptExit ) saveAs(); @@ -444,24 +468,25 @@ TextEdit::~TextEdit() { void TextEdit::cleanUp() { qDebug("cleanUp");// save(); Config cfg ( "TextEdit" ); cfg. setGroup ( "Font" ); QFont f = editor->font(); - cfg. writeEntry ( "Family", f. family ( )); - cfg. writeEntry ( "Size", f. pointSize ( )); - cfg. writeEntry ( "Weight", f. weight ( )); - cfg. writeEntry ( "Italic", f. italic ( )); + 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.setGroup ( "View" ); + cfg.writeEntry ( "Wrap", editor-> wordWrap ( ) == QMultiLineEdit::WidgetWidth ); + cfg.writeEntry ( "FileView", viewSelection ); - cfg. writeEntry ( "PromptExit", promptExit ); - cfg. writeEntry ( "OpenDesktop", openDesktop ); - cfg. writeEntry ( "FilePermissions", filePerms ); + cfg.writeEntry ( "PromptExit", promptExit ); + cfg.writeEntry ( "OpenDesktop", openDesktop ); + cfg.writeEntry ( "FilePermissions", filePerms ); + cfg.writeEntry ( "SearchBar", useSearchBar ); } void TextEdit::accept() { if( edited1) saveAs(); @@ -517,12 +542,25 @@ void TextEdit::setItalic(bool y) { void TextEdit::setWordWrap(bool y) { bool state = editor->edited(); editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap ); editor->setEdited( state ); } +void TextEdit::setSearchBar(bool b) { + useSearchBar=b; + Config cfg("TextEdit"); + cfg.setGroup("View"); + cfg.writeEntry ( "SearchBar", b ); + searchBarAction->setOn(b); + if(b) + searchBar->show(); + else + searchBar->hide(); + editor->setFocus(); +} + void TextEdit::fileNew() { // if( !bFromDocView ) { // saveAs(); // } newFile(DocLnk()); } @@ -543,16 +581,16 @@ void TextEdit::fileOpen() { if(!str.isEmpty() ) openFile( str ); } void TextEdit::doSearchBar() { - Config cfg("TextEdit"); - cfg.setGroup("View"); - if(cfg.readEntry("SearchBar","Closed") != "Opened") + if(!useSearchBar) searchBar->hide(); + else + searchBar->show(); } #if 0 void TextEdit::slotFind() { FindDialog frmFind( tr("Text Editor"), this ); connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), @@ -595,30 +633,30 @@ void TextEdit::editPaste() { } void TextEdit::editFind() { searchBar->show(); searchVisible = TRUE; searchEdit->setFocus(); - Config cfg("TextEdit"); - cfg.setGroup("View"); - cfg.writeEntry("SearchBar","Opened"); +// Config cfg("TextEdit"); +// cfg.setGroup("View"); +// cfg.writeEntry("SearchBar","Opened"); } void TextEdit::findNext() { editor->find( searchEdit->text(), FALSE, FALSE ); } void TextEdit::findClose() { searchVisible = FALSE; searchBar->hide(); - Config cfg("TextEdit"); - cfg.setGroup("View"); - cfg.writeEntry("SearchBar","Closed"); - cfg.write(); +// Config cfg("TextEdit"); +// cfg.setGroup("View"); +// cfg.writeEntry("SearchBar","Closed"); +// cfg.write(); } void TextEdit::search() { editor->find( searchEdit->text(), FALSE, FALSE ); } @@ -632,45 +670,72 @@ void TextEdit::newFile( const DocLnk &f ) { currentFileName = "Unnamed"; qDebug("newFile "+currentFileName); updateCaption( currentFileName); // editor->setEdited( FALSE); } +void TextEdit::openDotFile( const QString &f ) { + if(!currentFileName.isEmpty()) { + currentFileName=f; + + qDebug("openFile dotfile " + currentFileName); + QString txt; + QFile file(f); + file.open(IO_ReadWrite); + QTextStream t(&file); + while ( !t.atEnd()) { + txt+=t.readLine(); + } + editor->setText(txt); + editor->setEdited( FALSE); + edited1=FALSE; + edited=FALSE; + + + } + updateCaption( currentFileName); +} + void TextEdit::openFile( const QString &f ) { qDebug("filename is "+ f); QString filer; + QFileInfo fi( f); // bFromDocView = TRUE; if(f.find(".desktop",0,TRUE) != -1 && !openDesktop) { switch ( QMessageBox::warning(this,tr("Text Editor"), - tr("Text Editor has detected<BR>you selected a <B>.desktop</B> + 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) ) { + tr(".desktop File"),tr("Linked Document"),0,1,1) ) { case 0: filer = f; break; case 1: DocLnk sf(f); filer = sf.file(); break; } + } else if(fi.baseName().left(1) == "") { + currentFileName=f; + openDotFile(currentFileName); } else { - DocLnk sf(f); - filer = sf.file(); - if(filer.right(1) == "/") - filer = f; + DocLnk sf(f); + filer = sf.file(); + if(filer.right(1) == "/") + filer = f; } DocLnk nf; nf.setType("text/plain"); nf.setFile(filer); currentFileName=filer; - QFileInfo fi( currentFileName); - nf.setName(fi.baseName()); - qDebug("openFile string "+currentFileName); - openFile(nf); + nf.setName(fi.baseName()); + openFile(nf); + + qDebug("openFile string "+currentFileName); + showEditTools(); // Show filename in caption QString name = filer; int sep = name.findRev( '/' ); if ( sep > 0 ) name = name.mid( sep+1 ); @@ -705,13 +770,13 @@ void TextEdit::showEditTools() { // if ( !doc ) // close(); // clear(); menu->show(); editBar->show(); if ( searchVisible ) - searchBar->show(); + searchBar->show(); // updateCaption(); setWState (WState_Reserved1 ); } /*! unprompted save */ @@ -873,35 +938,49 @@ void TextEdit::clear() { delete doc; doc = 0; editor->clear(); } void TextEdit::updateCaption( const QString &name ) { - if ( !doc ) - setCaption( tr("Text Editor") ); + + if ( name.isEmpty() ) + setCaption( tr("Text Editor") ); else { - QString s = name; - if ( s.isNull() ) - s = doc->name(); - if ( s.isEmpty() ) { - s = tr( "Unnamed" ); - currentFileName=s; - } - if(s.left(1) == "/") - s = s.right(s.length()-1); - setCaption( s + " - " + tr("Text Editor") ); + QString s = name; + if ( s.isNull() ) + s = doc->name(); + if ( s.isEmpty() ) { + 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(); + if(fileref != "Unnamed") { + currentFileName=fileref; + qDebug("setDocument"); + QFileInfo fi(currentFileName); + qDebug("basename:"+fi.baseName()+": current filenmame "+currentFileName); + if(fi.baseName().left(1) == "") { +// openDotFile(currentFileName); + } else { + qDebug("setDoc open"); + bFromDocView = TRUE; + openFile(fileref); + editor->setEdited(TRUE); + edited1=FALSE; + edited=TRUE; + +// doSearchBar(); + } + } + updateCaption( currentFileName); } void TextEdit::closeEvent( QCloseEvent *e ) { bFromDocView = FALSE; e->accept(); } @@ -997,6 +1076,7 @@ void TextEdit::editPasteTimeDate() { QClipboard *cb = QApplication::clipboard(); QDateTime dt = QDateTime::currentDateTime(); cb->setText( dt.toString()); editor->paste(); #endif } + |