summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieftp/opieftp.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp
index 58ffe3a..b703217 100644
--- a/noncore/net/opieftp/opieftp.cpp
+++ b/noncore/net/opieftp/opieftp.cpp
@@ -1,771 +1,774 @@
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 <qlineedit.h> 42#include <qlineedit.h>
43#include <qlistbox.h> 43#include <qlistbox.h>
44#include <qvbox.h> 44#include <qvbox.h>
45/* STD */ 45/* STD */
46#include <unistd.h> 46#include <unistd.h>
47#include <stdlib.h> 47#include <stdlib.h>
48 48
49QProgressBar *ProgressBar; 49QProgressBar *ProgressBar;
50static netbuf *conn=NULL; 50static netbuf *conn=NULL;
51 51
52static int log_progress(netbuf *, int xfered, void *) 52static int log_progress(netbuf *, int xfered, void *)
53{ 53{
54// int fsz = *(int *)arg; 54// int fsz = *(int *)arg;
55// int pct = (xfered * 100) / fsz; 55// int pct = (xfered * 100) / fsz;
56// printf("%3d%%\r", pct); 56// printf("%3d%%\r", pct);
57// fflush(stdout); 57// fflush(stdout);
58 ProgressBar->setProgress(xfered); 58 ProgressBar->setProgress(xfered);
59 qApp->processEvents(); 59 qApp->processEvents();
60 return 1; 60 return 1;
61} 61}
62 62
63OpieFtp::OpieFtp( QWidget* parent, const char* name, WFlags fl) 63OpieFtp::OpieFtp( QWidget* parent, const char* name, WFlags fl)
64 : QMainWindow( parent, name, fl ) 64 : QMainWindow( parent, name, fl )
65{ 65{
66 odebug << "OpieFtp constructor" << oendl; 66 odebug << "OpieFtp constructor" << oendl;
67 setCaption( tr( "OpieFtp" ) ); 67 setCaption( tr( "OpieFtp" ) );
68 fuckeduphack=FALSE; 68 fuckeduphack=FALSE;
69 69
70 QVBox* wrapperBox = new QVBox( this ); 70 QVBox* wrapperBox = new QVBox( this );
71 setCentralWidget( wrapperBox ); 71 setCentralWidget( wrapperBox );
72 72
73 QWidget *view = new QWidget( wrapperBox ); 73 QWidget *view = new QWidget( wrapperBox );
74 74
75 QGridLayout *layout = new QGridLayout( view ); 75 QGridLayout *layout = new QGridLayout( view );
76 layout->setSpacing( 2); 76 layout->setSpacing( 2);
77 layout->setMargin( 2); 77 layout->setMargin( 2);
78 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 78 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
79 79
80 QMenuBar *menuBar = new QMenuBar(this); 80 QMenuBar *menuBar = new QMenuBar(this);
81// QToolBar *menuBar = new QToolBar(this); 81// QToolBar *menuBar = new QToolBar(this);
82// menuBar->setHorizontalStretchable( TRUE ); 82// menuBar->setHorizontalStretchable( TRUE );
83 83
84 QWMatrix matrix; 84 QWMatrix matrix;
85 QPixmap pix(Resource::loadPixmap( "UnknownDocument" )); 85 QPixmap pix(Resource::loadPixmap( "UnknownDocument" ));
86 matrix.scale( .4, .4); 86 matrix.scale( .4, .4);
87 unknownXpm = pix.xForm(matrix); 87 unknownXpm = pix.xForm(matrix);
88 88
89 connectionMenu = new QPopupMenu( this ); 89 connectionMenu = new QPopupMenu( this );
90 localMenu = new QPopupMenu( this ); 90 localMenu = new QPopupMenu( this );
91 remoteMenu = new QPopupMenu( this ); 91 remoteMenu = new QPopupMenu( this );
92 tabMenu = new QPopupMenu( this ); 92 tabMenu = new QPopupMenu( this );
93 93
94//#if 0 94//#if 0
95 layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 ); 95 layout->addMultiCellWidget( menuBar, 0, 0, 0, 2 );
96//#endif 96//#endif
97 97
98 menuBar->insertItem( tr( "Connection" ), connectionMenu); 98 menuBar->insertItem( tr( "Connection" ), connectionMenu);
99// menuBar->insertItem( tr( "Local" ), localMenu); 99// menuBar->insertItem( tr( "Local" ), localMenu);
100// menuBar->insertItem( tr( "Remote" ), remoteMenu); 100// menuBar->insertItem( tr( "Remote" ), remoteMenu);
101 menuBar->insertItem( tr( "View" ), tabMenu); 101 menuBar->insertItem( tr( "View" ), tabMenu);
102 102
103 tabMenu->insertItem( tr( "Local" ), localMenu); 103 tabMenu->insertItem( tr( "Local" ), localMenu);
104 tabMenu->insertItem( tr( "Remote" ), remoteMenu); 104 tabMenu->insertItem( tr( "Remote" ), remoteMenu);
105 105
106 connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() )); 106 connectionMenu->insertItem( tr( "New" ), this, SLOT( newConnection() ));
107 connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() )); 107 connectionMenu->insertItem( tr( "Connect" ), this, SLOT( connector() ));
108 connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() )); 108 connectionMenu->insertItem( tr( "Disconnect" ), this, SLOT( disConnector() ));
109 109
110 localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); 110 localMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() ));
111 localMenu->insertSeparator(); 111 localMenu->insertSeparator();
112 localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); 112 localMenu->insertItem( tr( "Upload" ), this, SLOT( localUpload() ));
113 localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); 113 localMenu->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() ));
114 localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() )); 114 localMenu->insertItem( tr( "Rename" ), this, SLOT( localRename() ));
115 localMenu->insertSeparator(); 115 localMenu->insertSeparator();
116 localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); 116 localMenu->insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
117 localMenu->setCheckable(TRUE); 117 localMenu->setCheckable(TRUE);
118 118
119 remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); 119 remoteMenu->insertItem( tr( "Download" ), this, SLOT( remoteDownload() ));
120 remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); 120 remoteMenu->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() ));
121 remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); 121 remoteMenu->insertItem( tr( "Rename" ), this, SLOT( remoteRename() ));
122 remoteMenu->insertSeparator(); 122 remoteMenu->insertSeparator();
123 remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); 123 remoteMenu->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() ));
124 124
125 tabMenu->insertSeparator(); 125 tabMenu->insertSeparator();
126 tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() )); 126 tabMenu->insertItem( tr( "Switch to Local" ), this, SLOT( switchToLocalTab() ));
127 tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() )); 127 tabMenu->insertItem( tr( "Switch to Remote" ), this, SLOT( switchToRemoteTab() ));
128 tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() )); 128 tabMenu->insertItem( tr( "Switch to Config" ), this, SLOT( switchToConfigTab() ));
129 tabMenu->insertSeparator(); 129 tabMenu->insertSeparator();
130// tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() )); 130// tabMenu->insertItem( tr( "About" ), this, SLOT( doAbout() ));
131 tabMenu->setCheckable(TRUE); 131 tabMenu->setCheckable(TRUE);
132 132
133 133
134 cdUpButton = new QToolButton( view,"cdUpButton"); 134 cdUpButton = new QToolButton( view,"cdUpButton");
135 cdUpButton->setPixmap(Resource::loadPixmap("up")); 135 cdUpButton->setPixmap(Resource::loadPixmap("up"));
136 cdUpButton ->setFixedSize( QSize( 20, 20 ) ); 136 cdUpButton ->setFixedSize( QSize( 20, 20 ) );
137 connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) ); 137 connect( cdUpButton ,SIGNAL(released()),this,SLOT( upDir()) );
138 layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 ); 138 layout->addMultiCellWidget( cdUpButton, 0, 0, 3, 3 );
139 cdUpButton->hide(); 139 cdUpButton->hide();
140 140
141// docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",view,"docsButton"); 141// docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",view,"docsButton");
142// docButton->setFixedSize( QSize( 20, 20 ) ); 142// docButton->setFixedSize( QSize( 20, 20 ) );
143// connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); 143// connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) );
144// docButton->setFlat(TRUE); 144// docButton->setFlat(TRUE);
145// layout->addMultiCellWidget( docButton, 0, 0, 6, 6 ); 145// layout->addMultiCellWidget( docButton, 0, 0, 6, 6 );
146 146
147 homeButton = new QToolButton(view,"homeButton"); 147 homeButton = new QToolButton(view,"homeButton");
148 homeButton->setPixmap( Resource::loadPixmap("home")); 148 homeButton->setPixmap( Resource::loadPixmap("home"));
149 homeButton->setFixedSize( QSize( 20, 20 ) ); 149 homeButton->setFixedSize( QSize( 20, 20 ) );
150 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); 150 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) );
151 layout->addMultiCellWidget( homeButton, 0, 0, 4, 4); 151 layout->addMultiCellWidget( homeButton, 0, 0, 4, 4);
152 homeButton->hide(); 152 homeButton->hide();
153 153
154 TabWidget = new QTabWidget( view, "TabWidget" ); 154 TabWidget = new QTabWidget( view, "TabWidget" );
155 layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 ); 155 layout->addMultiCellWidget( TabWidget, 1, 1, 0, 4 );
156 156
157// TabWidget->setTabShape(QTabWidget::Triangular); 157// TabWidget->setTabShape(QTabWidget::Triangular);
158 158
159 tab = new QWidget( TabWidget, "tab" ); 159 tab = new QWidget( TabWidget, "tab" );
160 tabLayout = new QGridLayout( tab ); 160 tabLayout = new QGridLayout( tab );
161 tabLayout->setSpacing( 2); 161 tabLayout->setSpacing( 2);
162 tabLayout->setMargin( 2); 162 tabLayout->setMargin( 2);
163 163
164 Local_View = new QListView( tab, "Local_View" ); 164 Local_View = new QListView( tab, "Local_View" );
165// Local_View->setResizePolicy( QListView::AutoOneFit ); 165// Local_View->setResizePolicy( QListView::AutoOneFit );
166 Local_View->addColumn( tr("File"),150); 166 Local_View->addColumn( tr("File"),150);
167 Local_View->addColumn( tr("Date"),-1); 167 Local_View->addColumn( tr("Date"),-1);
168 Local_View->setColumnAlignment(1,QListView::AlignRight); 168 Local_View->setColumnAlignment(1,QListView::AlignRight);
169 Local_View->addColumn( tr("Size"),-1); 169 Local_View->addColumn( tr("Size"),-1);
170 Local_View->setColumnAlignment(2,QListView::AlignRight); 170 Local_View->setColumnAlignment(2,QListView::AlignRight);
171 Local_View->setAllColumnsShowFocus(TRUE); 171 Local_View->setAllColumnsShowFocus(TRUE);
172 172
173 Local_View->setMultiSelection( TRUE); 173 Local_View->setMultiSelection( TRUE);
174 Local_View->setSelectionMode(QListView::Extended); 174 Local_View->setSelectionMode(QListView::Extended);
175 Local_View->setFocusPolicy(QWidget::ClickFocus); 175 Local_View->setFocusPolicy(QWidget::ClickFocus);
176 176
177 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold); 177 QPEApplication::setStylusOperation( Local_View->viewport(),QPEApplication::RightOnHold);
178 178
179 tabLayout->addWidget( Local_View, 0, 0 ); 179 tabLayout->addWidget( Local_View, 0, 0 );
180 180
181 connect( Local_View, SIGNAL( clicked(QListViewItem*)), 181 connect( Local_View, SIGNAL( clicked(QListViewItem*)),
182 this,SLOT( localListClicked(QListViewItem*)) ); 182 this,SLOT( localListClicked(QListViewItem*)) );
183// connect( Local_View, SIGNAL( doubleClicked(QListViewItem*)), 183// connect( Local_View, SIGNAL( doubleClicked(QListViewItem*)),
184// this,SLOT( localListClicked(QListViewItem*)) ); 184// this,SLOT( localListClicked(QListViewItem*)) );
185 connect( Local_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), 185 connect( Local_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),
186 this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) ); 186 this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) );
187 187
188 TabWidget->insertTab( tab, tr( "Local" ) ); 188 TabWidget->insertTab( tab, tr( "Local" ) );
189 189
190 tab_2 = new QWidget( TabWidget, "tab_2" ); 190 tab_2 = new QWidget( TabWidget, "tab_2" );
191 tabLayout_2 = new QGridLayout( tab_2 ); 191 tabLayout_2 = new QGridLayout( tab_2 );
192 tabLayout_2->setSpacing( 2); 192 tabLayout_2->setSpacing( 2);
193 tabLayout_2->setMargin( 2); 193 tabLayout_2->setMargin( 2);
194 194
195 Remote_View = new QListView( tab_2, "Remote_View" ); 195 Remote_View = new QListView( tab_2, "Remote_View" );
196 Remote_View->addColumn( tr("File"),150); 196 Remote_View->addColumn( tr("File"),150);
197 Remote_View->addColumn( tr("Date"),-1); 197 Remote_View->addColumn( tr("Date"),-1);
198// Remote_View->setColumnAlignment(1,QListView::AlignRight); 198// Remote_View->setColumnAlignment(1,QListView::AlignRight);
199 Remote_View->addColumn( tr("Size"),-1); 199 Remote_View->addColumn( tr("Size"),-1);
200 Remote_View->setColumnAlignment(2,QListView::AlignRight); 200 Remote_View->setColumnAlignment(2,QListView::AlignRight);
201 Remote_View->setColumnAlignment(3,QListView::AlignCenter); 201 Remote_View->setColumnAlignment(3,QListView::AlignCenter);
202 Remote_View->addColumn( tr("Dir"),-1); 202 Remote_View->addColumn( tr("Dir"),-1);
203 Remote_View->setColumnAlignment(4,QListView::AlignRight); 203 Remote_View->setColumnAlignment(4,QListView::AlignRight);
204 Remote_View->setAllColumnsShowFocus(TRUE); 204 Remote_View->setAllColumnsShowFocus(TRUE);
205 205
206 Remote_View->setMultiSelection( FALSE); 206 Remote_View->setMultiSelection( FALSE);
207 Remote_View->setSelectionMode(QListView::Extended); 207 Remote_View->setSelectionMode(QListView::Extended);
208 Remote_View->setFocusPolicy(QWidget::ClickFocus); 208 Remote_View->setFocusPolicy(QWidget::ClickFocus);
209 209
210 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold); 210 QPEApplication::setStylusOperation( Remote_View->viewport(),QPEApplication::RightOnHold);
211 211
212 connect( Remote_View, SIGNAL( clicked(QListViewItem*)), 212 connect( Remote_View, SIGNAL( clicked(QListViewItem*)),
213 this,SLOT( remoteListClicked(QListViewItem*)) ); 213 this,SLOT( remoteListClicked(QListViewItem*)) );
214 connect( Remote_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)), 214 connect( Remote_View, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),
215 this,SLOT( RemoteListPressed(int,QListViewItem*,const QPoint&,int)) ); 215 this,SLOT( RemoteListPressed(int,QListViewItem*,const QPoint&,int)) );
216 216
217 tabLayout_2->addWidget( Remote_View, 0, 0 ); 217 tabLayout_2->addWidget( Remote_View, 0, 0 );
218 218
219 TabWidget->insertTab( tab_2, tr( "Remote" ) ); 219 TabWidget->insertTab( tab_2, tr( "Remote" ) );
220 220
221 tab_3 = new QWidget( TabWidget, "tab_3" ); 221 tab_3 = new QWidget( TabWidget, "tab_3" );
222 tabLayout_3 = new QGridLayout( tab_3 ); 222 tabLayout_3 = new QGridLayout( tab_3 );
223 tabLayout_3->setSpacing( 2); 223 tabLayout_3->setSpacing( 2);
224 tabLayout_3->setMargin( 2); 224 tabLayout_3->setMargin( 2);
225 225
226 TextLabel1 = new QLabel( tab_3, "TextLabel1" ); 226 TextLabel1 = new QLabel( tab_3, "TextLabel1" );
227 TextLabel1->setText( tr( "Username" ) ); 227 TextLabel1->setText( tr( "Username" ) );
228 tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 ); 228 tabLayout_3->addMultiCellWidget( TextLabel1, 0, 0, 0, 1 );
229 229
230 UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" ); 230 UsernameComboBox = new QComboBox( FALSE, tab_3, "UsernameComboBox" );
231 UsernameComboBox->setEditable(TRUE); 231 UsernameComboBox->setEditable(TRUE);
232 tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 ); 232 tabLayout_3->addMultiCellWidget( UsernameComboBox, 1, 1, 0, 1 );
233 233
234 connect( UsernameComboBox,SIGNAL(textChanged(const QString&)),this, 234 connect( UsernameComboBox,SIGNAL(textChanged(const QString&)),this,
235 SLOT( UsernameComboBoxEdited(const QString&) )); 235 SLOT( UsernameComboBoxEdited(const QString&) ));
236 236
237 TextLabel2 = new QLabel( tab_3, "TextLabel2" ); 237 TextLabel2 = new QLabel( tab_3, "TextLabel2" );
238 TextLabel2->setText( tr( "Password" ) ); 238 TextLabel2->setText( tr( "Password" ) );
239 tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 ); 239 tabLayout_3->addMultiCellWidget( TextLabel2, 0, 0, 2, 3 );
240 240
241 PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" ); 241 PasswordEdit = new QLineEdit( "", tab_3, "PasswordComboBox" );
242 PasswordEdit->setEchoMode(QLineEdit::Password); 242 PasswordEdit->setEchoMode(QLineEdit::Password);
243 tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 ); 243 tabLayout_3->addMultiCellWidget( PasswordEdit, 1, 1, 2, 3 );
244 244
245 connect( PasswordEdit,SIGNAL(textChanged(const QString&)),this, 245 connect( PasswordEdit,SIGNAL(textChanged(const QString&)),this,
246 SLOT( PasswordEditEdited(const QString&) )); 246 SLOT( PasswordEditEdited(const QString&) ));
247 247
248//PasswordEdit->setFixedWidth(85); 248//PasswordEdit->setFixedWidth(85);
249 TextLabel3 = new QLabel( tab_3, "TextLabel3" ); 249 TextLabel3 = new QLabel( tab_3, "TextLabel3" );
250 TextLabel3->setText( tr( "Remote server" ) ); 250 TextLabel3->setText( tr( "Remote server" ) );
251 tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); 251 tabLayout_3->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 );
252 252
253 ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" ); 253 ServerComboBox = new QComboBox( FALSE, tab_3, "ServerComboBox" );
254 ServerComboBox->setEditable(TRUE); 254 ServerComboBox->setEditable(TRUE);
255 tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 ); 255 tabLayout_3->addMultiCellWidget( ServerComboBox, 3, 3, 0, 1 );
256 256
257 connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int) )); 257 connect(ServerComboBox,SIGNAL(activated(int)),this,SLOT(serverComboSelected(int) ));
258 connect(ServerComboBox,SIGNAL(textChanged(const QString&)),this, 258 connect(ServerComboBox,SIGNAL(textChanged(const QString&)),this,
259 SLOT(serverComboEdited(const QString&) )); 259 SLOT(serverComboEdited(const QString&) ));
260 260
261 QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" ); 261 QLabel *TextLabel5 = new QLabel( tab_3, "TextLabel5" );
262 TextLabel5->setText( tr( "Remote path" ) ); 262 TextLabel5->setText( tr( "Remote path" ) );
263 tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 ); 263 tabLayout_3->addMultiCellWidget( TextLabel5, 2, 2, 2, 3 );
264 264
265 265
266 remotePath = new QLineEdit( "/", tab_3, "remotePath" ); 266 remotePath = new QLineEdit( "/", tab_3, "remotePath" );
267 tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 ); 267 tabLayout_3->addMultiCellWidget( remotePath, 3, 3, 2, 3 );
268 TextLabel4 = new QLabel( tab_3, "TextLabel4" ); 268 TextLabel4 = new QLabel( tab_3, "TextLabel4" );
269 TextLabel4->setText( tr( "Port" ) ); 269 TextLabel4->setText( tr( "Port" ) );
270 tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 ); 270 tabLayout_3->addMultiCellWidget( TextLabel4, 4, 4, 0, 1 );
271 271
272 PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" ); 272 PortSpinBox = new QSpinBox( tab_3, "PortSpinBox" );
273 PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows ); 273 PortSpinBox->setButtonSymbols( QSpinBox::UpDownArrows );
274 PortSpinBox->setMaxValue(32786); 274 PortSpinBox->setMaxValue(32786);
275 tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1); 275 tabLayout_3->addMultiCellWidget( PortSpinBox, 4, 4, 1, 1);
276 276
277 serverListView = new QListBox( tab_3, "ServerListView" ); 277 serverListView = new QListBox( tab_3, "ServerListView" );
278 tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5); 278 tabLayout_3->addMultiCellWidget( serverListView , 5, 5, 0, 5);
279 279
280 connect( serverListView, SIGNAL( highlighted(const QString&)), 280 connect( serverListView, SIGNAL( highlighted(const QString&)),
281 this,SLOT( serverListClicked(const QString&) ) ); 281 this,SLOT( serverListClicked(const QString&) ) );
282 282
283 connectServerBtn = new QPushButton( tr("Connect"), tab_3 , "ConnectButton" ); 283 connectServerBtn = new QPushButton( tr("Connect"), tab_3 , "ConnectButton" );
284 tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1); 284 tabLayout_3->addMultiCellWidget( connectServerBtn, 6, 6, 0, 1);
285 connectServerBtn->setToggleButton(TRUE); 285 connectServerBtn->setToggleButton(TRUE);
286 connect(connectServerBtn,SIGNAL( toggled(bool)),SLOT( connectorBtnToggled(bool) )); 286 connect(connectServerBtn,SIGNAL( toggled(bool)),SLOT( connectorBtnToggled(bool) ));
287 287
288 newServerButton= new QPushButton( tr("Add"), tab_3 , "NewServerButton" ); 288 newServerButton= new QPushButton( tr("Add"), tab_3 , "NewServerButton" );
289 tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2); 289 tabLayout_3->addMultiCellWidget( newServerButton, 6, 6, 2, 2);
290 connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() )); 290 connect( newServerButton,SIGNAL( clicked()),SLOT( NewServer() ));
291 291
292 QPushButton *deleteServerBtn; 292 QPushButton *deleteServerBtn;
293 deleteServerBtn = new QPushButton( tr("Delete"), tab_3 , "OpenButton" ); 293 deleteServerBtn = new QPushButton( tr("Delete"), tab_3 , "OpenButton" );
294 tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3); 294 tabLayout_3->addMultiCellWidget( deleteServerBtn, 6, 6, 3, 3);
295 295
296 connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer())); 296 connect(deleteServerBtn,SIGNAL(clicked()),SLOT(deleteServer()));
297 297
298 298
299 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); 299 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
300 tabLayout_3->addItem( spacer, 5, 0 ); 300 tabLayout_3->addItem( spacer, 5, 0 );
301 301
302 TabWidget->insertTab( tab_3, tr( "Config" ) ); 302 TabWidget->insertTab( tab_3, tr( "Config" ) );
303 303
304 connect(TabWidget,SIGNAL(currentChanged(QWidget*)), 304 connect(TabWidget,SIGNAL(currentChanged(QWidget*)),
305 this,SLOT(tabChanged(QWidget*))); 305 this,SLOT(tabChanged(QWidget*)));
306 306
307 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 307 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
308 currentDir.setPath( QDir::currentDirPath()); 308 currentDir.setPath( QDir::currentDirPath());
309// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 309// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
310 310
311 currentPathCombo = new QComboBox( FALSE, view, "currentPathCombo" ); 311 currentPathCombo = new QComboBox( FALSE, view, "currentPathCombo" );
312 layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4); 312 layout->addMultiCellWidget( currentPathCombo, 3, 3, 0, 4);
313 currentPathCombo ->setFixedWidth(220); 313 currentPathCombo ->setFixedWidth(220);
314 currentPathCombo->setEditable(TRUE); 314 currentPathCombo->setEditable(TRUE);
315 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 315 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
316 316
317 connect( currentPathCombo, SIGNAL( activated(const QString&) ), 317 connect( currentPathCombo, SIGNAL( activated(const QString&) ),
318 this, SLOT( currentPathComboActivated(const QString&) ) ); 318 this, SLOT( currentPathComboActivated(const QString&) ) );
319 319
320 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()), 320 connect( currentPathCombo->lineEdit(),SIGNAL(returnPressed()),
321 this,SLOT(currentPathComboChanged())); 321 this,SLOT(currentPathComboChanged()));
322 ProgressBar = new QProgressBar( view, "ProgressBar" ); 322 ProgressBar = new QProgressBar( view, "ProgressBar" );
323 layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4); 323 layout->addMultiCellWidget( ProgressBar, 4, 4, 0, 4);
324 ProgressBar->setMaximumHeight(10); 324 ProgressBar->setMaximumHeight(10);
325 filterStr="*"; 325 filterStr="*";
326 b=FALSE; 326 b=FALSE;
327 populateLocalView(); 327 populateLocalView();
328 readConfig(); 328 readConfig();
329 329
330// ServerComboBox->setCurrentItem(currentServerConfig); 330// ServerComboBox->setCurrentItem(currentServerConfig);
331 331
332 TabWidget->setCurrentPage(2); 332 TabWidget->setCurrentPage(2);
333 odebug << "Constructor done" << oendl; 333 odebug << "Constructor done" << oendl;
334} 334}
335 335
336OpieFtp::~OpieFtp() 336OpieFtp::~OpieFtp()
337{ 337{
338} 338}
339 339
340void OpieFtp::cleanUp() 340void OpieFtp::cleanUp()
341{ 341{
342 if(conn) 342 if(conn)
343 FtpQuit(conn); 343 FtpQuit(conn);
344 QString sfile=QDir::homeDirPath(); 344 QString sfile=QDir::homeDirPath();
345 if(sfile.right(1) != "/") 345 if(sfile.right(1) != "/")
346 sfile+="/._temp"; 346 sfile+="/._temp";
347 else 347 else
348 sfile+="._temp"; 348 sfile+="._temp";
349 QFile file( sfile); 349 QFile file( sfile);
350 if(file.exists()) 350 if(file.exists())
351 file.remove(); 351 file.remove();
352 Config cfg("opieftp"); 352 Config cfg("opieftp");
353 cfg.setGroup("Server"); 353 cfg.setGroup("Server");
354 cfg.writeEntry("currentServer", currentServerConfig); 354 cfg.writeEntry("currentServer", currentServerConfig);
355 355
356 exit(0); 356 exit(0);
357} 357}
358 358
359void OpieFtp::tabChanged(QWidget *) 359void OpieFtp::tabChanged(QWidget *)
360{ 360{
361 if (TabWidget->currentPageIndex() == 0) { 361 if (TabWidget->currentPageIndex() == 0) {
362 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath()); 362 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
363 tabMenu->setItemChecked(tabMenu->idAt(0),TRUE); 363 tabMenu->setItemChecked(tabMenu->idAt(0),TRUE);
364 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); 364 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE);
365 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); 365 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE);
366 if(cdUpButton->isHidden()) 366 if(cdUpButton->isHidden())
367 cdUpButton->show(); 367 cdUpButton->show();
368 if(homeButton->isHidden()) 368 if(homeButton->isHidden())
369 homeButton->show(); 369 homeButton->show();
370 if(currentPathCombo->isHidden()) currentPathCombo->show();
370 371
371 } 372 }
372 if (TabWidget->currentPageIndex() == 1) { 373 if (TabWidget->currentPageIndex() == 1) {
373 currentPathCombo->lineEdit()->setText( currentRemoteDir ); 374 currentPathCombo->lineEdit()->setText( currentRemoteDir );
374 tabMenu->setItemChecked(tabMenu->idAt(1),TRUE); 375 tabMenu->setItemChecked(tabMenu->idAt(1),TRUE);
375 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); 376 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE);
376 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE); 377 tabMenu->setItemChecked(tabMenu->idAt(2),FALSE);
377 if(cdUpButton->isHidden()) 378 if(cdUpButton->isHidden())
378 cdUpButton->show(); 379 cdUpButton->show();
379 homeButton->hide(); 380 homeButton->hide();
381 if(currentPathCombo->isHidden()) currentPathCombo->show();
380 382
381 } 383 }
382 if (TabWidget->currentPageIndex() == 2) { 384 if (TabWidget->currentPageIndex() == 2) {
383 tabMenu->setItemChecked(tabMenu->idAt(2),TRUE); 385 tabMenu->setItemChecked(tabMenu->idAt(2),TRUE);
384 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE); 386 tabMenu->setItemChecked(tabMenu->idAt(0),FALSE);
385 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE); 387 tabMenu->setItemChecked(tabMenu->idAt(1),FALSE);
386 cdUpButton->hide(); 388 cdUpButton->hide();
387 homeButton->hide(); 389 homeButton->hide();
390 if(!currentPathCombo->isHidden()) currentPathCombo->hide();
388 } 391 }
389} 392}
390 393
391void OpieFtp::newConnection() 394void OpieFtp::newConnection()
392{ 395{
393 UsernameComboBox->lineEdit()->setText(""); 396 UsernameComboBox->lineEdit()->setText("");
394 PasswordEdit->setText( "" ); 397 PasswordEdit->setText( "" );
395 ServerComboBox->lineEdit()->setText( ""); 398 ServerComboBox->lineEdit()->setText( "");
396 remotePath->setText( currentRemoteDir = "/"); 399 remotePath->setText( currentRemoteDir = "/");
397 PortSpinBox->setValue( 21); 400 PortSpinBox->setValue( 21);
398 TabWidget->setCurrentPage(2); 401 TabWidget->setCurrentPage(2);
399} 402}
400 403
401void OpieFtp::serverComboEdited(const QString & ) 404void OpieFtp::serverComboEdited(const QString & )
402{ 405{
403// if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) { 406// if( ServerComboBox->text(currentServerConfig) != edit /*edit.isEmpty() */) {
404// odebug << "ServerComboEdited" << oendl; 407// odebug << "ServerComboEdited" << oendl;
405// // currentServerConfig = -1; 408// // currentServerConfig = -1;
406// } 409// }
407} 410}
408 411
409void OpieFtp::UsernameComboBoxEdited(const QString &) { 412void OpieFtp::UsernameComboBoxEdited(const QString &) {
410// currentServerConfig = -1; 413// currentServerConfig = -1;
411} 414}
412 415
413void OpieFtp::PasswordEditEdited(const QString & ) { 416void OpieFtp::PasswordEditEdited(const QString & ) {
414// currentServerConfig = -1; 417// currentServerConfig = -1;
415} 418}
416 419
417void OpieFtp::connectorBtnToggled(bool On) 420void OpieFtp::connectorBtnToggled(bool On)
418{ 421{
419 if(On) { 422 if(On) {
420 connector(); 423 connector();
421 } else { 424 } else {
422 disConnector(); 425 disConnector();
423 } 426 }
424 427
425} 428}
426 429
427void OpieFtp::connector() 430void OpieFtp::connector()
428{ 431{
429// QCopEnvelope ( "QPE/System", "busy()" ); 432// QCopEnvelope ( "QPE/System", "busy()" );
430// qApp->processEvents(); 433// qApp->processEvents();
431 currentRemoteDir=remotePath->text(); 434 currentRemoteDir=remotePath->text();
432 435
433 if( ServerComboBox->currentText().isEmpty()) { 436 if( ServerComboBox->currentText().isEmpty()) {
434 437
435 QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0); 438 QMessageBox::warning(this,tr("Ftp"),tr("Please set the server info"),tr("Ok"),0,0);
436 TabWidget->setCurrentPage(2); 439 TabWidget->setCurrentPage(2);
437 ServerComboBox->setFocus(); 440 ServerComboBox->setFocus();
438 connectServerBtn->setOn(FALSE); 441 connectServerBtn->setOn(FALSE);
439 connectServerBtn->setText( tr("Connect")); 442 connectServerBtn->setText( tr("Connect"));
440 return; 443 return;
441 } 444 }
442 445
443 FtpInit(); 446 FtpInit();
444 447
445 TabWidget->setCurrentPage(1); 448 TabWidget->setCurrentPage(1);
446 QString ftp_host = ServerComboBox->currentText(); 449 QString ftp_host = ServerComboBox->currentText();
447 QString ftp_user = UsernameComboBox->currentText(); 450 QString ftp_user = UsernameComboBox->currentText();
448 QString ftp_pass = PasswordEdit->text(); 451 QString ftp_pass = PasswordEdit->text();
449 QString port=PortSpinBox->cleanText(); 452 QString port=PortSpinBox->cleanText();
450 port.stripWhiteSpace(); 453 port.stripWhiteSpace();
451 454
452 Config cfg("opieftp"); 455 Config cfg("opieftp");
453 cfg.setGroup("Server"); 456 cfg.setGroup("Server");
454// int current=cfg.readNumEntry("currentServer", 1); 457// int current=cfg.readNumEntry("currentServer", 1);
455 458
456// if(ftp_host!= cfg.readEntry(QString::number( current))) 459// if(ftp_host!= cfg.readEntry(QString::number( current)))
457// currentServerConfig=-1; 460// currentServerConfig=-1;
458// cfg.setGroup(QString::number(current)); 461// cfg.setGroup(QString::number(current));
459// if( ftp_user != cfg.readEntry("Username")) 462// if( ftp_user != cfg.readEntry("Username"))
460// currentServerConfig=-1; 463// currentServerConfig=-1;
461// if(ftp_pass != cfg.readEntry(cfg.readEntry("Username"))) 464// if(ftp_pass != cfg.readEntry(cfg.readEntry("Username")))
462// currentServerConfig=-1; 465// currentServerConfig=-1;
463 466
464 467
465 if(ftp_host.find("ftp://",0, TRUE) != -1 ) 468 if(ftp_host.find("ftp://",0, TRUE) != -1 )
466 ftp_host=ftp_host.right(ftp_host.length()-6); 469 ftp_host=ftp_host.right(ftp_host.length()-6);
467 ftp_host+=":"+port; 470 ftp_host+=":"+port;
468 471
469 if (!FtpConnect( ftp_host.latin1(), &conn)) { 472 if (!FtpConnect( ftp_host.latin1(), &conn)) {
470 QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host); 473 QMessageBox::message(tr("Note"),tr("Unable to connect to\n")+ftp_host);
471 connectServerBtn->setOn(FALSE); 474 connectServerBtn->setOn(FALSE);
472 connectServerBtn->setText( tr("Connect")); 475 connectServerBtn->setText( tr("Connect"));
473 return ; 476 return ;
474 } 477 }
475 478
476 if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) { 479 if (!FtpLogin( ftp_user.latin1(), ftp_pass.latin1(),conn )) {
477 QString msg; 480 QString msg;
478 msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn)); 481 msg.sprintf(tr("Unable to log in\n")+"%s",FtpLastResponse(conn));
479 msg.replace(QRegExp(":"),"\n"); 482 msg.replace(QRegExp(":"),"\n");
480 QMessageBox::message(tr("Note"),msg); 483 QMessageBox::message(tr("Note"),msg);
481 if(conn) 484 if(conn)
482 FtpQuit(conn); 485 FtpQuit(conn);
483 connectServerBtn->setOn(FALSE); 486 connectServerBtn->setOn(FALSE);
484 connectServerBtn->setText( tr("Connect")); 487 connectServerBtn->setText( tr("Connect"));
485 return ; 488 return ;
486 } 489 }
487 490
488 remoteDirList("/") ; 491 remoteDirList("/") ;
489 setCaption(ftp_host); 492 setCaption(ftp_host);
490 if( currentServerConfig == -1) 493 if( currentServerConfig == -1)
491 writeConfig(); 494 writeConfig();
492 connectServerBtn->setText( tr("Disconnect")); 495 connectServerBtn->setText( tr("Disconnect"));
493// QCopEnvelope ( "QPE/System", "notBusy()" ); 496// QCopEnvelope ( "QPE/System", "notBusy()" );
494} 497}
495 498
496void OpieFtp::disConnector() 499void OpieFtp::disConnector()
497{ 500{
498 if(conn) 501 if(conn)
499 FtpQuit(conn); 502 FtpQuit(conn);
500 setCaption("OpieFtp"); 503 setCaption("OpieFtp");
501 currentRemoteDir="/"; 504 currentRemoteDir="/";
502 Remote_View->clear(); 505 Remote_View->clear();
503 connectServerBtn->setText( tr("Connect")); 506 connectServerBtn->setText( tr("Connect"));
504 connectServerBtn->setOn(FALSE); 507 connectServerBtn->setOn(FALSE);
505 setCaption("OpieFtp"); 508 setCaption("OpieFtp");
506} 509}
507 510
508void OpieFtp::localUpload() 511void OpieFtp::localUpload()
509{ 512{
510 int fsz; 513 int fsz;
511// QCopEnvelope ( "QPE/System", "busy()" ); 514// QCopEnvelope ( "QPE/System", "busy()" );
512// qApp->processEvents(); 515// qApp->processEvents();
513 QList<QListViewItem> * getSelectedItems( QListView * Local_View ); 516 QList<QListViewItem> * getSelectedItems( QListView * Local_View );
514 QListViewItemIterator it( Local_View ); 517 QListViewItemIterator it( Local_View );
515 for ( ; it.current(); ++it ) { 518 for ( ; it.current(); ++it ) {
516 if ( it.current()->isSelected() ) { 519 if ( it.current()->isSelected() ) {
517 QString strItem = it.current()->text(0); 520 QString strItem = it.current()->text(0);
518 QString localFile = currentDir.canonicalPath()+"/"+strItem; 521 QString localFile = currentDir.canonicalPath()+"/"+strItem;
519 QString remoteFile= currentRemoteDir+strItem; 522 QString remoteFile= currentRemoteDir+strItem;
520 QFileInfo fi(localFile); 523 QFileInfo fi(localFile);
521 if( !fi.isDir()) { 524 if( !fi.isDir()) {
522 fsz=fi.size(); 525 fsz=fi.size();
523 ProgressBar->setTotalSteps(fsz); 526 ProgressBar->setTotalSteps(fsz);
524 527
525 FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); 528 FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn);
526 FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); 529 FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn);
527 FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); 530 FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn);
528 FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); 531 FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn);
529 odebug << "Put: " << localFile.latin1() << ", " << remoteFile.latin1() << "" << oendl; 532 odebug << "Put: " << localFile.latin1() << ", " << remoteFile.latin1() << "" << oendl;
530 533
531 if( !FtpPut( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { 534 if( !FtpPut( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) {
532 QString msg; 535 QString msg;
533 msg.sprintf(tr("Unable to upload\n")+"%s",FtpLastResponse(conn)); 536 msg.sprintf(tr("Unable to upload\n")+"%s",FtpLastResponse(conn));
534 msg.replace(QRegExp(":"),"\n"); 537 msg.replace(QRegExp(":"),"\n");
535 QMessageBox::message(tr("Note"),msg); 538 QMessageBox::message(tr("Note"),msg);
536 } 539 }
537 } else { 540 } else {
538 QMessageBox::message(tr("Note"),tr("Cannot upload directories")); 541 QMessageBox::message(tr("Note"),tr("Cannot upload directories"));
539 } 542 }
540 ProgressBar->reset(); 543 ProgressBar->reset();
541 nullifyCallBack(); 544 nullifyCallBack();
542 it.current()->setSelected(FALSE); 545 it.current()->setSelected(FALSE);
543 } //end currentSelected 546 } //end currentSelected
544 } 547 }
545 for ( ; it.current(); ++it ) { 548 for ( ; it.current(); ++it ) {
546 Local_View->clearSelection(); 549 Local_View->clearSelection();
547 } 550 }
548 Local_View->clearFocus(); 551 Local_View->clearFocus();
549 TabWidget->setCurrentPage(1); 552 TabWidget->setCurrentPage(1);
550 remoteDirList( (const QString &)currentRemoteDir); //this also calls populate 553 remoteDirList( (const QString &)currentRemoteDir); //this also calls populate
551// QCopEnvelope ( "QPE/System", "notBusy()" ); 554// QCopEnvelope ( "QPE/System", "notBusy()" );
552} 555}
553 556
554void OpieFtp::nullifyCallBack() 557void OpieFtp::nullifyCallBack()
555{ 558{
556 FtpOptions(FTPLIB_CALLBACK, 0, conn); 559 FtpOptions(FTPLIB_CALLBACK, 0, conn);
557 FtpOptions(FTPLIB_IDLETIME, 0, conn); 560 FtpOptions(FTPLIB_IDLETIME, 0, conn);
558 FtpOptions(FTPLIB_CALLBACKARG, 0, conn); 561 FtpOptions(FTPLIB_CALLBACKARG, 0, conn);
559 FtpOptions(FTPLIB_CALLBACKBYTES, 0, conn); 562 FtpOptions(FTPLIB_CALLBACKBYTES, 0, conn);
560} 563}
561 564
562void OpieFtp::remoteDownload() 565void OpieFtp::remoteDownload()
563{ 566{
564// qApp->processEvents(); 567// qApp->processEvents();
565 int fsz; 568 int fsz;
566// QCopEnvelope ( "QPE/System", "busy()" ); 569// QCopEnvelope ( "QPE/System", "busy()" );
567 570
568 QList<QListViewItem> * getSelectedItems( QListView * Remote_View ); 571 QList<QListViewItem> * getSelectedItems( QListView * Remote_View );
569 QListViewItemIterator it( Remote_View ); 572 QListViewItemIterator it( Remote_View );
570 for ( ; it.current(); ++it ) { 573 for ( ; it.current(); ++it ) {
571 if ( it.current()->isSelected() ) { 574 if ( it.current()->isSelected() ) {
572 QString strItem = it.current()->text(0); 575 QString strItem = it.current()->text(0);
573// strItem=strItem.right(strItem.length()-1); 576// strItem=strItem.right(strItem.length()-1);
574 QString localFile = currentDir.canonicalPath(); 577 QString localFile = currentDir.canonicalPath();
575 if(localFile.right(1).find("/",0,TRUE) == -1) 578 if(localFile.right(1).find("/",0,TRUE) == -1)
576 localFile += "/"; 579 localFile += "/";
577 localFile += strItem; 580 localFile += strItem;
578// QString localFile = currentDir.canonicalPath()+"/"+strItem; 581// QString localFile = currentDir.canonicalPath()+"/"+strItem;
579 QString remoteFile= currentRemoteDir+strItem; 582 QString remoteFile= currentRemoteDir+strItem;
580 if (!FtpSize( remoteFile.latin1(), &fsz, FTPLIB_ASCII, conn)) 583 if (!FtpSize( remoteFile.latin1(), &fsz, FTPLIB_ASCII, conn))
581 fsz = 0; 584 fsz = 0;
582 QString temp; 585 QString temp;
583 temp.sprintf( remoteFile+" "+" %dkb", fsz); 586 temp.sprintf( remoteFile+" "+" %dkb", fsz);
584 587
585 ProgressBar->setTotalSteps(fsz); 588 ProgressBar->setTotalSteps(fsz);
586 FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn); 589 FtpOptions(FTPLIB_CALLBACK, (long) log_progress, conn);
587 FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn); 590 FtpOptions(FTPLIB_IDLETIME, (long) 1000, conn);
588 FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn); 591 FtpOptions(FTPLIB_CALLBACKARG, (long) &fsz, conn);
589 FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn); 592 FtpOptions(FTPLIB_CALLBACKBYTES, (long) fsz/10, conn);
590 odebug << "Get: " << localFile.latin1() << ", " << remoteFile.latin1() << "" << oendl; 593 odebug << "Get: " << localFile.latin1() << ", " << remoteFile.latin1() << "" << oendl;
591 594
592 if(!FtpGet( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) { 595 if(!FtpGet( localFile.latin1(), remoteFile.latin1(),FTPLIB_IMAGE, conn ) ) {
593 QString msg; 596 QString msg;
594 msg.sprintf(tr("Unable to download \n")+"%s",FtpLastResponse(conn)); 597 msg.sprintf(tr("Unable to download \n")+"%s",FtpLastResponse(conn));
595 msg.replace(QRegExp(":"),"\n"); 598 msg.replace(QRegExp(":"),"\n");
596 QMessageBox::message(tr("Note"),msg); 599 QMessageBox::message(tr("Note"),msg);
597 } 600 }
598 ProgressBar->reset(); 601 ProgressBar->reset();
599 nullifyCallBack(); 602 nullifyCallBack();
600 it.current()->setSelected(FALSE); 603 it.current()->setSelected(FALSE);
601 } 604 }
602 } 605 }
603 for ( ; it.current(); ++it ) { 606 for ( ; it.current(); ++it ) {
604 Remote_View->clearSelection(); 607 Remote_View->clearSelection();
605 } 608 }
606 Remote_View->setFocus(); 609 Remote_View->setFocus();
607 TabWidget->setCurrentPage(0); 610 TabWidget->setCurrentPage(0);
608 populateLocalView(); 611 populateLocalView();
609// QCopEnvelope ( "QPE/System", "notBusy()" ); 612// QCopEnvelope ( "QPE/System", "notBusy()" );
610} 613}
611 614
612bool OpieFtp::remoteDirList(const QString &dir) 615bool OpieFtp::remoteDirList(const QString &dir)
613{ 616{
614 QString tmp = QDir::homeDirPath(); 617 QString tmp = QDir::homeDirPath();
615 if(tmp.right(1) != "/") 618 if(tmp.right(1) != "/")
616 tmp+="/._temp"; 619 tmp+="/._temp";
617 else 620 else
618 tmp+="._temp"; 621 tmp+="._temp";
619// odebug << "Listing remote dir "+tmp << oendl; 622// odebug << "Listing remote dir "+tmp << oendl;
620// QCopEnvelope ( "QPE/System", "busy()" ); 623// QCopEnvelope ( "QPE/System", "busy()" );
621 if (!FtpDir( tmp.latin1(), dir.latin1(), conn) ) { 624 if (!FtpDir( tmp.latin1(), dir.latin1(), conn) ) {
622 QString msg; 625 QString msg;
623 msg.sprintf(tr("Unable to list the directory\n")+dir+"\n%s",FtpLastResponse(conn) ); 626 msg.sprintf(tr("Unable to list the directory\n")+dir+"\n%s",FtpLastResponse(conn) );
624 msg.replace(QRegExp(":"),"\n"); 627 msg.replace(QRegExp(":"),"\n");
625 QMessageBox::message(tr("Note"),msg); 628 QMessageBox::message(tr("Note"),msg);
626 return false; 629 return false;
627 } 630 }
628 populateRemoteView() ; 631 populateRemoteView() ;
629// QCopEnvelope ( "QPE/System", "notBusy()" ); 632// QCopEnvelope ( "QPE/System", "notBusy()" );
630 return true; 633 return true;
631} 634}
632 635
633bool OpieFtp::remoteChDir(const QString &dir) 636bool OpieFtp::remoteChDir(const QString &dir)
634{ 637{
635// QCopEnvelope ( "QPE/System", "busy()" ); 638// QCopEnvelope ( "QPE/System", "busy()" );
636 if (!FtpChdir( dir.latin1(), conn )) { 639 if (!FtpChdir( dir.latin1(), conn )) {
637 QString msg; 640 QString msg;
638 msg.sprintf(tr("Unable to change directories\n")+dir+"\n%s",FtpLastResponse(conn)); 641 msg.sprintf(tr("Unable to change directories\n")+dir+"\n%s",FtpLastResponse(conn));
639 msg.replace(QRegExp(":"),"\n"); 642 msg.replace(QRegExp(":"),"\n");
640 QMessageBox::message(tr("Note"),msg); 643 QMessageBox::message(tr("Note"),msg);
641// odebug << msg << oendl; 644// odebug << msg << oendl;
642// QCopEnvelope ( "QPE/System", "notBusy()" ); 645// QCopEnvelope ( "QPE/System", "notBusy()" );
643 return FALSE; 646 return FALSE;
644 } 647 }
645// QCopEnvelope ( "QPE/System", "notBusy()" ); 648// QCopEnvelope ( "QPE/System", "notBusy()" );
646 return TRUE; 649 return TRUE;
647} 650}
648 651
649void OpieFtp::populateLocalView() 652void OpieFtp::populateLocalView()
650{ 653{
651 Local_View->clear(); 654 Local_View->clear();
652 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 655 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
653 currentDir.setMatchAllDirs(TRUE); 656 currentDir.setMatchAllDirs(TRUE);
654 currentDir.setNameFilter(filterStr); 657 currentDir.setNameFilter(filterStr);
655 QString fileL, fileS, fileDate; 658 QString fileL, fileS, fileDate;
656 bool isDir=FALSE; 659 bool isDir=FALSE;
657 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 660 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
658 QFileInfoListIterator it(*list); 661 QFileInfoListIterator it(*list);
659 QFileInfo *fi; 662 QFileInfo *fi;
660 while ( (fi=it.current()) ) { 663 while ( (fi=it.current()) ) {
661 if (fi->isSymLink() ){ 664 if (fi->isSymLink() ){
662 QString symLink=fi->readLink(); 665 QString symLink=fi->readLink();
663// odebug << "Symlink detected "+symLink << oendl; 666// odebug << "Symlink detected "+symLink << oendl;
664 QFileInfo sym( symLink); 667 QFileInfo sym( symLink);
665 fileS.sprintf( "%10i", sym.size() ); 668 fileS.sprintf( "%10i", sym.size() );
666 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() ); 669 fileL.sprintf( "%s -> %s", fi->fileName().data(),sym.absFilePath().data() );
667 fileDate = sym.lastModified().toString(); 670 fileDate = sym.lastModified().toString();
668 } else { 671 } else {
669// odebug << "Not a dir: "+currentDir.canonicalPath()+fileL << oendl; 672// odebug << "Not a dir: "+currentDir.canonicalPath()+fileL << oendl;
670 fileS.sprintf( "%10i", fi->size() ); 673 fileS.sprintf( "%10i", fi->size() );
671 fileL.sprintf( "%s",fi->fileName().data() ); 674 fileL.sprintf( "%s",fi->fileName().data() );
672 fileDate= fi->lastModified().toString(); 675 fileDate= fi->lastModified().toString();
673 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { 676 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
674 fileL+="/"; 677 fileL+="/";
675 isDir=TRUE; 678 isDir=TRUE;
676// odebug << fileL << oendl; 679// odebug << fileL << oendl;
677 } 680 }
678 } 681 }
679 682
680 683
681 if(fileL !="./" && fi->exists()) { 684 if(fileL !="./" && fi->exists()) {
682 item = new QListViewItem( Local_View,fileL, fileDate, fileS ); 685 item = new QListViewItem( Local_View,fileL, fileDate, fileS );
683 QPixmap pm; 686 QPixmap pm;
684 687
685 if(isDir || fileL.find("/",0,TRUE) != -1) { 688 if(isDir || fileL.find("/",0,TRUE) != -1) {
686 if( !QDir( fi->filePath() ).isReadable()) 689 if( !QDir( fi->filePath() ).isReadable())
687 pm = Resource::loadPixmap( "lockedfolder" ); 690 pm = Resource::loadPixmap( "lockedfolder" );
688 else 691 else
689 pm= Resource::loadPixmap( "folder" ); 692 pm= Resource::loadPixmap( "folder" );
690 item->setPixmap( 0,pm ); 693 item->setPixmap( 0,pm );
691 } else { 694 } else {
692 if( !fi->isReadable() ) 695 if( !fi->isReadable() )
693 pm = Resource::loadPixmap( "locked" ); 696 pm = Resource::loadPixmap( "locked" );
694 else { 697 else {
695 MimeType mt(fi->filePath()); 698 MimeType mt(fi->filePath());
696 pm=mt.pixmap(); //sets the correct pixmap for mimetype 699 pm=mt.pixmap(); //sets the correct pixmap for mimetype
697 if(pm.isNull()) 700 if(pm.isNull())
698 pm = unknownXpm; 701 pm = unknownXpm;
699 } 702 }
700 } 703 }
701 if( fileL.find("->",0,TRUE) != -1) { 704 if( fileL.find("->",0,TRUE) != -1) {
702 // overlay link image 705 // overlay link image
703 pm= Resource::loadPixmap( "folder" ); 706 pm= Resource::loadPixmap( "folder" );
704 QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 707 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
705 QPainter painter( &pm ); 708 QPainter painter( &pm );
706 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 709 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
707 pm.setMask( pm.createHeuristicMask( FALSE ) ); 710 pm.setMask( pm.createHeuristicMask( FALSE ) );
708 } 711 }
709 item->setPixmap( 0,pm); 712 item->setPixmap( 0,pm);
710 } 713 }
711 isDir=FALSE; 714 isDir=FALSE;
712 ++it; 715 ++it;
713 } 716 }
714 Local_View->setSorting( 3,FALSE); 717 Local_View->setSorting( 3,FALSE);
715 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() ); 718 currentPathCombo->lineEdit()->setText( currentDir.canonicalPath() );
716 fillCombo( (const QString &)currentDir.canonicalPath()); 719 fillCombo( (const QString &)currentDir.canonicalPath());
717} 720}
718 721
719bool OpieFtp::populateRemoteView( ) 722bool OpieFtp::populateRemoteView( )
720{ 723{
721// odebug << "populate remoteview" << oendl; 724// odebug << "populate remoteview" << oendl;
722 QString sfile=QDir::homeDirPath(); 725 QString sfile=QDir::homeDirPath();
723 if(sfile.right(1) != "/") 726 if(sfile.right(1) != "/")
724 sfile+="/._temp"; 727 sfile+="/._temp";
725 else 728 else
726 sfile+="._temp"; 729 sfile+="._temp";
727 QFile file( sfile); 730 QFile file( sfile);
728 Remote_View->clear(); 731 Remote_View->clear();
729 QString s, File_Name; 732 QString s, File_Name;
730 QListViewItem *itemDir=NULL, *itemFile=NULL; 733 QListViewItem *itemDir=NULL, *itemFile=NULL;
731 QRegExp monthRe(" [JFMASOND][eapuecoe][brynlgptvc] [ 0-9][0-9] [ 0-9][0-9][:0-9][0-9][0-9] "); 734 QRegExp monthRe(" [JFMASOND][eapuecoe][brynlgptvc] [ 0-9][0-9] [ 0-9][0-9][:0-9][0-9][0-9] ");
732 QString fileL, fileS, fileDate; 735 QString fileL, fileS, fileDate;
733 if ( file.open(IO_ReadOnly)) { 736 if ( file.open(IO_ReadOnly)) {
734 QTextStream t( &file ); // use a text stream 737 QTextStream t( &file ); // use a text stream
735 while ( !t.eof()) { 738 while ( !t.eof()) {
736 s = t.readLine(); 739 s = t.readLine();
737 740
738 if(s.find("total",0,TRUE) == 0) 741 if(s.find("total",0,TRUE) == 0)
739 continue; 742 continue;
740 743
741 int len, month = monthRe.match(s, 0, &len); 744 int len, month = monthRe.match(s, 0, &len);
742 fileDate = s.mid(month + 1, len - 2); // minus spaces 745 fileDate = s.mid(month + 1, len - 2); // minus spaces
743 fileL = s.right(s.length() - month - len); 746 fileL = s.right(s.length() - month - len);
744 if(s.left(1) == "d") 747 if(s.left(1) == "d")
745 fileL = fileL+"/"; 748 fileL = fileL+"/";
746 fileS = s.mid(month - 8, 8); // FIXME 749 fileS = s.mid(month - 8, 8); // FIXME
747 fileS = fileS.stripWhiteSpace(); 750 fileS = fileS.stripWhiteSpace();
748 751
749 if(s.left(1) == "d" || fileL.find("/",0,TRUE) != -1) { 752 if(s.left(1) == "d" || fileL.find("/",0,TRUE) != -1) {
750 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"d"); 753 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"d");
751 item->setPixmap( 0, Resource::loadPixmap( "folder" )); 754 item->setPixmap( 0, Resource::loadPixmap( "folder" ));
752// if(itemDir) 755// if(itemDir)
753 item->moveItem(itemDir); 756 item->moveItem(itemDir);
754 itemDir=item; 757 itemDir=item;
755 } else { 758 } else {
756 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"f"); 759 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"f");
757 item->setPixmap( 0, Resource::loadPixmap( "fileopen" )); 760 item->setPixmap( 0, Resource::loadPixmap( "fileopen" ));
758// if(itemFile) 761// if(itemFile)
759 item->moveItem(itemDir); 762 item->moveItem(itemDir);
760 item->moveItem(itemFile); 763 item->moveItem(itemFile);
761 itemFile=item; 764 itemFile=item;
762 } 765 }
763 } 766 }
764 QListViewItem * item1 = new QListViewItem( Remote_View, "../"); 767 QListViewItem * item1 = new QListViewItem( Remote_View, "../");
765 item1->setPixmap( 0, Resource::loadPixmap( "folder" )); 768 item1->setPixmap( 0, Resource::loadPixmap( "folder" ));
766 file.close(); 769 file.close();
767 if( file.exists()) 770 if( file.exists())
768 file. remove(); 771 file. remove();
769 } else 772 } else
770 odebug << "temp file not opened successfully "+sfile << oendl; 773 odebug << "temp file not opened successfully "+sfile << oendl;
771 Remote_View->setSorting( 4,TRUE); 774 Remote_View->setSorting( 4,TRUE);