Changeset 561 for trunk/tools/assistant/lib/qhelp_global.h
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/tools/assistant/lib/qhelp_global.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the Qt Assistant of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 46 46 #include <QtCore/QString> 47 47 #include <QtCore/QObject> 48 #include <QtCore/QRegExp>49 #include <QtCore/QMutexLocker>50 #include <QtGui/QTextDocument>51 48 52 49 QT_BEGIN_HEADER … … 66 63 class QHelpGlobal { 67 64 public: 68 static QString uniquifyConnectionName(const QString &name, void *pointer) 69 { 70 static int counter = 0; 71 static QMutex mutex; 65 static QString uniquifyConnectionName(const QString &name, void *pointer); 66 static QString documentTitle(const QString &content); 67 static QString codecFromData(const QByteArray &data); 72 68 73 QMutexLocker locker(&mutex); 74 if (++counter > 1000) 75 counter = 0; 76 77 return QString::fromLatin1("%1-%2-%3") 78 .arg(name).arg(long(pointer)).arg(counter); 79 }; 80 81 static QString documentTitle(const QString &content) 82 { 83 QString title = QObject::tr("Untitled"); 84 if (!content.isEmpty()) { 85 int start = content.indexOf(QLatin1String("<title>"), 0, Qt::CaseInsensitive) + 7; 86 int end = content.indexOf(QLatin1String("</title>"), 0, Qt::CaseInsensitive); 87 if ((end - start) > 0) { 88 title = content.mid(start, end - start); 89 if (Qt::mightBeRichText(title) || title.contains(QLatin1Char('&'))) { 90 QTextDocument doc; 91 doc.setHtml(title); 92 title = doc.toPlainText(); 93 } 94 } 95 } 96 return title; 97 }; 98 99 static QString charsetFromData(const QByteArray &data) 100 { 101 QString content = QString::fromUtf8(data.constData(), data.size()); 102 int start = 103 content.indexOf(QLatin1String("<meta"), 0, Qt::CaseInsensitive); 104 if (start > 0) { 105 int end; 106 QRegExp r(QLatin1String("charset=([^\"\\s]+)")); 107 while (start != -1) { 108 end = content.indexOf(QLatin1Char('>'), start) + 1; 109 const QString &meta = content.mid(start, end - start).toLower(); 110 if (r.indexIn(meta) != -1) 111 return r.cap(1); 112 start = content.indexOf(QLatin1String("<meta"), end, 113 Qt::CaseInsensitive); 114 } 115 } 116 return QLatin1String("utf-8"); 117 } 69 private: 70 static QString codecFromHtmlData(const QByteArray &data); 71 static QString codecFromXmlData(const QByteArray &data); 118 72 }; 119 73
Note:
See TracChangeset
for help on using the changeset viewer.