00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "browsedialog.h"
00021 #include "cupsdconf.h"
00022
00023 #include <qlineedit.h>
00024 #include <qpushbutton.h>
00025 #include <qcombobox.h>
00026 #include <qlabel.h>
00027 #include <qlayout.h>
00028 #include <qwhatsthis.h>
00029 #include <qregexp.h>
00030
00031 #include <klocale.h>
00032
00033 BrowseDialog::BrowseDialog(QWidget *parent, const char *name)
00034 : KDialogBase(parent, name, true, QString::null, Ok|Cancel, Ok, true)
00035 {
00036 QWidget *dummy = new QWidget(this);
00037 setMainWidget(dummy);
00038 type_ = new QComboBox(dummy);
00039 from_ = new QLineEdit(dummy);
00040 to_ = new QLineEdit(dummy);
00041 type_->insertItem(i18n("Send"));
00042 type_->insertItem(i18n("Allow"));
00043 type_->insertItem(i18n("Deny"));
00044 type_->insertItem(i18n("Relay"));
00045 type_->insertItem(i18n("Poll"));
00046
00047 QLabel *l1 = new QLabel(i18n("Type:"), dummy);
00048 QLabel *l2 = new QLabel(i18n("From:"), dummy);
00049 QLabel *l3 = new QLabel(i18n("To:"), dummy);
00050
00051 QGridLayout *m1 = new QGridLayout(dummy, 3, 2, 0, 5);
00052 m1->addWidget(l1, 0, 0, Qt::AlignRight);
00053 m1->addWidget(l2, 1, 0, Qt::AlignRight);
00054 m1->addWidget(l3, 2, 0, Qt::AlignRight);
00055 m1->addWidget(type_, 0, 1);
00056 m1->addWidget(from_, 1, 1);
00057 m1->addWidget(to_, 2, 1);
00058
00059 connect(type_, SIGNAL(activated(int)), SLOT(slotTypeChanged(int)));
00060 slotTypeChanged(type_->currentItem());
00061
00062 setCaption(i18n("Browse Address"));
00063 resize(250, 100);
00064 }
00065
00066 QString BrowseDialog::addressString()
00067 {
00068 QString s;
00069 switch (type_->currentItem())
00070 {
00071 case 0:
00072 s.append("Send");
00073 break;
00074 case 1:
00075 s.append("Allow");
00076 break;
00077 case 2:
00078 s.append("Deny");
00079 break;
00080 case 3:
00081 s.append("Relay");
00082 break;
00083 case 4:
00084 s.append("Poll");
00085 break;
00086 }
00087 if (from_->isEnabled())
00088 s.append(" ").append(from_->text());
00089 if (to_->isEnabled())
00090 s.append(" ").append(to_->text());
00091 return s;
00092 }
00093
00094 void BrowseDialog::setInfos(CupsdConf *conf)
00095 {
00096 QWhatsThis::add(type_, conf->comments_.toolTip("browsetype"));
00097 }
00098
00099 QString BrowseDialog::newAddress(QWidget *parent, CupsdConf *conf)
00100 {
00101 BrowseDialog dlg(parent);
00102 dlg.setInfos(conf);
00103 if (dlg.exec())
00104 {
00105 return dlg.addressString();
00106 }
00107 return QString::null;
00108 }
00109
00110 QString BrowseDialog::editAddress(const QString& s, QWidget *parent, CupsdConf *conf)
00111 {
00112 BrowseDialog dlg(parent);
00113 dlg.setInfos(conf);
00114 QStringList l = QStringList::split(QRegExp("\\s"), s, false);
00115 if (l.count() > 1)
00116 {
00117 if (l[0] == "Send") dlg.type_->setCurrentItem(0);
00118 else if (l[0] == "Allow") dlg.type_->setCurrentItem(1);
00119 else if (l[0] == "Deny") dlg.type_->setCurrentItem(2);
00120 else if (l[0] == "Relay") dlg.type_->setCurrentItem(3);
00121 else if (l[0] == "Poll") dlg.type_->setCurrentItem(4);
00122 dlg.slotTypeChanged(dlg.type_->currentItem());
00123 int index(1);
00124 if (dlg.from_->isEnabled())
00125 dlg.from_->setText(l[index++]);
00126 if (dlg.to_->isEnabled())
00127 dlg.to_->setText(l[index]);
00128 }
00129 if (dlg.exec())
00130 {
00131 return dlg.addressString();
00132 }
00133 return QString::null;
00134 }
00135
00136 void BrowseDialog::slotTypeChanged(int index)
00137 {
00138 bool useFrom(true), useTo(true);
00139 switch (index)
00140 {
00141 case 0: useFrom = false; break;
00142 case 1:
00143 case 4:
00144 case 2: useTo = false; break;
00145 }
00146 from_->setEnabled(useFrom);
00147 to_->setEnabled(useTo);
00148 }
00149
00150 #include "browsedialog.moc"