equal
deleted
inserted
replaced
13 * |
13 * |
14 * Description: |
14 * Description: |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 #include "emailtrace.h" |
18 #include "nmapiheaders.h" |
19 |
19 |
20 #include <nmapifolderlisting.h> |
|
21 #include "nmapifolderlisting_p.h" |
|
22 |
|
23 #include <nmapimailbox.h> |
|
24 #include <nmapifolder.h> |
|
25 |
20 |
26 namespace EmailClientApi |
21 namespace EmailClientApi |
27 { |
22 { |
28 |
23 |
29 /*! |
24 /*! |
31 */ |
26 */ |
32 |
27 |
33 /*! |
28 /*! |
34 Constructor of class. It set start values. |
29 Constructor of class. It set start values. |
35 */ |
30 */ |
36 NmApiFolderListing::NmApiFolderListing(QObject *parent, const quint64 &nmMailboxId) : |
31 NmApiFolderListing::NmApiFolderListing(QObject *parent, const quint64 &mailboxId) : |
37 NmApiMessageTask(parent) |
32 NmApiMessageTask(parent) |
38 { |
33 { |
39 NM_FUNCTION; |
34 NM_FUNCTION; |
40 |
35 mFolderListing = new NmApiFolderListingPrivate(mailboxId, this); |
41 mFolderListing = new NmApiFolderListingPrivate(this); |
|
42 mFolderListing->mIsRunning = false; |
|
43 mFolderListing->mMailboxId = nmMailboxId; |
|
44 } |
36 } |
45 |
37 |
46 /*! |
38 /*! |
47 Destructor of class. It release engine to be safe if manual releasing won't work. |
39 Destructor of class. It release engine to be safe if manual releasing won't work. |
48 */ |
40 */ |
49 NmApiFolderListing::~NmApiFolderListing() |
41 NmApiFolderListing::~NmApiFolderListing() |
50 { |
42 { |
51 NM_FUNCTION; |
43 NM_FUNCTION; |
52 |
|
53 if (mFolderListing->mIsRunning) { |
|
54 mFolderListing->releaseEngine(); |
|
55 } |
|
56 } |
44 } |
57 |
45 |
58 /*! |
46 /*! |
59 \brief Returns results after foldersListed signal is received. |
47 \brief Returns results after foldersListed signal is received. |
60 |
48 |
63 It also at start clear inputlist of NmFolder. |
51 It also at start clear inputlist of NmFolder. |
64 */ |
52 */ |
65 bool NmApiFolderListing::getFolders(QList<EmailClientApi::NmApiFolder> &folders) |
53 bool NmApiFolderListing::getFolders(QList<EmailClientApi::NmApiFolder> &folders) |
66 { |
54 { |
67 NM_FUNCTION; |
55 NM_FUNCTION; |
68 |
56 return mFolderListing->folders(folders); |
69 folders.clear(); |
|
70 if (!mFolderListing->mIsRunning || mFolderListing->mFolders.isEmpty()) { |
|
71 return false; |
|
72 } |
|
73 folders = mFolderListing->mFolders; |
|
74 mFolderListing->mFolders.clear(); |
|
75 return true; |
|
76 } |
57 } |
77 |
58 |
78 /*! |
59 /*! |
79 \brief Starts gathering folders list. |
60 \brief Starts gathering folders list. |
80 |
61 |
89 |
70 |
90 */ |
71 */ |
91 bool NmApiFolderListing::start() |
72 bool NmApiFolderListing::start() |
92 { |
73 { |
93 NM_FUNCTION; |
74 NM_FUNCTION; |
94 |
75 qint32 folderCount = mFolderListing->listFolders(); |
95 if (mFolderListing->mIsRunning) { |
|
96 return true; |
|
97 } |
|
98 |
|
99 if (!mFolderListing->initializeEngine()) { |
|
100 QMetaObject::invokeMethod(this, "foldersListed", Qt::QueuedConnection, Q_ARG(qint32, |
|
101 (qint32) FolderListingFailed)); |
|
102 return false; |
|
103 } |
|
104 |
|
105 qint32 folderCount = mFolderListing->grabFolders(); |
|
106 |
|
107 mFolderListing->mIsRunning = true; |
|
108 QMetaObject::invokeMethod(this, "foldersListed", Qt::QueuedConnection, |
76 QMetaObject::invokeMethod(this, "foldersListed", Qt::QueuedConnection, |
109 Q_ARG(qint32, folderCount)); |
77 Q_ARG(qint32, folderCount)); |
110 |
78 |
111 return true; |
79 return true; |
112 } |
80 } |
120 */ |
88 */ |
121 void NmApiFolderListing::cancel() |
89 void NmApiFolderListing::cancel() |
122 { |
90 { |
123 NM_FUNCTION; |
91 NM_FUNCTION; |
124 |
92 |
125 if (!mFolderListing->mIsRunning) { |
93 mFolderListing->cancel(); |
126 return; |
|
127 } |
|
128 |
|
129 mFolderListing->mIsRunning = false; |
|
130 mFolderListing->releaseEngine(); |
|
131 mFolderListing->mFolders.clear(); |
|
132 |
|
133 emit canceled(); |
94 emit canceled(); |
134 } |
95 } |
135 |
96 |
136 /*! |
97 /*! |
137 \brief Return info if listing is running |
98 \brief Return info if listing is running |
138 */ |
99 */ |
139 bool NmApiFolderListing::isRunning() const |
100 bool NmApiFolderListing::isRunning() const |
140 { |
101 { |
141 NM_FUNCTION; |
102 NM_FUNCTION; |
142 |
103 return mFolderListing->isRunning(); |
143 return mFolderListing->mIsRunning; |
|
144 } |
104 } |
145 |
105 |
146 } |
106 } |
147 |
107 |
148 #include "moc_nmapifolderlisting.cpp" |
108 |