Property change propagation, changing instance groups, icon preview
This commit is contained in:
@ -176,16 +176,28 @@ public:
|
||||
|
||||
//// General Info ////
|
||||
virtual QString name() { return settings().get("name").toString(); }
|
||||
virtual void setName(QString val) { settings().set("name", val); }
|
||||
virtual void setName(QString val)
|
||||
{
|
||||
settings().set("name", val);
|
||||
emit propertiesChanged(this);
|
||||
}
|
||||
|
||||
virtual QString iconKey() const { return settings().get("iconKey").toString(); }
|
||||
virtual void setIconKey(QString val) { settings().set("iconKey", val); }
|
||||
virtual void setIconKey(QString val)
|
||||
{
|
||||
settings().set("iconKey", val);
|
||||
emit propertiesChanged(this);
|
||||
}
|
||||
|
||||
virtual QString notes() const { return settings().get("notes").toString(); }
|
||||
virtual void setNotes(QString val) { settings().set("notes", val); }
|
||||
|
||||
virtual QString group() const { return m_group; }
|
||||
virtual void setGroup(QString val) { m_group = val; }
|
||||
virtual void setGroup(QString val)
|
||||
{
|
||||
m_group = val;
|
||||
emit propertiesChanged(this);
|
||||
}
|
||||
|
||||
virtual bool shouldRebuild() const { return settings().get("NeedsRebuild").toBool(); }
|
||||
virtual void setShouldRebuild(bool val) { settings().set("NeedsRebuild", val); }
|
||||
@ -208,7 +220,10 @@ public:
|
||||
|
||||
virtual qint64 lastLaunch() { return settings().get("lastLaunchTime").value<qint64>(); }
|
||||
virtual void setLastLaunch(qint64 val = QDateTime::currentMSecsSinceEpoch())
|
||||
{ settings().set("lastLaunchTime", val); }
|
||||
{
|
||||
settings().set("lastLaunchTime", val);
|
||||
emit propertiesChanged(this);
|
||||
}
|
||||
|
||||
|
||||
////// Directories //////
|
||||
@ -283,6 +298,12 @@ public:
|
||||
*/
|
||||
virtual SettingsObject &settings() const;
|
||||
|
||||
signals:
|
||||
/*!
|
||||
* \brief Signal emitted when properties relevant to the instance view change
|
||||
*/
|
||||
void propertiesChanged(Instance * inst);
|
||||
|
||||
private:
|
||||
QString m_rootDir;
|
||||
QString m_group;
|
||||
|
@ -78,6 +78,9 @@ signals:
|
||||
void instanceChanged(int index);
|
||||
void invalidated();
|
||||
|
||||
private slots:
|
||||
void propertiesChanged(Instance * inst);
|
||||
|
||||
protected:
|
||||
QString m_instDir;
|
||||
QList< InstancePtr > m_instances;
|
||||
|
@ -185,6 +185,7 @@ InstanceList::InstListError InstanceList::loadList()
|
||||
qDebug(QString("Loaded instance %1").arg(inst->name()).toUtf8());
|
||||
inst->setParent(this);
|
||||
m_instances.append(inst);
|
||||
connect(instPtr, SIGNAL(propertiesChanged(Instance*)),this, SLOT(propertiesChanged(Instance*)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -221,4 +222,16 @@ InstancePtr InstanceList::getInstanceById(QString instId)
|
||||
return InstancePtr();
|
||||
else
|
||||
return iter.peekPrevious();
|
||||
}
|
||||
|
||||
void InstanceList::propertiesChanged(Instance * inst)
|
||||
{
|
||||
for(int i = 0; i < m_instances.count(); i++)
|
||||
{
|
||||
if(inst == m_instances[i].data())
|
||||
{
|
||||
emit instanceChanged(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user