mirror of
				https://gitgud.io/wackyideas/aerothemeplasma.git
				synced 2024-08-15 00:43:43 +00:00 
			
		
		
		
	Very early KDE 6 release.
This commit is contained in:
		
							parent
							
								
									7cc4ccabbc
								
							
						
					
					
						commit
						686046d4f7
					
				
					 6272 changed files with 140920 additions and 529657 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								kwin/scripts/smodpeekscript/contents/ui/framecornereffect.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								kwin/scripts/smodpeekscript/contents/ui/framecornereffect.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 5.5 KiB  | 
							
								
								
									
										225
									
								
								kwin/scripts/smodpeekscript/contents/ui/main.qml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										225
									
								
								kwin/scripts/smodpeekscript/contents/ui/main.qml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,225 @@
 | 
			
		|||
// Qt
 | 
			
		||||
import QtCore
 | 
			
		||||
import QtQuick 2.15
 | 
			
		||||
import QtQuick.Layouts 1.15
 | 
			
		||||
import QtQuick.Window 2.15
 | 
			
		||||
import Qt5Compat.GraphicalEffects
 | 
			
		||||
 | 
			
		||||
// KDE
 | 
			
		||||
 | 
			
		||||
import org.kde.kwin as KWin
 | 
			
		||||
import org.kde.kwin.private.effects 1.0
 | 
			
		||||
import org.kde.kwindowsystem 1.0
 | 
			
		||||
import org.kde.plasma.core 2.0 as PlasmaCore
 | 
			
		||||
import org.kde.plasma.extras 2.0 as PlasmaExtras
 | 
			
		||||
import org.kde.kirigami as Kirigami
 | 
			
		||||
import org.kde.ksvg as KSvg
 | 
			
		||||
 | 
			
		||||
Item
 | 
			
		||||
{
 | 
			
		||||
    //property bool inEditMode: Plasmoid.containment.corona.editMode;
 | 
			
		||||
    property bool showingDesktop: KWindowSystem.showingDesktop //false
 | 
			
		||||
    property real peekOpacity: showingDesktop ? 1 : 0
 | 
			
		||||
    property bool instantiatorActive: true
 | 
			
		||||
    property bool delayActive: false
 | 
			
		||||
 | 
			
		||||
    x:      0
 | 
			
		||||
    y:      0
 | 
			
		||||
    width:  Screen.width
 | 
			
		||||
    height: Screen.height
 | 
			
		||||
 | 
			
		||||
    Behavior on peekOpacity
 | 
			
		||||
    {
 | 
			
		||||
        NumberAnimation { duration: 150; easing.type: Easing.Linear; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Timer {
 | 
			
		||||
        id: timer
 | 
			
		||||
        interval: 20
 | 
			
		||||
        onTriggered: {
 | 
			
		||||
            delayActive = showingDesktop;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    onShowingDesktopChanged: {
 | 
			
		||||
        if(showingDesktop) delayActive = true;
 | 
			
		||||
        else timer.start();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    KWin.WindowFilterModel {
 | 
			
		||||
        id: windowmodel
 | 
			
		||||
        activity: KWin.Workspace.currentActivity
 | 
			
		||||
        desktop: KWin.Workspace.currentDesktop
 | 
			
		||||
        windowModel: KWin.WindowModel {}
 | 
			
		||||
        minimizedWindows: false
 | 
			
		||||
        windowType: ~KWin.WindowFilterModel.Dock &
 | 
			
		||||
        ~KWin.WindowFilterModel.Desktop &
 | 
			
		||||
        ~KWin.WindowFilterModel.Notification &
 | 
			
		||||
        ~KWin.WindowFilterModel.CriticalNotification
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Hack that ignores windows that are present in edit mode
 | 
			
		||||
    function ignoreWindow(w) {
 | 
			
		||||
        return !((w.resourceClass == "plasmashell" && w.skipTaskbar && w.caption == "plasmashell") ||
 | 
			
		||||
                 (w.resourceClass == "plasmashell") && w.dialog && !w.normalWindow && w.caption == "plasmashell" && w.modal && w.desktopFileName == "org.kde.plasmashell" && w.transient)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Instantiator
 | 
			
		||||
    {
 | 
			
		||||
        active: true
 | 
			
		||||
        asynchronous: true
 | 
			
		||||
        model: 1
 | 
			
		||||
 | 
			
		||||
        delegate: Window
 | 
			
		||||
        {
 | 
			
		||||
            flags: Qt.BypassWindowManagerHint | Qt.FramelessWindowHint | Qt.WindowTransparentForInput
 | 
			
		||||
            color: "transparent"
 | 
			
		||||
            x:       0
 | 
			
		||||
            y:       0
 | 
			
		||||
            width:   Screen.width
 | 
			
		||||
            height:  Screen.height
 | 
			
		||||
            visible: delayActive
 | 
			
		||||
            opacity: peekOpacity
 | 
			
		||||
 | 
			
		||||
            title: "aeropeek-aerothemeplasma"
 | 
			
		||||
            // Setup reflection
 | 
			
		||||
            Image
 | 
			
		||||
            {
 | 
			
		||||
                id: reflection
 | 
			
		||||
                x:            0
 | 
			
		||||
                y:            0
 | 
			
		||||
                width:        Screen.width
 | 
			
		||||
                height:       Screen.height
 | 
			
		||||
                source:       StandardPaths.writableLocation(StandardPaths.GenericDataLocation) + "/smod/reflections.png" //"~/.local/share/smod/reflections.png"
 | 
			
		||||
                sourceSize:   Qt.size(width, height)
 | 
			
		||||
                smooth:       true
 | 
			
		||||
                visible:      false
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Setup mask
 | 
			
		||||
            Item
 | 
			
		||||
            {
 | 
			
		||||
                id: mask
 | 
			
		||||
                anchors.fill: reflection
 | 
			
		||||
                visible: true
 | 
			
		||||
                opacity: 0.01
 | 
			
		||||
 | 
			
		||||
                // Paint over all window geometry
 | 
			
		||||
                Repeater
 | 
			
		||||
                {
 | 
			
		||||
                    model: windowmodel
 | 
			
		||||
                    delegate: Rectangle
 | 
			
		||||
                    {
 | 
			
		||||
                        x:      model.window.x
 | 
			
		||||
                        y:      model.window.y
 | 
			
		||||
                        width:  model.window.width
 | 
			
		||||
                        height: model.window.height
 | 
			
		||||
                        color: "black"
 | 
			
		||||
                        radius: 6
 | 
			
		||||
                        visible: {
 | 
			
		||||
 | 
			
		||||
                            //if(!model.window.minimized) console.log(JSON.stringify(model.window));
 | 
			
		||||
                            return !model.window.minimized && model.window.managed && ignoreWindow(model.window)
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        //visible: { if(!model.window.minimized && model.window.caption !== "") console.log(model.window.stackingOrder + " " + model.window.active + " " + model.window.caption); return !model.window.minimized && model.window.managed; }
 | 
			
		||||
                        //visible: { if(!model.window.minimized && model.window.caption !== "") console.log(JSON.stringify(model.window)); return !model.window.minimized && model.window.managed }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Paint reflection
 | 
			
		||||
            OpacityMask
 | 
			
		||||
            {
 | 
			
		||||
                anchors.fill: reflection
 | 
			
		||||
                source:       reflection
 | 
			
		||||
                maskSource:   mask
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            // Paint frames
 | 
			
		||||
            Repeater
 | 
			
		||||
            {
 | 
			
		||||
                model: windowmodel
 | 
			
		||||
                delegate: Item
 | 
			
		||||
                {
 | 
			
		||||
                    id: peekwindow
 | 
			
		||||
 | 
			
		||||
                    // Assume the topmost window is the active window
 | 
			
		||||
                    property bool clientActive: model.window.stackingOrder == windowmodel.rowCount() - 1
 | 
			
		||||
                    // Assume window is maximized under these conditions
 | 
			
		||||
                    property bool clientMaximized: model.window.x == 0 && model.window.y == 0 && model.window.width == Screen.width && model.window.height >= Screen.height / 2
 | 
			
		||||
 | 
			
		||||
                    anchors.fill: parent
 | 
			
		||||
                    visible: !model.window.minimized && !clientMaximized && model.window.managed && ignoreWindow(model.window)
 | 
			
		||||
                    //&& !(model.window.dialog && !model.window.normalWindow && model.window.resourceClass == "plasmashell" && model.window.caption == "plasmashell <2>")
 | 
			
		||||
                    z: model.window.stackingOrder
 | 
			
		||||
 | 
			
		||||
                    Item {
 | 
			
		||||
                        id: glowCorners
 | 
			
		||||
                        anchors.fill: frame
 | 
			
		||||
                        Image
 | 
			
		||||
                        {
 | 
			
		||||
                            anchors.top: parent.top
 | 
			
		||||
                            anchors.left: parent.left
 | 
			
		||||
                            source:       StandardPaths.writableLocation(StandardPaths.GenericDataLocation) + "/smod/" + (peekwindow.clientActive ? "framecornereffect.png" : "framecornereffect-unfocus.png")
 | 
			
		||||
                            smooth:       true
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        Image
 | 
			
		||||
                        {
 | 
			
		||||
                            anchors.top: parent.top
 | 
			
		||||
                            anchors.right: parent.right
 | 
			
		||||
                            source:       StandardPaths.writableLocation(StandardPaths.GenericDataLocation) + "/smod/" + (peekwindow.clientActive ? "framecornereffect.png" : "framecornereffect-unfocus.png")
 | 
			
		||||
                            smooth:       true
 | 
			
		||||
                            mirror:       true
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        layer.enabled: true
 | 
			
		||||
                        layer.effect: OpacityMask {
 | 
			
		||||
                            maskSource: Rectangle {
 | 
			
		||||
                                x:      frame.x
 | 
			
		||||
                                y:      frame.y
 | 
			
		||||
                                width:  frame.width
 | 
			
		||||
                                height: frame.height
 | 
			
		||||
                                radius: 6
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    KSvg.FrameSvgItem
 | 
			
		||||
                    {
 | 
			
		||||
                        id: frameshadow
 | 
			
		||||
 | 
			
		||||
                        property int actualMarginLeft:   frameshadow.margins.left   - 16
 | 
			
		||||
                        property int actualMarginRight:  frameshadow.margins.right  - 9
 | 
			
		||||
                        property int actualMarginTop:    frameshadow.margins.top    - 17
 | 
			
		||||
                        property int actualMarginBottom: frameshadow.margins.bottom - 17
 | 
			
		||||
 | 
			
		||||
                        imagePath:      Qt.resolvedUrl("res/peek-frame.svgz")
 | 
			
		||||
                        prefix:         peekwindow.clientActive ? "shadow" : "shadowunfocus"
 | 
			
		||||
 | 
			
		||||
                        x:      frame.x      - frameshadow.actualMarginLeft
 | 
			
		||||
                        y:      frame.y      - frameshadow.actualMarginTop
 | 
			
		||||
                        width:  frame.width  + frameshadow.actualMarginLeft + frameshadow.actualMarginRight
 | 
			
		||||
                        height: frame.height + frameshadow.actualMarginTop  + frameshadow.actualMarginBottom
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    KSvg.FrameSvgItem
 | 
			
		||||
                    {
 | 
			
		||||
                        id: frame
 | 
			
		||||
 | 
			
		||||
                        imagePath:      Qt.resolvedUrl("res/peek-frame.svgz")
 | 
			
		||||
                        prefix:         peekwindow.clientActive ? "" : "unfocus"
 | 
			
		||||
 | 
			
		||||
                        x:      model.window.x
 | 
			
		||||
                        y:      model.window.y
 | 
			
		||||
                        width:  model.window.width
 | 
			
		||||
                        height: model.window.height
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								kwin/scripts/smodpeekscript/contents/ui/reflections.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								kwin/scripts/smodpeekscript/contents/ui/reflections.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 94 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								kwin/scripts/smodpeekscript/contents/ui/res/peek-frame.svgz
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								kwin/scripts/smodpeekscript/contents/ui/res/peek-frame.svgz
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue