-rw-r--r-- | noncore/applets/memoryapplet/swapfile.cpp | 82 |
1 files changed, 42 insertions, 40 deletions
diff --git a/noncore/applets/memoryapplet/swapfile.cpp b/noncore/applets/memoryapplet/swapfile.cpp index 7483592..04da8bb 100644 --- a/noncore/applets/memoryapplet/swapfile.cpp +++ b/noncore/applets/memoryapplet/swapfile.cpp @@ -15,54 +15,56 @@ ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include "swapfile.h" +#include <qfile.h> +#include <qtextstream.h> #include <qlabel.h> #include <qtimer.h> #include <qlayout.h> #include <qpushbutton.h> -#include <qhbuttongroup.h> -#include <qradiobutton.h> -#include <qlineedit.h> -#include <qprogressbar.h> -#include <qcombobox.h> -#include <qvgroupbox.h> -#include <qhbox.h> +#include <qhbuttongroup.h> +#include <qradiobutton.h> +#include <qlineedit.h> +#include <qprogressbar.h> +#include <qcombobox.h> +#include <qvgroupbox.h> +#include <qhbox.h> #include <qmessagebox.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <qcopchannel_qws.h> #include <qpe/resource.h> #include <unistd.h> #include <fcntl.h> #include <sys/vfs.h> #include <mntent.h> -#include <unistd.h>
-#include <sys/types.h>
+#include <unistd.h> +#include <sys/types.h> Swapfile::Swapfile( QWidget *parent, const char *name, WFlags f ) : QWidget( parent, name, f ) { // are we running as root? isRoot = geteuid() == 0; QVBoxLayout* vb = new QVBoxLayout(this, 5); QHButtonGroup* cfsdRBG = new QHButtonGroup(tr("Swapfile location"), this); cfsdRBG->setRadioButtonExclusive(true); vb->addWidget(cfsdRBG); - + ramRB = new QRadioButton(tr("RAM"), cfsdRBG); cfRB = new QRadioButton(tr("CF Card"), cfsdRBG); sdRB = new QRadioButton(tr("SD Card"), cfsdRBG); QHBox *hb1 = new QHBox(this); hb1->setSpacing(5); swapPath1 = new QLineEdit(hb1); @@ -101,22 +103,22 @@ Swapfile::Swapfile( QWidget *parent, const char *name, WFlags f ) connect(cfRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); connect(sdRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); connect(ramRB, SIGNAL(clicked()), this, SLOT(cfsdchecked())); connect(mkSwap, SIGNAL(clicked()), this, SLOT(makeswapfile())); connect(rmSwap, SIGNAL(clicked()), this, SLOT(removeswapfile())); cfRB->setEnabled(FALSE); sdRB->setEnabled(FALSE); - + QCopChannel *pcmciaChannel = new QCopChannel("QPE/Card", this); connect(pcmciaChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(cardnotify(const QCString &, const QByteArray &))); QCopChannel *sdChannel = new QCopChannel("QPE/Card", this); connect(sdChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(cardnotify(const QCString &, const QByteArray &))); - + cardInPcmcia0 = FALSE; cardInPcmcia1 = FALSE; cardInSd = FALSE; Swapfile::status(); Swapfile::getStatusPcmcia(); Swapfile::getStatusSd(); } @@ -128,21 +130,21 @@ int Swapfile::exec(const QString& arg) Swapfile::~Swapfile() { } void Swapfile::cardnotify(const QCString & msg, const QByteArray &) { - if (msg == "stabChanged()") + if (msg == "stabChanged()") { getStatusPcmcia(); - } - else if (msg == "mtabChanged()") + } + else if (msg == "mtabChanged()") { getStatusSd(); } } void Swapfile::getStatusPcmcia() { @@ -188,29 +190,29 @@ void Swapfile::getStatusPcmcia() } f.close(); if (cardWas0 != cardInPcmcia0 || cardWas1 != cardInPcmcia1) { QString text = QString::null; QString what = QString::null; if (cardWas0 != cardInPcmcia0) { if (cardInPcmcia0) { - cfRB->setEnabled(TRUE); + cfRB->setEnabled(TRUE); } else { cfRB->setChecked(FALSE); - cfRB->setEnabled(FALSE); + cfRB->setEnabled(FALSE); } } if (cardWas1 != cardInPcmcia1) { if (cardInPcmcia1) { - cfRB->setEnabled(TRUE); + cfRB->setEnabled(TRUE); } else { cfRB->setChecked(FALSE); - cfRB->setEnabled(FALSE); + cfRB->setEnabled(FALSE); } } } } else { // no file found qDebug("no file found"); cardInPcmcia0 = FALSE; cardInPcmcia1 = FALSE; @@ -240,20 +242,20 @@ void Swapfile::getStatusSd() } endmntent(mntfp); } if (cardWas != cardInSd) { QString text = QString::null; QString what = QString::null; if (cardInSd) { - sdRB->setEnabled(TRUE); + sdRB->setEnabled(TRUE); } else { sdRB->setChecked(FALSE); - sdRB->setEnabled(FALSE); + sdRB->setEnabled(FALSE); } } #else #error "Not on Linux" #endif Swapfile::cfsdchecked(); } @@ -282,17 +284,17 @@ void Swapfile::setStatusMessage(const QString& text, bool error /* = false */) swapStatus->setText("<b>" + text + "</b>"); swapStatusIcon->setPixmap(Resource::loadPixmap(error ? "close" : "done")); } void Swapfile::swapoff() { char swapcmd[128] ="swapoff "; - if (Swapfile::cfRB->isChecked() == TRUE) + if (Swapfile::cfRB->isChecked() == TRUE) Swapfile::cfsdchecked(); strcat(swapcmd,swapPath1->text()); char *runcmd = swapcmd; rc = exec(QString("%1").arg(runcmd)); if (rc != 0) { setStatusMessage(tr("Failed to detach swapfile."), true); } else { @@ -302,59 +304,59 @@ void Swapfile::swapoff() } Swapfile::status(); } void Swapfile::cfsdchecked() { /* Swapfile::swapPath->clear();*/ Swapfile::swapPath1->clear(); - if (Swapfile::ramRB->isChecked() == TRUE) + if (Swapfile::ramRB->isChecked() == TRUE) { Swapfile::swapPath1->insert("/home/swapfile"); } if (Swapfile::sdRB->isChecked() == TRUE) { Swapfile::swapPath1->insert("/mnt/card/swapfile"); } if (Swapfile::cfRB->isChecked() == TRUE) { Swapfile::swapPath1->insert("/mnt/cf/swapfile"); } /* Swapfile::swapPath->insert(Swapfile::swapPath1->text());*/ } void Swapfile::makeswapfile() -{ +{ int i = swapSize->currentItem(); - mkswapProgress->setProgress(1); + mkswapProgress->setProgress(1); switch ( i ) { case 0: rc=exec(QString("dd if=/dev/zero of=%1 bs=1k count=2048").arg(swapPath1->text())); break; case 1: rc=exec(QString("dd if=/dev/zero of=%1 bs=1k count=4096").arg(swapPath1->text())); break; case 2: rc=exec(QString("dd if=/dev/zero of=%1 bs=1k count=6144").arg(swapPath1->text())); break; case 3: rc=exec(QString("dd if=/dev/zero of=%1 bs=1k count=8192").arg(swapPath1->text())); break; - } + } if (rc != 0) { setStatusMessage(tr("Failed to create swapfile."), true); } - mkswapProgress->setProgress(2); + mkswapProgress->setProgress(2); rc=exec(QString("mkswap %1").arg(swapPath1->text())); if (rc != 0) { setStatusMessage(tr("Failed to initialize swapfile."), true); } - mkswapProgress->setProgress(3); - mkswapProgress->reset(); + mkswapProgress->setProgress(3); + mkswapProgress->reset(); setStatusMessage(tr("Swapfile created.")); -} +} void Swapfile::removeswapfile() { exec(QString("swapoff %1").arg(swapPath1->text())); rc=exec(QString("rm -rf %1").arg(swapPath1->text())); if (rc != 0) { setStatusMessage(tr("Failed to remove swapfile."), true); } @@ -369,64 +371,64 @@ void Swapfile::status() char buffer[128], swapfile[128], temp[128]; int swapsize=2000, i=1; fp=fopen("/proc/swaps", "r"); while ( (fgets(buffer,128,fp)) != NULL ) { sscanf(buffer, "%s %s %d %s %s\n", swapfile, temp, &swapsize, temp, temp); } fclose(fp); - + ramRB->setChecked(FALSE); cfRB->setChecked(FALSE); sdRB->setChecked(FALSE); i=strcmp(swapfile, "/home/swapfile"); if ( i == 0 ) { - ramRB->setChecked(TRUE); + ramRB->setChecked(TRUE); /* QMessageBox::information(this, "Information", "Swapfile is active!"); */ setStatusMessage(tr("Swapfile activated.")); } i=strcmp(swapfile, "/usr/mnt.rom/cf/swapfile"); if ( i == 0 ) { - cfRB->setChecked(TRUE); + cfRB->setChecked(TRUE); /* QMessageBox::information(this, "Information", "Swapfile is active!"); */ setStatusMessage(tr("Swapfile activated.")); } i=strcmp(swapfile, "/mnt/cf/swapfile"); if ( i == 0 ) { - cfRB->setChecked(TRUE); + cfRB->setChecked(TRUE); /* QMessageBox::information(this, "Information", "Swapfile is active!"); */ setStatusMessage(tr("Swapfile activated.")); } i=strcmp(swapfile, "/usr/mnt.rom/card/swapfile"); if ( i == 0 ) { - sdRB->setChecked(TRUE); + sdRB->setChecked(TRUE); /* QMessageBox::information(this, "Information", "Swapfile is active!"); */ setStatusMessage(tr("Swapfile activated.")); } i=strcmp(swapfile, "/mnt/card/swapfile"); if ( i == 0 ) { - sdRB->setChecked(TRUE); + sdRB->setChecked(TRUE); /* QMessageBox::information(this, "Information", "Swapfile is active!"); */ setStatusMessage(tr("Swapfile activated.")); } Swapfile::cfsdchecked(); - - + + swapsize /=1000; switch ( swapsize ) { case 2: swapSize->setCurrentItem(0); break; case 4: swapSize->setCurrentItem(1); break; case 6: swapSize->setCurrentItem(2); break; case 8: swapSize->setCurrentItem(3); break; - } - + } + } |