-rw-r--r-- | noncore/apps/opie-gutenbrowser/NetworkDialog.cpp | 72 |
1 files changed, 8 insertions, 64 deletions
diff --git a/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp b/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp index d629449..af14aac 100644 --- a/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp +++ b/noncore/apps/opie-gutenbrowser/NetworkDialog.cpp @@ -1,269 +1,213 @@ // /*************************************************************************** // NetworkDialog.cpp - description // begin : Sun Aug 27 2000 // copyright : (C) 2000 - 2004 by L.J. Potter // email : ljp@llornkcor.com // * This program is free software; you can redistribute it and/or modify * // * it under the terms of the GNU General Public License as published by * // * the Free Software Foundation; either version 2 of the License, or * // * (at your option) any later version. * // ***************************************************************************/ // // half-assed attempt at providing a network dialog. // /* Created: Sun Aug 27 15:24:52 2000*/ #include "NetworkDialog.h" #include "gutenbrowser.h" /* OPIE */ #include <opie2/odebug.h> /* QT */ #include <qprogressbar.h> #include <qstringlist.h> #include <qpe/config.h> #include <qvaluelist.h> #include <qapplication.h> #include <qfile.h> #include <qstringlist.h> #include <qlabel.h> #include <qpushbutton.h> #include <qlayout.h> /* STD */ #include <unistd.h> extern "C" { #include <ftplib.h> } QProgressBar* ProgressBar1; QPushButton* buttonCancel; static netbuf *conn = NULL; static int log_progress(netbuf *ctl, int xfered, void *arg) { int fsz = *(int *)arg; int pct = (xfered * 100) / fsz; printf("%3d%%\r", pct); fflush(stdout); ProgressBar1->setProgress(xfered); qApp->processEvents(); return 1; } NetworkDialog::NetworkDialog( QWidget* parent, const char* name, bool modal, WFlags fl, const QStringList netL) : QDialog( parent, name, modal, fl ) { ftp_host = netL[0]; networkUrl = strUrl = netL[0]; dir = ftp_base_dir = netL[1]; localFileName = netL[2]; s_partialFileName = netL[3]; resize(240,120); local_library = (QDir::homeDirPath ()) +"/Applications/gutenbrowser/"; // autoOk = autoDownload; // if( networkUrl.find("ftp",0,false)== -1 ) { // if ( !name ) // setName( "HTTP NetworkDialog" ); // setCaption( tr( "HTTP Download ) ); // qInitNetworkProtocols(); // registers ftp protocol // for now // QNetworkProtocol::registerNetworkProtocol( "http", new QNetworkProtocolFactory<Http> ); // } else { if ( !name ) setName( "FTP NetworkDialog" ); setCaption(tr("FTP Download")); // } initDialog(); //opens file to be written } NetworkDialog::~NetworkDialog() { } void NetworkDialog::initDialog() { + QGridLayout *layout = new QGridLayout( this ); totalBytesDownloaded=0; warnLabel = new QLabel( this, "TextLabel" ); - warnLabel ->setText( tr( "Push Ok to download file...." ) ); + warnLabel ->setText( tr( "Download should start shortly" ) ); TextLabel3 = new QLabel( this, "TextLabel3" ); TextLabel3->setText( ""); - QWidget* Layout1 = new QWidget( this, "Layout1" ); + layout->addMultiCellWidget( warnLabel, 0, 0, 0, 5 ); + layout->addMultiCellWidget( TextLabel3, 1, 1, 0, 5 ); - hbox = new QHBoxLayout(Layout1); - hbox->setMargin(4); - - ProgressBar1 = new QProgressBar( Layout1, "ProgressBar1" ); + ProgressBar1 = new QProgressBar( this, "ProgressBar1" ); ProgressBar1->setProgress(0); - hbox->addWidget(ProgressBar1,10,AlignCenter); + layout->addMultiCellWidget( ProgressBar1, 3, 3, 0, 4 ); // hbox->addStretch(1); -// buttonOk = new QPushButton( Layout1, "buttonOk" ); -// buttonOk->setText( tr( "&OK" ) ); -// hbox->addWidget(buttonOk,0,AlignRight); -// hbox->addSpacing(5); - buttonCancel = new QPushButton( Layout1, "buttonCancel" ); + buttonCancel = new QPushButton( this, "buttonCancel" ); buttonCancel->setText( tr( "&Cancel" ) ); buttonCancel->setAutoDefault( TRUE ); buttonCancel->setDefault( TRUE ); - hbox->addWidget(buttonCancel,0,AlignRight); - - ProgressBar1->setFixedSize(150,25); -// buttonOk->setFixedSize(35,22); - buttonCancel->setFixedSize(50,25); - warnLabel ->setGeometry( QRect( 5,1,230,25)); - TextLabel3->setGeometry( QRect( 5,20,230,25)); - Layout1->setGeometry( QRect(1,60,235,50)); //TODO check these!! - -// timer= new QTimer(this,"vu timer"); -// connectionTimer=new QTimer(this,"connectionTimeout"); + layout->addMultiCellWidget( buttonCancel, 3, 3, 5, 5 ); -// connect(buttonOk,SIGNAL(clicked()),this,SLOT(doOk())); connect(buttonCancel,SIGNAL(clicked()),this,SLOT(reject())); -// connect( timer, SIGNAL(timeout()), this , SLOT(timeSlot())); -// connect( connectionTimer,SIGNAL( timeout()),this,SLOT( connectionTimeSlot())); -// if(autoOk) { -// buttonOk->setDown(true); QTimer::singleShot( 1000, this, SLOT( doOk() )); -// } - -} -void NetworkDialog::timeSlot() { - -// if(timerProgess < 19 && posTimer) { -// ProgressBar1->setProgress(timerProgess); -// timerProgess++; -// } else if(timerProgess > 19 && posTimer) { -// ProgressBar1->setProgress(timerProgess); -// timerProgess++; -// posTimer=FALSE; -// } -// if(timerProgess > 1 &&!posTimer) { -// ProgressBar1->setProgress(timerProgess); -// timerProgess--; -// } else if(timerProgess > 1 &&!posTimer){ -// ProgressBar1->setProgress(timerProgess); -// timerProgess--; -// posTimer=TRUE; -// } -// // odebug << "timer event" << oendl; -// qApp->processEvents(); -// repaint(); } -void NetworkDialog::connectionTimeSlot() { -// odebug << "Connections timed out" << oendl; -// ftpQuit(); -// qApp->processEvents(); -// repaint(); -// reject(); -} - - /* downloads the file networkUrl */ bool NetworkDialog::downloadFile( QString networkUrl ) { int fsz; -// timer->start( 250 , FALSE); -// posTimer=TRUE; -// connectionTimer->start( 600 , FALSE); warnLabel ->setText( ""); qApp->processEvents(); odebug << "Downloading: " << networkUrl << "" << oendl; odebug << "Into: " << localFileName << "" << oendl; if( networkUrl.length() > 5) { QString ftp_user = "anonymous"; QString ftp_pass = "zaurus@gutenbrowser.com"; // ftp_host= networkUrl.mid(networkUrl.find("ftp://",0, TRUE), if(ftp_host.length() < 2) { odebug << "Please select an ftp host" << oendl; successDownload=false; QMessageBox::message("Note","You need to select an ftp host"); return false; } QString msg; odebug << ftp_host << oendl; odebug << "Opening ftp connection." << oendl; warnLabel->setText("connecting to: "+ftp_host ); qApp->processEvents(); /////////// Open FTP connection if (!FtpConnect( ftp_host.latin1(), &conn)) { i=0; successDownload=false; QMessageBox::message("Note","Unable to connect to\n"+ftp_host); return false; } TextLabel3->setText("Opening ftp connection."); qApp->processEvents(); if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { FtpQuit(conn); successDownload=false; msg.sprintf("Unable to log in\n%s",FtpLastResponse(conn)); QMessageBox::message("Note",msg); return false; } odebug << "Changing directories." << oendl; TextLabel3->setText("Changing directories."); qApp->processEvents(); if (!FtpChdir( dir.latin1(), conn )) { successDownload=false; msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn)); QMessageBox::message("Note",msg); FtpQuit(conn); return false; } // if (!FtpNlst( "./.guten_temp", dir, conn)) { // successDownload=false; // msg.sprintf("Unable to change directories "+dir+"\n%s",FtpLastResponse(conn)); // QMessageBox::message("Note",msg); // FtpQuit(conn); // return false; // } odebug << "Requesting directory list." << oendl; TextLabel3->setText("Getting directory list."); qApp->processEvents(); if (!FtpDir( "./.guten_temp", dir.latin1(), conn) ) { msg.sprintf("Unable to list the directory\n"+dir+"\n%s",FtpLastResponse(conn)); QMessageBox::message("Note",msg); successDownload=false; FtpQuit(conn); return false; } QFile tmp("./.guten_temp"); QString s, File_Name; if (tmp.open(IO_ReadOnly)) { QTextStream t( &tmp ); // use a text stream odebug << "Finding partial filename "+s_partialFileName << oendl; while ( !t.eof()) { s = t.readLine(); if (s.contains(s_partialFileName, FALSE)) { QString str = s.right( (s.length()) - (s.find(s_partialFileName, FALSE)) ); if (str.contains(".txt")) { File_Name = str; odebug << "Found file_name "+ File_Name << oendl; break; } // if (str.contains(".zip")) { // File_Name = str; // odebug << "Found file_name "+ File_Name << oendl; // break; // } } } //end of while loop tmp.close(); // tmp.remove(); ///TODO this is for release version Zaurus } else odebug << "Error opening temp file." << oendl; Config cfg("Gutenbrowser"); cfg.setGroup("General"); QString temp=cfg.readEntry("DownloadDirectory",local_library); |