summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/formatter/formatter.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp
index ed0ced1..46dc01c 100644
--- a/noncore/tools/formatter/formatter.cpp
+++ b/noncore/tools/formatter/formatter.cpp
@@ -94,478 +94,481 @@ FormatterApp::FormatterApp( QWidget* parent, const char* name, bool modal, WFla
94 94
95 tabLayout->addMultiCellWidget( fileSystemsCombo, 3, 3, 0, 1); 95 tabLayout->addMultiCellWidget( fileSystemsCombo, 3, 3, 0, 1);
96 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); 96 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum );
97 tabLayout->addItem( spacer, 2, 0 ); 97 tabLayout->addItem( spacer, 2, 0 );
98 98
99 formatPushButton = new QPushButton( tab, "formatPushButton" ); 99 formatPushButton = new QPushButton( tab, "formatPushButton" );
100 formatPushButton->setText( tr( "Format" ) ); 100 formatPushButton->setText( tr( "Format" ) );
101 formatPushButton->setMaximumWidth(170); 101 formatPushButton->setMaximumWidth(170);
102 102
103 tabLayout->addMultiCellWidget( formatPushButton, 6, 6, 0, 1); 103 tabLayout->addMultiCellWidget( formatPushButton, 6, 6, 0, 1);
104 QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); 104 QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum );
105 tabLayout->addItem( spacer_2, 5, 0 ); 105 tabLayout->addItem( spacer_2, 5, 0 );
106 106
107 TabWidget->insertTab( tab, tr( "Main" ) ); 107 TabWidget->insertTab( tab, tr( "Main" ) );
108 108
109 tab_2 = new QWidget( TabWidget, "tab_2" ); 109 tab_2 = new QWidget( TabWidget, "tab_2" );
110 tabLayout_2 = new QGridLayout( tab_2 ); 110 tabLayout_2 = new QGridLayout( tab_2 );
111 tabLayout_2->setSpacing(3); 111 tabLayout_2->setSpacing(3);
112 tabLayout_2->setMargin(2); 112 tabLayout_2->setMargin(2);
113 113
114 mountPointLineEdit = new QLineEdit( tab_2, "mountPointLineEdit" ); 114 mountPointLineEdit = new QLineEdit( tab_2, "mountPointLineEdit" );
115 115
116 tabLayout_2->addMultiCellWidget( mountPointLineEdit, 0, 0, 0, 1); 116 tabLayout_2->addMultiCellWidget( mountPointLineEdit, 0, 0, 0, 1);
117 117
118 deviceComboBox = new QComboBox( FALSE, tab_2, "deviceComboBox" ); 118 deviceComboBox = new QComboBox( FALSE, tab_2, "deviceComboBox" );
119 119
120 tabLayout_2->addMultiCellWidget( deviceComboBox, 3, 3, 0, 1); 120 tabLayout_2->addMultiCellWidget( deviceComboBox, 3, 3, 0, 1);
121 121
122 TextLabel5 = new QLabel( tab_2, "TextLabel5" ); 122 TextLabel5 = new QLabel( tab_2, "TextLabel5" );
123 TextLabel5->setText( tr( "CAUTION:\n" 123 TextLabel5->setText( tr( "CAUTION:\n"
124 "Changing parameters on this \n" 124 "Changing parameters on this \n"
125 "page may cause your system \n" 125 "page may cause your system \n"
126 "to stop functioning properly!!" ) );//idiot message 126 "to stop functioning properly!!" ) );//idiot message
127 127
128 tabLayout_2->addMultiCellWidget( TextLabel5, 6, 6, 0, 1); 128 tabLayout_2->addMultiCellWidget( TextLabel5, 6, 6, 0, 1);
129 129
130 editPushButton = new QPushButton( tab_2, "editPushButton" ); 130 editPushButton = new QPushButton( tab_2, "editPushButton" );
131 editPushButton->setText( tr( "Edit fstab" ) ); 131 editPushButton->setText( tr( "Edit fstab" ) );
132 editPushButton->setMaximumWidth(100); 132 editPushButton->setMaximumWidth(100);
133 133
134 tabLayout_2->addMultiCellWidget( editPushButton, 7, 7, 0, 0 ); 134 tabLayout_2->addMultiCellWidget( editPushButton, 7, 7, 0, 0 );
135 135
136 fsckButton = new QPushButton( tab_2, "fsckPushButton" ); 136 fsckButton = new QPushButton( tab_2, "fsckPushButton" );
137 fsckButton->setText( tr( "Check Disk" ) ); 137 fsckButton->setText( tr( "Check Disk" ) );
138 fsckButton->setMaximumWidth(100); 138 fsckButton->setMaximumWidth(100);
139 139
140 tabLayout_2->addMultiCellWidget( fsckButton, 7, 7, 1, 1); 140 tabLayout_2->addMultiCellWidget( fsckButton, 7, 7, 1, 1);
141 141
142 TextLabel3 = new QLabel( tab_2, "TextLabel3" ); 142 TextLabel3 = new QLabel( tab_2, "TextLabel3" );
143 TextLabel3->setText( tr( "Device" ) ); 143 TextLabel3->setText( tr( "Device" ) );
144 144
145 tabLayout_2->addMultiCellWidget( TextLabel3, 4, 4, 0, 1 ); 145 tabLayout_2->addMultiCellWidget( TextLabel3, 4, 4, 0, 1 );
146 QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); 146 QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
147 tabLayout_2->addItem( spacer_3, 5, 0 ); 147 tabLayout_2->addItem( spacer_3, 5, 0 );
148 148
149 TextLabel1 = new QLabel( tab_2, "TextLabel1" ); 149 TextLabel1 = new QLabel( tab_2, "TextLabel1" );
150 TextLabel1->setText( tr( "Mount Point" ) ); 150 TextLabel1->setText( tr( "Mount Point" ) );
151 151
152 tabLayout_2->addMultiCellWidget( TextLabel1, 1, 1, 0, 1 ); 152 tabLayout_2->addMultiCellWidget( TextLabel1, 1, 1, 0, 1 );
153 QSpacerItem* spacer_4 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); 153 QSpacerItem* spacer_4 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
154 tabLayout_2->addItem( spacer_4, 2, 1 ); 154 tabLayout_2->addItem( spacer_4, 2, 1 );
155 TabWidget->insertTab( tab_2, tr( "Advanced" ) ); 155 TabWidget->insertTab( tab_2, tr( "Advanced" ) );
156 156
157 FormatterAppLayout->addWidget( TabWidget, 0, 1 ); 157 FormatterAppLayout->addWidget( TabWidget, 0, 1 );
158 158
159 connect( formatPushButton ,SIGNAL(released()),this,SLOT( doFormat()) ); 159 connect( formatPushButton ,SIGNAL(released()),this,SLOT( doFormat()) );
160 connect( editPushButton ,SIGNAL(released()),this,SLOT( editFstab()) ); 160 connect( editPushButton ,SIGNAL(released()),this,SLOT( editFstab()) );
161 connect( fsckButton ,SIGNAL(released()),this,SLOT( doFsck()) ); 161 connect( fsckButton ,SIGNAL(released()),this,SLOT( doFsck()) );
162 162
163 connect( fileSystemsCombo,SIGNAL(activated(int)),this,SLOT( fsComboSelected(int ) )); 163 connect( fileSystemsCombo,SIGNAL(activated(int)),this,SLOT( fsComboSelected(int ) ));
164 connect( storageComboBox,SIGNAL(activated(int)),this,SLOT( storageComboSelected(int ) )); 164 connect( storageComboBox,SIGNAL(activated(int)),this,SLOT( storageComboSelected(int ) ));
165 connect( deviceComboBox,SIGNAL(activated(int)),this,SLOT( deviceComboSelected(int ) )); 165 connect( deviceComboBox,SIGNAL(activated(int)),this,SLOT( deviceComboSelected(int ) ));
166 166
167 167
168 fillCombos(); 168 fillCombos();
169} 169}
170 170
171FormatterApp::~FormatterApp() { 171FormatterApp::~FormatterApp() {
172 172
173} 173}
174 174
175void FormatterApp::doFormat() { 175void FormatterApp::doFormat() {
176 int err=0; 176 int err=0;
177 Output *outDlg; 177 Output *outDlg;
178 QString umountS, remountS; 178 QString umountS, remountS;
179 QString text = storageComboBox->currentText(); 179 QString text = storageComboBox->currentText();
180 QString currentText = storageComboBox->currentText(); 180 QString currentText = storageComboBox->currentText();
181 QString cmd; 181 QString cmd;
182 QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); 182 QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4);
183 QString diskName = currentText.left(currentText.find(" -> ",0,TRUE)); 183 QString diskName = currentText.left(currentText.find(" -> ",0,TRUE));
184 QString fs = fileSystemsCombo->currentText(); 184 QString fs = fileSystemsCombo->currentText();
185 185
186#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) // lets test on something cheap 186#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) // lets test on something cheap
187#else 187#else
188 currentText = diskDevice = "/dev/fd0"; 188 currentText = diskDevice = "/dev/fd0";
189 umountS = "umount -v /floppy 2>&1"; 189 umountS = "umount -v /floppy 2>&1";
190 remountS = "mount -v /floppy 2>&1"; 190 remountS = "mount -v /floppy 2>&1";
191#endif 191#endif
192 192
193 if( currentText.find("CF",0,TRUE) != -1) { 193 if( currentText.find("CF",0,TRUE) != -1) {
194 umountS = "umount "; 194 umountS = "umount ";
195 remountS = "mount "; 195 remountS = "mount ";
196 196
197// umountS = "/sbin/cardctl eject"; 197// umountS = "/sbin/cardctl eject";
198// remountS = "/sbin/cardctl insert"; 198// remountS = "/sbin/cardctl insert";
199 } 199 }
200 if( currentText.find("SD",0,TRUE) != -1) { 200 if( currentText.find("SD",0,TRUE) != -1) {
201 umountS = "umount "; 201 umountS = "umount ";
202 remountS = "mount "; 202 remountS = "mount ";
203// umountS = "/etc/sdcontrol compeject"; 203// umountS = "/etc/sdcontrol compeject";
204// remountS = "/etc/sdcontrol insert"; 204// remountS = "/etc/sdcontrol insert";
205 } 205 }
206 206
207 switch ( QMessageBox::warning(this,tr("Format?!?"),tr("Really format\n") +diskName+" "+ currentText + 207 switch ( QMessageBox::warning(this,tr("Format?!?"),tr("Really format\n") +diskName+" "+ currentText +
208 tr("\nwith ") + fs + tr(" filesystem?!?\nYou will loose all data!!"),tr("Yes"),tr("No"),0,1,1) ) { 208 tr("\nwith ") + fs + tr(" filesystem?!?\nYou will loose all data!!"),tr("Yes"),tr("No"),0,1,1) ) {
209 case 0: { 209 case 0: {
210 if(fs == "vfat") 210 if(fs == "vfat")
211 cmd = "mkdosfs -v " + diskDevice+" 2>&1"; 211 cmd = "mkdosfs -v " + diskDevice+" 2>&1";
212 else if(fs == "ext2") 212 else if(fs == "ext2")
213 cmd = "mke2fs -v " + diskDevice+" 2>&1"; 213 cmd = "mke2fs -v " + diskDevice+" 2>&1";
214 else { 214 else {
215 QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok")); 215 QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok"));
216 break; 216 break;
217 } 217 }
218// cmd = "ls -l"; 218// cmd = "ls -l";
219 outDlg = new Output(this, tr("Formatter Output"),FALSE); 219 outDlg = new Output(this, tr("Formatter Output"),FALSE);
220 outDlg->showMaximized(); 220 outDlg->showMaximized();
221 outDlg->show(); 221 outDlg->show();
222 qApp->processEvents(); 222 qApp->processEvents();
223 FILE *fp; 223 FILE *fp;
224 char line[130]; 224 char line[130];
225 outDlg->OutputEdit->append( tr("Trying to umount.") + currentText ); 225 outDlg->OutputEdit->append( tr("Trying to umount.") + currentText );
226 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 226 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
227 227
228 sleep(1); 228 sleep(1);
229 qDebug("Command is "+umountS); 229 qDebug("Command is "+umountS);
230 fp = popen( (const char *) umountS, "r"); 230 fp = popen( (const char *) umountS, "r");
231 qDebug("%d", fp); 231 qDebug("%d", fp);
232 if ( !fp ) { 232 if ( !fp ) {
233 qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err); 233 qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err);
234 QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); 234 QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") );
235 pclose(fp); 235 pclose(fp);
236 return; 236 return;
237 } else { 237 } else {
238// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); 238// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted."));
239// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 239// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
240 while ( fgets( line, sizeof line, fp)) { 240 while ( fgets( line, sizeof line, fp)) {
241 if( ((QString)line).find("busy",0,TRUE) != -1) { 241 if( ((QString)line).find("busy",0,TRUE) != -1) {
242 qDebug("Could not find '" + umountS); 242 qDebug("Could not find '" + umountS);
243 QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); 243 QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") );
244 pclose(fp); 244 pclose(fp);
245 return; 245 return;
246 } else { 246 } else {
247 QString lineStr = line; 247 QString lineStr = line;
248 lineStr=lineStr.left(lineStr.length()-1); 248 lineStr=lineStr.left(lineStr.length()-1);
249 outDlg->OutputEdit->append(lineStr); 249 outDlg->OutputEdit->append(lineStr);
250 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 250 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
251 } 251 }
252 } 252 }
253 } 253 }
254 pclose(fp); 254 pclose(fp);
255 255
256 qDebug("Command would be: "+cmd); 256 qDebug("Command would be: "+cmd);
257 outDlg->OutputEdit->append( tr("Trying to format.") ); 257 outDlg->OutputEdit->append( tr("Trying to format.") );
258 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 258 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
259 259
260 fp = popen( (const char *) cmd, "r"); 260 fp = popen( (const char *) cmd, "r");
261 while ( fgets( line, sizeof line, fp)) { 261 while ( fgets( line, sizeof line, fp)) {
262 if( ((QString)line).find("No such device",0,TRUE) != -1) { 262 if( ((QString)line).find("No such device",0,TRUE) != -1) {
263 qDebug("No such device '" + umountS); 263 qDebug("No such device '" + umountS);
264 QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") ); 264 QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") );
265 pclose(fp); 265 pclose(fp);
266// outDlg->OutputEdit->append("No such device"); 266// outDlg->OutputEdit->append("No such device");
267// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 267// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
268 return; 268 return;
269 } else { 269 } else {
270 QString lineStr = line; 270 QString lineStr = line;
271 lineStr=lineStr.left(lineStr.length()-1); 271 lineStr=lineStr.left(lineStr.length()-1);
272 outDlg->OutputEdit->append(lineStr); 272 outDlg->OutputEdit->append(lineStr);
273 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 273 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
274 } 274 }
275 } 275 }
276 outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); 276 outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted."));
277 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 277 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
278 pclose(fp); 278 pclose(fp);
279 279
280 outDlg->OutputEdit->append( tr("Trying to mount.") + currentText ); 280 outDlg->OutputEdit->append( tr("Trying to mount.") + currentText );
281 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 281 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
282 fp = popen( (const char *) remountS, "r"); 282 fp = popen( (const char *) remountS, "r");
283 if ( !fp) { 283 if ( !fp) {
284 qDebug("Could not execute '" + remountS + "'! err=%d\n" +(QString)strerror(errno), err); 284 qDebug("Could not execute '" + remountS + "'! err=%d\n" +(QString)strerror(errno), err);
285 QMessageBox::warning( this, tr("Formatter"), tr("Card mount failed!"), tr("&OK") ); 285 QMessageBox::warning( this, tr("Formatter"), tr("Card mount failed!"), tr("&OK") );
286 286
287 } else { 287 } else {
288 outDlg->OutputEdit->append( currentText + tr("\nhas been successfully mounted.")); 288 outDlg->OutputEdit->append( currentText + tr("\nhas been successfully mounted."));
289 while ( fgets( line, sizeof line, fp)) { 289 while ( fgets( line, sizeof line, fp)) {
290 QString lineStr = line; 290 QString lineStr = line;
291 lineStr=lineStr.left(lineStr.length()-1); 291 lineStr=lineStr.left(lineStr.length()-1);
292 outDlg->OutputEdit->append(lineStr); 292 outDlg->OutputEdit->append(lineStr);
293 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 293 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
294 } 294 }
295 } 295 }
296 pclose(fp); 296 pclose(fp);
297 sleep(1); 297 sleep(1);
298 298
299 outDlg->OutputEdit->append(tr("You can now close the output window.")); 299 outDlg->OutputEdit->append(tr("You can now close the output window."));
300 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 300 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
301// outDlg->close(); 301// outDlg->close();
302// if(outDlg) 302// if(outDlg)
303// delete outDlg; 303// delete outDlg;
304 } 304 }
305 break; 305 break;
306 }; 306 };
307} 307}
308 308
309bool FormatterApp::doFdisk() { 309bool FormatterApp::doFdisk() {
310 return FALSE; 310 return FALSE;
311 311
312} 312}
313 313
314void FormatterApp::fillCombos() { 314void FormatterApp::fillCombos() {
315 315
316 StorageInfo storageInfo; 316 StorageInfo storageInfo;
317 const QList<FileSystem> &fs = storageInfo.fileSystems(); 317 const QList<FileSystem> &fs = storageInfo.fileSystems();
318 QListIterator<FileSystem> it ( fs ); 318 QListIterator<FileSystem> it ( fs );
319 QString storage; 319 QString storage;
320 for( ; it.current(); ++it ){ 320 for( ; it.current(); ++it ){
321 const QString name = (*it)->name(); 321 const QString name = (*it)->name();
322 const QString path = (*it)->path(); 322 const QString path = (*it)->path();
323 const QString disk = (*it)->disk(); 323 const QString disk = (*it)->disk();
324 const QString options = (*it)->options(); 324 const QString options = (*it)->options();
325 if( name.find( tr("Internal"),0,TRUE) == -1) { 325 if( name.find( tr("Internal"),0,TRUE) == -1) {
326 storageComboBox->insertItem(name +" -> "+disk); 326 storageComboBox->insertItem(name +" -> "+disk);
327 } 327 }
328// deviceComboBox->insertItem(disk); 328// deviceComboBox->insertItem(disk);
329 } 329 }
330 parsetab("/etc/mtab"); 330 parsetab("/etc/mtab");
331// parsetab("/etc/fstab"); 331// parsetab("/etc/fstab");
332 fileSystemsCombo->insertStringList( fsList,-1); 332 fileSystemsCombo->insertStringList( fsList,-1);
333 deviceComboBox->insertStringList( deviceList,-1); 333 deviceComboBox->insertStringList( deviceList,-1);
334 storageComboSelected(0); 334 storageComboSelected(0);
335 deviceComboSelected(0); 335 deviceComboSelected(0);
336} 336}
337 337
338 338
339void FormatterApp::fsComboSelected(int index) { 339void FormatterApp::fsComboSelected(int index) {
340 340
341} 341}
342 342
343void FormatterApp::storageComboSelected(int index ) { 343void FormatterApp::storageComboSelected(int index ) {
344 344
345 QString currentText = storageComboBox->text(index); 345 QString currentText = storageComboBox->text(index);
346 QString nameS = currentText.left( currentText.find("->",0,TRUE)); 346 QString nameS = currentText.left( currentText.find("->",0,TRUE));
347 347
348 TextLabel4->setText( tr( "Storage Type : ") + nameS ); 348 TextLabel4->setText( tr( "Storage Type : ") + nameS );
349 currentText = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); 349 currentText = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4);
350 350
351 QString fsType = getFileSystemType((const QString &) currentText); 351 QString fsType = getFileSystemType((const QString &) currentText);
352// qDebug(fsType); 352// qDebug(fsType);
353 for(int i = 0; i < fileSystemsCombo->count(); i++) { 353 for(int i = 0; i < fileSystemsCombo->count(); i++) {
354 if( fsType == fileSystemsCombo->text(i)) 354 if( fsType == fileSystemsCombo->text(i))
355 fileSystemsCombo->setCurrentItem(i); 355 fileSystemsCombo->setCurrentItem(i);
356 } 356 }
357// deviceComboSelected(index); 357// deviceComboSelected(index);
358} 358}
359 359
360void FormatterApp::deviceComboSelected(int index) { 360void FormatterApp::deviceComboSelected(int index) {
361 361
362 StorageInfo storageInfo; 362 StorageInfo storageInfo;
363 QString totalS, usedS, avS, diskS, nameS, fsType, selectedText; 363 QString totalS, usedS, avS, diskS, nameS, fsType, selectedText;
364 364
365 selectedText = deviceComboBox->text(index); 365 selectedText = deviceComboBox->text(index);
366 366
367 const QList<FileSystem> &fs = storageInfo.fileSystems(); 367 const QList<FileSystem> &fs = storageInfo.fileSystems();
368 QListIterator<FileSystem> it ( fs ); 368 QListIterator<FileSystem> it ( fs );
369 QString storage; 369 QString storage;
370 for( ; it.current(); ++it ){ 370 for( ; it.current(); ++it ){
371 const QString name = (*it)->name(); 371 const QString name = (*it)->name();
372 const QString path = (*it)->path(); 372 const QString path = (*it)->path();
373 const QString disk = (*it)->disk(); 373 const QString disk = (*it)->disk();
374// const QString options = (*it)->options(); 374// const QString options = (*it)->options();
375 if( selectedText == disk) { 375 if( selectedText == disk) {
376 diskS = disk; nameS= name; 376 diskS = disk; nameS= name;
377 mountPointLineEdit->setText(path); 377 mountPointLineEdit->setText(path);
378 long mult = (*it)->blockSize() / 1024; 378 long mult = (*it)->blockSize() / 1024;
379 long div = 1024 / (*it)->blockSize(); 379 long div = 1024 / (*it)->blockSize();
380 if ( !mult ) mult = 1; 380 if ( !mult ) mult = 1;
381 if ( !div ) div = 1; 381 if ( !div ) div = 1;
382 long total = (*it)->totalBlocks() * mult / div; 382 long total = (*it)->totalBlocks() * mult / div;
383 long totalMb = total/1024; 383 long totalMb = total/1024;
384 long avail = (*it)->availBlocks() * mult / div; 384 long avail = (*it)->availBlocks() * mult / div;
385 long availMb = avail/1024; 385 long availMb = avail/1024;
386 long used = total - avail; 386 long used = total - avail;
387 long usedMb = used/1024; 387 long usedMb = used/1024;
388 totalS.sprintf(tr("Total: %1 kB ( %d mB)\n").arg( total ), totalMb ); 388 totalS.sprintf(tr("Total: %1 kB ( %d mB)\n").arg( total ), totalMb );
389 usedS.sprintf(tr("Used: %1 kB ( %d mB)\n").arg(used) ,usedMb); 389 usedS.sprintf(tr("Used: %1 kB ( %d mB)\n").arg(used) ,usedMb);
390 avS.sprintf( tr("Available: %1 kB ( %d mB)").arg(avail), availMb ); 390 avS.sprintf( tr("Available: %1 kB ( %d mB)").arg(avail), availMb );
391 } 391 }
392 } 392 }
393 fsType = getFileSystemType((const QString &)selectedText); 393 fsType = getFileSystemType((const QString &)selectedText);
394 394
395 TextLabel5->setText("Type: "+ nameS+"\nFormatted with "+ fsType + " \n" + totalS + usedS + avS); 395 TextLabel5->setText("Type: "+ nameS+"\nFormatted with "+ fsType + " \n" + totalS + usedS + avS);
396// storageComboSelected(0); 396// storageComboSelected(0);
397} 397}
398 398
399void FormatterApp::cleanUp() { 399void FormatterApp::cleanUp() {
400 400
401} 401}
402 402
403 403
404void FormatterApp::editFstab() { 404void FormatterApp::editFstab() {
405 QCopEnvelope e("QPE/Application/textedit","setDocument(QString)"); 405 QCopEnvelope e("QPE/Application/textedit","setDocument(QString)");
406 e << (const QString &)"/etc/fstab"; 406 e << (const QString &)"/etc/fstab";
407} 407}
408 408
409void FormatterApp::parsetab(const QString &fileName) { 409void FormatterApp::parsetab(const QString &fileName) {
410 410
411 fileSystemTypeList.clear(); 411 fileSystemTypeList.clear();
412 fsList.clear(); 412 fsList.clear();
413 struct mntent *me; 413 struct mntent *me;
414// if(fileName == "/etc/mtab") { 414// if(fileName == "/etc/mtab") {
415 FILE *mntfp = setmntent( fileName.latin1(), "r" ); 415 FILE *mntfp = setmntent( fileName.latin1(), "r" );
416 if ( mntfp ) { 416 if ( mntfp ) {
417 while ( (me = getmntent( mntfp )) != 0 ) { 417 while ( (me = getmntent( mntfp )) != 0 ) {
418 QString deviceName = me->mnt_fsname; 418 QString deviceName = me->mnt_fsname;
419 QString filesystemType = me->mnt_type; 419 QString filesystemType = me->mnt_type;
420 if(deviceName != "none") { 420 if(deviceName != "none") {
421 if( fsList.contains(filesystemType) == 0 421 if( fsList.contains(filesystemType) == 0
422 & filesystemType.find("proc",0,TRUE) == -1 422 & filesystemType.find("proc",0,TRUE) == -1
423 & filesystemType.find("cramfs",0,TRUE) == -1 423 & filesystemType.find("cramfs",0,TRUE) == -1
424 & filesystemType.find("auto",0,TRUE) == -1) 424 & filesystemType.find("auto",0,TRUE) == -1)
425 fsList << filesystemType; 425 fsList << filesystemType;
426 deviceList << deviceName; 426 deviceList << deviceName;
427 qDebug(deviceName+"::"+filesystemType); 427 qDebug(deviceName+"::"+filesystemType);
428 fileSystemTypeList << deviceName+"::"+filesystemType; 428 fileSystemTypeList << deviceName+"::"+filesystemType;
429 } 429 }
430 } 430 }
431 } 431 }
432 endmntent( mntfp ); 432 endmntent( mntfp );
433// } else if(fileName == "/etc/fstab") { 433// } else if(fileName == "/etc/fstab") {
434// QFile f("/etc/fstab"); 434// QFile f("/etc/fstab");
435// if ( f.open(IO_ReadOnly) ) { 435// if ( f.open(IO_ReadOnly) ) {
436// QTextStream t (&f); 436// QTextStream t (&f);
437// QString s; 437// QString s;
438// while (! t.eof()) { 438// while (! t.eof()) {
439// s=t.readLine(); 439// s=t.readLine();
440// s=s.simplifyWhiteSpace(); 440// s=s.simplifyWhiteSpace();
441// if ( (!s.isEmpty() ) && (s.find(" ")!=0) ) { 441// if ( (!s.isEmpty() ) && (s.find(" ")!=0) ) {
442// // = me->mnt_fsname; 442// // = me->mnt_fsname;
443// QString filesystemType = me->mnt_type; 443// QString filesystemType = me->mnt_type;
444// QString deviceName = s.left(0,s.find(BLANK) ); 444// QString deviceName = s.left(0,s.find(BLANK) );
445// s=s.remove(0,s.find(BLANK)+1 ); // devicename 445// s=s.remove(0,s.find(BLANK)+1 ); // devicename
446 446
447// s=s.remove(0,s.find(BLANK)+1 ); // mountpoint 447// s=s.remove(0,s.find(BLANK)+1 ); // mountpoint
448// QStringt mountPoint= s.left(0,s.find(BLANK) ); 448// QStringt mountPoint= s.left(0,s.find(BLANK) );
449// s=s.remove(0,s.find(BLANK)+1 ); // fs 449// s=s.remove(0,s.find(BLANK)+1 ); // fs
450// QString filesystemType= s.left(0,s.find(BLANK) ); 450// QString filesystemType= s.left(0,s.find(BLANK) );
451// } 451// }
452// } 452// }
453// } 453// }
454// f.close(); 454// f.close();
455// } 455// }
456} 456}
457 457
458QString FormatterApp::getFileSystemType(const QString &currentText) { 458QString FormatterApp::getFileSystemType(const QString &currentText) {
459 459
460 parsetab("/etc/mtab"); //why did TT forget filesystem type? 460 parsetab("/etc/mtab"); //why did TT forget filesystem type?
461 461
462 for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) { 462 for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) {
463 QString temp = (*it); 463 QString temp = (*it);
464 if( temp.find( currentText,0,TRUE) != -1) { 464 if( temp.find( currentText,0,TRUE) != -1) {
465 return temp.right( temp.length() - temp.find("::",0,TRUE) - 2); 465 return temp.right( temp.length() - temp.find("::",0,TRUE) - 2);
466// qDebug(fsType); 466// qDebug(fsType);
467 } 467 }
468 } 468 }
469 return ""; 469 return "";
470} 470}
471 471
472bool FormatterApp::doFsck() { 472bool FormatterApp::doFsck() {
473 473
474 Output *outDlg; 474 Output *outDlg;
475 QString selectedDevice; 475 QString selectedDevice;
476#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) 476#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX)
477 selectedDevice = deviceComboBox->currentText(); 477 selectedDevice = deviceComboBox->currentText();
478
479 QString umountS = "umount -v "+selectedDevice+" 2>&1";
480 QString remountS = "mount -v "+selectedDevice+" 2>&1";
478#else 481#else
479 // for testing 482 // for testing
480// currentText = diskDevice = "/dev/fd0"; 483// currentText = diskDevice = "/dev/fd0";
481 QString umountS = "umount -v /floppy 2>&1"; 484 QString umountS = "umount -v /floppy 2>&1";
482 QString remountS = "mount -v /floppy 2>&1"; 485 QString remountS = "mount -v /floppy 2>&1";
483 selectedDevice ="/dev/fd0"; 486 selectedDevice ="/dev/fd0";
484 487
485#endif 488#endif
486 489
487 QString fsType = getFileSystemType((const QString &)selectedDevice); 490 QString fsType = getFileSystemType((const QString &)selectedDevice);
488 QString cmd; 491 QString cmd;
489 qDebug( selectedDevice +" "+ fsType); 492 qDebug( selectedDevice +" "+ fsType);
490 if(fsType == "vfat") cmd = "dosfsck -vy "; 493 if(fsType == "vfat") cmd = "dosfsck -vy ";
491 if(fsType == "ext2") cmd = "e2fsck -cpvy "; 494 if(fsType == "ext2") cmd = "e2fsck -cpvy ";
492 cmd += selectedDevice + " 2>&1"; 495 cmd += selectedDevice + " 2>&1";
493 496
494 outDlg = new Output(this, tr("Formatter Output"),FALSE); 497 outDlg = new Output(this, tr("Formatter Output"),FALSE);
495 outDlg->showMaximized(); 498 outDlg->showMaximized();
496 outDlg->show(); 499 outDlg->show();
497 qApp->processEvents(); 500 qApp->processEvents();
498 FILE *fp; 501 FILE *fp;
499 char line[130]; 502 char line[130];
500 outDlg->OutputEdit->append( tr("Trying to umount.")); 503 outDlg->OutputEdit->append( tr("Trying to umount."));
501 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 504 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
502 505
503 sleep(1); 506 sleep(1);
504// qDebug("Command is "+umountS); 507// qDebug("Command is "+umountS);
505 fp = popen( (const char *) umountS, "r"); 508 fp = popen( (const char *) umountS, "r");
506// qDebug("%d", fp); 509// qDebug("%d", fp);
507 if ( !fp ) { 510 if ( !fp ) {
508 qDebug("Could not execute '" + umountS + "'!\n" +(QString)strerror(errno)); 511 qDebug("Could not execute '" + umountS + "'!\n" +(QString)strerror(errno));
509 QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); 512 QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") );
510 pclose(fp); 513 pclose(fp);
511 return false; 514 return false;
512 } else { 515 } else {
513// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); 516// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted."));
514// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 517// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
515 while ( fgets( line, sizeof line, fp)) { 518 while ( fgets( line, sizeof line, fp)) {
516 if( ((QString)line).find("busy",0,TRUE) != -1) { 519 if( ((QString)line).find("busy",0,TRUE) != -1) {
517 qDebug("Could not find '" + umountS); 520 qDebug("Could not find '" + umountS);
518 QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); 521 QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") );
519 pclose(fp); 522 pclose(fp);
520 return false; 523 return false;
521 } else { 524 } else {
522 QString lineStr = line; 525 QString lineStr = line;
523 lineStr=lineStr.left(lineStr.length()-1); 526 lineStr=lineStr.left(lineStr.length()-1);
524 outDlg->OutputEdit->append(lineStr); 527 outDlg->OutputEdit->append(lineStr);
525 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 528 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
526 } 529 }
527 } 530 }
528 } 531 }
529 pclose(fp); 532 pclose(fp);
530///////////////////////////////////// 533/////////////////////////////////////
531 fp = popen( (const char *) cmd, "r"); 534 fp = popen( (const char *) cmd, "r");
532 while ( fgets( line, sizeof line, fp)) { 535 while ( fgets( line, sizeof line, fp)) {
533 if( ((QString)line).find("No such device",0,TRUE) != -1) { 536 if( ((QString)line).find("No such device",0,TRUE) != -1) {
534 qDebug("No such device '" + umountS); 537 qDebug("No such device '" + umountS);
535 QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") ); 538 QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") );
536 pclose(fp); 539 pclose(fp);
537// outDlg->OutputEdit->append("No such device"); 540// outDlg->OutputEdit->append("No such device");
538// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 541// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
539 return false; 542 return false;
540 } else { 543 } else {
541 QString lineStr = line; 544 QString lineStr = line;
542 lineStr=lineStr.left(lineStr.length()-1); 545 lineStr=lineStr.left(lineStr.length()-1);
543 outDlg->OutputEdit->append(lineStr); 546 outDlg->OutputEdit->append(lineStr);
544 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 547 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
545 } 548 }
546 } 549 }
547 outDlg->OutputEdit->append(tr("You can now close the output window.")); 550 outDlg->OutputEdit->append(tr("You can now close the output window."));
548 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 551 outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
549// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); 552// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted."));
550// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); 553// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
551 pclose(fp); 554 pclose(fp);
552 555
553///////////////////////////////////////// 556/////////////////////////////////////////
554 557
555 return true; 558 return true;
556} 559}
557 560
558bool FormatterApp::doFsckCheck() { 561bool FormatterApp::doFsckCheck() {
559 562
560 return FALSE; 563 return FALSE;
561} 564}
562 565
563int FormatterApp::formatCheck(const QString &deviceStr) { 566int FormatterApp::formatCheck(const QString &deviceStr) {
564 567
565 return -1; 568 return -1;
566} 569}
567 570
568int FormatterApp::runCommand(const QString &command) { 571int FormatterApp::runCommand(const QString &command) {
569 572
570 return -1; 573 return -1;
571} 574}