summaryrefslogtreecommitdiffstats
path: root/src/modules/torrent/tc_statusbarapplet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/torrent/tc_statusbarapplet.cpp')
-rw-r--r--src/modules/torrent/tc_statusbarapplet.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/modules/torrent/tc_statusbarapplet.cpp b/src/modules/torrent/tc_statusbarapplet.cpp
new file mode 100644
index 00000000..5d23a299
--- /dev/null
+++ b/src/modules/torrent/tc_statusbarapplet.cpp
@@ -0,0 +1,69 @@
+#include "qtimer.h"
+#include "kvi_locale.h"
+#include "kvi_iconmanager.h"
+#include "tc_interface.h"
+#include "tc_statusbarapplet.h"
+
+KviTorrentStatusBarApplet::KviTorrentStatusBarApplet(KviStatusBar *parent, KviStatusBarAppletDescriptor *desc)
+ : KviStatusBarApplet(parent, desc)
+{
+ QTimer *timer = new QTimer(this);
+ connect(timer, SIGNAL(timeout()), this, SLOT(update()));
+ timer->start(250, FALSE);
+// updateDisplay();
+//
+ setText("torrent client");
+}
+
+KviTorrentStatusBarApplet::~KviTorrentStatusBarApplet()
+{
+}
+
+static KviStatusBarApplet *CreateTorrentClientApplet(KviStatusBar *bar, KviStatusBarAppletDescriptor *desc)
+{
+ debug("CreateTorrentClientApplet");
+ return new KviTorrentStatusBarApplet(bar, desc);
+}
+
+void KviTorrentStatusBarApplet::selfRegister(KviStatusBar *bar)
+{
+ KviStatusBarAppletDescriptor *d = new KviStatusBarAppletDescriptor(
+ __tr2qs("Torrent Client"),
+ "torrentapplet",
+ CreateTorrentClientApplet,
+ "torrent", *(g_pIconManager->getSmallIcon(KVI_SMALLICON_AWAY)));
+
+ bar->registerAppletDescriptor(d);
+}
+
+QString formatSize(float sz)
+{
+ if (sz >= 1024.0f*1024.0f*1024.0f)
+ return QString("%1 GB").arg(sz / (1024.0f*1024.0f*1024.0f), 2, 'f', 2);
+ if (sz >= 1024.0f*1024.0f)
+ return QString("%1 MB").arg(sz / (1024.0f*1024.0f), 2, 'f', 2);
+ if (sz >= 1024.0f)
+ return QString("%1 KB").arg(sz / 1024.0f, 2, 'f', 2);
+ return QString("%1 B").arg(sz, 2, 'f', 2);
+}
+
+void KviTorrentStatusBarApplet::update()
+{
+ if (KviTorrentInterface::selected())
+ {
+ QString msg = QString("up: %1 K/s (%2), dn: %3 K/s (%4)")
+ .arg(KviTorrentInterface::selected()->speedUp(), 2)
+ .arg(formatSize(KviTorrentInterface::selected()->trafficUp()))
+ .arg(KviTorrentInterface::selected()->speedDown(), 2)
+ .arg(formatSize(KviTorrentInterface::selected()->trafficDown()));
+
+ setText(msg);
+
+ } else
+ {
+ setText(__tr2qs_ctx("No client selected!", "torrent"));
+ }
+}
+
+#include "tc_statusbarapplet.moc"
+