example/TwitterAuthApp/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, 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
    QString	iLoadingUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
    bool        iIgnorePageLoadCompleteEvent;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
    QProgressBar* progressbar;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
    QVBoxLayout* layout;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
signals:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
     * Called when the dialog succeeds and is about to be dismissed.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
    void dialogDidSucceed ();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
     * Called when the dialog is cancelled and is about to be dismissed.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
    void dialogDidCancel();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
     * Called when dialog failed to load due to an error.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
    void dialogDidFailWithError ( const FBError& error );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
private slots:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
    void cancel();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
    /* slots for signals from QWebView.page() */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
    void linkClicked ( const QUrl & url );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
    void loadStarted ();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
    void loadProgress(int progress);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
    void loadFinished ( bool ok );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
    //Network Error Slots
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
    void slotAuthenticationRequired( QNetworkReply* reply, QAuthenticator* authenticator );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
    void slotsslErrors( QNetworkReply* reply, const QList<QSslError>& errors  );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
    void slotproxyAuthenticationRequired( const QNetworkProxy& proxy, QAuthenticator* authenticator  );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
public:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
	void proxysettings();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
    * Creates the view but does not display it.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
    FBDialog(FBSession* aSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
    FBDialog();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
    * Displays the view with an animation.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
    *
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
    * The view will be added to the top of the current key window.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
    void show();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
    /** Displays the first page of the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
     *
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
     * Do not ever call this directly.  It is intended to be overriden by subclasses.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
    virtual void load ();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
     * Displays a URL in the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
    void loadURL(const QString& aUrl, QNetworkAccessManager::Operation aMethod, const QHash<QString, QString>& aGetParams,
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
                 const QHash<QString, QString>&  aPostParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
    void dismiss(bool aAnimated);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
     * Hides the view and notifies delegates of success or cancellation.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
    void dismissWithSuccess (bool aSuccess, bool aAnimated);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
    * Hides the view and notifies delegates of an error.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
    void dismissWithError (const FBError& aError, bool aAnimated);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
    * Subclasses may override to perform actions just prior to showing the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
    */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
    virtual void dialogWillAppear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
     * Subclasses may override to perform actions just after the dialog is hidden.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
    virtual void dialogWillDisappear();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
    /**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
     * Subclasses should override to process data returned from the server in a 'fbconnect' url.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
     *
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
     * Implementations must call dismissWithSuccess:YES at some point to hide the dialog.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
     */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
    virtual void dialogDidSucceed(const QUrl& aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
    QString title() const;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
    void setTitle ( const QString& aTitle );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   145
    virtual void GetSessionKey(const QUrl& aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   146
    virtual void FetchKeyFromUrl(const QUrl& aUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   147
private:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   148
    void createControls();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   149
    QString generateURL( const QString& aUrl, const QHash<QString, QString>& aParams) const;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   150
    QByteArray generatePostBody (const QHash<QString, QString>& aParams) const;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   151
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   152
    void postDismissCleanup();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   153
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   154
public:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   155
    virtual void GetAccessToken();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   156
 };
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   157
#endif