summaryrefslogtreecommitdiff
path: root/library/proxies.cpp
Side-by-side diff
Diffstat (limited to 'library/proxies.cpp') (more/less context) (show whitespace changes)
-rw-r--r--library/proxies.cpp118
1 files changed, 118 insertions, 0 deletions
diff --git a/library/proxies.cpp b/library/proxies.cpp
new file mode 100644
index 0000000..eff943e
--- a/dev/null
+++ b/library/proxies.cpp
@@ -0,0 +1,118 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+#include "proxies.h"
+#include "proxiesbase_p.h"
+#include "config.h"
+
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include <qframe.h>
+#include <qvalidator.h>
+#include <qspinbox.h>
+#include <qradiobutton.h>
+
+Proxies::Proxies( QWidget* parent ) :
+ QVBox(parent)
+{
+ d = new ProxiesBase( this );
+ connect(d->type,SIGNAL(activated(int)),this,SLOT(typeChanged(int)));
+}
+
+void Proxies::typeChanged(int t)
+{
+ switch (t) {
+ case 0: d->autopanel->hide(); d->setpanel->hide(); break;
+ case 1: d->setpanel->hide(); d->autopanel->show(); break;
+ case 2: d->autopanel->hide(); d->setpanel->show(); break;
+ }
+}
+
+class ProxyValidator : public QValidator {
+public:
+ ProxyValidator( QWidget * parent, const char *name = 0 ) :
+ QValidator(parent,name)
+ {
+ }
+
+ State validate( QString &s, int &pos ) const
+ {
+ int i;
+ for (i=0; i<(int)s.length(); i++) {
+ if ( s[i] == ',' || s[i] == ';' || s[i] == '\n' || s[i] == '\r' )
+ s[i] = ' ';
+ }
+ for (i=0; i<(int)s.length()-1; ) {
+ if ( s[i] == ' ' && s[i+1] == ' ' ) {
+ if (pos>i) pos--;
+ s = s.left(i)+s.mid(i+2);
+ } else
+ i++;
+ }
+ return Valid;
+ }
+};
+
+void Proxies::readConfig(Config& cfg)
+{
+ int t = cfg.readNumEntry("type",0);
+ d->type->setCurrentItem(t);
+ typeChanged(t);
+
+ QString s;
+
+ s = cfg.readEntry("autoconfig");
+ if ( !s.isEmpty() )
+ d->autoconfig->insertItem(s);
+
+
+ s = cfg.readEntry("httphost");
+ if ( !s.isEmpty() )
+ d->httphost->setText(s);
+
+ int i;
+ i = cfg.readNumEntry("httpport");
+ if ( i>0 )
+ d->httpport->setValue(i);
+
+ s = cfg.readEntry("ftphost");
+ if ( !s.isEmpty() )
+ d->ftphost->setText(s);
+
+ i = cfg.readNumEntry("ftpport");
+ if ( i>0 )
+ d->ftpport->setValue(i);
+
+ s = cfg.readEntry("noproxies");
+ d->noproxies->setValidator(new ProxyValidator(this));
+ d->noproxies->setText(s);
+}
+
+void Proxies::writeConfig( Config &cfg )
+{
+ cfg.writeEntry("type",d->type->currentItem());
+ cfg.writeEntry("autoconfig", d->autoconfig->currentText());
+ cfg.writeEntry("httphost", d->httphost->text());
+ cfg.writeEntry("httpport", d->httpport->text());
+ cfg.writeEntry("ftphost", d->ftphost->text());
+ cfg.writeEntry("ftpport", d->ftpport->text());
+ cfg.writeEntry("noproxies", d->noproxies->text());
+}
+