Merge pull request #20 from nbgsmk/master
Reference clock widgets - consolidation #17
This commit is contained in:
commit
37ed63fc6a
@ -11,7 +11,7 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
TraceMarker::TraceMarker(TraceMarkerModel *model, int number, TraceMarker *parent, QString descr)
|
TraceMarker::TraceMarker(TraceMarkerModel *model, int number, TraceMarker *parent, QString descr)
|
||||||
: editingFrequeny(false),
|
: editingFrequency(false),
|
||||||
model(model),
|
model(model),
|
||||||
parentTrace(nullptr),
|
parentTrace(nullptr),
|
||||||
position(1000000000),
|
position(1000000000),
|
||||||
|
@ -33,7 +33,7 @@ public:
|
|||||||
int getNumber() const;
|
int getNumber() const;
|
||||||
void setNumber(int value);
|
void setNumber(int value);
|
||||||
|
|
||||||
bool editingFrequeny;
|
bool editingFrequency;
|
||||||
Trace *getTrace() const;
|
Trace *getTrace() const;
|
||||||
|
|
||||||
enum class Type {
|
enum class Type {
|
||||||
|
@ -88,11 +88,15 @@ void TraceMarkerModel::addMarker(TraceMarker *t)
|
|||||||
connect(t, &TraceMarker::beginRemoveHelperMarkers, [=](TraceMarker *m) {
|
connect(t, &TraceMarker::beginRemoveHelperMarkers, [=](TraceMarker *m) {
|
||||||
auto row = find(markers.begin(), markers.end(), m) - markers.begin();
|
auto row = find(markers.begin(), markers.end(), m) - markers.begin();
|
||||||
auto modelIndex = createIndex(row, 0, root);
|
auto modelIndex = createIndex(row, 0, root);
|
||||||
|
if(!m->getHelperMarkers().empty()){
|
||||||
beginRemoveRows(modelIndex, 0, m->getHelperMarkers().size() - 1);
|
beginRemoveRows(modelIndex, 0, m->getHelperMarkers().size() - 1);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
connect(t, &TraceMarker::endRemoveHelperMarkers, [=](TraceMarker *m) {
|
connect(t, &TraceMarker::endRemoveHelperMarkers, [=](TraceMarker *m) {
|
||||||
markerDataChanged(m);
|
markerDataChanged(m);
|
||||||
|
if(!m->getHelperMarkers().empty()){
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
connect(t, &TraceMarker::deleted, this, qOverload<TraceMarker*>(&TraceMarkerModel::removeMarker));
|
connect(t, &TraceMarker::deleted, this, qOverload<TraceMarker*>(&TraceMarkerModel::removeMarker));
|
||||||
emit markerAdded(t);
|
emit markerAdded(t);
|
||||||
@ -118,7 +122,7 @@ void TraceMarkerModel::removeMarker(TraceMarker *m)
|
|||||||
void TraceMarkerModel::markerDataChanged(TraceMarker *m)
|
void TraceMarkerModel::markerDataChanged(TraceMarker *m)
|
||||||
{
|
{
|
||||||
auto row = find(markers.begin(), markers.end(), m) - markers.begin();
|
auto row = find(markers.begin(), markers.end(), m) - markers.begin();
|
||||||
if(m->editingFrequeny) {
|
if(m->editingFrequency) {
|
||||||
// only update the other columns, do not override editor data
|
// only update the other columns, do not override editor data
|
||||||
emit dataChanged(index(row, ColIndexData), index(row, ColIndexData));
|
emit dataChanged(index(row, ColIndexData), index(row, ColIndexData));
|
||||||
} else {
|
} else {
|
||||||
@ -373,14 +377,14 @@ QSize MarkerSettingsDelegate::sizeHint(const QStyleOptionViewItem &, const QMode
|
|||||||
QWidget *MarkerSettingsDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const
|
QWidget *MarkerSettingsDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
auto marker = static_cast<const TraceMarkerModel*>(index.model())->markerFromIndex(index);
|
auto marker = static_cast<const TraceMarkerModel*>(index.model())->markerFromIndex(index);
|
||||||
marker->editingFrequeny = true;
|
marker->editingFrequency = true;
|
||||||
auto e = marker->getSettingsEditor();
|
auto e = marker->getSettingsEditor();
|
||||||
if(e) {
|
if(e) {
|
||||||
e->setMaximumHeight(rowHeight);
|
e->setMaximumHeight(rowHeight);
|
||||||
e->setParent(parent);
|
e->setParent(parent);
|
||||||
connect(e, &SIUnitEdit::valueUpdated, this, &MarkerSettingsDelegate::commitData);
|
connect(e, &SIUnitEdit::valueUpdated, this, &MarkerSettingsDelegate::commitData);
|
||||||
connect(e, &SIUnitEdit::focusLost, [=](){
|
connect(e, &SIUnitEdit::focusLost, [=](){
|
||||||
marker->editingFrequeny = false;
|
marker->editingFrequency = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return e;
|
return e;
|
||||||
|
@ -277,30 +277,21 @@ void AppWindow::CreateToolbars()
|
|||||||
{
|
{
|
||||||
// Reference toolbar
|
// Reference toolbar
|
||||||
auto tb_reference = new QToolBar("Reference", this);
|
auto tb_reference = new QToolBar("Reference", this);
|
||||||
tb_reference->addWidget(new QLabel("Ref:"));
|
tb_reference->addWidget(new QLabel("Ref in:"));
|
||||||
toolbars.reference.type = new QComboBox();
|
toolbars.reference.type = new QComboBox();
|
||||||
toolbars.reference.type->addItem("Int");
|
toolbars.reference.type->addItem("Int");
|
||||||
toolbars.reference.type->addItem("Ext");
|
toolbars.reference.type->addItem("Ext");
|
||||||
toolbars.reference.automatic = new QCheckBox("Auto");
|
toolbars.reference.type->addItem("Auto");
|
||||||
connect(toolbars.reference.automatic, &QCheckBox::clicked, [this](bool checked) {
|
|
||||||
toolbars.reference.type->setEnabled(!checked);
|
|
||||||
UpdateReference();
|
|
||||||
});
|
|
||||||
// toolbars.reference.automatic->setChecked(true);
|
|
||||||
tb_reference->addWidget(toolbars.reference.type);
|
tb_reference->addWidget(toolbars.reference.type);
|
||||||
tb_reference->addWidget(toolbars.reference.automatic);
|
|
||||||
tb_reference->addSeparator();
|
tb_reference->addSeparator();
|
||||||
tb_reference->addWidget(new QLabel("Ref out:"));
|
tb_reference->addWidget(new QLabel("Ref out:"));
|
||||||
toolbars.reference.outputEnabled = new QCheckBox();
|
|
||||||
toolbars.reference.outFreq = new QComboBox();
|
toolbars.reference.outFreq = new QComboBox();
|
||||||
|
toolbars.reference.outFreq->addItem("Off");
|
||||||
toolbars.reference.outFreq->addItem("10 MHz");
|
toolbars.reference.outFreq->addItem("10 MHz");
|
||||||
toolbars.reference.outFreq->addItem("100 MHz");
|
toolbars.reference.outFreq->addItem("100 MHz");
|
||||||
tb_reference->addWidget(toolbars.reference.outputEnabled);
|
|
||||||
tb_reference->addWidget(toolbars.reference.outFreq);
|
tb_reference->addWidget(toolbars.reference.outFreq);
|
||||||
connect(toolbars.reference.type, qOverload<int>(&QComboBox::currentIndexChanged), this, &AppWindow::UpdateReference);
|
connect(toolbars.reference.type, qOverload<int>(&QComboBox::currentIndexChanged), this, &AppWindow::UpdateReference);
|
||||||
connect(toolbars.reference.outFreq, qOverload<int>(&QComboBox::currentIndexChanged), this, &AppWindow::UpdateReference);
|
connect(toolbars.reference.outFreq, qOverload<int>(&QComboBox::currentIndexChanged), this, &AppWindow::UpdateReference);
|
||||||
connect(toolbars.reference.outputEnabled, &QCheckBox::clicked, this, &AppWindow::UpdateReference);
|
|
||||||
|
|
||||||
addToolBar(tb_reference);
|
addToolBar(tb_reference);
|
||||||
tb_reference->setObjectName("Reference Toolbar");
|
tb_reference->setObjectName("Reference Toolbar");
|
||||||
}
|
}
|
||||||
@ -352,22 +343,23 @@ void AppWindow::UpdateReference()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Protocol::ReferenceSettings s = {};
|
Protocol::ReferenceSettings s = {};
|
||||||
if(toolbars.reference.automatic->isChecked()) {
|
|
||||||
s.AutomaticSwitch = 1;
|
QString txt1 = toolbars.reference.type->currentText();
|
||||||
}
|
if( (txt1=="Ext") || (txt1=="External") ) {
|
||||||
if(toolbars.reference.type->currentText()=="Ext") {
|
|
||||||
s.UseExternalRef = 1;
|
s.UseExternalRef = 1;
|
||||||
}
|
}
|
||||||
if(toolbars.reference.outputEnabled->isChecked()) {
|
if( (txt1=="Auto") || (txt1=="Automatic") ) {
|
||||||
switch(toolbars.reference.outFreq->currentIndex()) {
|
s.AutomaticSwitch = 1;
|
||||||
case 0:
|
}
|
||||||
|
|
||||||
|
QString txt2 = toolbars.reference.outFreq->currentText();
|
||||||
|
if(txt2=="10 MHz"){
|
||||||
s.ExtRefOuputFreq = 10000000;
|
s.ExtRefOuputFreq = 10000000;
|
||||||
break;
|
}
|
||||||
case 1:
|
if(txt2=="100 MHz"){
|
||||||
s.ExtRefOuputFreq = 100000000;
|
s.ExtRefOuputFreq = 100000000;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Protocol::PacketInfo p;
|
Protocol::PacketInfo p;
|
||||||
p.type = Protocol::PacketType::Reference;
|
p.type = Protocol::PacketType::Reference;
|
||||||
p.reference = s;
|
p.reference = s;
|
||||||
|
@ -61,8 +61,6 @@ private:
|
|||||||
struct {
|
struct {
|
||||||
struct {
|
struct {
|
||||||
QComboBox *type;
|
QComboBox *type;
|
||||||
QCheckBox *automatic;
|
|
||||||
QCheckBox *outputEnabled;
|
|
||||||
QComboBox *outFreq;
|
QComboBox *outFreq;
|
||||||
} reference;
|
} reference;
|
||||||
} toolbars;
|
} toolbars;
|
||||||
|
Loading…
Reference in New Issue
Block a user