several improvements

This commit is contained in:
itsmattkc
2018-10-13 13:08:20 +11:00
parent 2e577330b9
commit a285f10e6a
24 changed files with 179 additions and 57 deletions
-1
View File
@@ -150,7 +150,6 @@ void KeyframeView::draw_keyframe(QPainter &p, int x, int y, bool darker) {
p.setPen(QColor(0, 0, 0));
p.setBrush(QColor(color, color, color));
p.drawPolygon(points, KEYFRAME_POINT_COUNT);
qDebug() << "drew key at" << x << y;
}
void KeyframeView::mousePressEvent(QMouseEvent *event) {
+1 -1
View File
@@ -75,7 +75,7 @@ double LabelSlider::value() {
}
void LabelSlider::set_default_value(double v) {
if (internal_value == default_value) set = false; // TODO: CONTROVERSIAL - may be undesirable behaviour
// if (internal_value == default_value) set = false; TODO: CONTROVERSIAL - disabled bc may lead undesirable behaviour
default_value = v;
if (!set) {
+4
View File
@@ -7,6 +7,7 @@
#include "panels/panels.h"
#include "playback/playback.h"
#include "project/undo.h"
#include "mainwindow.h"
#include <QDragEnterEvent>
#include <QMimeData>
@@ -33,6 +34,9 @@ void SourceTable::show_context_menu() {
if (selectedItems().size() == 0) {
QAction* import_action = menu.addAction("Import...");
connect(import_action, SIGNAL(triggered(bool)), panel_project, SLOT(import_dialog()));
QAction* new_folder_action = menu.addAction("New Folder...");
connect(new_folder_action, SIGNAL(triggered(bool)), mainWindow, SLOT(on_actionFolder_triggered()));
} else {
if (selectedItems().size() == 1) {
// replace footage
+26 -14
View File
@@ -30,10 +30,11 @@ TimelineHeader::TimelineHeader(QWidget *parent) :
dragging_markers(false),
scroll(0)
{
height_actual = fm.height();
setCursor(Qt::ArrowCursor);
setMouseTracking(true);
setFixedHeight(fm.height()*2);
setFocusPolicy(Qt::ClickFocus);
show_text(true);
}
void TimelineHeader::set_scroll(int s) {
@@ -85,6 +86,16 @@ void TimelineHeader::set_out_point(long new_out) {
panel_timeline->repaint_timeline(false);
}
void TimelineHeader::show_text(bool enable) {
text_enabled = enable;
if (enable) {
setFixedHeight(height_actual*2);
} else {
setFixedHeight(height_actual);
}
update();
}
void TimelineHeader::mousePressEvent(QMouseEvent* event) {
if (resizing_workarea) {
sequence_end = sequence->getEndFrame();
@@ -137,7 +148,7 @@ void TimelineHeader::mouseMoveEvent(QMouseEvent* event) {
if (dragging) {
if (resizing_workarea) {
long frame = getHeaderFrameFromScreenPoint(event->pos().x());
panel_timeline->snap_to_timeline(&frame, true, true, false);
if (snapping) panel_timeline->snap_to_timeline(&frame, true, true, false);
if (resizing_workarea_in) {
temp_workarea_in = qMax(qMin(temp_workarea_out-1, frame), 0L);
@@ -152,7 +163,7 @@ void TimelineHeader::mouseMoveEvent(QMouseEvent* event) {
// snap markers
for (int i=0;i<selected_markers.size();i++) {
long fm = selected_marker_original_times.at(i) + frame_movement;
if (panel_timeline->snap_to_timeline(&fm, true, false, true)) {
if (snapping && panel_timeline->snap_to_timeline(&fm, true, false, true)) {
frame_movement = fm - selected_marker_original_times.at(i);
break;
}
@@ -179,7 +190,7 @@ void TimelineHeader::mouseMoveEvent(QMouseEvent* event) {
} else {
resizing_workarea = false;
unsetCursor();
if (sequence->using_workarea) {
if (sequence != NULL && sequence->using_workarea) {
long min_frame = getHeaderFrameFromScreenPoint(event->pos().x() - CLICK_RANGE) - 1;
long max_frame = getHeaderFrameFromScreenPoint(event->pos().x() + CLICK_RANGE) + 1;
if (sequence->workarea_in > min_frame && sequence->workarea_in < max_frame) {
@@ -198,7 +209,7 @@ void TimelineHeader::mouseMoveEvent(QMouseEvent* event) {
}
}
void TimelineHeader::mouseReleaseEvent(QMouseEvent* event) {
void TimelineHeader::mouseReleaseEvent(QMouseEvent*) {
dragging = false;
if (resizing_workarea) {
undo_stack.push(new SetTimelineInOutCommand(sequence, true, temp_workarea_in, temp_workarea_out));
@@ -248,9 +259,9 @@ void TimelineHeader::delete_markers() {
}
void TimelineHeader::paintEvent(QPaintEvent*) {
if (sequence != NULL) {
if (sequence != NULL && zoom > 0) {
QPainter p(this);
int yoff = height()/2;
int yoff = (text_enabled) ? height()/2 : 0;
double interval = sequence->frame_rate;
int textWidth = 0;
@@ -278,14 +289,15 @@ void TimelineHeader::paintEvent(QPaintEvent*) {
if (lineX > width()) break;
if (next_lineX > 0 && lineX > lastLineX+LINE_MIN_PADDING) {
// draw text
if (lineX-textWidth > lastTextBoundary) {
if (text_enabled && lineX-textWidth > lastTextBoundary) {
p.setPen(Qt::white);
QString timecode = frame_to_timecode(frame + in_visible, config.timecode_view, sequence->frame_rate);
textWidth = fm.width(timecode)>>1;
if (lineX + textWidth > 0) {
int text_x = qMax(lineX-textWidth, 0);
lastTextBoundary = text_x+textWidth+textWidth;
p.drawText(QRect(text_x, 0, lastTextBoundary, yoff), timecode);
int fullTextWidth = fm.width(timecode);
textWidth = fullTextWidth>>1;
int text_x = lineX-textWidth;
lastTextBoundary = lineX+textWidth;
if (lastTextBoundary >= 0) {
p.drawText(QRect(text_x, 0, fullTextWidth, yoff), timecode);
}
}
@@ -351,5 +363,5 @@ void TimelineHeader::paintEvent(QPaintEvent*) {
path.lineTo(in_x+PLAYHEAD_SIZE, yoff);
path.lineTo(start);
p.fillPath(path, Qt::red);
}
}
}
+5
View File
@@ -15,6 +15,8 @@ public:
bool snapping;
void show_text(bool enable);
void update_zoom(double z);
void delete_markers();
@@ -57,6 +59,9 @@ private:
int scroll;
int height_actual;
bool text_enabled;
signals:
};