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