Add properties to the controller object for showing the upgrade status

This commit is contained in:
Micke Prag 2012-04-18 17:25:17 +02:00
parent 4cc16757ad
commit a2f8d08511
2 changed files with 61 additions and 4 deletions

View file

@ -6,8 +6,9 @@
class Controller::PrivateData {
public:
bool available, nameChanged;
int id, type;
int id, type, upgradeStep;
QString name, serial, firmware;
qreal upgradeProgress;
};
Controller::Controller(int id, int type, const QString &name, QObject *parent) :
@ -19,6 +20,8 @@ Controller::Controller(int id, int type, const QString &name, QObject *parent) :
d->available = false;
d->nameChanged = false;
d->name = name;
d->upgradeStep = -1;
d->upgradeProgress = 0;
const int DATA_LENGTH = 255;
char buff[DATA_LENGTH];
@ -42,6 +45,7 @@ void Controller::setAvailable(bool available) {
d->available = available;
emit availableChanged();
emit firmwareChanged();
emit upgradableChanged();
}
QString Controller::firmware() const {
@ -100,3 +104,39 @@ int Controller::type() const {
return d->type;
}
bool Controller::upgradable() const {
if (!this->available()) {
return false;
}
return isUpgradable();
}
void Controller::upgrade() {
//Do nothing
}
qreal Controller::upgradeProgress() {
return d->upgradeProgress;
}
int Controller::upgradeStep() const {
return d->upgradeStep;
}
void Controller::setUpgradeStep(int newStep) {
d->upgradeStep = newStep;
if (newStep = -1) {
setUpgradeProgress(0);
}
emit upgradeStepChanged();
}
void Controller::setUpgradeProgress(qreal completed) {
d->upgradeProgress = completed;
emit upgradeProgressChanged();
}
bool Controller::isUpgradable() const {
return false;
}

View file

@ -12,14 +12,17 @@ class Controller : public QObject
Q_PROPERTY(int id READ id NOTIFY idChanged)
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(QString serial READ serial NOTIFY serialChanged)
Q_PROPERTY(int type READ type NOTIFY typeChanged())
Q_PROPERTY(int type READ type NOTIFY typeChanged)
Q_PROPERTY(bool upgradable READ upgradable NOTIFY upgradableChanged)
Q_PROPERTY(qreal upgradeProgress READ upgradeProgress NOTIFY upgradeProgressChanged)
Q_PROPERTY(int upgradeStep READ upgradeStep NOTIFY upgradeStepChanged)
public:
explicit Controller(int id = 0, int type = 1, const QString &name = "", QObject *parent = 0);
~Controller();
virtual ~Controller();
bool available() const;
void setAvailable(bool available);
virtual void setAvailable(bool available);
QString firmware() const;
void setFirmware(const QString &version);
@ -37,6 +40,11 @@ public:
int type() const;
bool upgradable() const;
Q_INVOKABLE virtual void upgrade();
qreal upgradeProgress();
int upgradeStep() const;
signals:
void availableChanged();
void firmwareChanged();
@ -44,6 +52,15 @@ signals:
void nameChanged();
void serialChanged();
void typeChanged();
void upgradableChanged();
void upgradeProgressChanged();
void upgradeStepChanged();
void upgradeDone();
protected:
virtual bool isUpgradable() const;
void setUpgradeStep(int newStep);
void setUpgradeProgress(qreal completed);
private:
class PrivateData;