code cleanup
[case] / src / progressbar.h
1 // case - file manager for N900
2 // Copyright (C) 2010 Lukas Hrazky <lukkash@email.cz>
3 // 
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 // 
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 // 
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
18 #ifndef PROGRESSBAR_H
19 #define PROGRESSBAR_H
20
21 #include <QProgressBar>
22 #include <QIcon>
23
24
25 class ProgressBar : public QProgressBar {
26     Q_OBJECT;
27
28 public:
29     explicit ProgressBar(const QPixmap &icon, const QPixmap &inverseIcon);
30
31     QString mainText, fromText, toText;
32     QPixmap bgIcon, fgIcon;
33     bool paused;
34
35 public slots:
36     void updateProgress(int val);
37     void updateMainText(const QString &text);
38     void setBottomTexts(const QString &left, const QString &right);
39     void setStartTime(time_t t);
40     void pause();
41     void resume(time_t stallTime);
42     void showRemoveNotice();
43
44 protected:
45     void mouseReleaseEvent(QMouseEvent *);
46     void contextMenuEvent(QContextMenuEvent *);
47
48     bool contextEvent;
49
50     // stamp of the last ETA recalculation - done every second
51     time_t lastTimeUpdate;
52     time_t startTime;
53     char timeBuf[10];
54
55 signals:
56     void abortOperation(ProgressBar*);
57     void togglePauseOperation(ProgressBar*);
58 };
59
60 #endif // PROGRESSBAR_H