File indexing completed on 2024-12-01 12:37:41
0001 /* This file is part of the KDE libraries 0002 Copyright (C) 2005, 2006 Ian Reinhart Geiser <geiseri@kde.org> 0003 Copyright (C) 2005, 2006 Matt Broadstone <mbroadst@gmail.com> 0004 Copyright (C) 2005, 2006 Richard J. Moore <rich@kde.org> 0005 Copyright (C) 2005, 2006 Erik L. Bunce <kde@bunce.us> 0006 0007 This library is free software; you can redistribute it and/or 0008 modify it under the terms of the GNU Library General Public 0009 License as published by the Free Software Foundation; either 0010 version 2 of the License, or (at your option) any later version. 0011 0012 This library is distributed in the hope that it will be useful, 0013 but WITHOUT ANY WARRANTY; without even the implied warranty of 0014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0015 Library General Public License for more details. 0016 0017 You should have received a copy of the GNU Library General Public License 0018 along with this library; see the file COPYING.LIB. If not, write to 0019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0020 Boston, MA 02110-1301, USA. 0021 */ 0022 #include "url.h" 0023 0024 #include <QDebug> 0025 #include <QUrl> 0026 0027 using namespace KJSEmbed; 0028 0029 const KJS::ClassInfo UrlBinding::info = { "QUrl", &VariantBinding::info, nullptr, nullptr }; 0030 UrlBinding::UrlBinding(KJS::ExecState *exec, const QUrl &value) 0031 : VariantBinding(exec, value) 0032 { 0033 StaticBinding::publish(exec, this, VariantFactory::methods()); 0034 StaticBinding::publish(exec, this, Url::methods()); 0035 } 0036 0037 namespace UrlNS 0038 { 0039 0040 START_VARIANT_METHOD(callisValid, QUrl) 0041 bool cppValue = value.isValid(); 0042 result = KJS::jsBoolean(cppValue); 0043 END_VARIANT_METHOD 0044 0045 START_VARIANT_METHOD(toString, QUrl) 0046 QUrl::FormattingOptions opts = (QUrl::FormattingOptions)KJSEmbed::extractInt(exec, args, 0, QUrl::None); 0047 result = KJS::jsString(value.toString(opts)); 0048 END_VARIANT_METHOD 0049 } 0050 0051 START_METHOD_LUT(Url) 0052 {"toString", 0, KJS::DontDelete | KJS::ReadOnly, &UrlNS::toString}, 0053 {"isValid", 0, KJS::DontDelete | KJS::ReadOnly, &UrlNS::callisValid} 0054 END_METHOD_LUT 0055 0056 START_ENUM_LUT(Url) 0057 {"None", QUrl::None}, 0058 {"RemoveScheme", QUrl::RemoveScheme}, 0059 {"RemovePassword", QUrl::RemovePassword}, 0060 {"RemoveUserInfo", QUrl::RemoveUserInfo}, 0061 {"RemovePort", QUrl::RemovePort}, 0062 {"RemoveAuthority", QUrl::RemoveAuthority}, 0063 {"RemovePath", QUrl::RemovePath}, 0064 {"RemoveQuery", QUrl::RemoveQuery}, 0065 {"RemoveFragment", QUrl::RemoveFragment}, 0066 {"StripTrailingSlash", QUrl::StripTrailingSlash} 0067 END_ENUM_LUT 0068 0069 NO_STATICS(Url) 0070 0071 START_CTOR(Url, QUrl, 0) 0072 if (args.size() == 1) 0073 { 0074 return new KJSEmbed::UrlBinding(exec, QUrl(KJSEmbed::extractQString(exec, args, 0))); 0075 } 0076 0077 return new KJSEmbed::UrlBinding(exec, QUrl()); 0078 END_CTOR 0079