ginebra2/mostvisitedsnippet.cpp
changeset 16 3c88a81ff781
parent 12 afcd8e6d025b
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
     3 * All rights reserved.
     3 * All rights reserved.
     4 *
     4 *
     5 * This program is free software: you can redistribute it and/or modify
     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
     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.
     7 * the Free Software Foundation, version 2.1 of the License.
     8 *
     8 * 
     9 * This program is distributed in the hope that it will be useful,
     9 * This program is distributed in the hope that it will be useful,
    10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
    10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12 * GNU Lesser General Public License for more details.
    12 * GNU Lesser General Public License for more details.
    13 *
    13 *
    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 }