49
49
void MythWebView::keyPressEvent(QKeyEvent *event)
51
if (m_parentBrowser && !m_parentBrowser->keyPressEvent(event))
51
// if the QWebView widget has focus then all keypresses from a regular keyboard
52
// get sent here first
53
if (m_parentBrowser && m_parentBrowser->IsInputToggled())
55
// input is toggled so pass all keypresses to the QWebView's handler
52
56
QWebView::keyPressEvent(event);
60
// we need to convert a few keypress events so the QWebView does the right thing
63
handled = GetMythMainWindow()->TranslateKeyPress("Browser", event, actions);
65
for (int i = 0; i < actions.size() && !handled; i++)
67
QString action = actions[i];
69
if (action == "NEXTLINK")
71
QKeyEvent tabKey(event->type(), Qt::Key_Tab,
72
event->modifiers(), QString(),
73
event->isAutoRepeat(), event->count());
75
QWebView::keyPressEvent(event);
78
else if (action == "PREVIOUSLINK")
80
QKeyEvent shiftTabKey(event->type(), Qt::Key_Tab,
81
event->modifiers() | Qt::ShiftModifier,QString(),
82
event->isAutoRepeat(), event->count());
84
QWebView::keyPressEvent(event);
87
else if (action == "FOLLOWLINK")
89
QKeyEvent returnKey(event->type(), Qt::Key_Return,
90
event->modifiers(), QString(),
91
event->isAutoRepeat(), event->count());
93
QWebView::keyPressEvent(event);
98
// pass the keyPress event to our main window handler so they get handled properly
99
// by the various mythui handlers
100
QCoreApplication::postEvent(GetMythMainWindow(), new QKeyEvent(*event));
55
104
void MythWebView::handleUnsupportedContent(QNetworkReply *reply)
149
198
m_image(NULL), m_active(false),
150
199
m_initialized(false), m_lastUpdateTime(QTime()),
151
200
m_updateInterval(0), m_zoom(1.0),
152
m_bgColor("White"), m_widgetUrl(QUrl()),
201
m_bgColor("White"), m_widgetUrl(QUrl()), m_userCssFile(""),
153
202
m_inputToggled(false), m_lastMouseAction(""),
154
203
m_mouseKeyCount(0), m_lastMouseActionTime()
180
229
m_browser->move(m_Area.x(), m_Area.y());
181
230
m_browser->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
232
// if we have a valid css URL use that ...
233
if (!m_userCssFile.isEmpty())
235
QString filename = m_userCssFile;
236
if (GetMythUI()->FindThemeFile(filename))
237
LoadUserStyleSheet(QUrl("file://" + filename));
241
// ...otherwise use the default one
242
QString filename = "htmls/mythbrowser.css";
243
if (GetMythUI()->FindThemeFile(filename))
244
LoadUserStyleSheet(QUrl("file://" + filename));
183
247
m_browser->winId();
185
249
SetActive(m_active);
277
341
m_browser->setHtml(html, baseUrl);
344
/** \fn MythUIWebBrowser::LoadUserStyleSheet(QUrl)
345
* \brief Sets the specified user style sheet.
346
* \param url The url to the style sheet
348
void MythUIWebBrowser::LoadUserStyleSheet(QUrl url)
353
VERBOSE(VB_IMPORTANT, "MythUIWebBrowser: Loading css from - " + url.toString());
355
m_browser->page()->settings()->setUserStyleSheetUrl(url);
280
358
/** \fn MythUIWebBrowser::SetBackgroundColor(QColor)
281
359
* \brief Sets the default background color.
282
360
* \param color the color to use
566
644
if (action == "TOGGLEINPUT")
569
if (gContext->GetNumSetting("UseVirtualKeyboard", 1) == 1)
575
VirtualKeyboard *keyboard = new VirtualKeyboard(
576
gContext->GetMainWindow(), m_browser);
577
gContext->GetMainWindow()->detach(keyboard);
579
keyboard->deleteLater();
581
inputToggled = false;
585
m_inputToggled = !m_inputToggled;
646
m_inputToggled = !m_inputToggled;
592
650
// if input is toggled all input goes to the web page
593
651
if (m_inputToggled)
653
m_browser->keyPressEvent(event);
596
657
if (action == "UP")
696
757
else if (action == "NEXTLINK")
698
QKeyEvent tabKey(event->type(), Qt::Key_Tab,
699
event->modifiers(), QString(),
700
event->isAutoRepeat(), event->count());
759
m_browser->keyPressEvent(event);
707
761
else if (action == "PREVIOUSLINK")
709
QKeyEvent shiftTabKey(event->type(), Qt::Key_Tab,
710
event->modifiers() | Qt::ShiftModifier,QString(),
711
event->isAutoRepeat(), event->count());
713
*event = shiftTabKey;
763
m_browser->keyPressEvent(event);
717
765
else if (action == "FOLLOWLINK")
719
QKeyEvent returnKey(event->type(), Qt::Key_Return,
720
event->modifiers(), QString(),
721
event->isAutoRepeat(), event->count());
767
m_browser->keyPressEvent(event);
726
769
else if (action == "HISTORYBACK")
811
854
m_widgetUrl.setUrl(getFirstText(element));
856
else if (element.tagName() == "userstylesheet")
858
m_userCssFile = getFirstText(element);
813
860
else if (element.tagName() == "updateinterval")
815
862
QString interval = getFirstText(element);
843
890
m_zoom = browser->m_zoom;
844
891
m_bgColor = browser->m_bgColor;
845
892
m_widgetUrl = browser->m_widgetUrl;
893
m_userCssFile = browser->m_userCssFile;
846
894
m_updateInterval = browser->m_updateInterval;