* maximal -> maximum
[kdenetwork.git] / kget / ui / transferdetails.cpp
blobf1315c79747315140b350273a45d1ab373137638
1 /* This file is part of the KDE project
3 Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
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 */
11 #include "transferdetails.h"
13 #include "ui_transferdetailsfrm.h"
14 #include "core/kget.h"
16 #include <klocale.h>
17 #include <kio/global.h>
19 #include <QVBoxLayout>
21 TransferDetails::TransferDetails(TransferHandler * transfer)
22 : m_transfer(transfer)
24 m_genericWidget = new QWidget(this);
26 Ui::TransferDetailsFrm frm;
27 frm.setupUi(m_genericWidget);
29 m_detailsWidget = KGet::factory(transfer)->createDetailsWidget(transfer);
31 m_layout = new QVBoxLayout(this);
32 m_layout->addWidget(m_genericWidget);
33 if (m_detailsWidget)
34 m_layout->addWidget(m_detailsWidget);
35 setLayout(m_layout);
37 frm.sourceLabel->setText(i18nc("@label transfer source", "Source:"));
38 frm.destLabel->setText(i18n("Saving to:"));
39 frm.statusLabel->setText(i18n("Status:"));
41 frm.sourceContentEdit->setText(transfer->source().url());
42 frm.destContentEdit->setText(transfer->dest().url());
44 m_statusPixmapLabel = frm.statusPixmapContentLabel;
45 m_statusTextLabel = frm.statusTextContentLabel;
46 m_completedLabel = frm.completedContentLabel;
47 m_speedLabel = frm.speedContentLabel;
48 m_progressBar = frm.progressBar;
49 m_remainingTimeLabel = frm.remainingTimeLabel;
51 transfer->addObserver(this);
52 //This updates the widget with the right values
53 transferChangedEvent(transfer);
56 TransferDetails::~TransferDetails()
58 m_transfer->delObserver(this);
61 void TransferDetails::transferChangedEvent(TransferHandler * transfer)
63 Q_UNUSED(transfer);
65 TransferHandler::ChangesFlags transferFlags = m_transfer->changesFlags(this);
67 if(transferFlags & Transfer::Tc_Status)
69 m_statusPixmapLabel->setPixmap(m_transfer->statusPixmap());
70 m_statusTextLabel->setText(m_transfer->statusText());
73 if((transferFlags & Transfer::Tc_TotalSize) || (transferFlags & Transfer::Tc_DownloadedSize))
75 m_completedLabel->setText(i18n("%1 of %2", KIO::convertSize(m_transfer->downloadedSize()), KIO::convertSize(m_transfer->totalSize())));
78 if(transferFlags & Transfer::Tc_Percent)
80 m_progressBar->setValue(m_transfer->percent());
83 if(transferFlags & Transfer::Tc_DownloadSpeed)
85 int speed = m_transfer->downloadSpeed();
87 if(speed==0)
89 if(m_transfer->status() == Job::Running)
90 m_speedLabel->setText(i18n("Stalled") );
91 else
92 m_speedLabel->setText(QString());
94 else
95 m_speedLabel->setText(i18n("%1/s", KIO::convertSize(speed)));
97 m_remainingTimeLabel->setText(KIO::convertSeconds(m_transfer->remainingTime()));
99 m_transfer->resetChangesFlags(this);
102 QWidget *TransferDetails::detailsWidget(TransferHandler *handler)
104 QWidget *details = KGet::factory(handler)->createDetailsWidget(handler);
106 if (!details) { // the transfer factory doesn't override the details widget so use the generic one
107 details = new TransferDetails(handler);
110 return details;
113 #include "transferdetails.moc"