File indexing completed on 2024-05-12 09:56:56
0001 /* 0002 SPDX-FileCopyrightText: 2020-2020 Gustavo Carneiro <gcarneiroa@hotmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "ColorFilter.h" 0008 0009 using namespace Konsole; 0010 0011 #include "ColorFilterHotSpot.h" 0012 0013 // This matches: 0014 // - an RGB-style string (e.g., #3e3, #feed) delimited by non-alphanumerics; 0015 // - or, a sequence of ASCII characters (e.g., foobar, Aquamarine, TOMATO). 0016 // See the docs for `QColor::setNamedColor`. 0017 const QRegularExpression 0018 ColorFilter::ColorRegExp(QStringLiteral("((?<![[:alnum:]])" 0019 "#[[:xdigit:]]{3,12}" 0020 "(?![[:alnum:]])|" 0021 "\\b[a-zA-Z]{3,20}\\b)")); 0022 0023 ColorFilter::ColorFilter() 0024 { 0025 setRegExp(ColorRegExp); 0026 } 0027 0028 QSharedPointer<HotSpot> ColorFilter::newHotSpot(int startLine, int startColumn, int endLine, int endColumn, const QStringList &capturedTexts) 0029 { 0030 QColor color(capturedTexts.at(1)); 0031 0032 // Make sure we've actually matched a color. 0033 if (!color.isValid()) { 0034 return nullptr; 0035 } 0036 0037 return QSharedPointer<HotSpot>(new ColorFilterHotSpot(startLine, startColumn, endLine, endColumn, capturedTexts, color)); 0038 }