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 }