exportdialog/timeruler: disable marker and workarea editing
Fixes #1979
This commit is contained in:
@@ -182,6 +182,7 @@ ExportDialog::ExportDialog(ViewerOutput *viewer_node, QWidget *parent) :
|
||||
QVBoxLayout* preview_layout = new QVBoxLayout(preview_area);
|
||||
preview_layout->addWidget(new QLabel(tr("Preview")));
|
||||
preview_viewer_ = new ViewerWidget();
|
||||
preview_viewer_->ruler()->SetMarkerEditingEnabled(false);
|
||||
preview_viewer_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
connect(preview_viewer_, &ViewerWidget::TimeChanged, video_tab_, &ExportVideoTab::SetTime);
|
||||
preview_layout->addWidget(preview_viewer_);
|
||||
|
||||
@@ -48,7 +48,8 @@ SeekableWidget::SeekableWidget(QWidget* parent) :
|
||||
selection_manager_(this),
|
||||
resize_item_(nullptr),
|
||||
marker_top_(0),
|
||||
marker_bottom_(0)
|
||||
marker_bottom_(0),
|
||||
marker_editing_enabled_(true)
|
||||
{
|
||||
QFontMetrics fm = fontMetrics();
|
||||
|
||||
@@ -172,6 +173,8 @@ bool SeekableWidget::PasteMarkers()
|
||||
|
||||
void SeekableWidget::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
TimelineMarker *initial;
|
||||
|
||||
if (resize_item_) {
|
||||
// Handle selection, even though we won't be using it for dragging
|
||||
if (!(event->modifiers() & Qt::ShiftModifier)) {
|
||||
@@ -182,7 +185,7 @@ void SeekableWidget::mousePressEvent(QMouseEvent *event)
|
||||
}
|
||||
dragging_ = true;
|
||||
resize_start_ = mapToScene(event->pos());
|
||||
} else if (TimelineMarker *initial = selection_manager_.MousePress(event)) {
|
||||
} else if (marker_editing_enabled_ && (initial = selection_manager_.MousePress(event))) {
|
||||
selection_manager_.DragStart(initial, event);
|
||||
} else if (!selection_manager_.GetObjectAtPoint(event->pos()) && event->button() == Qt::LeftButton) {
|
||||
SeekToScenePoint(mapToScene(event->pos()).x());
|
||||
@@ -430,7 +433,7 @@ int SeekableWidget::GetRightLimit() const
|
||||
|
||||
bool SeekableWidget::ShowContextMenu(const QPoint &p)
|
||||
{
|
||||
if (selection_manager_.GetObjectAtPoint(p) && !selection_manager_.GetSelectedObjects().empty()) {
|
||||
if (marker_editing_enabled_ && selection_manager_.GetObjectAtPoint(p) && !selection_manager_.GetSelectedObjects().empty()) {
|
||||
// Show marker-specific menu
|
||||
Menu m;
|
||||
|
||||
@@ -457,6 +460,10 @@ bool SeekableWidget::ShowContextMenu(const QPoint &p)
|
||||
|
||||
bool SeekableWidget::FindResizeHandle(QMouseEvent *event)
|
||||
{
|
||||
if (!marker_editing_enabled_) {
|
||||
return false;
|
||||
}
|
||||
|
||||
resize_item_ = nullptr;
|
||||
resize_mode_ = kResizeNone;
|
||||
|
||||
|
||||
@@ -52,6 +52,9 @@ public:
|
||||
return dragging_;
|
||||
}
|
||||
|
||||
bool IsMarkerEditingEnabled() const { return marker_editing_enabled_; }
|
||||
void SetMarkerEditingEnabled(bool e) { marker_editing_enabled_ = e; }
|
||||
|
||||
void DeleteSelected();
|
||||
|
||||
bool CopySelected(bool cut);
|
||||
@@ -143,6 +146,8 @@ private:
|
||||
int marker_top_;
|
||||
int marker_bottom_;
|
||||
|
||||
bool marker_editing_enabled_;
|
||||
|
||||
private slots:
|
||||
void SetMarkerColor(int c);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user