* maximal -> maximum
[kdenetwork.git] / kget / ui / transfersettingsdialog.cpp
blob97af59e4eba7778097d9c9b893280e2d5582dd7c
1 /* This file is part of the KDE project
3 Copyright (C) 2008 Lukas Appelhans <l.appelhans@gmx.de>
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 #include "transfersettingsdialog.h"
12 #include "core/transferhandler.h"
14 TransferSettingsDialog::TransferSettingsDialog(QWidget *parent, TransferHandler *transfer)
15 : KDialog(parent),
16 m_transfer(transfer)
18 setCaption(i18n("Transfer-Settings for %1", m_transfer->source().fileName()));
19 showButtonSeparator(true);
20 QWidget *widget = new QWidget(this);
21 Ui::TransferSettingsDialog ui;
22 ui.setupUi(widget);
23 setMainWidget(widget);
24 m_downloadSpin = ui.downloadSpin;
25 m_downloadSpin->setValue(m_transfer->downloadLimit(Transfer::VisibleSpeedLimit));
26 m_uploadSpin = ui.uploadSpin;
27 m_uploadSpin->setValue(m_transfer->uploadLimit(Transfer::VisibleSpeedLimit));
28 m_ratioSpin = ui.ratioSpin;
29 m_ratioSpin->setValue(m_transfer->maximumShareRatio());
30 m_downloadCheck = ui.downloadCheck;
31 m_downloadCheck->setChecked(m_downloadSpin->value() != 0);
32 m_uploadCheck = ui.uploadCheck;
33 m_uploadCheck->setChecked(m_uploadSpin->value() != 0);
34 m_ratioCheck = ui.ratioCheck;
35 m_ratioCheck->setChecked(m_ratioSpin->value() != 0);
37 if (!transfer->supportsSpeedLimits())
39 m_downloadCheck->setDisabled(true);
40 m_downloadSpin->setDisabled(true);
41 m_uploadCheck->setDisabled(true);
42 m_uploadSpin->setDisabled(true);
43 m_ratioCheck->setDisabled(true);
44 m_ratioSpin->setDisabled(true);
46 connect(this, SIGNAL(accepted()), SLOT(save()));
49 TransferSettingsDialog::~TransferSettingsDialog()
53 void TransferSettingsDialog::save()
54 {//TODO: Set to -1 when no limit
55 if (m_downloadCheck->isChecked())
56 m_transfer->setDownloadLimit(m_downloadSpin->value(), Transfer::VisibleSpeedLimit);
57 else
58 m_transfer->setDownloadLimit(0, Transfer::VisibleSpeedLimit);
60 if (m_uploadCheck->isChecked())
61 m_transfer->setUploadLimit(m_uploadSpin->value(), Transfer::VisibleSpeedLimit);
62 else
63 m_transfer->setUploadLimit(0, Transfer::VisibleSpeedLimit);
65 if (m_ratioCheck->isChecked())
66 m_transfer->setMaximumShareRatio(m_ratioSpin->value());
67 else
68 m_transfer->setMaximumShareRatio(0);
71 #include "transfersettingsdialog.moc"