Mercurial > trustbridge
view ui/proxysettingsdlg.cpp @ 1075:7e1fd6d96714
(issue109) Feedback improved. Shell translation updated.
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Thu, 11 Sep 2014 10:18:46 +0200 |
parents | 8a1071fee883 |
children |
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik * Software engineering by Intevation GmbH * * This file is Free Software under the GNU GPL (v>=2) * and comes with ABSOLUTELY NO WARRANTY! * See LICENSE.txt for details. */ #include <QHBoxLayout> #include <QVBoxLayout> #include <QLabel> #include <QLineEdit> #include <QSettings> #include <QPushButton> #include <QUrl> #include <QDebug> #include <QIcon> #include <QPixmap> #include <QCheckBox> #include "proxysettingsdlg.h" ProxySettingsDlg::ProxySettingsDlg(QWidget *parent) : QDialog (parent) { setWindowIcon(QIcon(":/img/preferences-network_16.png")); setWindowTitle(tr("Proxy server settings")); QVBoxLayout *mainLayout = new QVBoxLayout(); QHBoxLayout *iconTextLayout = new QHBoxLayout(); QHBoxLayout *labelLineLayout = new QHBoxLayout(); QHBoxLayout *okCancelLayout = new QHBoxLayout(); QSettings settings; QLabel *iconLabel = new QLabel(); iconLabel->setPixmap(QPixmap(":/img/preferences-network_64.png")); iconTextLayout->addWidget(iconLabel); QLabel *explanation = new QLabel(tr("Please enter the proxy server to use in the field below.") + " " + tr("The URL can follow the scheme:") + "<br/>" + tr("[<username>:<password>@]<hostname>[:<port>]") + "<br/></br/>"); explanation->setTextFormat(Qt::RichText); explanation->setWordWrap(true); iconTextLayout->addWidget(explanation); mainLayout->addLayout(iconTextLayout); bool useProxy = settings.value("UseProxy", false).toBool(); mCheckBox = new QCheckBox(tr("Use Proxy Server")); mCheckBox->setTristate(false); mCheckBox->setCheckState(useProxy ? Qt::Checked : Qt::Unchecked); mainLayout->addWidget(mCheckBox); mProxyURL = new QLineEdit(settings.value("ProxyURL").toString()); QLabel *proxyLabel = new QLabel(tr("Proxy Server:")); proxyLabel->setBuddy(mProxyURL); mProxyURL->setReadOnly(!useProxy); mProxyURL->setEnabled(useProxy); labelLineLayout->addWidget(proxyLabel); labelLineLayout->addWidget(mProxyURL); mSaveButton = new QPushButton (tr("&Save")); QPushButton * cancelButton = new QPushButton (tr("&Cancel")); okCancelLayout->addStretch(10); okCancelLayout->addWidget(mSaveButton); okCancelLayout->addWidget(cancelButton); connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject())); connect(mSaveButton, SIGNAL(clicked()), this, SLOT(save())); connect(mProxyURL, SIGNAL(textChanged(const QString &)), this, SLOT(checkCanSave(const QString&))); connect(mCheckBox, SIGNAL(stateChanged(int)), this, SLOT(checkCanEdit(int))); mainLayout->addLayout(labelLineLayout); mainLayout->addLayout(okCancelLayout); setLayout(mainLayout); } void ProxySettingsDlg::checkCanSave(const QString &val) { mSaveButton->setEnabled(mCheckBox->checkState() == Qt::Unchecked || QUrl(val).isValid()); } void ProxySettingsDlg::checkCanEdit(int state) { mProxyURL->setReadOnly(state != Qt::Checked); mProxyURL->setEnabled(state == Qt::Checked); } void ProxySettingsDlg::save() { QSettings settings; settings.setValue("ProxyURL", mProxyURL->text()); settings.setValue("UseProxy", mCheckBox->checkState() == Qt::Checked); settings.sync(); accept(); }