author | hgs |
Fri, 15 Oct 2010 17:30:59 -0400 | |
changeset 16 | 3c88a81ff781 |
parent 3 | 0954f5dd2cd0 |
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: |
19 |
* This class extends ToolbarChromeItem. It paints the toolbar background |
|
20 |
* and controls toolbar visibility in the content view. |
|
0
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 |
*/ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
24 |
#include "ContentToolbarChromeItem.h" |
3 | 25 |
#include "ChromeItem.h" |
26 |
#include "WebChromeContainerSnippet.h" |
|
27 |
#include "ContentToolbarSnippet.h" |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
28 |
#include "GWebContentView.h" |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
29 |
#include "mostvisitedsnippet.h" |
3 | 30 |
#include "webpagecontroller.h" |
31 |
#include "ViewController.h" |
|
32 |
#include "ChromeEffect.h" |
|
16 | 33 |
#include "qstmgestureevent.h" |
3 | 34 |
|
16 | 35 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
36 |
#include "ScaleNinePainter.h" |
|
37 |
#endif |
|
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 |
#include <QTimeLine> |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
#include <QDebug> |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
41 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
42 |
#define TOOLBAR_MARGIN 4 |
3 | 43 |
#define TOOLBAR_ANIMATION_DURATION 200 |
44 |
#define TOOLBAR_INACTIVITY_DURATION 5000 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
45 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
46 |
namespace GVA { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
|
16 | 48 |
ToolbarFadeAnimator::ToolbarFadeAnimator(): m_timeLine(NULL) { |
49 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
50 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
51 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
52 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
53 |
ToolbarFadeAnimator::~ToolbarFadeAnimator() { |
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 |
if (m_timeLine) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
56 |
delete m_timeLine; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
57 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
58 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
59 |
void ToolbarFadeAnimator::start(bool visible) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
60 |
//qDebug() << __PRETTY_FUNCTION__ << visible; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
61 |
if (!m_timeLine) { |
3 | 62 |
m_timeLine = new QTimeLine(TOOLBAR_ANIMATION_DURATION); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
63 |
connect(m_timeLine, SIGNAL(valueChanged(qreal)), this, SLOT(valueChange(qreal))); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
64 |
connect(m_timeLine, SIGNAL(finished()), this, SIGNAL(finished())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
65 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
66 |
else { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
67 |
m_timeLine->stop(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
68 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
69 |
if (!visible) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
70 |
m_timeLine->setDirection(QTimeLine::Forward); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
71 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
72 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
73 |
else { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
74 |
m_timeLine->setDirection(QTimeLine::Backward); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
75 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
76 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
77 |
m_timeLine->start(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
78 |
|
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 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
81 |
void ToolbarFadeAnimator::stop() { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
82 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
83 |
//qDebug() << __PRETTY_FUNCTION__ ; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
84 |
m_timeLine->stop(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
85 |
} |
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 |
void ToolbarFadeAnimator::valueChange(qreal step) { |
16 | 88 |
|
3 | 89 |
emit updateVisibility(step); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
90 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
91 |
|
3 | 92 |
ContentToolbarChromeItem::ContentToolbarChromeItem(ChromeSnippet* snippet, QGraphicsItem* parent) |
93 |
: ToolbarChromeItem(snippet, parent), |
|
16 | 94 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
95 |
m_backgroundPainter(0), |
|
96 |
m_backgroundPixmap(0), |
|
97 |
m_backgroundDirty(true), |
|
98 |
#else |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
99 |
m_background(NULL), |
16 | 100 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
101 |
m_state(CONTENT_TOOLBAR_STATE_FULL), |
3 | 102 |
m_autoHideToolbar(true), |
103 |
m_timerState(CONTENT_TOOLBAR_TIMER_STATE_ALLOW) |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
104 |
{ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
105 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
106 |
m_inactivityTimer = new QTimer(this); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
107 |
connect(m_inactivityTimer, SIGNAL(timeout()), this, SLOT(onInactivityTimer())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
108 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
109 |
m_animator = new ToolbarFadeAnimator(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
110 |
connect(m_animator, SIGNAL(updateVisibility(qreal)), this, SLOT(onUpdateVisibility(qreal))); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
111 |
connect(m_animator, SIGNAL(finished()), this, SLOT(onAnimFinished())); |
3 | 112 |
|
113 |
m_maxOpacity = m_bgopacity = opacity(); |
|
114 |
if (m_autoHideToolbar ) { |
|
115 |
connect(m_snippet->chrome(), SIGNAL(chromeComplete()), this, SLOT(onChromeComplete())); |
|
116 |
} |
|
117 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
118 |
setFlags(QGraphicsItem::ItemDoesntPropagateOpacityToChildren); |
16 | 119 |
|
120 |
#ifdef Q_WS_MAEMO_5 |
|
121 |
m_backgroundPainter = new ScaleNinePainter( |
|
122 |
":/toolbar/toolBar_bkg_topLeft.png", |
|
123 |
":/toolbar/toolBar_bkg_topMiddle.png", |
|
124 |
":/toolbar/toolBar_bkg_topRight.png", |
|
125 |
"", |
|
126 |
":/toolbar/toolBar_bkg_middleMiddle.png", |
|
127 |
"", |
|
128 |
":/toolbar/toolBar_bkg_bottomLeft.png", |
|
129 |
":/toolbar/toolBar_bkg_bottomMiddle.png", |
|
130 |
":/toolbar/toolBar_bkg_bottomRight.png" |
|
131 |
); |
|
132 |
#endif |
|
3 | 133 |
|
16 | 134 |
#ifdef BROWSER_LAYOUT_TENONE |
135 |
m_backgroundPainter = new ScaleNinePainter( |
|
136 |
":/toolbar/toolBar_bkg_topLeft.png", |
|
137 |
":/toolbar/toolBar_bkg_topMiddle.png", |
|
138 |
":/toolbar/toolBar_bkg_topRight.png", |
|
139 |
"", |
|
140 |
"", |
|
141 |
"", |
|
142 |
":/toolbar/toolBar_bkg_bottomLeft.png", |
|
143 |
":/toolbar/toolBar_bkg_bottomMiddle.png", |
|
144 |
":/toolbar/toolBar_bkg_bottomRight.png" |
|
145 |
); |
|
146 |
#endif |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
147 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
148 |
|
16 | 149 |
ContentToolbarChromeItem::~ContentToolbarChromeItem() { |
150 |
||
151 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
|
152 |
delete m_backgroundPainter; |
|
153 |
delete m_backgroundPixmap; |
|
154 |
#else |
|
3 | 155 |
if (m_background ) |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
156 |
delete m_background; |
16 | 157 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
158 |
delete m_inactivityTimer; |
3 | 159 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
160 |
delete m_animator; |
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 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
163 |
|
16 | 164 |
void ContentToolbarChromeItem::resizeEvent(QGraphicsSceneResizeEvent * ev) { |
165 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
166 |
//qDebug() << __PRETTY_FUNCTION__ << boundingRect(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
167 |
ToolbarChromeItem::resizeEvent(ev); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
168 |
addFullBackground(); |
16 | 169 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
170 |
m_backgroundDirty = true; |
|
171 |
#endif |
|
3 | 172 |
} |
173 |
||
16 | 174 |
void ContentToolbarChromeItem::mousePressEvent(QGraphicsSceneMouseEvent * ev) { |
3 | 175 |
// If we are not in full state, ignore the event. Once igonre, none of the |
176 |
// other mouse events are received until the next mouse press |
|
177 |
if (m_state == CONTENT_TOOLBAR_STATE_PARTIAL ) { |
|
178 |
ev->ignore(); |
|
179 |
} |
|
180 |
else { |
|
181 |
ChromeSnippet * mv = m_snippet->chrome()->getSnippet("MostVisitedViewId"); |
|
182 |
// Let mostvisited snippet handle the key press if it is visible |
|
183 |
if (mv && mv->isVisible() ){ |
|
184 |
ev->ignore(); |
|
185 |
} |
|
186 |
} |
|
187 |
} |
|
188 |
||
16 | 189 |
void ContentToolbarChromeItem::mouseReleaseEvent(QGraphicsSceneMouseEvent * ev) { |
190 |
||
3 | 191 |
Q_UNUSED(ev); |
192 |
// Do nothing - prevent the event from trickling down |
|
193 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
194 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
195 |
|
16 | 196 |
void ContentToolbarChromeItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* opt, QWidget* widget) { |
197 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
198 |
Q_UNUSED(opt) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
199 |
Q_UNUSED(widget) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
200 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
201 |
// qDebug() << __PRETTY_FUNCTION__ << m_state; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
202 |
painter->save(); |
3 | 203 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
204 |
painter->setRenderHint(QPainter::Antialiasing); |
3 | 205 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
206 |
painter->setPen(pen()); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
207 |
painter->setOpacity(m_bgopacity); |
3 | 208 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
209 |
switch (m_state) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
210 |
case CONTENT_TOOLBAR_STATE_PARTIAL: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
211 |
ToolbarChromeItem::paint(painter, opt, widget); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
212 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
213 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_FULL: |
16 | 214 |
// intentional fall through |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
215 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
216 |
ToolbarChromeItem::paint(painter, opt, widget); |
16 | 217 |
// intentional fall through |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
218 |
case CONTENT_TOOLBAR_STATE_FULL: |
16 | 219 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
220 |
if(m_backgroundDirty) { |
|
221 |
updateBackgroundPixmap(geometry().size().toSize(), widget); |
|
222 |
m_backgroundPainter->unloadPixmaps(); |
|
223 |
} |
|
224 |
painter->drawPixmap(opt->exposedRect, *m_backgroundPixmap, opt->exposedRect); |
|
225 |
#else |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
226 |
// fill path with color |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
227 |
painter->fillPath(*m_background,QBrush(grad())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
228 |
painter->drawPath(*m_background); |
16 | 229 |
#endif |
3 | 230 |
if(m_state == CONTENT_TOOLBAR_STATE_FULL && !isEnabled()) { |
231 |
// Disabled, apply whitewash. |
|
232 |
ChromeEffect::paintDisabledRect(painter, opt->exposedRect); |
|
233 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
234 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
235 |
default: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
236 |
qDebug() << "ContentToolbarChromeItem::paint invalid state" ; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
237 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
238 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
239 |
// restore painter |
3 | 240 |
painter->restore(); |
241 |
||
242 |
} |
|
243 |
||
244 |
||
245 |
void ContentToolbarChromeItem::setSnippet(ChromeSnippet* snippet) { |
|
246 |
ToolbarChromeItem::setSnippet(snippet); |
|
247 |
m_maxOpacity = m_bgopacity = opacity(); |
|
248 |
||
249 |
if (m_autoHideToolbar ) { |
|
250 |
connect(snippet->chrome(), SIGNAL(chromeComplete()), this, SLOT(onChromeComplete())); |
|
251 |
} |
|
252 |
||
253 |
} |
|
254 |
||
255 |
void ContentToolbarChromeItem::onChromeComplete() { |
|
256 |
||
16 | 257 |
m_webView = static_cast<GWebContentView*> (m_snippet->chrome()->getView("WebView")); |
3 | 258 |
//qDebug() << __PRETTY_FUNCTION__ << webView; |
16 | 259 |
if (m_webView ) { |
260 |
connect(m_webView, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool))); |
|
261 |
connect(m_webView, SIGNAL(loadStarted()), this, SLOT(onLoadStarted())); |
|
3 | 262 |
#ifdef BEDROCK_TILED_BACKING_STORE |
16 | 263 |
connect(m_webView, SIGNAL(contextEvent(::WebViewEventContext *)), this, SLOT(resetTimer())); |
3 | 264 |
#else |
16 | 265 |
connect(m_webView->widget(), SIGNAL(contextEvent(::WebViewEventContext *)), this, SLOT(resetTimer())); |
3 | 266 |
#endif |
267 |
} |
|
268 |
||
269 |
} |
|
270 |
||
271 |
void ContentToolbarChromeItem::onLoadStarted() { |
|
272 |
||
273 |
m_timerState = CONTENT_TOOLBAR_TIMER_STATE_ALLOW; |
|
274 |
stopInactivityTimer(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
275 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
276 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
277 |
|
3 | 278 |
void ContentToolbarChromeItem::onLoadFinished(bool ok) { |
279 |
||
280 |
Q_UNUSED(ok); |
|
16 | 281 |
|
282 |
if(!ok) { |
|
283 |
// Don't hide the toolbar etc. on load error since the user is likely to start |
|
284 |
// typing in the UrlSearch bar, we don't want to trigger the flashing and re-layout |
|
285 |
// that happens when switching screen modes. |
|
286 |
return; |
|
287 |
} |
|
288 |
||
3 | 289 |
//qDebug() << __PRETTY_FUNCTION__ << m_state << "Timer Allowed" << m_timerState; |
290 |
||
291 |
if (m_autoHideToolbar && m_timerState == CONTENT_TOOLBAR_TIMER_STATE_ALLOW) { |
|
292 |
ControllableViewBase* curView = m_snippet->chrome()->viewController()->currentView(); |
|
293 |
if (curView && curView->type() == "webView") { |
|
294 |
GWebContentView * gView = qobject_cast<GWebContentView*> (curView); |
|
295 |
bool isSuperPage = gView ? gView->currentPageIsSuperPage() : false; |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
296 |
|
3 | 297 |
// Start inactivity timer if full toolbar is visible |
298 |
if (!isSuperPage && m_state == CONTENT_TOOLBAR_STATE_FULL ) |
|
299 |
m_inactivityTimer->start(TOOLBAR_INACTIVITY_DURATION); |
|
300 |
} |
|
301 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
302 |
|
3 | 303 |
} |
304 |
void ContentToolbarChromeItem::resetTimer() { |
|
305 |
||
306 |
m_timerState = CONTENT_TOOLBAR_TIMER_STATE_NONE; |
|
307 |
stopInactivityTimer(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
308 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
309 |
|
3 | 310 |
void ContentToolbarChromeItem::stopInactivityTimer() { |
311 |
||
312 |
//qDebug() << __PRETTY_FUNCTION__<< m_state << " Timer Active: " << m_inactivityTimer->isActive(); |
|
313 |
// Stop inactivity timer |
|
314 |
if (m_inactivityTimer->isActive() ) |
|
315 |
m_inactivityTimer->stop(); |
|
316 |
||
317 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
318 |
|
3 | 319 |
void ContentToolbarChromeItem::onInactivityTimer() { |
320 |
||
321 |
//qDebug() << __PRETTY_FUNCTION__ << m_state; |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
322 |
|
3 | 323 |
//We are here because inactivity timer timed out. So we have to be in full toolbar state with no |
324 |
// popups. So change fade to Partial state after stopping inactivity timer |
|
325 |
m_inactivityTimer->stop(); |
|
16 | 326 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
327 |
emit inactivityTimer(); |
|
328 |
#else |
|
3 | 329 |
changeState(CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL, true); |
16 | 330 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
331 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
332 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
333 |
void ContentToolbarChromeItem::onSnippetMouseEvent( QEvent::Type type) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
334 |
|
3 | 335 |
//qDebug() << __PRETTY_FUNCTION__ << type ; |
336 |
||
337 |
if (type == QEvent::MouseButtonPress || type == QEvent::GraphicsSceneMousePress) { |
|
338 |
resetTimer(); |
|
339 |
} |
|
340 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
341 |
|
3 | 342 |
void ContentToolbarChromeItem::addLinkedChild(ChromeSnippet * s) { |
343 |
m_linkedChildren.append(s); |
|
344 |
} |
|
345 |
||
346 |
void ContentToolbarChromeItem::toggleMiddleSnippet() { |
|
347 |
//qDebug() << "TOGGLE MIDDLE : " << m_state; |
|
348 |
switch (m_state) { |
|
349 |
case CONTENT_TOOLBAR_STATE_PARTIAL: |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
350 |
changeState(CONTENT_TOOLBAR_STATE_ANIM_TO_FULL); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
351 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
352 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
353 |
// Stop animation and change to full immediately |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
354 |
m_animator->stop(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
355 |
changeState(CONTENT_TOOLBAR_STATE_FULL, false); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
356 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
357 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_FULL: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
358 |
// Do nothing here - will reset inactivity timer when |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
359 |
// animation completes |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
360 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
361 |
case CONTENT_TOOLBAR_STATE_FULL: |
16 | 362 |
changeState(CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL, true); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
363 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
364 |
default: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
365 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
366 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
367 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
368 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
369 |
void ContentToolbarChromeItem::onMVCloseComplete() { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
370 |
|
3 | 371 |
// qDebug() << __PRETTY_FUNCTION__; |
372 |
ChromeSnippet * mv = m_snippet->chrome()->getSnippet("MostVisitedViewId"); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
373 |
disconnect(mv, SIGNAL(mostVisitedSnippetCloseComplete()) , this, SLOT(onMVCloseComplete())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
374 |
// MostVisitedSnippet animation complete, so let's do toolbar animation |
3 | 375 |
if (m_state == CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL) |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
376 |
changeState(CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL, true); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
377 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
378 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
379 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
380 |
void ContentToolbarChromeItem::onUpdateVisibility(qreal step) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
381 |
|
3 | 382 |
//qDebug() << __PRETTY_FUNCTION__ << step << m_bgopacity << opacity(); |
383 |
// Value we get is 1.0 based, adjust it based on our max opacity |
|
384 |
qreal value = step - (1.0 - m_maxOpacity); |
|
385 |
value = (value > 0)? value: 0.0; |
|
386 |
||
387 |
if (m_bgopacity != value ) { |
|
388 |
m_bgopacity = value; |
|
389 |
setOpacity(m_maxOpacity - value); |
|
390 |
ContentToolbarSnippet * s = static_cast<ContentToolbarSnippet*>(m_snippet); |
|
391 |
s->middleSnippet()->widget()->setOpacity(value); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
392 |
update(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
393 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
394 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
395 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
396 |
void ContentToolbarChromeItem::onAnimFinished() { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
397 |
|
3 | 398 |
ContentToolbarState state = CONTENT_TOOLBAR_STATE_INVALID; |
399 |
bool animate = false; |
|
400 |
//qDebug() << __PRETTY_FUNCTION__ << m_state; |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
401 |
switch (m_state) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
402 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL: |
3 | 403 |
state = CONTENT_TOOLBAR_STATE_PARTIAL; |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
404 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
405 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_FULL: |
3 | 406 |
state = CONTENT_TOOLBAR_STATE_FULL; |
407 |
animate = true; |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
408 |
break; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
409 |
default: |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
410 |
break; |
3 | 411 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
412 |
} |
3 | 413 |
|
414 |
ContentToolbarSnippet * s = static_cast<ContentToolbarSnippet*>(m_snippet); |
|
415 |
s->handleToolbarStateChange(state); |
|
416 |
changeState(state, animate); |
|
417 |
//qDebug() << __PRETTY_FUNCTION__ << m_state; |
|
418 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
419 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
420 |
void ContentToolbarChromeItem::addFullBackground() { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
421 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
422 |
qreal roundness((boundingRect().height() -TOOLBAR_MARGIN)/2); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
423 |
QRectF r(1, 1, boundingRect().width()-TOOLBAR_MARGIN, boundingRect().height()-TOOLBAR_MARGIN); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
424 |
|
16 | 425 |
#if !defined(BROWSER_LAYOUT_TENONE) && !defined(Q_WS_MAEMO_5) |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
426 |
if (m_background ) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
427 |
delete m_background; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
428 |
m_background = NULL; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
429 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
430 |
m_background = new QPainterPath(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
431 |
m_background->addRoundedRect(r, roundness, roundness); |
16 | 432 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
433 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
434 |
|
16 | 435 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
436 |
void ContentToolbarChromeItem::updateBackgroundPixmap(const QSize &size, QWidget* widget) { |
|
437 |
delete m_backgroundPixmap; |
|
438 |
m_backgroundPixmap = new QPixmap(size); |
|
439 |
m_backgroundPixmap->fill(QColor(0xff, 0xff, 0xff, 0)); |
|
440 |
QPainter painter(m_backgroundPixmap); |
|
441 |
m_backgroundPainter->paint(&painter, QRect(0, 0, size.width(), size.height()), widget); |
|
442 |
m_backgroundDirty = false; |
|
443 |
} |
|
444 |
#endif |
|
445 |
||
3 | 446 |
void ContentToolbarChromeItem::stateEnterFull(bool animate) { |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
447 |
|
3 | 448 |
//qDebug() <<__PRETTY_FUNCTION__ ; |
449 |
ContentToolbarSnippet * s = static_cast<ContentToolbarSnippet*>(m_snippet); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
450 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
451 |
// Show the middle snippet and reset the opacity if we are here directly with no aniamtion |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
452 |
if (!animate) { |
16 | 453 |
#if !defined(BROWSER_LAYOUT_TENONE) || !defined(Q_WS_MAEMO_5) |
3 | 454 |
m_bgopacity = 0.75; |
16 | 455 |
#else |
456 |
m_bgopacity = 1.0; |
|
457 |
#endif |
|
3 | 458 |
s->middleSnippet()->show(); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
459 |
} |
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 |
m_state = CONTENT_TOOLBAR_STATE_FULL; |
3 | 462 |
s->middleSnippet()->widget()->setOpacity(1.0); |
16 | 463 |
s->handleToolbarStateChange(m_state); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
464 |
// TODO: specify the rect to be updated to avoid full repaint |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
465 |
update(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
466 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
467 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
468 |
void ContentToolbarChromeItem::stateEnterPartial(bool animate) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
469 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
470 |
//qDebug() <<__PRETTY_FUNCTION__ ; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
471 |
Q_UNUSED(animate); |
3 | 472 |
ContentToolbarSnippet * s = static_cast<ContentToolbarSnippet*>(m_snippet); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
473 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
474 |
// Explicity hide the linked snippets so that toggle button javascript gets the right |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
475 |
// signals that it is expecting |
3 | 476 |
hideLinkedChildren(); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
477 |
|
3 | 478 |
s->middleSnippet()->hide(); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
479 |
m_state = CONTENT_TOOLBAR_STATE_PARTIAL; |
16 | 480 |
#if defined(Q_WS_MAEMO_5) || defined(BROWSER_LAYOUT_TENONE) |
481 |
s->handleToolbarStateChange(m_state); |
|
482 |
#endif |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
483 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
484 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
485 |
void ContentToolbarChromeItem::stateEnterAnimToFull(bool animate) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
486 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
487 |
//qDebug() <<__PRETTY_FUNCTION__ ; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
488 |
Q_UNUSED(animate); |
3 | 489 |
ContentToolbarSnippet * s = static_cast<ContentToolbarSnippet*>(m_snippet); |
490 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
491 |
m_state = CONTENT_TOOLBAR_STATE_ANIM_TO_FULL; |
3 | 492 |
s->middleSnippet()->show(); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
493 |
m_animator->start(false); |
3 | 494 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
495 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
496 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
497 |
void ContentToolbarChromeItem::stateEnterAnimToPartial(bool animate) { |
3 | 498 |
m_state = CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL; |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
499 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
500 |
if (animate ) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
501 |
m_animator->start(true); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
502 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
503 |
else { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
504 |
|
3 | 505 |
MostVisitedSnippet * mv = static_cast<MostVisitedSnippet *>(m_snippet->chrome()->getSnippet("MostVisitedViewId")); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
506 |
connect(mv, SIGNAL(mostVisitedSnippetCloseComplete()) , this, SLOT(onMVCloseComplete())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
507 |
mv->close(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
508 |
} |
3 | 509 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
510 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
511 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
512 |
void ContentToolbarChromeItem::changeState( ContentToolbarState state, bool animate){ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
513 |
onStateEntry(state, animate); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
514 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
515 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
516 |
void ContentToolbarChromeItem::onStateEntry(ContentToolbarState state, bool animate){ |
16 | 517 |
if(state != m_state) |
518 |
{ |
|
519 |
//qDebug() << __PRETTY_FUNCTION__ ; |
|
520 |
switch (state) { |
|
521 |
case CONTENT_TOOLBAR_STATE_PARTIAL: |
|
522 |
stateEnterPartial(animate); |
|
523 |
break; |
|
524 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_FULL: |
|
525 |
stateEnterAnimToFull(animate); |
|
526 |
break; |
|
527 |
case CONTENT_TOOLBAR_STATE_ANIM_TO_PARTIAL: |
|
528 |
stateEnterAnimToPartial(animate); |
|
529 |
break; |
|
530 |
case CONTENT_TOOLBAR_STATE_FULL: |
|
531 |
stateEnterFull(animate); |
|
532 |
break; |
|
533 |
default: |
|
534 |
qDebug() << "ContentToolbarChromeItem::onStateEntry - invalid state" ; |
|
535 |
break; |
|
536 |
} |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
537 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
538 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
539 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
540 |
bool ContentToolbarChromeItem::mvSnippetVisible() { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
541 |
|
3 | 542 |
ChromeSnippet * mv = m_snippet->chrome()->getSnippet("MostVisitedViewId"); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
543 |
bool result = false; |
3 | 544 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
545 |
if (mv && mv->isVisible() ) { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
546 |
result = true; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
547 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
548 |
return result; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
549 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
550 |
|
3 | 551 |
void ContentToolbarChromeItem::hideLinkedChildren() { |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
552 |
|
3 | 553 |
for (int i=0; i < m_linkedChildren.count() ; i++) { |
554 |
||
555 |
m_linkedChildren.at(i)->hide(); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
556 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
557 |
} |
16 | 558 |
|
559 |
bool ContentToolbarChromeItem::event(QEvent* event) |
|
560 |
{ |
|
561 |
bool ret = false; |
|
562 |
if (event->type() == QEvent::Gesture && |
|
563 |
m_state != CONTENT_TOOLBAR_STATE_FULL) { |
|
564 |
||
565 |
ret = m_webView->webWidget()->event(event); |
|
566 |
} |
|
567 |
else { |
|
568 |
ret = ChromeItem::event(event); |
|
569 |
} |
|
570 |
return ret; |
|
571 |
} |
|
572 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
573 |
} // end of namespace GVA |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
574 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
575 |