[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdenetwork/kget/ui
From: Wang Kai <zealot.hoi () gmail ! com>
Date: 2008-12-31 17:28:25
Message-ID: 1230744505.621184.29827.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 903930 by wkai:
tooltips on DropTarget to show current status: filename,percent,speed ...
M +52 -1 droptarget.cpp
M +2 -0 droptarget.h
--- trunk/KDE/kdenetwork/kget/ui/droptarget.cpp #903929:903930
@@ -13,6 +13,7 @@
#include "ui/droptarget.h"
#include "core/kget.h"
+#include "core/transferhandler.h"
#include "settings.h"
#include "mainwindow.h"
#include "ui/newtransferdialog.h"
@@ -27,15 +28,17 @@
#include <QPainter>
#include <QTimer>
#include <QClipboard>
+#include <QStringList>
#include <math.h>
#define TARGET_SIZE 64
#define TARGET_ANI_MS 20
+#define TARGET_TOOLTIP_MS 1000
DropTarget::DropTarget(MainWindow * mw)
: QWidget(0, Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint),
- parentWidget(mw), animTimer(0), showInformation(false)
+ parentWidget(mw), animTimer(0), toolTipTimer(0), showInformation(false)
{
KWindowSystem::setState(winId(), NET::SkipTaskbar);
@@ -100,6 +103,9 @@
}
animTimer = new QTimer(this);
+
+ toolTipTimer = new QTimer(this);
+ connect(toolTipTimer, SIGNAL(timeout()), SLOT(slotToolTipUpdate()));
}
@@ -122,6 +128,7 @@
if (!shown)
{
+ toolTipTimer->stop();
Settings::setDropPosition( pos() );
if ( Settings::animateDropTarget() )
playAnimationHide();
@@ -135,6 +142,8 @@
playAnimationShow();
else
move(position);
+ toolTipTimer->start(TARGET_TOOLTIP_MS);
+ slotToolTipUpdate();
}
}
@@ -373,6 +382,48 @@
move( x(), qRound(ani_y + 6*j) );
}
+void DropTarget::slotToolTipUpdate()
+{
+ QStringList dataList;
+ QString data;
+
+ foreach (TransferHandler *transfer, KGet::allTransfers()) {
+ data.clear();
+ switch (transfer->status()) {
+ case Job::Delayed:
+ case Job::Stopped:
+ case Job::Aborted:
+ data = i18n("%1(%2\% %3/%4) %5",
+ transfer->source().fileName(),
+ QString::number(transfer->percent()),
+ KIO::convertSize(transfer->downloadedSize()),
+ KIO::convertSize(transfer->totalSize()),
+ transfer->statusText());
+ break;
+ case Job::Finished:
+ data = i18n("%1(%2) %3",
+ transfer->source().fileName(),
+ KIO::convertSize(transfer->totalSize()),
+ transfer->statusText());
+ break;
+ case Job::Running:
+ data = i18n("%1(%2\% %3/%4) Speed:%5/s",
+ transfer->source().fileName(),
+ QString::number(transfer->percent()),
+ KIO::convertSize(transfer->downloadedSize()),
+ KIO::convertSize(transfer->totalSize()),
+ KIO::convertSize(transfer->downloadSpeed()));
+ break;
+ }
+ dataList << data;
+ }
+
+ if (!dataList.empty())
+ setToolTip(dataList.join("\n"));
+ else
+ setToolTip(i18n("Ready"));
+}
+
void DropTarget::slotClose()
{
if (!Settings::expertMode())
--- trunk/KDE/kdenetwork/kget/ui/droptarget.h #903929:903930
@@ -60,12 +60,14 @@
void slotAnimateShow();
void slotAnimateHide();
void slotAnimateSync();
+ void slotToolTipUpdate();
void slotClose();
private:
KMenu * popupMenu;
MainWindow * parentWidget;
QTimer * animTimer;
+ QTimer * toolTipTimer;
QPixmap cachedPixmap;
QAction * pop_sticky;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic