diff --git a/Software/PC_Application/Traces/Marker/markerwidget.cpp b/Software/PC_Application/Traces/Marker/markerwidget.cpp index bc4bfde..eda6645 100644 --- a/Software/PC_Application/Traces/Marker/markerwidget.cpp +++ b/Software/PC_Application/Traces/Marker/markerwidget.cpp @@ -5,6 +5,7 @@ #include #include +#include MarkerWidget::MarkerWidget(MarkerModel &model, QWidget *parent) : QWidget(parent), @@ -12,6 +13,16 @@ MarkerWidget::MarkerWidget(MarkerModel &model, QWidget *parent) : model(model) { ui->setupUi(this); + + // some image magic to create a button with three "add" icons (not available as standard icon) + QImage image(44, 44, QImage::Format_ARGB32); + auto origImage = ui->bAddAll->icon().pixmap(22).toImage().convertToFormat(QImage::Format_ARGB32); + QPainter painter(&image); + painter.drawImage(0, 0, origImage); + painter.drawImage(origImage.width(), 0, origImage); + painter.drawImage(origImage.width()/2, origImage.height(), origImage); + ui->bAddAll->setIcon(QIcon(QPixmap::fromImage(image))); + ui->treeView->setModel(&model); ui->treeView->setItemDelegateForColumn(MarkerModel::ColIndexTrace, new MarkerTraceDelegate); ui->treeView->setItemDelegateForColumn(MarkerModel::ColIndexType, new MarkerTypeDelegate); @@ -123,6 +134,18 @@ void MarkerWidget::on_bAdd_clicked() model.addMarker(marker); } +void MarkerWidget::on_bAddAll_clicked() +{ + // add a marker for every trace and link them + auto group = model.createMarkerGroup(); + for(auto trace : model.getModel().getTraces()) { + auto m = model.createDefaultMarker(); + m->assignTrace(trace); + group->add(m); + model.addMarker(m); + } +} + bool MarkerWidget::eventFilter(QObject *, QEvent *event) { if (event->type() == QEvent::KeyPress) { @@ -152,4 +175,3 @@ void MarkerWidget::updatePersistentEditors() } } } - diff --git a/Software/PC_Application/Traces/Marker/markerwidget.h b/Software/PC_Application/Traces/Marker/markerwidget.h index 29b2aca..7e8f293 100644 --- a/Software/PC_Application/Traces/Marker/markerwidget.h +++ b/Software/PC_Application/Traces/Marker/markerwidget.h @@ -22,6 +22,8 @@ private slots: void on_bAdd_clicked(); void updatePersistentEditors(); + void on_bAddAll_clicked(); + private: bool eventFilter(QObject *obj, QEvent *event) override; Ui::MarkerWidget *ui; diff --git a/Software/PC_Application/Traces/Marker/markerwidget.ui b/Software/PC_Application/Traces/Marker/markerwidget.ui index e7265b2..7caf113 100644 --- a/Software/PC_Application/Traces/Marker/markerwidget.ui +++ b/Software/PC_Application/Traces/Marker/markerwidget.ui @@ -44,7 +44,27 @@ - Add + Add marker + + + + + + + :/icons/add.png:/icons/add.png + + + + + + + + 0 + 0 + + + + Add markers to all traces @@ -64,7 +84,7 @@ - Delete + Delete marker