00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "cupsdbrowsingconnpage.h"
00021
00022 #include <klocale.h>
00023 #include <kseparator.h>
00024 #include <qlayout.h>
00025 #include <qlineedit.h>
00026 #include <qlabel.h>
00027 #include <qwhatsthis.h>
00028 #include <qcombobox.h>
00029
00030 #include "cupsdconf.h"
00031 #include "cupsdoption.h"
00032 #include "cupslist.h"
00033
00034 CupsdBrowsingConnPage::CupsdBrowsingConnPage(QWidget *parent, const char *name)
00035 : CupsdPage(parent, name)
00036 {
00037 path_.append(i18n("Browsing"));
00038 path_.append(i18n("Connection"));
00039 header_ = i18n("Browsing Connection Configuration");
00040
00041 for (int i=0;i<4;i++)
00042 opt_[i] = new CupsdOption(this);
00043
00044 browseaddress_ = new CupsListBox(opt_[0]);
00045 browseport_ = new QLineEdit(opt_[1]);
00046 browsepoll_ = new CupsListBox(opt_[2]);
00047 browseprotocols_ = new QComboBox(opt_[3]);
00048 browseprotocols_->insertItem(i18n("All"));
00049 browseprotocols_->insertItem(i18n("CUPS"));
00050 browseprotocols_->insertItem(i18n("SLPv2"));
00051
00052 KSeparator* sep = new KSeparator( KSeparator::HLine, this);
00053 KSeparator* sep1 = new KSeparator( KSeparator::HLine, this);
00054
00055 QLabel *l1 = new QLabel(i18n("Broadcast addresses:"), this);
00056 QLabel *l2 = new QLabel(i18n("Broadcast port:"), this);
00057 QLabel *l3 = new QLabel(i18n("Poll addresses:"), this);
00058 QLabel *l4 = new QLabel(i18n("Browse protocol:"), this);
00059
00060 QGridLayout *main_ = new QGridLayout(this, 10, 2, 10, 10);
00061 main_->addWidget(deflabel_, 0, 1, Qt::AlignRight|Qt::AlignVCenter);
00062 main_->addWidget(opt_[3], 1, 1);
00063 main_->addWidget(l4, 1, 0);
00064 main_->addMultiCellWidget(sep1, 2, 2, 0, 1);
00065 main_->addMultiCellWidget(opt_[0], 3, 4, 1, 1);
00066 main_->addMultiCellWidget(opt_[2], 7, 8, 1, 1);
00067 main_->addWidget(opt_[1], 5, 1);
00068 main_->addWidget(sep, 6, 1);
00069 main_->addRowSpacing(6, 10);
00070 main_->addWidget(l1, 3, 0, Qt::AlignLeft|Qt::AlignTop);
00071 main_->addWidget(l2, 5, 0);
00072 main_->addWidget(l3, 7, 0, Qt::AlignLeft|Qt::AlignTop);
00073 main_->setRowStretch(9, 1);
00074 }
00075
00076 CupsdBrowsingConnPage::~CupsdBrowsingConnPage()
00077 {
00078 }
00079
00080 bool CupsdBrowsingConnPage::loadConfig(CupsdConf *conf, QString&)
00081 {
00082 conf_ = conf;
00083 QStringList::Iterator it;
00084 if (conf->browseaddress_.count() > 0)
00085 {
00086 opt_[0]->setDefault(false);
00087 for (it=conf->browseaddress_.begin();it!=conf->browseaddress_.end();++it)
00088 browseaddress_->insertItem(*it);
00089 }
00090 if (conf->browseport_ != -1)
00091 {
00092 opt_[1]->setDefault(false);
00093 browseport_->setText(QString::number(conf->browseport_));
00094 }
00095 if (conf->browsepoll_.count() > 0)
00096 {
00097 opt_[2]->setDefault(false);
00098 for (it=conf->browsepoll_.begin();it!=conf->browsepoll_.end();++it)
00099 browsepoll_->insertItem(*it);
00100 }
00101 if (conf->browseprotocols_ != -1)
00102 {
00103 opt_[3]->setDefault(false);
00104 browseprotocols_->setCurrentItem(conf->browseprotocols_);
00105 }
00106 return true;
00107 }
00108
00109 bool CupsdBrowsingConnPage::saveConfig(CupsdConf *conf, QString& msg)
00110 {
00111 if (!opt_[0]->isDefault() && browseaddress_->count() > 0)
00112 {
00113 conf->browseaddress_.clear();
00114 for (int i=0;i<browseaddress_->count();i++)
00115 conf->browseaddress_.append(browseaddress_->text(i));
00116 }
00117 if (!opt_[1]->isDefault() && !browseport_->text().isNull())
00118 {
00119 bool ok;
00120 int val = browseport_->text().toInt(&ok);
00121 if (ok) conf->browseport_ = val;
00122 else
00123 {
00124 msg = i18n("%1 wrong argument").arg(i18n("Browse port:"));
00125 return false;
00126 }
00127 }
00128 if (!opt_[2]->isDefault() && browsepoll_->count() > 0)
00129 {
00130 conf->browsepoll_.clear();
00131 for (int i=0;i<browsepoll_->count();i++)
00132 conf->browsepoll_.append(browsepoll_->text(i));
00133 }
00134 if (!opt_[3]->isDefault()) conf->browseprotocols_ = browseprotocols_->currentItem();
00135 return true;
00136 }
00137
00138 void CupsdBrowsingConnPage::setDefaults()
00139 {
00140 browseport_->setText(QString::number(631));
00141 browseprotocols_->setCurrentItem(1);
00142 }
00143
00144 void CupsdBrowsingConnPage::setInfos(CupsdConf *conf)
00145 {
00146 QWhatsThis::add(browseport_, conf->comments_.toolTip(BROWSEPORT_COMM));
00147 QWhatsThis::add(browseaddress_, conf->comments_.toolTip(BROWSEADDRESS_COMM));
00148 QWhatsThis::add(browsepoll_, conf->comments_.toolTip(BROWSEPOLL_COMM));
00149 QWhatsThis::add(browseprotocols_, conf->comments_.toolTip(BROWSEPROTOCOLS_COMM));
00150 }