diff ui/proxysettingsdlg.cpp @ 955:0f7aeb12e5e9

(issue41) Add proxsettingsdialog
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 27 Aug 2014 16:31:11 +0200
parents
children c1f32c87716a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/proxysettingsdlg.cpp	Wed Aug 27 16:31:11 2014 +0200
@@ -0,0 +1,80 @@
+/* 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 "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.") +
+        "</br>" + tr("The URL can follow the scheme:") + " " + 
+        tr("&lt;username&gt;:&lt;password&gt;@&lt;hostname&gt;:&lt;port&gt;") +
+        "</br></br>");
+    explanation->setTextFormat(Qt::RichText);
+    explanation->setWordWrap(true);
+
+    iconTextLayout->addWidget(explanation);
+    mainLayout->addLayout(iconTextLayout);
+
+    mProxyURL = new QLineEdit(settings.value("ProxyURL").toString());
+    QLabel *proxyLabel = new QLabel(tr("Proxy Server:"));
+    proxyLabel->setBuddy(mProxyURL);
+
+    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&)));
+
+    mainLayout->addLayout(labelLineLayout);
+    mainLayout->addLayout(okCancelLayout);
+
+    setLayout(mainLayout);
+}
+
+void ProxySettingsDlg::checkCanSave(const QString &val) {
+    mSaveButton->setEnabled(val.isEmpty() || QUrl(val).isValid());
+}
+
+void ProxySettingsDlg::save() {
+    QSettings settings;
+    settings.setValue("ProxyURL", mProxyURL->text());
+    settings.sync();
+    accept();
+}

http://wald.intevation.org/projects/trustbridge/