better timeline scrollbars
This commit is contained in:
+7
-8
@@ -69,6 +69,12 @@ Timeline::Timeline(QWidget *parent) :
|
|||||||
|
|
||||||
ui->toolArrowButton->click();
|
ui->toolArrowButton->click();
|
||||||
|
|
||||||
|
int timeline_area_height = (ui->timeline_area->height()>>1);
|
||||||
|
ui->videoScrollArea->resize(ui->videoScrollArea->width(), timeline_area_height);
|
||||||
|
ui->audioScrollArea->resize(ui->audioScrollArea->width(), timeline_area_height);
|
||||||
|
connect(ui->audioScrollArea->horizontalScrollBar(), SIGNAL(valueChanged(int)), ui->videoScrollArea->horizontalScrollBar(), SLOT(setValue(int)));
|
||||||
|
connect(ui->audioScrollArea->horizontalScrollBar(), SIGNAL(valueChanged(int)), ui->headerScrollArea->horizontalScrollBar(), SLOT(setValue(int)));
|
||||||
|
|
||||||
update_sequence();
|
update_sequence();
|
||||||
|
|
||||||
connect(&playback_updater, SIGNAL(timeout()), this, SLOT(repaint_timeline()));
|
connect(&playback_updater, SIGNAL(timeout()), this, SLOT(repaint_timeline()));
|
||||||
@@ -396,14 +402,7 @@ void Timeline::set_zoom(bool in) {
|
|||||||
zoom *= 2;
|
zoom *= 2;
|
||||||
} else {
|
} else {
|
||||||
zoom /= 2;
|
zoom /= 2;
|
||||||
}
|
}
|
||||||
ui->timeline_area->horizontalScrollBar()->setValue(
|
|
||||||
lerp(
|
|
||||||
ui->timeline_area->horizontalScrollBar()->value(),
|
|
||||||
getTimelineScreenPointFromFrame(playhead) - (ui->timeline_area->width()/2),
|
|
||||||
0.99
|
|
||||||
)
|
|
||||||
);
|
|
||||||
redraw_all_clips(false);
|
redraw_all_clips(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+209
-158
@@ -256,171 +256,228 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="ScrollArea" name="timeline_area">
|
<widget class="QWidget" name="timeline_area" native="true">
|
||||||
<property name="verticalScrollBarPolicy">
|
<property name="sizePolicy">
|
||||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
|
<horstretch>1</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="horizontalScrollBarPolicy">
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
<property name="spacing">
|
||||||
</property>
|
<number>0</number>
|
||||||
<property name="widgetResizable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>819</width>
|
|
||||||
<height>557</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
<property name="leftMargin">
|
||||||
<property name="spacing">
|
<number>0</number>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
<property name="topMargin">
|
||||||
<property name="leftMargin">
|
<number>0</number>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
<property name="rightMargin">
|
||||||
<property name="topMargin">
|
<number>0</number>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
<property name="bottomMargin">
|
||||||
<property name="rightMargin">
|
<number>0</number>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
<item>
|
||||||
<property name="bottomMargin">
|
<widget class="QScrollArea" name="headerScrollArea">
|
||||||
<number>0</number>
|
<property name="sizePolicy">
|
||||||
</property>
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
<item>
|
<horstretch>0</horstretch>
|
||||||
<widget class="TimelineHeader" name="headers" native="true">
|
<verstretch>0</verstretch>
|
||||||
<property name="minimumSize">
|
</sizepolicy>
|
||||||
<size>
|
</property>
|
||||||
<width>0</width>
|
<property name="maximumSize">
|
||||||
<height>15</height>
|
<size>
|
||||||
</size>
|
<width>16777215</width>
|
||||||
|
<height>15</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Plain</enum>
|
||||||
|
</property>
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
<property name="widgetResizable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="scrollAreaWidgetContents_5">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>821</width>
|
||||||
|
<height>16</height>
|
||||||
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="focusPolicy">
|
<property name="sizePolicy">
|
||||||
<enum>Qt::ClickFocus</enum>
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="TimelineHeader" name="headers" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>15</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::ClickFocus</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</widget>
|
||||||
<item>
|
</item>
|
||||||
<widget class="QSplitter" name="splitter">
|
<item>
|
||||||
<property name="orientation">
|
<widget class="QSplitter" name="splitter">
|
||||||
<enum>Qt::Vertical</enum>
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="opaqueResize">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="childrenCollapsible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<widget class="QScrollArea" name="videoScrollArea">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="opaqueResize">
|
<property name="verticalScrollBarPolicy">
|
||||||
<bool>false</bool>
|
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="childrenCollapsible">
|
<property name="horizontalScrollBarPolicy">
|
||||||
<bool>false</bool>
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QScrollArea" name="videoScrollArea">
|
<property name="widgetResizable">
|
||||||
<property name="frameShape">
|
<bool>true</bool>
|
||||||
<enum>QFrame::NoFrame</enum>
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="scrollAreaWidgetContents_2">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>807</width>
|
||||||
|
<height>277</height>
|
||||||
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="verticalScrollBarPolicy">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
<property name="spacing">
|
||||||
</property>
|
<number>0</number>
|
||||||
<property name="horizontalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
||||||
</property>
|
|
||||||
<property name="widgetResizable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="scrollAreaWidgetContents_2">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>805</width>
|
|
||||||
<height>269</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<property name="leftMargin">
|
||||||
<property name="leftMargin">
|
<number>0</number>
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="TimelineWidget" name="video_area" native="true">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::ClickFocus</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<widget class="QScrollArea" name="audioScrollArea">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::NoFrame</enum>
|
|
||||||
</property>
|
|
||||||
<property name="verticalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
||||||
</property>
|
|
||||||
<property name="widgetResizable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="scrollAreaWidgetContents_3">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>805</width>
|
|
||||||
<height>269</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<property name="topMargin">
|
||||||
<property name="leftMargin">
|
<number>0</number>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
<property name="rightMargin">
|
||||||
<property name="topMargin">
|
<number>0</number>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
<property name="bottomMargin">
|
||||||
<property name="rightMargin">
|
<number>0</number>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
<item>
|
||||||
<property name="bottomMargin">
|
<widget class="TimelineWidget" name="video_area" native="true">
|
||||||
<number>0</number>
|
<property name="focusPolicy">
|
||||||
</property>
|
<enum>Qt::ClickFocus</enum>
|
||||||
<item>
|
</property>
|
||||||
<widget class="TimelineWidget" name="audio_area" native="true">
|
</widget>
|
||||||
<property name="focusPolicy">
|
</item>
|
||||||
<enum>Qt::ClickFocus</enum>
|
</layout>
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
<widget class="QScrollArea" name="audioScrollArea">
|
||||||
</layout>
|
<property name="frameShape">
|
||||||
</widget>
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||||
|
</property>
|
||||||
|
<property name="widgetResizable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="scrollAreaWidgetContents_3">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>807</width>
|
||||||
|
<height>263</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="TimelineWidget" name="audio_area" native="true">
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::ClickFocus</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@@ -455,12 +512,6 @@
|
|||||||
<header>ui/audiomonitor.h</header>
|
<header>ui/audiomonitor.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
<customwidget>
|
|
||||||
<class>ScrollArea</class>
|
|
||||||
<extends>QScrollArea</extends>
|
|
||||||
<header>ui/scrollarea.h</header>
|
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../icons/icons.qrc"/>
|
<include location="../icons/icons.qrc"/>
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
|
|
||||||
#define KEYFRAME_SIZE 5
|
#define KEYFRAME_SIZE 6
|
||||||
#define KEYFRAME_POINT_COUNT 4
|
#define KEYFRAME_POINT_COUNT 4
|
||||||
|
|
||||||
KeyframeView::KeyframeView(QWidget *parent) : QWidget(parent), mouseover(false), visible_in(0), visible_out(0) {
|
KeyframeView::KeyframeView(QWidget *parent) : QWidget(parent), mouseover(false), visible_in(0), visible_out(0) {
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,6 @@ public:
|
|||||||
explicit TimelineHeader(QWidget *parent = 0);
|
explicit TimelineHeader(QWidget *parent = 0);
|
||||||
void set_in_point(long p);
|
void set_in_point(long p);
|
||||||
void set_out_point(long p);
|
void set_out_point(long p);
|
||||||
void set_visible_in(long i);
|
|
||||||
|
|
||||||
bool snapping;
|
bool snapping;
|
||||||
|
|
||||||
@@ -40,6 +39,7 @@ private:
|
|||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
void set_visible_in(long i);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TIMELINEHEADER_H
|
#endif // TIMELINEHEADER_H
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
#include "ui/sourcetable.h"
|
#include "ui/sourcetable.h"
|
||||||
#include "panels/effectcontrols.h"
|
#include "panels/effectcontrols.h"
|
||||||
#include "project/undo.h"
|
#include "project/undo.h"
|
||||||
|
#include "ui_timeline.h"
|
||||||
|
|
||||||
#include "effects/effect.h"
|
#include "effects/effect.h"
|
||||||
#include "effects/transition.h"
|
#include "effects/transition.h"
|
||||||
@@ -1576,8 +1577,8 @@ void TimelineWidget::redraw_clips() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (minimumWidth() != panel_width || clip_pixmap.height() != height() || panel_height != minimumHeight()) {
|
if (minimumWidth() != panel_width || clip_pixmap.height() != height() || panel_height != minimumHeight()) {
|
||||||
setMinimumWidth(panel_width);
|
panel_timeline->ui->headers->setMinimumWidth(panel_width);
|
||||||
container->setMinimumWidth(panel_width);
|
setMinimumWidth(panel_width);
|
||||||
setMinimumHeight(panel_height);
|
setMinimumHeight(panel_height);
|
||||||
clip_pixmap = QPixmap(qMax(width(), panel_width), qMax(height(), panel_height));
|
clip_pixmap = QPixmap(qMax(width(), panel_width), qMax(height(), panel_height));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user