Merge "persistent color scheme selection"
[trojita.git] / src / Gui / TaskProgressIndicator.h
blob34d647512bc2bbc6eb98a887174abde29b373c0a
1 /* Copyright (C) 2006 - 2014 Jan Kundrát <jkt@flaska.net>
3 This file is part of the Trojita Qt IMAP e-mail client,
4 http://trojita.flaska.net/
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License as
8 published by the Free Software Foundation; either version 2 of
9 the License or (at your option) version 3 or any later version
10 accepted by the membership of KDE e.V. (or its successor approved
11 by the membership of KDE e.V.), which shall act as a proxy
12 defined in Section 14 of version 3 of the license.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef GUI_TASKPROGRESSINDICATOR_H
24 #define GUI_TASKPROGRESSINDICATOR_H
26 #include <QPointer>
27 #include "Gui/Spinner.h"
29 class QTimer;
31 namespace Imap
33 namespace Mailbox
35 class Model;
36 class VisibleTasksModel;
40 namespace Gui
43 class Spinner;
45 /** @short A GUI element for showing whether anything is "using" the IMAP connection */
46 class TaskProgressIndicator : public Spinner
48 Q_OBJECT
49 public:
50 explicit TaskProgressIndicator(QWidget *parent = 0);
52 void setImapModel(Imap::Mailbox::Model *model);
54 public slots:
55 void updateActivityIndication();
57 private:
58 /** @short Model for a list of "visible tasks" */
59 QPointer<Imap::Mailbox::VisibleTasksModel> m_visibleTasksModel;
61 QTimer *m_busyCursorTrigger;
63 /** @short Is there any ongoing activity? */
64 bool m_busy;
69 #endif // GUI_TASKPROGRESSINDICATOR_H