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.
10 #include "transfersettingsdialog.h"
12 #include "core/transferhandler.h"
14 TransferSettingsDialog::TransferSettingsDialog(QWidget
*parent
, TransferHandler
*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
;
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
);
58 m_transfer
->setDownloadLimit(0, Transfer::VisibleSpeedLimit
);
60 if (m_uploadCheck
->isChecked())
61 m_transfer
->setUploadLimit(m_uploadSpin
->value(), Transfer::VisibleSpeedLimit
);
63 m_transfer
->setUploadLimit(0, Transfer::VisibleSpeedLimit
);
65 if (m_ratioCheck
->isChecked())
66 m_transfer
->setMaximumShareRatio(m_ratioSpin
->value());
68 m_transfer
->setMaximumShareRatio(0);
71 #include "transfersettingsdialog.moc"