[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [mauikit] src: new piebutton implementation
From:       Camilo higuita <null () kde ! org>
Date:       2018-09-28 19:41:07
Message-ID: E1g5ydP-0004yB-Fr () code ! kde ! org
[Download RAW message or body]

Git commit 9dc5a6b8802d3728aaed6ff70a5a9de565cd9044 by Camilo higuita.
Committed on 28/09/2018 at 19:40.
Pushed by camiloh into branch 'master'.

new piebutton implementation

M  +13   -4    src/controls/Dialog.qml
M  +72   -99   src/controls/PieButton.qml
M  +19   -19   src/controls/Popup.qml
M  +6    -8    src/controls/ToolBar.qml
M  +9    -3    src/controls/ToolButton.qml
M  +19   -0    src/kde/mauikde.cpp

https://commits.kde.org/mauikit/9dc5a6b8802d3728aaed6ff70a5a9de565cd9044

diff --git a/src/controls/Dialog.qml b/src/controls/Dialog.qml
index 00a2841..f7d13d2 100644
--- a/src/controls/Dialog.qml
+++ b/src/controls/Dialog.qml
@@ -22,19 +22,28 @@ import QtQuick.Controls 2.2
 import QtQuick.Layouts 1.3
 import org.kde.mauikit 1.0 as Maui
 import org.kde.kirigami 2.2 as Kirigami
+import "private"
 
 Maui.Popup
 {
     id: control
-    
+    /* Controlc color scheming */
+	ColorScheme {id: colorScheme}
+	property alias colorScheme : colorScheme
+	/***************************/
     property string message : ""
     property string title: ""
+	
     property string acceptText: "Ok"
     property string rejectText: "No"
+	
     property bool defaultButtons: true
+    
     property bool entryField: false
+    
+	default property alias content : page.content
+
     property alias textEntry : __textEntry
-    default property alias content : page.content
 	property alias footBar : page.footBar
 	property alias headBar: page.headBar
 	property alias headBarTitle: page.headBarTitle
@@ -76,7 +85,7 @@ Maui.Popup
 				{
 					width: parent.width
 					height: parent.visible ? parent.height : 0
-					color: textColor
+					color: colorScheme.textColor
 					text: title
 					font.weight: Font.Thin
 					font.bold: true
@@ -106,7 +115,7 @@ Maui.Popup
 					enabled: false
 					text: message
 					textFormat : TextEdit.AutoText
-					color: textColor
+					color: colorScheme.textColor
 					font.pointSize: fontSizes.default
 					wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
 					
diff --git a/src/controls/PieButton.qml b/src/controls/PieButton.qml
index f69f81e..c24a3e3 100644
--- a/src/controls/PieButton.qml
+++ b/src/controls/PieButton.qml
@@ -6,103 +6,76 @@ import "private"
 
 Maui.ToolButton
 {
-    id: control
-    z: 1
-    property alias delegate : pathView.delegate
-    property alias model : pathView.model
-    property alias count: pathView.count
-    property alias path : pathView
-
-    property int delegateSize : iconSize
-    property int pieHeight: Kirigami.Units.gridUnit * 10
-    property int pieWidth: pieHeight
-
-    iconColor: pathView.visible ? highlightColor : textColor
-    onClicked: pathView.visible ? close() : open()
-
-    signal itemClicked (var item)
-    layer.enabled: true
-
-    Popup
-    {
-        id: popup
-
-   PathView
-    {
-        id: pathView
-        z: control.z + 1
-        visible: true
-        anchors.horizontalCenter: parent.horizontalCenter
-        anchors.bottom: parent.top
-        height: pieHeight
-        width: pieWidth
-        pathItemCount: 3
-        preferredHighlightBegin: 0.5
-        preferredHighlightEnd: 0.5
-        focus: true
-        Keys.onLeftPressed: decrementCurrentIndex()
-        Keys.onRightPressed: incrementCurrentIndex()
-        //        offset: 1.5
-        snapMode: PathView.SnapOneItem
-
-        onActiveFocusChanged: if(!activeFocus || !focus) pathView.visible = false
-
-        model: ListModel {}
-        delegate: PieButtonDelegate
-        {
-            id: btnDelegate
-            height: delegateSize + space.big
-            width: height
-            size: delegateSize
-
-            Connections
-            {
-                target:btnDelegate
-                onClicked:
-                {
-                    pathView.currentIndex = index
-                    itemClicked(pathView.model.get(index))
-                    close()
-                }
-            }
-        }
-
-        path: Path
-        {
-            startX: 0; startY: pathView.height
-
-            PathArc
-            {
-                x: pathView.width
-                y: pathView.height
-                radiusX: pathView.width *.5; radiusY: radiusX
-                useLargeArc: false
-            }
-        }
-
-        //        Rectangle
-        //        {
-        //            id: overlayBg
-        //            parent: ApplicationWindow.overlay
-        //            color: altColor
-        //            opacity: 0.5
-        //            y: headBar.height
-        //            height: parent.height - headBar.height - footBar.height
-        //            width: parent.width
-        //            visible:pathView.visible
-        //            z: pathView.z - 1
-        //        }
-    }
-    }
-
-
-    function open()
-    {
-        popup.open()
-    }
-
-    function close()
-    {
-        popup.close()
-    }
+	id: control
+	z: 1
+	
+	/* Controlc color scheming */
+	ColorScheme 
+	{
+		id: colorScheme
+	}
+	
+	property alias colorScheme : colorScheme
+	/***************************/
+	
+	property int alignment : Qt.AlignLeft
+	property int position : Qt.Horizontal
+	
+	property int barHeight : 0
+	property int maxWidth : ApplicationWindow.overlay.width * 0.5
+	
+	property alias content : content.middleContent
+	
+	onClicked: popup.visible ? close(): open()
+	
+	layer.enabled: true
+	clip: true
+	
+	Popup
+	{
+		id: popup
+		height: barHeight
+		width: content.middleLayout.implicitWidth + space.big > maxWidth ? maxWidth : \
(content.middleLayout.implicitWidth > ApplicationWindow.overlay.width ? \
ApplicationWindow.overlay.width  : content.middleLayout.implicitWidth + space.big)		 \
+		 +		x: (control.x - width) - space.big
+		y:  parent.height / 2 - height / 2
+		
+		background: Rectangle
+		{
+			radius: radiusV
+			color: colorScheme.backgroundColor
+			border.color: colorScheme.borderColor
+		}
+		
+		onFocusChanged: !activeFocus || !focus ? close() : undefined
+	
+// 	enter: Transition 
+// 	{
+// 		NumberAnimation { property: "width"; from: 0.0; to: popup.implicitWidth }
+// 	}
+// 	exit: Transition 
+// 	{
+// 		NumberAnimation { property: "width"; from: popup.implicitWidth; to: 0.0 }
+// 	}
+	
+		Maui.ToolBar
+		{
+			id: content
+			anchors.fill: parent
+			spacing: space.enormous
+			colorScheme.backgroundColor: "transparent"
+		}
+	}
+	
+	
+	
+	function open()
+	{	
+		 popup.open()		
+	}
+	
+	function close()
+	{
+		popup.close()
+	}
 }
diff --git a/src/controls/Popup.qml b/src/controls/Popup.qml
index bce4ff0..80bdeb6 100644
--- a/src/controls/Popup.qml
+++ b/src/controls/Popup.qml
@@ -23,10 +23,21 @@ import QtQuick.Controls 2.2
 import QtQuick.Controls.Material 2.1
 import org.kde.kirigami 2.2 as Kirigami
 import QtGraphicalEffects 1.0
+import "private"
 
 Popup
 {
     id: control
+    
+    /* Controlc color scheming */
+	ColorScheme
+	{
+		id: colorScheme
+		backgroundColor: viewBackgroundColor
+	}
+	property alias colorScheme : colorScheme
+	/***************************/
+	
     property int maxWidth : parent.width
     property int maxHeight : parent.height
     property double hint : 0.9
@@ -69,25 +80,14 @@ else
     rightMargin: control.margins
     leftMargin: control.margins
     topMargin: control.margins
-    bottomMargin: control.margins
-    
+    bottomMargin: control.margins    
 
     background: Rectangle
     {
         radius: unit * 2
-        color: viewBackgroundColor
-        border.color: Qt.rgba(textColor.r, textColor.g, textColor.b, 0.3)
-        layer.enabled: true
-        
-        layer.effect: DropShadow 
-        {
-            transparentBorder: true
-            radius: 8
-            samples: 16
-            horizontalOffset: 0
-            verticalOffset: unit * 4
-            color: Qt.rgba(0, 0, 0, 0.3)
-        }
+        color: colorScheme.backgroundColor
+        border.color: colorScheme.borderColor
+        layer.enabled: true    
     }
 
     enter: Transition
@@ -100,8 +100,8 @@ else
         NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 150 }
     }
 
-    Material.accent: accentColor
-    Material.background: backgroundColor
-    Material.primary: backgroundColor
-    Material.foreground: textColor
+    Material.accent: colorScheme.accentColor
+    Material.background: colorScheme.backgroundColor
+    Material.primary: colorScheme.backgroundColor
+    Material.foreground: colorScheme.textColor
 }
diff --git a/src/controls/ToolBar.qml b/src/controls/ToolBar.qml
index a87d0e6..50e9875 100644
--- a/src/controls/ToolBar.qml
+++ b/src/controls/ToolBar.qml
@@ -48,6 +48,7 @@ ToolBar
     property alias layout : layout
     
     property int margins: space.medium
+    spacing: space.medium
     property int count : leftContent.length + middleContent.length + \
rightContent.length  
     property bool dropShadow: false
@@ -159,10 +160,8 @@ ToolBar
     
     Flickable
     {
-        id: mainFlickable
-        
-        property int itemSpacing: space.big
-        
+        id: mainFlickable       
+                
         flickableDirection: Flickable.HorizontalFlick
         anchors.fill: parent
         interactive: layout.implicitWidth > control.width
@@ -180,7 +179,7 @@ ToolBar
                 id: leftRowContent
                 Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
                 Layout.leftMargin: leftContent.length > 0 ? margins : 0
-                spacing: mainFlickable.itemSpacing
+                spacing: leftContent.length > 0 ? control.spacing : 0
                 Layout.minimumWidth: 0
                 clip: true
             }
@@ -233,7 +232,6 @@ ToolBar
                 {
                     id: flickable
                     
-                    property int itemSpacing: space.medium
                     anchors.fill: parent
                     flickableDirection: Flickable.HorizontalFlick
                     
@@ -260,7 +258,7 @@ ToolBar
                         {
                             id: middleRowContent
                             
-                            spacing: middleContent.length === 1 ? 0 : \
flickable.itemSpacing +                            spacing: middleContent.length === \
1 ? 0 : control.spacing  
                             
                             //                Layout.maximumWidth: control.width - \
leftRowContent.implicitWidth - rightRowContent.implicitWidth @@ -317,7 +315,7 @@ \
ToolBar  {
                 id: rightRowContent
                 Layout.alignment: Qt.AlignRight
-                spacing: mainFlickable.itemSpacing
+                spacing: rightContent.length > 0 ? control.spacing : 0
                 Layout.rightMargin: rightContent.length > 0 ? margins : 0
                 Layout.minimumWidth: 0
                 clip: true
diff --git a/src/controls/ToolButton.qml b/src/controls/ToolButton.qml
index 691f47e..a55074b 100644
--- a/src/controls/ToolButton.qml
+++ b/src/controls/ToolButton.qml
@@ -28,7 +28,12 @@ ToolButton
     id: control
     
     /* Controlc color scheming */
-	ColorScheme {id: colorScheme}
+	ColorScheme 
+	{
+		id: colorScheme
+		backgroundColor: "transparent"
+		borderColor: "transparent"
+	}
 	property alias colorScheme : colorScheme
 	/***************************/
 
@@ -61,9 +66,10 @@ ToolButton
     background: Rectangle
     {
      color: /*(down || pressed || checked) */ checked && enabled  ? 
-     Qt.lighter(colorScheme.highlightColor, 1.2) : "transparent"
+     Qt.lighter(colorScheme.highlightColor, 1.2) : colorScheme.backgroundColor
      radius: unit * 3
-     opacity: 0.5
+     opacity: (down || pressed || checked) && enabled  ?  0.5 : 1
+     border.color: colorScheme.borderColor
     }
 
     contentItem: IconLabel
diff --git a/src/kde/mauikde.cpp b/src/kde/mauikde.cpp
index 3685cea..10d74cf 100644
--- a/src/kde/mauikde.cpp
+++ b/src/kde/mauikde.cpp
@@ -191,6 +191,25 @@ void MAUIKDE::setColorScheme(const QString &schemeName, const \
                QString &bg, const
                      group.writeEntry("activeForeground", QVariant::fromValue(rgb));
                     group.writeEntry("inactiveForeground", \
QVariant::fromValue(rgb));                                   }
+                
+                file.group("Colors:Window");
+				if(!bg.isEmpty())
+				{ 
+					color.setNamedColor(bg);
+					QVariantList rgb = {color.red(), color.green(), color.blue()}; 
+					group.writeEntry("BackgroundNormal", QVariant::fromValue(rgb));
+					group.writeEntry("BackgroundAlternate", QVariant::fromValue(rgb));
+					
+				}                
+				
+				if(!fg.isEmpty())
+				{ 
+					color.setNamedColor(fg);
+					QVariantList rgb = {color.red(), color.green(), color.blue()};
+					group.writeEntry("ForegroundActive", QVariant::fromValue(rgb));
+					group.writeEntry("ForegroundInactive", QVariant::fromValue(rgb));               \
 +				}
+				
            
         }
             manager.activateScheme(schemeModel);            


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic