22 { |
22 { |
23 |
23 |
24 /*! |
24 /*! |
25 Constructor form NmApiFolderListingPrivate |
25 Constructor form NmApiFolderListingPrivate |
26 */ |
26 */ |
27 NmApiFolderListingPrivate::NmApiFolderListingPrivate(QObject *parent) : |
27 NmApiFolderListingPrivate::NmApiFolderListingPrivate(quint64 mailboxId, QObject *parent) |
28 QObject(parent), mEngine(NULL) |
28 :QObject(parent), |
|
29 mMailboxId(mailboxId), |
|
30 mEngine(NULL), |
|
31 mIsRunning(false) |
29 { |
32 { |
30 NM_FUNCTION; |
33 NM_FUNCTION; |
|
34 mEngine = NmApiEngine::instance(); |
|
35 Q_CHECK_PTR(mEngine); |
31 } |
36 } |
32 |
37 |
33 /*! |
38 /*! |
34 Destructor for NmApiFolderListingPrivate |
39 Destructor for NmApiFolderListingPrivate |
35 */ |
40 */ |
36 NmApiFolderListingPrivate::~NmApiFolderListingPrivate() |
41 NmApiFolderListingPrivate::~NmApiFolderListingPrivate() |
37 { |
42 { |
38 NM_FUNCTION; |
43 NM_FUNCTION; |
39 |
|
40 releaseEngine(); |
|
41 } |
|
42 |
|
43 /*! |
|
44 \brief It initialize engine for email operations. |
|
45 |
|
46 When use initializeEngine need to remember release it. |
|
47 It return value if initialization go good. |
|
48 \sa releaseEngine |
|
49 */ |
|
50 bool NmApiFolderListingPrivate::initializeEngine() |
|
51 { |
|
52 NM_FUNCTION; |
|
53 |
|
54 if (!mEngine) { |
|
55 mEngine = NmApiEngine::instance(); |
|
56 } |
|
57 |
|
58 return mEngine ? true : false; |
|
59 } |
|
60 |
|
61 /*! |
|
62 \brief It release engine for email operations. |
|
63 |
|
64 \sa initializeEngine |
|
65 */ |
|
66 void NmApiFolderListingPrivate::releaseEngine() |
|
67 { |
|
68 NM_FUNCTION; |
|
69 |
|
70 NmApiEngine::releaseInstance(mEngine); |
44 NmApiEngine::releaseInstance(mEngine); |
71 } |
45 } |
72 |
46 |
73 /*! |
47 /*! |
74 \brief It grab folders from engine. |
48 \brief Fetch folders from engine. |
75 |
49 |
76 When it start grabing, it release all old. |
|
77 Because it uses NmFolder with sharedData we don't need care about release memory. |
50 Because it uses NmFolder with sharedData we don't need care about release memory. |
78 |
51 |
79 \return Count of folders or "-1" if there is no engine initialised |
52 \return Count of folders |
80 */ |
53 */ |
81 qint32 NmApiFolderListingPrivate::grabFolders() |
54 qint32 NmApiFolderListingPrivate::listFolders() |
82 { |
55 { |
83 NM_FUNCTION; |
56 NM_FUNCTION; |
84 |
57 mIsRunning = true; |
85 if (!mEngine) { |
|
86 return -1; |
|
87 } |
|
88 |
|
89 mFolders.clear(); |
58 mFolders.clear(); |
90 mEngine->listFolders(mMailboxId, mFolders); |
59 mEngine->listFolders(mMailboxId, mFolders); |
91 return mFolders.count(); |
60 return mFolders.count(); |
92 } |
61 } |
93 |
62 |
|
63 /*! |
|
64 \brief Returns results after listFolders is called. |
|
65 |
|
66 Caller gets ownership of messages. Returns true if results were available. |
|
67 It clears list of folders after be called. |
|
68 It also at start clear inputlist of NmFolder. |
|
69 */ |
|
70 bool NmApiFolderListingPrivate::folders(QList<EmailClientApi::NmApiFolder> &folders) |
|
71 { |
|
72 NM_FUNCTION; |
|
73 bool ret(mIsRunning); |
|
74 folders.clear(); |
|
75 while (!mFolders.isEmpty()) { |
|
76 folders << mFolders.takeFirst(); |
|
77 } |
|
78 mIsRunning = false; |
|
79 return ret; |
94 } |
80 } |
95 |
81 |
|
82 /*! |
|
83 \brief Return info if listing is running |
|
84 */ |
|
85 bool NmApiFolderListingPrivate::isRunning() const |
|
86 { |
|
87 NM_FUNCTION; |
|
88 return mIsRunning; |
|
89 } |
|
90 /*! |
|
91 \brief Clears list of folders. |
|
92 */ |
|
93 void NmApiFolderListingPrivate::cancel() |
|
94 { |
|
95 mIsRunning = false; |
|
96 mFolders.clear(); |
|
97 } |
|
98 } |
|
99 |