示例#1
0
void FreeSpaceWidget::slotTimeout()
{
    KMountPoint::List list = KMountPoint::currentMountPoints();

    foreach(const QString& path, d->paths)
    {
        KMountPoint::Ptr mp = list.findByPath(path);

        if (mp)
        {
            KDiskFreeSpace* const job = new KDiskFreeSpace(this);

            connect(job, SIGNAL(foundMountPoint(QString,quint64,quint64,quint64)),
                    this, SLOT(slotAvailableFreeSpace(QString,quint64,quint64,quint64)));

            job->readDF(mp->mountPoint());
        }
    }
}
示例#2
0
/***************************************************************************
  * is called, when the df-command has finished
**/
void KDiskFreeSp::dfDone()
{
    readingDFStdErrOut=true;

    QTextStream t (dfStringErrOut, IO_ReadOnly);
    QString s=t.readLine();
    if ( (s.isEmpty()) || ( s.left(10) != QString::fromLatin1("Filesystem") ) )
        kdError() << "Error running df command... got [" << s << "]" << endl;
    while ( !t.eof() ) {
        QString u,v;
        s=t.readLine();
        s=s.simplifyWhiteSpace();
        if ( !s.isEmpty() ) {
            //kdDebug(kfile_area) << "GOT: [" << s << "]" << endl;

            if (s.find(BLANK)<0)      // devicename was too long, rest in next line
                if ( !t.eof() ) {       // just appends the next line
                    v=t.readLine();
                    s=s.append(v);
                    s=s.simplifyWhiteSpace();
                    //kdDebug(kfile_area) << "SPECIAL GOT: [" << s << "]" << endl;
                }//if silly linefeed

            //kdDebug(kfile_area) << "[" << s << "]" << endl;

            //QString deviceName = s.left(s.find(BLANK));
            s=s.remove(0,s.find(BLANK)+1 );
            //kdDebug(kfile_area) << "    DeviceName:    [" << deviceName << "]" << endl;

            if (!NO_FS_TYPE)
                s=s.remove(0,s.find(BLANK)+1 ); // eat fs type

            u=s.left(s.find(BLANK));
            unsigned long kBSize = u.toULong();
            s=s.remove(0,s.find(BLANK)+1 );
            //kdDebug(kfile_area) << "    Size:       [" << kBSize << "]" << endl;

            u=s.left(s.find(BLANK));
            unsigned long kBUsed = u.toULong();
            s=s.remove(0,s.find(BLANK)+1 );
            //kdDebug(kfile_area) << "    Used:       [" << kBUsed << "]" << endl;

            u=s.left(s.find(BLANK));
            unsigned long kBAvail = u.toULong();
            s=s.remove(0,s.find(BLANK)+1 );
            //kdDebug(kfile_area) << "    Avail:       [" << kBAvail << "]" << endl;


            s=s.remove(0,s.find(BLANK)+1 );  // delete the capacity 94%
            QString mountPoint = s.stripWhiteSpace();
            //kdDebug(kfile_area) << "    MountPoint:       [" << mountPoint << "]" << endl;

            if ( mountPoint == m_mountPoint )
            {
                //kdDebug(kfile_area) << "Found mount point. Emitting" << endl;
                emit foundMountPoint( mountPoint, kBSize, kBUsed, kBAvail );
                emit foundMountPoint( kBSize, kBUsed, kBAvail, mountPoint ); // sic!
            }
        }//if not header
    }//while further lines available

    readingDFStdErrOut=false;
    emit done();
    delete this;
}