summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieftp/opieftp.cpp49
1 files changed, 31 insertions, 18 deletions
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp
index b703217..64146cb 100644
--- a/noncore/net/opieftp/opieftp.cpp
+++ b/noncore/net/opieftp/opieftp.cpp
@@ -1,446 +1,452 @@
1/*************************************************************************** 1/***************************************************************************
2 opieftp.cpp 2 opieftp.cpp
3 ------------------- 3 -------------------
4** Created: Sat Mar 9 23:33:09 2002 4** Created: Sat Mar 9 23:33:09 2002
5 copyright : (C) 2002 by ljp 5 copyright : (C) 2002 by ljp
6 email : ljp@llornkcor.com 6 email : ljp@llornkcor.com
7 * This program is free software; you can redistribute it and/or modify * 7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by * 8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or * 9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. * 10 * (at your option) any later version. *
11 ***************************************************************************/ 11 ***************************************************************************/
12//#define DEVELOPERS_VERSION 12//#define DEVELOPERS_VERSION
13 13
14#include "opieftp.h" 14#include "opieftp.h"
15 15
16extern "C" { 16extern "C" {
17#include <ftplib.h> 17#include <ftplib.h>
18} 18}
19 19
20#include "inputDialog.h" 20#include "inputDialog.h"
21 21
22/* OPIE */ 22/* OPIE */
23#include <opie2/odebug.h> 23#include <opie2/odebug.h>
24#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
25#include <qpe/resource.h> 25#include <qpe/resource.h>
26#include <qpe/config.h> 26#include <qpe/config.h>
27#include <qpe/mimetype.h> 27#include <qpe/mimetype.h>
28using namespace Opie::Core; 28using namespace Opie::Core;
29 29
30#include <qtextstream.h> 30#include <qtextstream.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qtoolbutton.h> 32#include <qtoolbutton.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qlistview.h> 34#include <qlistview.h>
35#include <qlabel.h> 35#include <qlabel.h>
36#include <qprogressbar.h> 36#include <qprogressbar.h>
37#include <qspinbox.h> 37#include <qspinbox.h>
38#include <qtabwidget.h> 38#include <qtabwidget.h>
39#include <qlayout.h> 39#include <qlayout.h>
40#include <qmessagebox.h> 40#include <qmessagebox.h>
41#include <qmenubar.h> 41#include <qmenubar.h>
42#include <qpe/qpemenubar.h>
43
42#include <qlineedit.h> 44#include <qlineedit.h>
43#include <qlistbox.h> 45#include <qlistbox.h>
44#include <qvbox.h> 46#include <qvbox.h>
45/* STD */ 47/* STD */
46#include <unistd.h> 48#include <unistd.h>
47#include <stdlib.h> 49#include <stdlib.h>
48 50
49QProgressBar *ProgressBar; 51QProgressBar *ProgressBar;
50static netbuf *conn=NULL; 52static netbuf *conn=NULL;
51 53
52static int log_progress(netbuf *, int xfered, void *) 54static int log_progress(netbuf *, int xfered, void *)
53{ 55{
54// int fsz = *(int *)arg; 56// int fsz = *(int *)arg;
55// int pct = (xfered * 100) / fsz; 57// int pct = (xfered * 100) / fsz;
56// printf("%3d%%\r", pct); 58// printf("%3d%%\r", pct);
57// fflush(stdout); 59// fflush(stdout);
58 ProgressBar->setProgress(xfered); 60 ProgressBar->setProgress(xfered);
59 qApp->processEvents(); 61 qApp->processEvents();
60 return 1; 62 return 1;
61} 63}
62 64
63OpieFtp::OpieFtp( QWidget* parent, const char* name, WFlags fl) 65OpieFtp::OpieFtp( QWidget* parent, const char* name, WFlags fl)
64 : QMainWindow( parent, name, fl ) 66 : QMainWindow( parent, name, fl )
65{ 67{
66 odebug << "OpieFtp constructor" << oendl; 68 odebug << "OpieFtp constructor" << oendl;
67 setCaption( tr( "OpieFtp" ) ); 69 setCaption( tr( "OpieFtp" ) );
68 fuckeduphack=FALSE; 70 fuckeduphack=FALSE;
69 71
70 QVBox* wrapperBox = new QVBox( this ); 72 QVBox* wrapperBox = new QVBox( this );
71 setCentralWidget( wrapperBox ); 73 setCentralWidget( wrapperBox );
72 74
73 QWidget *view = new QWidget( wrapperBox ); 75 QWidget *view = new QWidget( wrapperBox );
74 76
75 QGridLayout *layout = new QGridLayout( view ); 77 QGridLayout *layout = new QGridLayout( view );
76 layout->setSpacing( 2); 78 layout->setSpacing( 1);
77 layout->setMargin( 2); 79 layout->setMargin( 1);
78 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 80 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
79 81
80 QMenuBar *menuBar = new QMenuBar(this); 82 QPEMenuBar *menuBar = new QPEMenuBar(view);
81// QToolBar *menuBar = new QToolBar(this); 83// QMenuBar *menuBar = new QMenuBar(this);
84// QPEToolBar *menuBar = new QPEToolBar(this);
82// menuBar->setHorizontalStretchable( TRUE ); 85// menuBar->setHorizontalStretchable( TRUE );
83 86
84 QWMatrix matrix; 87 QWMatrix matrix;
85 QPixmap pix(Resource::loadPixmap( "UnknownDocument" )); 88 QPixmap pix(Resource::loadPixmap( "UnknownDocument" ));
86 matrix.scale( .4, .4); 89 matrix.scale( .4, .4);
87 unknownXpm = pix.xForm(matrix); 90 unknownXpm = pix.xForm(matrix);
88 91
89 connectionMenu = new QPopupMenu( this ); 92 connectionMenu = new QPopupMenu( this );
90 localMenu = new QPopupMenu( this ); 93 localMenu = new QPopupMenu( this );
91 remoteMenu = new QPopupMenu( this ); 94 remoteMenu = new QPopupMenu( this );
92 tabMenu = new QPopupMenu( this ); 95 tabMenu = new QPopupMenu( this );
93 96
94//#if 0 97//#if 0
95 layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 ); 98 layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 );
96//#endif 99//#endif
97 100
98 menuBar->insertItem( tr( "Connection" ), connectionMenu); 101 menuBar->insertItem( tr( "Connection" ), connectionMenu);
99// menuBar->insertItem( tr( "Local" ), localMenu); 102// menuBar->insertItem( tr( "Local" ), localMenu);
100// menuBar->insertItem( tr( "Remote" ), remoteMenu); 103// menuBar->insertItem( tr( "Remote" ), remoteMenu);
101 menuBar->insertItem( tr( "View" ), tabMenu); 104 menuBar->insertItem( tr( "View" ), tabMenu);
102 105
103 tabMenu->insertItem( tr( "Local" ), localMenu); 106 tabMenu->insertItem( tr( "Local" ), localMenu);
104 tabMenu->insertItem( tr( "Remote" ), remoteMenu); 107 tabMenu->insertItem( tr( "Remote" ), remoteMenu);
105 108
106 connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() )); 109 connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() ));
107 connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() )); 110 connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() ));
108 connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() )); 111 connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() ));
109 112
110 localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); 113 localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() ));
111 localMenu->insertSeparator(); 114 localMenu->insertSeparator();
112 localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); 115 localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() ));
113 localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); 116 localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() ));
114 localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() )); 117 localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() ));
115 localMenu->insertSeparator(); 118 localMenu->insertSeparator();
116 localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); 119 localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
117 localMenu->setCheckable(TRUE); 120 localMenu->setCheckable(TRUE);
118 121
119 remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); 122 remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() ));
120 remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); 123 remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() ));
121 remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); 124 remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() ));
122 remoteMenu->insertSeparator(); 125 remoteMenu->insertSeparator();
123 remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); 126 remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() ));
124 127
125 tabMenu->insertSeparator(); 128 tabMenu->insertSeparator();
126 tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); 129 tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() ));
127 tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); 130 tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() ));
128 tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() )); 131 tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() ));
129 tabMenu->insertSeparator(); 132 tabMenu->insertSeparator();
130// tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); 133// tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() ));
131 tabMenu->setCheckable(TRUE); 134 tabMenu->setCheckable(TRUE);
132 135
133 136
134 cdUpButton = new QToolButton( view,"cdUpButton"); 137 cdUpButton = new QToolButton( view,"cdUpButton");
135 cdUpButton->setPixmap(Resource::loadPixmap("up")); 138 cdUpButton->setPixmap(Resource::loadPixmap("up"));
136 cdUpButton ->setFixedSize( QSize( 20, 20 ) ); 139 cdUpButton ->setFixedSize( QSize( 20, 20 ) );
137 connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); 140 connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) );
138 layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 ); 141 layout->addMultiCellWidget( cdUpButton, 0, 0, 4, 4 );
139 cdUpButton->hide(); 142 cdUpButton->hide();
140 143
141// docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",view,"docsButton"); 144// docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",view,"docsButton");
142// docButton->setFixedSize( QSize( 20, 20 ) ); 145// docButton->setFixedSize( QSize( 20, 20 ) );
143// connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); 146// connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) );
144// docButton->setFlat(TRUE); 147// docButton->setFlat(TRUE);
145// layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); 148// layout->addMultiCellWidget( docButton, 0, 0, 6, 6 );
146 149
147 homeButton = new QToolButton(view,"homeButton"); 150 homeButton = new QToolButton( view,"homeButton");
148 homeButton->setPixmap( Resource::loadPixmap("home")); 151 homeButton->setPixmap( Resource::loadPixmap("home"));
149 homeButton->setFixedSize( QSize( 20, 20 ) ); 152 homeButton->setFixedSize( QSize( 20, 20 ) );
150 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); 153 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) );
151 layout->addMultiCellWidget( homeButton, 0, 0, 4, 4); 154 layout->addMultiCellWidget( homeButton, 0, 0, 3, 3);
152 homeButton->hide(); 155 homeButton->hide();
153 156
154 TabWidget = new QTabWidget( view, "TabWidget" ); 157 TabWidget = new QTabWidget( view, "TabWidget" );
155 layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 ); 158 layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 );
156 159
157// TabWidget->setTabShape(QTabWidget::Triangular); 160// TabWidget->setTabShape(QTabWidget::Triangular);
158 161
159 tab = new QWidget( TabWidget, "tab" ); 162 tab = new QWidget( TabWidget, "tab" );
160 tabLayout = new QGridLayout( tab ); 163 tabLayout = new QGridLayout( tab );
161 tabLayout->setSpacing( 2); 164 tabLayout->setSpacing( 2);
162 tabLayout->setMargin( 2); 165 tabLayout->setMargin( 2);
163 166
164 Local_View = new QListView( tab, "Local_View" ); 167 Local_View = new QListView( tab, "Local_View" );
165// Local_View->setResizePolicy( QListView::AutoOneFit ); 168// Local_View->setResizePolicy( QListView::AutoOneFit );
166 Local_View->addColumn( tr("File"),150); 169 Local_View->addColumn( tr("File"),150);
167 Local_View->addColumn( tr("Date"),-1); 170 Local_View->addColumn( tr("Date"),-1);
168 Local_View->setColumnAlignment(1,QListView::AlignRight); 171 Local_View->setColumnAlignment(1,QListView::AlignRight);
169 Local_View->addColumn( tr("Size"),-1); 172 Local_View->addColumn( tr("Size"),-1);
170 Local_View->setColumnAlignment(2,QListView::AlignRight); 173 Local_View->setColumnAlignment(2,QListView::AlignRight);
171 Local_View->setAllColumnsShowFocus(TRUE); 174 Local_View->setAllColumnsShowFocus(TRUE);
172 175
173 Local_View->setMultiSelection( TRUE); 176 Local_View->setMultiSelection( TRUE);
174 Local_View->setSelectionMode(QListView::Extended); 177 Local_View->setSelectionMode(QListView::Extended);
175 Local_View->setFocusPolicy(QWidget::ClickFocus); 178 Local_View->setFocusPolicy(QWidget::ClickFocus);
176 179
177 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); 180 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold);
178 181
179 tabLayout->addWidget( Local_View, 0, 0 ); 182 tabLayout->addWidget( Local_View, 0, 0 );
180 183
181 connect( Local_View, SIGNAL( clicked(QListViewItem*)), 184 connect( Local_View, SIGNAL( clicked(QListViewItem*)),
182 this,SLOT( localListClicked(QListViewItem*)) ); 185 this,SLOT( localListClicked(QListViewItem*)) );
183// connect( Local_View, SIGNAL( doubleClicked(QListViewItem*)), 186// connect( Local_View, SIGNAL( doubleClicked(QListViewItem*)),
184// this,SLOT( localListClicked(QListViewItem*)) ); 187// this,SLOT( localListClicked(QListViewItem*)) );
185 connect( Local_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), 188 connect( Local_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),
186 this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) ); 189 this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) );
187 190
188 TabWidget->insertTab( tab, tr( "Local" ) ); 191 TabWidget->insertTab( tab, tr( "Local" ) );
189 192
190 tab_2 = new QWidget( TabWidget, "tab_2" ); 193 tab_2 = new QWidget( TabWidget, "tab_2" );
191 tabLayout_2 = new QGridLayout( tab_2 ); 194 tabLayout_2 = new QGridLayout( tab_2 );
192 tabLayout_2->setSpacing( 2); 195 tabLayout_2->setSpacing( 2);
193 tabLayout_2->setMargin( 2); 196 tabLayout_2->setMargin( 2);
194 197
195 Remote_View = new QListView( tab_2, "Remote_View" ); 198 Remote_View = new QListView( tab_2, "Remote_View" );
196 Remote_View->addColumn( tr("File"),150); 199 Remote_View->addColumn( tr("File"),150);
197 Remote_View->addColumn( tr("Date"),-1); 200 Remote_View->addColumn( tr("Date"),-1);
198// Remote_View->setColumnAlignment(1,QListView::AlignRight); 201// Remote_View->setColumnAlignment(1,QListView::AlignRight);
199 Remote_View->addColumn( tr("Size"),-1); 202 Remote_View->addColumn( tr("Size"),-1);
200 Remote_View->setColumnAlignment(2,QListView::AlignRight); 203 Remote_View->setColumnAlignment(2,QListView::AlignRight);
201 Remote_View->setColumnAlignment(3,QListView::AlignCenter); 204 Remote_View->setColumnAlignment(3,QListView::AlignCenter);
202 Remote_View->addColumn( tr("Dir"),-1); 205 Remote_View->addColumn( tr("Dir"),-1);
203 Remote_View->setColumnAlignment(4,QListView::AlignRight); 206 Remote_View->setColumnAlignment(4,QListView::AlignRight);
204 Remote_View->setAllColumnsShowFocus(TRUE); 207 Remote_View->setAllColumnsShowFocus(TRUE);
205 208
206 Remote_View->setMultiSelection( FALSE); 209 Remote_View->setMultiSelection( FALSE);
207 Remote_View->setSelectionMode(QListView::Extended); 210 Remote_View->setSelectionMode(QListView::Extended);
208 Remote_View->setFocusPolicy(QWidget::ClickFocus); 211 Remote_View->setFocusPolicy(QWidget::ClickFocus);
209 212
210 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); 213 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold);
211 214
212 connect( Remote_View, SIGNAL( clicked(QListViewItem*)), 215 connect( Remote_View, SIGNAL( clicked(QListViewItem*)),
213 this,SLOT( remoteListClicked(QListViewItem*)) ); 216 this,SLOT( remoteListClicked(QListViewItem*)) );
214 connect( Remote_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), 217 connect( Remote_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),
215 this,SLOT( RemoteListPressed(int,QListViewItem*,const QPoint&,int)) ); 218 this,SLOT( RemoteListPressed(int,QListViewItem*,const QPoint&,int)) );
216 219
217 tabLayout_2->addWidget( Remote_View, 0, 0 ); 220 tabLayout_2->addWidget( Remote_View, 0, 0 );
218 221
219 TabWidget->insertTab( tab_2, tr( "Remote" ) ); 222 TabWidget->insertTab( tab_2, tr( "Remote" ) );
220 223
221 tab_3 = new QWidget( TabWidget, "tab_3" ); 224 tab_3 = new QWidget( TabWidget, "tab_3" );
222 tabLayout_3 = new QGridLayout( tab_3 ); 225 tabLayout_3 = new QGridLayout( tab_3 );
223 tabLayout_3->setSpacing( 2); 226 tabLayout_3->setSpacing( 2);
224 tabLayout_3->setMargin( 2); 227 tabLayout_3->setMargin( 2);
225 228
226 TextLabel1 = new QLabel( tab_3, "TextLabel1" ); 229 TextLabel1 = new QLabel( tab_3, "TextLabel1" );
227 TextLabel1->setText( tr( "Username" ) ); 230 TextLabel1->setText( tr( "Username" ) );
228 tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); 231 tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 );
229 232
230 UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); 233 UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" );
231 UsernameComboBox->setEditable(TRUE); 234 UsernameComboBox->setEditable(TRUE);
232 tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); 235 tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 );
233 236
234 connect( UsernameComboBox,SIGNAL(textChanged(const QString&)),this, 237 connect( UsernameComboBox,SIGNAL(textChanged(const QString&)),this,
235 SLOT( UsernameComboBoxEdited(const QString&) )); 238 SLOT( UsernameComboBoxEdited(const QString&) ));
236 239
237 TextLabel2 = new QLabel( tab_3, "TextLabel2" ); 240 TextLabel2 = new QLabel( tab_3, "TextLabel2" );
238 TextLabel2->setText( tr( "Password" ) ); 241 TextLabel2->setText( tr( "Password" ) );
239 tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); 242 tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 );
240 243
241 PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); 244 PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" );
242 PasswordEdit->setEchoMode(QLineEdit::Password); 245 PasswordEdit->setEchoMode(QLineEdit::Password);
243 tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); 246 tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 );
244 247
245 connect( PasswordEdit,SIGNAL(textChanged(const QString&)),this, 248 connect( PasswordEdit,SIGNAL(textChanged(const QString&)),this,
246 SLOT( PasswordEditEdited(const QString&) )); 249 SLOT( PasswordEditEdited(const QString&) ));
247 250
248//PasswordEdit->setFixedWidth(85); 251//PasswordEdit->setFixedWidth(85);
249 TextLabel3 = new QLabel( tab_3, "TextLabel3" ); 252 TextLabel3 = new QLabel( tab_3, "TextLabel3" );
250 TextLabel3->setText( tr( "Remote server" ) ); 253 TextLabel3->setText( tr( "Remote server" ) );
251 tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); 254 tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 );
252 255
253 ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); 256 ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" );
254 ServerComboBox->setEditable(TRUE); 257 ServerComboBox->setEditable(TRUE);
258 ServerComboBox->setAutoCompletion(true);
259 // ServerComboBox->blockSignals(true);
260
255 tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 ); 261 tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 );
256 262
257 connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int) )); 263 connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int) ));
258 connect(ServerComboBox,SIGNAL(textChanged(const QString&)),this, 264 connect(ServerComboBox,SIGNAL(textChanged(const QString&)),this,
259 SLOT(serverComboEdited(const QString&) )); 265 SLOT(serverComboEdited(const QString&) ));
260 266
261 QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" ); 267 QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" );
262 TextLabel5->setText( tr( "Remote path" ) ); 268 TextLabel5->setText( tr( "Remote path" ) );
263 tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 ); 269 tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 );
264 270
265 271
266 remotePath = new QLineEdit( "/", tab_3, "remotePath" ); 272 remotePath = new QLineEdit( "/", tab_3, "remotePath" );
267 tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 ); 273 tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 );
268 TextLabel4 = new QLabel( tab_3, "TextLabel4" ); 274 TextLabel4 = new QLabel( tab_3, "TextLabel4" );
269 TextLabel4->setText( tr( "Port" ) ); 275 TextLabel4->setText( tr( "Port" ) );
270 tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 ); 276 tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 );
271 277
272 PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); 278 PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" );
273 PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); 279 PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows );
274 PortSpinBox->setMaxValue(32786); 280 PortSpinBox->setMaxValue(32786);
275 tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); 281 tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1);
276 282
277 serverListView = new QListBox( tab_3, "ServerListView" ); 283 serverListView = new QListBox( tab_3, "ServerListView" );
278 tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5); 284 tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5);
279 285
280 connect( serverListView, SIGNAL( highlighted(const QString&)), 286 connect( serverListView, SIGNAL( highlighted(const QString&)),
281 this,SLOT( serverListClicked(const QString&) ) ); 287 this,SLOT( serverListClicked(const QString&) ) );
282 288
283 connectServerBtn = new QPushButton( tr("Connect"), tab_3 , "ConnectButton" ); 289 connectServerBtn = new QPushButton( tr("Connect"), tab_3 , "ConnectButton" );
284 tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1); 290 tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1);
285 connectServerBtn->setToggleButton(TRUE); 291 connectServerBtn->setToggleButton(TRUE);
286 connect(connectServerBtn,SIGNAL( toggled(bool)),SLOT( connectorBtnToggled(bool) )); 292 connect(connectServerBtn,SIGNAL( toggled(bool)),SLOT( connectorBtnToggled(bool) ));
287 293
288 newServerButton= new QPushButton( tr("Add"), tab_3 , "NewServerButton" ); 294 newServerButton= new QPushButton( tr("Add"), tab_3 , "NewServerButton" );
289 tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2); 295 tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2);
290 connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() )); 296 connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() ));
291 297
292 QPushButton *deleteServerBtn; 298 QPushButton *deleteServerBtn;
293 deleteServerBtn = new QPushButton( tr("Delete"), tab_3 , "OpenButton" ); 299 deleteServerBtn = new QPushButton( tr("Delete"), tab_3 , "OpenButton" );
294 tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3); 300 tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3);
295 301
296 connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer())); 302 connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer()));
297 303
298 304
299 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); 305 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
300 tabLayout_3->addItem( spacer, 5, 0 ); 306 tabLayout_3->addItem( spacer, 5, 0 );
301 307
302 TabWidget->insertTab( tab_3, tr( "Config" ) ); 308 TabWidget->insertTab( tab_3, tr( "Config" ) );
303 309
304 connect(TabWidget,SIGNAL(currentChanged(QWidget*)), 310 connect(TabWidget,SIGNAL(currentChanged(QWidget*)),
305 this,SLOT(tabChanged(QWidget*))); 311 this,SLOT(tabChanged(QWidget*)));
306 312
307 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 313 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
308 currentDir.setPath( QDir::currentDirPath()); 314 currentDir.setPath( QDir::currentDirPath());
309// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 315// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
310 316
311 currentPathCombo = new QComboBox( FALSE, view, "currentPathCombo" ); 317 currentPathCombo = new QComboBox( FALSE, view, "currentPathCombo" );
312 layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4); 318 layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4);
313 currentPathCombo ->setFixedWidth(220); 319 currentPathCombo ->setFixedWidth(220);
314 currentPathCombo->setEditable(TRUE); 320 currentPathCombo->setEditable(TRUE);
315 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 321 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
316 322
317 connect( currentPathCombo, SIGNAL( activated(const QString&) ), 323 connect( currentPathCombo, SIGNAL( activated(const QString&) ),
318 this, SLOT( currentPathComboActivated(const QString&) ) ); 324 this, SLOT( currentPathComboActivated(const QString&) ) );
319 325
320 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), 326 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()),
321 this,SLOT(currentPathComboChanged())); 327 this,SLOT(currentPathComboChanged()));
322 ProgressBar = new QProgressBar( view, "ProgressBar" ); 328 ProgressBar = new QProgressBar( view, "ProgressBar" );
323 layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); 329 layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4);
324 ProgressBar->setMaximumHeight(10); 330 ProgressBar->setMaximumHeight(10);
325 filterStr="*"; 331 filterStr="*";
326 b=FALSE; 332 b=FALSE;
327 populateLocalView(); 333 populateLocalView();
328 readConfig(); 334 readConfig();
329 335
330// ServerComboBox->setCurrentItem(currentServerConfig); 336// ServerComboBox->setCurrentItem(currentServerConfig);
331 337
332 TabWidget->setCurrentPage(2); 338 TabWidget->setCurrentPage(2);
333 odebug << "Constructor done" << oendl; 339 odebug << "Constructor done" << oendl;
334} 340}
335 341
336OpieFtp::~OpieFtp() 342OpieFtp::~OpieFtp()
337{ 343{
338} 344}
339 345
340void OpieFtp::cleanUp() 346void OpieFtp::cleanUp()
341{ 347{
342 if(conn) 348 if(conn)
343 FtpQuit(conn); 349 FtpQuit(conn);
344 QString sfile=QDir::homeDirPath(); 350 QString sfile=QDir::homeDirPath();
345 if(sfile.right(1) != "/") 351 if(sfile.right(1) != "/")
346 sfile+="/._temp"; 352 sfile+="/._temp";
347 else 353 else
348 sfile+="._temp"; 354 sfile+="._temp";
349 QFile file( sfile); 355 QFile file( sfile);
350 if(file.exists()) 356 if(file.exists())
351 file.remove(); 357 file.remove();
352 Config cfg("opieftp"); 358 Config cfg("opieftp");
353 cfg.setGroup("Server"); 359 cfg.setGroup("Server");
354 cfg.writeEntry("currentServer", currentServerConfig); 360 cfg.writeEntry("currentServer", currentServerConfig);
355 361
356 exit(0); 362 exit(0);
357} 363}
358 364
359void OpieFtp::tabChanged(QWidget *) 365void OpieFtp::tabChanged(QWidget *)
360{ 366{
361 if (TabWidget->currentPageIndex() == 0) { 367 if (TabWidget->currentPageIndex() == 0) {
362 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 368 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
363 tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); 369 tabMenu->setItemChecked(tabMenu->idAt(0),TRUE);
364 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); 370 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE);
365 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); 371 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE);
366 if(cdUpButton->isHidden()) 372 if(cdUpButton->isHidden())
367 cdUpButton->show(); 373 cdUpButton->show();
368 if(homeButton->isHidden()) 374 if(homeButton->isHidden())
369 homeButton->show(); 375 homeButton->show();
370 if(currentPathCombo->isHidden()) currentPathCombo->show(); 376 if(currentPathCombo->isHidden()) currentPathCombo->show();
371 377
372 } 378 }
373 if (TabWidget->currentPageIndex() == 1) { 379 if (TabWidget->currentPageIndex() == 1) {
374 currentPathCombo->lineEdit()->setText( currentRemoteDir ); 380 currentPathCombo->lineEdit()->setText( currentRemoteDir );
375 tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); 381 tabMenu->setItemChecked(tabMenu->idAt(1),TRUE);
376 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); 382 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE);
377 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); 383 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE);
378 if(cdUpButton->isHidden()) 384 if(cdUpButton->isHidden())
379 cdUpButton->show(); 385 cdUpButton->show();
380 homeButton->hide(); 386 homeButton->hide();
381 if(currentPathCombo->isHidden()) currentPathCombo->show(); 387 if(currentPathCombo->isHidden()) currentPathCombo->show();
382 388
383 } 389 }
384 if (TabWidget->currentPageIndex() == 2) { 390 if (TabWidget->currentPageIndex() == 2) {
385 tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); 391 tabMenu->setItemChecked(tabMenu->idAt(2),TRUE);
386 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); 392 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE);
387 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); 393 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE);
388 cdUpButton->hide(); 394 cdUpButton->hide();
389 homeButton->hide(); 395 homeButton->hide();
390 if(!currentPathCombo->isHidden()) currentPathCombo->hide(); 396 if(!currentPathCombo->isHidden()) currentPathCombo->hide();
391 } 397 }
392} 398}
393 399
394void OpieFtp::newConnection() 400void OpieFtp::newConnection()
395{ 401{
396 UsernameComboBox->lineEdit()->setText(""); 402 UsernameComboBox->lineEdit()->setText("");
397 PasswordEdit->setText( "" ); 403 PasswordEdit->setText( "" );
398 ServerComboBox->lineEdit()->setText( ""); 404 ServerComboBox->lineEdit()->setText( "");
399 remotePath->setText( currentRemoteDir = "/"); 405 remotePath->setText( currentRemoteDir = "/");
400 PortSpinBox->setValue( 21); 406 PortSpinBox->setValue( 21);
401 TabWidget->setCurrentPage(2); 407 TabWidget->setCurrentPage(2);
402} 408}
403 409
404void OpieFtp::serverComboEdited(const QString & ) 410void OpieFtp::serverComboEdited(const QString & )
405{ 411{
406// if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) { 412// if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) {
407// odebug << "ServerComboEdited" << oendl; 413// odebug << "ServerComboEdited" << oendl;
408// // currentServerConfig = -1; 414// // currentServerConfig = -1;
409// } 415// }
410} 416}
411 417
412void OpieFtp::UsernameComboBoxEdited(const QString &) { 418void OpieFtp::UsernameComboBoxEdited(const QString &) {
413// currentServerConfig = -1; 419// currentServerConfig = -1;
414} 420}
415 421
416void OpieFtp::PasswordEditEdited(const QString & ) { 422void OpieFtp::PasswordEditEdited(const QString & ) {
417// currentServerConfig = -1; 423// currentServerConfig = -1;
418} 424}
419 425
420void OpieFtp::connectorBtnToggled(bool On) 426void OpieFtp::connectorBtnToggled(bool On)
421{ 427{
422 if(On) { 428 if(On) {
423 connector(); 429 connector();
424 } else { 430 } else {
425 disConnector(); 431 disConnector();
426 } 432 }
427 433
428} 434}
429 435
430void OpieFtp::connector() 436void OpieFtp::connector()
431{ 437{
432// QCopEnvelope ( "QPE/System", "busy()" ); 438// QCopEnvelope ( "QPE/System", "busy()" );
433// qApp->processEvents(); 439// qApp->processEvents();
434 currentRemoteDir=remotePath->text(); 440 currentRemoteDir=remotePath->text();
435 441
436 if( ServerComboBox->currentText().isEmpty()) { 442 if( ServerComboBox->currentText().isEmpty()) {
437 443
438 QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0); 444 QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0);
439 TabWidget->setCurrentPage(2); 445 TabWidget->setCurrentPage(2);
440 ServerComboBox->setFocus(); 446 ServerComboBox->setFocus();
441 connectServerBtn->setOn(FALSE); 447 connectServerBtn->setOn(FALSE);
442 connectServerBtn->setText( tr("Connect")); 448 connectServerBtn->setText( tr("Connect"));
443 return; 449 return;
444 } 450 }
445 451
446 FtpInit(); 452 FtpInit();
@@ -1137,399 +1143,406 @@ void OpieFtp::currentPathComboActivated(const QString & currentPath) {
1137// chdir( currentPath.latin1() ); 1143// chdir( currentPath.latin1() );
1138// currentDir.cd( currentPath, TRUE); 1144// currentDir.cd( currentPath, TRUE);
1139// populateList(); 1145// populateList();
1140// update(); 1146// update();
1141 1147
1142 } 1148 }
1143} 1149}
1144 1150
1145void OpieFtp::fillCombo(const QString &currentPath) { 1151void OpieFtp::fillCombo(const QString &currentPath) {
1146 currentPathCombo->lineEdit()->setText(currentPath); 1152 currentPathCombo->lineEdit()->setText(currentPath);
1147 1153
1148 if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { 1154 if( localDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
1149 qDebug("Clearing local"); 1155 qDebug("Clearing local");
1150 currentPathCombo->clear(); 1156 currentPathCombo->clear();
1151 localDirPathStringList.prepend(currentPath ); 1157 localDirPathStringList.prepend(currentPath );
1152 currentPathCombo->insertStringList( localDirPathStringList,-1); 1158 currentPathCombo->insertStringList( localDirPathStringList,-1);
1153 } 1159 }
1154 1160
1155 currentPathCombo->lineEdit()->setText(currentPath); 1161 currentPathCombo->lineEdit()->setText(currentPath);
1156 1162
1157 if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { 1163 if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
1158 qDebug("Clearing remote"); 1164 qDebug("Clearing remote");
1159 currentPathCombo->clear(); 1165 currentPathCombo->clear();
1160 remoteDirPathStringList.prepend(currentPath ); 1166 remoteDirPathStringList.prepend(currentPath );
1161 currentPathCombo->insertStringList( remoteDirPathStringList,-1); 1167 currentPathCombo->insertStringList( remoteDirPathStringList,-1);
1162 } 1168 }
1163} 1169}
1164 1170
1165void OpieFtp::fillRemoteCombo(const QString &currentPath) { 1171void OpieFtp::fillRemoteCombo(const QString &currentPath) {
1166 1172
1167 currentPathCombo->lineEdit()->setText(currentPath); 1173 currentPathCombo->lineEdit()->setText(currentPath);
1168 if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) { 1174 if( remoteDirPathStringList.grep(currentPath,TRUE).isEmpty() ) {
1169 currentPathCombo->clear(); 1175 currentPathCombo->clear();
1170 remoteDirPathStringList.prepend(currentPath ); 1176 remoteDirPathStringList.prepend(currentPath );
1171 currentPathCombo->insertStringList( remoteDirPathStringList,-1); 1177 currentPathCombo->insertStringList( remoteDirPathStringList,-1);
1172 } 1178 }
1173} 1179}
1174 1180
1175void OpieFtp::currentPathComboChanged() 1181void OpieFtp::currentPathComboChanged()
1176{ 1182{
1177 QString oldRemoteCurrentDir = currentRemoteDir; 1183 QString oldRemoteCurrentDir = currentRemoteDir;
1178// odebug << "oldRemoteCurrentDir "+oldRemoteCurrentDir << oendl; 1184// odebug << "oldRemoteCurrentDir "+oldRemoteCurrentDir << oendl;
1179 if (TabWidget->currentPageIndex() == 0) { 1185 if (TabWidget->currentPageIndex() == 0) {
1180 if(QDir( currentPathCombo->lineEdit()->text()).exists()) { 1186 if(QDir( currentPathCombo->lineEdit()->text()).exists()) {
1181 currentDir.setPath( currentPathCombo->lineEdit()->text() ); 1187 currentDir.setPath( currentPathCombo->lineEdit()->text() );
1182 populateLocalView(); 1188 populateLocalView();
1183 } else { 1189 } else {
1184 QMessageBox::message(tr("Note"),tr("That directory does not exist")); 1190 QMessageBox::message(tr("Note"),tr("That directory does not exist"));
1185 } 1191 }
1186 } 1192 }
1187 if (TabWidget->currentPageIndex() == 1) { 1193 if (TabWidget->currentPageIndex() == 1) {
1188 currentRemoteDir = currentPathCombo->lineEdit()->text(); 1194 currentRemoteDir = currentPathCombo->lineEdit()->text();
1189 if(currentRemoteDir.right(1) !="/") { 1195 if(currentRemoteDir.right(1) !="/") {
1190 currentRemoteDir = currentRemoteDir +"/"; 1196 currentRemoteDir = currentRemoteDir +"/";
1191 currentPathCombo->lineEdit()->setText( currentRemoteDir ); 1197 currentPathCombo->lineEdit()->setText( currentRemoteDir );
1192 } 1198 }
1193 if( !remoteChDir( (const QString &)currentRemoteDir) ) { 1199 if( !remoteChDir( (const QString &)currentRemoteDir) ) {
1194 currentRemoteDir = oldRemoteCurrentDir; 1200 currentRemoteDir = oldRemoteCurrentDir;
1195 currentPathCombo->lineEdit()->setText( currentRemoteDir ); 1201 currentPathCombo->lineEdit()->setText( currentRemoteDir );
1196 } 1202 }
1197 1203
1198 remoteDirList( (const QString &)currentRemoteDir); 1204 remoteDirList( (const QString &)currentRemoteDir);
1199 } 1205 }
1200} 1206}
1201 1207
1202void OpieFtp::switchToLocalTab() 1208void OpieFtp::switchToLocalTab()
1203{ 1209{
1204 TabWidget->setCurrentPage(0); 1210 TabWidget->setCurrentPage(0);
1205} 1211}
1206 1212
1207void OpieFtp::switchToRemoteTab() 1213void OpieFtp::switchToRemoteTab()
1208{ 1214{
1209 TabWidget->setCurrentPage(1); 1215 TabWidget->setCurrentPage(1);
1210} 1216}
1211 1217
1212void OpieFtp::switchToConfigTab() 1218void OpieFtp::switchToConfigTab()
1213{ 1219{
1214 TabWidget->setCurrentPage(2); 1220 TabWidget->setCurrentPage(2);
1215} 1221}
1216 1222
1217void OpieFtp::readConfig() 1223void OpieFtp::readConfig()
1218{ 1224{
1219 fillCombos(); 1225 fillCombos();
1220 Config cfg("opieftp"); 1226 Config cfg("opieftp");
1221 cfg.setGroup("Server"); 1227 cfg.setGroup("Server");
1222 currentServerConfig = cfg.readNumEntry("currentServer", -1); 1228 currentServerConfig = cfg.readNumEntry("currentServer", -1);
1223 1229
1224// odebug << "Reading " << currentServerConfig << "" << oendl; 1230// odebug << "Reading " << currentServerConfig << "" << oendl;
1225 serverComboSelected( currentServerConfig-1); 1231 serverComboSelected( currentServerConfig-1);
1226 1232
1227} 1233}
1228 1234
1229void OpieFtp::writeConfig() 1235void OpieFtp::writeConfig()
1230{ 1236{
1231 odebug << "write config" << oendl; 1237 odebug << "write config" << oendl;
1232 Config cfg("opieftp"); 1238 Config cfg("opieftp");
1233 cfg.setGroup("Server"); 1239 cfg.setGroup("Server");
1234 1240
1235 QString username, remoteServerStr, remotePathStr, password, port, temp; 1241 QString username, remoteServerStr, remotePathStr, password, port, temp;
1236 1242
1237 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1243 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1238 1244
1239 if( currentServerConfig == -1) { 1245 if( currentServerConfig == -1) {
1240 1246
1241 for (int i = 1; i <= numberOfEntries; i++) { 1247 for (int i = 1; i <= numberOfEntries; i++) {
1242 temp.setNum(i); 1248 temp.setNum(i);
1243 cfg.setGroup("Server"); 1249 cfg.setGroup("Server");
1244 QString tempStr = cfg.readEntry( temp,""); 1250 QString tempStr = cfg.readEntry( temp,"");
1245 } 1251 }
1246 1252
1247 temp.setNum( numberOfEntries + 1); 1253 temp.setNum( numberOfEntries + 1);
1248 cfg.setGroup("Server"); 1254 cfg.setGroup("Server");
1249 1255
1250 remoteServerStr = cfg.readEntry( temp,""); 1256 remoteServerStr = cfg.readEntry( temp,"");
1251 1257
1252 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); 1258 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE);
1253 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); 1259 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider);
1254 1260
1255 temp.setNum(numberOfEntries+1); 1261 temp.setNum(numberOfEntries+1);
1256 cfg.setGroup("Server"); 1262 cfg.setGroup("Server");
1257 1263
1258 cfg.writeEntry( temp, ServerComboBox->currentText() +":"+PortSpinBox->cleanText() ); 1264 cfg.writeEntry( temp, ServerComboBox->currentText() +":"+PortSpinBox->cleanText() );
1259 cfg.writeEntry("currentServer", numberOfEntries+1); 1265 cfg.writeEntry("currentServer", numberOfEntries+1);
1260 1266
1261 currentServerConfig = numberOfEntries+1; 1267 currentServerConfig = numberOfEntries+1;
1262 odebug << "setting currentserverconfig to " << currentServerConfig << "" << oendl; 1268 odebug << "setting currentserverconfig to " << currentServerConfig << "" << oendl;
1263 1269
1264 cfg.setGroup(temp); 1270 cfg.setGroup(temp);
1265 if(!newServerName.isEmpty()) 1271 if(!newServerName.isEmpty())
1266 cfg.writeEntry("ServerName", newServerName); 1272 cfg.writeEntry("ServerName", newServerName);
1267 1273
1268 cfg.writeEntry("RemotePath", remotePath->text()); 1274 cfg.writeEntry("RemotePath", remotePath->text());
1269 1275
1270 cfg.writeEntry("Username", UsernameComboBox->currentText()); 1276 cfg.writeEntry("Username", UsernameComboBox->currentText());
1271 1277
1272 cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text()); 1278 cfg.writeEntryCrypt( UsernameComboBox->currentText(), PasswordEdit->text());
1273 cfg.setGroup("Server"); 1279 cfg.setGroup("Server");
1274 1280
1275 cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 )); 1281 cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries + 1 ));
1276 1282
1277 } 1283 }
1278} 1284}
1279 1285
1280void OpieFtp::clearCombos() { 1286void OpieFtp::clearCombos() {
1281 odebug << "clearing" << oendl; 1287 odebug << "clearing" << oendl;
1282 ServerComboBox->clear(); 1288 ServerComboBox->clear();
1283 UsernameComboBox->clear(); 1289 UsernameComboBox->clear();
1284 PasswordEdit->clear(); 1290 PasswordEdit->clear();
1285 serverListView->clear(); 1291 serverListView->clear();
1286} 1292}
1287 1293
1288 1294
1289void OpieFtp::fillCombos() 1295void OpieFtp::fillCombos()
1290{ 1296{
1291 clearCombos(); 1297 clearCombos();
1292 qDebug("did we get here yet?"); 1298 qDebug("did we get here yet?");
1293 1299
1294 Config cfg("opieftp"); 1300 Config cfg("opieftp");
1295 cfg.setGroup("Server"); 1301 cfg.setGroup("Server");
1296 QString username, remoteServerStr, remotePathStr, password, port, temp; 1302 QString username, remoteServerStr, remotePathStr, password, port, temp;
1297 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1303 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1298 1304
1299 for (int i = 1; i <= numberOfEntries; i++) { 1305 for (int i = 1; i <= numberOfEntries; i++) {
1300 temp.setNum(i); 1306 temp.setNum(i);
1301 odebug << temp << oendl; 1307 odebug << temp << oendl;
1302 cfg.setGroup("Server"); 1308 cfg.setGroup("Server");
1303 remoteServerStr = cfg.readEntry( temp,""); 1309 remoteServerStr = cfg.readEntry( temp,"");
1304 odebug << remoteServerStr << oendl; 1310 odebug << remoteServerStr << oendl;
1305 1311
1306 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); 1312 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE);
1307 port = remoteServerStr.right( divider - 1); 1313 port = remoteServerStr.right( divider - 1);
1308 bool ok; 1314 bool ok;
1309 PortSpinBox->setValue( port.toInt(&ok,10)); 1315 PortSpinBox->setValue( port.toInt(&ok,10));
1310 1316
1311 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider); 1317 remoteServerStr = remoteServerStr.left(remoteServerStr.length()-divider);
1312 odebug << "remote server string "+remoteServerStr << oendl; 1318 odebug << "remote server string "+remoteServerStr << oendl;
1313 ServerComboBox->insertItem( remoteServerStr ); 1319 ServerComboBox->insertItem( remoteServerStr );
1314 1320
1315 cfg.setGroup(temp); 1321 cfg.setGroup(temp);
1316 1322
1317 username = cfg.readEntry(temp); 1323 username = cfg.readEntry(temp);
1318 UsernameComboBox->insertItem(username); 1324 UsernameComboBox->insertItem(username);
1319 password = cfg.readEntryCrypt(username,""); 1325 password = cfg.readEntryCrypt(username,"");
1320 PasswordEdit->setText(password); 1326 PasswordEdit->setText(password);
1321 1327
1322 serverListView->insertItem( cfg.readEntry("ServerName")); 1328 serverListView->insertItem( cfg.readEntry("ServerName"));
1323 } 1329 }
1324} 1330}
1325 1331
1326 1332
1327void OpieFtp::serverComboSelected(int index) 1333void OpieFtp::serverComboSelected(int index)
1328{ 1334{
1335 QString servername;
1329 currentServerConfig = index+1; 1336 currentServerConfig = index+1;
1330 odebug << "server combo selected " << index+1 << "" << oendl; 1337 odebug << "server combo selected " << index + 1 << "" << oendl;
1331 QString username, remoteServerStr, remotePathStr, password, port, temp; 1338 QString username, remoteServerStr, remotePathStr, password, port, temp;
1332// remoteServerStr = ServerComboBox->text(index); 1339 servername = remoteServerStr = ServerComboBox->text(index);
1340 qDebug("server text " + remoteServerStr);
1333 1341
1334 Config cfg("opieftp"); 1342 Config cfg("opieftp");
1335 cfg.setGroup("Server"); 1343 cfg.setGroup("Server");
1336// int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1344// int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1337 1345
1338 temp.setNum(index+1); 1346 // for (int i = 1; i <= numberOfEntries; i++) {
1347// int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1348
1349 temp.setNum(index + 1);
1339 remoteServerStr = cfg.readEntry( temp,""); 1350 remoteServerStr = cfg.readEntry( temp,"");
1340 1351
1341 odebug << "Group" +temp << oendl; 1352 odebug << "Group " +temp << oendl;
1342 cfg.setGroup(temp); 1353 cfg.setGroup(temp);
1343// odebug << temp << oendl; 1354
1344 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE); 1355 int divider = remoteServerStr.length() - remoteServerStr.find(":",0,TRUE);
1345 port = remoteServerStr.right( divider - 1); 1356 port = remoteServerStr.right( divider - 1);
1346 bool ok; 1357 bool ok;
1347 int portInt = port.toInt(&ok,10); 1358 int portInt = port.toInt(&ok,10);
1348 if( portInt == 0) portInt = 21; 1359 if( portInt == 0) portInt = 21;
1349
1350 ServerComboBox->lineEdit()->setText(remoteServerStr.left( remoteServerStr.find(":",0,TRUE))); 1360 ServerComboBox->lineEdit()->setText(remoteServerStr.left( remoteServerStr.find(":",0,TRUE)));
1351 1361
1352 PortSpinBox->setValue( portInt); 1362 PortSpinBox->setValue( portInt);
1353 1363
1354 remotePath->setText(cfg.readEntry("RemotePath", "/")); 1364 remotePath->setText(cfg.readEntry("RemotePath", "/"));
1355 1365
1356 username = cfg.readEntry("Username", "anonymous"); 1366 username = cfg.readEntry("Username", "anonymous");
1357 UsernameComboBox->lineEdit()->setText(username); 1367 UsernameComboBox->lineEdit()->setText(username);
1358 odebug << username << oendl; 1368 odebug << username << oendl;
1359// odebug << "Password is "+cfg.readEntryCrypt(username << oendl; 1369// odebug << "Password is "+cfg.readEntryCrypt(username << oendl;
1360 PasswordEdit->setText(cfg.readEntryCrypt(username, "me@opieftp.org")); 1370 PasswordEdit->setText(cfg.readEntryCrypt(username, "me@opieftp.org"));
1361// UsernameComboBox 1371// UsernameComboBox
1362// PasswordEdit 1372// PasswordEdit
1363 1373
1364 cfg.setGroup("Server"); 1374 cfg.setGroup("Server");
1365 temp.sprintf("%d",currentServerConfig); 1375 temp.sprintf("%d", currentServerConfig);
1366 cfg.writeEntry("currentServer", temp); 1376 cfg.writeEntry("currentServer", temp);
1377 cfg.writeEntry(temp,servername);
1367 1378
1379
1368 fuckeduphack = TRUE; 1380 fuckeduphack = TRUE;
1369 serverListView->setCurrentItem( index); 1381 serverListView->setCurrentItem( index);
1370 fuckeduphack=FALSE; 1382 fuckeduphack = FALSE;
1371 odebug << "server list set selected " << index << "" << oendl; 1383 qDebug( "server list set selected %d "+temp, index);
1384 ServerComboBox->lineEdit()->setText(servername);
1372 update(); 1385 update();
1373} 1386}
1374 1387
1375void OpieFtp::deleteServer() 1388void OpieFtp::deleteServer()
1376{ 1389{
1377 QString username, remoteServerStr, remotePathStr, password, port, temp, servername; 1390 QString username, remoteServerStr, remotePathStr, password, port, temp, servername;
1378 remoteServerStr = ServerComboBox->currentText( ); 1391 remoteServerStr = ServerComboBox->currentText( );
1379 username = UsernameComboBox->currentText(); 1392 username = UsernameComboBox->currentText();
1380 servername=serverListView->currentText(); 1393 servername=serverListView->currentText();
1381 1394
1382 Config cfg("opieftp"); 1395 Config cfg("opieftp");
1383 cfg.setGroup("Server"); 1396 cfg.setGroup("Server");
1384 QString tempname; 1397 QString tempname;
1385 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1398 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1386 1399
1387 for (int i = 1; i <= numberOfEntries; i++) { 1400 for (int i = 1; i <= numberOfEntries; i++) {
1388 temp.setNum(i); 1401 temp.setNum(i);
1389// cfg.setGroup("Server"); 1402// cfg.setGroup("Server");
1390 cfg.setGroup(QString::number(i)); 1403 cfg.setGroup(QString::number(i));
1391 tempname=cfg.readEntry( "ServerName",""); 1404 tempname=cfg.readEntry( "ServerName","");
1392 1405
1393 if( tempname.find( servername,0,TRUE) != -1 ) { 1406 if( tempname.find( servername,0,TRUE) != -1 ) {
1394// servername.find( cfg.readEntry("ServerName")) != -1 && 1407// servername.find( cfg.readEntry("ServerName")) != -1 &&
1395// remoteServerStr.find( cfg.readEntry("RemotePath")) != -1 && 1408// remoteServerStr.find( cfg.readEntry("RemotePath")) != -1 &&
1396// username.find( cfg.readEntry("Username")) != -1) { 1409// username.find( cfg.readEntry("Username")) != -1) {
1397 1410
1398 serverListView->removeItem(i); 1411 serverListView->removeItem(i);
1399 1412
1400 odebug << "OK DELETE "+tempname << oendl; 1413 odebug << "OK DELETE "+tempname << oendl;
1401 cfg.removeEntry(QString::number(i)); 1414 cfg.removeEntry(QString::number(i));
1402 for ( ; i <= numberOfEntries; i++) { 1415 for ( ; i <= numberOfEntries; i++) {
1403 cfg.setGroup("Server"); 1416 cfg.setGroup("Server");
1404 cfg.writeEntry("Server", QString::number(numberOfEntries + 1 )); 1417 cfg.writeEntry("Server", QString::number(numberOfEntries + 1 ));
1405 1418
1406 cfg.setGroup(QString::number(i+1)); //get next server config 1419 cfg.setGroup(QString::number(i+1)); //get next server config
1407 servername=cfg.readEntry("ServerName"); 1420 servername=cfg.readEntry("ServerName");
1408 remoteServerStr=cfg.readEntry("RemotePath"); 1421 remoteServerStr=cfg.readEntry("RemotePath");
1409 username=cfg.readEntry("Username"); 1422 username=cfg.readEntry("Username");
1410 password=cfg.readEntryCrypt( username); 1423 password=cfg.readEntryCrypt( username);
1411 1424
1412 cfg.setGroup(QString::number(i)); 1425 cfg.setGroup(QString::number(i));
1413 1426
1414 cfg.writeEntry("RemotePath", remoteServerStr); 1427 cfg.writeEntry("RemotePath", remoteServerStr);
1415 cfg.writeEntry("ServerName", servername); 1428 cfg.writeEntry("ServerName", servername);
1416 cfg.writeEntry("Username", username); 1429 cfg.writeEntry("Username", username);
1417 cfg.writeEntryCrypt( username, password); 1430 cfg.writeEntryCrypt( username, password);
1418 1431
1419 } 1432 }
1420 cfg.setGroup("Server"); 1433 cfg.setGroup("Server");
1421 cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries - 1 )); 1434 cfg.writeEntry("numberOfEntries", QString::number(numberOfEntries - 1 ));
1422 } 1435 }
1423 } 1436 }
1424 cfg.setGroup(QString::number(numberOfEntries)); 1437 cfg.setGroup(QString::number(numberOfEntries));
1425 cfg.removeEntry("Server"); 1438 cfg.removeEntry("Server");
1426 cfg.removeEntry("RemotePath"); 1439 cfg.removeEntry("RemotePath");
1427 cfg.removeEntry("ServerName"); 1440 cfg.removeEntry("ServerName");
1428 username=cfg.readEntry("Username"); 1441 username=cfg.readEntry("Username");
1429 cfg.removeEntry("Username"); 1442 cfg.removeEntry("Username");
1430 cfg.removeEntry(username); 1443 cfg.removeEntry(username);
1431 1444
1432 currentServerConfig=currentServerConfig-1; 1445 currentServerConfig=currentServerConfig-1;
1433 1446
1434 fillCombos(); 1447 fillCombos();
1435 update(); 1448 update();
1436} 1449}
1437 1450
1438void OpieFtp::upDir() 1451void OpieFtp::upDir()
1439{ 1452{
1440 if (TabWidget->currentPageIndex() == 0) { 1453 if (TabWidget->currentPageIndex() == 0) {
1441 QString current = currentDir.canonicalPath(); 1454 QString current = currentDir.canonicalPath();
1442 QDir dir(current); 1455 QDir dir(current);
1443 dir.cdUp(); 1456 dir.cdUp();
1444 current = dir.canonicalPath(); 1457 current = dir.canonicalPath();
1445 chdir( current.latin1() ); 1458 chdir( current.latin1() );
1446 currentDir.cd( current, TRUE); 1459 currentDir.cd( current, TRUE);
1447 populateLocalView(); 1460 populateLocalView();
1448 update(); 1461 update();
1449 } else { 1462 } else {
1450 if( FtpCDUp( conn) == 0) { 1463 if( FtpCDUp( conn) == 0) {
1451 QString msg; 1464 QString msg;
1452 msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn)); 1465 msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn));
1453 msg.replace(QRegExp(":"),"\n"); 1466 msg.replace(QRegExp(":"),"\n");
1454 QMessageBox::message(tr("Note"),msg); 1467 QMessageBox::message(tr("Note"),msg);
1455// odebug << msg << oendl; 1468// odebug << msg << oendl;
1456 } 1469 }
1457 char path[256]; 1470 char path[256];
1458 if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string 1471 if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string
1459 QString msg; 1472 QString msg;
1460 msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn)); 1473 msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn));
1461 msg.replace(QRegExp(":"),"\n"); 1474 msg.replace(QRegExp(":"),"\n");
1462 QMessageBox::message(tr("Note"),msg); 1475 QMessageBox::message(tr("Note"),msg);
1463// odebug << msg << oendl; 1476// odebug << msg << oendl;
1464 } 1477 }
1465 currentRemoteDir=path; 1478 currentRemoteDir=path;
1466 remoteDirList( (const QString &)currentRemoteDir); //this also calls populate 1479 remoteDirList( (const QString &)currentRemoteDir); //this also calls populate
1467 if(currentRemoteDir.right(1) !="/") 1480 if(currentRemoteDir.right(1) !="/")
1468 currentRemoteDir +="/"; 1481 currentRemoteDir +="/";
1469 currentPathCombo->lineEdit()->setText( currentRemoteDir); 1482 currentPathCombo->lineEdit()->setText( currentRemoteDir);
1470 fillRemoteCombo( (const QString &)currentRemoteDir); 1483 fillRemoteCombo( (const QString &)currentRemoteDir);
1471 1484
1472 } 1485 }
1473} 1486}
1474 1487
1475void OpieFtp::docButtonPushed() { 1488void OpieFtp::docButtonPushed() {
1476 QString current = QPEApplication::documentDir(); 1489 QString current = QPEApplication::documentDir();
1477 chdir( current.latin1() ); 1490 chdir( current.latin1() );
1478 currentDir.cd( current, TRUE); 1491 currentDir.cd( current, TRUE);
1479 populateLocalView(); 1492 populateLocalView();
1480 update(); 1493 update();
1481 1494
1482} 1495}
1483 1496
1484void OpieFtp::homeButtonPushed() { 1497void OpieFtp::homeButtonPushed() {
1485 QString current = QDir::homeDirPath(); 1498 QString current = QDir::homeDirPath();
1486 chdir( current.latin1() ); 1499 chdir( current.latin1() );
1487 currentDir.cd( current, TRUE); 1500 currentDir.cd( current, TRUE);
1488 populateLocalView(); 1501 populateLocalView();
1489 update(); 1502 update();
1490} 1503}
1491 1504
1492void OpieFtp::doAbout() { 1505void OpieFtp::doAbout() {
1493 QMessageBox::message("OpieFtp","Opie ftp client is copyright 2002 by\n" 1506 QMessageBox::message("OpieFtp","Opie ftp client is copyright 2002 by\n"
1494 "L.J.Potter<llornkcor@handhelds.org>\n" 1507 "L.J.Potter<llornkcor@handhelds.org>\n"
1495 "and uses ftplib copyright 1996-2000\n" 1508 "and uses ftplib copyright 1996-2000\n"
1496 "by Thomas Pfau, pfau@cnj.digex.net\n\n" 1509 "by Thomas Pfau, pfau@cnj.digex.net\n\n"
1497 "and is licensed by the GPL"); 1510 "and is licensed by the GPL");
1498} 1511}
1499 1512
1500void OpieFtp::NewServer() { 1513void OpieFtp::NewServer() {
1501 InputDialog *fileDlg; 1514 InputDialog *fileDlg;
1502 fileDlg = new InputDialog(this,tr("New Server name"),TRUE, 0); 1515 fileDlg = new InputDialog(this,tr("New Server name"),TRUE, 0);
1503 fileDlg->exec(); 1516 fileDlg->exec();
1504 Config cfg("opieftp"); 1517 Config cfg("opieftp");
1505 if( fileDlg->result() == 1 ) { 1518 if( fileDlg->result() == 1 ) {
1506 newServerName = fileDlg->LineEdit1->text(); 1519 newServerName = fileDlg->LineEdit1->text();
1507 for(int i=1;i<serverListView->count();i++) { 1520 for(int i=1;i<serverListView->count();i++) {
1508 cfg.setGroup( QString::number(i)); 1521 cfg.setGroup( QString::number(i));
1509 if(cfg.readEntry("ServerName").find(newServerName,0,TRUE) != -1) { 1522 if(cfg.readEntry("ServerName").find(newServerName,0,TRUE) != -1) {
1510 QMessageBox::message(tr("OpieFtp"),tr("Sorry name already taken")); 1523 QMessageBox::message(tr("OpieFtp"),tr("Sorry name already taken"));
1511 return; 1524 return;
1512 } 1525 }
1513 } 1526 }
1514 currentServerConfig =-1; 1527 currentServerConfig =-1;
1515 writeConfig(); 1528 writeConfig();
1516 serverListView->insertItem( newServerName ); 1529 serverListView->insertItem( newServerName );
1517 serverListView->setCurrentItem( serverListView->count()); 1530 serverListView->setCurrentItem( serverListView->count());
1518 } 1531 }
1519} 1532}
1520 1533
1521void OpieFtp::serverListClicked( const QString &item) { 1534void OpieFtp::serverListClicked( const QString &item) {
1522 if(item.isEmpty()) return; 1535 if(item.isEmpty()) return;
1523 Config cfg("opieftp"); 1536 Config cfg("opieftp");
1524 odebug << "highltined "+item << oendl; 1537 odebug << "highltined "+item << oendl;
1525 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0); 1538 int numberOfEntries = cfg.readNumEntry("numberOfEntries",0);
1526 for (int i = 1; i <= numberOfEntries; i++) { 1539 for (int i = 1; i <= numberOfEntries; i++) {
1527 cfg.setGroup(QString::number(i)); 1540 cfg.setGroup(QString::number(i));
1528 if(cfg.readEntry( "ServerName").find(item) != -1 && !fuckeduphack) 1541 if(cfg.readEntry( "ServerName").find(item) != -1 && !fuckeduphack)
1529 serverComboSelected(i-1); 1542 serverComboSelected(i-1);
1530 } 1543 }
1531} 1544}
1532 1545
1533void OpieFtp::timerOut() { 1546void OpieFtp::timerOut() {
1534 1547
1535} 1548}