support attaching file to HTML5 input with multiple attribute

This commit is contained in:
Hubert Łępicki 2011-07-20 21:58:23 +02:00
parent a4490083b6
commit 0c8e347b61
2 changed files with 15 additions and 2 deletions

View File

@ -137,7 +137,18 @@ QString WebPage::chooseFile(QWebFrame *parentFrame, const QString &suggestedFile
Q_UNUSED(parentFrame);
Q_UNUSED(suggestedFile);
QString javascript = QString("Capybara.lastAttachedFile");
return currentFrame()->evaluateJavaScript(javascript).toString();
return getLastAttachedFileName();
}
bool WebPage::extension(Extension extension, const ExtensionOption *option, ExtensionReturn *output) {
if (extension == ChooseMultipleFilesExtension) {
QStringList names = QStringList() << getLastAttachedFileName();
static_cast<ChooseMultipleFilesExtensionReturn*>(output)->fileNames = names;
return true;
}
return false;
}
QString WebPage::getLastAttachedFileName() {
return currentFrame()->evaluateJavaScript(QString("Capybara.lastAttachedFile")).toString();
}

View File

@ -11,6 +11,7 @@ class WebPage : public QWebPage {
QString userAgentForUrl(const QUrl &url ) const;
void setUserAgent(QString userAgent);
bool render(const QString &fileName);
virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0);
public slots:
bool shouldInterruptJavaScript();
@ -31,5 +32,6 @@ class WebPage : public QWebPage {
QString m_capybaraJavascript;
QString m_userAgent;
bool m_loading;
QString getLastAttachedFileName();
};