You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
516 lines
19 KiB
QML
516 lines
19 KiB
QML
/*
|
|
* Copyright 2016 Smith AR <audoban@openmailbox.org>
|
|
* Michail Vourlakos <mvourlakos@gmail.com>
|
|
*
|
|
* This file is part of Latte-Dock
|
|
*
|
|
* Latte-Dock is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* Latte-Dock is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
import QtQuick 2.7
|
|
import QtQuick.Controls 1.4
|
|
import QtQuick.Layouts 1.3
|
|
import QtGraphicalEffects 1.0
|
|
|
|
import org.kde.plasma.core 2.0 as PlasmaCore
|
|
import org.kde.plasma.components 2.0 as PlasmaComponents
|
|
import org.kde.plasma.components 3.0 as PlasmaComponents3
|
|
import org.kde.plasma.plasmoid 2.0
|
|
|
|
import org.kde.latte 0.2 as Latte
|
|
|
|
import "../../controls" as LatteExtraControls
|
|
|
|
PlasmaComponents.Page {
|
|
Layout.maximumWidth: content.width + content.Layout.leftMargin * 2
|
|
Layout.maximumHeight: content.height + units.smallSpacing * 2
|
|
|
|
property bool disableAllWindowsFunctionality: plasmoid.configuration.showWindowsOnlyFromLaunchers
|
|
&& plasmoid.configuration.activeIndicator === Latte.Types.NoneIndicator
|
|
|
|
ColumnLayout {
|
|
id: content
|
|
|
|
width: (dialog.appliedWidth - units.smallSpacing * 2) - Layout.leftMargin * 2
|
|
spacing: dialog.subGroupSpacing
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
|
|
//! BEGIN: Tasks Appearance
|
|
ColumnLayout {
|
|
spacing: units.smallSpacing
|
|
Layout.topMargin: units.smallSpacing
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
enabled: !disableAllWindowsFunctionality
|
|
|
|
LatteExtraControls.Header {
|
|
text: i18n("Appearance")
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: threeColorsWindows
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Different color for minimized windows")
|
|
checked: plasmoid.configuration.threeColorsWindows
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.threeColorsWindows = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: dotsOnActive
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Show an extra dot for grouped windows when active")
|
|
checked: plasmoid.configuration.dotsOnActive
|
|
tooltip: i18n("Grouped windows show both a line and a dot when \none of them is active and the Line Active Indicator \nis enabled")
|
|
visible: dialog.highLevel
|
|
enabled: plasmoid.configuration.activeIndicatorType === Latte.Types.LineIndicator
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.dotsOnActive = checked
|
|
}
|
|
}
|
|
|
|
}
|
|
//! END: Tasks Appearance
|
|
|
|
//! BEGIN: Badges
|
|
ColumnLayout {
|
|
spacing: units.smallSpacing
|
|
Layout.topMargin: units.smallSpacing
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
visible: dialog.highLevel
|
|
|
|
LatteExtraControls.Header {
|
|
text: i18n("Badges")
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Unread messages from tasks")
|
|
checked: plasmoid.configuration.showInfoBadge
|
|
tooltip: i18n("Show unread messages or information from tasks")
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showInfoBadge = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Progress information for tasks")
|
|
checked: plasmoid.configuration.showProgressBadge
|
|
tooltip: i18n("Show a progress animation for tasks e.g. when copying files with Dolphin")
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showProgressBadge = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Audio playing from tasks")
|
|
checked: plasmoid.configuration.showAudioBadge
|
|
tooltip: i18n("Show audio playing from tasks, the user is able to mute/unmute or change the volume")
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showAudioBadge = checked
|
|
}
|
|
}
|
|
}
|
|
//! END: Badges
|
|
|
|
//! BEGIN: Tasks Interaction
|
|
ColumnLayout {
|
|
spacing: units.smallSpacing
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
|
|
LatteExtraControls.Header {
|
|
text: i18n("Interaction")
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Add launchers only in the corresponding area")
|
|
checked: plasmoid.configuration.addLaunchersInTaskManager
|
|
tooltip: i18n("Launchers are added only in the taskmanager and not as plasma applets")
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.addLaunchersInTaskManager = checked;
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: windowActionsChk
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Show window actions in the context menu")
|
|
checked: plasmoid.configuration.showWindowActions
|
|
visible: dialog.highLevel
|
|
enabled: !disableAllWindowsFunctionality
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showWindowActions = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: unifyGlobalShortcutsChk
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Unify global shortcuts with applets")
|
|
checked: plasmoid.configuration.unifiedGlobalShortcuts
|
|
tooltip: i18n("Global shortcuts are used both from applets and tasks")
|
|
visible: dialog.highLevel
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.unifiedGlobalShortcuts = checked
|
|
}
|
|
}
|
|
}
|
|
//! END: Tasks Interaction
|
|
|
|
//! BEGIN: Tasks Filters
|
|
ColumnLayout {
|
|
spacing: units.smallSpacing
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
|
|
LatteExtraControls.Header {
|
|
text: i18n("Filters")
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: showOnlyCurrentScreen
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Show only tasks from the current screen")
|
|
checked: plasmoid.configuration.showOnlyCurrentScreen
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showOnlyCurrentScreen = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: showOnlyCurrentDesktop
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Show only tasks from the current desktop")
|
|
checked: plasmoid.configuration.showOnlyCurrentDesktop
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showOnlyCurrentDesktop = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: showOnlyCurrentActivity
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Show only tasks from the current activity")
|
|
checked: plasmoid.configuration.showOnlyCurrentActivity
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showOnlyCurrentActivity = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: showWindowsOnlyFromLaunchersChk
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Show only tasks from launchers")
|
|
checked: plasmoid.configuration.showWindowsOnlyFromLaunchers
|
|
visible: dialog.highLevel
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.showWindowsOnlyFromLaunchers = checked
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.CheckBox {
|
|
id: groupTasksChk
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
text: i18n("Group tasks of the same application")
|
|
checked: plasmoid.configuration.groupTasksByDefault
|
|
tooltip: i18n("By default group tasks of the same application")
|
|
visible: dialog.highLevel
|
|
|
|
onClicked: {
|
|
plasmoid.configuration.groupTasksByDefault = checked
|
|
}
|
|
}
|
|
}
|
|
//! END: Tasks Filters
|
|
|
|
//! BEGIN: Launchers Group
|
|
ColumnLayout {
|
|
spacing: units.smallSpacing
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
|
|
LatteExtraControls.Header {
|
|
text: i18n("Launchers")
|
|
}
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
spacing: 2
|
|
|
|
property int group: plasmoid.configuration.launchersGroup
|
|
|
|
ExclusiveGroup {
|
|
id: launchersGroup
|
|
onCurrentChanged: {
|
|
if (current.checked) {
|
|
viewConfig.updateLaunchersForGroup(current.group);
|
|
plasmoid.configuration.launchersGroup = current.group;
|
|
}
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.Button {
|
|
Layout.fillWidth: true
|
|
text: i18nc("unique launchers group","Unique")
|
|
checked: parent.group === group
|
|
checkable: true
|
|
exclusiveGroup: launchersGroup
|
|
tooltip: i18n("Use a unique set of launchers for this view which is independent from any other view")
|
|
|
|
readonly property int group: Latte.Types.UniqueLaunchers
|
|
}
|
|
|
|
PlasmaComponents.Button {
|
|
Layout.fillWidth: true
|
|
text: i18nc("layout launchers group","Layout")
|
|
checked: parent.group === group
|
|
checkable: true
|
|
exclusiveGroup: launchersGroup
|
|
tooltip: i18n("Use the current layout set of launchers for this latteView. This group provides launchers <b>synchronization</b> between different views in the <b>same layout</b>")
|
|
//! it is shown only when the user has activated that option manually from the text layout file
|
|
visible: plasmoid.configuration.launchersGroup === group
|
|
|
|
readonly property int group: Latte.Types.LayoutLaunchers
|
|
}
|
|
|
|
PlasmaComponents.Button {
|
|
Layout.fillWidth: true
|
|
text: i18nc("global launchers group","Global")
|
|
checked: parent.group === group
|
|
checkable: true
|
|
exclusiveGroup: launchersGroup
|
|
tooltip: i18n("Use the global set of launchers for this latteView. This group provides launchers <b>synchronization</b> between different views and between <b>different layouts</b>")
|
|
|
|
readonly property int group: Latte.Types.GlobalLaunchers
|
|
}
|
|
}
|
|
}
|
|
//! END: Launchers Group
|
|
|
|
//! BEGIN: Actions
|
|
ColumnLayout {
|
|
spacing: units.smallSpacing
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
visible: dialog.expertLevel
|
|
|
|
LatteExtraControls.Header {
|
|
text: i18n("Actions")
|
|
}
|
|
|
|
GridLayout {
|
|
columns: 2
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
Layout.topMargin: units.smallSpacing
|
|
enabled: !disableAllWindowsFunctionality
|
|
|
|
PlasmaComponents.Label {
|
|
text: i18n("Left Click")
|
|
}
|
|
|
|
PlasmaComponents3.ComboBox {
|
|
id: leftClickAction
|
|
Layout.fillWidth: true
|
|
model: [i18nc("present windows action", "Present Windows"),
|
|
i18n("Cycle Through Tasks"),
|
|
i18n("Preview Windows")]
|
|
|
|
currentIndex: {
|
|
switch(plasmoid.configuration.leftClickAction) {
|
|
case Latte.Types.PresentWindows:
|
|
return 0;
|
|
case Latte.Types.CycleThroughTasks:
|
|
return 1;
|
|
case Latte.Types.PreviewWindows:
|
|
return 2;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
onCurrentIndexChanged: {
|
|
switch(currentIndex) {
|
|
case 0:
|
|
plasmoid.configuration.leftClickAction = Latte.Types.PresentWindows;
|
|
break;
|
|
case 1:
|
|
plasmoid.configuration.leftClickAction = Latte.Types.CycleThroughTasks;
|
|
break;
|
|
case 2:
|
|
plasmoid.configuration.leftClickAction = Latte.Types.PreviewWindows;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
PlasmaComponents.Label {
|
|
text: i18n("Middle Click")
|
|
}
|
|
|
|
PlasmaComponents3.ComboBox {
|
|
id: middleClickAction
|
|
Layout.fillWidth: true
|
|
model: [
|
|
i18nc("The click action", "None"),
|
|
i18n("Close Window or Group"),
|
|
i18n("New Instance"),
|
|
i18n("Minimize/Restore Window or Group"),
|
|
i18n("Cycle Through Tasks"),
|
|
i18n("Toggle Task Grouping")
|
|
]
|
|
|
|
currentIndex: plasmoid.configuration.middleClickAction
|
|
onCurrentIndexChanged: plasmoid.configuration.middleClickAction = currentIndex
|
|
}
|
|
|
|
PlasmaComponents.Label {
|
|
text: i18n("Hover")
|
|
}
|
|
|
|
PlasmaComponents3.ComboBox {
|
|
id: hoverAction
|
|
Layout.fillWidth: true
|
|
model: [
|
|
i18nc("none action", "None"),
|
|
i18n("Preview Windows"),
|
|
i18n("Highlight Windows"),
|
|
i18n("Preview and Highlight Windows"),
|
|
]
|
|
|
|
currentIndex: {
|
|
switch(plasmoid.configuration.hoverAction) {
|
|
case Latte.Types.NoneAction:
|
|
return 0;
|
|
case Latte.Types.PreviewWindows:
|
|
return 1;
|
|
case Latte.Types.HighlightWindows:
|
|
return 2;
|
|
case Latte.Types.PreviewAndHighlightWindows:
|
|
return 3;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
onCurrentIndexChanged: {
|
|
switch(currentIndex) {
|
|
case 0:
|
|
plasmoid.configuration.hoverAction = Latte.Types.NoneAction;
|
|
break;
|
|
case 1:
|
|
plasmoid.configuration.hoverAction = Latte.Types.PreviewWindows;
|
|
break;
|
|
case 2:
|
|
plasmoid.configuration.hoverAction = Latte.Types.HighlightWindows;
|
|
break;
|
|
case 3:
|
|
plasmoid.configuration.hoverAction = Latte.Types.PreviewAndHighlightWindows;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
RowLayout {
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
Layout.topMargin: units.smallSpacing
|
|
spacing: units.smallSpacing
|
|
enabled: !disableAllWindowsFunctionality
|
|
|
|
PlasmaComponents3.ComboBox {
|
|
id: modifier
|
|
Layout.maximumWidth: theme.mSize(theme.defaultFont).width * 5
|
|
model: ["Shift", "Ctrl", "Alt", "Meta"]
|
|
|
|
currentIndex: plasmoid.configuration.modifier
|
|
onCurrentIndexChanged: plasmoid.configuration.modifier = currentIndex
|
|
}
|
|
|
|
PlasmaComponents.Label {
|
|
text: "+"
|
|
}
|
|
|
|
PlasmaComponents3.ComboBox {
|
|
id: modifierClick
|
|
Layout.maximumWidth: theme.mSize(theme.defaultFont).width * 10
|
|
model: [i18n("Left Click"), i18n("Middle Click"), i18n("Right Click")]
|
|
|
|
currentIndex: plasmoid.configuration.modifierClick
|
|
onCurrentIndexChanged: plasmoid.configuration.modifierClick = currentIndex
|
|
}
|
|
|
|
PlasmaComponents.Label {
|
|
text: "="
|
|
}
|
|
|
|
PlasmaComponents3.ComboBox {
|
|
id: modifierClickAction
|
|
Layout.fillWidth: true
|
|
model: [i18nc("The click action", "None"), i18n("Close Window or Group"),
|
|
i18n("New Instance"), i18n("Minimize/Restore Window or Group"), i18n("Cycle Through Tasks"), i18n("Toggle Task Grouping")]
|
|
|
|
currentIndex: plasmoid.configuration.modifierClickAction
|
|
onCurrentIndexChanged: plasmoid.configuration.modifierClickAction = currentIndex
|
|
}
|
|
}
|
|
}
|
|
//! END: Actions
|
|
|
|
//! BEGIN: Actions
|
|
ColumnLayout {
|
|
spacing: units.smallSpacing
|
|
Layout.rightMargin: units.smallSpacing * 2
|
|
visible: dialog.expertLevel
|
|
|
|
LatteExtraControls.Header {
|
|
text: i18n("Recycling")
|
|
}
|
|
|
|
PlasmaComponents.Button {
|
|
Layout.leftMargin: units.smallSpacing * 2
|
|
Layout.topMargin: units.smallSpacing
|
|
Layout.fillWidth: true
|
|
|
|
text: i18n("Remove Latte Tasks Applet")
|
|
enabled: latteView.latteTasksPresent()
|
|
tooltip: i18n("Remove Latte Tasks plasmoid")
|
|
|
|
onClicked: {
|
|
latteView.removeTasksPlasmoid();
|
|
}
|
|
}
|
|
}
|
|
|
|
//! Bottom spacer
|
|
PlasmaComponents.Label{
|
|
id: bottomMarginSpacer
|
|
text:" "
|
|
}
|
|
}
|
|
}
|