File indexing completed on 2024-04-28 04:58:10

0001 /*
0002     This file is part of the KDE project
0003     SPDX-FileCopyrightText: 2010 David Faure <faure@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "htmlsettingsinterface.h"
0009 
0010 #include <KLazyLocalizedString>
0011 
0012 const char *HtmlSettingsInterface::javascriptAdviceToText(HtmlSettingsInterface::JavaScriptAdvice advice)
0013 {
0014     // NOTE: The use of kli18n below is intended to allow GUI code to call
0015     // i18n on the returned text without affecting use of untranslated text in
0016     // config files.
0017     switch (advice) {
0018     case JavaScriptAccept:
0019         return kli18n("Accept").untranslatedText();
0020     case JavaScriptReject:
0021         return kli18n("Reject").untranslatedText();
0022     default:
0023         break;
0024     }
0025 
0026     return nullptr;
0027 }
0028 
0029 HtmlSettingsInterface::JavaScriptAdvice HtmlSettingsInterface::textToJavascriptAdvice(const QString &text)
0030 {
0031     JavaScriptAdvice ret = JavaScriptDunno;
0032 
0033     if (!text.isEmpty()) {
0034         if (text.compare(QLatin1String("accept"), Qt::CaseInsensitive) == 0) {
0035             ret = JavaScriptAccept;
0036         } else if (text.compare(QLatin1String("reject"), Qt::CaseInsensitive) == 0) {
0037             ret = JavaScriptReject;
0038         }
0039     }
0040 
0041     return ret;
0042 }
0043 
0044 void HtmlSettingsInterface::splitDomainAdvice(const QString &adviceStr,
0045                                               QString &domain,
0046                                               HtmlSettingsInterface::JavaScriptAdvice &javaAdvice,
0047                                               HtmlSettingsInterface::JavaScriptAdvice &javaScriptAdvice)
0048 {
0049     const QString tmp(adviceStr);
0050     const int splitIndex = tmp.indexOf(QLatin1Char(':'));
0051 
0052     if (splitIndex == -1) {
0053         domain = adviceStr.toLower();
0054         javaAdvice = JavaScriptDunno;
0055         javaScriptAdvice = JavaScriptDunno;
0056     } else {
0057         domain = tmp.left(splitIndex).toLower();
0058         const QString adviceString = tmp.mid(splitIndex + 1, tmp.length());
0059         const int splitIndex2 = adviceString.indexOf(QLatin1Char(':'));
0060         if (splitIndex2 == -1) {
0061             // Java advice only
0062             javaAdvice = textToJavascriptAdvice(adviceString);
0063             javaScriptAdvice = JavaScriptDunno;
0064         } else {
0065             // Java and JavaScript advice
0066             javaAdvice = textToJavascriptAdvice(adviceString.left(splitIndex2));
0067             javaScriptAdvice = textToJavascriptAdvice(adviceString.mid(splitIndex2 + 1, adviceString.length()));
0068         }
0069     }
0070 }