summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/apps/opie-gutenbrowser/NetworkDialog.cpp72
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);