equal
deleted
inserted
replaced
26 */ |
26 */ |
27 |
27 |
28 /*! |
28 /*! |
29 Constructor of class. It set start values. |
29 Constructor of class. It set start values. |
30 */ |
30 */ |
31 NmApiFolderListing::NmApiFolderListing(QObject *parent, const quint64 &nmMailboxId) : |
31 NmApiFolderListing::NmApiFolderListing(QObject *parent, const quint64 &mailboxId) : |
32 NmApiMessageTask(parent) |
32 NmApiMessageTask(parent) |
33 { |
33 { |
34 NM_FUNCTION; |
34 NM_FUNCTION; |
35 |
35 mFolderListing = new NmApiFolderListingPrivate(mailboxId, this); |
36 mFolderListing = new NmApiFolderListingPrivate(this); |
|
37 mFolderListing->mIsRunning = false; |
|
38 mFolderListing->mMailboxId = nmMailboxId; |
|
39 } |
36 } |
40 |
37 |
41 /*! |
38 /*! |
42 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. |
43 */ |
40 */ |
44 NmApiFolderListing::~NmApiFolderListing() |
41 NmApiFolderListing::~NmApiFolderListing() |
45 { |
42 { |
46 NM_FUNCTION; |
43 NM_FUNCTION; |
47 |
|
48 if (mFolderListing->mIsRunning) { |
|
49 mFolderListing->releaseEngine(); |
|
50 } |
|
51 } |
44 } |
52 |
45 |
53 /*! |
46 /*! |
54 \brief Returns results after foldersListed signal is received. |
47 \brief Returns results after foldersListed signal is received. |
55 |
48 |
58 It also at start clear inputlist of NmFolder. |
51 It also at start clear inputlist of NmFolder. |
59 */ |
52 */ |
60 bool NmApiFolderListing::getFolders(QList<EmailClientApi::NmApiFolder> &folders) |
53 bool NmApiFolderListing::getFolders(QList<EmailClientApi::NmApiFolder> &folders) |
61 { |
54 { |
62 NM_FUNCTION; |
55 NM_FUNCTION; |
63 |
56 return mFolderListing->folders(folders); |
64 folders.clear(); |
|
65 if (!mFolderListing->mIsRunning || mFolderListing->mFolders.isEmpty()) { |
|
66 return false; |
|
67 } |
|
68 folders = mFolderListing->mFolders; |
|
69 mFolderListing->mFolders.clear(); |
|
70 return true; |
|
71 } |
57 } |
72 |
58 |
73 /*! |
59 /*! |
74 \brief Starts gathering folders list. |
60 \brief Starts gathering folders list. |
75 |
61 |
84 |
70 |
85 */ |
71 */ |
86 bool NmApiFolderListing::start() |
72 bool NmApiFolderListing::start() |
87 { |
73 { |
88 NM_FUNCTION; |
74 NM_FUNCTION; |
89 |
75 qint32 folderCount = mFolderListing->listFolders(); |
90 if (mFolderListing->mIsRunning) { |
|
91 return true; |
|
92 } |
|
93 |
|
94 if (!mFolderListing->initializeEngine()) { |
|
95 QMetaObject::invokeMethod(this, "foldersListed", Qt::QueuedConnection, Q_ARG(qint32, |
|
96 (qint32) FolderListingFailed)); |
|
97 return false; |
|
98 } |
|
99 |
|
100 qint32 folderCount = mFolderListing->grabFolders(); |
|
101 |
|
102 mFolderListing->mIsRunning = true; |
|
103 QMetaObject::invokeMethod(this, "foldersListed", Qt::QueuedConnection, |
76 QMetaObject::invokeMethod(this, "foldersListed", Qt::QueuedConnection, |
104 Q_ARG(qint32, folderCount)); |
77 Q_ARG(qint32, folderCount)); |
105 |
78 |
106 return true; |
79 return true; |
107 } |
80 } |
115 */ |
88 */ |
116 void NmApiFolderListing::cancel() |
89 void NmApiFolderListing::cancel() |
117 { |
90 { |
118 NM_FUNCTION; |
91 NM_FUNCTION; |
119 |
92 |
120 if (!mFolderListing->mIsRunning) { |
93 mFolderListing->cancel(); |
121 return; |
|
122 } |
|
123 |
|
124 mFolderListing->mIsRunning = false; |
|
125 mFolderListing->releaseEngine(); |
|
126 mFolderListing->mFolders.clear(); |
|
127 |
|
128 emit canceled(); |
94 emit canceled(); |
129 } |
95 } |
130 |
96 |
131 /*! |
97 /*! |
132 \brief Return info if listing is running |
98 \brief Return info if listing is running |
133 */ |
99 */ |
134 bool NmApiFolderListing::isRunning() const |
100 bool NmApiFolderListing::isRunning() const |
135 { |
101 { |
136 NM_FUNCTION; |
102 NM_FUNCTION; |
137 |
103 return mFolderListing->isRunning(); |
138 return mFolderListing->mIsRunning; |
|
139 } |
104 } |
140 |
105 |
141 } |
106 } |
142 |
107 |
143 |
108 |