Add labels to makers

This commit is contained in:
Thomas Wilshaw
2021-10-22 22:15:53 +01:00
parent 374b97b6a5
commit bf4459cbc7
3 changed files with 40 additions and 3 deletions
+29 -1
View File
@@ -24,6 +24,7 @@
#include "common/qtutils.h"
#include "config/config.h"
#include "dialog/text/text.h"
#include "ui/colorcoding.h"
#include "widget/menu/menu.h"
#include "widget/menu/menushared.h"
@@ -37,7 +38,7 @@ Marker::Marker(QWidget *parent) :
active_(false)
{
//setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
setMaximumSize(8, 20);
setMinimumSize(8, 20);
setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, &Marker::customContextMenuRequested, this, &Marker::ShowContextMenu);
@@ -98,6 +99,10 @@ void Marker::paintEvent(QPaintEvent *event)
};
p.drawPolygon(points, 6);
if (!name_.isEmpty()) {
p.drawText(x + marker_width_, y - half_text_height, name_);
}
}
void Marker::mousePressEvent(QMouseEvent* e)
@@ -130,9 +135,24 @@ void Marker::ShowContextMenu() {
m.addSeparator();
MenuShared::instance()->AddItemsForEditMenu(&m, false);
m.addSeparator();
QAction rename;
rename.setText(tr("Rename"));
m.addAction(&rename);
connect(&rename, &QAction::triggered, this, &Marker::Rename);
m.exec(QCursor::pos());
}
void Marker::Rename()
{
TextDialog d(this->name_, this);
if (d.exec() == QDialog::Accepted) {
QString s = d.text();
emit NameChanged(s);
}
}
void Marker::SetColor(int c)
{
marker_color_ = c;
@@ -140,4 +160,12 @@ void Marker::SetColor(int c)
update();
}
void Marker::SetName(QString s)
{
name_ = s;
qDebug() << name_;
update();
}
} // namespace olive
+6
View File
@@ -37,9 +37,12 @@ class Marker : public QWidget {
bool active();
void Rename();
public slots:
void SetColor(int c);
void SetActive(bool active);
void SetName(QString s);
protected:
void paintEvent(QPaintEvent* event) override;
@@ -53,6 +56,7 @@ class Marker : public QWidget {
void ColorChanged(int c);
void markerSelected(Marker* marker);
void ActiveChanged(bool active);
void NameChanged(QString name);
private:
@@ -60,6 +64,8 @@ class Marker : public QWidget {
bool active_;
QString name_;
private slots:
void ShowContextMenu();
};
+5 -2
View File
@@ -210,7 +210,10 @@ void SeekableWidget::addMarker(TimelineMarker* marker)
connect(marker_widget, &Marker::ActiveChanged, marker, &TimelineMarker::set_active);
connect(marker, &TimelineMarker::ActiveChanged, marker_widget, &Marker::SetActive);
marker_widget->move(TimeToScreen(marker->time().in()), 20);
connect(marker_widget, &Marker::NameChanged, marker, &TimelineMarker::set_name);
connect(marker, &TimelineMarker::NameChanged, marker_widget, &Marker::SetName);
marker_widget->move(TimeToScreen(marker->time().in()), text_height_);
marker_widget->SetColor(marker->color());
marker_widget->show();
}
@@ -233,7 +236,7 @@ void SeekableWidget::updateMarkerPositions()
{
foreach (TimelineMarker* marker, marker_map_.keys()) {
Marker *m = marker_map_.value(marker);
m->move(TimeToScreen(marker->time().in()), 20);
m->move(TimeToScreen(marker->time().in()), text_height_);
}
}