예제 #1
0
NetworkSettings::NetworkSettings(QWidget *parent) :
    QWidget(parent),
    _ui(new Ui::NetworkSettings)
{
    _ui->setupUi(this);

    _ui->hostLineEdit->setPlaceholderText(tr("Hostname of proxy server"));
    _ui->userLineEdit->setPlaceholderText(tr("Username for proxy server"));
    _ui->passwordLineEdit->setPlaceholderText(tr("Password for proxy server"));

    _ui->typeComboBox->addItem(tr("HTTP(S) proxy"), QNetworkProxy::HttpProxy);
    _ui->typeComboBox->addItem(tr("SOCKS5 proxy"), QNetworkProxy::Socks5Proxy);

    _ui->authRequiredcheckBox->setEnabled(true);

    connect(_ui->manualProxyRadioButton, SIGNAL(toggled(bool)),
            _ui->manualSettings, SLOT(setEnabled(bool)));
    connect(_ui->manualProxyRadioButton, SIGNAL(toggled(bool)),
            _ui->typeComboBox, SLOT(setEnabled(bool)));
    connect(_ui->authRequiredcheckBox, SIGNAL(toggled(bool)),
            _ui->authWidgets, SLOT(setEnabled(bool)));

    loadProxySettings();
    loadBWLimitSettings();

    // proxy
    connect(_ui->typeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(saveProxySettings()));
    connect(_ui->proxyButtonGroup, SIGNAL(buttonClicked(int)), SLOT(saveProxySettings()));
    connect(_ui->hostLineEdit, SIGNAL(editingFinished()), SLOT(saveProxySettings()));
    connect(_ui->userLineEdit, SIGNAL(editingFinished()), SLOT(saveProxySettings()));
    connect(_ui->passwordLineEdit, SIGNAL(editingFinished()), SLOT(saveProxySettings()));
    connect(_ui->portSpinBox, SIGNAL(editingFinished()), SLOT(saveProxySettings()));

    connect(_ui->uploadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->noUploadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->autoUploadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->downloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->noDownloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->downloadSpinBox, SIGNAL(valueChanged(int)), SLOT(saveBWLimitSettings()));
    connect(_ui->uploadSpinBox, SIGNAL(valueChanged(int)), SLOT(saveBWLimitSettings()));
}
예제 #2
0
void NetworkSettings::loadBWLimitSettings()
{
    ConfigFile cfgFile;

#if QT_VERSION < QT_VERSION_CHECK(5,3,3)
    // QNAM bandwidth limiting only works with versions of Qt greater or equal to 5.3.3
    // (It needs Qt commits 097b641 and b99fa32)

    const char *v = qVersion(); // "x.y.z";
    if (QLatin1String(v) < QLatin1String("5.3.3")) {
        QString tooltip = tr("Qt >= 5.4 is required in order to use the bandwidth limit");
        _ui->downloadBox->setEnabled(false);
        _ui->uploadBox->setEnabled(false);
        _ui->downloadBox->setToolTip(tooltip);
        _ui->uploadBox->setToolTip(tooltip);
        _ui->noDownloadLimitRadioButton->setChecked(true);
        _ui->noUploadLimitRadioButton->setChecked(true);
        if (cfgFile.useUploadLimit() != 0 || cfgFile.useDownloadLimit() != 0) {
            // Update from old mirall that was using neon propagator jobs.
            saveBWLimitSettings();
        }
        return;
    }

#endif
    int useDownloadLimit = cfgFile.useDownloadLimit();
    if ( useDownloadLimit >= 1 ) {
        _ui->downloadLimitRadioButton->setChecked(true);
    } else if (useDownloadLimit == 0){
        _ui->noDownloadLimitRadioButton->setChecked(true);
    } else {
        _ui->autoDownloadLimitRadioButton->setChecked(true);
    }
    _ui->downloadSpinBox->setValue(cfgFile.downloadLimit());

    int useUploadLimit = cfgFile.useUploadLimit();
    if ( useUploadLimit >= 1 ) {
        _ui->uploadLimitRadioButton->setChecked(true);
    } else if (useUploadLimit == 0){
        _ui->noUploadLimitRadioButton->setChecked(true);
    } else {
        _ui->autoUploadLimitRadioButton->setChecked(true);
    }
    _ui->uploadSpinBox->setValue(cfgFile.uploadLimit());
}