author | llornkcor <llornkcor> | 2002-11-09 23:11:09 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-11-09 23:11:09 (UTC) |
commit | 0c81c6287771d5ad416c2ddf0ae32ad5ce18c116 (patch) (side-by-side diff) | |
tree | 9e565161740031ed63f51ce09377b7e2ef2bb4a7 /core/apps/textedit/textedit.cpp | |
parent | c1f59c3404e9c0312e3d0418d5286b12d2e98d92 (diff) | |
download | opie-0c81c6287771d5ad416c2ddf0ae32ad5ce18c116.zip opie-0c81c6287771d5ad416c2ddf0ae32ad5ce18c116.tar.gz opie-0c81c6287771d5ad416c2ddf0ae32ad5ce18c116.tar.bz2 |
various fixes.. saveAs and quit stuff
Diffstat (limited to 'core/apps/textedit/textedit.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/apps/textedit/textedit.cpp | 281 |
1 files changed, 136 insertions, 145 deletions
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index 464671a..1c3b393 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp @@ -185,85 +185,85 @@ signals: void notFound(); void searchWrapped(); */ private: }; void QpeEditor::find ( const QString &txt, bool caseSensitive, bool backwards ) { - static bool wrap = FALSE; + static bool wrap = false; int line, col; if ( wrap ) { if ( !backwards ) line = col = 0; - wrap = FALSE; + wrap = false; // emit searchWrapped(); } else { getCursorPosition( &line, &col ); } //ignore backwards for now.... if ( !backwards ) { for ( ; ; ) { if ( line >= numLines() ) { - wrap = TRUE; + wrap = true; //emit notFound(); break; } int findCol = getString( line )->find( txt, col, caseSensitive ); if ( findCol >= 0 ) { - setCursorPosition( line, findCol, FALSE ); + setCursorPosition( line, findCol, false ); col = findCol + txt.length(); - setCursorPosition( line, col, TRUE ); + setCursorPosition( line, col, true ); - //found = TRUE; + //found = true; break; } line++; col = 0; } } } #else #error "Must make a QpeEditor that inherits QTextEdit" #endif static const int nfontsizes = 6; static const int fontsize[nfontsizes] = {8,10,12,14,18,24}; TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) - : QMainWindow( parent, name, f ), bFromDocView( FALSE ) + : QMainWindow( parent, name, f ), bFromDocView( false ) { doc = 0; - edited=FALSE; - edited1=FALSE; - setToolBarsMovable( FALSE ); + edited=false; + edited1=false; + setToolBarsMovable( false ); connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); channel = new QCopChannel( "QPE/Application/textedit", this ); connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), this, SLOT(receive(const QCString&, const QByteArray&)) ); setIcon( Resource::loadPixmap( "TextEditor" ) ); QPEToolBar *bar = new QPEToolBar( this ); - bar->setHorizontalStretchable( TRUE ); + bar->setHorizontalStretchable( true ); menu = bar; QPEMenuBar *mb = new QPEMenuBar( bar ); QPopupMenu *file = new QPopupMenu( this ); QPopupMenu *edit = new QPopupMenu( this ); QPopupMenu *advancedMenu = new QPopupMenu(this); font = new QPopupMenu( this ); bar = new QPEToolBar( this ); editBar = bar; @@ -323,65 +323,65 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) connect( zout, SIGNAL( activated() ), this, SLOT( zoomOut() ) ); zout->addTo( font ); font->insertSeparator(); // font->insertSeparator(); font->insertItem(tr("Font"), this, SLOT(changeFont()) ); font->insertSeparator(); font->insertItem(tr("Advanced Features"), advancedMenu); 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->setToggleAction(true); wa->addTo( advancedMenu); 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->setToggleAction(true); nStart->addTo( advancedMenu ); nAdvanced = new QAction( tr("Prompt on Exit"), QString::null, 0, this, 0 ); connect( nAdvanced, SIGNAL( toggled(bool) ), this, SLOT( doPrompt(bool) ) ); - nAdvanced->setToggleAction(TRUE); + nAdvanced->setToggleAction(true); nAdvanced->addTo( advancedMenu ); desktopAction = new QAction( tr("Always open linked file"), QString::null, 0, this, 0 ); connect( desktopAction, SIGNAL( toggled(bool) ), this, SLOT( doDesktop(bool) ) ); - desktopAction->setToggleAction(TRUE); + desktopAction->setToggleAction(true); desktopAction->addTo( advancedMenu); filePermAction = new QAction( tr("File Permissions"), QString::null, 0, this, 0 ); connect( filePermAction, SIGNAL( toggled(bool) ), this, SLOT( doFilePerms(bool) ) ); - filePermAction->setToggleAction(TRUE); + 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->setToggleAction(true); searchBarAction->addTo( advancedMenu); 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 ); + addToolBar( searchBar, "Search", QMainWindow::Top, true ); - searchBar->setHorizontalStretchable( 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 ); @@ -413,101 +413,107 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) defaultFont = QFont ( family, size, weight, italic ); editor-> setFont ( defaultFont ); // updateCaption(); cfg.setGroup ( "View" ); 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 ); + startWithNew = cfg.readBoolEntry ( "startNew", true); + + if(useSearchBar) searchBarAction->setOn(true); + if(promptExit ) nAdvanced->setOn( true ); + if(openDesktop) desktopAction->setOn( true ); + if(filePerms) filePermAction->setOn( true ); + if(startWithNew) nStart->setOn( true ); bool wrap = cfg. readBoolEntry ( "Wrap", true ); wa-> setOn ( wrap ); setWordWrap ( wrap ); - 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") { + if( qApp->argc() > 1) { + currentFileName=qApp->argv()[1]; +// qDebug("<<<<<<<<<<<<<<<<<<<<<<<< "+currentFileName+" %d",qApp->argc()); + QFileInfo fi(currentFileName); - nStart->setOn(TRUE); - fileNew(); + if(fi.baseName().left(1) == "") { + openDotFile(currentFileName); + } else { + openFile(currentFileName); + } } else { - - fileOpen(); +// qDebug("Do other thing"); + if(startWithNew) { + openDotFile(""); +// fileNew(); + } else { + fileOpen(); + } } viewSelection = cfg.readNumEntry( "FileView", 0 ); } TextEdit::~TextEdit() { - if( edited1 & promptExit ) - saveAs(); +// qDebug("destr"); +} + +void TextEdit::closeEvent(QCloseEvent *) { +// qDebug("closing here"); + if( edited1 && promptExit) + saveAs(); + qApp->quit(); } void TextEdit::cleanUp() { - qDebug("cleanUp");// save(); +// 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.setGroup ( "View" ); - cfg.writeEntry ( "Wrap", editor-> wordWrap ( ) == QMultiLineEdit::WidgetWidth ); + 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 ( "SearchBar", useSearchBar ); + cfg.writeEntry ( "startNew", startWithNew ); + } void TextEdit::accept() { - if( edited1) - saveAs(); - exit(0); +// qDebug("accept"); + if( edited1) + saveAs(); + qApp->quit(); } void TextEdit::zoomIn() { - setFontSize(editor->font().pointSize()+1,FALSE); + setFontSize(editor->font().pointSize()+1,false); } void TextEdit::zoomOut() { - setFontSize(editor->font().pointSize()-1,TRUE); + 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; } else if ( round_down_not_up ) { if ( fontsize[i] < sz ) s = fontsize[i]; @@ -557,39 +563,38 @@ void TextEdit::setSearchBar(bool b) { searchBar->hide(); editor->setFocus(); } void TextEdit::fileNew() { // if( !bFromDocView ) { // saveAs(); // } newFile(DocLnk()); } void TextEdit::fileOpen() { - Config cfg("TextEdit"); - cfg.setGroup("View"); - // bool b=FALSE; - QMap<QString, QStringList> map; map.insert(tr("All"), QStringList() ); QStringList text; text << "text/*"; map.insert(tr("Text"), text ); text << "*"; map.insert(tr("All"), text ); - QString str = OFileDialog::getOpenFileName( 2, QPEApplication::documentDir(), QString::null, map); + QString str = OFileDialog::getOpenFileName( 2, + QPEApplication::documentDir(), + QString::null, map); if(!str.isEmpty() ) openFile( str ); - + else + updateCaption(); } void TextEdit::doSearchBar() { if(!useSearchBar) searchBar->hide(); else searchBar->show(); } #if 0 void TextEdit::slotFind() { FindDialog frmFind( tr("Text Editor"), this ); @@ -625,91 +630,81 @@ void TextEdit::editCopy() { editor->copy(); #endif } void TextEdit::editPaste() { #ifndef QT_NO_CLIPBOARD editor->paste(); #endif } void TextEdit::editFind() { searchBar->show(); - searchVisible = TRUE; searchEdit->setFocus(); -// Config cfg("TextEdit"); -// cfg.setGroup("View"); -// cfg.writeEntry("SearchBar","Opened"); - } void TextEdit::findNext() { - editor->find( searchEdit->text(), FALSE, FALSE ); + 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(); } void TextEdit::search() { - editor->find( searchEdit->text(), FALSE, FALSE ); + editor->find( searchEdit->text(), false, false ); } void TextEdit::newFile( const DocLnk &f ) { DocLnk nf = f; nf.setType("text/plain"); clear(); setWState (WState_Reserved1 ); editor->setFocus(); doc = new DocLnk(nf); currentFileName = "Unnamed"; qDebug("newFile "+currentFileName); updateCaption( currentFileName); -// editor->setEdited( FALSE); +// 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; + 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) { +// 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> file.<BR>Open <B>.desktop</B> file or <B>linked</B> file?"), tr(".desktop File"),tr("Linked Document"),0,1,1) ) { case 0: filer = f; break; case 1: DocLnk sf(f); filer = sf.file(); break; } @@ -735,55 +730,53 @@ file.<BR>Open <B>.desktop</B> file or <B>linked</B> file?"), showEditTools(); // Show filename in caption QString name = filer; int sep = name.findRev( '/' ); if ( sep > 0 ) name = name.mid( sep+1 ); updateCaption( name ); } void TextEdit::openFile( const DocLnk &f ) { // clear(); -// bFromDocView = TRUE; +// bFromDocView = true; FileManager fm; QString txt; currentFileName=f.file(); qDebug("openFile doclnk " + currentFileName); if ( !fm.loadFile( f, txt ) ) { // ####### could be a new file qDebug( "Cannot open file" ); } // fileNew(); if ( doc ) delete doc; doc = new DocLnk(f); editor->setText(txt); - editor->setEdited( FALSE); - edited1=FALSE; - edited=FALSE; + editor->setEdited( false); + edited1=false; + edited=false; doc->setName(currentFileName); updateCaption(); } void TextEdit::showEditTools() { -// if ( !doc ) -// close(); -// clear(); menu->show(); editBar->show(); - if ( searchVisible ) + if(!useSearchBar) + searchBar->hide(); + else searchBar->show(); -// updateCaption(); setWState (WState_Reserved1 ); } /*! unprompted save */ bool TextEdit::save() { QString file = doc->file(); qDebug("saver file "+file); QString name= doc->name(); qDebug("File named "+name); QString rt = editor->text(); if( !rt.isEmpty() ) { @@ -807,130 +800,138 @@ bool TextEdit::save() { } else { qDebug("regular save file"); QFile f(file); if( f.open(IO_WriteOnly)) { QCString crt = rt.utf8(); f.writeBlock(crt,crt.length()); } else { QMessageBox::message(tr("Text Edit"),tr("Write Failed")); return false; } } - editor->setEdited( FALSE); - edited1=FALSE; - edited=FALSE; + editor->setEdited( false); + edited1=false; + edited=false; if(caption().left(1)=="*") setCaption(caption().right(caption().length()-1)); chmod( file.latin1(), mode); } return true; } return false; } /*! prompted save */ bool TextEdit::saveAs() { qDebug("saveAsFile " + currentFileName); // case of nothing to save... - if ( !doc ) { -//|| !bFromDocView) - qDebug("no doc"); - return true; - } - if ( !editor->edited() ) { - delete doc; - doc = 0; - return true; - } +// if ( !doc && !currentFileName.isEmpty()) { +// //|| !bFromDocView) +// qDebug("no doc"); +// return true; +// } +// if ( !editor->edited() ) { +// delete doc; +// doc = 0; +// return true; +// } QString rt = editor->text(); qDebug(currentFileName); if( currentFileName.isEmpty() || currentFileName == tr("Unnamed") || currentFileName == tr("Text Editor")) { -// qDebug("do silly TT filename thing"); - if ( doc->name().isEmpty() ) { - QString pt = rt.simplifyWhiteSpace(); - int i = pt.find( ' ' ); - QString docname = pt; - if ( i > 0 ) - docname = pt.left( i ); - // remove "." at the beginning - while( docname.startsWith( "." ) ) - docname = docname.mid( 1 ); - docname.replace( QRegExp("/"), "_" ); - // cut the length. filenames longer than that - //don't make sense and something goes wrong when they get too long. - if ( docname.length() > 40 ) - docname = docname.left(40); - if ( docname.isEmpty() ) - docname = tr("Unnamed"); - doc->setName(docname); - currentFileName=docname; - } + qDebug("do silly TT filename thing"); +// if ( doc && doc->name().isEmpty() ) { + QString pt = rt.simplifyWhiteSpace(); + int i = pt.find( ' ' ); + QString docname = pt; + if ( i > 0 ) + docname = pt.left( i ); + // remove "." at the beginning + while( docname.startsWith( "." ) ) + docname = docname.mid( 1 ); + docname.replace( QRegExp("/"), "_" ); + // cut the length. filenames longer than that + //don't make sense and something goes wrong when they get too long. + if ( docname.length() > 40 ) + docname = docname.left(40); + if ( docname.isEmpty() ) + docname = tr("Unnamed"); + if(doc) doc->setName(docname); + currentFileName=docname; +// } +// else +// qDebug("hmmmmmm"); } + QMap<QString, QStringList> map; map.insert(tr("All"), QStringList() ); QStringList text; text << "text/*"; map.insert(tr("Text"), text ); text << "*"; map.insert(tr("All"), text ); -// if(currentFileName + + QFileInfo cuFi( currentFileName); + QString filee = cuFi.fileName(); + QString dire = cuFi.dirPath(); + if(dire==".") + dire = QPEApplication::documentDir(); QString str = OFileDialog::getSaveFileName( 2, - QPEApplication::documentDir(), - currentFileName, map); + dire, + filee, map); - if(!str.isEmpty() ) { + if(!str.isEmpty()) { QString fileNm=str; qDebug("saving filename "+fileNm); QFileInfo fi(fileNm); currentFileName=fi.fileName(); - if(doc) { + if(doc) // QString file = doc->file(); // doc->removeFiles(); delete doc; DocLnk nf; nf.setType("text/plain"); nf.setFile( fileNm); doc = new DocLnk(nf); // editor->setText(rt); -// qDebug("openFile doclnk "+currentFileName); + qDebug("Saving file as "+currentFileName); doc->setName( currentFileName); updateCaption( currentFileName); FileManager fm; if ( !fm.saveFile( *doc, rt ) ) { return false; } if( filePerms ) { filePermissions *filePerm; filePerm = new filePermissions(this, tr("Permissions"),true, 0,(const QString &)fileNm); filePerm->showMaximized(); filePerm->exec(); if( filePerm) delete filePerm; } - } +// } editor->setEdited( false); edited1 = false; edited = false; if(caption().left(1)=="*") setCaption(caption().right(caption().length()-1)); return true; } qDebug("returning false"); return false; } //end saveAs @@ -959,41 +960,36 @@ void TextEdit::updateCaption( const QString &name ) { } void TextEdit::setDocument(const QString& fileref) { 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; + bFromDocView = true; openFile(fileref); - editor->setEdited(TRUE); - edited1=FALSE; - edited=TRUE; + editor->setEdited(true); + edited1=false; + edited=true; // doSearchBar(); } } updateCaption( currentFileName); } -void TextEdit::closeEvent( QCloseEvent *e ) { - bFromDocView = FALSE; - e->accept(); -} - void TextEdit::changeFont() { 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 ( )); d-> showMaximized ( ); if ( d-> exec ( ) == QDialog::Accepted ) editor-> setFont ( ofs-> selectedFont ( )); delete d; @@ -1007,42 +1003,37 @@ void TextEdit::editDelete() { doc->removeFiles(); clear(); setCaption( tr("Text Editor") ); } break; case 1: // exit break; }; } void TextEdit::changeStartConfig( bool b ) { - + startWithNew=b; Config cfg("TextEdit"); cfg.setGroup("View"); - if(b) { - qDebug("bool"); - cfg.writeEntry("startNew","TRUE"); - } else { - cfg.writeEntry("startNew","FALSE"); - } + cfg.writeEntry("startNew",b); update(); } void TextEdit::editorChanged() { if(editor->edited() && edited && !edited1) { setCaption( "*"+caption()); - edited1=TRUE; + edited1=true; } - edited=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>" |