-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 @@ -109,9 +109,9 @@ void fileBrowser::listDoubleClicked(QListViewItem *selectedItem) 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 @@ -136,12 +136,15 @@ void fileBrowser::listClicked(QListViewItem *selectedItem) 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()); } } @@ -151,9 +154,9 @@ 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 @@ -49,9 +49,9 @@ fileSaver::fileSaver( QWidget* parent, const char* name, bool modal, WFlags fl 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 @@ -146,9 +146,9 @@ void fileSaver::listClicked(QListViewItem *selectedItem) if(QDir(strItem).exists()){ currentDir.cd(strItem, TRUE); populateList(); } - } // else + } // else // if( QFile::exists(strItem ) ) { // qDebug("We found our files!!"); // OnOK(); @@ -158,15 +158,25 @@ void fileSaver::listClicked(QListViewItem *selectedItem) } -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 @@ -56,13 +56,14 @@ 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 @@ -298,8 +298,9 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) edit->insertSeparator(); a->addTo( bar ); a->addTo( edit ); + int defsize; bool defb, defi, wrap; Config cfg("TextEdit"); @@ -367,8 +368,13 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) 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 ); @@ -408,9 +414,9 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) } TextEdit::~TextEdit() { - saveAs(); +// saveAs(); Config cfg("TextEdit"); cfg.setGroup("View"); QFont f = editor->font(); @@ -508,16 +514,15 @@ void TextEdit::fileOpen() 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; @@ -533,9 +538,9 @@ void TextEdit::newFileOpen() } } } delete browseForFiles; - + editor->setEdited( true ); } #if 0 void TextEdit::slotFind() @@ -616,8 +621,9 @@ void TextEdit::newFile( const DocLnk &f ) editorStack->raiseWidget( editor ); setWState (WState_Reserved1 ); editor->setFocus(); doc = new DocLnk(nf); + qDebug("newFile "+currentFileName); updateCaption(currentFileName); } void TextEdit::openFile( const QString &f ) @@ -625,8 +631,11 @@ 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; @@ -641,8 +650,10 @@ 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" ); @@ -653,10 +664,12 @@ void TextEdit::openFile( const DocLnk &f ) 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() { @@ -672,28 +685,39 @@ void TextEdit::showEditTools() 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; @@ -702,9 +726,9 @@ bool TextEdit::saveAs() 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; @@ -717,31 +741,47 @@ bool TextEdit::saveAs() // 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() @@ -817,4 +857,18 @@ void TextEdit::changeFont() { 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 @@ -23,8 +23,11 @@ #define TEXTEDIT_H #define QTEXTEDIT_OPEN_API +#include "fileBrowser.h" +#include "fileSaver.h" + #include <qpe/filemanager.h> #include <qmainwindow.h> #include <qmultilineedit.h> @@ -67,8 +70,9 @@ private slots: void editCut(); void editCopy(); void editPaste(); void editFind(); + void editDelete(); void findNext(); void findClose(); @@ -93,8 +97,11 @@ private: private: QWidgetStack *editorStack; FileSelector *fileSelector; + fileSaver *fileSaveDlg; + fileBrowser *browseForFiles; + QpeEditor* editor; QToolBar *menu, *editBar, *searchBar; QLineEdit *searchEdit; DocLnk *doc; |