Add labels to makers
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
@@ -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_);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user