example/LinkedInAuthApp/inc/baseDialog.h
author cgandhi
Mon, 11 Oct 2010 21:59:54 +0530
changeset 26 83d6a149c755
permissions -rw-r--r--
Submitting following changes - AuthApps for Last.fm and Twitter added API for checking ServiceAuthorization added for SMFCredMgrClient API added for forcefully removing credential details from SMFCredMgr Extra argument checks in SMfClient APIs APIs for service login and logout from SMFClient Redundant members removed from SmfServerSymbian DSM bug fixes Test Apps included
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     1
/**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     2
* Copyright (c) 2010 Sasken Communication Technologies Ltd.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     3
* All rights reserved.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     5
* under the terms of the "{License}"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     6
* which accompanies  this distribution, and is available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     7
* at the URL "{LicenseUrl}".
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     8
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     9
* Initial Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    10
* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    11
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    12
* Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    13
* Siddhartha Chandra, Satish Kanteti Sasken Communication Technologies Ltd
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    14
* Description:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    15
* Base class of All dialogs
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    16
*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    17
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    18
#ifndef FB_DIALOG_H_
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    19
#define FB_DIALOH_H_
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    20
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    21
#include <QDialog>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    22
#include <QWebView>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    23
#include <qprogressbar.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    24
#include <qboxlayout.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    25
#include "authAppConstants.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    27
// FORWARD DECLARATIONS
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    28
class FBSession;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    29
class FBError;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    30
class QNetworkReply;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    31
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    32
/**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    33
  * The base Dialoggg
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    34
  */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    35
class FBDialog : public QWidget
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    36
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    37
    Q_OBJECT
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    38
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    39
protected:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    40
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    41
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    42
    * The session for which the login is taking place.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    43
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    44
    FBSession*	iSession;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    45
    QWebView*	iWebView;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    46
    QWebSettings* iWebSettings;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
    QString	iLoadingUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
    int count;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
    bool        iIgnorePageLoadCompleteEvent;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
    QProgressBar* progressbar;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
    QVBoxLayout* layout;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
signals:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
     * Called when the dialog succeeds and is about to be dismissed.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
    void dialogDidSucceed ();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
     * Called when the dialog is cancelled and is about to be dismissed.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
    void dialogDidCancel();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
     * Called when dialog failed to load due to an error.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
    void dialogDidFailWithError ( const FBError& error );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
private slots:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
    void cancel();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
    /* slots for signals from QWebView.page() */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
    void linkClicked ( const QUrl & url );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
    void loadStarted ();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
    void loadProgress(int progress);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
    void loadFinished ( bool ok );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
    //Network Error Slots
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
    void slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
    void slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
    void slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
public:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
	void proxysettings();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
    * Creates the view but does not display it.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
    FBDialog(FBSession* aSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
    FBDialog();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
    * Displays the view with an animation.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
    *
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
    * The view will be added to the top of the current key window.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
    void show();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
    /** Displays the first page of the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
     *
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
     * Do not ever call this directly.  It is intended to be overriden by subclasses.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
    virtual void load ();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
		
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
     * Displays a URL in the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
    void loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams,
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
                 const QHash<QString, QString>&  aPostParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
    void dismiss(bool aAnimated);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
     * Hides the view and notifies delegates of success or cancellation.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
    void dismissWithSuccess (bool aSuccess, bool aAnimated);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
    * Hides the view and notifies delegates of an error.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
    void dismissWithError (const FBError& aError, bool aAnimated);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
    * Subclasses may override to perform actions just prior to showing the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
    virtual void dialogWillAppear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
     * Subclasses may override to perform actions just after the dialog is hidden.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
    virtual void dialogWillDisappear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
     * Subclasses should override to process data returned from the server in a 'fbconnect' url.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
     *
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
     * Implementations must call dismissWithSuccess:YES at some point to hide the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
    virtual void dialogDidSucceed(const QUrl& aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
    QString title() const;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   145
    void setTitle ( const QString& aTitle );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   146
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   147
    virtual void GetSessionKey(const QUrl& aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   148
    virtual void FetchKeyFromUrl(const QUrl& aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   149
    virtual void GetAccessToken();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   150
private:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   151
    void createControls();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   152
    QString generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   153
    QByteArray generatePostBody (const QHash<QString, QString>& aParams) const;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   154
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   155
    void postDismissCleanup();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   156
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   157
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   158
 };
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   159
#endif