QString DownloadManager::getFileName(QNetworkReply* reply) { QString path; if (reply->hasRawHeader("Content-Disposition")) { QString value = QString::fromUtf8(reply->rawHeader("Content-Disposition")); if (value.contains(QzRegExp("filename\\s*\\*\\s*=\\s*UTF-8", Qt::CaseInsensitive))) { QzRegExp reg("filename\\s*\\*\\s*=\\s*UTF-8''([^;]*)", Qt::CaseInsensitive); reg.indexIn(value); path = QUrl::fromPercentEncoding(reg.cap(1).toUtf8()).trimmed(); } else if (value.contains(QzRegExp("filename\\s*=", Qt::CaseInsensitive))) { QzRegExp reg("filename\\s*=([^;]*)", Qt::CaseInsensitive); reg.indexIn(value); path = QUrl::fromPercentEncoding(reg.cap(1).toUtf8()).trimmed(); if (path.startsWith(QLatin1Char('"')) && path.endsWith(QLatin1Char('"'))) { path = path.mid(1, path.length() - 2); } else if (path.startsWith(QLatin1Char('"'))) { path = path.right(path.length() - 1); } } } if (path.isEmpty()) { path = reply->url().path(); } QFileInfo info(path); QString baseName = info.completeBaseName(); QString endName = info.suffix(); if (baseName.isEmpty()) { baseName = "no_name"; } if (!endName.isEmpty()) { endName.prepend(QLatin1Char('.')); } QString name = baseName + endName; name.replace(QzRegExp("[;:<>?\"]"), "_"); return name; }
QString OpenSearchEngine::parseTemplate(const QString &searchTerm, const QString &searchTemplate) { QString language = QLocale().name(); // Simple conversion to RFC 3066. language = language.replace(QLatin1Char('_'), QLatin1Char('-')); QString result = searchTemplate; result.replace(QLatin1String("{count}"), QLatin1String("20")); result.replace(QLatin1String("{startIndex}"), QLatin1String("0")); result.replace(QLatin1String("{startPage}"), QLatin1String("0")); result.replace(QLatin1String("{language}"), language); result.replace(QLatin1String("{inputEncoding}"), QLatin1String("UTF-8")); result.replace(QLatin1String("{outputEncoding}"), QLatin1String("UTF-8")); result.replace(QzRegExp(QLatin1String("\\{([^\\}]*:|)source\\??\\}")), QCoreApplication::applicationName()); result.replace(QLatin1String("{searchTerms}"), QLatin1String(QUrl::toPercentEncoding(searchTerm))); return result; }
void SourceViewer::loadSource() { m_actionUndo->setEnabled(false); m_actionRedo->setEnabled(false); m_actionCut->setEnabled(false); m_actionCopy->setEnabled(false); m_actionPaste->setEnabled(false); QString html = m_frame.data()->toHtml(); // Remove AdBlock element hiding rules html.remove(QzRegExp("<style type=\"text/css\">\n/\\* AdBlock for QupZilla \\*/\n.*\\{display:none !important;\\}[\n]*</style>")); m_sourceEdit->setPlainText(html); // Highlight selectedHtml if (!m_selectedHtml.isEmpty()) { m_sourceEdit->find(m_selectedHtml, QTextDocument::FindWholeWords); } m_sourceEdit->setShowingCursor(true); }