Added better filtration when scanning remotes, only update the affected protocols. Closes #88
This commit is contained in:
parent
8e377a12bc
commit
2d17564de3
5 changed files with 45 additions and 3 deletions
|
@ -21,3 +21,17 @@ DeviceSetting::DeviceSetting(Device *device, QWidget *parent)
|
||||||
DeviceSetting::~DeviceSetting()
|
DeviceSetting::~DeviceSetting()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeviceSetting::addProtocolMatch( const QString &protocol, const QString &model ){
|
||||||
|
QString protocolmodel; //concat to one string
|
||||||
|
protocolmodel.append(protocol).append(model);
|
||||||
|
acceptedProtocolModel << protocolmodel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeviceSetting::setProtocolValue( const QString &name, const QString &value, const QString &protocol, const QString &model ){
|
||||||
|
QString protocolmodel; //concat to one string
|
||||||
|
protocolmodel.append(protocol).append(model);
|
||||||
|
if(acceptedProtocolModel.contains(protocolmodel)){ //protocol not set yet, or equal
|
||||||
|
this->setValue(name, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -29,10 +29,18 @@ public:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
virtual void saveParameters() = 0;
|
virtual void saveParameters() = 0;
|
||||||
|
void addProtocolMatch( const QString &protocol, const QString &model );
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void setProtocolValue( const QString &name, const QString &value, const QString &protocol, const QString &model );
|
||||||
virtual void setValue( const QString &name, const QString &value ) = 0;
|
virtual void setValue( const QString &name, const QString &value ) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Device *p_device;
|
Device *p_device;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QList<QString> acceptedProtocolModel;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -173,10 +173,30 @@ EditDeviceDialog::EditDeviceDialog(Device *device, QWidget *parent, Qt::WFlags f
|
||||||
((DeviceSettingArctechSelflearning *)d->deviceSettings[9])->setUnitMinMax(1,15);
|
((DeviceSettingArctechSelflearning *)d->deviceSettings[9])->setUnitMinMax(1,15);
|
||||||
|
|
||||||
foreach( DeviceSetting *s, d->deviceSettings ) {
|
foreach( DeviceSetting *s, d->deviceSettings ) {
|
||||||
connect(d->filteredModel, SIGNAL(setParameter(const QString&, const QString&)), s, SLOT(setValue(const QString&, const QString&)));
|
connect(d->filteredModel, SIGNAL(setParameter(const QString&, const QString&, const QString&, const QString&)), s, SLOT(setProtocolValue(const QString&, const QString&, const QString&, const QString&)));
|
||||||
d->settingsLayout->addWidget( s );
|
d->settingsLayout->addWidget( s );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i=0; i<d->model->rowCount(QModelIndex()); ++i){
|
||||||
|
QModelIndex index = d->model->index(i, 0, QModelIndex());
|
||||||
|
VendorDeviceTreeItem *typeitem = d->model->item(index);
|
||||||
|
|
||||||
|
for(int j=0; j<typeitem->childCount(); ++j){
|
||||||
|
VendorDeviceTreeItem *branditem = typeitem->child(j); //d->model->item(index);
|
||||||
|
|
||||||
|
for(int k=0; k<branditem->childCount(); ++k){
|
||||||
|
VendorDeviceTreeItem *deviceitem = branditem->child(k); //d->model->item(index);
|
||||||
|
|
||||||
|
int widget = deviceitem->widget();
|
||||||
|
QString strModel = deviceitem->deviceModel().section(':', 0, 0);
|
||||||
|
if (strModel.startsWith("selflearning-")) {
|
||||||
|
strModel = "selflearning";
|
||||||
|
}
|
||||||
|
d->deviceSettings[widget]->addProtocolMatch(deviceitem->deviceProtocol(), strModel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
expandNodes(deviceView);
|
expandNodes(deviceView);
|
||||||
QModelIndex index = d->filteredModel->mapFromSource(d->model->index( device ));
|
QModelIndex index = d->filteredModel->mapFromSource(d->model->index( device ));
|
||||||
if (index.isValid()) {
|
if (index.isValid()) {
|
||||||
|
|
|
@ -54,7 +54,7 @@ void FilteredDeviceProxyModel::addFilter( const QString &filter ) {
|
||||||
return; //don't scan sensors here
|
return; //don't scan sensors here
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
emit setParameter(name, value);
|
emit setParameter(name, value, protocol, model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Make sure we don't add a duplicate
|
//Make sure we don't add a duplicate
|
||||||
|
|
|
@ -17,7 +17,7 @@ public:
|
||||||
void addFilter( const QString & );
|
void addFilter( const QString & );
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void setParameter(const QString &name, const QString &value);
|
void setParameter(const QString &name, const QString &value, const QString &protocol, const QString &model);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool filterAcceptsRow ( int source_row, const QModelIndex & source_parent ) const;
|
virtual bool filterAcceptsRow ( int source_row, const QModelIndex & source_parent ) const;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue