[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