capybara-webkit/src/WindowFocus.cpp

38 lines
917 B
C++
Raw Normal View History

2012-03-26 22:41:33 +00:00
#include "WindowFocus.h"
#include "Command.h"
#include "WebPage.h"
#include "CommandFactory.h"
2012-03-26 22:41:33 +00:00
#include "WebPageManager.h"
WindowFocus::WindowFocus(WebPage *page, QStringList &arguments, QObject *parent) : Command(page, arguments, parent) {
}
void WindowFocus::start() {
focusWindow(arguments()[0]);
2012-03-26 22:41:33 +00:00
}
void WindowFocus::windowNotFound() {
emit finished(new Response(false, QString("Unable to locate window. ")));
}
void WindowFocus::success(WebPage *page) {
((CommandFactory *) parent())->m_manager->setCurrentPage(page);
2012-03-26 22:41:33 +00:00
emit finished(new Response(true));
}
void WindowFocus::focusWindow(QString selector) {
QListIterator<WebPage *> pageIterator =
((CommandFactory *) parent())->m_manager->iterator();
while (pageIterator.hasNext()) {
WebPage *page = pageIterator.next();
if (page->matchesWindowSelector(selector)) {
success(page);
return;
}
}
windowNotFound();
}