31#include <tdefileivi.h>
32#include <tdefileitem.h>
33#include <tdeapplication.h>
34#include <kdirlister.h>
35#include <tdestandarddirs.h>
36#include <kiconloader.h>
37#include <konq_settings.h>
42# include <sys/statvfs.h>
44# include <sys/mount.h>
45# define statvfs statfs
46# define f_frsize f_bsize
49#include "kivfreespaceoverlay.h"
51KIVFreeSpaceOverlay::KIVFreeSpaceOverlay(
KFileIVI* freespace)
53 m_freespace = freespace;
56KIVFreeSpaceOverlay::~KIVFreeSpaceOverlay()
61void KIVFreeSpaceOverlay::start()
63 if ( !m_freespace->item()->isReadable() ) {
66 TQTimer::singleShot(0,
this, TQ_SLOT(slotDisplay()));
69void KIVFreeSpaceOverlay::timerEvent(TQTimerEvent *)
74void KIVFreeSpaceOverlay::slotDisplay()
76 KFileItem* item = m_freespace->item();
78 if (item->mimetype().contains(
"_mounted")) {
80 KURL localURL = item->mostLocalURL(isLocal);
82 m_freespace->setOverlayProgressBar(-1);
85 TQString localPath = localURL.path();
86 if (localPath !=
"") {
87 TDEIO::filesize_t m_total = 0;
88 TDEIO::filesize_t m_used = 0;
89 TDEIO::filesize_t m_free = 0;
92 memset(&vfs, 0,
sizeof(vfs));
94 if ( ::statvfs(TQFile::encodeName(localPath), &vfs) != -1 )
96 m_total =
static_cast<TDEIO::filesize_t
>(vfs.f_blocks) *
static_cast<TDEIO::filesize_t
>(vfs.f_frsize);
97 m_free =
static_cast<TDEIO::filesize_t
>(vfs.f_bavail) *
static_cast<TDEIO::filesize_t
>(vfs.f_frsize);
98 m_used = m_total - m_free;
99 m_freespace->setOverlayProgressBar((m_used/(m_total*1.0))*100.0);
102 m_freespace->setOverlayProgressBar(-1);
106 m_freespace->setOverlayProgressBar(-1);
112 m_freespace->setOverlayProgressBar(-1);
118#include "kivfreespaceoverlay.moc"
KFileIVI (short form of "Konq - File - IconViewItem") is, as expected, an improved TDEIconViewItem,...