WIP
This commit is contained in:
parent
458700798f
commit
852eb47e3f
|
|
@ -153,9 +153,6 @@ void CubeEffect::activate()
|
|||
if (effects->isScreenLocked()) {
|
||||
return;
|
||||
}
|
||||
if (effects->desktops().size() < 3) {
|
||||
return;
|
||||
}
|
||||
|
||||
setRunning(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,22 +16,23 @@ Node {
|
|||
readonly property real faceDistance: 0.5 * faceSize.width / Math.tan(angleTick * Math.PI / 360) + faceDisplacement;
|
||||
readonly property real angleTick: 360 / faceRepeater.count
|
||||
|
||||
function desktopAt(azimuth) {
|
||||
function screenAt(azimuth) {
|
||||
let index = Math.round(azimuth / angleTick) % faceRepeater.count;
|
||||
if (index < 0) {
|
||||
index += faceRepeater.count;
|
||||
}
|
||||
return faceRepeater.objectAt(index).desktop;
|
||||
return faceRepeater.objectAt(index).screen;
|
||||
}
|
||||
|
||||
function desktopAzimuth(desktop) {
|
||||
return cube.angleTick * (desktop.x11DesktopNumber - 1);
|
||||
function screenAzimuth(screen) {
|
||||
return cube.angleTick * screen.index;
|
||||
}
|
||||
|
||||
Repeater3D {
|
||||
id: faceRepeater
|
||||
model: KWinComponents.VirtualDesktopModel {}
|
||||
model: KWinComponents.Workspace.screens.length
|
||||
delegate: CubeFace {
|
||||
property var screen: KWinComponents.Workspace.screens[index]
|
||||
faceSize: cube.faceSize
|
||||
scale: Qt.vector3d(faceSize.width / 100, faceSize.height / 100, 1)
|
||||
eulerRotation.y: cube.angleTick * index
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import QtQuick3D
|
|||
Model {
|
||||
id: face
|
||||
|
||||
required property QtObject desktop
|
||||
required property QtObject screen
|
||||
required property int index
|
||||
required property size faceSize
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ Model {
|
|||
lighting: DefaultMaterial.NoLighting
|
||||
diffuseMap: Texture {
|
||||
sourceItem: DesktopView {
|
||||
desktop: face.desktop
|
||||
screen: face.screen
|
||||
width: faceSize.width
|
||||
height: faceSize.height
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,20 +10,19 @@ import org.kde.kwin as KWinComponents
|
|||
Item {
|
||||
id: desktopView
|
||||
|
||||
required property QtObject desktop
|
||||
required property QtObject screen
|
||||
|
||||
Repeater {
|
||||
model: KWinComponents.WindowFilterModel {
|
||||
activity: KWinComponents.Workspace.currentActivity
|
||||
desktop: desktopView.desktop
|
||||
screenName: targetScreen.name
|
||||
screenName: desktopView.screen.name
|
||||
windowModel: KWinComponents.WindowModel {}
|
||||
}
|
||||
|
||||
KWinComponents.WindowThumbnail {
|
||||
wId: model.window.internalId
|
||||
x: model.window.x - targetScreen.geometry.x
|
||||
y: model.window.y - targetScreen.geometry.y
|
||||
x: model.window.x - desktopView.screen.geometry.x
|
||||
y: model.window.y - desktopView.screen.geometry.y
|
||||
z: model.window.stackingOrder
|
||||
visible: !model.window.minimized
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue