summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieftp/opieftp.cpp260
-rw-r--r--noncore/net/opieftp/opieftp.h42
2 files changed, 237 insertions, 65 deletions
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp
index 9d6356d..9beac94 100644
--- a/noncore/net/opieftp/opieftp.cpp
+++ b/noncore/net/opieftp/opieftp.cpp
@@ -48,12 +48,13 @@ extern "C" {
48#include <qlayout.h> 48#include <qlayout.h>
49#include <qimage.h> 49#include <qimage.h>
50#include <qpixmap.h> 50#include <qpixmap.h>
51#include <qmessagebox.h> 51#include <qmessagebox.h>
52#include <qlineedit.h> 52#include <qlineedit.h>
53#include <qregexp.h> 53#include <qregexp.h>
54#include <qlistbox.h>
54 55
55#include <unistd.h> 56#include <unistd.h>
56#include <stdlib.h> 57#include <stdlib.h>
57 58
58 59
59QProgressBar *ProgressBar; 60QProgressBar *ProgressBar;
@@ -71,13 +72,13 @@ static int log_progress(netbuf *ctl, int xfered, void *arg)
71} 72}
72 73
73OpieFtp::OpieFtp( ) 74OpieFtp::OpieFtp( )
74 : QMainWindow( ) 75 : QMainWindow( )
75{ 76{
76 setCaption( tr( "OpieFtp" ) ); 77 setCaption( tr( "OpieFtp" ) );
77 78 fuckeduphack=FALSE;
78 QGridLayout *layout = new QGridLayout( this ); 79 QGridLayout *layout = new QGridLayout( this );
79 layout->setSpacing( 2); 80 layout->setSpacing( 2);
80 layout->setMargin( 2); 81 layout->setMargin( 2);
81 82
82 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 83 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
83 84
@@ -221,19 +222,24 @@ OpieFtp::OpieFtp( )
221 tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); 222 tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 );
222 223
223 UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); 224 UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" );
224 UsernameComboBox->setEditable(TRUE); 225 UsernameComboBox->setEditable(TRUE);
225 tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); 226 tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 );
226 227
228 connect( UsernameComboBox,SIGNAL(textChanged(const QString &)),this,SLOT( UsernameComboBoxEdited(const QString & ) ));
229
227 TextLabel2 = new QLabel( tab_3, "TextLabel2" ); 230 TextLabel2 = new QLabel( tab_3, "TextLabel2" );
228 TextLabel2->setText( tr( "Password" ) ); 231 TextLabel2->setText( tr( "Password" ) );
229 tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); 232 tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 );
230 233
231 PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); 234 PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" );
232 PasswordEdit->setEchoMode(QLineEdit::Password); 235 PasswordEdit->setEchoMode(QLineEdit::Password);
233 tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); 236 tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 );
237
238 connect( PasswordEdit,SIGNAL(textChanged(const QString &)),this,SLOT( PasswordEditEdited(const QString & ) ));
239
234//PasswordEdit->setFixedWidth(85); 240//PasswordEdit->setFixedWidth(85);
235 TextLabel3 = new QLabel( tab_3, "TextLabel3" ); 241 TextLabel3 = new QLabel( tab_3, "TextLabel3" );
236 TextLabel3->setText( tr( "Remote server" ) ); 242 TextLabel3->setText( tr( "Remote server" ) );
237 tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); 243 tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 );
238 244
239 ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); 245 ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" );
@@ -256,23 +262,34 @@ OpieFtp::OpieFtp( )
256 262
257 PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); 263 PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" );
258 PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); 264 PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows );
259 PortSpinBox->setMaxValue(32786); 265 PortSpinBox->setMaxValue(32786);
260 tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); 266 tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1);
261 267
262 QPushButton *deleteServerBtn; 268 serverListView = new QListBox( tab_3, "ServerListView" );
263 deleteServerBtn = new QPushButton( "Delete Server", tab_3 , "OpenButton" ); 269 tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5);
264 tabLayout_3->addMultiCellWidget( deleteServerBtn, 5, 5, 2, 3);
265
266 connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer()));
267 270
271 connect( serverListView, SIGNAL( highlighted( const QString &)),
272 this,SLOT( serverListClicked( const QString &) ) );
273
268 connectServerBtn = new QPushButton( "Connect", tab_3 , "ConnectButton" ); 274 connectServerBtn = new QPushButton( "Connect", tab_3 , "ConnectButton" );
269 tabLayout_3->addMultiCellWidget( connectServerBtn, 5, 5, 0, 1); 275 tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1);
270 connectServerBtn->setToggleButton(TRUE); 276 connectServerBtn->setToggleButton(TRUE);
271 connect(connectServerBtn,SIGNAL( toggled( bool)),SLOT( connectorBtnToggled(bool) )); 277 connect(connectServerBtn,SIGNAL( toggled( bool)),SLOT( connectorBtnToggled(bool) ));
272 278
279 newServerButton= new QPushButton( "Add", tab_3 , "NewServerButton" );
280 tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2);
281 connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() ));
282
283 QPushButton *deleteServerBtn;
284 deleteServerBtn = new QPushButton( "Delete", tab_3 , "OpenButton" );
285 tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3);
286
287 connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer()));
288
289
273 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); 290 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
274 tabLayout_3->addItem( spacer, 5, 0 ); 291 tabLayout_3->addItem( spacer, 5, 0 );
275 292
276 TabWidget->insertTab( tab_3, tr( "Config" ) ); 293 TabWidget->insertTab( tab_3, tr( "Config" ) );
277 294
278 connect(TabWidget,SIGNAL(currentChanged(QWidget *)), 295 connect(TabWidget,SIGNAL(currentChanged(QWidget *)),
@@ -293,22 +310,19 @@ OpieFtp::OpieFtp( )
293 310
294 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), 311 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()),
295 this,SLOT(currentPathComboChanged())); 312 this,SLOT(currentPathComboChanged()));
296 313
297 ProgressBar = new QProgressBar( this, "ProgressBar" ); 314 ProgressBar = new QProgressBar( this, "ProgressBar" );
298 layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); 315 layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4);
299 316 ProgressBar->setMaximumHeight(10);
300 fillCombos();
301
302 filterStr="*"; 317 filterStr="*";
303 b=FALSE; 318 b=FALSE;
304 populateLocalView(); 319 populateLocalView();
305qDebug("read COnfig"); 320 readConfig();
306 readConfig(); 321
307 qDebug("Set current item"); 322// ServerComboBox->setCurrentItem(currentServerConfig);
308 ServerComboBox->setCurrentItem(currentServerConfig);
309 323
310 TabWidget->setCurrentPage(2); 324 TabWidget->setCurrentPage(2);
311} 325}
312 326
313OpieFtp::~OpieFtp() 327OpieFtp::~OpieFtp()
314{ 328{
@@ -323,12 +337,16 @@ void OpieFtp::cleanUp()
323 sfile+="/._temp"; 337 sfile+="/._temp";
324 else 338 else
325 sfile+="._temp"; 339 sfile+="._temp";
326 QFile file( sfile); 340 QFile file( sfile);
327 if(file.exists()) 341 if(file.exists())
328 file.remove(); 342 file.remove();
343 Config cfg("opieftp");
344 cfg.setGroup("Server");
345 cfg.writeEntry("currentServer", currentServerConfig);
346
329 exit(0); 347 exit(0);
330} 348}
331 349
332void OpieFtp::tabChanged(QWidget *w) 350void OpieFtp::tabChanged(QWidget *w)
333{ 351{
334 if (TabWidget->currentPageIndex() == 0) { 352 if (TabWidget->currentPageIndex() == 0) {
@@ -370,16 +388,24 @@ void OpieFtp::newConnection()
370 PortSpinBox->setValue( 21); 388 PortSpinBox->setValue( 21);
371 TabWidget->setCurrentPage(2); 389 TabWidget->setCurrentPage(2);
372} 390}
373 391
374void OpieFtp::serverComboEdited(const QString & edit) 392void OpieFtp::serverComboEdited(const QString & edit)
375{ 393{
376 if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) { 394// if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) {
377 qDebug("ServerComboEdited"); 395// qDebug("ServerComboEdited");
378 currentServerConfig = -1; 396// // currentServerConfig = -1;
379 } 397// }
398}
399
400void OpieFtp::UsernameComboBoxEdited(const QString & use) {
401// currentServerConfig = -1;
402}
403
404void OpieFtp::PasswordEditEdited(const QString & pass) {
405// currentServerConfig = -1;
380} 406}
381 407
382void OpieFtp::connectorBtnToggled(bool On) 408void OpieFtp::connectorBtnToggled(bool On)
383{ 409{
384 if(On) { 410 if(On) {
385 connector(); 411 connector();
@@ -391,51 +417,71 @@ void OpieFtp::connectorBtnToggled(bool On)
391 417
392void OpieFtp::connector() 418void OpieFtp::connector()
393{ 419{
394// QCopEnvelope ( "QPE/System", "busy()" ); 420// QCopEnvelope ( "QPE/System", "busy()" );
395// qApp->processEvents(); 421// qApp->processEvents();
396 currentRemoteDir=remotePath->text(); 422 currentRemoteDir=remotePath->text();
397 if(ServerComboBox->currentText().isEmpty()) { 423
424 if( ServerComboBox->currentText().isEmpty()) {
425
398 QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0); 426 QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0);
399 TabWidget->setCurrentPage(2); 427 TabWidget->setCurrentPage(2);
400 ServerComboBox->setFocus(); 428 ServerComboBox->setFocus();
401 connectServerBtn->setOn(FALSE); 429 connectServerBtn->setOn(FALSE);
402 connectServerBtn->setText( tr("Connect")); 430 connectServerBtn->setText( tr("Connect"));
403 return; 431 return;
404 } 432 }
433
405 FtpInit(); 434 FtpInit();
435
406 TabWidget->setCurrentPage(1); 436 TabWidget->setCurrentPage(1);
407 QString ftp_host = ServerComboBox->currentText(); 437 QString ftp_host = ServerComboBox->currentText();
408 QString ftp_user = UsernameComboBox->currentText(); 438 QString ftp_user = UsernameComboBox->currentText();
409 QString ftp_pass = PasswordEdit->text(); 439 QString ftp_pass = PasswordEdit->text();
410 QString port=PortSpinBox->cleanText(); 440 QString port=PortSpinBox->cleanText();
411 port.stripWhiteSpace(); 441 port.stripWhiteSpace();
412 442
443 Config cfg("opieftp");
444 cfg.setGroup("Server");
445 int current=cfg.readNumEntry("currentServer", 1);
446
447// if(ftp_host!= cfg.readEntry(QString::number( current)))
448// currentServerConfig=-1;
449// cfg.setGroup(QString::number(current));
450// if( ftp_user != cfg.readEntry("Username"))
451// currentServerConfig=-1;
452// if(ftp_pass != cfg.readEntry(cfg.readEntry("Username")))
453// currentServerConfig=-1;
454
455
413 if(ftp_host.find("ftp://",0, TRUE) != -1 ) 456 if(ftp_host.find("ftp://",0, TRUE) != -1 )
414 ftp_host=ftp_host.right(ftp_host.length()-6); 457 ftp_host=ftp_host.right(ftp_host.length()-6);
415 ftp_host+=":"+port; 458 ftp_host+=":"+port;
459
416 if (!FtpConnect( ftp_host.latin1(), &conn)) { 460 if (!FtpConnect( ftp_host.latin1(), &conn)) {
417 QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host); 461 QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host);
418 connectServerBtn->setOn(FALSE); 462 connectServerBtn->setOn(FALSE);
419 connectServerBtn->setText( tr("Connect")); 463 connectServerBtn->setText( tr("Connect"));
420 return ; 464 return ;
421 } 465 }
466
422 if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { 467 if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) {
423 QString msg; 468 QString msg;
424 msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn)); 469 msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn));
425 msg.replace(QRegExp(":"),"\n"); 470 msg.replace(QRegExp(":"),"\n");
426 QMessageBox::message(tr("Note"),msg); 471 QMessageBox::message(tr("Note"),msg);
427 if(conn) 472 if(conn)
428 FtpQuit(conn); 473 FtpQuit(conn);
429 connectServerBtn->setOn(FALSE); 474 connectServerBtn->setOn(FALSE);
430 connectServerBtn->setText( tr("Connect")); 475 connectServerBtn->setText( tr("Connect"));
431 return ; 476 return ;
432 } 477 }
478
433 remoteDirList("/") ; 479 remoteDirList("/") ;
434 setCaption(ftp_host); 480 setCaption(ftp_host);
435 if( currentServerConfig == -1) 481 if( currentServerConfig == -1)
436 writeConfig(); 482 writeConfig();
437 connectServerBtn->setText( tr("Disconnect")); 483 connectServerBtn->setText( tr("Disconnect"));
438// QCopEnvelope ( "QPE/System", "notBusy()" ); 484// QCopEnvelope ( "QPE/System", "notBusy()" );
439} 485}
440 486
441void OpieFtp::disConnector() 487void OpieFtp::disConnector()
@@ -619,13 +665,13 @@ void OpieFtp::populateLocalView()
619 fileL+="/"; 665 fileL+="/";
620 isDir=TRUE; 666 isDir=TRUE;
621// qDebug( fileL); 667// qDebug( fileL);
622 } 668 }
623 } 669 }
624 if(fileL !="./" && fi->exists()) { 670 if(fileL !="./" && fi->exists()) {
625 item= new QListViewItem( Local_View,fileL, fileDate, fileS ); 671 item = new QListViewItem( Local_View,fileL, fileDate, fileS );
626 QPixmap pm; 672 QPixmap pm;
627 673
628 if(isDir || fileL.find("/",0,TRUE) != -1) { 674 if(isDir || fileL.find("/",0,TRUE) != -1) {
629 if( !QDir( fi->filePath() ).isReadable()) 675 if( !QDir( fi->filePath() ).isReadable())
630 pm = Resource::loadPixmap( "lockedfolder" ); 676 pm = Resource::loadPixmap( "lockedfolder" );
631 else 677 else
@@ -1146,105 +1192,138 @@ void OpieFtp::readConfig()
1146 fillCombos(); 1192 fillCombos();
1147 Config cfg("opieftp"); 1193 Config cfg("opieftp");
1148 cfg.setGroup("Server"); 1194 cfg.setGroup("Server");
1149 currentServerConfig = cfg.readNumEntry("currentServer", -1); 1195 currentServerConfig = cfg.readNumEntry("currentServer", -1);
1150 1196
1151// qDebug("Reading %d", currentServerConfig); 1197// qDebug("Reading %d", currentServerConfig);
1152 serverComboSelected( currentServerConfig); 1198 serverComboSelected( currentServerConfig-1);
1199
1153} 1200}
1154 1201
1155void OpieFtp::writeConfig() 1202void OpieFtp::writeConfig()
1156{ 1203{
1204 qDebug("write config");
1157 Config cfg("opieftp"); 1205 Config cfg("opieftp");
1158 cfg.setGroup("Server"); 1206 cfg.setGroup("Server");
1207
1159 QString username, remoteServerStr, remotePathStr, password, port, temp; 1208 QString username, remoteServerStr, remotePathStr, password, port, temp;
1209
1160 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1210 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1211
1161 if( currentServerConfig == -1) { 1212 if( currentServerConfig == -1) {
1162 for (int i = 1; i <= numberOfEntries; i++) { 1213
1214 for (int i = 1; i <= numberOfEntries; i++) {
1163 temp.setNum(i); 1215 temp.setNum(i);
1164 cfg.setGroup("Server"); 1216 cfg.setGroup("Server");
1165 QString tempStr = cfg.readEntry( temp,""); 1217 QString tempStr = cfg.readEntry( temp,"");
1166 } 1218 }
1219
1167 temp.setNum( numberOfEntries + 1); 1220 temp.setNum( numberOfEntries + 1);
1168 cfg.setGroup("Server"); 1221 cfg.setGroup("Server");
1222
1169 remoteServerStr = cfg.readEntry( temp,""); 1223 remoteServerStr = cfg.readEntry( temp,"");
1224
1170 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); 1225 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE);
1171 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); 1226 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider);
1172 1227
1173 temp.setNum(numberOfEntries+1); 1228 temp.setNum(numberOfEntries+1);
1174 cfg.setGroup("Server"); 1229 cfg.setGroup("Server");
1230
1175 cfg.writeEntry( temp, ServerComboBox->currentText() +":"+PortSpinBox->cleanText() ); 1231 cfg.writeEntry( temp, ServerComboBox->currentText() +":"+PortSpinBox->cleanText() );
1176 cfg.writeEntry("currentServer", numberOfEntries+1); 1232 cfg.writeEntry("currentServer", numberOfEntries+1);
1233
1234 currentServerConfig = numberOfEntries+1;
1235 qDebug("setting currentserverconfig to %d", currentServerConfig);
1236
1177 cfg.setGroup(temp); 1237 cfg.setGroup(temp);
1238 if(!newServerName.isEmpty())
1239 cfg.writeEntry("ServerName", newServerName);
1240
1178 cfg.writeEntry("RemotePath", remotePath->text()); 1241 cfg.writeEntry("RemotePath", remotePath->text());
1242
1179 cfg.writeEntry("Username", UsernameComboBox->currentText()); 1243 cfg.writeEntry("Username", UsernameComboBox->currentText());
1244
1180 cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text()); 1245 cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text());
1181 cfg.setGroup("Server"); 1246 cfg.setGroup("Server");
1247
1182 cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 )); 1248 cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 ));
1183 1249
1184 } 1250 }
1185} 1251}
1186 1252
1253void OpieFtp::clearCombos() {
1254 qDebug("clearing");
1255 ServerComboBox->clear();
1256 UsernameComboBox->clear();
1257 PasswordEdit->clear();
1258 serverListView->clear();
1259}
1260
1261
1187void OpieFtp::fillCombos() 1262void OpieFtp::fillCombos()
1188{ 1263{
1264 clearCombos();
1265
1189 Config cfg("opieftp"); 1266 Config cfg("opieftp");
1190 cfg.setGroup("Server"); 1267 cfg.setGroup("Server");
1191 QString username, remoteServerStr, remotePathStr, password, port, temp; 1268 QString username, remoteServerStr, remotePathStr, password, port, temp;
1192 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1269 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1270
1193 for (int i = 1; i <= numberOfEntries; i++) { 1271 for (int i = 1; i <= numberOfEntries; i++) {
1194 temp.setNum(i); 1272 temp.setNum(i);
1195 qDebug(temp); 1273 qDebug(temp);
1196 cfg.setGroup("Server"); 1274 cfg.setGroup("Server");
1197 remoteServerStr = cfg.readEntry( temp,""); 1275 remoteServerStr = cfg.readEntry( temp,"");
1198 qDebug( remoteServerStr); 1276 qDebug( remoteServerStr);
1277
1199 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); 1278 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE);
1200 port = remoteServerStr.right( divider - 1); 1279 port = remoteServerStr.right( divider - 1);
1201 bool ok; 1280 bool ok;
1202 PortSpinBox->setValue( port.toInt(&ok,10)); 1281 PortSpinBox->setValue( port.toInt(&ok,10));
1203 1282
1204 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); 1283 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider);
1205 qDebug( remoteServerStr); 1284 qDebug( "remote server string "+remoteServerStr);
1206 ServerComboBox->insertItem( remoteServerStr ); 1285 ServerComboBox->insertItem( remoteServerStr );
1207// cfg.setGroup(temp);
1208 1286
1209// remotePathStr = cfg.readEntry(remoteServer,""); 1287 cfg.setGroup(temp);
1210// int divider = remoteServer.length() - remoteServer.find(":",0,TRUE);
1211// port = remoteServer.right( divider+1);
1212// PortSpinBox->setValue( port);
1213 1288
1214// remoteServer = remoteServer.left(divider - 1); 1289 username = cfg.readEntry(temp);
1215// remotePath->setText( remotePathStr); 1290 UsernameComboBox->insertItem(username);
1291 password = cfg.readEntryCrypt(username,"");
1292 PasswordEdit->setText(password);
1216 1293
1217// username = cfg.readEntry(temp); 1294 serverListView->insertItem( cfg.readEntry("ServerName"));
1218// UsernameComboBox->insertItem(username);
1219// password = cfg.readEntryCrypt(username,"");
1220// PasswordEdit->setText(password);
1221 } 1295 }
1222} 1296}
1223 1297
1224 1298
1225void OpieFtp::serverComboSelected(int index) 1299void OpieFtp::serverComboSelected(int index)
1226{ 1300{
1227 currentServerConfig = index; 1301 currentServerConfig = index+1;
1302 qDebug("server combo selected %d", index+1);
1228 QString username, remoteServerStr, remotePathStr, password, port, temp; 1303 QString username, remoteServerStr, remotePathStr, password, port, temp;
1229// remoteServerStr = ServerComboBox->text(index); 1304// remoteServerStr = ServerComboBox->text(index);
1305
1230 Config cfg("opieftp"); 1306 Config cfg("opieftp");
1231 cfg.setGroup("Server"); 1307 cfg.setGroup("Server");
1232 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1308 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1233 1309
1234 temp.setNum(index); 1310 temp.setNum(index+1);
1235 remoteServerStr = cfg.readEntry( temp,""); 1311 remoteServerStr = cfg.readEntry( temp,"");
1312
1236 qDebug("Group" +temp); 1313 qDebug("Group" +temp);
1237 cfg.setGroup(temp); 1314 cfg.setGroup(temp);
1238// qDebug(temp); 1315// qDebug(temp);
1239 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); 1316 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE);
1240 port = remoteServerStr.right( divider - 1); 1317 port = remoteServerStr.right( divider - 1);
1241 bool ok; 1318 bool ok;
1242 int portInt = port.toInt(&ok,10); 1319 int portInt = port.toInt(&ok,10);
1243 if( portInt == 0) portInt = 21; 1320 if( portInt == 0) portInt = 21;
1244 1321
1322 ServerComboBox->lineEdit()->setText(remoteServerStr.left( remoteServerStr.find(":",0,TRUE)));
1323
1245 PortSpinBox->setValue( portInt); 1324 PortSpinBox->setValue( portInt);
1246 1325
1247 remotePath->setText(cfg.readEntry("RemotePath", "/")); 1326 remotePath->setText(cfg.readEntry("RemotePath", "/"));
1248 1327
1249 username = cfg.readEntry("Username", "anonymous"); 1328 username = cfg.readEntry("Username", "anonymous");
1250 UsernameComboBox->lineEdit()->setText(username); 1329 UsernameComboBox->lineEdit()->setText(username);
@@ -1253,38 +1332,82 @@ void OpieFtp::serverComboSelected(int index)
1253 PasswordEdit->setText(cfg.readEntryCrypt(username, "me@opieftp.org")); 1332 PasswordEdit->setText(cfg.readEntryCrypt(username, "me@opieftp.org"));
1254// UsernameComboBox 1333// UsernameComboBox
1255// PasswordEdit 1334// PasswordEdit
1256 1335
1257 cfg.setGroup("Server"); 1336 cfg.setGroup("Server");
1258 temp.sprintf("%d",currentServerConfig); 1337 temp.sprintf("%d",currentServerConfig);
1259 cfg.writeEntry("currentServer", temp); 1338 cfg.writeEntry("currentServer", temp);
1339
1340 fuckeduphack = TRUE;
1341 serverListView->setCurrentItem( index);
1342 fuckeduphack=FALSE;
1343 qDebug("server list set selected %d",index);
1260 update(); 1344 update();
1261} 1345}
1262// UsernameComboBox->lineEdit()->setText("root");
1263// PasswordEdit->setText( tr( "" ) );
1264// ServerComboBox->lineEdit()->setText( tr( "192.168.129.201" ) );
1265// remotePath->setText( currentRemoteDir = "/home/llornkcor/");
1266// PortSpinBox->setValue( 4242);
1267 1346
1268void OpieFtp::deleteServer() 1347void OpieFtp::deleteServer()
1269{ 1348{
1270 QString username, remoteServerStr, remotePathStr, password, port, temp; 1349 QString username, remoteServerStr, remotePathStr, password, port, temp, servername;
1271 remoteServerStr = ServerComboBox->currentText( ); 1350 remoteServerStr = ServerComboBox->currentText( );
1272 username = UsernameComboBox->currentText(); 1351 username = UsernameComboBox->currentText();
1352 servername=serverListView->currentText();
1353
1273 Config cfg("opieftp"); 1354 Config cfg("opieftp");
1274 cfg.setGroup("Server"); 1355 cfg.setGroup("Server");
1356 QString tempname;
1275 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1357 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1276 for (int i = 0; i <= numberOfEntries; i++) { 1358
1277 temp.setNum(i+1); 1359 for (int i = 1; i <= numberOfEntries; i++) {
1278 cfg.setGroup("Server"); 1360 temp.setNum(i);
1279 if( cfg.readEntry( temp,"").find( remoteServerStr,0,TRUE) != -1 1361// cfg.setGroup("Server");
1280 && cfg.readEntry(temp).find(username,0,TRUE) != -1 1362 cfg.setGroup(QString::number(i));
1281 && !remoteServerStr.isEmpty()) { 1363 tempname=cfg.readEntry( "ServerName","");
1282 qDebug(temp); 1364
1365 if( tempname.find( servername,0,TRUE) != -1 ) {
1366// servername.find( cfg.readEntry("ServerName")) != -1 &&
1367// remoteServerStr.find( cfg.readEntry("RemotePath")) != -1 &&
1368// username.find( cfg.readEntry("Username")) != -1) {
1369
1370 serverListView->removeItem(i);
1371
1372 qDebug("OK DELETE "+tempname);
1373 cfg.removeEntry(QString::number(i));
1374 for ( i; i <= numberOfEntries; i++) {
1375 cfg.setGroup("Server");
1376 cfg.writeEntry("Server", QString::number(numberOfEntries + 1 ));
1377
1378 cfg.setGroup(QString::number(i+1)); //get next server config
1379 servername=cfg.readEntry("ServerName");
1380 remoteServerStr=cfg.readEntry("RemotePath");
1381 username=cfg.readEntry("Username");
1382 password=cfg.readEntryCrypt( username);
1383
1384 cfg.setGroup(QString::number(i));
1385
1386 cfg.writeEntry("RemotePath", remoteServerStr);
1387 cfg.writeEntry("ServerName", servername);
1388 cfg.writeEntry("Username", username);
1389 cfg.writeEntryCrypt( username, password);
1390
1391 }
1392 cfg.setGroup("Server");
1393 cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries - 1 ));
1283 } 1394 }
1284 } 1395 }
1396 cfg.setGroup(QString::number(numberOfEntries));
1397 cfg.removeEntry("Server");
1398 cfg.removeEntry("RemotePath");
1399 cfg.removeEntry("ServerName");
1400 username=cfg.readEntry("Username");
1401 cfg.removeEntry("Username");
1402 cfg.removeEntry(username);
1403
1404 currentServerConfig=currentServerConfig-1;
1405
1406 fillCombos();
1407 update();
1285} 1408}
1286 1409
1287void OpieFtp::upDir() 1410void OpieFtp::upDir()
1288{ 1411{
1289 if (TabWidget->currentPageIndex() == 0) { 1412 if (TabWidget->currentPageIndex() == 0) {
1290 QString current = currentDir.canonicalPath(); 1413 QString current = currentDir.canonicalPath();
@@ -1342,6 +1465,39 @@ void OpieFtp::doAbout() {
1342 QMessageBox::message("OpieFtp","Opie ftp client is copyright 2002 by\n" 1465 QMessageBox::message("OpieFtp","Opie ftp client is copyright 2002 by\n"
1343 "L.J.Potter<llornkcor@handhelds.org>\n" 1466 "L.J.Potter<llornkcor@handhelds.org>\n"
1344 "and uses ftplib copyright 1996-2000\n" 1467 "and uses ftplib copyright 1996-2000\n"
1345 "by Thomas Pfau, pfau@cnj.digex.net\n\n" 1468 "by Thomas Pfau, pfau@cnj.digex.net\n\n"
1346 "and is licensed by the GPL"); 1469 "and is licensed by the GPL");
1347} 1470}
1471
1472void OpieFtp::NewServer() {
1473 InputDialog *fileDlg;
1474 fileDlg = new InputDialog(this,tr("New Server name"),TRUE, 0);
1475 fileDlg->exec();
1476 Config cfg("opieftp");
1477 if( fileDlg->result() == 1 ) {
1478 newServerName = fileDlg->LineEdit1->text();
1479 for(int i=1;i<serverListView->count();i++) {
1480 cfg.setGroup( QString::number(i));
1481 if(cfg.readEntry("ServerName").find(newServerName,0,TRUE) != -1) {
1482 QMessageBox::message(tr("OpieFtp"),tr("Sorry name already taken"));
1483 return;
1484 }
1485 }
1486 currentServerConfig =-1;
1487 writeConfig();
1488 serverListView->insertItem( newServerName );
1489 serverListView->setCurrentItem( serverListView->count());
1490 }
1491}
1492
1493void OpieFtp::serverListClicked( const QString &item) {
1494 if(item.isEmpty()) return;
1495 Config cfg("opieftp");
1496 qDebug("highltined "+item);
1497 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1498 for (int i = 1; i <= numberOfEntries; i++) {
1499 cfg.setGroup(QString::number(i));
1500 if(cfg.readEntry( "ServerName").find(item) != -1 && !fuckeduphack)
1501 serverComboSelected(i-1);
1502 }
1503}
diff --git a/noncore/net/opieftp/opieftp.h b/noncore/net/opieftp/opieftp.h
index ad36b1d..2aa691a 100644
--- a/noncore/net/opieftp/opieftp.h
+++ b/noncore/net/opieftp/opieftp.h
@@ -21,59 +21,64 @@
21 21
22class QVBoxLayout; 22class QVBoxLayout;
23class QHBoxLayout; 23class QHBoxLayout;
24class QGridLayout; 24class QGridLayout;
25class QComboBox; 25class QComboBox;
26class QListView; 26class QListView;
27class QListviewItem; 27class QListViewItem;
28class QLabel; 28class QLabel;
29class QProgressBar; 29class QProgressBar;
30class QSpinBox; 30class QSpinBox;
31class QTabWidget; 31class QTabWidget;
32class QWidget; 32class QWidget;
33class QPEToolBar; 33class QPEToolBar;
34class QPEMenuBar; 34class QPEMenuBar;
35class QPopupMenu; 35class QPopupMenu;
36class QFile; 36class QFile;
37class QListViewItem;
38class QLineEdit; 37class QLineEdit;
39class QPushButton; 38class QPushButton;
40class QToolButton; 39class QToolButton;
41class QStringList; 40class QStringList;
41class QListBox;
42 42
43class OpieFtp : public QMainWindow 43class OpieFtp : public QMainWindow
44{ 44{
45 Q_OBJECT 45 Q_OBJECT
46 46
47public: 47public:
48 OpieFtp( ); 48 OpieFtp( );
49 ~OpieFtp(); 49 ~OpieFtp();
50 50
51 QTabWidget *TabWidget; 51 QTabWidget *TabWidget;
52 QWidget *tab, *tab_2, *tab_3; 52 QWidget *tab, *tab_2, *tab_3;
53 QListView *Local_View, *Remote_View; 53 QListView *Local_View, *Remote_View;
54 QListBox *serverListView;
54 55
55 QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo; 56 QComboBox *UsernameComboBox, *ServerComboBox, *currentPathCombo;
56 QLineEdit *PasswordEdit, *remotePath; 57 QLineEdit *PasswordEdit, *remotePath;
57 QLabel *TextLabel2, *TextLabel1, *TextLabel3, *TextLabel4;; 58 QLabel *TextLabel2, *TextLabel1, *TextLabel3, *TextLabel4;;
58 QSpinBox* PortSpinBox; 59 QSpinBox* PortSpinBox;
59 QPopupMenu *connectionMenu, *localMenu, *remoteMenu, *tabMenu, *aboutMenu; 60 QPopupMenu *connectionMenu, *localMenu, *remoteMenu, *tabMenu, *aboutMenu;
60 QDir currentDir; 61 QDir currentDir;
61 QString currentRemoteDir; 62 QString currentRemoteDir;
62 QString filterStr; 63 QString filterStr;
63 QListViewItem * item; 64 QListViewItem * item;
64 QPushButton *connectServerBtn;// 65 QPushButton *connectServerBtn, *newServerButton;//
65 QToolButton *cdUpButton, *homeButton, *docButton; 66 QToolButton *cdUpButton, *homeButton, *docButton;
66 bool b; 67 bool b;
67 int currentServerConfig; 68 int currentServerConfig;
68protected slots: 69protected slots:
69 void upDir(); 70 void upDir();
70 void homeButtonPushed(); 71 void homeButtonPushed();
71 void docButtonPushed(); 72 void docButtonPushed();
72 void doAbout(); 73 void doAbout();
74
73 void serverComboEdited(const QString & ); 75 void serverComboEdited(const QString & );
76 void UsernameComboBoxEdited(const QString & );
77 void PasswordEditEdited(const QString & );
78
74 void showLocalMenu( QListViewItem *); 79 void showLocalMenu( QListViewItem *);
75 void showRemoteMenu( QListViewItem *); 80 void showRemoteMenu( QListViewItem *);
76 void doLocalCd(); 81 void doLocalCd();
77 void doRemoteCd(); 82 void doRemoteCd();
78 void localUpload(); 83 void localUpload();
79 void remoteDownload(); 84 void remoteDownload();
@@ -90,31 +95,42 @@ protected slots:
90 void ListPressed( int, QListViewItem *, const QPoint&, int); 95 void ListPressed( int, QListViewItem *, const QPoint&, int);
91 void RemoteListPressed( int, QListViewItem *, const QPoint&, int); 96 void RemoteListPressed( int, QListViewItem *, const QPoint&, int);
92 void localMakDir(); 97 void localMakDir();
93 void localDelete(); 98 void localDelete();
94 void remoteMakDir(); 99 void remoteMakDir();
95 void remoteDelete(); 100 void remoteDelete();
101
96 bool remoteDirList(const QString &); 102 bool remoteDirList(const QString &);
97 bool remoteChDir(const QString &); 103 bool remoteChDir(const QString &);
104
98 void tabChanged(QWidget*); 105 void tabChanged(QWidget*);
99 void cleanUp(); 106 void cleanUp();
107
100 void remoteRename(); 108 void remoteRename();
101 void localRename(); 109 void localRename();
110
102 void currentPathComboChanged(); 111 void currentPathComboChanged();
103 void currentPathComboActivated(const QString &); 112 void currentPathComboActivated(const QString &);
104 void switchToLocalTab(); 113 void switchToLocalTab();
105 void switchToRemoteTab(); 114 void switchToRemoteTab();
106 void switchToConfigTab(); 115 void switchToConfigTab();
107 void fillCombos(); 116
108 void fillRemoteCombo(const QString&); 117 void fillCombos();
109 void fillCombo(const QString &); 118 void clearCombos();
110 void serverComboSelected(int); 119 void fillRemoteCombo(const QString&);
111 void deleteServer(); 120 void fillCombo(const QString &);
112 void connectorBtnToggled(bool); 121 void serverComboSelected(int);
122 void deleteServer();
123 void connectorBtnToggled(bool);
124 void NewServer();
125 void serverListClicked( const QString &);
126
113protected: 127protected:
128 bool fuckeduphack;
114 QStringList remoteDirPathStringList, localDirPathStringList; 129 QStringList remoteDirPathStringList, localDirPathStringList;
130 QString newServerName;
115 void nullifyCallBack(); 131 void nullifyCallBack();
116 QGridLayout* tabLayout; 132 QGridLayout* tabLayout;
117 QGridLayout* tabLayout_2; 133 QGridLayout* tabLayout_2;
118 QGridLayout* tabLayout_3; 134 QGridLayout* tabLayout_3;
119 135
120}; 136};