• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • ui
transferdetails.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 */
10 
11 #include "transferdetails.h"
12 
13 #include "core/kget.h"
14 
15 #include <klocale.h>
16 #include <kio/global.h>
17 #include <kdebug.h>
18 
19 #include <QVBoxLayout>
20 
21 TransferDetails::TransferDetails(TransferHandler * transfer)
22  : QWidget(0),
23  m_transfer(transfer)
24 {
25  m_genericWidget = new QWidget(this);
26 
27  frm.setupUi(m_genericWidget);
28 
29  m_layout = new QVBoxLayout(this);
30  m_layout->addWidget(m_genericWidget);
31  setLayout(m_layout);
32 
33  frm.sourceContentEdit->setText(m_transfer->source().pathOrUrl());
34  frm.destContentEdit->setText(m_transfer->dest().pathOrUrl());
35 
36  //This updates the widget with the right values
37  slotTransferChanged(transfer, 0xFFFFFFFF);
38 
39  connect(transfer, SIGNAL(transferChangedEvent(TransferHandler*,TransferHandler::ChangesFlags)),
40  this, SLOT(slotTransferChanged(TransferHandler*,TransferHandler::ChangesFlags)));
41 }
42 
43 TransferDetails::~TransferDetails()
44 {
45 }
46 
47 QWidget *TransferDetails::detailsWidget(TransferHandler *handler)
48 {
49  QWidget *details = KGet::factory(handler)->createDetailsWidget(handler);
50 
51  if (!details) { // the transfer factory doesn't override the details widget so use the generic one
52  details = new TransferDetails(handler);
53  }
54 
55  return details;
56 }
57 
58 void TransferDetails::slotTransferChanged(TransferHandler * transfer, TransferHandler::ChangesFlags flags)
59 {
60  kDebug(5001) << "TransferDetails::slotTransferChanged";
61 
62  Q_UNUSED(transfer)
63 
64  if(flags & Transfer::Tc_Status) {
65  frm.statusPixmapContentLabel->setPixmap(m_transfer->statusPixmap());
66  frm.statusTextContentLabel->setText(m_transfer->statusText());
67 
68  if (m_transfer->status() == Job::Finished) {
69  frm.speedContentLabel->setText(i18n("Average speed: %1/s", KIO::convertSize(m_transfer->averageDownloadSped())));
70  }
71  }
72 
73  if ((flags & Transfer::Tc_TotalSize) || (flags & Transfer::Tc_DownloadedSize)) {
74  frm.completedContentLabel->setText(i18n("%1 of %2", KIO::convertSize(m_transfer->downloadedSize()), KIO::convertSize(m_transfer->totalSize())));
75  }
76 
77  if (flags & Transfer::Tc_Percent) {
78  frm.progressBar->setValue(m_transfer->percent());
79  }
80 
81  if ((flags & Transfer::Tc_DownloadSpeed) && (m_transfer->status() != Job::Finished)) {
82  int speed = m_transfer->downloadSpeed();
83 
84  if (speed == 0) {
85  if(m_transfer->status() == Job::Running)
86  frm.speedContentLabel->setText(i18n("Stalled") );
87  else
88  frm.speedContentLabel->setText(QString());
89  } else {
90  frm.speedContentLabel->setText(i18n("%1/s", KIO::convertSize(speed)));
91  }
92  }
93 
94  if(flags & Transfer::Tc_FileName) {
95  frm.destContentEdit->setText(m_transfer->dest().pathOrUrl());
96  }
97 
98  if (flags & Transfer::Tc_Source) {
99  frm.sourceContentEdit->setText(m_transfer->source().pathOrUrl());
100  }
101 
102  frm.remainingTimeLabel->setText(KIO::convertSeconds(m_transfer->remainingTime()));
103 }
104 
105 #include "transferdetails.moc"
TransferHandler::status
Job::Status status() const
Definition: transferhandler.h:64
TransferHandler
Class TransferHandler:
Definition: transferhandler.h:48
Transfer::Tc_FileName
Definition: transfer.h:52
Job::Finished
The job is stopped, but this also indicates that it stopped because an error occurred.
Definition: job.h:47
TransferDetails::slotTransferChanged
void slotTransferChanged(TransferHandler *transfer, TransferHandler::ChangesFlags flags)
Definition: transferdetails.cpp:58
QWidget
TransferHandler::totalSize
KIO::filesize_t totalSize() const
Definition: transferhandler.cpp:86
transferdetails.h
TransferDetails::TransferDetails
TransferDetails(TransferHandler *transfer)
Definition: transferdetails.cpp:21
TransferHandler::statusPixmap
QPixmap statusPixmap() const
Definition: transferhandler.h:215
Transfer::Tc_Status
Definition: transfer.h:53
Job::Running
Definition: job.h:43
TransferHandler::dest
const KUrl & dest() const
Definition: transferhandler.h:98
TransferDetails::detailsWidget
static QWidget * detailsWidget(TransferHandler *transfer)
Definition: transferdetails.cpp:47
TransferHandler::statusText
QString statusText() const
Definition: transferhandler.h:210
TransferHandler::ChangesFlags
Transfer::ChangesFlags ChangesFlags
Definition: transferhandler.h:58
TransferHandler::source
const KUrl & source() const
Definition: transferhandler.h:93
TransferHandler::downloadSpeed
int downloadSpeed() const
Definition: transferhandler.cpp:106
TransferHandler::averageDownloadSped
int averageDownloadSped() const
Definition: transferhandler.cpp:111
Transfer::Tc_DownloadSpeed
Definition: transfer.h:56
TransferHandler::percent
int percent() const
Definition: transferhandler.cpp:101
TransferHandler::downloadedSize
KIO::filesize_t downloadedSize() const
Definition: transferhandler.cpp:91
TransferDetails::~TransferDetails
~TransferDetails()
Definition: transferdetails.cpp:43
TransferHandler::remainingTime
int remainingTime() const
Definition: transferhandler.cpp:81
kget.h
Transfer::Tc_TotalSize
Definition: transfer.h:54
Transfer::Tc_Percent
Definition: transfer.h:55
Transfer::Tc_DownloadedSize
Definition: transfer.h:63
TransferFactory::createDetailsWidget
virtual QWidget * createDetailsWidget(TransferHandler *transfer)
Definition: transferfactory.cpp:44
KGet::factory
static TransferFactory * factory(TransferHandler *transfer)
Definition: kget.cpp:626
Transfer::Tc_Source
Definition: transfer.h:51
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal