author | llornkcor <llornkcor> | 2002-02-19 00:32:58 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-02-19 00:32:58 (UTC) |
commit | 2308c4db692821721bbe82f93fd60f275f4cccdc (patch) (side-by-side diff) | |
tree | f037b4f4fd40201e5328132e643dca83bdf12651 | |
parent | 7e308434f08fe6e8257a5c6b11a62e3ee3934d3b (diff) | |
download | opie-2308c4db692821721bbe82f93fd60f275f4cccdc.zip opie-2308c4db692821721bbe82f93fd60f275f4cccdc.tar.gz opie-2308c4db692821721bbe82f93fd60f275f4cccdc.tar.bz2 |
fixed several silly bugs having to do with Doclnk stuff..
-rw-r--r-- | core/apps/textedit/fileBrowser.cpp | 11 | ||||
-rw-r--r-- | core/apps/textedit/fileSaver.cpp | 24 | ||||
-rw-r--r-- | core/apps/textedit/fileSaver.h | 5 | ||||
-rw-r--r-- | core/apps/textedit/textedit.cpp | 102 | ||||
-rw-r--r-- | core/apps/textedit/textedit.h | 7 |
5 files changed, 112 insertions, 37 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp index 82ccf2c..bb420e6 100644 --- a/core/apps/textedit/fileBrowser.cpp +++ b/core/apps/textedit/fileBrowser.cpp @@ -107,13 +107,13 @@ void fileBrowser::listDoubleClicked(QListViewItem *selectedItem) // you may want to switch these 2 functions. I like single clicks void fileBrowser::listClicked(QListViewItem *selectedItem) { QString strItem=selectedItem->text(0); QString strSize=selectedItem->text(1); -// qDebug("strItem is "+strItem); +// qDebug("strItem is "+strItem); strSize.stripWhiteSpace(); // qDebug(strSize); if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink // is symlink QString strItem2=strItem.right( (strItem.length()-strItem.find("->",0,TRUE)) -4); @@ -134,27 +134,30 @@ void fileBrowser::listClicked(QListViewItem *selectedItem) populateList(); } if(QDir(strItem).exists()){ currentDir.cd(strItem, TRUE); populateList(); } - } else + } else { + strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); if( QFile::exists(strItem ) ) { -// qDebug("We found our files!!"); +//currentDir.canonicalPath() + qDebug("We found our files!!"+strItem); OnOK(); + } } //end not symlink chdir(strItem.latin1()); } } void fileBrowser::OnOK() { QListViewItemIterator it1( ListView); for ( ; it1.current(); ++it1 ) { if ( it1.current()->isSelected() ) { selectedFileName=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+it1.current()->text(0)); -// qDebug("selected filename is "+selectedFileName); + qDebug("selected filename is "+selectedFileName); fileList.append( selectedFileName ); } } accept(); } diff --git a/core/apps/textedit/fileSaver.cpp b/core/apps/textedit/fileSaver.cpp index 88608cc..af51fc3 100644 --- a/core/apps/textedit/fileSaver.cpp +++ b/core/apps/textedit/fileSaver.cpp @@ -47,13 +47,13 @@ fileSaver::fileSaver( QWidget* parent, const char* name, bool modal, WFlags fl // ListView->setSelectionMode(QListView::Extended); ListView->setAllColumnsShowFocus( TRUE ); ListView->setGeometry( QRect( 10, 35, 220, 160 ) ); fileEdit= new QLineEdit(this); - fileEdit->setGeometry( QRect( 10, 230, 200, 25)); + fileEdit->setGeometry( QRect( 10, 200, 200, 22)); fileEdit->setText( tmpFileName); // signals and slots connections connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); @@ -144,29 +144,39 @@ void fileSaver::listClicked(QListViewItem *selectedItem) populateList(); } if(QDir(strItem).exists()){ currentDir.cd(strItem, TRUE); populateList(); } - } // else + } // else // if( QFile::exists(strItem ) ) { // qDebug("We found our files!!"); // OnOK(); } //end not symlink chdir(strItem.latin1()); } -void fileSaver::OnOK() +void fileSaver::closeEvent( QCloseEvent *e ) { -// reject(); + if(e->isAccepted()) { + e->accept(); + } else { + qDebug("not accepted"); + done(-1); + } } void fileSaver::accept() { selectedFileName = fileEdit->text(); - selectedFileName = currentDir.canonicalPath()+ selectedFileName; - qDebug("goint to save "+selectedFileName); - reject(); + QString path = currentDir.canonicalPath()+"/" + selectedFileName; + if( path.find("//",0,TRUE) ==-1 ) { + selectedFileName = path; + } else { + selectedFileName = currentDir.canonicalPath()+selectedFileName; + } + qDebug("going to save "+selectedFileName); + done(1); } diff --git a/core/apps/textedit/fileSaver.h b/core/apps/textedit/fileSaver.h index f496270..4a38a65 100644 --- a/core/apps/textedit/fileSaver.h +++ b/core/apps/textedit/fileSaver.h @@ -54,17 +54,18 @@ public: QListViewItem * item; public slots: private: private slots: - void accept(); + void accept(); void upDir(); void listDoubleClicked(QListViewItem *); void listClicked(QListViewItem *); - void OnOK(); + void closeEvent( QCloseEvent * ); + protected slots: protected: }; diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index 8004771..e41c69d 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp @@ -296,12 +296,13 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) 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); @@ -365,12 +366,17 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) 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( "delete" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( editDelete() ) ); + a->addTo( edit ); + searchBar->hide(); editorStack = new QWidgetStack( this ); setCentralWidget( editorStack ); searchVisible = FALSE; @@ -406,13 +412,13 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) fileNew(); } TextEdit::~TextEdit() { - saveAs(); +// saveAs(); Config cfg("TextEdit"); cfg.setGroup("View"); QFont f = editor->font(); cfg.writeEntry("FontSize",f.pointSize()); cfg.writeEntry("Bold",f.bold()); @@ -506,20 +512,19 @@ void TextEdit::fileOpen() menu->hide(); editBar->hide(); searchBar->hide(); clearWState (WState_Reserved1 ); editorStack->raiseWidget( fileSelector ); fileSelector->reread(); - updateCaption(currentFileName); + updateCaption(); } void TextEdit::newFileOpen() { - fileBrowser *browseForFiles; browseForFiles=new fileBrowser(this,"fileBrowser",TRUE,0, "*"); - if( browseForFiles->exec()!= 0 ) { + if( browseForFiles->exec() != -1 ) { QString selFile= browseForFiles->selectedFileName; QStringList fileList=browseForFiles->fileList; qDebug(selFile); QStringList::ConstIterator f; QString fileTemp; for ( f = fileList.begin(); f != fileList.end(); f++ ) { @@ -531,13 +536,13 @@ void TextEdit::newFileOpen() // qDebug("please open "+currentFileName); openFile(fileName ); } } } delete browseForFiles; - + editor->setEdited( true ); } #if 0 void TextEdit::slotFind() { FindDialog frmFind( "Text Editor", this ); @@ -614,21 +619,25 @@ void TextEdit::newFile( const DocLnk &f ) nf.setType("text/plain"); clear(); editorStack->raiseWidget( editor ); setWState (WState_Reserved1 ); editor->setFocus(); doc = new DocLnk(nf); + qDebug("newFile "+currentFileName); updateCaption(currentFileName); } void TextEdit::openFile( const QString &f ) { bFromDocView = TRUE; DocLnk nf; nf.setType("text/plain"); nf.setFile(f); + currentFileName=f; + qDebug("openFile string"+currentFileName); + openFile(nf); showEditTools(); // Show filename in caption QString name = f; int sep = name.findRev( '/' ); if ( sep > 0 ) @@ -639,26 +648,30 @@ void TextEdit::openFile( const QString &f ) void TextEdit::openFile( const DocLnk &f ) { // clear(); bFromDocView = TRUE; FileManager fm; QString txt; + currentFileName=f.name(); + qDebug("openFile doclnk " + currentFileName); if ( !fm.loadFile( f, txt ) ) { // ####### could be a new file qDebug( "Cannot open file" ); //return; } fileNew(); if ( doc ) delete doc; doc = new DocLnk(f); editor->setText(txt); - editor->setEdited(FALSE); - updateCaption(currentFileName); + editor->setEdited( false); + qDebug("openFile doclnk "+currentFileName); + doc->setName(currentFileName); + updateCaption(); } void TextEdit::showEditTools() { // if ( !doc ) // close(); @@ -670,43 +683,54 @@ void TextEdit::showEditTools() searchBar->show(); // updateCaption(); editorStack->raiseWidget( editor ); setWState (WState_Reserved1 ); } +/*! + unprompted save */ bool TextEdit::save() { + qDebug("saveFile "+currentFileName); + QString rt = editor->text(); doc->setName( currentFileName); FileManager fm; if ( !fm.saveFile( *doc, rt ) ) { return false; } - delete doc; - doc = 0; +// if(doc) +// delete doc; +// doc = 0; editor->setEdited( false ); return true; - } +/*! + prompted save */ bool TextEdit::saveAs() { - // case of nothing to save... - if ( !doc || !bFromDocView) - return true; + qDebug("saveAsFile "+currentFileName); + + // case of nothing to save... /// there's always something to save +// if ( !doc )//|| !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 == "Unnamed") { - + 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 ); @@ -715,35 +739,51 @@ bool TextEdit::saveAs() 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 = "Empty Text"; + docname = "Unnamed"; doc->setName(docname); currentFileName=docname; } } - fileSaver *fileSaveDlg; fileSaveDlg=new fileSaver(this,"SaveFile",TRUE,0, currentFileName); - if( fileSaveDlg->exec() != 0 ) { + qDebug("wanna save filename "+currentFileName); + fileSaveDlg->exec(); + if( fileSaveDlg->result() == 1 ) { QString fileNm=fileSaveDlg->selectedFileName; - qDebug("save filename "+fileNm); - doc->setName(fileNm); - updateCaption(fileNm); + qDebug("saving filename "+fileNm); + QFileInfo fi(fileNm); + currentFileName=fi.fileName(); + if(doc) { + qDebug("doclnk exists"); +// 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); } - delete fileSaveDlg; - + doc->setName( currentFileName); + updateCaption( currentFileName); + FileManager fm; if ( !fm.saveFile( *doc, rt ) ) { return false; } - delete doc; - doc = 0; +// delete doc; +// doc = 0; editor->setEdited( false ); + } + if(fileSaveDlg) + delete fileSaveDlg; return true; } void TextEdit::clear() { delete doc; @@ -815,6 +855,20 @@ void TextEdit::changeFont() { QFont myFont=fontDlg->selectedFont; editor->setFont( myFont); delete fontDlg; } +void TextEdit::editDelete() +{ + switch ( QMessageBox::warning(this,"Text Editor","Do you really want\nto delete the current file\nfrom the disk?\nThis is irreversable!!","Yes","No",0,0,1) ) { + case 0: + if(doc) { + doc->removeFiles(); + clear(); + } + break; + case 1: + // exit + break; + }; +} diff --git a/core/apps/textedit/textedit.h b/core/apps/textedit/textedit.h index f9eb241..781061a 100644 --- a/core/apps/textedit/textedit.h +++ b/core/apps/textedit/textedit.h @@ -21,12 +21,15 @@ #ifndef TEXTEDIT_H #define TEXTEDIT_H #define QTEXTEDIT_OPEN_API +#include "fileBrowser.h" +#include "fileSaver.h" + #include <qpe/filemanager.h> #include <qmainwindow.h> #include <qmultilineedit.h> #include <qlist.h> #include <qmap.h> @@ -65,12 +68,13 @@ private slots: void editCut(); void editCopy(); void editPaste(); void editFind(); + void editDelete(); void findNext(); void findClose(); void search(); void accept(); @@ -91,12 +95,15 @@ private: void updateCaption( const QString &name=QString::null ); void setFontSize(int sz, bool round_down_not_up); private: QWidgetStack *editorStack; FileSelector *fileSelector; + fileSaver *fileSaveDlg; + fileBrowser *browseForFiles; + QpeEditor* editor; QToolBar *menu, *editBar, *searchBar; QLineEdit *searchEdit; DocLnk *doc; bool searchVisible; bool bFromDocView; |