/**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file contains some parts of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 or version 3 as published by the Free ** Software Foundation and appearing in the file LICENSE.LGPLv21 and ** LICENSE.LGPLv3 included in the packaging of this file. Please review the ** following information to ensure the GNU Lesser General Public License ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** As a special exception, The Qt Company gives you certain additional ** rights. These rights are described in The Qt Company LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ // For QTextItemInt declaraion #include #ifndef TDESKTOP_DISABLE_GTK_INTEGRATION /* TODO: find a dynamic library with these symbols. */ /* Debian maintainer: this function is taken from qfiledialog.cpp */ /* Makes a list of filters from ;;-separated text. Used by the mac and windows implementations */ QStringList qt_make_filter_list(const QString &filter) { QString f(filter); if (f.isEmpty()) return QStringList(); QString sep(QLatin1String(";;")); int i = f.indexOf(sep, 0); if (i == -1) { if (f.indexOf(QLatin1Char('\n'), 0) != -1) { sep = QLatin1Char('\n'); i = f.indexOf(sep, 0); } } return f.split(sep); } #endif // !TDESKTOP_DISABLE_GTK_INTEGRATION /* Debian maintainer: this constructor is taken from qtextengine.cpp for TextPainter::drawLine */ QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, const QChar *chars_, int numChars, QFontEngine *fe, const QTextCharFormat &format) : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), charFormat(format), num_chars(numChars), chars(chars_), logClusters(0), f(font), glyphs(g), fontEngine(fe) { } /* Debian maintainer: this method is also taken from qtextengine.cpp */ // Fix up flags and underlineStyle with given info void QTextItemInt::initWithScriptItem(const QScriptItem &si) { // explicitly initialize flags so that initFontAttributes can be called // multiple times on the same TextItem flags = 0; if (si.analysis.bidiLevel %2) flags |= QTextItem::RightToLeft; ascent = si.ascent; descent = si.descent; if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) { underlineStyle = charFormat.underlineStyle(); } else if (charFormat.boolProperty(QTextFormat::FontUnderline) || f->d->underline) { underlineStyle = QTextCharFormat::SingleUnderline; } // compat if (underlineStyle == QTextCharFormat::SingleUnderline) flags |= QTextItem::Underline; if (f->d->overline || charFormat.fontOverline()) flags |= QTextItem::Overline; if (f->d->strikeOut || charFormat.fontStrikeOut()) flags |= QTextItem::StrikeOut; }