00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#include "cupsdserverlogpage.h"
00021
00022
#include "qdirlineedit.h"
00023
#include <qlineedit.h>
00024
#include <klocale.h>
00025
#include <qlayout.h>
00026
#include <qlabel.h>
00027
#include <qcombobox.h>
00028
#include <qwhatsthis.h>
00029
00030
#include "cupsdconf.h"
00031
#include "cupsdoption.h"
00032
00033 CupsdServerLogPage::CupsdServerLogPage(
QWidget *parent,
const char *name)
00034 : CupsdPage(parent, name)
00035 {
00036 path_.append(i18n(
"Server"));
00037 path_.append(i18n(
"Log"));
00038 header_ = i18n(
"Server Logging Configuration");
00039
00040
for (
int i=0;i<5;i++)
00041 opt_[i] =
new CupsdOption(
this);
00042
00043 accesslog_ =
new QDirLineEdit(opt_[0]);
00044 accesslog_->setFileEdit(
true);
00045 errorlog_ =
new QDirLineEdit(opt_[1]);
00046 errorlog_->setFileEdit(
true);
00047 pagelog_ =
new QDirLineEdit(opt_[2]);
00048 pagelog_->setFileEdit(
true);
00049 loglevel_ =
new QComboBox(opt_[3]);
00050 loglevel_->insertItem(i18n(
"Complete Debug (everything)"));
00051 loglevel_->insertItem(i18n(
"Partial Debug (almost everything)"));
00052 loglevel_->insertItem(i18n(
"Info (normal)"));
00053 loglevel_->insertItem(i18n(
"Warning (errors and warnings)"));
00054 loglevel_->insertItem(i18n(
"Error (errors only)"));
00055 loglevel_->insertItem(i18n(
"None"));
00056 maxlogsize_ =
new QLineEdit(opt_[4]);
00057
00058
QLabel *l1 =
new QLabel(i18n(
"Access log file:"),
this);
00059 QLabel *l2 =
new QLabel(i18n(
"Error log file:"),
this);
00060 QLabel *l3 =
new QLabel(i18n(
"Page log file:"),
this);
00061 QLabel *l4 =
new QLabel(i18n(
"Log level:"),
this);
00062 QLabel *l5 =
new QLabel(i18n(
"Max log file size:"),
this);
00063
00064
QGridLayout *main_ =
new QGridLayout(
this, 8, 2, 10, 10);
00065 main_->addWidget(deflabel_, 0, 1, Qt::AlignRight|Qt::AlignVCenter);
00066 main_->addWidget(opt_[0], 1, 1);
00067 main_->addWidget(opt_[1], 2, 1);
00068 main_->addWidget(opt_[2], 3, 1);
00069 main_->addWidget(opt_[3], 5, 1);
00070 main_->addWidget(opt_[4], 6, 1);
00071 main_->addWidget(l1, 1, 0);
00072 main_->addWidget(l2, 2, 0);
00073 main_->addWidget(l3, 3, 0);
00074 main_->addWidget(l4, 5, 0);
00075 main_->addWidget(l5, 6, 0);
00076 main_->setRowStretch(7, 1);
00077 main_->addRowSpacing(4, 20);
00078
00079 }
00080
00081 CupsdServerLogPage::~CupsdServerLogPage()
00082 {
00083 }
00084
00085
bool CupsdServerLogPage::loadConfig(CupsdConf *conf,
QString&)
00086 {
00087 conf_ = conf;
00088
if (!conf->accesslog_.isNull())
00089 {
00090 opt_[0]->setDefault(
false);
00091 accesslog_->setText(conf->accesslog_);
00092 }
00093
if (!conf->errorlog_.isNull())
00094 {
00095 opt_[1]->setDefault(
false);
00096 errorlog_->setText(conf->errorlog_);
00097 }
00098
if (!conf->pagelog_.isNull())
00099 {
00100 opt_[2]->setDefault(
false);
00101 pagelog_->setText(conf->pagelog_);
00102 }
00103
if (conf->maxlogsize_ != -1)
00104 {
00105 opt_[4]->setDefault(
false);
00106 maxlogsize_->setText(QString::number(conf->maxlogsize_));
00107 }
00108
if (conf->loglevel_ != -1)
00109 {
00110 opt_[3]->setDefault(
false);
00111 loglevel_->setCurrentItem(conf->loglevel_);
00112 }
00113
return true;
00114 }
00115
00116
bool CupsdServerLogPage::saveConfig(CupsdConf *conf,
QString& msg)
00117 {
00118
if (!opt_[0]->isDefault() && !accesslog_->text().isNull()) conf->accesslog_ = accesslog_->text();
00119
if (!opt_[1]->isDefault() && !errorlog_->text().isNull()) conf->errorlog_ = errorlog_->text();
00120
if (!opt_[2]->isDefault() && !pagelog_->text().isNull()) conf->pagelog_ = pagelog_->text();
00121
if (!opt_[4]->isDefault() && !maxlogsize_->text().isNull())
00122 {
00123
bool ok;
00124 conf->maxlogsize_ = maxlogsize_->text().toInt(&ok);
00125
if (!ok)
00126 {
00127 msg = i18n(
"Max log size: wrong argument");
00128
return false;
00129 }
00130 }
00131
if (!opt_[3]->isDefault()) conf->loglevel_ = loglevel_->currentItem();
00132
return true;
00133 }
00134
00135
void CupsdServerLogPage::setDefaults()
00136 {
00137 accesslog_->setText(
"/var/log/cups/access_log");
00138 errorlog_->setText(
"/var/log/cups/error_log");
00139 pagelog_->setText(
"/var/log/cups/page_log");
00140 maxlogsize_->setText(
"1048576");
00141 loglevel_->setCurrentItem(1);
00142 }
00143
00144
void CupsdServerLogPage::setInfos(CupsdConf *conf)
00145 {
00146 QWhatsThis::add(accesslog_, conf->comments_.toolTip(ACCESSLOG_COMM));
00147 QWhatsThis::add(errorlog_, conf->comments_.toolTip(ERRORLOG_COMM));
00148 QWhatsThis::add(pagelog_, conf->comments_.toolTip(PAGELOG_COMM));
00149 QWhatsThis::add(maxlogsize_, conf->comments_.toolTip(MAXLOGSIZE_COMM));
00150 QWhatsThis::add(loglevel_, conf->comments_.toolTip(LOGLEVEL_COMM));
00151 }