messagingapp/msgui/unifiedviewer/inc/univieweraddresswidget.h
author hgs
Fri, 25 Jun 2010 15:47:40 +0530
changeset 37 518b245aa84c
parent 23 238255e8b033
child 48 4f501b74aeb1
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
37
hgs
parents: 23
diff changeset
    14
 * Description: Custom widget derived from HbTextEdit which provides rich text
hgs
parents: 23
diff changeset
    15
 *              processing
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 *
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
 */
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#ifndef UNI_VIEWER_ADDRESS_WIDGET_H
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#define UNI_VIEWER_ADDRESS_WIDGET_H
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
37
hgs
parents: 23
diff changeset
    21
#include <HbTextEdit>
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
37
hgs
parents: 23
diff changeset
    23
#include "unidatamodelplugininterface.h"
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
37
hgs
parents: 23
diff changeset
    25
/**
hgs
parents: 23
diff changeset
    26
 * UniViewerAddressWidget provides support for rich text processing
hgs
parents: 23
diff changeset
    27
 */
hgs
parents: 23
diff changeset
    28
class UniViewerAddressWidget : public HbTextEdit
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
{
37
hgs
parents: 23
diff changeset
    30
    Q_OBJECT
hgs
parents: 23
diff changeset
    31
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
public:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
    /**
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
     * Constructor
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
     */
37
hgs
parents: 23
diff changeset
    36
    UniViewerAddressWidget(QGraphicsItem * parent = 0);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
    /**
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
     * Destructor
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
     */
37
hgs
parents: 23
diff changeset
    41
    ~UniViewerAddressWidget();
hgs
parents: 23
diff changeset
    42
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    /**
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
     * Populates the addresses and creates the anchors on them.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
     * @param label Label of the address like - "From"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
     * @param address Address string to be populated.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
     */
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    void populate(const QString &label, const QString &address, const QString &alias);
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
    /**
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
     * Populates the addresses and creates the anchors on them.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
     * @param label Label of the address like - "To", "Cc"
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
     * @param addressList List of addresses to be populated.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
     */
37
hgs
parents: 23
diff changeset
    55
    void populate(const QString &label,ConvergedMessageAddressList addressList);
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
    /**
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
     * Clears the contents of the widget.
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
     */
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    void clearContent();
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
37
hgs
parents: 23
diff changeset
    62
protected:
hgs
parents: 23
diff changeset
    63
    /**
hgs
parents: 23
diff changeset
    64
     * Gesture event, overridden from base class.
hgs
parents: 23
diff changeset
    65
     */
hgs
parents: 23
diff changeset
    66
    void gestureEvent(QGestureEvent* event);
hgs
parents: 23
diff changeset
    67
    
hgs
parents: 23
diff changeset
    68
private:
hgs
parents: 23
diff changeset
    69
    /**
hgs
parents: 23
diff changeset
    70
     * Helper method to highlight find item on tap.
hgs
parents: 23
diff changeset
    71
     * @param highlight, if true highlight else dont.
hgs
parents: 23
diff changeset
    72
     */
hgs
parents: 23
diff changeset
    73
    void highlightText(bool highlight);
hgs
parents: 23
diff changeset
    74
    
hgs
parents: 23
diff changeset
    75
    /**
hgs
parents: 23
diff changeset
    76
     * short tap handler.
hgs
parents: 23
diff changeset
    77
     * @param anchor anchor at cursor position.
hgs
parents: 23
diff changeset
    78
     */
hgs
parents: 23
diff changeset
    79
    void shortTapAction(QString anchor); 
hgs
parents: 23
diff changeset
    80
    
hgs
parents: 23
diff changeset
    81
    /** Helper method to get contact id against phone number or e-mail id.
hgs
parents: 23
diff changeset
    82
     * @param value phone number or email id.
hgs
parents: 23
diff changeset
    83
     * @param fieldName name of field to be matched.
hgs
parents: 23
diff changeset
    84
     * @param fieldType type of field to be matched.
hgs
parents: 23
diff changeset
    85
     */
hgs
parents: 23
diff changeset
    86
    int resolveContactId(const QString& value,
hgs
parents: 23
diff changeset
    87
                         const QString& fieldName, 
hgs
parents: 23
diff changeset
    88
                         const QString& fieldType);
hgs
parents: 23
diff changeset
    89
    
hgs
parents: 23
diff changeset
    90
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
private slots:
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    /**
37
hgs
parents: 23
diff changeset
    94
      * called when aboutToShowContextMenu signal is emitted.
hgs
parents: 23
diff changeset
    95
      */
hgs
parents: 23
diff changeset
    96
    void aboutToShowContextMenu(HbMenu *contextMenu, const QPointF &pos);
hgs
parents: 23
diff changeset
    97
    
hgs
parents: 23
diff changeset
    98
    /**
hgs
parents: 23
diff changeset
    99
     * Called when option menu is closed.
hgs
parents: 23
diff changeset
   100
     */
hgs
parents: 23
diff changeset
   101
    void menuClosed();
hgs
parents: 23
diff changeset
   102
    
hgs
parents: 23
diff changeset
   103
    /**
hgs
parents: 23
diff changeset
   104
     * handlers for phone number specific menu items.
hgs
parents: 23
diff changeset
   105
     */
hgs
parents: 23
diff changeset
   106
    void openContactInfo();
hgs
parents: 23
diff changeset
   107
    void call();
hgs
parents: 23
diff changeset
   108
    void saveToContacts();
hgs
parents: 23
diff changeset
   109
    void sendMessage();
hgs
parents: 23
diff changeset
   110
    void copyToClipboard();
hgs
parents: 23
diff changeset
   111
    
hgs
parents: 23
diff changeset
   112
    /**
hgs
parents: 23
diff changeset
   113
     * called after service request is completed.
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
     */
37
hgs
parents: 23
diff changeset
   115
    void onServiceRequestCompleted();
hgs
parents: 23
diff changeset
   116
    
hgs
parents: 23
diff changeset
   117
    /**
hgs
parents: 23
diff changeset
   118
     * Slot for handling valid returns from the framework.
hgs
parents: 23
diff changeset
   119
     * 
hgs
parents: 23
diff changeset
   120
     * @param result const QVariant&
hgs
parents: 23
diff changeset
   121
     */
hgs
parents: 23
diff changeset
   122
    void handleOk(const QVariant& result);
hgs
parents: 23
diff changeset
   123
    
hgs
parents: 23
diff changeset
   124
    /**
hgs
parents: 23
diff changeset
   125
     * Slot for handling errors. Error ids are provided as 
hgs
parents: 23
diff changeset
   126
     * 32-bit integers.
hgs
parents: 23
diff changeset
   127
     * @param errorCode qint32
hgs
parents: 23
diff changeset
   128
     */
hgs
parents: 23
diff changeset
   129
    void handleError(int errorCode, const QString& errorMessage);
hgs
parents: 23
diff changeset
   130
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
37
hgs
parents: 23
diff changeset
   132
signals:
hgs
parents: 23
diff changeset
   133
    /**
hgs
parents: 23
diff changeset
   134
     * this signal is emitted when send message is triggered for a highlighted number.
hgs
parents: 23
diff changeset
   135
     */
hgs
parents: 23
diff changeset
   136
    void sendMessage(const QString& phoneNumber,const QString& alias);
hgs
parents: 23
diff changeset
   137
    
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
private:
37
hgs
parents: 23
diff changeset
   139
    //Current cursor position.
hgs
parents: 23
diff changeset
   140
    int mCursorPos;
hgs
parents: 23
diff changeset
   141
    
hgs
parents: 23
diff changeset
   142
    //char formats for highlight.
hgs
parents: 23
diff changeset
   143
    QTextCharFormat mFormatHighlight;
hgs
parents: 23
diff changeset
   144
    QTextCharFormat mFormatNormal;
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
37
hgs
parents: 23
diff changeset
   146
    };
23
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
#endif // UNI_VIEWER_ADDRESS_WIDGET_H
238255e8b033 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
// EOF