Mywebwidget3/mywebwidget.cpp
author Wesley Thierry <wesleyt@symbian.org>
Mon, 25 Oct 2010 10:35:17 -0700
changeset 2 fa1a8300ce01
child 8 a593fb7f78c0
permissions -rw-r--r--
adding MyWebWidget
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     1
/*
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     2
* Copyright (c) 2010 Symbian Foundation.
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     3
* All rights reserved.
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     5
* under the terms of the "Eclipse Public License v1.0"
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     8
*
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
     9
* Initial Contributors:
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    10
* Symbian Foundation - Initial contribution
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    11
*
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    12
* Description:
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    13
* Implementation of the MyWebWidget class.
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    14
*/
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    15
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    16
#include <QtGui/QLineEdit>
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    17
#include <QtWebKit/QWebView>
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    18
#include <QtGui/QVBoxLayout>
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    19
#include <QtGui/QLabel>
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    20
#include <QtCore/QUrl>
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    21
#include <QtGui/QAction>
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    22
#include <QtWebKit/QWebHistory>
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    23
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    24
#include "mytoolbar.h" //added
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    25
#include "mywebwidget.h"
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    26
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    27
MyWebWidget::MyWebWidget(QWidget *parent)
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    28
    : QWidget(parent)
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    29
{
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    30
    m_softkeyAction = new QAction( tr("Options"), this );
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    31
    m_softkeyAction->setSoftKeyRole(QAction::PositiveSoftKey);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    32
    addAction(m_softkeyAction);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    33
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    34
    m_lineEdit = new QLineEdit(this);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    35
    m_lineEdit->setStyleSheet("background-color:white; padding: 6px ; color:blue");
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    36
    m_lineEdit->setText("Enter url ...");
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    37
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    38
    m_view = new QWebView(this);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    39
    m_view->load(QUrl("http://blog.symbian.org"));
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    40
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    41
    m_layout = new QVBoxLayout();
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    42
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    43
    m_layout->addWidget(m_lineEdit);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    44
    m_layout->addWidget(m_view);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    45
    m_layout->insertSpacing(1,10);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    46
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    47
    //add toolbar
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    48
    m_toolbar = new MyToolBar(this);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    49
    m_layout->addWidget(m_toolbar);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    50
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    51
    setLayout(m_layout);
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    52
    m_layout->addStretch();
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    53
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    54
    connect(m_lineEdit,SIGNAL(editingFinished()),SLOT(openUrl()));
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    55
    connect(m_view,SIGNAL(loadFinished(bool)),SLOT(onLoadFinished(bool)));
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    56
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    57
    //connect the toolbar as well
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    58
    connect(m_toolbar,SIGNAL(goBack()),SLOT(loadPreviousPage()));
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    59
}
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    60
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    61
MyWebWidget::~MyWebWidget()
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    62
{
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    63
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    64
}
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    65
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    66
//added
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    67
void MyWebWidget::loadPreviousPage()
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    68
{
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    69
    if(m_view->history()->canGoBack())
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    70
    {
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    71
        m_view->history()->back();
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    72
    }
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    73
}
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    74
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    75
void MyWebWidget::openUrl()
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    76
{
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    77
    QString url(m_lineEdit->text());
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    78
    if(!url.contains("http://",Qt::CaseInsensitive))
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    79
        url.prepend("http://");
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    80
    m_view->load(QUrl(url));
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    81
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    82
}
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    83
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    84
void MyWebWidget::onLoadFinished(bool finished)
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    85
{
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    86
    if(finished){
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    87
        m_lineEdit->clear();
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    88
        m_lineEdit->setText(tr("Enter url ..."));
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    89
    }
fa1a8300ce01 adding MyWebWidget
Wesley Thierry <wesleyt@symbian.org>
parents:
diff changeset
    90
}