-rw-r--r-- | core/apps/textedit/fileBrowser.cpp | 44 | ||||
-rw-r--r-- | core/apps/textedit/fileBrowser.h | 11 | ||||
-rw-r--r-- | core/apps/textedit/fileSaver.cpp | 35 | ||||
-rw-r--r-- | core/apps/textedit/fileSaver.h | 7 | ||||
-rw-r--r-- | core/apps/textedit/textedit.cpp | 4 |
5 files changed, 85 insertions, 16 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp index 8c1e962..c16bd41 100644 --- a/core/apps/textedit/fileBrowser.cpp +++ b/core/apps/textedit/fileBrowser.cpp @@ -1,98 +1,113 @@ /**************************************************************************** ** copyright 2001 ljp ljp@llornkcor.com ** Created: Fri Dec 14 08:16:46 2001 ** ** 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. ** ****************************************************************************/ #include "fileBrowser.h" #include <qpe/config.h> #include <qpe/resource.h> +#include <qpe/qpeapplication.h> #include <qlistview.h> #include <qpushbutton.h> #include <qfile.h> #include <qmessagebox.h> #include <unistd.h> + + fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter ) : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "fileBrowser" ); resize( 240, 280 ); setCaption(tr( name ) ); filterStr=filter; dirLabel = new QLabel(this, "DirLabel"); dirLabel->setText(currentDir.canonicalPath()); dirLabel->setGeometry(10,20,230,15); - QPushButton *homeButton; - homeButton = new QPushButton(Resource::loadIconSet("home"),"",this,"homeButton"); + homeButton = new QPushButton( Resource::loadIconSet("home"),"",this,"homeButton"); homeButton->setGeometry(200,4,25,25); connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); - + homeButton->setFlat(TRUE); + + docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); + docButton->setGeometry(170,4,25,25); + connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); + docButton->setFlat(TRUE); + + hideButton = new QPushButton( Resource::loadIconSet("s_hidden"),"",this,"hideButton"); + hideButton->setGeometry(140,4,25,25); + connect( hideButton,SIGNAL(toggled(bool)),this,SLOT( hideButtonPushed(bool)) ); + hideButton->setToggleButton(TRUE); + hideButton->setFlat(TRUE); + ListView = new QListView( this, "ListView" ); ListView->addColumn( tr( "Name" ) ); ListView->setColumnWidth(0,140); ListView->setSorting( 2, FALSE); ListView->addColumn( tr( "Size" ) ); ListView->setColumnWidth(1,59); // ListView->addColumn( tr( "" ) ); ListView->setColumnWidthMode(0,QListView::Manual); ListView->setColumnAlignment(1,QListView::AlignRight); // ListView->setMultiSelection(true); // ListView->setSelectionMode(QListView::Extended); ListView->setAllColumnsShowFocus( TRUE ); ListView->setGeometry( QRect( 10, 35, 220, 240 ) ); // signals and slots connections connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); currentDir.setPath(QDir::currentDirPath()); + currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden */| QDir::All); + populateList(); move(0,15); } fileBrowser::~fileBrowser() { } void fileBrowser::populateList() { ListView->clear(); //qDebug(currentDir.canonicalPath()); - currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); currentDir.setMatchAllDirs(TRUE); currentDir.setNameFilter(filterStr); // currentDir.setNameFilter("*.txt;*.etx"); QString fileL, fileS; const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); QFileInfoListIterator it(*list); QFileInfo *fi; while ( (fi=it.current()) ) { if (fi->isSymLink() ){ QString symLink=fi->readLink(); // qDebug("Symlink detected "+symLink); QFileInfo sym( symLink); fileS.sprintf( "%10li", sym.size() ); fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() ); } else { // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); fileS.sprintf( "%10li", fi->size() ); fileL.sprintf( "%s",fi->fileName().data() ); if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { fileL+="/"; @@ -157,24 +172,45 @@ void fileBrowser::listClicked(QListViewItem *selectedItem) } //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); fileList.append( selectedFileName ); } } accept(); } void fileBrowser::homeButtonPushed() { chdir( QDir::homeDirPath().latin1() ); currentDir.cd( QDir::homeDirPath(), TRUE); populateList(); update(); } + +void fileBrowser::docButtonPushed() { + chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); + currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); + populateList(); + update(); + +} + +void fileBrowser::hideButtonPushed(bool b) { + if (b) + currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); + else + currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); + +// chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); +// currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); + populateList(); + update(); + +} diff --git a/core/apps/textedit/fileBrowser.h b/core/apps/textedit/fileBrowser.h index c0e1d4a..50ed485 100644 --- a/core/apps/textedit/fileBrowser.h +++ b/core/apps/textedit/fileBrowser.h @@ -18,50 +18,51 @@ copyright Sun 02-17-2002 22:28:23 L. J. Potter ljp@llornkcor.com //#include <qvariant.h> #include <qdialog.h> #include <qfile.h> #include <qdir.h> #include <qstringlist.h> #include <qlabel.h> #include <qstring.h> class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QListView; class QListViewItem; class QPushButton; class fileBrowser : public QDialog { Q_OBJECT public: void populateList(); fileBrowser( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ,const QString filter=0); ~fileBrowser(); - QPushButton* buttonOk; + QPushButton *buttonOk, *buttonCancel, *homeButton, *docButton, *hideButton; QListView* ListView; - QPushButton* buttonCancel; + QLabel *dirLabel; QString selectedFileName, filterStr; QDir currentDir; QFile file; QStringList fileList; - -QListViewItem * item; + QListViewItem * item; public slots: -void homeButtonPushed(); + void homeButtonPushed(); + void docButtonPushed(); + void hideButtonPushed(bool); private: private slots: void upDir(); void listDoubleClicked(QListViewItem *); void listClicked(QListViewItem *); void OnOK(); protected slots: protected: }; #endif // FILEBROWSER_H diff --git a/core/apps/textedit/fileSaver.cpp b/core/apps/textedit/fileSaver.cpp index 4e80735..fbf50cf 100644 --- a/core/apps/textedit/fileSaver.cpp +++ b/core/apps/textedit/fileSaver.cpp @@ -18,95 +18,106 @@ #include <qpe/qpeapplication.h> #include <qlistview.h> #include <qpushbutton.h> #include <qfile.h> #include <qmessagebox.h> #include <qlineedit.h> #include <qcheckbox.h> #include <unistd.h> fileSaver::fileSaver( QWidget* parent, const char* name, bool modal, WFlags fl , const QString currentFileName ) : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "fileSaver" ); resize( 240, 280 ); setCaption(tr( name ) ); QFileInfo fi(currentFileName); QString tmpFileName=fi.fileName(); // qDebug( tmpFileName); dirLabel = new QLabel(this, "DirLabel"); dirLabel->setText(currentDir.canonicalPath()); dirLabel->setGeometry(10,20,230,15); - QPushButton *homeButton; homeButton = new QPushButton(Resource::loadIconSet("home"),"",this,"homeButton"); homeButton->setGeometry(200,4,25,25); connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); + homeButton->setFlat(TRUE); + docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); + docButton->setGeometry(170,4,25,25); + connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); + docButton->setFlat(TRUE); + + hideButton = new QPushButton( Resource::loadIconSet("s_hidden"),"",this,"hideButton"); + hideButton->setGeometry(140,4,25,25); + connect( hideButton,SIGNAL(toggled(bool)),this,SLOT( hideButtonPushed(bool)) ); + hideButton->setToggleButton(TRUE); + hideButton->setFlat(TRUE); + ListView = new QListView( this, "ListView" ); ListView->addColumn( tr( "Name" ) ); ListView->setColumnWidth(0,140); ListView->setSorting( 2, FALSE); ListView->addColumn( tr( "Size" ) ); ListView->setColumnWidth(1,59); ListView->setColumnWidthMode(0,QListView::Manual); ListView->setColumnAlignment(1,QListView::AlignRight); // ListView->setMultiSelection(true); // ListView->setSelectionMode(QListView::Extended); ListView->setAllColumnsShowFocus( TRUE ); ListView->setGeometry( QRect( 10,35,220,125)); fileEdit= new QLineEdit(this); fileEdit->setGeometry( QRect( 10, 162, 205, 17)); fileEdit->setText( tmpFileName); filePermCheck = new QCheckBox( this, "SetFilePerms" ); filePermCheck->setText("set file permissions"); filePermCheck->setGeometry(10, 178, 150,17); // signals and slots connections connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); // tmpFileName=fi.FilePath(); // qDebug( tmpFileName); currentDir.setPath( QDir::currentDirPath() ); + currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden */| QDir::All); populateList(); move(0,15); fileEdit->setFocus(); } fileSaver::~fileSaver() { } void fileSaver::populateList() { ListView->clear(); - currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden ); currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); currentDir.setMatchAllDirs(TRUE); currentDir.setNameFilter("*"); QString fileL, fileS; const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); QFileInfoListIterator it(*list); QFileInfo *fi; while ( (fi=it.current()) ) { if (fi->isSymLink() ){ QString symLink=fi->readLink(); // qDebug("Symlink detected "+symLink); QFileInfo sym( symLink); fileS.sprintf( "%10li", sym.size() ); fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() ); } else { // // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); fileS.sprintf( "%10li", fi->size() ); fileL.sprintf( "%s",fi->fileName().data() ); if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { fileL+="/"; // qDebug(currentDir.canonicalPath()+fileL); @@ -179,24 +190,44 @@ void fileSaver::closeEvent( QCloseEvent *e ) } else { qDebug("not accepted"); done(-1); } } void fileSaver::accept() { selectedFileName = fileEdit->text(); 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); } void fileSaver::homeButtonPushed() { chdir( QDir::homeDirPath().latin1() ); currentDir.cd( QDir::homeDirPath(), TRUE); populateList(); update(); } +void fileSaver::docButtonPushed() { + chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); + currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); + populateList(); + update(); + +} + +void fileSaver::hideButtonPushed(bool b) { + if (b) + currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All); + else + currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); + +// chdir( QString(QPEApplication::documentDir()+"/text").latin1() ); +// currentDir.cd( QPEApplication::documentDir()+"/text", TRUE); + populateList(); + update(); + +} diff --git a/core/apps/textedit/fileSaver.h b/core/apps/textedit/fileSaver.h index 526085d..195a775 100644 --- a/core/apps/textedit/fileSaver.h +++ b/core/apps/textedit/fileSaver.h @@ -22,53 +22,54 @@ copyright Sun 02-17-2002 22:28:48 L. J. Potter ljp@llornkcor.com #include <qdir.h> #include <qstringlist.h> #include <qlabel.h> #include <qstring.h> class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QListView; class QListViewItem; class QPushButton; class QLineEdit; class QCheckBox; class fileSaver : public QDialog { Q_OBJECT public: void populateList(); fileSaver( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ,const QString filter=0); ~fileSaver(); QLineEdit *fileEdit; - QPushButton* buttonOk; + QPushButton *buttonOk, *buttonCancel, *homeButton, *docButton, *hideButton; QListView* ListView; - QPushButton* buttonCancel; QLabel *dirLabel; QString selectedFileName, filterStr; QDir currentDir; QFile file; QStringList fileList; QCheckBox *filePermCheck; QListViewItem * item; public slots: -void homeButtonPushed(); + void homeButtonPushed(); + void docButtonPushed(); + void hideButtonPushed(bool); private: private slots: void accept(); void upDir(); void listDoubleClicked(QListViewItem *); void listClicked(QListViewItem *); void closeEvent( QCloseEvent * ); protected slots: protected: }; #endif // FILESAVER_H diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index 78c4d8a..dafe1dc 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp @@ -540,49 +540,50 @@ void TextEdit::fileOpen() void TextEdit::newFileOpen() { browseForFiles=new fileBrowser(this,"Open File",TRUE,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++ ) { fileTemp = *f; fileTemp.right( fileTemp.length()-5); QString fileName = fileTemp; if( fileName != "Unnamed" || fileName != "Empty Text" ) { currentFileName = fileName; qDebug("please open "+currentFileName); openFile(fileName ); } } } delete browseForFiles; editor->setEdited( FALSE); edited1=FALSE; edited=FALSE; - setCaption(caption().right(caption().length()-1)); + if(caption().left(1)=="*") + setCaption(caption().right(caption().length()-1)); } #if 0 void TextEdit::slotFind() { FindDialog frmFind( "Text Editor", this ); connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), editor, SLOT(slotDoFind( const QString&,bool,bool))); //case sensitive, backwards, [category] connect( editor, SIGNAL(notFound()), &frmFind, SLOT(slotNotFound()) ); connect( editor, SIGNAL(searchWrapped()), &frmFind, SLOT(slotWrapAround()) ); frmFind.exec(); } #endif void TextEdit::fileRevert() { @@ -671,49 +672,48 @@ 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); edited1=FALSE; edited=FALSE; - setCaption(caption().right(caption().length()-1)); qDebug("openFile doclnk "+currentFileName); doc->setName(currentFileName); updateCaption(); } void TextEdit::showEditTools() { // if ( !doc ) // close(); // clear(); fileSelector->hide(); menu->show(); editBar->show(); if ( searchVisible ) searchBar->show(); // updateCaption(); editorStack->raiseWidget( editor ); setWState (WState_Reserved1 ); } /*! unprompted save */ bool TextEdit::save() |