source: SMSSender/lib/libdatatypes/src/exceptions/eloginaccountloginexception.h @ 73:85d8decd3656

3.0
Last change on this file since 73:85d8decd3656 was 73:85d8decd3656, checked in by Sämy Zehnder <saemy.zehnder@…>, 8 years ago
  • Backupversion only! Before removal of QObject as parent of EException
File size: 1.8 KB
Line 
1/*
2 * ELoginAccountLoginException.h
3 *
4 *  Created on: Jan 4, 2010
5 *      Author: saemy
6 */
7
8#ifndef ELOGINACCOUNTLOGINEXCEPTION_H_
9#define ELOGINACCOUNTLOGINEXCEPTION_H_
10
11#include <QString>
12
13#include "eexception.h"
14
15namespace LoginAccount {
16
17    class ELoginException: public EException {
18        Q_OBJECT
19
20    public:
21        enum Purpose {
22            RequestError,
23            InvalidLoginData,
24            Other,
25            Unknown
26        };
27
28        ELoginException(const QString& msg)
29            : purpose_(Other)
30            , msgStr_(msg)
31        {
32            qRegisterMetaType<ELoginException>("ELoginException");
33        };
34        ELoginException(const Purpose& purpose)
35            : purpose_(purpose)
36        {
37            qRegisterMetaType<ELoginException>("ELoginException");
38        };
39        virtual ~ELoginException() throw() {};
40
41        Purpose purpose() const throw() { return purpose_; }
42
43        QString toString() const throw() {
44            QString msg = QObject::tr("Login failed: ");
45            switch (purpose()) {
46            case RequestError:
47                return msg + QObject::tr("Request error");
48            case InvalidLoginData:
49                return msg + QObject::tr("Your login data might be wrong");
50            case Other:
51                return msg + msgStr_;
52            case Unknown:
53            default:
54                return msg + QObject::tr("Unknown error");
55            }
56        }
57
58        ELoginException& operator=(const ELoginException& other) {
59            EException::operator=(other);
60            purpose_ = other.purpose();
61            msgStr_  = other.toString();
62
63            return *this;
64        }
65
66    private:
67        Purpose purpose_;
68        QString msgStr_;
69    };
70    Q_DECLARE_METATYPE(ELoginException);
71}
72
73#endif /* ELOGINACCOUNTLOGINEXCEPTION_H_ */
Note: See TracBrowser for help on using the repository browser.