void QWebPage::stop()
{
- FrameLoader *f = mainFrame()->d->frame->loader();
- f->stopForUserCancel();
+ webActionTriggered(Stop);
}
QWebPageHistory *QWebPage::history() const
void QWebPage::goBack()
{
- d->page->goBack();
+ webActionTriggered(GoBack);
}
void QWebPage::goForward()
{
- d->page->goForward();
+ webActionTriggered(GoForward);
}
void QWebPage::goToHistoryItem(const QWebHistoryItem &item)
return 0;
}
+void QWebPage::webActionTriggered(WebAction action, bool checked)
+{
+ switch (action) {
+ // ### these need a context...
+ case OpenLinkInNewWindow:
+ case OpenFrameInNewWindow:
+ case DownloadLinkToDisk:
+ case CopyLinkToClipboard:
+ case OpenImageInNewWindow:
+ case DownloadImageToDisk:
+ case CopyImageToClipboard:
+ break;
+ case GoBack:
+ d->page->goBack();
+ break;
+ case GoForward:
+ d->page->goForward();
+ break;
+ case Stop:
+ mainFrame()->d->frame->loader()->stopForUserCancel();
+ break;
+ case Reload:
+ mainFrame()->d->frame->loader()->reload();
+ break;
+ case Cut:
+ d->page->focusController()->focusedOrMainFrame()->editor()->cut();
+ break;
+ case Copy:
+ d->page->focusController()->focusedOrMainFrame()->editor()->copy();
+ break;
+ case Paste:
+ d->page->focusController()->focusedOrMainFrame()->editor()->paste();
+ break;
+ default: break;
+ }
+}
+
QWebPage::NavigationRequestResponse QWebPage::navigationRequested(QWebFrame *frame, const QWebNetworkRequest &request, QWebPage::NavigationType type)
{
Q_UNUSED(request)
void QWebPage::cut()
{
- d->page->focusController()->focusedOrMainFrame()->editor()->cut();
+ webActionTriggered(Cut);
}
void QWebPage::copy()
{
- d->page->focusController()->focusedOrMainFrame()->editor()->copy();
+ webActionTriggered(Copy);
}
void QWebPage::paste()
{
- d->page->focusController()->focusedOrMainFrame()->editor()->paste();
+ webActionTriggered(Paste);
}
/*!
NavigationTypeOther
};
+ enum WebAction {
+ NoWebAction = - 1,
+
+ OpenLinkInNewWindow,
+ OpenFrameInNewWindow,
+
+ DownloadLinkToDisk,
+ CopyLinkToClipboard,
+
+ OpenImageInNewWindow,
+ DownloadImageToDisk,
+ CopyImageToClipboard,
+
+ GoBack,
+ GoForward,
+ Stop,
+ Reload,
+
+ Cut,
+ Copy,
+ Paste,
+
+ NumWebActions = Paste
+ };
+
+
QWebPage(QWidget *parent);
~QWebPage();
virtual QWebPage *createModalDialog();
virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues);
+ virtual void webActionTriggered(WebAction action, bool checked = false);
+
virtual NavigationRequestResponse navigationRequested(QWebFrame *frame, const QWebNetworkRequest &request, NavigationType type);
// ### what does this do?
virtual QString chooseFile(QWebFrame *frame, const QString& oldFile);
+2007-11-07 Simon Hausmann <hausmann@kde.org>
+
+ Reviewed by Lars.
+
+ Introduced a central virtual void webActionTriggered(WebAction action) method that is called from various
+ convenience methods such as cut()/copy()/paste().
+
+ * Api/qwebpage.cpp:
+ (QWebPage::goBack):
+ (QWebPage::webActionTriggered):
+ (QWebPage::cut):
+ (QWebPage::copy):
+ * Api/qwebpage.h:
+
2007-11-07 Simon Hausmann <hausmann@kde.org>
Reviewed by Lars.