diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bcb704366cb5e333a626c18c308c7e0448a8e69f (patch) | |
tree | f0d6ab7d78ecdd9207cf46536376b44b91a1ca71 /kppp/pppdargs.cpp | |
download | tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.tar.gz tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kppp/pppdargs.cpp')
-rw-r--r-- | kppp/pppdargs.cpp | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/kppp/pppdargs.cpp b/kppp/pppdargs.cpp new file mode 100644 index 00000000..ce3f22e6 --- /dev/null +++ b/kppp/pppdargs.cpp @@ -0,0 +1,171 @@ +/* + * kPPP: A pppd front end for the KDE project + * + * $Id$ + * + * Copyright (C) 1997 Bernd Johannes Wuebben + * + * based on EzPPP: + * Copyright (C) 1997 Jay Painter + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the Free + * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include <qlayout.h> +#include <kbuttonbox.h> +#include <kwin.h> +#include <kapplication.h> +#include "pppdargs.h" +#include "pppdata.h" +#include <klocale.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qlistbox.h> +#include <qlabel.h> +#include <kstdguiitem.h> +#include <kpushbutton.h> +#include <kstdguiitem.h> + +PPPdArguments::PPPdArguments(QWidget *parent, const char *name) + : QDialog(parent, name, TRUE) +{ + setCaption(i18n("Customize pppd Arguments")); + KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); + QVBoxLayout *l = new QVBoxLayout(this, 10, 10); + QHBoxLayout *tl = new QHBoxLayout(10); + l->addLayout(tl); + QVBoxLayout *l1 = new QVBoxLayout(); + QVBoxLayout *l2 = new QVBoxLayout(); + tl->addLayout(l1, 1); + tl->addLayout(l2, 0); + + QHBoxLayout *l11 = new QHBoxLayout(10); + l1->addLayout(l11); + + argument_label = new QLabel(i18n("Arg&ument:"), this); + l11->addWidget(argument_label); + + argument = new QLineEdit(this); + argument_label->setBuddy(argument); + connect(argument, SIGNAL(returnPressed()), + SLOT(addbutton())); + l11->addWidget(argument); + connect(argument, SIGNAL(textChanged(const QString &)), + this, SLOT(textChanged(const QString &))); + + arguments = new QListBox(this); + arguments->setMinimumSize(1, fontMetrics().lineSpacing()*10); + connect(arguments, SIGNAL(highlighted(int)), + this, SLOT(itemSelected(int))); + l1->addWidget(arguments, 1); + + add = new QPushButton(i18n("&Add"), this); + connect(add, SIGNAL(clicked()), SLOT(addbutton())); + l2->addWidget(add); + l2->addStretch(1); + + remove = new QPushButton(i18n("&Remove"), this); + connect(remove, SIGNAL(clicked()), SLOT(removebutton())); + l2->addWidget(remove); + + defaults = new KPushButton(KStdGuiItem::defaults(), this); + connect(defaults, SIGNAL(clicked()), SLOT(defaultsbutton())); + l2->addWidget(defaults); + + l->addSpacing(5); + + KButtonBox *bbox = new KButtonBox(this); + bbox->addStretch(1); + closebtn = bbox->addButton(KStdGuiItem::ok()); + connect(closebtn, SIGNAL(clicked()), SLOT(closebutton())); + QPushButton *cancel = bbox->addButton(KStdGuiItem::cancel()); + connect(cancel, SIGNAL(clicked()), + this, SLOT(reject())); + bbox->layout(); + l->addWidget(bbox); + + setFixedSize(sizeHint()); + + //load info from gpppdata + init(); + + add->setEnabled(false); + remove->setEnabled(false); + argument->setFocus(); +} + + +void PPPdArguments::addbutton() { + if(!argument->text().isEmpty() && arguments->count() < MAX_PPPD_ARGUMENTS) { + arguments->insertItem(argument->text()); + argument->setText(""); + } +} + + +void PPPdArguments::removebutton() { + if(arguments->currentItem() >= 0) + arguments->removeItem(arguments->currentItem()); +} + + +void PPPdArguments::defaultsbutton() { + // all of this is a hack + // save current list + QStringList arglist(gpppdata.pppdArgument()); + + // get defaults + gpppdata.setpppdArgumentDefaults(); + init(); + + // restore old list + gpppdata.setpppdArgument(arglist); +} + + +void PPPdArguments::closebutton() { + QStringList arglist; + for(uint i=0; i < arguments->count(); i++) + arglist.append(arguments->text(i)); + gpppdata.setpppdArgument(arglist); + + done(0); +} + + +void PPPdArguments::init() { + while(arguments->count()) + arguments->removeItem(0); + + QStringList &arglist = gpppdata.pppdArgument(); + for ( QStringList::Iterator it = arglist.begin(); + it != arglist.end(); + ++it ) + arguments->insertItem(*it); +} + + +void PPPdArguments::textChanged(const QString &s) { + add->setEnabled(s.length() > 0); +} + + +void PPPdArguments::itemSelected(int idx) { + remove->setEnabled(idx != -1); +} + +#include "pppdargs.moc" |