17 * |
17 * |
18 * Description: |
18 * Description: |
19 * |
19 * |
20 */ |
20 */ |
21 #include "mostvisitedsnippet.h" |
21 #include "mostvisitedsnippet.h" |
22 #include "mostvisitedpageview.h" |
22 #include "MostVisitedView.h" |
|
23 #include "Utilities.h" |
|
24 #include "ExternalEventCharm.h" |
23 |
25 |
24 namespace GVA { |
26 namespace GVA { |
25 |
27 |
26 MostVisitedSnippet::MostVisitedSnippet(const QString & elementId, ChromeWidget * chrome, QGraphicsWidget * widget, const QWebElement & element) : |
28 MostVisitedSnippet::MostVisitedSnippet(const QString & elementId, ChromeWidget * chrome, QGraphicsWidget * widget, const QWebElement & element) : |
27 ChromeSnippet(elementId, chrome, widget, element) |
29 ChromeSnippet(elementId, chrome, widget, element), |
|
30 m_externalEventCharm(0) |
28 { |
31 { |
29 m_chrome = chrome; |
32 m_chrome = chrome; |
|
33 |
|
34 } |
|
35 |
|
36 MostVisitedSnippet::~MostVisitedSnippet() |
|
37 { |
|
38 disconnect(m_chrome , SIGNAL(aspectChanged(int)), this, SLOT(displayModeChanged(int))); |
|
39 delete m_externalEventCharm; |
30 } |
40 } |
31 |
41 |
32 MostVisitedSnippet * MostVisitedSnippet::instance(const QString& elementId, ChromeWidget * chrome, const QWebElement & element) |
42 MostVisitedSnippet * MostVisitedSnippet::instance(const QString& elementId, ChromeWidget * chrome, const QWebElement & element) |
33 { |
43 { |
34 MostVisitedSnippet* that = new MostVisitedSnippet(elementId, chrome, 0, element); |
44 MostVisitedSnippet* that = new MostVisitedSnippet(elementId, chrome, 0, element); |
35 that->setChromeWidget( new MostVisitedPagesWidget(that, chrome) ); |
45 |
|
46 that->setChromeWidget( new MostVisitedView(qtTrId("txt_browser_most_visited_title_most_visited"), chrome->layout()) ); |
36 that->widget()->hide(); //TODO: Shouldn't be needed? |
47 that->widget()->hide(); //TODO: Shouldn't be needed? |
37 return that; |
48 return that; |
38 } |
49 } |
39 |
50 |
40 void MostVisitedSnippet::toggleVisibility(bool animate) |
51 void MostVisitedSnippet::toggleVisibility(bool animate) |
41 { |
52 { |
42 MostVisitedPagesWidget *mostVisitedPagesWidget = dynamic_cast<MostVisitedPagesWidget*>(widget()); |
53 QString displayMode; |
|
54 MostVisitedView *mostVisitedPagesWidget = dynamic_cast<MostVisitedView*>(widget()); |
43 if (!mostVisitedPagesWidget) |
55 if (!mostVisitedPagesWidget) |
44 return; |
56 return; |
45 |
57 |
46 if (!isVisible()) { |
58 if (!isVisible()) { |
47 mostVisitedPagesWidget->open(); |
59 #ifdef Q_WS_MAEMO_5 |
48 updateMVGeometry(); |
60 mostVisitedPagesWidget->setGeometry(10, 10, 784, 335); |
|
61 #else |
|
62 |
|
63 displayMode = m_chrome->layout()->getDisplayMode(); |
|
64 |
|
65 if (displayMode == "portrait") |
|
66 mostVisitedPagesWidget->setGeometry(10, 20, 350, 553); |
|
67 else |
|
68 mostVisitedPagesWidget->setGeometry(15, 10, 620, 284); |
|
69 #endif |
|
70 mostVisitedPagesWidget->update(displayMode); |
49 mostVisitedPagesWidget->show(); |
71 mostVisitedPagesWidget->show(); |
50 ChromeSnippet::toggleVisibility(animate); |
72 ChromeSnippet::toggleVisibility(animate); |
51 |
73 |
52 } else { |
74 } else { |
53 mostVisitedPagesWidget->close(); |
75 mostVisitedPagesWidget->close(); |
54 } |
76 } |
55 } |
77 } |
56 |
78 |
57 |
|
58 void MostVisitedSnippet::setChromeWidget(QGraphicsWidget * widget) |
79 void MostVisitedSnippet::setChromeWidget(QGraphicsWidget * widget) |
59 { |
80 { |
60 connect(m_chrome , SIGNAL(aspectChanged(int)), this, SLOT(displayModeChanged(int))); |
81 safe_connect(m_chrome , SIGNAL(aspectChanged(int)), this, SLOT(displayModeChanged(int))); |
61 ChromeSnippet::setChromeWidget(widget); |
82 ChromeSnippet::setChromeWidget(widget); |
62 MostVisitedPagesWidget *mostVisitedPagesWidget = dynamic_cast<MostVisitedPagesWidget*>(widget); |
83 MostVisitedView *mostVisitedPagesWidget = dynamic_cast<MostVisitedView*>(widget); |
63 connect(mostVisitedPagesWidget, SIGNAL(closeComplete()), this, SIGNAL(mostVisitedSnippetCloseComplete())); |
84 safe_connect(mostVisitedPagesWidget, SIGNAL(closeComplete()), this, SLOT(onWidgetCloseComplete())); |
64 } |
85 // m_externalEventCharm = new ExternalEventCharm(widget); |
65 |
86 // safe_connect(m_externalEventCharm, SIGNAL(externalMouseEvent(QEvent *, const QString &, const QString &)), |
66 void MostVisitedSnippet::updateMVGeometry() |
87 // this, SIGNAL(externalMouseEvent(QEvent *, const QString &, const QString &))); |
67 { |
|
68 MostVisitedPagesWidget *mostVisitedPagesWidget = dynamic_cast<MostVisitedPagesWidget*>(widget()); |
|
69 qreal toolBarHeight; |
|
70 |
|
71 ChromeSnippet* visibleSnippet= m_chrome->getSnippet("WebViewToolbarId"); |
|
72 if (visibleSnippet) |
|
73 toolBarHeight = visibleSnippet->widget()->rect().height(); |
|
74 |
|
75 //Resizing the widget to exclude the toolbar area so that it can handle events on toolbar as external event |
|
76 mostVisitedPagesWidget->resize(QSize(m_chrome->layout()->size().width(),(m_chrome->layout()->size().height()- toolBarHeight - KSpaceToolbarMVP))); |
|
77 mostVisitedPagesWidget->updatePos(QPointF(0, 0), toolBarHeight); |
|
78 } |
88 } |
79 |
89 |
80 void MostVisitedSnippet::displayModeChanged(int newMode) |
90 void MostVisitedSnippet::displayModeChanged(int newMode) |
81 { |
91 { |
|
92 if (isVisible()) |
|
93 ChromeSnippet::toggleVisibility(); |
|
94 emit mostVisitedSnippetCloseComplete(); |
|
95 /* TO DO: reenable this code. |
|
96 |
82 if (isVisible()) { |
97 if (isVisible()) { |
83 MostVisitedPagesWidget *mostVisitedPagesWidget = dynamic_cast<MostVisitedPagesWidget*>(widget()); |
98 MostVisitedView *mostVisitedView = dynamic_cast<MostVisitedView*>(widget()); |
84 |
99 |
85 if (!mostVisitedPagesWidget) |
100 if (!mostVisitedPagesWidget) |
86 return; |
101 return; |
87 |
102 |
88 updateMVGeometry(); |
103 updateMVGeometry(); |
89 |
104 |
90 QString displayMode = (newMode == landscape) ? "Landscape" : "Portrait"; |
105 QString displayMode = (newMode == landscape) ? "Landscape" : "Portrait"; |
91 mostVisitedPagesWidget->displayModeChanged(displayMode); |
106 mostVisitedPagesWidget->displayModeChanged(displayMode); |
92 } |
107 } |
|
108 */ |
93 } |
109 } |
94 |
110 |
95 void MostVisitedSnippet::hide(bool animate) |
111 void MostVisitedSnippet::hide(bool animate) |
96 { |
112 { |
97 MostVisitedPagesWidget *mostVisitedPagesWidget = dynamic_cast<MostVisitedPagesWidget*>(widget()); |
113 MostVisitedView *mostVisitedPagesWidget = dynamic_cast<MostVisitedView*>(widget()); |
98 |
|
99 if (!mostVisitedPagesWidget) |
114 if (!mostVisitedPagesWidget) |
100 return; |
115 return; |
101 |
116 |
102 ChromeSnippet::hide(animate); |
117 ChromeSnippet::hide(false); |
103 mostVisitedPagesWidget->closeAnimationCompleted(); |
|
104 } |
118 } |
105 |
119 |
106 void MostVisitedSnippet::close() |
120 void MostVisitedSnippet::close() |
107 { |
121 { |
108 MostVisitedPagesWidget *mostVisitedPagesWidget = dynamic_cast<MostVisitedPagesWidget*>(widget()); |
122 MostVisitedView *mostVisitedPagesWidget = dynamic_cast<MostVisitedView*>(widget()); |
109 |
123 |
110 if (mostVisitedPagesWidget) { |
124 if (mostVisitedPagesWidget) { |
111 mostVisitedPagesWidget->close(); |
125 mostVisitedPagesWidget->close(); |
112 } |
126 } |
113 } |
127 } |
114 |
128 |
115 MostVisitedSnippet::~MostVisitedSnippet() |
129 void MostVisitedSnippet::onWidgetCloseComplete() { // slot |
116 { |
130 if (isVisible()) |
117 disconnect(m_chrome , SIGNAL(aspectChanged(int)), this, SLOT(displayModeChanged(int))); |
131 ChromeSnippet::toggleVisibility(); |
|
132 emit mostVisitedSnippetCloseComplete(); |
118 } |
133 } |
119 |
134 |
120 |
135 |
|
136 |
|
137 |
121 } |
138 } |