OSDN Git Service

use Singleton
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Fri, 23 Jul 2004 14:16:21 +0000 (14:16 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Fri, 23 Jul 2004 14:16:21 +0000 (14:16 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@1262 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/kita.cpp
kita/src/libkita/account.cpp
kita/src/libkita/account.h

index f1aeb0f..a6a7744 100644 (file)
@@ -903,8 +903,7 @@ void KitaMainWindow::slotIsKitaActive()
 
 void KitaMainWindow::login()
 {
-    Kita::Account account;
-    if ( account.login( KitaConfig::userID(), KitaConfig::password() ) ) {
+    if ( Kita::Account::login( KitaConfig::userID(), KitaConfig::password() ) ) {
         slotSetMainStatusbar( "Login succeeded." );
     } else {
         slotSetMainStatusbar( "Login failed." );
index 81d7050..d0a164d 100644 (file)
 
 using namespace Kita;
 
+Account* Account::instance = 0;
+
+Account* Account::getInstance()
+{
+    if ( instance == 0 ) {
+        instance = new Account();
+    }
+    return instance;
+}
+
 Account::Account()
         : m_isLogged( false )
 {}
@@ -20,6 +30,11 @@ Account::~Account()
 
 bool Account::login( const QString& userID, const QString& password )
 {
+    return getInstance()->loginInternal( userID, password );
+}
+
+bool Account::loginInternal( const QString& userID, const QString& password )
+{
     KURL url( "https://2chv.tora3.net/futen.cgi" );
     QString postData = QString("ID=") + userID + QString("&PW=") + password;
 
index 824cfa9..361b130 100644 (file)
@@ -26,20 +26,25 @@ namespace Kita
     class Account : public QObject
     {
         Q_OBJECT
+        static Account* instance;
 
         KIO::Job* m_job;
         QCString m_data;
         QString m_sessionID;
         bool m_isLogged;
 
+        Account();
+        ~Account();
         void enter_loop();
+        bool loginInternal( const QString& userID, const QString& password );
+        static Account* getInstance();
     private slots:
         void slotReceiveData( KIO::Job* job, const QByteArray& data );
         void slotResult( KIO::Job* job );
     public:
-        Account();
-        ~Account();
-        bool login( const QString& userID, const QString& password );
+        static const QString& getSessionID() { return getInstance()->m_sessionID; }
+        static bool isLogged() { return getInstance()->m_isLogged; }
+        static bool login( const QString& userID, const QString& password );
     };
 
 }