kdeprint Library API Documentation

cupsdserverpage.cpp

00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be> 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Library General Public 00007 * License version 2 as published by the Free Software Foundation. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public License 00015 * along with this library; see the file COPYING.LIB. If not, write to 00016 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 * Boston, MA 02111-1307, USA. 00018 **/ 00019 00020 #include "cupsdserverpage.h" 00021 #include "cupsdconf.h" 00022 00023 #include <qlineedit.h> 00024 #include <qlabel.h> 00025 #include <qcheckbox.h> 00026 #include <qcombobox.h> 00027 #include <qlayout.h> 00028 #include <qwhatsthis.h> 00029 00030 #include <klocale.h> 00031 00032 int findComboItem(QComboBox *cb, const QString& str) 00033 { 00034 for (int i=0; i<cb->count(); i++) 00035 if (cb->text(i) == str) 00036 return i; 00037 return (-1); 00038 } 00039 00040 CupsdServerPage::CupsdServerPage(QWidget *parent, const char *name) 00041 : CupsdPage(parent, name) 00042 { 00043 setPageLabel(i18n("Server")); 00044 setHeader(i18n("Server Settings")); 00045 setPixmap("gear"); 00046 00047 servername_ = new QLineEdit(this); 00048 serveradmin_ = new QLineEdit(this); 00049 otherclassname_ = new QLineEdit(this); 00050 language_ = new QLineEdit(this); 00051 printcap_ = new QLineEdit(this); 00052 classification_ = new QComboBox(this); 00053 charset_ = new QComboBox(this); 00054 printcapformat_ = new QComboBox(this); 00055 classoverride_ = new QCheckBox(i18n("Allow overrides"), this); 00056 00057 classification_->insertItem(i18n("None")); 00058 classification_->insertItem(i18n("Classified")); 00059 classification_->insertItem(i18n("Confidential")); 00060 classification_->insertItem(i18n("Secret")); 00061 classification_->insertItem(i18n("Top Secret")); 00062 classification_->insertItem(i18n("Unclassified")); 00063 classification_->insertItem(i18n("Other")); 00064 00065 charset_->insertItem("UTF-8"); 00066 charset_->insertItem("ISO-8859-1"); 00067 charset_->insertItem("ISO-8859-2"); 00068 charset_->insertItem("ISO-8859-3"); 00069 charset_->insertItem("ISO-8859-4"); 00070 charset_->insertItem("ISO-8859-5"); 00071 charset_->insertItem("ISO-8859-6"); 00072 charset_->insertItem("ISO-8859-7"); 00073 charset_->insertItem("ISO-8859-8"); 00074 charset_->insertItem("ISO-8859-9"); 00075 charset_->insertItem("ISO-8859-10"); 00076 charset_->insertItem("ISO-8859-13"); 00077 charset_->insertItem("ISO-8859-14"); 00078 charset_->insertItem("ISO-8859-15"); 00079 00080 printcapformat_->insertItem("BSD"); 00081 printcapformat_->insertItem("SOLARIS"); 00082 00083 QLabel *l1 = new QLabel(i18n("Server name:"), this); 00084 QLabel *l2 = new QLabel(i18n("Server administrator:"), this); 00085 QLabel *l3 = new QLabel(i18n("Classification:"), this); 00086 QLabel *l4 = new QLabel(i18n("Default character set:"), this); 00087 QLabel *l5 = new QLabel(i18n("Default language:"), this); 00088 QLabel *l6 = new QLabel(i18n("Printcap file:"), this); 00089 QLabel *l7 = new QLabel(i18n("Printcap format:"), this); 00090 00091 connect(classification_, SIGNAL(activated(int)), SLOT(classChanged(int))); 00092 classification_->setCurrentItem(0); 00093 charset_->setCurrentItem(0); 00094 printcapformat_->setCurrentItem(0); 00095 classChanged(0); 00096 00097 QGridLayout *m1 = new QGridLayout(this, 9, 2, 10, 7); 00098 m1->setRowStretch(8, 1); 00099 m1->setColStretch(1, 1); 00100 m1->addWidget(l1, 0, 0, Qt::AlignRight); 00101 m1->addWidget(l2, 1, 0, Qt::AlignRight); 00102 m1->addWidget(l3, 2, 0, Qt::AlignRight); 00103 m1->addWidget(l4, 4, 0, Qt::AlignRight); 00104 m1->addWidget(l5, 5, 0, Qt::AlignRight); 00105 m1->addWidget(l6, 6, 0, Qt::AlignRight); 00106 m1->addWidget(l7, 7, 0, Qt::AlignRight); 00107 m1->addWidget(servername_, 0, 1); 00108 m1->addWidget(serveradmin_, 1, 1); 00109 m1->addWidget(charset_, 4, 1); 00110 m1->addWidget(language_, 5, 1); 00111 m1->addWidget(printcap_, 6, 1); 00112 m1->addWidget(printcapformat_, 7, 1); 00113 QHBoxLayout *m2 = new QHBoxLayout(0, 0, 5); 00114 m1->addLayout(m2, 2, 1); 00115 m2->addWidget(classification_); 00116 m2->addWidget(otherclassname_); 00117 QWidget *w = new QWidget(this); 00118 w->setFixedWidth(20); 00119 QHBoxLayout *m3 = new QHBoxLayout(0, 0, 0); 00120 m1->addLayout(m3, 3, 1); 00121 m3->addWidget(w); 00122 m3->addWidget(classoverride_); 00123 } 00124 00125 bool CupsdServerPage::loadConfig(CupsdConf *conf, QString&) 00126 { 00127 conf_ = conf; 00128 servername_->setText(conf_->servername_); 00129 serveradmin_->setText(conf_->serveradmin_); 00130 classification_->setCurrentItem(conf_->classification_); 00131 classChanged(conf_->classification_); 00132 if (conf->classification_ != CLASS_NONE) 00133 classoverride_->setChecked(conf_->classoverride_); 00134 if (conf->classification_ == CLASS_OTHER) 00135 otherclassname_->setText(conf_->otherclassname_); 00136 int index = findComboItem(charset_, conf_->charset_.upper()); 00137 if (index != -1) 00138 charset_->setCurrentItem(index); 00139 language_->setText(conf_->language_); 00140 printcap_->setText(conf_->printcap_); 00141 printcapformat_->setCurrentItem(conf_->printcapformat_); 00142 00143 return true; 00144 } 00145 00146 bool CupsdServerPage::saveConfig(CupsdConf *conf, QString&) 00147 { 00148 conf->servername_ = servername_->text(); 00149 conf->serveradmin_ = serveradmin_->text(); 00150 conf->classification_ = classification_->currentItem(); 00151 if (conf->classification_ != CLASS_NONE) 00152 conf->classoverride_ = classoverride_->isChecked(); 00153 if (conf->classification_ == CLASS_OTHER) 00154 conf->otherclassname_ = otherclassname_->text(); 00155 conf->charset_ = charset_->currentText(); 00156 conf->language_ = language_->text(); 00157 conf->printcap_ = printcap_->text(); 00158 conf->printcapformat_ = printcapformat_->currentItem(); 00159 00160 return true; 00161 } 00162 00163 void CupsdServerPage::setInfos(CupsdConf *conf) 00164 { 00165 QWhatsThis::add(servername_, conf->comments_.toolTip("servername")); 00166 QWhatsThis::add(serveradmin_, conf->comments_.toolTip("serveradmin")); 00167 QWhatsThis::add(classification_, conf->comments_.toolTip("classification")); 00168 QWhatsThis::add(classoverride_, conf->comments_.toolTip("classifyoverride")); 00169 QWhatsThis::add(charset_, conf->comments_.toolTip("defaultcharset")); 00170 QWhatsThis::add(language_, conf->comments_.toolTip("defaultlanguage")); 00171 QWhatsThis::add(printcap_, conf->comments_.toolTip("printcap")); 00172 QWhatsThis::add(printcapformat_, conf->comments_.toolTip("printcapformat")); 00173 } 00174 00175 void CupsdServerPage::classChanged(int index) 00176 { 00177 classoverride_->setEnabled(index != 0); 00178 otherclassname_->setEnabled(index == CLASS_OTHER); 00179 } 00180 00181 #include "cupsdserverpage.moc"
KDE Logo
This file is part of the documentation for kdeprint Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 12 15:09:31 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003