ginebra2/UrlSearchSnippet.h
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
parent 12 afcd8e6d025b
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
hgs
parents: 0
diff changeset
     4
*
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     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
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    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
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not,
hgs
parents: 0
diff changeset
    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
hgs
parents: 0
diff changeset
    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
#ifndef __URLSEARCH_SNIPPET_H
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#define __URLSEARCH_SNIPPET_H
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
3
hgs
parents: 0
diff changeset
    25
#include "EditorWidget.h"
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "NativeChromeItem.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
namespace GVA {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
class ChromeWidget;
12
hgs
parents: 3
diff changeset
    31
3
hgs
parents: 0
diff changeset
    32
class GUrlSearchItem : public NativeChromeItem
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
    Q_OBJECT
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
public:
3
hgs
parents: 0
diff changeset
    37
    GUrlSearchItem(ChromeSnippet * snippet, ChromeWidget * chrome, QGraphicsItem * parent = 0);
hgs
parents: 0
diff changeset
    38
    virtual ~GUrlSearchItem();
hgs
parents: 0
diff changeset
    39
    QString url() const { return m_urlSearchEditor->text();}
hgs
parents: 0
diff changeset
    40
    void setUrl(const QString &url) {m_urlSearchEditor->setText(url);}
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
16
hgs
parents: 12
diff changeset
    42
    void cut() { m_urlSearchEditor->cut(); }
hgs
parents: 12
diff changeset
    43
    void copy() { m_urlSearchEditor->copy(); }
hgs
parents: 12
diff changeset
    44
    void paste() { m_urlSearchEditor->paste(); }
hgs
parents: 12
diff changeset
    45
    void setContextMenuStatus(bool on) { m_urlSearchEditor->setContextMenuStatus(on); }
hgs
parents: 12
diff changeset
    46
    void setFocusForEditor() { m_urlSearchEditor->setFocusForEditor(); }
hgs
parents: 12
diff changeset
    47
12
hgs
parents: 3
diff changeset
    48
Q_SIGNALS:
hgs
parents: 3
diff changeset
    49
    void changeEditMode(bool);
16
hgs
parents: 12
diff changeset
    50
    void contextEvent(bool);
hgs
parents: 12
diff changeset
    51
hgs
parents: 12
diff changeset
    52
private slots:
hgs
parents: 12
diff changeset
    53
    void onContextEvent(bool isContentSelected);
12
hgs
parents: 3
diff changeset
    54
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
protected:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
    virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
    virtual void resizeEvent(QGraphicsSceneResizeEvent * event);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
3
hgs
parents: 0
diff changeset
    59
private:
16
hgs
parents: 12
diff changeset
    60
    void createEditor();
hgs
parents: 12
diff changeset
    61
    void createIcons();
3
hgs
parents: 0
diff changeset
    62
    void loadToMainWindow();
hgs
parents: 0
diff changeset
    63
    void updateUrlSearchBtn();
hgs
parents: 0
diff changeset
    64
    QString formattedUrl() const; 
16
hgs
parents: 12
diff changeset
    65
    void changeLoadState(bool editing=true);
hgs
parents: 12
diff changeset
    66
    QString urlToBeDisplayed();
hgs
parents: 12
diff changeset
    67
    QString currentTitle();
hgs
parents: 12
diff changeset
    68
    void changeLayout(const bool isSearch);
12
hgs
parents: 3
diff changeset
    69
#ifdef BROWSER_LAYOUT_TENONE
hgs
parents: 3
diff changeset
    70
    void changeToTitle();
hgs
parents: 3
diff changeset
    71
    QString getWindowsViewTitle();
16
hgs
parents: 12
diff changeset
    72
    void layoutToEditMode(const bool editMode);
hgs
parents: 12
diff changeset
    73
    void hideIndicatorButton();
12
hgs
parents: 3
diff changeset
    74
#endif
0
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
private slots:
12
hgs
parents: 3
diff changeset
    77
hgs
parents: 3
diff changeset
    78
    void onContentMouseEvent(QEvent::Type type);
hgs
parents: 3
diff changeset
    79
    void setUrlText(const QString &);
3
hgs
parents: 0
diff changeset
    80
    void onChromeComplete();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
    void setStarted();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    void setProgress(int percent);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
    void setFinished(bool ok);
3
hgs
parents: 0
diff changeset
    84
    void setPageCreated();
hgs
parents: 0
diff changeset
    85
    void setPageChanged();
12
hgs
parents: 3
diff changeset
    86
	void setPageFailed();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    void clearProgress();
16
hgs
parents: 12
diff changeset
    88
    void viewChanged(ControllableViewBase *newView);
3
hgs
parents: 0
diff changeset
    89
    void urlSearchActivatedByEnterKey();
hgs
parents: 0
diff changeset
    90
    void urlSearchActivated();
hgs
parents: 0
diff changeset
    91
    void focusChanged(bool focusIn);
hgs
parents: 0
diff changeset
    92
    void resize();
12
hgs
parents: 3
diff changeset
    93
    void updateLoadStateAndSuggest(int /*position*/, int charsRemoved, int charsAdded);
3
hgs
parents: 0
diff changeset
    94
    void onNewWindowTransitionComplete();
hgs
parents: 0
diff changeset
    95
    void tapped(QPointF&);
16
hgs
parents: 12
diff changeset
    96
    
hgs
parents: 12
diff changeset
    97
#ifdef BROWSER_LAYOUT_TENONE
hgs
parents: 12
diff changeset
    98
    void changeToUrl(QPointF&);
hgs
parents: 12
diff changeset
    99
    void onTitleChange(const QString&);
hgs
parents: 12
diff changeset
   100
    void showSecureIcon(bool show);
hgs
parents: 12
diff changeset
   101
    void urlTitleIndBtnActivated();
hgs
parents: 12
diff changeset
   102
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
12
hgs
parents: 3
diff changeset
   104
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
private:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    ChromeWidget * m_chrome;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
3
hgs
parents: 0
diff changeset
   108
    // configurable attributes
hgs
parents: 0
diff changeset
   109
    qreal m_border;
hgs
parents: 0
diff changeset
   110
    qreal m_padding;
hgs
parents: 0
diff changeset
   111
    qreal m_viewPortWidth;
hgs
parents: 0
diff changeset
   112
    qreal m_viewPortHeight;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
    QColor m_borderColor;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
3
hgs
parents: 0
diff changeset
   115
    // ui components
hgs
parents: 0
diff changeset
   116
    QGraphicsWidget * m_viewPort;
hgs
parents: 0
diff changeset
   117
    ActionButton * m_urlSearchBtn;
16
hgs
parents: 12
diff changeset
   118
#ifdef BROWSER_LAYOUT_TENONE
hgs
parents: 12
diff changeset
   119
    ActionButton * m_urlTitleIndBtn;
hgs
parents: 12
diff changeset
   120
    ActionButton * m_urlTitleIndSecureBtn;
hgs
parents: 12
diff changeset
   121
#endif
3
hgs
parents: 0
diff changeset
   122
    GProgressEditor * m_urlSearchEditor;
12
hgs
parents: 3
diff changeset
   123
    
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
3
hgs
parents: 0
diff changeset
   125
    // variables
hgs
parents: 0
diff changeset
   126
    int m_pendingClearCalls;
16
hgs
parents: 12
diff changeset
   127
    qreal m_buttonIconWidth;
hgs
parents: 12
diff changeset
   128
    qreal m_buttonIconHeight;
3
hgs
parents: 0
diff changeset
   129
    bool m_backFromNewWinTrans;
hgs
parents: 0
diff changeset
   130
    bool m_justFocusIn;
hgs
parents: 0
diff changeset
   131
};
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
3
hgs
parents: 0
diff changeset
   133
class GUrlSearchSnippet : public ChromeSnippet {
hgs
parents: 0
diff changeset
   134
  Q_OBJECT
hgs
parents: 0
diff changeset
   135
public:
hgs
parents: 0
diff changeset
   136
  GUrlSearchSnippet(const QString & elementId, ChromeWidget * chrome,
hgs
parents: 0
diff changeset
   137
              QGraphicsWidget * widget, const QWebElement & element);
hgs
parents: 0
diff changeset
   138
  
hgs
parents: 0
diff changeset
   139
  static GUrlSearchSnippet * instance(const QString& elementId, ChromeWidget * chrome, const QWebElement & element);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
3
hgs
parents: 0
diff changeset
   141
  /// The URL of the web page.
hgs
parents: 0
diff changeset
   142
  QString url() const;
hgs
parents: 0
diff changeset
   143
  void setUrl(const QString &url);
hgs
parents: 0
diff changeset
   144
  Q_PROPERTY(QString url READ url WRITE setUrl)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
16
hgs
parents: 12
diff changeset
   146
Q_SIGNALS:
hgs
parents: 12
diff changeset
   147
  void contextEvent(bool isContentSelected, QString snippetId);
hgs
parents: 12
diff changeset
   148
hgs
parents: 12
diff changeset
   149
public slots:
hgs
parents: 12
diff changeset
   150
  void cut();
hgs
parents: 12
diff changeset
   151
  void copy();
hgs
parents: 12
diff changeset
   152
  void paste();
hgs
parents: 12
diff changeset
   153
  bool editable() { return true; }
hgs
parents: 12
diff changeset
   154
  bool useNativeCopyPasteMenu() { return true; }
hgs
parents: 12
diff changeset
   155
  void sendContextMenuEvent(bool isContentSelected);
hgs
parents: 12
diff changeset
   156
  void setContextMenuStatus(bool on) { urlSearchItem()->setContextMenuStatus(on); }
hgs
parents: 12
diff changeset
   157
  void grabFocus() { urlSearchItem()->setFocusForEditor(); }
3
hgs
parents: 0
diff changeset
   158
hgs
parents: 0
diff changeset
   159
private:
hgs
parents: 0
diff changeset
   160
  GUrlSearchItem *urlSearchItem();
hgs
parents: 0
diff changeset
   161
  GUrlSearchItem const *constUrlSearchItem() const;
0
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
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
} // namespace GVA
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
#endif // __URLSEARCH_SNIPPET_H