equal
deleted
inserted
replaced
41 |
41 |
42 #include "lupdate.h" |
42 #include "lupdate.h" |
43 |
43 |
44 #include <translator.h> |
44 #include <translator.h> |
45 |
45 |
|
46 #include <QtCore/QCoreApplication> |
46 #include <QtCore/QDebug> |
47 #include <QtCore/QDebug> |
47 #include <QtCore/QFile> |
48 #include <QtCore/QFile> |
48 #include <QtCore/QString> |
49 #include <QtCore/QString> |
49 |
50 |
50 #include <QtXml/QXmlAttributes> |
51 #include <QtXml/QXmlAttributes> |
52 #include <QtXml/QXmlLocator> |
53 #include <QtXml/QXmlLocator> |
53 #include <QtXml/QXmlParseException> |
54 #include <QtXml/QXmlParseException> |
54 |
55 |
55 |
56 |
56 QT_BEGIN_NAMESPACE |
57 QT_BEGIN_NAMESPACE |
|
58 |
|
59 class LU { |
|
60 Q_DECLARE_TR_FUNCTIONS(LUpdate) |
|
61 }; |
57 |
62 |
58 class UiReader : public QXmlDefaultHandler |
63 class UiReader : public QXmlDefaultHandler |
59 { |
64 { |
60 public: |
65 public: |
61 UiReader(Translator &translator, ConversionData &cd) |
66 UiReader(Translator &translator, ConversionData &cd) |
150 return true; |
155 return true; |
151 } |
156 } |
152 |
157 |
153 bool UiReader::fatalError(const QXmlParseException &exception) |
158 bool UiReader::fatalError(const QXmlParseException &exception) |
154 { |
159 { |
155 QString msg; |
160 QString msg = LU::tr("XML error: Parse error at line %1, column %2 (%3).") |
156 msg.sprintf("XML error: Parse error at line %d, column %d (%s).", |
161 .arg(exception.lineNumber()).arg(exception.columnNumber()) |
157 exception.lineNumber(), exception.columnNumber(), |
162 .arg(exception.message()); |
158 exception.message().toLatin1().data()); |
163 m_cd.appendError(msg); |
159 m_cd.appendError(msg); |
|
160 return false; |
164 return false; |
161 } |
165 } |
162 |
166 |
163 void UiReader::flush() |
167 void UiReader::flush() |
164 { |
168 { |
179 bool loadUI(Translator &translator, const QString &filename, ConversionData &cd) |
183 bool loadUI(Translator &translator, const QString &filename, ConversionData &cd) |
180 { |
184 { |
181 cd.m_sourceFileName = filename; |
185 cd.m_sourceFileName = filename; |
182 QFile file(filename); |
186 QFile file(filename); |
183 if (!file.open(QIODevice::ReadOnly)) { |
187 if (!file.open(QIODevice::ReadOnly)) { |
184 cd.appendError(QString::fromLatin1("Cannot open %1: %2") |
188 cd.appendError(LU::tr("Cannot open %1: %2").arg(filename, file.errorString())); |
185 .arg(filename, file.errorString())); |
|
186 return false; |
189 return false; |
187 } |
190 } |
188 QXmlInputSource in(&file); |
191 QXmlInputSource in(&file); |
189 QXmlSimpleReader reader; |
192 QXmlSimpleReader reader; |
190 reader.setFeature(QLatin1String("http://xml.org/sax/features/namespaces"), false); |
193 reader.setFeature(QLatin1String("http://xml.org/sax/features/namespaces"), false); |
194 UiReader handler(translator, cd); |
197 UiReader handler(translator, cd); |
195 reader.setContentHandler(&handler); |
198 reader.setContentHandler(&handler); |
196 reader.setErrorHandler(&handler); |
199 reader.setErrorHandler(&handler); |
197 bool result = reader.parse(in); |
200 bool result = reader.parse(in); |
198 if (!result) |
201 if (!result) |
199 cd.appendError(QLatin1String("Parse error in UI file")); |
202 cd.appendError(LU::tr("Parse error in UI file")); |
200 reader.setContentHandler(0); |
203 reader.setContentHandler(0); |
201 reader.setErrorHandler(0); |
204 reader.setErrorHandler(0); |
202 return result; |
205 return result; |
203 } |
206 } |
204 |
207 |