Redo marker selection code

This commit is contained in:
Thomas Wilshaw
2021-10-22 22:15:51 +01:00
parent 853dbc0066
commit d8101869b9
7 changed files with 76 additions and 30 deletions
+18 -5
View File
@@ -26,6 +26,7 @@
#include "ui/colorcoding.h"
#include "widget/menu/menu.h"
#include "widget/menu/menushared.h"
#include "widget/timeruler/seekablewidget.h"
namespace olive {
@@ -34,16 +35,18 @@ Marker::Marker(QWidget *parent) :
marker_color_(7), //green FIXME: add default color to config
active_(false)
{
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
setMinimumSize(20, 20);
//setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
setMaximumSize(8, 20);
setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, &Marker::customContextMenuRequested, this, &Marker::ShowContextMenu);
}
void Marker::set_active(bool active)
void Marker::SetActive(bool active)
{
active_ = active;
update();
}
bool Marker::active()
@@ -91,9 +94,19 @@ void Marker::paintEvent(QPaintEvent *event)
void Marker::mousePressEvent(QMouseEvent* e)
{
if (e->button() == Qt::LeftButton) {
active_ = !active_;
static_cast<SeekableWidget*>(parent())->SeekToScreenPoint(e->pos().x() + this->x());
if (!active_) {
if (e->modifiers() != Qt::ShiftModifier) {
static_cast<SeekableWidget *>(parent())->DeselectAllMarkers();
}
emit ActiveChanged(true);
} else {
if (e->modifiers() == Qt::ShiftModifier) {
emit ActiveChanged(false);
}
}
update();
emit markerSelected(this);
}
}