example/LinkedInAuthApp/inc/baseDialog.h
author cgandhi
Tue, 12 Oct 2010 15:23:52 +0530
changeset 27 b3e1347ac96a
parent 26 83d6a149c755
permissions -rw-r--r--
Updating the information for test applications and results.
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