cupsdcomment.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "cupsdcomment.h"
00021
00022 #include <qfile.h>
00023 #include <qregexp.h>
00024 #include <kstandarddirs.h>
00025
00026 QString Comment::comment()
00027 {
00028 QString str = comment_;
00029 str.replace(QRegExp("<[^>]*>"), "");
00030 str += ("#\n" + example_);
00031 return str;
00032 }
00033
00034 QString Comment::toolTip()
00035 {
00036 QString str = comment_;
00037 str.replace(QRegExp("^#[\\s]*"), "").replace(QRegExp("\n#"), "\n");
00038 return str;
00039 }
00040
00041 bool Comment::load(QFile *f)
00042 {
00043 comment_ = "";
00044 example_ = "";
00045 QString line, *current = &comment_;
00046 while (!f->atEnd())
00047 {
00048 f->readLine(line, 1024);
00049 if (line.left(2) == "$$")
00050 {
00051 current = &example_;
00052 }
00053 else if (line.left(2) == "@@")
00054 {
00055 return true;
00056 }
00057 else if (line.stripWhiteSpace().isEmpty())
00058 {
00059 ;
00060 }
00061 else
00062 {
00063 if (line[0] != '#') break;
00064 else
00065 {
00066 current->append(line);
00067 }
00068 }
00069 }
00070 return false;
00071 }
00072
00073
00074
00075 QString CupsdComment::operator[] (unsigned int index)
00076 {
00077 return comment(index);
00078 }
00079
00080 QString CupsdComment::comment(uint index)
00081 {
00082 if (comments_.count() != 0 || loadComments())
00083 return comments_.at(index)->comment();
00084 return QString::null;
00085 }
00086
00087 QString CupsdComment::toolTip(uint index)
00088 {
00089 if (comments_.count() != 0 || loadComments())
00090 return comments_.at(index)->toolTip();
00091 return QString::null;
00092 }
00093
00094 bool CupsdComment::loadComments()
00095 {
00096 comments_.setAutoDelete(true);
00097 comments_.clear();
00098 QFile f(locate("data", "kdeprint/cupsd.conf.template"));
00099 int index(0);
00100 if (f.exists() && f.open(IO_ReadOnly))
00101 {
00102 Comment *comm;
00103 while (index <= LAST_COMM)
00104 {
00105 comm = new Comment();
00106 if (!comm->load(&f))
00107 break;
00108 else
00109 {
00110 index++;
00111 comments_.append(comm);
00112 }
00113 }
00114 }
00115 if (index != LAST_COMM+1)
00116 {
00117 comments_.clear();
00118 qWarning("Problem while loading comment file %s",f.name().latin1());
00119 return false;
00120 }
00121 return true;
00122 }
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
This file is part of the documentation for kdeprint Library Version 3.2.3.