X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e321a9cc3e8da6a63da8d247b2855e69119d0e9d..e57f6215659ee36877c7c36c9e3fcba0ba5d03a0:/src/kitemviews/kfileitemlisttostring.cpp diff --git a/src/kitemviews/kfileitemlisttostring.cpp b/src/kitemviews/kfileitemlisttostring.cpp index 8e8f880e9..e289c8778 100644 --- a/src/kitemviews/kfileitemlisttostring.cpp +++ b/src/kitemviews/kfileitemlisttostring.cpp @@ -1,6 +1,6 @@ /* This file is part of the KDE project - SPDX-FileCopyrightText: 2022 Felix Ernst + SPDX-FileCopyrightText: 2022 Felix Ernst SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL */ @@ -14,32 +14,40 @@ #include #include -QString fileItemListToString(KFileItemList items, int maximumTextWidth, QFontMetrics fontMetrics, ItemsState itemsState) +QString fileItemListToString(KFileItemList items, int maximumTextWidth, const QFontMetrics &fontMetrics, ItemsState itemsState) { QString text; switch (items.count()) { case 1: - text = i18nc("Textual representation of a file. %1 is the name of the file/folder.", - "\"%1\"", items.first().name()); + text = i18nc("Textual representation of a file. %1 is the name of the file/folder.", "\"%1\"", items.first().name().replace("&", "&&")); break; case 2: - text = i18nc("Textual representation of two files. %1 and %2 are names of files/folders.", - "\"%1\" and \"%2\"", items.first().name(), items.last().name()); + text = + i18nc("Textual representation of two files. %1 and %2 are names of files/folders.", "\"%1\" and \"%2\"", items.first().name().replace("&", "&&"), items.last().name().replace("&", "&&")); break; case 3: text = i18nc("Textual representation of three files. %1, %2 and %3 are names of files/folders.", - "\"%1\", \"%2\" and \"%3\"", - items.first().name(), items.at(1).name(), items.last().name()); + "\"%1\", \"%2\" and \"%3\"", + items.first().name().replace("&", "&&"), + items.at(1).name().replace("&", "&&"), + items.last().name().replace("&", "&&")); break; case 4: text = i18nc("Textual representation of four files. %1, %2, %3 and %4 are names of files/folders.", - "\"%1\", \"%2\", \"%3\" and \"%4\"", - items.first().name(), items.at(1).name(), items.at(2).name(), items.last().name()); + "\"%1\", \"%2\", \"%3\" and \"%4\"", + items.first().name().replace("&", "&&"), + items.at(1).name().replace("&", "&&"), + items.at(2).name().replace("&", "&&"), + items.last().name().replace("&", "&&")); break; case 5: text = i18nc("Textual representation of five files. %1, %2, %3, %4 and %5 are names of files/folders.", - "\"%1\", \"%2\", \"%3\", \"%4\" and \"%5\"", - items.first().name(), items.at(1).name(), items.at(2).name(), items.at(3).name(), items.last().name()); + "\"%1\", \"%2\", \"%3\", \"%4\" and \"%5\"", + items.first().name().replace("&", "&&"), + items.at(1).name().replace("&", "&&"), + items.at(2).name().replace("&", "&&"), + items.at(3).name().replace("&", "&&"), + items.last().name().replace("&", "&&")); break; default: text = QString(); @@ -54,14 +62,15 @@ QString fileItemListToString(KFileItemList items, int maximumTextWidth, QFontMet const KFileItemListProperties properties(items); if (itemsState == Selected) { if (properties.isFile()) { - text = i18ncp("Textual representation of selected files. %1 is the number of files.", - "One Selected File", "%1 Selected Files", items.count()); + text = i18ncp("Textual representation of selected files. %1 is the number of files.", "One Selected File", "%1 Selected Files", items.count()); } else if (properties.isDirectory()) { - text = i18ncp("Textual representation of selected folders. %1 is the number of folders.", - "One Selected Folder", "%1 Selected Folders", items.count()); + text = + i18ncp("Textual representation of selected folders. %1 is the number of folders.", "One Selected Folder", "%1 Selected Folders", items.count()); } else { text = i18ncp("Textual representation of selected fileitems. %1 is the number of files/folders.", - "One Selected Item", "%1 Selected Items", items.count()); + "One Selected Item", + "%1 Selected Items", + items.count()); } if (fontMetrics.horizontalAdvance(text) <= maximumTextWidth) { @@ -70,13 +79,10 @@ QString fileItemListToString(KFileItemList items, int maximumTextWidth, QFontMet } if (properties.isFile()) { - return i18ncp("Textual representation of files. %1 is the number of files.", - "One File", "%1 Files", items.count()); + return i18ncp("Textual representation of files. %1 is the number of files.", "One File", "%1 Files", items.count()); } else if (properties.isDirectory()) { - return i18ncp("Textual representation of folders. %1 is the number of folders.", - "One Folder", "%1 Folders", items.count()); + return i18ncp("Textual representation of folders. %1 is the number of folders.", "One Folder", "%1 Folders", items.count()); } else { - return i18ncp("Textual representation of fileitems. %1 is the number of files/folders.", - "One Item", "%1 Items", items.count()); + return i18ncp("Textual representation of fileitems. %1 is the number of files/folders.", "One Item", "%1 Items", items.count()); } }