various scrolling fixes for the effect keyframes
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <QLabel>
|
||||
#include <QVBoxLayout>
|
||||
#include <QIcon>
|
||||
#include <QApplication>
|
||||
|
||||
#include "panels/panels.h"
|
||||
#include "project/effect.h"
|
||||
@@ -52,6 +53,7 @@ EffectControls::EffectControls(QWidget *parent) :
|
||||
|
||||
lblMultipleClipsSelected->setVisible(false);
|
||||
|
||||
connect(keyframeView, SIGNAL(wheel_event_signal(QWheelEvent*)), effects_area, SLOT(receive_wheel_event(QWheelEvent*)));
|
||||
connect(horizontalScrollBar, SIGNAL(valueChanged(int)), headers, SLOT(set_scroll(int)));
|
||||
connect(horizontalScrollBar, SIGNAL(resize_move(double)), keyframeView, SLOT(resize_move(double)));
|
||||
connect(horizontalScrollBar, SIGNAL(valueChanged(int)), keyframeView, SLOT(set_x_scroll(int)));
|
||||
@@ -439,7 +441,17 @@ void EffectControls::setup_ui() {
|
||||
|
||||
hlayout->addWidget(splitter);
|
||||
|
||||
setWidget(contents);
|
||||
setWidget(contents);
|
||||
}
|
||||
|
||||
void EffectControls::update_scrollbar() {
|
||||
verticalScrollBar->setMaximum(qMax(0, effects_area->height() - keyframeView->height() - headers->height()));
|
||||
verticalScrollBar->setPageStep(verticalScrollBar->height());
|
||||
}
|
||||
|
||||
void EffectControls::queue_post_update() {
|
||||
keyframeView->update();
|
||||
update_scrollbar();
|
||||
}
|
||||
|
||||
void EffectControls::load_effects() {
|
||||
@@ -469,10 +481,10 @@ void EffectControls::load_effects() {
|
||||
}
|
||||
if (selected_clips.size() > 0) {
|
||||
setWindowTitle(panel_name + sequence->clips.at(selected_clips.at(0))->name);
|
||||
verticalScrollBar->setMaximum(qMax(0, effects_area->sizeHint().height() - headers->height() + scrollArea->horizontalScrollBar()->height()/* - keyframeView->height() - headers->height()*/));
|
||||
keyframeView->setEnabled(true);
|
||||
headers->setVisible(true);
|
||||
keyframeView->update();
|
||||
|
||||
QTimer::singleShot(50, this, SLOT(queue_post_update()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -532,7 +544,7 @@ void EffectControls::audio_transition_click() {
|
||||
}
|
||||
|
||||
void EffectControls::resizeEvent(QResizeEvent*) {
|
||||
verticalScrollBar->setMaximum(qMax(0, effects_area->height() - keyframeView->height() - headers->height()));
|
||||
update_scrollbar();
|
||||
}
|
||||
|
||||
bool EffectControls::is_focused() {
|
||||
@@ -556,8 +568,6 @@ EffectsArea::EffectsArea(QWidget* parent) :
|
||||
QWidget(parent)
|
||||
{}
|
||||
|
||||
void EffectsArea::resizeEvent(QResizeEvent*) {
|
||||
// parent_widget->setMinimumWidth(sizeHint().width());
|
||||
// parent_widget->resize(sizeHint().width(), parent_widget->height());
|
||||
// parent_widget->updateGeometry();
|
||||
void EffectsArea::receive_wheel_event(QWheelEvent *e) {
|
||||
QApplication::sendEvent(this, e);
|
||||
}
|
||||
|
||||
@@ -19,12 +19,14 @@ class QScrollBar;
|
||||
class QHBoxLayout;
|
||||
|
||||
class EffectsArea : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
EffectsArea(QWidget* parent = 0);
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
EffectsArea(QWidget* parent = 0);
|
||||
QScrollArea* parent_widget;
|
||||
KeyframeView* keyframe_area;
|
||||
TimelineHeader* header;
|
||||
public slots:
|
||||
void receive_wheel_event(QWheelEvent* e);
|
||||
};
|
||||
|
||||
class EffectControls : public QDockWidget
|
||||
@@ -65,6 +67,9 @@ private slots:
|
||||
void audio_transition_click();
|
||||
|
||||
void deselect_all_effects(QWidget*);
|
||||
|
||||
void update_scrollbar();
|
||||
void queue_post_update();
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
private:
|
||||
|
||||
+5
-1
@@ -167,7 +167,11 @@ void KeyframeView::paintEvent(QPaintEvent*) {
|
||||
|
||||
/*if (mouseover && mouseover_row < rowY.size()) {
|
||||
draw_keyframe(p, getScreenPointFromFrame(panel_effect_controls->zoom, mouseover_frame - visible_in), rowY.at(mouseover_row), true);
|
||||
}*/
|
||||
}*/
|
||||
}
|
||||
|
||||
void KeyframeView::wheelEvent(QWheelEvent *e) {
|
||||
emit wheel_event_signal(e);
|
||||
}
|
||||
|
||||
bool KeyframeView::keyframeIsSelected(EffectField *field, int keyframe) {
|
||||
|
||||
@@ -21,6 +21,8 @@ public:
|
||||
|
||||
long visible_in;
|
||||
long visible_out;
|
||||
signals:
|
||||
void wheel_event_signal(QWheelEvent*);
|
||||
public slots:
|
||||
void set_x_scroll(int);
|
||||
void set_y_scroll(int);
|
||||
@@ -36,6 +38,7 @@ private:
|
||||
void mouseMoveEvent(QMouseEvent* event);
|
||||
void mouseReleaseEvent(QMouseEvent *event);
|
||||
void paintEvent(QPaintEvent *event);
|
||||
void wheelEvent(QWheelEvent* e);
|
||||
bool mousedown;
|
||||
bool dragging;
|
||||
bool keys_selected;
|
||||
|
||||
Reference in New Issue
Block a user