File indexing completed on 2024-04-28 15:29:20

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 using namespace KParts;
0013 
0014 const char *HtmlSettingsInterface::javascriptAdviceToText(HtmlSettingsInterface::JavaScriptAdvice advice)
0015 {
0016     // NOTE: The use of kli18n below is intended to allow GUI code to call
0017     // i18n on the returned text without affecting use of untranslated text in
0018     // config files.
0019     switch (advice) {
0020     case JavaScriptAccept:
0021         return kli18n("Accept").untranslatedText();
0022     case JavaScriptReject:
0023         return kli18n("Reject").untranslatedText();
0024     default:
0025         break;
0026     }
0027 
0028     return nullptr;
0029 }
0030 
0031 HtmlSettingsInterface::JavaScriptAdvice HtmlSettingsInterface::textToJavascriptAdvice(const QString &text)
0032 {
0033     JavaScriptAdvice ret = JavaScriptDunno;
0034 
0035     if (!text.isEmpty()) {
0036         if (text.compare(QLatin1String("accept"), Qt::CaseInsensitive) == 0) {
0037             ret = JavaScriptAccept;
0038         } else if (text.compare(QLatin1String("reject"), Qt::CaseInsensitive) == 0) {
0039             ret = JavaScriptReject;
0040         }
0041     }
0042 
0043     return ret;
0044 }
0045 
0046 void HtmlSettingsInterface::splitDomainAdvice(const QString &adviceStr,
0047                                               QString &domain,
0048                                               HtmlSettingsInterface::JavaScriptAdvice &javaAdvice,
0049                                               HtmlSettingsInterface::JavaScriptAdvice &javaScriptAdvice)
0050 {
0051     const QString tmp(adviceStr);
0052     const int splitIndex = tmp.indexOf(QLatin1Char(':'));
0053 
0054     if (splitIndex == -1) {
0055         domain = adviceStr.toLower();
0056         javaAdvice = JavaScriptDunno;
0057         javaScriptAdvice = JavaScriptDunno;
0058     } else {
0059         domain = tmp.left(splitIndex).toLower();
0060         const QString adviceString = tmp.mid(splitIndex + 1, tmp.length());
0061         const int splitIndex2 = adviceString.indexOf(QLatin1Char(':'));
0062         if (splitIndex2 == -1) {
0063             // Java advice only
0064             javaAdvice = textToJavascriptAdvice(adviceString);
0065             javaScriptAdvice = JavaScriptDunno;
0066         } else {
0067             // Java and JavaScript advice
0068             javaAdvice = textToJavascriptAdvice(adviceString.left(splitIndex2));
0069             javaScriptAdvice = textToJavascriptAdvice(adviceString.mid(splitIndex2 + 1, adviceString.length()));
0070         }
0071     }
0072 }