diff --git a/Software/PC_Application/Traces/Marker/marker.cpp b/Software/PC_Application/Traces/Marker/marker.cpp
index 055960a..3a50d98 100644
--- a/Software/PC_Application/Traces/Marker/marker.cpp
+++ b/Software/PC_Application/Traces/Marker/marker.cpp
@@ -684,18 +684,51 @@ void Marker::traceDataChanged()
void Marker::updateSymbol()
{
if(isDisplayedMarker()) {
- constexpr int width = 15, height = 15;
- symbol = QPixmap(width, height);
- symbol.fill(Qt::transparent);
- QPainter p(&symbol);
- p.setRenderHint(QPainter::Antialiasing);
- QPointF points[] = {QPointF(0,0),QPointF(width,0),QPointF(width/2,height)};
- auto traceColor = parentTrace->color();
- p.setPen(traceColor);
- p.setBrush(traceColor);
- p.drawConvexPolygon(points, 3);
- p.setPen(Util::getFontColorFromBackground(traceColor));
- p.drawText(QRectF(0,0,width, height*2.0/3.0), Qt::AlignCenter, QString::number(number) + suffix);
+ auto style = Preferences::getInstance().Marker.symbolStyle;
+ switch(style) {
+ case MarkerSymbolStyle::FilledNumberInside: {
+ constexpr int width = 15, height = 15;
+ symbol = QPixmap(width, height);
+ symbol.fill(Qt::transparent);
+ QPainter p(&symbol);
+ p.setRenderHint(QPainter::Antialiasing);
+ QPointF points[] = {QPointF(0,0),QPointF(width,0),QPointF(width/2,height)};
+ auto traceColor = parentTrace->color();
+ p.setPen(traceColor);
+ p.setBrush(traceColor);
+ p.drawConvexPolygon(points, 3);
+ p.setPen(Util::getFontColorFromBackground(traceColor));
+ p.drawText(QRectF(0,0,width, height * 2.0 / 3.0), Qt::AlignCenter, QString::number(number) + suffix);
+ }
+ break;
+ case MarkerSymbolStyle::FilledNumberAbove: {
+ constexpr int width = 15, height = 30;
+ symbol = QPixmap(width, height);
+ symbol.fill(Qt::transparent);
+ QPainter p(&symbol);
+ p.setRenderHint(QPainter::Antialiasing);
+ QPointF points[] = {QPointF(0,height/2),QPointF(width,height/2),QPointF(width/2,height)};
+ auto traceColor = parentTrace->color();
+ p.setPen(traceColor);
+ p.setBrush(traceColor);
+ p.drawConvexPolygon(points, 3);
+ p.drawText(QRectF(0,0,width, height * 0.45), Qt::AlignCenter, QString::number(number) + suffix);
+ }
+ break;
+ case MarkerSymbolStyle::EmptyNumberAbove: {
+ constexpr int width = 15, height = 30;
+ symbol = QPixmap(width, height);
+ symbol.fill(Qt::transparent);
+ QPainter p(&symbol);
+ p.setRenderHint(QPainter::Antialiasing);
+ QPointF points[] = {QPointF(0,height/2),QPointF(width,height/2),QPointF(width/2,height)};
+ auto traceColor = parentTrace->color();
+ p.setPen(traceColor);
+ p.drawConvexPolygon(points, 3);
+ p.drawText(QRectF(0,0,width, height * 0.45), Qt::AlignCenter, QString::number(number) + suffix);
+ }
+ break;
+ }
} else {
symbol = QPixmap(1,1);
}
diff --git a/Software/PC_Application/preferences.cpp b/Software/PC_Application/preferences.cpp
index 54e89c7..29dae3b 100644
--- a/Software/PC_Application/preferences.cpp
+++ b/Software/PC_Application/preferences.cpp
@@ -259,6 +259,7 @@ void PreferencesDialog::setInitialGUIState()
ui->MarkerShowAllMarkerData->setChecked(p->Marker.defaultBehavior.showAllData);
ui->MarkerInterpolate->setCurrentIndex(p->Marker.interpolatePoints ? 1 : 0);
ui->MarkerSortOrder->setCurrentIndex((int) p->Marker.sortOrder);
+ ui->MarkerSymbolStyle->setCurrentIndex((int) p->Marker.symbolStyle);
ui->SCPIServerEnabled->setChecked(p->SCPIServer.enabled);
ui->SCPIServerPort->setValue(p->SCPIServer.port);
@@ -325,6 +326,7 @@ void PreferencesDialog::updateFromGUI()
p->Marker.defaultBehavior.showAllData = ui->MarkerShowAllMarkerData->isChecked();
p->Marker.interpolatePoints = ui->MarkerInterpolate->currentIndex() == 1;
p->Marker.sortOrder = (MarkerSortOrder) ui->MarkerSortOrder->currentIndex();
+ p->Marker.symbolStyle = (MarkerSymbolStyle) ui->MarkerSymbolStyle->currentIndex();
p->SCPIServer.enabled = ui->SCPIServerEnabled->isChecked();
p->SCPIServer.port = ui->SCPIServerPort->value();
diff --git a/Software/PC_Application/preferences.h b/Software/PC_Application/preferences.h
index 440c182..713b478 100644
--- a/Software/PC_Application/preferences.h
+++ b/Software/PC_Application/preferences.h
@@ -32,6 +32,14 @@ enum MarkerSortOrder {
Q_DECLARE_METATYPE(MarkerSortOrder);
+enum MarkerSymbolStyle {
+ FilledNumberInside = 0,
+ FilledNumberAbove = 1,
+ EmptyNumberAbove = 2,
+};
+
+Q_DECLARE_METATYPE(MarkerSymbolStyle);
+
class Preferences : public Savable {
public:
@@ -124,6 +132,7 @@ public:
} defaultBehavior;
bool interpolatePoints;
MarkerSortOrder sortOrder;
+ MarkerSymbolStyle symbolStyle;
} Marker;
struct {
bool enabled;
@@ -194,6 +203,7 @@ private:
{&Marker.defaultBehavior.showAllData, "Marker.defaultBehavior.ShowAllData", false},
{&Marker.interpolatePoints, "Marker.interpolatePoints", false},
{&Marker.sortOrder, "Marker.sortOrder", MarkerSortOrder::PrefMarkerSortXCoord},
+ {&Marker.symbolStyle, "Marker.symbolStyle", MarkerSymbolStyle::EmptyNumberAbove},
{&SCPIServer.enabled, "SCPIServer.enabled", true},
{&SCPIServer.port, "SCPIServer.port", 19542},
}};
diff --git a/Software/PC_Application/preferencesdialog.ui b/Software/PC_Application/preferencesdialog.ui
index eab56a9..4bda81c 100644
--- a/Software/PC_Application/preferencesdialog.ui
+++ b/Software/PC_Application/preferencesdialog.ui
@@ -79,7 +79,7 @@
0
0
687
- 938
+ 884
@@ -98,7 +98,7 @@
- 0
+ 3
@@ -1281,6 +1281,32 @@
+ -
+
+
+ Symbol Style:
+
+
+
+ -
+
+
-
+
+ Filled triangle - Marker number inside
+
+
+ -
+
+ Filled triangle - Marker number above
+
+
+ -
+
+ Empty triangle - Marker number above
+
+
+
+
-