@@ -41,10 +41,6 @@ PreferencesBehaviorTab::PreferencesBehaviorTab()
|
||||
QStringLiteral("HoverFocus"),
|
||||
tr("Panels will be considered focused when the mouse cursor is over them without having to click them."),
|
||||
general_group);
|
||||
AddItem(tr("Scroll wheel zooms by default instead of scrolling"),
|
||||
QStringLiteral("ScrollZooms"),
|
||||
tr("Holding CTRL while using Olive toggles this setting"),
|
||||
general_group);
|
||||
AddItem(tr("Enable slider ladder"),
|
||||
QStringLiteral("UseSliderLadders"),
|
||||
general_group);
|
||||
|
||||
@@ -307,8 +307,6 @@ void CurveView::VerticalScaleChangedEvent(double scale)
|
||||
|
||||
void CurveView::ContextMenuEvent(Menu &m)
|
||||
{
|
||||
m.addSeparator();
|
||||
|
||||
// View settings
|
||||
QAction* zoom_fit_action = m.addAction(tr("Zoom to Fit"));
|
||||
connect(zoom_fit_action, &QAction::triggered, this, &CurveView::ZoomToFit);
|
||||
|
||||
@@ -31,7 +31,8 @@ namespace olive {
|
||||
|
||||
HandMovableView::HandMovableView(QWidget* parent) :
|
||||
super(parent),
|
||||
dragging_hand_(false)
|
||||
dragging_hand_(false),
|
||||
scroll_zooms_by_default_(Config::Current()[QStringLiteral("ScrollZooms")].toBool())
|
||||
{
|
||||
connect(Core::instance(), &Core::ToolChanged, this, &HandMovableView::ApplicationToolChanged);
|
||||
}
|
||||
@@ -122,9 +123,9 @@ const HandMovableView::DragMode &HandMovableView::GetDefaultDragMode() const
|
||||
return default_drag_mode_;
|
||||
}
|
||||
|
||||
bool HandMovableView::WheelEventIsAZoomEvent(QWheelEvent *event)
|
||||
bool HandMovableView::WheelEventIsAZoomEvent(QWheelEvent *event) const
|
||||
{
|
||||
return (static_cast<bool>(event->modifiers() & Qt::ControlModifier) == !Config::Current()[QStringLiteral("ScrollZooms")].toBool());
|
||||
return (static_cast<bool>(event->modifiers() & Qt::ControlModifier) == !scroll_zooms_by_default_);
|
||||
}
|
||||
|
||||
void HandMovableView::wheelEvent(QWheelEvent *event)
|
||||
@@ -154,4 +155,17 @@ void HandMovableView::ZoomIntoCursorPosition(QWheelEvent *event, double multipli
|
||||
Q_UNUSED(cursor_pos)
|
||||
}
|
||||
|
||||
QAction *HandMovableView::AddSetScrollZoomsByDefaultActionToMenu(QMenu *m, bool autoconnect)
|
||||
{
|
||||
QAction* ctrl_zoom = m->addAction(tr("Scroll Zooms By Default"));
|
||||
ctrl_zoom->setCheckable(true);
|
||||
ctrl_zoom->setChecked(GetScrollZoomsByDefault());
|
||||
|
||||
if (autoconnect) {
|
||||
connect(ctrl_zoom, &QAction::triggered, this, &HandMovableView::SetScrollZoomsByDefault);
|
||||
}
|
||||
|
||||
return ctrl_zoom;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#define HANDMOVABLEVIEW_H
|
||||
|
||||
#include <QGraphicsView>
|
||||
#include <QMenu>
|
||||
|
||||
#include "tool/tool.h"
|
||||
|
||||
@@ -33,6 +34,19 @@ class HandMovableView : public QGraphicsView
|
||||
public:
|
||||
HandMovableView(QWidget* parent = nullptr);
|
||||
|
||||
bool GetScrollZoomsByDefault() const
|
||||
{
|
||||
return scroll_zooms_by_default_;
|
||||
}
|
||||
|
||||
QAction* AddSetScrollZoomsByDefaultActionToMenu(QMenu* menu, bool autoconnect = true);
|
||||
|
||||
public slots:
|
||||
void SetScrollZoomsByDefault(bool e)
|
||||
{
|
||||
scroll_zooms_by_default_ = e;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual void ToolChangedEvent(Tool::Item tool){Q_UNUSED(tool)}
|
||||
|
||||
@@ -43,7 +57,7 @@ protected:
|
||||
void SetDefaultDragMode(DragMode mode);
|
||||
const DragMode& GetDefaultDragMode() const;
|
||||
|
||||
static bool WheelEventIsAZoomEvent(QWheelEvent* event);
|
||||
bool WheelEventIsAZoomEvent(QWheelEvent* event) const;
|
||||
|
||||
virtual void wheelEvent(QWheelEvent* event) override;
|
||||
|
||||
@@ -55,6 +69,14 @@ private:
|
||||
|
||||
DragMode default_drag_mode_;
|
||||
|
||||
/**
|
||||
* @brief Whether scrolling should perform a scroll or a zoom
|
||||
*
|
||||
* If TRUE, scrolling will ZOOM and Ctrl+Scroll with SCROLL.
|
||||
* If FALSE (default), scrolling will SCROLL and Ctrl+Scroll will ZOOM.
|
||||
*/
|
||||
bool scroll_zooms_by_default_;
|
||||
|
||||
private slots:
|
||||
void ApplicationToolChanged(Tool::Item tool);
|
||||
|
||||
|
||||
@@ -525,6 +525,12 @@ void KeyframeViewBase::ShowContextMenu()
|
||||
}
|
||||
}
|
||||
|
||||
m.addSeparator();
|
||||
|
||||
AddSetScrollZoomsByDefaultActionToMenu(&m);
|
||||
|
||||
m.addSeparator();
|
||||
|
||||
ContextMenuEvent(m);
|
||||
|
||||
if (!items.isEmpty()) {
|
||||
|
||||
@@ -711,6 +711,10 @@ void NodeView::ShowContextMenu(const QPoint &pos)
|
||||
|
||||
m.addSeparator();
|
||||
|
||||
AddSetScrollZoomsByDefaultActionToMenu(&m);
|
||||
|
||||
m.addSeparator();
|
||||
|
||||
Menu* filter_menu = new Menu(tr("Filter"), &m);
|
||||
m.addMenu(filter_menu);
|
||||
|
||||
|
||||
@@ -979,6 +979,9 @@ void TimelineWidget::ShowContextMenu()
|
||||
show_waveforms->setChecked(views_.first()->view()->GetShowWaveforms());
|
||||
connect(show_waveforms, &QAction::triggered, this, &TimelineWidget::SetViewWaveformsEnabled);
|
||||
|
||||
QAction* scroll_zoom = views_.first()->view()->AddSetScrollZoomsByDefaultActionToMenu(&menu);
|
||||
connect(scroll_zoom, &QAction::triggered, this, &TimelineWidget::SetScrollZoomsByDefaultOnAllViews);
|
||||
|
||||
menu.addSeparator();
|
||||
|
||||
QAction* properties_action = menu.addAction(tr("Properties"));
|
||||
@@ -1077,6 +1080,13 @@ void TimelineWidget::TrackIndexChanged(int old, int now)
|
||||
}
|
||||
}
|
||||
|
||||
void TimelineWidget::SetScrollZoomsByDefaultOnAllViews(bool e)
|
||||
{
|
||||
foreach (TimelineAndTrackView* tview, views_) {
|
||||
tview->view()->SetScrollZoomsByDefault(e);
|
||||
}
|
||||
}
|
||||
|
||||
void TimelineWidget::AddGhost(TimelineViewGhostItem *ghost)
|
||||
{
|
||||
ghost_items_.append(ghost);
|
||||
|
||||
@@ -353,6 +353,8 @@ private slots:
|
||||
|
||||
void TrackIndexChanged(int old, int now);
|
||||
|
||||
void SetScrollZoomsByDefaultOnAllViews(bool e);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user