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 }