mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-06-11 08:57:21 +00:00
Add virtual desktop actions to the dock pager
Open desktop management from the convergence pager and let the pager add or remove the last virtual desktop without leaving the dock.
This commit is contained in:
parent
ebb80d5838
commit
a9e5a2f1e4
3 changed files with 84 additions and 4 deletions
|
|
@ -115,6 +115,22 @@ void HomeScreen::activateVirtualDesktop(const QVariant &desktop) const
|
||||||
virtualDesktopInfo.requestActivate(desktop);
|
virtualDesktopInfo.requestActivate(desktop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HomeScreen::createVirtualDesktop() const
|
||||||
|
{
|
||||||
|
TaskManager::VirtualDesktopInfo virtualDesktopInfo;
|
||||||
|
virtualDesktopInfo.requestCreateDesktop(virtualDesktopInfo.numberOfDesktops());
|
||||||
|
}
|
||||||
|
|
||||||
|
void HomeScreen::removeLastVirtualDesktop() const
|
||||||
|
{
|
||||||
|
TaskManager::VirtualDesktopInfo virtualDesktopInfo;
|
||||||
|
if (virtualDesktopInfo.numberOfDesktops() <= 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtualDesktopInfo.requestRemoveDesktop(virtualDesktopInfo.numberOfDesktops() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
void HomeScreen::emptyTrash() const
|
void HomeScreen::emptyTrash() const
|
||||||
{
|
{
|
||||||
QDBusMessage message = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kio.trash"),
|
QDBusMessage message = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kio.trash"),
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,8 @@ public:
|
||||||
Q_INVOKABLE void triggerOverview() const;
|
Q_INVOKABLE void triggerOverview() const;
|
||||||
Q_INVOKABLE void triggerMinimizeAll() const;
|
Q_INVOKABLE void triggerMinimizeAll() const;
|
||||||
Q_INVOKABLE void activateVirtualDesktop(const QVariant &desktop) const;
|
Q_INVOKABLE void activateVirtualDesktop(const QVariant &desktop) const;
|
||||||
|
Q_INVOKABLE void createVirtualDesktop() const;
|
||||||
|
Q_INVOKABLE void removeLastVirtualDesktop() const;
|
||||||
Q_INVOKABLE void emptyTrash() const;
|
Q_INVOKABLE void emptyTrash() const;
|
||||||
|
|
||||||
FolioSettings *folioSettings();
|
FolioSettings *folioSettings();
|
||||||
|
|
|
||||||
|
|
@ -562,10 +562,41 @@ MouseArea {
|
||||||
id: leftPagerHover
|
id: leftPagerHover
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
onClicked: {
|
onClicked: (mouse) => {
|
||||||
if (leftDesktopBtn.desktopId)
|
if (mouse.button === Qt.RightButton) {
|
||||||
|
leftPagerContextMenu.open()
|
||||||
|
} else if (leftDesktopBtn.desktopId) {
|
||||||
root.folio.activateVirtualDesktop(leftDesktopBtn.desktopId)
|
root.folio.activateVirtualDesktop(leftDesktopBtn.desktopId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onPressAndHold: {
|
||||||
|
leftPagerContextMenu.open()
|
||||||
|
haptics.buttonVibrate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PC3.Menu {
|
||||||
|
id: leftPagerContextMenu
|
||||||
|
popupType: T.Popup.Window
|
||||||
|
|
||||||
|
PC3.MenuItem {
|
||||||
|
icon.name: "list-add"
|
||||||
|
text: i18n("Add Virtual Desktop")
|
||||||
|
onTriggered: root.folio.createVirtualDesktop()
|
||||||
|
}
|
||||||
|
PC3.MenuItem {
|
||||||
|
icon.name: "list-remove"
|
||||||
|
text: i18n("Remove Virtual Desktop")
|
||||||
|
enabled: virtualDesktopInfo.numberOfDesktops > 1
|
||||||
|
onTriggered: root.folio.removeLastVirtualDesktop()
|
||||||
|
}
|
||||||
|
Controls.MenuSeparator {}
|
||||||
|
PC3.MenuItem {
|
||||||
|
icon.name: "preferences-desktop-virtual"
|
||||||
|
text: i18n("Configure Virtual Desktops…")
|
||||||
|
onTriggered: MobileShell.ShellUtil.executeCommand("plasma-open-settings kcm_kwin_virtualdesktops")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -625,10 +656,41 @@ MouseArea {
|
||||||
id: rightPagerHover
|
id: rightPagerHover
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
onClicked: {
|
onClicked: (mouse) => {
|
||||||
if (rightDesktopBtn.desktopId)
|
if (mouse.button === Qt.RightButton) {
|
||||||
|
rightPagerContextMenu.open()
|
||||||
|
} else if (rightDesktopBtn.desktopId) {
|
||||||
root.folio.activateVirtualDesktop(rightDesktopBtn.desktopId)
|
root.folio.activateVirtualDesktop(rightDesktopBtn.desktopId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onPressAndHold: {
|
||||||
|
rightPagerContextMenu.open()
|
||||||
|
haptics.buttonVibrate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PC3.Menu {
|
||||||
|
id: rightPagerContextMenu
|
||||||
|
popupType: T.Popup.Window
|
||||||
|
|
||||||
|
PC3.MenuItem {
|
||||||
|
icon.name: "list-add"
|
||||||
|
text: i18n("Add Virtual Desktop")
|
||||||
|
onTriggered: root.folio.createVirtualDesktop()
|
||||||
|
}
|
||||||
|
PC3.MenuItem {
|
||||||
|
icon.name: "list-remove"
|
||||||
|
text: i18n("Remove Virtual Desktop")
|
||||||
|
enabled: virtualDesktopInfo.numberOfDesktops > 1
|
||||||
|
onTriggered: root.folio.removeLastVirtualDesktop()
|
||||||
|
}
|
||||||
|
Controls.MenuSeparator {}
|
||||||
|
PC3.MenuItem {
|
||||||
|
icon.name: "preferences-desktop-virtual"
|
||||||
|
text: i18n("Configure Virtual Desktops…")
|
||||||
|
onTriggered: MobileShell.ShellUtil.executeCommand("plasma-open-settings kcm_kwin_virtualdesktops")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue