author | llornkcor <llornkcor> | 2002-02-18 14:08:55 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-02-18 14:08:55 (UTC) |
commit | 9741205aa0b0892b870d2b7df7c5dd7e25b0bb18 (patch) (side-by-side diff) | |
tree | 7f2f3d44ff3215984bd8b487b206d3d958a498da /core/apps/textedit/fileSaver.cpp | |
parent | 0640b30f13beb9d6480d8042ec5397a68e6247fc (diff) | |
download | opie-9741205aa0b0892b870d2b7df7c5dd7e25b0bb18.zip opie-9741205aa0b0892b870d2b7df7c5dd7e25b0bb18.tar.gz opie-9741205aa0b0892b870d2b7df7c5dd7e25b0bb18.tar.bz2 |
added fontDialog, fileBrowserDialog, and fileSave dialog, so we can edit anyfile, save anywhere,
using a user selected name.
Changed what is seen when it opens. It now opens with the texteditor opened to a new
file, instead of the file selector, unless one is specified from commandline, or setDocument message.
FileSelector is still available, but from a menu item.
Diffstat (limited to 'core/apps/textedit/fileSaver.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/apps/textedit/fileSaver.cpp | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/core/apps/textedit/fileSaver.cpp b/core/apps/textedit/fileSaver.cpp new file mode 100644 index 0000000..d01daee --- a/dev/null +++ b/core/apps/textedit/fileSaver.cpp @@ -0,0 +1,164 @@ +/**************************************************************************** +** copyright 2001 ljp ljp@llornkcor.com +** Created: Fri Dec 14 08:16:46 2001 fileSaver.cpp +** +** 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 "fileSaver.h" +#include <qpe/config.h> +#include <qpe/qpeapplication.h> + +#include <qlistview.h> +#include <qpushbutton.h> +#include <qfile.h> +#include <qmessagebox.h> +#include <unistd.h> +#include <qlineedit.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( 236, 280 ); + setCaption(tr( "Save file" ) ); +// filterStr=currentFileName; + + dirLabel = new QLabel(this, "DirLabel"); + dirLabel->setText(currentDir.canonicalPath()); + dirLabel->setGeometry(10,4,230,30); + + 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->setMultiSelection(true); +// 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->setText(currentFileName); + // signals and slots connections + connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); + connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); + currentDir.setPath(QDir::currentDirPath() ); + populateList(); +} + +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); + } + } + item= new QListViewItem( ListView,fileL,fileS ); + ++it; + } + ListView->setSorting( 2, FALSE); + dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath()); + + +} + +void fileSaver::upDir() +{ +// qDebug(currentDir.canonicalPath()); +} + +void fileSaver::listDoubleClicked(QListViewItem *selectedItem) +{ +} + +void fileSaver::listClicked(QListViewItem *selectedItem) +{ + QString strItem=selectedItem->text(0); + QString strSize=selectedItem->text(1); +// qDebug("strItem is "+strItem); + strSize.stripWhiteSpace(); +// qDebug(strSize); + + if(strItem.find("@",0,TRUE) !=-1 || strItem.find("->",0,TRUE) !=-1 ) { //if symlink + QString strItem2=strItem.right( (strItem.length()-strItem.find("->",0,TRUE)) -4); +// qDebug("strItem symlink is "+strItem2); + if(QDir(strItem2).exists() ) { + currentDir.cd(strItem2, TRUE); + populateList(); + } + } else { // not a symlink + if(strItem.find(". .",0,TRUE) && strItem.find("/",0,TRUE)!=-1 ) { + if(QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem)).exists() ) { + strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); + currentDir.cd(strItem,FALSE); +// qDebug("Path is "+strItem); + populateList(); + } else { + currentDir.cdUp(); + populateList(); + } + if(QDir(strItem).exists()){ + currentDir.cd(strItem, TRUE); + populateList(); + } + } // else +// if( QFile::exists(strItem ) ) { +// qDebug("We found our files!!"); + +// OnOK(); + } //end not symlink + chdir(strItem.latin1()); + + +} + + +void fileSaver::OnOK() +{ +// reject(); +} + +void fileSaver::accept() { + selectedFileName = fileEdit->text(); + selectedFileName = currentDir.canonicalPath()+ selectedFileName; + reject(); +} |