Diffstat (limited to 'noncore/apps/opie-reader/fileBrowser.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/fileBrowser.cpp | 84 |
1 files changed, 53 insertions, 31 deletions
diff --git a/noncore/apps/opie-reader/fileBrowser.cpp b/noncore/apps/opie-reader/fileBrowser.cpp index 72a1222..2291c85 100644 --- a/noncore/apps/opie-reader/fileBrowser.cpp +++ b/noncore/apps/opie-reader/fileBrowser.cpp @@ -9,48 +9,35 @@ Extensive modification by Tim Wentford to allow it to work in rotated mode ****************************************************************************/ #include "fileBrowser.h" #include "QtrListView.h" #include <qlineedit.h> #include <qpushbutton.h> +#include <qfile.h> +#include <qmessagebox.h> #ifndef _WINDOWS #include <unistd.h> #endif #include <qlayout.h> #ifdef _WINDOWS #include <direct.h> #endif -#include <qpe/qpeapplication.h> - - fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, bool modal, WFlags fl , const QString filter, const QString iPath ) : QDialog( parent, name, true, fl/* | WStyle_Customize | WStyle_Tool*/), filterspec(QDir::All) { // showMaximized(); if ( !name ) setName( "fileBrowser" ); -/* - if (parent != NULL) - { -#ifdef OPIE - move(0,0); - resize( parent->width(), parent->height() ); -#else - setGeometry(parent->x(), parent->y(), parent->width(), parent->height() ); -#endif - } -*/ -// showFullScreen(); setCaption(tr( "Browse for file" ) ); filterStr=filter; buttonOk = new QPushButton( this, "buttonOk" ); - buttonOk->setFixedSize( 25, 25 ); + // buttonOk->setFixedSize( 25, 25 ); buttonOk->setAutoDefault( false ); buttonOk->setText( tr( "/" ) ); buttonShowHidden = new QPushButton( this, "buttonShowHidden" ); // buttonShowHidden->setFixedSize( 50, 25 ); buttonShowHidden->setText( tr( "Hidden" ) ); @@ -71,23 +58,39 @@ fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, boo ListView->setColumnWidthMode(0, QListView::Manual); ListView->setColumnWidthMode(1, QListView::Manual); // signals and slots connections connect( buttonShowHidden, SIGNAL( toggled(bool) ), this, SLOT( setHidden(bool) ) ); connect( buttonOk, SIGNAL( clicked() ), this, SLOT( OnRoot() ) ); - connect( ListView, SIGNAL(doubleClicked(QListViewItem*)), SLOT(listDoubleClicked(QListViewItem*)) ); - connect( ListView, SIGNAL(clicked(QListViewItem*)), SLOT(listClicked(QListViewItem*)) ); - connect( ListView, SIGNAL(OnOKButton(QListViewItem*)), SLOT(listClicked(QListViewItem*)) ); - connect( ListView, SIGNAL(OnCentreButton(QListViewItem*)), SLOT(listClicked(QListViewItem*)) ); + connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); + connect( ListView, SIGNAL(clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); + connect( ListView, SIGNAL(OnOKButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); + connect( ListView, SIGNAL(OnCentreButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); connect( ListView, SIGNAL(OnCancelButton()), SLOT(OnCancel()) ); QVBoxLayout* grid = new QVBoxLayout(this); + grid->addWidget(dirLabel); QHBoxLayout* hgrid = new QHBoxLayout(grid); - hgrid->addWidget(dirLabel,1); - hgrid->addWidget(buttonShowHidden); + + QPushButton* bt = new QPushButton( this ); + bt->setText( tr( "SD" ) ); + connect( bt, SIGNAL( clicked() ), this, SLOT( onSD() ) ); + hgrid->addWidget(bt); + + bt = new QPushButton( this ); + bt->setText( tr( "CF" ) ); + connect( bt, SIGNAL( clicked() ), this, SLOT( onCF() ) ); + hgrid->addWidget(bt); + + bt = new QPushButton( this ); + bt->setText( tr( "Home" ) ); + connect( bt, SIGNAL( clicked() ), this, SLOT( onHome() ) ); + hgrid->addWidget(bt); + hgrid->addWidget(buttonOk); + hgrid->addWidget(buttonShowHidden); grid->addWidget(ListView,1); if (allownew) { m_filename = new QLineEdit(this); grid->addWidget(m_filename); connect( m_filename, SIGNAL( returnPressed() ), this, SLOT( onReturn() )); @@ -111,14 +114,13 @@ fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, boo currentDir.setPath(QDir::currentDirPath()); chdir(QDir::currentDirPath().latin1()); } populateList(); - if (modal) - QPEApplication::showDialog( this ); + if (modal) showMaximized(); } void fileBrowser::resizeEvent(QResizeEvent* e) { ListView->setColumnWidth(1,(ListView->width())/4); ListView->setColumnWidth(0,ListView->width()-20-ListView->columnWidth(1)); @@ -129,13 +131,13 @@ fileBrowser::~fileBrowser() } void fileBrowser::populateList() { ListView->clear(); -////odebug << currentDir.canonicalPath() << oendl; +////qDebug(currentDir.canonicalPath()); // currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::NoSymLinks ); currentDir.setFilter( filterspec ); currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); currentDir.setMatchAllDirs(TRUE); currentDir.setNameFilter(filterStr); @@ -153,34 +155,34 @@ void fileBrowser::populateList() if( fi->isDir() ) { fileL+="/"; } else { -//// odebug << "Not a dir: "+currentDir.canonicalPath()+fileL << oendl; +//// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); } new QListViewItem( ListView,fileL,fileS ); } ++it; } ListView->setSorting( 2, FALSE); dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath()); ListView->setFocus(); } void fileBrowser::upDir() { -//// odebug << currentDir.canonicalPath() << oendl; +//// qDebug(currentDir.canonicalPath()); } void fileBrowser::listClicked(QListViewItem *selectedItem) { if (selectedItem == NULL) return; QString strItem=selectedItem->text(0); -//// odebug << "" << strItem << "" << oendl; +//// qDebug("%s", (const char*)strItem); QString strSize=selectedItem->text(1); strSize.stripWhiteSpace(); @@ -229,15 +231,13 @@ void fileBrowser::OnOK() { accept(); } void fileBrowser::OnRoot() { - currentDir.cd("/", TRUE); - populateList(); - chdir("/"); + setdir("/"); } void fileBrowser::OnCancel() { reject(); } @@ -261,6 +261,28 @@ void fileBrowser::onReturn() else { filename = QDir::cleanDirPath(currentDir.canonicalPath()+"/"+m_filename->text()); } OnOK(); } + +void fileBrowser::onCF() +{ + setdir("/mnt/cf"); +} + +void fileBrowser::onSD() +{ + setdir("/mnt/card"); +} + +void fileBrowser::onHome() +{ + setdir(QDir::homeDirPath()); +} + +void fileBrowser::setdir(const QString& s) +{ + currentDir.cd(s, TRUE); + populateList(); + chdir(s); +} |