author | hgs |
Tue, 29 Jun 2010 00:46:29 -0400 | |
changeset 3 | 0954f5dd2cd0 |
parent 0 | 1450b09d0cfd |
child 9 | b39122337a00 |
permissions | -rw-r--r-- |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. |
3 | 4 |
* |
5 |
* This program is free software: you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU Lesser General Public License as published by |
|
7 |
* the Free Software Foundation, version 2.1 of the License. |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
8 |
* |
3 | 9 |
* This program is distributed in the hope that it will be useful, |
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU Lesser General Public License for more details. |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
13 |
* |
3 | 14 |
* You should have received a copy of the GNU Lesser General Public License |
15 |
* along with this program. If not, |
|
16 |
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
17 |
* |
3 | 18 |
* Description: |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
* |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
20 |
*/ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include "UrlSearchSnippet.h" |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
#include "Utilities.h" |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
24 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
25 |
#include "ChromeRenderer.h" |
3 | 26 |
#include "ChromeLayout.h" |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
27 |
#include "ChromeWidget.h" |
3 | 28 |
#include "PageSnippet.h" |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
29 |
#include "ViewController.h" |
3 | 30 |
#include "ViewStack.h" |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
31 |
#include "WebChromeSnippet.h" |
3 | 32 |
#include "LoadController.h" |
33 |
#include "webpagecontroller.h" |
|
34 |
#include "GWebContentView.h" |
|
35 |
#include "WindowFlowView.h" |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
|
3 | 37 |
#include <QWebHistoryItem> |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
38 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
39 |
namespace GVA { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
|
3 | 41 |
#define GO_BUTTON_ICON ":/chrome/bedrockchrome/urlsearch.snippet/icons/go_btn.png" |
42 |
#define STOP_BUTTON_ICON ":/chrome/bedrockchrome/urlsearch.snippet/icons/stop_btn.png" |
|
43 |
#define REFRESH_BUTTON_ICON ":/chrome/bedrockchrome/urlsearch.snippet/icons/refresh_btn.png" |
|
44 |
#define BETWEEN_ENTRY_AND_BUTTON_SPACE 4 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
45 |
|
3 | 46 |
GUrlSearchItem::GUrlSearchItem(ChromeSnippet * snippet, ChromeWidget * chrome, QGraphicsItem * parent) |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
: NativeChromeItem(snippet, parent) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
48 |
, m_chrome(chrome) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
49 |
, m_viewPortWidth(0.0) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
50 |
, m_viewPortHeight(0.0) |
3 | 51 |
, m_pendingClearCalls(0) |
52 |
, m_backFromNewWinTrans(false) |
|
53 |
, m_justFocusIn(false) |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
54 |
{ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
55 |
// Extract style information from element CSS. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
56 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
57 |
// For border-related properties, we constrain all values (top, left, etc.) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
58 |
// to be the same. These can be set using the css shorthand (e.g. padding:10px), |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
59 |
// but the computed css style will be for the four primitive values (padding-top, |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
60 |
// padding-left) etc, which will all be equal. Hence we just use one of the |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
61 |
// computed primitive values (top) to represent the common value. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
62 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
63 |
QWebElement we = m_snippet->element(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
64 |
|
3 | 65 |
QColor textColor; |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
66 |
NativeChromeItem::CSSToQColor( |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
67 |
we.styleProperty("color", QWebElement::ComputedStyle), |
3 | 68 |
textColor); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
69 |
|
3 | 70 |
QColor backgroundColor; |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
71 |
NativeChromeItem::CSSToQColor( |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
72 |
we.styleProperty("background-color", QWebElement::ComputedStyle), |
3 | 73 |
backgroundColor); // FIXME text edit background color doesn't work |
74 |
||
75 |
QColor progressColor; |
|
76 |
NativeChromeItem::CSSToQColor( |
|
77 |
we.styleProperty("border-bottom-color", QWebElement::ComputedStyle), |
|
78 |
progressColor); //FIXME text-underline-color causes the crash |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
79 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
80 |
NativeChromeItem::CSSToQColor( |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
81 |
we.styleProperty("border-top-color", QWebElement::ComputedStyle), |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
82 |
m_borderColor); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
83 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
84 |
QString cssPadding = we.styleProperty("padding-top", QWebElement::ComputedStyle); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
85 |
m_padding = cssPadding.remove("px").toInt(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
86 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
87 |
QString cssBorder = we.styleProperty("border-top-width", QWebElement::ComputedStyle); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
88 |
m_border = cssBorder.remove("px").toInt(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
89 |
|
3 | 90 |
// Create the view port widget |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
91 |
m_viewPort = new QGraphicsWidget(this); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
92 |
m_viewPort->setFlags(QGraphicsItem::ItemClipsChildrenToShape); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
93 |
|
3 | 94 |
// Create the url search editor |
95 |
m_urlSearchEditor = new GProgressEditor(snippet, chrome, m_viewPort); |
|
96 |
m_urlSearchEditor->setTextColor(textColor); |
|
97 |
m_urlSearchEditor->setBackgroundColor(backgroundColor); |
|
98 |
m_urlSearchEditor->setProgressColor(progressColor); |
|
99 |
m_urlSearchEditor->setBorderColor(m_borderColor); |
|
100 |
m_urlSearchEditor->setPadding(0.1); // draw the Rounded Rect |
|
101 |
m_urlSearchEditor->setInputMethodHints(Qt::ImhNoAutoUppercase | Qt::ImhNoPredictiveText); |
|
102 |
safe_connect(m_urlSearchEditor, SIGNAL(textMayChanged()), this, SLOT(updateLoadStateAndSuggest())); |
|
103 |
safe_connect(m_urlSearchEditor, SIGNAL(activated()),this, SLOT(urlSearchActivatedByEnterKey())); |
|
104 |
safe_connect(m_urlSearchEditor, SIGNAL(focusChanged(bool)),this, SLOT(focusChanged(bool))); |
|
105 |
safe_connect(m_urlSearchEditor, SIGNAL(tapped(QPointF&)),this, SLOT(tapped(QPointF&))); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
106 |
|
3 | 107 |
// Create the url search button |
108 |
m_urlSearchBtn = new ActionButton(snippet, m_viewPort); |
|
109 |
QAction* urlSearchBtnAction = new QAction(this); |
|
110 |
m_urlSearchBtn->setAction(urlSearchBtnAction); // FIXME: should use diff QActions |
|
111 |
||
112 |
m_urlSearchBtn->setActiveOnPress(false); |
|
113 |
safe_connect(urlSearchBtnAction, SIGNAL(triggered()), this, SLOT(urlSearchActivated())); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
114 |
|
3 | 115 |
// Get the icon size |
116 |
QIcon btnIcon(GO_BUTTON_ICON); |
|
117 |
QSize defaultSize(50, 50); |
|
118 |
QSize actualSize = btnIcon.actualSize(defaultSize); |
|
119 |
m_iconWidth = actualSize.width(); |
|
120 |
m_iconHeight = actualSize.height(); |
|
121 |
// Set the right text margin to accomodate the icon inside the editor |
|
122 |
m_urlSearchEditor->setRightTextMargin(m_iconWidth + BETWEEN_ENTRY_AND_BUTTON_SPACE); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
123 |
|
3 | 124 |
// Update state as soon as chrome completes loading. |
125 |
safe_connect(m_chrome, SIGNAL(chromeComplete()), |
|
126 |
this, SLOT(onChromeComplete())); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
127 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
128 |
// Monitor resize events. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
129 |
safe_connect(m_chrome->renderer(), SIGNAL(chromeResized()), |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
130 |
this, SLOT(resize())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
131 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
132 |
WebPageController * pageController = WebPageController::getSingleton(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
133 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
134 |
safe_connect(pageController, SIGNAL(pageUrlChanged(const QString)), |
3 | 135 |
m_urlSearchEditor, SLOT(setText(const QString &))) |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
136 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
137 |
safe_connect(pageController, SIGNAL(pageLoadStarted()), |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
138 |
this, SLOT(setStarted())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
139 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
140 |
safe_connect(pageController, SIGNAL(pageLoadProgress(const int)), |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
141 |
this, SLOT(setProgress(int))); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
142 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
143 |
safe_connect(pageController, SIGNAL(pageLoadFinished(bool)), |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
144 |
this, SLOT(setFinished(bool))); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
145 |
|
3 | 146 |
safe_connect(pageController, SIGNAL(pageCreated(WRT::WrtBrowserContainer*)), |
147 |
this, SLOT(setPageCreated())); |
|
148 |
||
149 |
safe_connect(pageController, SIGNAL(pageChanged(WRT::WrtBrowserContainer*, WRT::WrtBrowserContainer*)), |
|
150 |
this, SLOT(setPageChanged())); |
|
151 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
152 |
// Monitor view changes. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
153 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
154 |
ViewController * viewController = chrome->viewController(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
155 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
156 |
safe_connect(viewController, SIGNAL(currentViewChanged()), |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
157 |
this, SLOT(viewChanged())); |
3 | 158 |
|
159 |
/* safe_connect(ViewStack::getSingleton(), SIGNAL(currentViewChanged()), |
|
160 |
this, SLOT(viewChanged()));*/ |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
161 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
162 |
|
3 | 163 |
GUrlSearchItem::~GUrlSearchItem() |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
164 |
{ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
165 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
166 |
|
3 | 167 |
//TODO: Shouldn't have to explicitly set the viewport sizes here |
168 |
||
169 |
void GUrlSearchItem::resizeEvent(QGraphicsSceneResizeEvent * event) |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
170 |
{ |
3 | 171 |
QSizeF size = event->newSize(); |
172 |
||
173 |
m_viewPortWidth = size.width() - m_padding * 2; |
|
174 |
m_viewPortHeight = size.height() - m_padding * 2; |
|
175 |
||
176 |
m_viewPort->setGeometry( |
|
177 |
m_padding, |
|
178 |
m_padding, |
|
179 |
m_viewPortWidth, |
|
180 |
m_viewPortHeight); |
|
181 |
||
182 |
qreal w = m_iconWidth; |
|
183 |
qreal h = m_iconHeight; |
|
184 |
||
185 |
m_urlSearchBtn->setGeometry( |
|
186 |
m_viewPortWidth - w - m_padding/2, |
|
187 |
(m_viewPortHeight - h)/2, |
|
188 |
w, |
|
189 |
h); |
|
190 |
||
191 |
m_urlSearchEditor->setGeometry(0, |
|
192 |
0, |
|
193 |
m_viewPortWidth, |
|
194 |
m_viewPortHeight); |
|
195 |
||
196 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
197 |
|
3 | 198 |
void GUrlSearchItem::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) |
199 |
{ |
|
200 |
Q_UNUSED(option); |
|
201 |
Q_UNUSED(widget); |
|
202 |
||
203 |
painter->save(); |
|
204 |
painter->setRenderHint(QPainter::Antialiasing); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
205 |
|
3 | 206 |
if (m_padding > 0 || m_border > 0) { |
207 |
QPainterPath border; |
|
208 |
border.addRect(boundingRect()); |
|
209 |
border.addRoundedRect( |
|
210 |
m_padding, |
|
211 |
m_padding, |
|
212 |
m_viewPortWidth, |
|
213 |
m_viewPortHeight, |
|
214 |
4, |
|
215 |
4); |
|
216 |
||
217 |
if (m_padding > 0) { |
|
218 |
painter->fillPath(border, m_borderColor); |
|
219 |
} |
|
220 |
||
221 |
if (m_border > 0) { |
|
222 |
QPen pen; |
|
223 |
pen.setWidth(m_border); |
|
224 |
pen.setBrush(m_borderColor); |
|
225 |
painter->setPen(pen); |
|
226 |
painter->drawPath(border); |
|
227 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
228 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
229 |
|
3 | 230 |
painter->restore(); |
231 |
NativeChromeItem::paint(painter, option, widget); |
|
232 |
} |
|
233 |
||
234 |
void GUrlSearchItem::onChromeComplete() |
|
235 |
{ |
|
236 |
setStarted(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
237 |
|
3 | 238 |
WRT::WindowFlowView* windowView = static_cast<WRT::WindowFlowView *>(m_chrome->viewController()->view("WindowView")); |
239 |
safe_connect(windowView, SIGNAL(newWindowTransitionComplete()), this, SLOT(onNewWindowTransitionComplete())); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
240 |
|
3 | 241 |
PageSnippet * suggestSnippet = qobject_cast<PageSnippet*>(m_chrome->getSnippet("SuggestsChromeId")); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
242 |
|
3 | 243 |
// instantiate items needed to display suggest page snippet |
244 |
if (suggestSnippet) { |
|
245 |
suggestSnippet->instantiate(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
246 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
247 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
248 |
|
3 | 249 |
void GUrlSearchItem::setStarted() |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
250 |
{ |
3 | 251 |
WebPageController * pageController = WebPageController::getSingleton(); |
252 |
ViewController * viewController = m_chrome->viewController(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
253 |
|
3 | 254 |
m_urlSearchEditor->setText(pageController->currentRequestedUrl()); |
255 |
ControllableViewBase* curView = viewController->currentView(); |
|
256 |
if (curView && curView->type() == "webView") { |
|
257 |
GWebContentView * gView = qobject_cast<GWebContentView*> (curView); |
|
258 |
bool isSuperPage = gView ? gView->currentPageIsSuperPage() : false; |
|
259 |
if(!isSuperPage) |
|
260 |
m_chrome->layout()->slideView(100); |
|
261 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
262 |
// Strictly speaking we should set progress to 0. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
263 |
// But set it higher to give immediate visual feedback |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
264 |
// that something is happening. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
265 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
266 |
int progress = 0; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
267 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
268 |
if (pageController->isPageLoading()) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
269 |
progress = 5; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
270 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
271 |
|
3 | 272 |
m_urlSearchEditor->setProgress(progress); |
273 |
updateUrlSearchBtn(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
274 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
275 |
|
3 | 276 |
void GUrlSearchItem::setProgress(int percent) |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
277 |
{ |
3 | 278 |
m_urlSearchEditor->setProgress(percent); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
279 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
280 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
281 |
// Wait a half-second before actually clearing the progress bar. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
282 |
// |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
283 |
// We have to be careful of the following two use cases: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
284 |
// |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
285 |
// 1. Another page starts loading between the call to setFinished() |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
286 |
// and the scheduled call to clearProgress(). |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
287 |
// |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
288 |
// We don't want to clear the progress bar if another page is |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
289 |
// loading. WebPageController::isPageLoading() can tell us |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
290 |
// if that is the case. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
291 |
// |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
292 |
// 2. Another page finishes loading between the call to setFinished() |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
293 |
// and the scheduled call to clearProgress(). The sequence here is: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
294 |
// |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
295 |
// setFinished(ok) // for URL #1 |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
296 |
// setFinished(ok) // for URL #2 |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
297 |
// clearProgress() // for URL #1 |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
298 |
// clearProgress() // for URL #2 |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
299 |
// |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
300 |
// We don't want to clear the progress bar in the first call to |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
301 |
// clearProgress() because we want the progress bar to retain its |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
302 |
// appearance for the full timeout period. We manage this by |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
303 |
// tracking the number of pending calls to clearProgress() and |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
304 |
// only clearing the progress bar when that number becomes 0. |
3 | 305 |
void GUrlSearchItem::setFinished(bool ok) |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
306 |
{ |
3 | 307 |
WebPageController * pageController = WebPageController::getSingleton(); |
308 |
// If the load was finished normally and not due to user stopping it, |
|
309 |
// simulate progress completion |
|
310 |
if (!pageController->loadCanceled()) |
|
311 |
m_urlSearchEditor->setProgress(100); |
|
312 |
||
313 |
if (ok) |
|
314 |
m_urlSearchEditor->setText(formattedUrl()); |
|
315 |
||
316 |
m_urlSearchEditor->removeFocus(); |
|
317 |
||
318 |
ViewController * viewController = m_chrome->viewController(); |
|
319 |
ControllableViewBase* curView = viewController->currentView(); |
|
320 |
if (curView && curView->type() == "webView" && pageController->contentsYPos() > 0) |
|
321 |
m_chrome->layout()->slideView(-100); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
322 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
323 |
++m_pendingClearCalls; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
324 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
325 |
QTimer::singleShot(500, this, SLOT(clearProgress())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
326 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
327 |
|
3 | 328 |
void GUrlSearchItem::setPageCreated() |
329 |
{ |
|
330 |
// remove slideview(100) since the new transition for the code-driven window |
|
331 |
//m_chrome->layout()->slideView(100); |
|
332 |
} |
|
333 |
||
334 |
void GUrlSearchItem::setPageChanged() |
|
335 |
{ |
|
336 |
m_urlSearchEditor->setText(formattedUrl()); |
|
337 |
updateUrlSearchBtn(); |
|
338 |
||
339 |
WebPageController * pageController = WebPageController::getSingleton(); |
|
340 |
int progress = pageController->loadProgressValue(); |
|
341 |
if (progress == 100) |
|
342 |
m_urlSearchEditor->removeFocus(); |
|
343 |
} |
|
344 |
||
345 |
void GUrlSearchItem::clearProgress() |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
346 |
{ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
347 |
--m_pendingClearCalls; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
348 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
349 |
if (m_pendingClearCalls > 0) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
350 |
return; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
351 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
352 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
353 |
WebPageController * pageController = WebPageController::getSingleton(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
354 |
if (pageController->isPageLoading()) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
355 |
return; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
356 |
} |
3 | 357 |
m_urlSearchEditor->setProgress(0); |
358 |
updateUrlSearchBtn(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
359 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
360 |
|
3 | 361 |
void GUrlSearchItem::viewChanged() |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
362 |
{ |
3 | 363 |
ViewController * viewController = m_chrome->viewController(); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
364 |
WebPageController * pageController = WebPageController::getSingleton(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
365 |
|
3 | 366 |
ControllableViewBase* curView = viewController->currentView(); |
367 |
GWebContentView * gView = qobject_cast<GWebContentView*> (curView); |
|
368 |
bool isSuperPage = gView ? gView->currentPageIsSuperPage() : false; |
|
369 |
||
370 |
// view changes to web content view |
|
371 |
if (curView && curView->type() == "webView" && !isSuperPage) { |
|
372 |
int progress = pageController->loadProgressValue(); |
|
373 |
if (progress >= 100) |
|
374 |
progress = 0; |
|
375 |
m_urlSearchEditor->setProgress(progress); |
|
376 |
updateUrlSearchBtn(); |
|
377 |
||
378 |
// place focus in urlsearch bar when returning from adding a new window in windows view |
|
379 |
if (pageController->loadText() == "") { |
|
380 |
if (m_backFromNewWinTrans ) { |
|
381 |
m_backFromNewWinTrans = false; |
|
382 |
WebPageController * pageController = WebPageController::getSingleton(); |
|
383 |
m_urlSearchEditor->setText(pageController->currentRequestedUrl()); |
|
384 |
} |
|
385 |
else { |
|
386 |
m_urlSearchEditor->grabFocus(); |
|
387 |
} |
|
388 |
} |
|
389 |
if (!isSuperPage && (pageController->contentsYPos() <= 0 || pageController->isPageLoading())){ |
|
390 |
m_chrome->layout()->slideView(100); |
|
391 |
} else { |
|
392 |
m_chrome->layout()->slideView(-100); |
|
393 |
} |
|
394 |
m_backFromNewWinTrans = false; |
|
395 |
} else { |
|
396 |
pageController->urlTextChanged(m_urlSearchEditor->text()); |
|
397 |
// Remove progress bar |
|
398 |
// incorrect values are not seen before we can update when we come back |
|
399 |
m_urlSearchEditor->setProgress(0); |
|
400 |
m_chrome->layout()->slideView(-100); |
|
401 |
} |
|
402 |
} |
|
403 |
||
404 |
void GUrlSearchItem::urlSearchActivatedByEnterKey() |
|
405 |
{ |
|
406 |
m_urlSearchEditor->removeFocus(); |
|
407 |
urlSearchActivated(); |
|
408 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
409 |
|
3 | 410 |
void GUrlSearchItem::urlSearchActivated() |
411 |
{ |
|
412 |
WebPageController * pageController = WebPageController::getSingleton(); |
|
413 |
switch (pageController->loadState()) { |
|
414 |
case WRT::LoadController::GotoModeLoading: |
|
415 |
pageController->currentStop(); |
|
416 |
++m_pendingClearCalls; |
|
417 |
QTimer::singleShot(500, this, SLOT(clearProgress())); |
|
418 |
break; |
|
419 |
case WRT::LoadController::GotoModeEditing: |
|
420 |
loadToMainWindow(); |
|
421 |
break; |
|
422 |
case WRT::LoadController::GotoModeReloadable: |
|
423 |
if (pageController->currentDocUrl() == m_urlSearchEditor->text()) |
|
424 |
pageController->currentReload(); |
|
425 |
else |
|
426 |
loadToMainWindow(); |
|
427 |
break; |
|
428 |
default: |
|
429 |
qDebug() << "Incorrect state"; |
|
430 |
break; |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
431 |
} |
3 | 432 |
updateUrlSearchBtn(); |
433 |
} |
|
434 |
||
435 |
void GUrlSearchItem::updateUrlSearchBtn() |
|
436 |
{ |
|
437 |
WebPageController * pageController = WebPageController::getSingleton(); |
|
438 |
switch (pageController->loadState()) { |
|
439 |
case WRT::LoadController::GotoModeLoading: |
|
440 |
m_urlSearchBtn->addIcon(STOP_BUTTON_ICON); |
|
441 |
break; |
|
442 |
case WRT::LoadController::GotoModeEditing: |
|
443 |
m_urlSearchBtn->addIcon(GO_BUTTON_ICON); |
|
444 |
break; |
|
445 |
case WRT::LoadController::GotoModeReloadable: |
|
446 |
m_urlSearchBtn->addIcon(REFRESH_BUTTON_ICON); |
|
447 |
break; |
|
448 |
default: |
|
449 |
qDebug() << "Incorrect state"; |
|
450 |
break; |
|
451 |
} |
|
452 |
m_urlSearchBtn->update(); |
|
453 |
||
454 |
// notify suggest object of changes in load state |
|
455 |
PageSnippet * suggestSnippet = qobject_cast<PageSnippet*>(m_chrome->getSnippet("SuggestsChromeId")); |
|
456 |
if (suggestSnippet) { |
|
457 |
QString cmd = "searchSuggests.updateLoadState();"; |
|
458 |
suggestSnippet->evaluateJavaScript(cmd); |
|
459 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
460 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
461 |
|
3 | 462 |
void GUrlSearchItem::loadToMainWindow() |
463 |
{ |
|
464 |
QString url = m_urlSearchEditor->text(); |
|
465 |
WebPageController * pageController = WebPageController::getSingleton(); |
|
466 |
QString gotourl = pageController->guessUrlFromString(url); |
|
467 |
m_urlSearchEditor->setText(gotourl); |
|
468 |
pageController->currentLoad(gotourl); |
|
469 |
pageController->urlTextChanged(gotourl); |
|
470 |
} |
|
471 |
||
472 |
void GUrlSearchItem::updateLoadState() |
|
473 |
{ |
|
474 |
WebPageController * pageController = WebPageController::getSingleton(); |
|
475 |
if (pageController->loadState() == WRT::LoadController::GotoModeReloadable) { |
|
476 |
pageController->setLoadState(WRT::LoadController::GotoModeEditing); |
|
477 |
updateUrlSearchBtn(); |
|
478 |
} |
|
479 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
480 |
|
3 | 481 |
void GUrlSearchItem::updateLoadStateAndSuggest() |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
482 |
{ |
3 | 483 |
updateLoadState(); |
484 |
PageSnippet * suggestSnippet = qobject_cast<PageSnippet*>(m_chrome->getSnippet("SuggestsChromeId")); |
|
485 |
if (suggestSnippet) { |
|
486 |
QString cmd = "searchSuggests.updateUserInput();"; |
|
487 |
suggestSnippet->evaluateJavaScript(cmd); |
|
488 |
} |
|
489 |
} |
|
490 |
||
491 |
void GUrlSearchItem::tapped(QPointF& pos) |
|
492 |
{ |
|
493 |
bool hitText = m_urlSearchEditor->tappedOnText(pos.x()); |
|
494 |
if (!m_justFocusIn && !hitText) |
|
495 |
m_urlSearchEditor->unselect(); |
|
496 |
||
497 |
if (m_justFocusIn) { |
|
498 |
m_justFocusIn = false; |
|
499 |
if (hitText && !m_urlSearchEditor->hasSelection()) |
|
500 |
m_urlSearchEditor->selectAll(); |
|
501 |
} |
|
502 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
503 |
|
3 | 504 |
void GUrlSearchItem::focusChanged(bool focusIn) |
505 |
{ |
|
506 |
if (focusIn) |
|
507 |
m_justFocusIn = true; |
|
508 |
else { |
|
509 |
m_justFocusIn = false; |
|
510 |
m_urlSearchEditor->unselect(); |
|
511 |
m_urlSearchEditor->shiftToLeftEnd(); |
|
512 |
||
513 |
// Suggestion snippet needs to know about this event. |
|
514 |
PageSnippet * suggestSnippet = qobject_cast<PageSnippet*>(m_chrome->getSnippet("SuggestsChromeId")); |
|
515 |
if (suggestSnippet) { |
|
516 |
QString cmd = "searchSuggests.urlSearchLostFocus();"; |
|
517 |
suggestSnippet->evaluateJavaScript(cmd); |
|
518 |
} |
|
519 |
} |
|
520 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
521 |
|
3 | 522 |
void GUrlSearchItem::resize() |
523 |
{ |
|
524 |
QWebElement we = m_snippet->element(); |
|
525 |
QRectF g = we.geometry(); |
|
526 |
qreal newWidth = g.width(); |
|
527 |
qreal newHeight = g.height(); |
|
528 |
QGraphicsWidget::resize(newWidth, newHeight); |
|
529 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
530 |
|
3 | 531 |
void GUrlSearchItem::onNewWindowTransitionComplete() |
532 |
{ |
|
533 |
m_backFromNewWinTrans = true; |
|
534 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
535 |
|
3 | 536 |
QString GUrlSearchItem::formattedUrl() const |
537 |
{ |
|
538 |
WebPageController * pageController = WebPageController::getSingleton(); |
|
539 |
QString url = pageController->loadText(); |
|
540 |
// for first load of the windows restored from last session |
|
541 |
if (url.isEmpty()&& pageController->currentDocUrl().isEmpty()) { |
|
542 |
QWebHistoryItem item = pageController->currentPage()->history()->currentItem(); |
|
543 |
url = item.url().toString(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
544 |
} |
3 | 545 |
return url.replace(" ","+"); |
546 |
} |
|
547 |
||
548 |
GUrlSearchSnippet::GUrlSearchSnippet(const QString & elementId, ChromeWidget * chrome, |
|
549 |
QGraphicsWidget * widget, const QWebElement & element) |
|
550 |
: ChromeSnippet(elementId, chrome, widget, element) |
|
551 |
{ |
|
552 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
553 |
|
3 | 554 |
GUrlSearchSnippet * GUrlSearchSnippet::instance(const QString& elementId, ChromeWidget * chrome, const QWebElement & element) |
555 |
{ |
|
556 |
GUrlSearchSnippet* that = new GUrlSearchSnippet(elementId, chrome, 0, element); |
|
557 |
that->setChromeWidget( new GUrlSearchItem( that, chrome ) ); |
|
558 |
return that; |
|
559 |
} |
|
560 |
||
561 |
inline GUrlSearchItem* GUrlSearchSnippet::urlSearchItem() |
|
562 |
{ |
|
563 |
return static_cast<GUrlSearchItem *>(widget()); |
|
564 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
565 |
|
3 | 566 |
inline GUrlSearchItem const * GUrlSearchSnippet::constUrlSearchItem() const |
567 |
{ |
|
568 |
return static_cast<GUrlSearchItem const *>(constWidget()); |
|
569 |
} |
|
570 |
||
571 |
QString GUrlSearchSnippet::url() const |
|
572 |
{ |
|
573 |
return constUrlSearchItem()->url(); |
|
574 |
} |
|
575 |
||
576 |
void GUrlSearchSnippet::setUrl(const QString &url) |
|
577 |
{ |
|
578 |
urlSearchItem()->setUrl(url); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
579 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
580 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
581 |
} // namespace GVA |