File indexing completed on 2024-04-28 16:54:26
0001 /* 0002 SPDX-FileCopyrightText: 2022 Popov Eugene <popov895@ukr.net> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "utils.h" 0008 0009 QString Utils::simplifiedText(const QString &text, int maxLength) 0010 { 0011 if (text.length() <= maxLength) { 0012 return text.simplified(); 0013 } 0014 0015 QString simplifiedText; 0016 simplifiedText.reserve(maxLength); 0017 0018 bool wasSpaceBefore = false; 0019 for (int i = 0, n = text.length(); i < n; ++i) { 0020 if (simplifiedText.length() == maxLength) { 0021 break; 0022 } 0023 const QChar c = text.at(i); 0024 if (c.isSpace()) { 0025 if (wasSpaceBefore || simplifiedText.isEmpty()) { 0026 continue; 0027 } 0028 simplifiedText.append(QLatin1Char(' ')); 0029 wasSpaceBefore = true; 0030 } else { 0031 simplifiedText.append(c); 0032 wasSpaceBefore = false; 0033 } 0034 } 0035 0036 if (simplifiedText.endsWith(QLatin1Char(' '))) { 0037 simplifiedText.chop(1); 0038 } 0039 0040 return simplifiedText; 0041 }