qthelp_url.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // This file is part of Desktop App Toolkit,
  2. // a set of libraries for developing nice desktop applications.
  3. //
  4. // For license and copyright information please follow this link:
  5. // https://github.com/desktop-app/legal/blob/master/LEGAL
  6. //
  7. #pragma once
  8. #include <QtCore/QUrl>
  9. #include <QtCore/QString>
  10. #include <QtCore/QRegularExpression>
  11. namespace qthelp {
  12. const QRegularExpression &RegExpDomain();
  13. const QRegularExpression &RegExpDomainExplicit();
  14. QRegularExpression RegExpProtocol();
  15. inline QString url_encode(const QString &part) {
  16. return QString::fromLatin1(QUrl::toPercentEncoding(part));
  17. }
  18. inline QString url_decode(QString encoded) {
  19. return QUrl::fromPercentEncoding(encoded.replace('+', ' ').toUtf8());
  20. }
  21. enum class UrlParamNameTransform {
  22. NoTransform,
  23. ToLower,
  24. };
  25. // Parses a string like "p1=v1&p2=v2&..&pn=vn" to a map.
  26. QMap<QString, QString> url_parse_params(
  27. const QString &params,
  28. UrlParamNameTransform transform = UrlParamNameTransform::NoTransform);
  29. QString url_append_query_or_hash(const QString &url, const QString &add);
  30. bool is_ipv6(const QString &ip);
  31. QString validate_url(const QString &value);
  32. } // namespace qthelp