Merge pull request #20 from nbgsmk/master

Reference clock widgets - consolidation #17
This commit is contained in:
jankae 2020-12-10 13:21:26 +01:00 committed by GitHub
commit 37ed63fc6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 34 deletions

View File

@ -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),

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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;