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 { class Controller::PrivateData {
public: public:
bool available, nameChanged; bool available, nameChanged;
int id, type; int id, type, upgradeStep;
QString name, serial, firmware; QString name, serial, firmware;
qreal upgradeProgress;
}; };
Controller::Controller(int id, int type, const QString &name, QObject *parent) : 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->available = false;
d->nameChanged = false; d->nameChanged = false;
d->name = name; d->name = name;
d->upgradeStep = -1;
d->upgradeProgress = 0;
const int DATA_LENGTH = 255; const int DATA_LENGTH = 255;
char buff[DATA_LENGTH]; char buff[DATA_LENGTH];
@ -42,6 +45,7 @@ void Controller::setAvailable(bool available) {
d->available = available; d->available = available;
emit availableChanged(); emit availableChanged();
emit firmwareChanged(); emit firmwareChanged();
emit upgradableChanged();
} }
QString Controller::firmware() const { QString Controller::firmware() const {
@ -100,3 +104,39 @@ int Controller::type() const {
return d->type; 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(int id READ id NOTIFY idChanged)
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(QString serial READ serial NOTIFY serialChanged) 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: public:
explicit Controller(int id = 0, int type = 1, const QString &name = "", QObject *parent = 0); explicit Controller(int id = 0, int type = 1, const QString &name = "", QObject *parent = 0);
~Controller(); virtual ~Controller();
bool available() const; bool available() const;
void setAvailable(bool available); virtual void setAvailable(bool available);
QString firmware() const; QString firmware() const;
void setFirmware(const QString &version); void setFirmware(const QString &version);
@ -37,6 +40,11 @@ public:
int type() const; int type() const;
bool upgradable() const;
Q_INVOKABLE virtual void upgrade();
qreal upgradeProgress();
int upgradeStep() const;
signals: signals:
void availableChanged(); void availableChanged();
void firmwareChanged(); void firmwareChanged();
@ -44,6 +52,15 @@ signals:
void nameChanged(); void nameChanged();
void serialChanged(); void serialChanged();
void typeChanged(); void typeChanged();
void upgradableChanged();
void upgradeProgressChanged();
void upgradeStepChanged();
void upgradeDone();
protected:
virtual bool isUpgradable() const;
void setUpgradeStep(int newStep);
void setUpgradeProgress(qreal completed);
private: private:
class PrivateData; class PrivateData;