summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/formatter/formatter.cpp125
-rw-r--r--noncore/tools/formatter/formatter.h16
2 files changed, 108 insertions, 33 deletions
diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp
index 8c8ef2a..0dd42c8 100644
--- a/noncore/tools/formatter/formatter.cpp
+++ b/noncore/tools/formatter/formatter.cpp
@@ -48,2 +48,4 @@
#include <mntent.h>
+#include <string.h>
+#include <errno.h>
@@ -177,21 +179,35 @@ void FormatterApp::doFormat() {
QString currentText = storageComboBox->currentText();
- QString cmd = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4);
+ QString cmd;
+ QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4);
+ QString diskName = currentText.left(currentText.find(" -> ",0,TRUE));
QString fs = fileSystemsCombo->currentText();
-
+
+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) // lets test on something cheap
+#else
+ currentText = diskDevice = "/dev/fd0";
+ umountS = "umount -v /floppy 2>&1";
+ remountS = "mount -v /floppy 2>&1";
+#endif
+
if( currentText.find("CF",0,TRUE) != -1) {
- umountS = "/sbin/cardctl eject";
- remountS = "/sbin/cardctl insert";
+ umountS = "umount ";
+ remountS = "mount ";
+
+// umountS = "/sbin/cardctl eject";
+// remountS = "/sbin/cardctl insert";
}
if( currentText.find("SD",0,TRUE) != -1) {
- umountS = "/etc/sdcontrol compeject";
- remountS = "/etc/sdcontrol insert";
+ umountS = "umount ";
+ remountS = "mount ";
+// umountS = "/etc/sdcontrol compeject";
+// remountS = "/etc/sdcontrol insert";
}
- switch ( QMessageBox::warning(this,tr("Format?!?"),tr("Really format\n") + currentText +
- tr("\nwith ") + fs + tr(" filesystem?!?"),tr("Yes"),tr("No"),0,1,1) ) {
+ switch ( QMessageBox::warning(this,tr("Format?!?"),tr("Really format\n") +diskName+" "+ currentText +
+ tr("\nwith ") + fs + tr(" filesystem?!?\nYou will loose all data!!"),tr("Yes"),tr("No"),0,1,1) ) {
case 0: {
if(fs == "vfat")
- cmd = "mkdosfs " + cmd;
+ cmd = "mkdosfs -v " + diskDevice+" 2>&1";
else if(fs == "ext2")
- cmd = "mke2fs " + cmd;
+ cmd = "mke2fs -v " + diskDevice+" 2>&1";
else {
@@ -207,8 +223,12 @@ void FormatterApp::doFormat() {
char line[130];
- outDlg->OutputEdit->append( tr("Trying to eject.") + currentText );
+ outDlg->OutputEdit->append( tr("Trying to umount.") + currentText );
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+
sleep(1);
- fp = popen( (const char *) umountS, "r");
+ qDebug("Command is "+umountS);
+ fp = popen( (const char *) umountS, "r");
+ qDebug("%d", fp);
if ( !fp ) {
- qDebug("Could not execute '" + umountS + "'! err=%d", fp);
- QMessageBox::warning( this, tr("CardMonitor"), tr("Card eject failed!"), tr("&OK") );
+ qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err);
+ QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") );
pclose(fp);
@@ -216,6 +236,16 @@ void FormatterApp::doFormat() {
} else {
- outDlg->OutputEdit->append( currentText + tr("\nhas been successfully ejected."));
-
+// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted."));
+// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
while ( fgets( line, sizeof line, fp)) {
- outDlg->OutputEdit->append(line);
+ if( ((QString)line).find("busy",0,TRUE) != -1) {
+ qDebug("Could not find '" + umountS);
+ QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") );
+ pclose(fp);
+ return;
+ } else {
+ QString lineStr = line;
+ lineStr=lineStr.left(lineStr.length()-1);
+ outDlg->OutputEdit->append(lineStr);
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+ }
}
@@ -223,3 +253,2 @@ void FormatterApp::doFormat() {
pclose(fp);
-// err = system( (const char *) umountS);
@@ -227,2 +256,3 @@ void FormatterApp::doFormat() {
outDlg->OutputEdit->append( tr("Trying to format.") );
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
@@ -230,17 +260,34 @@ void FormatterApp::doFormat() {
while ( fgets( line, sizeof line, fp)) {
- outDlg->OutputEdit->append(line);
+ if( ((QString)line).find("No such device",0,TRUE) != -1) {
+ qDebug("No such device '" + umountS);
+ QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") );
+ pclose(fp);
+// outDlg->OutputEdit->append("No such device");
+// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+ return;
+ } else {
+ QString lineStr = line;
+ lineStr=lineStr.left(lineStr.length()-1);
+ outDlg->OutputEdit->append(lineStr);
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+ }
}
outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted."));
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
pclose(fp);
- outDlg->OutputEdit->append( tr("Trying to insert.") + currentText );
+ outDlg->OutputEdit->append( tr("Trying to mount.") + currentText );
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
fp = popen( (const char *) remountS, "r");
if ( !fp) {
- qDebug("Could not execute '" + remountS + "'! err=%d", err);
- QMessageBox::warning( this, tr("Formatter"), tr("Card insert failed!"), tr("&OK") );
+ qDebug("Could not execute '" + remountS + "'! err=%d\n" +(QString)strerror(errno), err);
+ QMessageBox::warning( this, tr("Formatter"), tr("Card mount failed!"), tr("&OK") );
} else {
- outDlg->OutputEdit->append( currentText + tr("\nhas been successfully inserted."));
+ outDlg->OutputEdit->append( currentText + tr("\nhas been successfully mounted."));
while ( fgets( line, sizeof line, fp)) {
- outDlg->OutputEdit->append(line);
+ QString lineStr = line;
+ lineStr=lineStr.left(lineStr.length()-1);
+ outDlg->OutputEdit->append(lineStr);
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
}
@@ -251,5 +298,6 @@ void FormatterApp::doFormat() {
outDlg->OutputEdit->append(tr("You can now close the output window."));
- outDlg->close();
- if(outDlg)
- delete outDlg;
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+// outDlg->close();
+// if(outDlg)
+// delete outDlg;
}
@@ -259,2 +307,7 @@ void FormatterApp::doFormat() {
+bool FormatterApp::doFdisk() {
+ return FALSE;
+
+}
+
void FormatterApp::fillCombos() {
@@ -408,3 +461,3 @@ QString FormatterApp::getFileSystemType(const QString &currentText) {
-void FormatterApp::doFsck() {
+bool FormatterApp::doFsck() {
@@ -418,2 +471,18 @@ void FormatterApp::doFsck() {
+
+ return FALSE;
+}
+
+bool FormatterApp::doFsckCheck() {
+ return FALSE;
+}
+
+int FormatterApp::formatCheck(const QString &deviceStr) {
+
+ return -1;
+}
+
+int FormatterApp::runCommand(const QString &command) {
+
+ return -1;
}
diff --git a/noncore/tools/formatter/formatter.h b/noncore/tools/formatter/formatter.h
index a566ec0..871054d 100644
--- a/noncore/tools/formatter/formatter.h
+++ b/noncore/tools/formatter/formatter.h
@@ -45,7 +45,16 @@ protected:
QString getFileSystemType(const QString &);
+
+ void fillCombos();
+ void parsetab();
+ bool doFdisk();
+ int formatCheck(const QString &);
+ int runCommand(const QString &);
protected slots:
- void doFormat();
- void fillCombos();
void cleanUp();
+ void doFormat();
+ void editFstab();
+ bool doFsck();
+ bool doFsckCheck();
+
void fsComboSelected(int);
@@ -53,5 +62,2 @@ protected slots:
void deviceComboSelected(int );
- void editFstab();
- void parsetab();
- void doFsck();
};