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 }