2012-03-26 22:41:33 +00:00
|
|
|
#include "WindowFocus.h"
|
2012-07-08 19:04:30 +00:00
|
|
|
#include "SocketCommand.h"
|
2012-03-26 22:41:33 +00:00
|
|
|
#include "WebPage.h"
|
2012-03-29 03:05:24 +00:00
|
|
|
#include "CommandFactory.h"
|
2012-03-26 22:41:33 +00:00
|
|
|
#include "WebPageManager.h"
|
2013-02-02 22:32:54 +00:00
|
|
|
#include "ErrorMessage.h"
|
2012-03-26 22:41:33 +00:00
|
|
|
|
2012-07-08 19:04:30 +00:00
|
|
|
WindowFocus::WindowFocus(WebPageManager *manager, QStringList &arguments, QObject *parent) : SocketCommand(manager, arguments, parent) {
|
2012-03-26 22:41:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void WindowFocus::start() {
|
2012-03-27 22:49:57 +00:00
|
|
|
focusWindow(arguments()[0]);
|
2012-03-26 22:41:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void WindowFocus::windowNotFound() {
|
2013-02-11 23:31:41 +00:00
|
|
|
finish(false, new ErrorMessage("Unable to locate window."));
|
2012-03-26 22:41:33 +00:00
|
|
|
}
|
|
|
|
|
2012-03-27 22:49:57 +00:00
|
|
|
void WindowFocus::success(WebPage *page) {
|
2012-04-04 22:18:17 +00:00
|
|
|
page->setFocus();
|
2013-02-11 23:31:41 +00:00
|
|
|
finish(true);
|
2012-03-26 22:41:33 +00:00
|
|
|
}
|
2012-03-27 22:49:57 +00:00
|
|
|
|
|
|
|
void WindowFocus::focusWindow(QString selector) {
|
2012-04-05 22:49:55 +00:00
|
|
|
foreach(WebPage *page, manager()->pages()) {
|
2012-03-28 19:20:32 +00:00
|
|
|
if (page->matchesWindowSelector(selector)) {
|
2012-03-27 22:49:57 +00:00
|
|
|
success(page);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
windowNotFound();
|
|
|
|
}
|