Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix #1004 Toolbar buttons are different sizes #1022

Merged
merged 1 commit into from Jan 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Meltytech, LLC
* Copyright (c) 2020-2021 Meltytech, LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
Expand All @@ -21,21 +21,11 @@ import Shotcut.Controls 1.0 as Shotcut

ToolButton {
id: control
property string iconName
property url iconSource
property alias tooltip: tooltip.text

background: Rectangle {
id: rect
radius: 3
width: control.width
height: control.height
SystemPalette { id: activePalette }
color: control.checked? activePalette.highlight : activePalette.button
}
action: Action {
icon.name: iconName
icon.source: iconSource
}
Shotcut.HoverTip { id: tooltip }
icon.height: control.height - (verticalPadding * 2)
icon.width: control.height - (horizontalPadding * 2)
padding: 3

SystemPalette { id: activePalette }
palette.button: checked ? activePalette.highlight : activePalette.button
}
2 changes: 1 addition & 1 deletion src/qml/modules/Shotcut/Controls/qmldir
Expand Up @@ -17,6 +17,6 @@ TextFilterVui 1.0 TextFilterVui.qml
ToggleButton 1.0 ToggleButton.qml
VuiBase 1.0 VuiBase.qml
KeyframableFilter 1.0 KeyframableFilter.qml
ToolBarToggle 1.0 ToolBarToggle.qml
ToolButton 1.0 ToolButton.qml
HoverTip 1.0 HoverTip.qml
ComboBox 1.0 ComboBox.qml
39 changes: 30 additions & 9 deletions src/qml/views/keyframes/KeyframesToolbar.qml
Expand Up @@ -27,12 +27,19 @@ ToolBar {

id: toolbar
width: 200
height: 36
height: settings.smallIcons ? 28 : hiddenButton.implicitHeight + 3

RowLayout {
y: 2
ToolButton {
id: menuButton
id: hiddenButton
visible: false
icon.name: 'show-menu'
icon.source: 'qrc:///icons/oxygen/32x32/actions/show-menu.png'
}
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Display a menu of additional actions') }
focusPolicy: Qt.NoFocus
action: Action {
Expand All @@ -47,7 +54,9 @@ ToolBar {
implicitWidth: 2
implicitHeight: toolbar.height / 2
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Set the filter start') }
focusPolicy: Qt.NoFocus
action: Action {
Expand All @@ -56,7 +65,9 @@ ToolBar {
onTriggered: filter.in = producer.position + producer.in
}
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Set the filter end') }
focusPolicy: Qt.NoFocus
action: Action {
Expand All @@ -65,7 +76,9 @@ ToolBar {
onTriggered: filter.out = producer.position + producer.in
}
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Set the first simple keyframe') }
focusPolicy: Qt.NoFocus
action: Action {
Expand All @@ -74,7 +87,9 @@ ToolBar {
onTriggered: filter.animateIn = producer.position + producer.in - filter.in
}
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Set the second simple keyframe') }
focusPolicy: Qt.NoFocus
action: Action {
Expand All @@ -88,7 +103,9 @@ ToolBar {
implicitWidth: 2
implicitHeight: toolbar.height / 2
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Zoom keyframes out (Alt+-)') }
focusPolicy: Qt.NoFocus
action: Action {
Expand All @@ -101,7 +118,9 @@ ToolBar {
ZoomSlider {
id: scaleSlider
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Zoom keyframes in (Alt++)') }
focusPolicy: Qt.NoFocus
action: Action {
Expand All @@ -111,7 +130,9 @@ ToolBar {
onTriggered: root.zoomIn()
}
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
Shotcut.HoverTip { text: qsTr('Zoom keyframes to fit (Alt+0)') }
focusPolicy: Qt.NoFocus
action: Action {
Expand Down
92 changes: 63 additions & 29 deletions src/qml/views/timeline/TimelineToolbar.qml
Expand Up @@ -29,15 +29,19 @@ ToolBar {

id: toolbar
width: 200
height: 32
height: settings.smallIcons ? 28 : hiddenButton.implicitHeight + 3

RowLayout {
y: 2
ToolButton {
id: hiddenButton
visible: false
icon.name: 'show-menu'
icon.source: 'qrc:///icons/oxygen/32x32/actions/show-menu.png'
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: menuAction
Shotcut.HoverTip { text: qsTr('Display a menu of additional actions') }
focusPolicy: Qt.NoFocus
Expand All @@ -47,17 +51,23 @@ ToolBar {
implicitWidth: 2
implicitHeight: toolbar.height / 2
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: cutAction
Shotcut.HoverTip { text: qsTr('Cut - Copy the current clip to the Source\nplayer and ripple delete it') }
focusPolicy: Qt.NoFocus
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: copyAction
Shotcut.HoverTip { text: qsTr('Copy - Copy the current clip to the Source player (C)') }
focusPolicy: Qt.NoFocus
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: insertAction
Shotcut.HoverTip { text: qsTr('Paste - Insert clip into the current track\nshifting following clips to the right (V)') }
focusPolicy: Qt.NoFocus
Expand All @@ -67,27 +77,37 @@ ToolBar {
implicitWidth: 2
implicitHeight: toolbar.height / 2
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: appendAction
Shotcut.HoverTip { text: qsTr('Append to the current track (A)') }
focusPolicy: Qt.NoFocus
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: deleteAction
Shotcut.HoverTip { text: qsTr('Ripple Delete - Remove current clip\nshifting following clips to the left (X)') }
focusPolicy: Qt.NoFocus
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: liftAction
Shotcut.HoverTip { text: qsTr('Lift - Remove current clip without\naffecting position of other clips (Z)') }
focusPolicy: Qt.NoFocus
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: overwriteAction
Shotcut.HoverTip { text: qsTr('Overwrite clip onto the current track (B)') }
focusPolicy: Qt.NoFocus
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: splitAction
Shotcut.HoverTip { text: qsTr('Split At Playhead (S)') }
focusPolicy: Qt.NoFocus
Expand All @@ -97,61 +117,75 @@ ToolBar {
implicitWidth: 2
implicitHeight: toolbar.height / 2
}
Shotcut.ToolBarToggle {
Shotcut.ToolButton {
id: snapButton
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
checked: settings.timelineSnap
iconName: 'snap'
iconSource: 'qrc:///icons/oxygen/32x32/actions/snap.png'
icon.name: 'snap'
icon.source: 'qrc:///icons/oxygen/32x32/actions/snap.png'
focusPolicy: Qt.NoFocus
tooltip: qsTr('Toggle snapping')
Shotcut.HoverTip { text: qsTr('Toggle snapping') }
onClicked: settings.timelineSnap = !settings.timelineSnap
}
Shotcut.ToolBarToggle {
Shotcut.ToolButton {
id: scrubButton
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
checked: settings.timelineDragScrub
iconName: 'scrub_drag'
iconSource: 'qrc:///icons/oxygen/32x32/actions/scrub_drag.png'
icon.name: 'scrub_drag'
icon.source: 'qrc:///icons/oxygen/32x32/actions/scrub_drag.png'
focusPolicy: Qt.NoFocus
tooltip: qsTr('Scrub while dragging')
Shotcut.HoverTip { text: qsTr('Scrub while dragging') }
onClicked: settings.timelineDragScrub = !settings.timelineDragScrub
}
Shotcut.ToolBarToggle {
Shotcut.ToolButton {
id: rippleButton
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
checked: settings.timelineRipple
iconName: 'target'
iconSource: 'qrc:///icons/oxygen/32x32/actions/target.png'
icon.name: 'target'
icon.source: 'qrc:///icons/oxygen/32x32/actions/target.png'
focusPolicy: Qt.NoFocus
tooltip: qsTr('Ripple trim and drop')
Shotcut.HoverTip { text: qsTr('Ripple trim and drop') }
onClicked: settings.timelineRipple = !settings.timelineRipple
}
Shotcut.ToolBarToggle {
Shotcut.ToolButton {
id: rippleAllButton
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
checked: settings.timelineRippleAllTracks
iconName: 'ripple-all'
iconSource: 'qrc:///icons/oxygen/32x32/actions/ripple-all.png'
icon.name: 'ripple-all'
icon.source: 'qrc:///icons/oxygen/32x32/actions/ripple-all.png'
focusPolicy: Qt.NoFocus
tooltip: qsTr('Ripple edits across all tracks')
Shotcut.HoverTip { text: qsTr('Ripple edits across all tracks') }
onClicked: settings.timelineRippleAllTracks = !settings.timelineRippleAllTracks
}
Button { // separator
enabled: false
implicitWidth: 2
implicitHeight: toolbar.height / 2
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: zoomOutAction
Shotcut.HoverTip { text: qsTr("Zoom timeline out (-)") }
focusPolicy: Qt.NoFocus
}
ZoomSlider {
id: scaleSlider
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: zoomInAction
Shotcut.HoverTip { text: qsTr("Zoom timeline in (+)") }
focusPolicy: Qt.NoFocus
}
ToolButton {
Shotcut.ToolButton {
implicitHeight: toolbar.height - 3
implicitWidth: implicitHeight
action: zoomFitAction
Shotcut.HoverTip { text: qsTr('Zoom timeline to fit (0)') }
focusPolicy: Qt.NoFocus
Expand Down