example/TwitterAuthApp/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, 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