moved defines for version to .h, as it is super hard to script the replacement of the defines in the cpp file

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6930 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2013-12-08 13:50:10 +00:00
parent b2db781f65
commit 6380f6121c
3 changed files with 59 additions and 11 deletions

View File

@ -333,6 +333,37 @@ void RsHtml::embedHtml(QTextDocument *textDocument, QDomDocument& doc, QDomEleme
} }
} }
/**
* Save space and tab out of bracket that XML loose.
*
* @param[in] text The text to save space.
* @return Text with space saved.
*/
static QString saveSpace(const QString text)
{
QString savedSpaceText=text;
bool outBrackets=false, echapChar=false;
for(int i=0;i<savedSpaceText.length();i++){
QChar cursChar=savedSpaceText.at(i);
if(cursChar==QLatin1Char('>')) {
if(!echapChar && i>0) outBrackets=true;
} else if(cursChar==QLatin1Char('\t')) {
if(outBrackets) savedSpaceText.replace(i, 1, "&nbsp;&nbsp;");
} else if(cursChar==QLatin1Char(' ')) {
if(outBrackets) savedSpaceText.replace(i, 1, "&nbsp;");
} else if(cursChar==QLatin1Char('<')) {
if(!echapChar) outBrackets=false;
}
echapChar=(cursChar==QLatin1Char('\\'));
}
return savedSpaceText;
}
QString RsHtml::formatText(QTextDocument *textDocument, const QString &text, ulong flag, const QColor &backgroundColor, qreal desiredContrast) QString RsHtml::formatText(QTextDocument *textDocument, const QString &text, ulong flag, const QColor &backgroundColor, qreal desiredContrast)
{ {
if (flag == 0 || text.isEmpty()) { if (flag == 0 || text.isEmpty()) {
@ -340,12 +371,24 @@ QString RsHtml::formatText(QTextDocument *textDocument, const QString &text, ulo
return text; return text;
} }
QString formattedText=text;
//remove all prepend char that make doc.setContent() fail
formattedText.remove(0,text.indexOf("<"));
// Save Space and Tab because doc loose it.
formattedText=saveSpace(formattedText);
QString errorMsg; int errorLine; int errorColumn;
QDomDocument doc; QDomDocument doc;
if (doc.setContent(text) == false) { if (doc.setContent(formattedText, &errorMsg, &errorLine, &errorColumn) == false) {
// convert text with QTextBrowser // convert text with QTextBrowser
QTextBrowser textBrowser; QTextBrowser textBrowser;
textBrowser.setText(text); textBrowser.setText(text);
doc.setContent(textBrowser.toHtml()); formattedText=textBrowser.toHtml();
formattedText.remove(0,formattedText.indexOf("<"));
formattedText=saveSpace(formattedText);
doc.setContent(formattedText, &errorMsg, &errorLine, &errorColumn);
} }
QDomElement body = doc.documentElement(); QDomElement body = doc.documentElement();
@ -357,7 +400,7 @@ QString RsHtml::formatText(QTextDocument *textDocument, const QString &text, ulo
embedHtml(textDocument, doc, body, defEmbedAhref, flag); embedHtml(textDocument, doc, body, defEmbedAhref, flag);
} }
QString formattedText = doc.toString(-1); // -1 removes any annoying carriage return misinterpreted by QTextEdit formattedText = doc.toString(-1); // -1 removes any annoying carriage return misinterpreted by QTextEdit
if (flag & RSHTML_OPTIMIZEHTML_MASK) { if (flag & RSHTML_OPTIMIZEHTML_MASK) {
optimizeHtml(formattedText, flag & RSHTML_OPTIMIZEHTML_MASK, backgroundColor, desiredContrast); optimizeHtml(formattedText, flag & RSHTML_OPTIMIZEHTML_MASK, backgroundColor, desiredContrast);
@ -396,12 +439,13 @@ static void findElements(QDomDocument& doc, QDomElement& currentElement, const Q
bool RsHtml::findAnchors(const QString &text, QStringList& urls) bool RsHtml::findAnchors(const QString &text, QStringList& urls)
{ {
QString errorMsg; int errorLine; int errorColumn;
QDomDocument doc; QDomDocument doc;
if (doc.setContent(text) == false) { if (doc.setContent(text, &errorMsg, &errorLine, &errorColumn) == false) {
// convert text with QTextBrowser // convert text with QTextBrowser
QTextBrowser textBrowser; QTextBrowser textBrowser;
textBrowser.setText(text); textBrowser.setText(text);
doc.setContent(textBrowser.toHtml()); doc.setContent(textBrowser.toHtml(), &errorMsg, &errorLine, &errorColumn);
} }
QDomElement body = doc.documentElement(); QDomElement body = doc.documentElement();
@ -708,9 +752,14 @@ void RsHtml::optimizeHtml(QString &text, unsigned int flag, const QColor &backgr
// remove doctype // remove doctype
text.remove(QRegExp("<!DOCTYPE[^>]*>")); text.remove(QRegExp("<!DOCTYPE[^>]*>"));
//remove all prepend char that make doc.setContent() fail
text.remove(0,text.indexOf("<"));
// Save Space and Tab because doc loose it.
text=saveSpace(text);
QString errorMsg; int errorLine; int errorColumn;
QDomDocument doc; QDomDocument doc;
if (doc.setContent(text) == false) { if (doc.setContent(text, &errorMsg, &errorLine, &errorColumn) == false) {
return; return;
} }

View File

@ -21,10 +21,6 @@
#include "rsguiversion.h" #include "rsguiversion.h"
#define GUI_VERSION "0.5.5b"
#define GUI_REVISION "Revision: 6877"
QString retroshareVersion() { QString retroshareVersion() {
return QString(GUI_VERSION); return QString(GUI_VERSION);
} }

View File

@ -22,7 +22,10 @@
#include <QString> #include <QString>
QString retroshareVersion(); QString retroshareVersion();
QString retroshareRevision(); QString retroshareRevision();
#define GUI_VERSION "0.5.5b"
#define GUI_REVISION "Revision: 6877"