author | llornkcor <llornkcor> | 2002-04-19 12:09:05 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-04-19 12:09:05 (UTC) |
commit | 9233f285e5f3366ca5e1d44892e0797d7ef0608c (patch) (side-by-side diff) | |
tree | f4599e33492b04d7d8a9250d662e8bb814313bdf | |
parent | 6ffbfe7daee3b01b8dce2afa9036b70b187a8fc7 (diff) | |
download | opie-9233f285e5f3366ca5e1d44892e0797d7ef0608c.zip opie-9233f285e5f3366ca5e1d44892e0797d7ef0608c.tar.gz opie-9233f285e5f3366ca5e1d44892e0797d7ef0608c.tar.bz2 |
fixed a slight bugy
-rw-r--r-- | core/apps/textedit/fileBrowser.cpp | 59 | ||||
-rw-r--r-- | core/apps/textedit/textedit.cpp | 75 | ||||
-rw-r--r-- | core/apps/textedit/textedit.h | 2 |
3 files changed, 77 insertions, 59 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp index f322513..fced326 100644 --- a/core/apps/textedit/fileBrowser.cpp +++ b/core/apps/textedit/fileBrowser.cpp @@ -1,333 +1,339 @@ /**************************************************************************** ** 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. ** ****************************************************************************/ -//#define QTOPIA_INTERNAL_MIMEEXT +#define QTOPIA_INTERNAL_MIMEEXT #include "fileBrowser.h" //#include "inputDialog.h" #include <qpe/config.h> #include <qpe/resource.h> #include <qpe/fileselector.h> #include <qpe/qpeapplication.h> #include <qpe/menubutton.h> #include <qpe/mimetype.h> #include <qdict.h> #include <qwidgetstack.h> #include <qlistview.h> #include <qcombo.h> #include <qpushbutton.h> #include <qfile.h> #include <qmessagebox.h> #include <qlayout.h> #include <unistd.h> #include <qpopupmenu.h> #include <qlineedit.h> #include <qstringlist.h> #include <unistd.h> #include <stdlib.h> static int u_id = 1; static int get_unique_id() { return u_id++; } fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags fl , const QString mimeFilter ) : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "fileBrowser" ); setCaption(tr( name ) ); -// mimeType = mimeFilter; -// MimeType mt( mimeType); -// if( mt.extension().isEmpty()) -// QStringList filterList; -// filterList=QStringList::split(";",mimeFilter,FALSE); -// for ( QStringList::Iterator it = filterList.begin(); it != filterList.end(); ++it ) { -// printf( "%s \n", (*it).latin1() ); -// } - filterStr = mimeFilter.right(mimeFilter.length() - mimeFilter.find("/",0,TRUE) - 1);// "*"; +// getMimeTypes(); + + mimeType = mimeFilter; + MimeType mt( mimeType); + + if( mt.extension().isEmpty()) { + + QStringList filterList; + filterList=QStringList::split(";",mimeFilter,FALSE); + + for ( QStringList::Iterator it = filterList.begin(); it != filterList.end(); ++it ) { + printf( "%s \n", (*it).latin1() ); + } + + filterStr = mimeFilter.right(mimeFilter.length() - mimeFilter.find("/",0,TRUE) - 1);// "*"; - qDebug(filterStr); -// else -// filterStr = "*."+ mt.extension(); + qDebug(filterStr); + } else { + filterStr = "*."+ mt.extension(); // qDebug("description "+mt.description()); // qDebug( "id "+mt.id()); // qDebug("extension "+mt.extension()); - + } // channel = new QCopChannel( "QPE/fileDialog", this ); // connect( channel, SIGNAL(received(const QCString&, const QByteArray&)), // this, SLOT(receive(const QCString&, const QByteArray&)) ); QGridLayout *layout = new QGridLayout( this ); layout->setSpacing( 4 ); layout->setMargin( 4 ); dirPathCombo = new QComboBox( FALSE, this, "dirPathCombo" ); dirPathCombo->setEditable(TRUE); connect( dirPathCombo, SIGNAL( activated( const QString & ) ), this, SLOT( dirPathComboActivated( const QString & ) ) ); connect( dirPathCombo->lineEdit(), SIGNAL( returnPressed( ) ), this, SLOT( dirPathEditPressed( ) ) ); dirPathStringList << "/"; // we can get the storage here layout->addMultiCellWidget( dirPathCombo, 0, 0, 0, 4 ); cdUpButton = new QPushButton(Resource::loadIconSet("up"),"",this,"cdUpButton"); cdUpButton ->setMinimumSize( QSize( 20, 20 ) ); cdUpButton ->setMaximumSize( QSize( 20, 20 ) ); connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); cdUpButton ->setFlat(TRUE); layout->addMultiCellWidget( cdUpButton, 0, 0, 5, 5 ); docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); docButton->setMinimumSize( QSize( 20, 20 ) ); docButton->setMaximumSize( QSize( 20, 20 ) ); connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); docButton->setFlat(TRUE); layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); homeButton = new QPushButton( Resource::loadIconSet("home"),"",this,"homeButton"); homeButton->setMinimumSize( QSize( 20, 20 ) ); homeButton->setMaximumSize( QSize( 20, 20 ) ); connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); homeButton->setFlat(TRUE); layout->addMultiCellWidget( homeButton, 0, 0, 7, 7 ); FileStack = new QWidgetStack( this ); ListView = new QListView( this, "ListView" ); // ListView->setMinimumSize( QSize( 100, 25 ) ); ListView->addColumn( tr( "Name" ) ); ListView->setColumnWidth(0,120); ListView->setSorting( 2, FALSE); ListView->addColumn( tr( "Size" ) ); ListView->setColumnWidth(1,-1); ListView->addColumn( "Date",-1); ListView->setColumnWidthMode(0,QListView::Manual); ListView->setColumnAlignment(1,QListView::AlignRight); ListView->setColumnAlignment(2,QListView::AlignRight); ListView->setAllColumnsShowFocus( TRUE ); QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold); connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), this, SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); connect( ListView, SIGNAL( clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); FileStack->addWidget( ListView, get_unique_id() ); mimeType="text/plain"; fileSelector = new FileSelector( mimeType, FileStack, "fileselector" , FALSE, FALSE); //buggy // connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) ); // connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( docOpen( const DocLnk & ) ) ); layout->addMultiCellWidget( FileStack, 1, 1, 0, 7 ); SelectionCombo = new QComboBox( FALSE, this, "SelectionCombo" ); SelectionCombo->insertItem( tr( "Documents" ) ); SelectionCombo->insertItem( tr( "All files" ) ); SelectionCombo->insertItem( tr( "Hidden files" ) ); // SelectionCombo->setMaximumWidth(120); layout->addMultiCellWidget( SelectionCombo, 2, 2, 0, 3 ); connect( SelectionCombo, SIGNAL( activated( const QString & ) ), this, SLOT( selectionChanged( const QString & ) ) ); typemb = new MenuButton(this); typemb->setLabel(tr("Type: %1")); typemb->setMinimumWidth(110); typemb->setFixedHeight(22); layout->addMultiCellWidget( typemb, 2, 2, 4, 7 ); updateMimeTypeMenu() ; currentDir.setPath(QDir::currentDirPath()); currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden */| QDir::All); currentDir.setNameFilter(filterStr); populateList(); move(0,15); } fileBrowser::~fileBrowser() { } void fileBrowser::setFileView( int selection ) { SelectionCombo->setCurrentItem( selection ); selectionChanged( SelectionCombo->currentText() ); } void fileBrowser::populateList() { ListView->clear(); QListViewItem * item; bool isDir=FALSE; //qDebug(currentDir.canonicalPath()); currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); currentDir.setMatchAllDirs(TRUE); // currentDir.setNameFilter("*.txt;*.etx"); QString fileL, fileS, fileDate; 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() ); fileDate = sym.lastModified().toString(); } else { // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); fileS.sprintf( "%10li", fi->size() ); fileL.sprintf( "%s",fi->fileName().data() ); fileDate= fi->lastModified().toString(); if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { fileL+="/"; isDir=TRUE; // qDebug( fileL); } } if(fileL !="./" && fi->exists()) { item= new QListViewItem( ListView,fileL,fileS , fileDate); QPixmap pm; if(isDir || fileL.find("/",0,TRUE) != -1) { if( !QDir( fi->filePath() ).isReadable()) pm = Resource::loadPixmap( "lockedfolder" ); else pm= Resource::loadPixmap( "folder" ); item->setPixmap( 0,pm ); } else { if( !fi->isReadable() ) pm = Resource::loadPixmap( "locked" ); else { MimeType mt(fi->filePath()); pm=mt.pixmap();// sets the pixmap for the mimetype if(pm.isNull()) pm = Resource::loadPixmap( "UnknownDocument-14" ); item->setPixmap( 0,pm); } } if( fileL.find("->",0,TRUE) != -1) { // overlay link image pm= Resource::loadPixmap( "folder" ); - QPixmap lnk = Resource::loadPixmap( "symlink" ); + QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); QPainter painter( &pm ); painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); pm.setMask( pm.createHeuristicMask( FALSE ) ); item->setPixmap( 0, pm); } } isDir=FALSE; ++it; // } } ListView->setSorting( 3, FALSE); QString currentPath = currentDir.canonicalPath(); fillCombo( (const QString &)currentPath); // dirPathCombo->lineEdit()->setText(currentPath); // if( dirPathStringList.grep(currentPath,TRUE).isEmpty() ) { // dirPathCombo->clear(); // dirPathStringList.prepend(currentPath ); // dirPathCombo->insertStringList( dirPathStringList,-1); // } } void fileBrowser::upDir() { QString current = currentDir.canonicalPath(); QDir dir(current); dir.cdUp(); current = dir.canonicalPath(); chdir( current.latin1() ); currentDir.cd( current, TRUE); populateList(); update(); } // you may want to switch these 2 functions. I like single clicks void fileBrowser::listClicked(QListViewItem *selectedItem) { if(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 // is 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 { strItem=QDir::cleanDirPath(currentDir.canonicalPath()+"/"+strItem); if( QFile::exists(strItem ) ) { //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); fileList.append( selectedFileName ); } } accept(); } void fileBrowser::homeButtonPushed() { QString current = QDir::homeDirPath(); @@ -399,227 +405,230 @@ void fileBrowser::showListMenu(QListViewItem *item) { m.insertSeparator(); m.insertItem( tr( "Delete" ), this, SLOT( localDelete() )); } else { m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() )); m.insertItem( tr( "Rescan" ), this, SLOT( populateList() )); } m.exec( QCursor::pos() ); } void fileBrowser::doCd() { listClicked( ListView->currentItem()); } void fileBrowser::makDir() { InputDialog *fileDlg; fileDlg = new InputDialog(this,"Make Directory",TRUE, 0); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString filename = fileDlg->LineEdit1->text(); qDebug("Make dir"); currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); } populateList(); } void fileBrowser::localRename() { QString curFile = ListView->currentItem()->text(0); InputDialog *fileDlg; fileDlg = new InputDialog(this,"Rename",TRUE, 0); fileDlg->setTextEdit((const QString &) curFile); fileDlg->exec(); if( fileDlg->result() == 1 ) { QString oldname = currentDir.canonicalPath() + "/" + curFile; QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; if( rename(oldname.latin1(), newName.latin1())== -1) QMessageBox::message("Note","Could not rename"); } populateList(); } void fileBrowser::localDelete() { QString f = ListView->currentItem()->text(0); if(QDir(f).exists() ) { switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f+ " ?\nIt must be empty","Yes","No",0,0,1) ) { case 0: { f=currentDir.canonicalPath()+"/"+f; QString cmd="rmdir "+f; system( cmd.latin1()); populateList(); } break; case 1: // exit break; }; } else { switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f +" ?","Yes","No",0,0,1) ) { case 0: { f=currentDir.canonicalPath()+"/"+f; QString cmd="rm "+f; system( cmd.latin1()); populateList(); } break; case 1: // exit break; }; } } void fileBrowser::updateMimeTypeMenu() { disconnect( typemb, SIGNAL(selected(const QString&)), this, SLOT(showType(const QString&)) ); QString prev; // Type filter QStringList types; types << tr("All"); types << "--"; types += getMimeTypes(); prev = typemb->currentText(); typemb->clear(); typemb->insertItems(types); // typemb->select(prev); connect(typemb, SIGNAL(selected(const QString&)), this, SLOT(showType(const QString&))); } void fileBrowser::showType(const QString &t) { - qDebug(t); +// qDebug("Show type "+t); if(t.find("All",0,TRUE) != -1) { filterStr = "*"; } else { QStringList list = mimetypes.grep( t,TRUE); QString ext; for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { mimeType =(*it); - MimeType mt( mimeType); -// qDebug("mime "+mimeType); -// qDebug("description "+mt.description()); -// qDebug( "id "+mt.id()); -// qDebug("extension "+mt.extension()); -// if( mt.extension().isEmpty()) + MimeType mt(mimeType); + +// qDebug("mime "+mimeType); +// qDebug("description "+mt.description()); +// qDebug( "id "+mt.id()); +// qDebug("extension "+mt.extension()); + + if( mt.extension().isEmpty()) filterStr = "*"; -// else -// filterStr = "*."+ mt.extension()+" "; + else + filterStr = "*."+ mt.extension()+" "; // printf( "%s \n", (*it).latin1() ); } } currentDir.setNameFilter(filterStr); populateList(); update(); // if(fileSelector) { // disconnect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( docOpen( const DocLnk & ) ) ); // delete fileSelector; // } // fileSelector = new FileSelector( mimeType, FileStack, "fileselector" , FALSE, FALSE); //buggy // connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) ); // connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); // connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( docOpen( const DocLnk & ) ) ); // fileSelector->reread(); // if ( t == tr("All") ) { // icons->setTypeFilter("",TRUE); // } else { // icons->setTypeFilter(t+"/*",TRUE); // } } QStringList fileBrowser::getMimeTypes() { QStringList r; AppLnkSet apps( QPEApplication::qpeDir() + "apps" ); QFile file( QPEApplication::qpeDir()+"etc/available.mime"); file.open( IO_WriteOnly|IO_Truncate);//) for ( QListIterator<AppLnk> it( apps.children() ); it.current(); ++it ) { AppLnk* l; l = it.current(); QStringList maj = l->mimeTypes(); QStringList::ConstIterator f; for ( f = maj.begin(); f != maj.end(); f++ ) { QString temp = *f; + qDebug("type "+temp); mimetypes << temp; int sl = temp.find('/'); if (sl >= 0) { - QString k = temp.left(sl); + QString k = temp;//.left(sl); if( r.grep(k,TRUE).isEmpty() ) { r << k; k+="\n"; file.writeBlock( k.latin1(), k.length()); } } } } r.sort(); file.close(); return r; } void fileBrowser::receive( const QCString &msg, const QByteArray &data ) { // QDataStream stream( data, IO_ReadOnly ); // if (msg == "keyRegister(int key, QString channel, QString message)") // { // int k; // QString c, m; // stream >> k; // stream >> c; // stream >> m; } void fileBrowser::dirPathComboActivated( const QString & current) { chdir( current.latin1() ); currentDir.cd( current, TRUE); populateList(); update(); } void fileBrowser::dirPathEditPressed() { QString current = dirPathCombo->lineEdit()->text(); chdir( current.latin1() ); currentDir.cd( current, TRUE); populateList(); update(); } void fileBrowser::fillCombo(const QString ¤tPath) { dirPathCombo->lineEdit()->setText(currentPath); if( dirPathStringList.grep(currentPath,TRUE).isEmpty() ) { dirPathCombo->clear(); dirPathStringList.prepend(currentPath ); dirPathCombo->insertStringList( dirPathStringList,-1); } } InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "InputDialog" ); resize( 234, 50 ); setMaximumSize( QSize( 240, 50 ) ); setCaption( tr(name ) ); LineEdit1 = new QLineEdit( this, "LineEdit1" ); LineEdit1->setGeometry( QRect( 10, 10, 216, 22 ) ); } InputDialog::~InputDialog() { inputText= LineEdit1->text(); } void InputDialog::setTextEdit(const QString &string) { LineEdit1->setText(string); } diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp index 18402d4..84888c1 100644 --- a/core/apps/textedit/textedit.cpp +++ b/core/apps/textedit/textedit.cpp @@ -408,225 +408,234 @@ TextEdit::TextEdit( QWidget *parent, const char *name, WFlags f ) cfg.setGroup("View"); if(cfg.readEntry("startNew","TRUE") == "TRUE") { nStart->setOn(TRUE); fileNew(); } else { fileOpen(); } viewSelection = cfg.readNumEntry( "FileView", 0 ); } void TextEdit::cleanUp() { // save(); Config cfg("TextEdit"); cfg.setGroup("View"); QFont f = editor->font(); cfg.writeEntry("FontSize",f.pointSize()); cfg.writeEntry("Bold",f.bold()); cfg.writeEntry("Italic",f.italic()); cfg.writeEntry("Wrap",editor->wordWrap() == QMultiLineEdit::WidgetWidth); cfg.writeEntry( "FileView", viewSelection ); } TextEdit::~TextEdit() { } void TextEdit::zoomIn() { setFontSize(editor->font().pointSize()+1,FALSE); } void TextEdit::zoomOut() { 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]; } else { if ( fontsize[i] > sz ) { s = fontsize[i]; break; } } } QFont f = editor->font(); f.setPointSize(s); editor->setFont(f); zin->setEnabled(s != fontsize[nfontsizes-1]); zout->setEnabled(s != fontsize[0]); } void TextEdit::setBold(bool y) { QFont f = editor->font(); f.setBold(y); editor->setFont(f); } void TextEdit::setItalic(bool y) { QFont f = editor->font(); f.setItalic(y); editor->setFont(f); } void TextEdit::setWordWrap(bool y) { bool state = editor->edited(); editor->setWordWrap(y ? QMultiLineEdit::WidgetWidth : QMultiLineEdit::NoWrap ); editor->setEdited( state ); } void TextEdit::fileNew() { // if( !bFromDocView ) { // saveAs(); // } newFile(DocLnk()); } void TextEdit::fileOpen() { - QString str = OFileDialog::getOpenFileName(1,"/","", QStringList() , this ); - if(!str.isEmpty() ) - openFile( str ); -// browseForFiles = new fileBrowser(this,tr("Open File"),TRUE,0, "text/*"); // -// browseForFiles->setFileView( viewSelection ); -// browseForFiles->showMaximized(); -// // if( result != -1 ) - -// 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(str ); -// } -// } -// viewSelection = browseForFiles->SelectionCombo->currentItem(); -// } -// delete browseForFiles; -// editor->setEdited( FALSE); -// edited1=FALSE; -// edited=FALSE; -// if(caption().left(1)=="*") -// setCaption(caption().right(caption().length()-1)); -// doSearchBar(); + Config cfg("TextEdit"); + cfg.setGroup("View"); + bool b=FALSE; + if(cfg.readEntry("useOldFileDialog") == "TRUE") + b=TRUE; + if(!b) { + QString str = OFileDialog::getOpenFileName( 1,"/","", "text/plain", this ); + if(!str.isEmpty() ) + openFile( str ); + } else { + QString str; + browseForFiles = new fileBrowser(this,tr("Open File"),TRUE,0, "text/*"); // + browseForFiles->setFileView( viewSelection ); + browseForFiles->showMaximized(); +// if( result != -1 ) + + 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(str ); + } + } + viewSelection = browseForFiles->SelectionCombo->currentItem(); + } + delete browseForFiles; + editor->setEdited( FALSE); + edited1=FALSE; + edited=FALSE; + if(caption().left(1)=="*") + setCaption(caption().right(caption().length()-1)); + doSearchBar(); + } } void TextEdit::doSearchBar() { Config cfg("TextEdit"); cfg.setGroup("View"); if(cfg.readEntry("SearchBar","Closed") != "Opened") searchBar->hide(); } #if 0 void TextEdit::slotFind() { FindDialog frmFind( tr("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() { clear(); fileOpen(); } void TextEdit::editCut() { #ifndef QT_NO_CLIPBOARD editor->cut(); #endif } void TextEdit::editCopy() { #ifndef QT_NO_CLIPBOARD 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 ); } 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 ); } void TextEdit::newFile( const DocLnk &f ) { DocLnk nf = f; nf.setType("text/plain"); clear(); setWState (WState_Reserved1 ); editor->setFocus(); diff --git a/core/apps/textedit/textedit.h b/core/apps/textedit/textedit.h index 61fa2a0..edc6fe3 100644 --- a/core/apps/textedit/textedit.h +++ b/core/apps/textedit/textedit.h @@ -1,124 +1,124 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** 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. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ // additions made by L.J. Potter Sun 02-17-2002 22:27:46 #ifndef TEXTEDIT_H #define TEXTEDIT_H #define QTEXTEDIT_OPEN_API #include "fileBrowser.h" #include "fileSaver.h" #include <qpe/filemanager.h> #include <qpe/qcopenvelope_qws.h> #include <opie/ofileselector.h> #include <qmainwindow.h> #include <qmultilineedit.h> #include <qlist.h> #include <qmap.h> class QAction; class QWidgetStack; class QToolButton; class QPopupMenu; class QToolBar; class QLineEdit; class QAction; class FileSelector; class QpeEditor; class QPopupMenu; class TextEdit : public QMainWindow { Q_OBJECT public: TextEdit( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); ~TextEdit(); QPopupMenu *font; - QAction *nStart; + QAction *nStart, *nFileDlgOpt; bool edited, edited1; void openFile( const QString & ); QCopChannel * channel; public slots: void editorChanged(); void receive(const QCString&, const QByteArray&); protected: void closeEvent( QCloseEvent *e ); void doSearchBar(); private slots: void setDocument(const QString&); void changeFont(); void fileNew(); void fileRevert(); void fileOpen(); void changeStartConfig(bool); bool save(); bool saveAs(); void cleanUp(); void editCut(); void editCopy(); void editPaste(); void editFind(); void editDelete(); void findNext(); void findClose(); void search(); void accept(); void newFile( const DocLnk & ); void openFile( const DocLnk & ); void showEditTools(); void zoomIn(); void zoomOut(); void setBold(bool y); void setItalic(bool y); void setWordWrap(bool y); private: void colorChanged( const QColor &c ); void clear(); void updateCaption( const QString &name=QString::null ); void setFontSize(int sz, bool round_down_not_up); private: fileSaver *fileSaveDlg; fileBrowser *browseForFiles; QpeEditor* editor; QToolBar *menu, *editBar, *searchBar; QLineEdit *searchEdit; DocLnk *doc; bool searchVisible; bool bFromDocView; int viewSelection; QAction *zin, *zout; QString currentFileName; }; #endif |