1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/* vi: set sw=4 ts=4:
*
* Copyright (C) 2018 - 2020 Christian Hohnstaedt.
*
* All rights reserved.
*/
#ifndef __XCAPROGRESSGUI_H
#define __XCAPROGRESSGUI_H
#include "lib/base.h"
#include "lib/XcaProgress.h"
#include <QProgressBar>
#include <QStatusBar>
#include <QMainWindow>
class XcaProgressGui : public XcaProgress_i
{
private:
QMainWindow *mwin{};
QProgressBar *bar{};
public:
XcaProgressGui() = delete;
XcaProgressGui(QMainWindow *m) : XcaProgress_i(), mwin(m)
{
bar = new QProgressBar();
bar->setMinimum(0);
bar->setTextVisible(true);
}
void start(const QString &what, int max)
{
bar->setValue(0);
bar->setMaximum(max);
bar->setFormat(what);
mwin->statusBar()->addPermanentWidget(bar, 1);
bar->show();
mwin->repaint();
}
void stop()
{
mwin->statusBar()->removeWidget(bar);
}
~XcaProgressGui()
{
delete bar;
}
void increment()
{
int value = bar->value();
if (value == bar->maximum()) {
bar->reset();
} else {
bar->setValue(value +1);
}
}
};
#endif
|