Logo Search packages:      
Sourcecode: kcheckgmail version File versions  Download package


 *   Copyright (C) 2004 by Matthew Wlazlo <mwlazlo@gmail.com>              *
 *   Copyright (C) 2007 by Raphael Geissert <atomo64@gmail.com>            *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
#ifndef GMAIL_H
#define GMAIL_H

#include <qobject.h>
#include <qstring.h>
#include <kurl.h>

#include "gmailwalletmanager.h"

namespace KIO { class Job; }

class QTimer;
class QMutex;
template<class Key, class Value> class QMap;

@author Matthew Wlazlo
00038 class GMail : public QObject
      virtual ~GMail();

      void checkLoginParams();
      void setInterval(unsigned int i);
      void setInterval(unsigned int i, bool forceStart);

      bool isLoggedIn(bool lockCheck);
      bool isLoggedIn();
      bool isChecking();
      QString getURLPart();
      void gotWalletPassword(QString str);

      void login();
      void postLogin(QString url);
      void postLogin();
      void checkGMail();
      QString getRedirectURL(QString buffer);
      void logOut(bool force);
      void logOut();
      void dump2File(const QString filename,const QString data);
      bool cookieExists(QString cookieName, QString url);
      bool cookieExists(QString cookieName);

      unsigned int mInterval;
      QMutex *mCheckLock;
      QMutex *mLoginLock;

      bool mLoginParamsChanged;

      // true if timer spawned this check/login attempt.
      bool mLoginFromTimer;
      bool mCheckFromTimer;
      QString useDomain;
      QString useUsername;
      bool isGAP4D;
      QString sessionCookie;
      QString mUsername;
      QString mPasswordHash;
      QString mPageBuffer;
      QString mLoginBuffer;
      QString mPostLoginBuffer;
      QString findCookies(QString url);
      QString mCookiesCache;
      QTimer *mTimer;
      //Normal GMail
      QString gGMailLoginURL, gGMailLoginPOSTFormat, gGMailCheckURL, gGMailLogOut;

      //GAP4D: Google Applications for Domains
      QString gGAP4DLoginURL, gGAP4DLoginPOSTFormat, gGAP4DCheckURL, gGAP4DLogOut;

      KURL loginRedirection;
public slots:
      void slotCheckGmail();
      void slotGetWalletPassword(const QString&);
      void slotSetWalletPassword(bool);
      void slotLogOut();

protected slots:
      void slotLoginResult(KIO::Job*);
      void slotLoginData(KIO::Job*, const QByteArray&);
      void slotLoginRedirection(KIO::Job *job, const KURL &url);

      void slotPostLoginResult(KIO::Job*);
      void slotPostLoginData(KIO::Job*, const QByteArray&);

      void slotTimeout();

      void slotCheckResult(KIO::Job*);
      void slotCheckData(KIO::Job*, const QByteArray&);
private slots:
      void slotSessionChanged();

      void loginStart();
      void loginDone(bool success, bool spawnedFromTimer, const QString &why = QString::null);

      void checkStart();
      void checkDone(const QString &data);
      void sessionChanged();
      void logingOut();


Generated by  Doxygen 1.6.0   Back to index