From 7f4ff70950ccbfde634d93e8c83da4d4bcee20a5 Mon Sep 17 00:00:00 2001
From: Michail Vourlakos <mvourlakos@gmail.com>
Date: Thu, 16 Apr 2020 11:54:56 +0300
Subject: [PATCH] upgrader:Alignment instead of PanelPosition

--ContainmentQuickItem is now using alignment
in its configuration
---
 .../package/contents/code/LayoutManager.js    | 16 +++---
 containment/package/contents/config/main.xml  | 34 ++++++++----
 .../contents/ui/AutomaticItemSizer.qml        |  4 +-
 .../package/contents/ui/DebugWindow.qml       |  4 +-
 containment/package/contents/ui/Upgrader.qml  | 33 +++++++++++
 .../package/contents/ui/VisibilityManager.qml |  8 +--
 .../contents/ui/editmode/maxlength/Ruler.qml  |  4 +-
 .../ui/editmode/maxlength/RulerMouseArea.qml  |  8 +--
 .../contents/ui/layouts/LayoutsContainer.qml  |  4 +-
 containment/package/contents/ui/main.qml      | 55 ++++++++++++-------
 .../configuration/pages/AppearanceConfig.qml  | 26 ++++-----
 .../configuration/pages/BehaviorConfig.qml    | 20 +++----
 .../contents/controls/TypeSelection.qml       |  4 +-
 .../contents/presets/Extended.layout.latte    |  2 +
 .../contents/presets/Plasma.layout.latte      |  2 +
 .../contents/presets/Unity.layout.latte       |  4 ++
 16 files changed, 148 insertions(+), 80 deletions(-)
 create mode 100644 containment/package/contents/ui/Upgrader.qml

diff --git a/containment/package/contents/code/LayoutManager.js b/containment/package/contents/code/LayoutManager.js
index 28d8f8fc1..7b4d11aef 100644
--- a/containment/package/contents/code/LayoutManager.js
+++ b/containment/package/contents/code/LayoutManager.js
@@ -60,7 +60,7 @@ function restore() {
         root.addApplet(appletsOrder[i], -1, -1)
     }
 
-    if (plasmoid.configuration.panelPosition === 10 /*Justify*/) {
+    if (plasmoid.configuration.alignment === 10 /*Justify*/) {
         // console.log("splitters restored:"+plasmoid.configuration.splitterPosition+ " - " + plasmoid.configuration.splitterPosition2);
         //add the splitters in the correct position if they exist
 
@@ -110,7 +110,7 @@ function restore() {
 
     inRestore = false;
 
-    if (plasmoid.configuration.panelPosition === 10/*Justify*/) {
+    if (plasmoid.configuration.alignment === 10/*Justify*/) {
         root.splitMainLayoutToLayouts();
         root.updateIndexes();
     }
@@ -158,10 +158,10 @@ function save() {
 
         if (child.applet && !child.isInternalViewSplitter) {
             ids.push(child.applet.id);
-        } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && !splitterExists){
+        } else if(child.isInternalViewSplitter && plasmoid.configuration.alignment === 10 && !splitterExists){
             splitterExists = true;
             plasmoid.configuration.splitterPosition = i;
-        } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && splitterExists){
+        } else if(child.isInternalViewSplitter && plasmoid.configuration.alignment === 10 && splitterExists){
             splitterExists2 = true;
             plasmoid.configuration.splitterPosition2 = i;
         }
@@ -172,10 +172,10 @@ function save() {
 
         if (child.applet && !child.isInternalViewSplitter) {
             ids.push(child.applet.id);
-        } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && !splitterExists){
+        } else if(child.isInternalViewSplitter && plasmoid.configuration.alignment === 10 && !splitterExists){
             splitterExists = true;
             plasmoid.configuration.splitterPosition = i + layoutS.children.length;
-        } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && splitterExists){
+        } else if(child.isInternalViewSplitter && plasmoid.configuration.alignment === 10 && splitterExists){
             splitterExists2 = true;
             plasmoid.configuration.splitterPosition2 = i + layoutS.children.length;
         }
@@ -186,10 +186,10 @@ function save() {
 
         if (child.applet && !child.isInternalViewSplitter) {
             ids.push(child.applet.id);
-        } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && !splitterExists){
+        } else if(child.isInternalViewSplitter && plasmoid.configuration.alignment === 10 && !splitterExists){
             splitterExists = true;
             plasmoid.configuration.splitterPosition = i + layoutS.children.length + layout.children.length;
-        } else if(child.isInternalViewSplitter && plasmoid.configuration.panelPosition === 10 && splitterExists){
+        } else if(child.isInternalViewSplitter && plasmoid.configuration.alignment === 10 && splitterExists){
             splitterExists2 = true;
             plasmoid.configuration.splitterPosition2 = i + layoutS.children.length + layout.children.length;
         }
diff --git a/containment/package/contents/config/main.xml b/containment/package/contents/config/main.xml
index 137b2fc09..19ab9e9b0 100644
--- a/containment/package/contents/config/main.xml
+++ b/containment/package/contents/config/main.xml
@@ -4,8 +4,11 @@
       xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
       http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
   <kcfgfile name=""/>
-
   <group name="General">
+    <entry name="alignment" type="Int">
+      <default>0</default>
+      <label>introduced in v0.10, "0" stands for "Center"</label>      
+    </entry>      
     <entry name="appletOrder" type="String">
       <label>encoded order of items</label>
     </entry>
@@ -15,16 +18,6 @@
     <entry name="userBlocksColorizingApplets" type="String">
       <label>applets that do not want to be colorized in any case</label>
     </entry>
-    <entry name="panelPosition" type="Enum">
-      <choices>
-            <choice name="Center"/>
-            <choice name="Left"/>
-            <choice name="Right"/>
-            <choice name="Top"/>
-            <choice name="Bottom"/>
-      </choices>
-      <default>0</default>
-    </entry>
     <entry name="zoomLevel" type="Int">
       <default>10</default>
     </entry>
@@ -392,5 +385,24 @@
       <default>true</default>
       <label>Global Shortcuts are combined between applets and tasks</label>
     </entry>
+    
+    <!-- Upgrade Flags -->
+    <entry name="alignmentUpgraded" type="Bool">
+      <default>false</default>
+      <label>flag to check it deprecated panelPosition was changed to "alignment"</label>
+    </entry>
+    
+    <!-- Deprecated Section -->
+    <entry name="panelPosition" type="Enum">
+      <choices>
+            <choice name="Center"/>
+            <choice name="Left"/>
+            <choice name="Right"/>
+            <choice name="Top"/>
+            <choice name="Bottom"/>
+      </choices>
+      <default>0</default>
+      <label>DEPRECATED in 0.10 in favour of "alignment"</label>
+    </entry>
   </group>
 </kcfg>
diff --git a/containment/package/contents/ui/AutomaticItemSizer.qml b/containment/package/contents/ui/AutomaticItemSizer.qml
index 179089e13..bac1d3f51 100644
--- a/containment/package/contents/ui/AutomaticItemSizer.qml
+++ b/containment/package/contents/ui/AutomaticItemSizer.qml
@@ -150,10 +150,10 @@ Item {
             //console.log("max length: "+ maxLength);
 
             if (root.isVertical) {
-                layoutLength = (plasmoid.configuration.panelPosition === Latte.Types.Justify) ?
+                layoutLength = (plasmoid.configuration.alignment === Latte.Types.Justify) ?
                             layoutsContainer.startLayout.height+layoutsContainer.mainLayout.height+layoutsContainer.endLayout.height : layoutsContainer.mainLayout.height
             } else {
-                layoutLength = (plasmoid.configuration.panelPosition === Latte.Types.Justify) ?
+                layoutLength = (plasmoid.configuration.alignment === Latte.Types.Justify) ?
                             layoutsContainer.startLayout.width+layoutsContainer.mainLayout.width+layoutsContainer.endLayout.width : layoutsContainer.mainLayout.width
             }
 
diff --git a/containment/package/contents/ui/DebugWindow.qml b/containment/package/contents/ui/DebugWindow.qml
index fb1562a15..3a40f6686 100644
--- a/containment/package/contents/ui/DebugWindow.qml
+++ b/containment/package/contents/ui/DebugWindow.qml
@@ -314,7 +314,7 @@ Window{
 
             Text{
                 text: {
-                    switch(plasmoid.configuration.panelPosition){
+                    switch(plasmoid.configuration.alignment){
                     case Latte.Types.Left:
                         return "Left";
                         break;
@@ -335,7 +335,7 @@ Window{
                         break;
                     }
 
-                    return "<unknown> : " + plasmoid.configuration.panelPosition;
+                    return "<unknown> : " + plasmoid.configuration.alignment;
                 }
             }
 
diff --git a/containment/package/contents/ui/Upgrader.qml b/containment/package/contents/ui/Upgrader.qml
new file mode 100644
index 000000000..38daba550
--- /dev/null
+++ b/containment/package/contents/ui/Upgrader.qml
@@ -0,0 +1,33 @@
+/*
+*  Copyright 2020  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.1
+
+import org.kde.plasma.plasmoid 2.0
+
+import org.kde.plasma.core 2.0 as PlasmaCore
+import org.kde.plasma.components 2.0 as PlasmaComponents
+import org.kde.latte 0.2 as Latte
+
+Item{
+    function v010_upgrade() {
+        //v0.10
+        root.upgrader_v010_alignment();
+    }
+}
diff --git a/containment/package/contents/ui/VisibilityManager.qml b/containment/package/contents/ui/VisibilityManager.qml
index cba174627..84970bee9 100644
--- a/containment/package/contents/ui/VisibilityManager.qml
+++ b/containment/package/contents/ui/VisibilityManager.qml
@@ -508,13 +508,13 @@ Item{
                     tempLength = root.isHorizontal ? root.width : root.height;
                 } else {
                     if(root.isHorizontal) {
-                        if (plasmoid.configuration.panelPosition === Latte.Types.Justify) {
+                        if (plasmoid.configuration.alignment === Latte.Types.Justify) {
                             tempLength = layoutsContainer.width;
                         } else {
                             tempLength = Math.max(root.realPanelLength, layoutsContainer.mainLayout.width);
                         }
                     } else {
-                        if (plasmoid.configuration.panelPosition === Latte.Types.Justify) {
+                        if (plasmoid.configuration.alignment === Latte.Types.Justify) {
                             tempLength = layoutsContainer.height;
                         } else {
                             tempLength = Math.max(root.realPanelLength, layoutsContainer.mainLayout.height);
@@ -560,7 +560,7 @@ Item{
 
                     if (noCompositingEdit) {
                         localX = 0;
-                    } else if (plasmoid.configuration.panelPosition === Latte.Types.Justify) {
+                    } else if (plasmoid.configuration.alignment === Latte.Types.Justify) {
                         localX = (latteView.width/2) - tempLength/2 + root.offset;
                     } else if (root.panelAlignment === Latte.Types.Left) {
                         localX = root.offset;
@@ -590,7 +590,7 @@ Item{
 
                     if (noCompositingEdit) {
                         localY = 0;
-                    } else if (plasmoid.configuration.panelPosition === Latte.Types.Justify) {
+                    } else if (plasmoid.configuration.alignment === Latte.Types.Justify) {
                         localY = (latteView.height/2) - tempLength/2 + root.offset;
                     } else if (root.panelAlignment === Latte.Types.Top) {
                         localY = root.offset;
diff --git a/containment/package/contents/ui/editmode/maxlength/Ruler.qml b/containment/package/contents/ui/editmode/maxlength/Ruler.qml
index 113dc3810..7e7e2243e 100644
--- a/containment/package/contents/ui/editmode/maxlength/Ruler.qml
+++ b/containment/package/contents/ui/editmode/maxlength/Ruler.qml
@@ -87,7 +87,7 @@ Item{
         property: "xL"
         value: {
             if (root.isHorizontal) {
-                if (plasmoid.configuration.panelPosition === Latte.Types.Justify) {
+                if (plasmoid.configuration.alignment === Latte.Types.Justify) {
                     return root.width/2 - rulerItem.length/2 + root.offset;
                 } else if (root.panelAlignment === Latte.Types.Left) {
                     return root.offset;
@@ -107,7 +107,7 @@ Item{
         property: "yL"
         value: {
             if (root.isVertical) {
-                if (plasmoid.configuration.panelPosition === Latte.Types.Justify) {
+                if (plasmoid.configuration.alignment === Latte.Types.Justify) {
                     return root.height/2 - rulerItem.length/2 + root.offset;
                 } else if (root.panelAlignment === Latte.Types.Top) {
                     return root.offset;
diff --git a/containment/package/contents/ui/editmode/maxlength/RulerMouseArea.qml b/containment/package/contents/ui/editmode/maxlength/RulerMouseArea.qml
index 3174dc832..bc58c5fd9 100644
--- a/containment/package/contents/ui/editmode/maxlength/RulerMouseArea.qml
+++ b/containment/package/contents/ui/editmode/maxlength/RulerMouseArea.qml
@@ -58,13 +58,13 @@ MouseArea{
         var newTotal = Math.abs(plasmoid.configuration.offset) + value;
 
         //centered and justify alignments based on offset and get out of the screen in some cases
-        var centeredCheck = ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                             || (plasmoid.configuration.panelPosition === Latte.Types.Justify))
+        var centeredCheck = ((plasmoid.configuration.alignment === Latte.Types.Center)
+                             || (plasmoid.configuration.alignment === Latte.Types.Justify))
                 && ((Math.abs(plasmoid.configuration.offset) + value/2) > 50);
 
         if (newTotal > 100 || centeredCheck) {
-            if ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                    || (plasmoid.configuration.panelPosition === Latte.Types.Justify)) {
+            if ((plasmoid.configuration.alignment === Latte.Types.Center)
+                    || (plasmoid.configuration.alignment === Latte.Types.Justify)) {
 
                 var suggestedValue = (plasmoid.configuration.offset<0) ? Math.min(0, -(100-value)): Math.max(0, 100-value);
 
diff --git a/containment/package/contents/ui/layouts/LayoutsContainer.qml b/containment/package/contents/ui/layouts/LayoutsContainer.qml
index abf975768..c3180eb42 100644
--- a/containment/package/contents/ui/layouts/LayoutsContainer.qml
+++ b/containment/package/contents/ui/layouts/LayoutsContainer.qml
@@ -32,7 +32,7 @@ Item{
     id: layoutsContainer
 
     readonly property bool isHidden: root.inStartup || (latteView && latteView.visibility && latteView.visibility.isHidden)
-    readonly property bool useMaxLength: (plasmoid.configuration.panelPosition === Latte.Types.Justify && !root.inConfigureAppletsMode)
+    readonly property bool useMaxLength: (plasmoid.configuration.alignment === Latte.Types.Justify && !root.inConfigureAppletsMode)
     /*   && ((!root.inConfigureAppletsMode && !root.behaveAsPlasmaPanel )
                                              || (behaveAsPlasmaPanel && root.inConfigureAppletsMode))*/
 
@@ -123,7 +123,7 @@ Item{
     z:10
 
     property bool animationSent: false
-    property bool shouldCheckHalfs: (plasmoid.configuration.panelPosition === Latte.Types.Justify) && (_mainLayout.children>1)
+    property bool shouldCheckHalfs: (plasmoid.configuration.alignment === Latte.Types.Justify) && (_mainLayout.children>1)
 
     property int contentsWidth: _startLayout.width + _mainLayout.width + _endLayout.width
     property int contentsHeight: _startLayout.height + _mainLayout.height + _endLayout.height
diff --git a/containment/package/contents/ui/main.qml b/containment/package/contents/ui/main.qml
index 436f463bf..514e38dcf 100644
--- a/containment/package/contents/ui/main.qml
+++ b/containment/package/contents/ui/main.qml
@@ -93,13 +93,13 @@ Item {
 
         return (visibilityManager.panelIsBiggerFromIconSize
                 && (maxZoomFactor === 1.0)
-                && (plasmoid.configuration.panelPosition === Latte.Types.Justify)
+                && (plasmoid.configuration.alignment === Latte.Types.Justify)
                 && !root.editMode
                 && !visibilityManager.inLocationAnimation);
     }
 
     property int viewType: {
-        if ((plasmoid.configuration.panelPosition === Latte.Types.Justify)
+        if ((plasmoid.configuration.alignment === Latte.Types.Justify)
                 && (plasmoid.configuration.useThemePanel)
                 && (plasmoid.configuration.panelSize === 100)
                 && (maxZoomFactor === 1.0)) {
@@ -190,7 +190,7 @@ Item {
     property bool hideLengthScreenGaps: hideThickScreenGap
                                         && (latteView.visibility.mode === Latte.Types.AlwaysVisible
                                             || latteView.visibility.mode === Latte.Types.WindowsGoBelow)
-                                        && (plasmoid.configuration.panelPosition === Latte.Types.Justify)
+                                        && (plasmoid.configuration.alignment === Latte.Types.Justify)
                                         && plasmoid.configuration.maxLength>85
                                         && !root.editMode
 
@@ -214,7 +214,7 @@ Item {
     property bool closeActiveWindowEnabled: plasmoid.configuration.closeActiveWindowEnabled
     property bool dragActiveWindowEnabled: plasmoid.configuration.dragActiveWindowEnabled
     property bool immutable: plasmoid.immutable
-    property bool inFullJustify: (plasmoid.configuration.panelPosition === Latte.Types.Justify) && (maxLengthPerCentage===100)
+    property bool inFullJustify: (plasmoid.configuration.alignment === Latte.Types.Justify) && (maxLengthPerCentage===100)
     property bool inSlidingIn: visibilityManager ? visibilityManager.inSlidingIn : false
     property bool inSlidingOut: visibilityManager ? visibilityManager.inSlidingOut : false
     property bool inStartup: true
@@ -377,7 +377,7 @@ Item {
     }
 
     //center the layout correctly when the user uses an offset
-    property int offsetFixed: (offset===0 || panelAlignment === Latte.Types.Center || plasmoid.configuration.panelPosition === Latte.Types.Justify)?
+    property int offsetFixed: (offset===0 || panelAlignment === Latte.Types.Center || plasmoid.configuration.alignment === Latte.Types.Justify)?
                                   offset : offset+panelMarginLength/2+totalPanelEdgeSpacing/2
 
     property int realPanelSize: 0
@@ -454,13 +454,13 @@ Item {
 
     ///FIXME: <delete both> I can't remember why this is needed, maybe for the anchorings!!! In order for the Double Layout to not mess the anchorings...
     //property int layoutsContainer.mainLayoutPosition: !plasmoid.immutable ? Latte.Types.Center : (root.isVertical ? Latte.Types.Top : Latte.Types.Left)
-    //property int panelAlignment: plasmoid.configuration.panelPosition !== Latte.Types.Justify ? plasmoid.configuration.panelPosition : layoutsContainer.mainLayoutPosition
+    //property int panelAlignment: plasmoid.configuration.alignment !== Latte.Types.Justify ? plasmoid.configuration.alignment : layoutsContainer.mainLayoutPosition
 
-    property int panelAlignment: !root.inConfigureAppletsMode ? plasmoid.configuration.panelPosition :
-                                                                ( plasmoid.configuration.panelPosition === Latte.Types.Justify ?
-                                                                     Latte.Types.Center : plasmoid.configuration.panelPosition )
+    property int panelAlignment: !root.inConfigureAppletsMode ? plasmoid.configuration.alignment :
+                                                                ( plasmoid.configuration.alignment === Latte.Types.Justify ?
+                                                                     Latte.Types.Center : plasmoid.configuration.alignment )
 
-    property int panelUserSetAlignment: plasmoid.configuration.panelPosition
+    property int panelUserSetAlignment: plasmoid.configuration.alignment
 
     property real zoomFactor: Latte.WindowSystem.compositingActive && root.animationsEnabled ? ( 1 + (plasmoid.configuration.zoomLevel / 20) ) : 1
 
@@ -799,15 +799,15 @@ Item {
 
     onIsVerticalChanged: {
         if (isVertical) {
-            if (plasmoid.configuration.panelPosition === Latte.Types.Left)
-                plasmoid.configuration.panelPosition = Latte.Types.Top;
-            else if (plasmoid.configuration.panelPosition === Latte.Types.Right)
-                plasmoid.configuration.panelPosition = Latte.Types.Bottom;
+            if (plasmoid.configuration.alignment === Latte.Types.Left)
+                plasmoid.configuration.alignment = Latte.Types.Top;
+            else if (plasmoid.configuration.alignment === Latte.Types.Right)
+                plasmoid.configuration.alignment = Latte.Types.Bottom;
         } else {
-            if (plasmoid.configuration.panelPosition === Latte.Types.Top)
-                plasmoid.configuration.panelPosition = Latte.Types.Left;
-            else if (plasmoid.configuration.panelPosition === Latte.Types.Bottom)
-                plasmoid.configuration.panelPosition = Latte.Types.Right;
+            if (plasmoid.configuration.alignment === Latte.Types.Top)
+                plasmoid.configuration.alignment = Latte.Types.Left;
+            else if (plasmoid.configuration.alignment === Latte.Types.Bottom)
+                plasmoid.configuration.alignment = Latte.Types.Right;
         }
     }
 
@@ -821,6 +821,9 @@ Item {
         LayoutManager.layoutS = layoutsContainer.startLayout;
         LayoutManager.layoutE = layoutsContainer.endLayout;
         LayoutManager.lastSpacer = lastSpacer;
+
+        upgrader_v010_alignment();
+
         LayoutManager.restore();
         plasmoid.action("configure").visible = !plasmoid.immutable;
         plasmoid.action("configure").enabled = !plasmoid.immutable;
@@ -928,10 +931,10 @@ Item {
         ///to add applets
         /*   if (plasmoid.immutable) {
             if(root.isHorizontal) {
-                root.Layout.preferredWidth = (plasmoid.configuration.panelPosition === Latte.Types.Justify ?
+                root.Layout.preferredWidth = (plasmoid.configuration.alignment === Latte.Types.Justify ?
                                                   layoutsContainer.width + 0.5*iconMargin : layoutsContainer.mainLayout.width + iconMargin);
             } else {
-                root.Layout.preferredHeight = (plasmoid.configuration.panelPosition === Latte.Types.Justify ?
+                root.Layout.preferredHeight = (plasmoid.configuration.alignment === Latte.Types.Justify ?
                                                    layoutsContainer.height + 0.5*iconMargin : layoutsContainer.mainLayout.height + iconMargin);
             }
         } else {
@@ -1475,6 +1478,14 @@ Item {
             itemL.parent = layoutsContainer.mainLayout;
         }
     }
+
+    function upgrader_v010_alignment() {
+        //! IMPORTANT, special case because it needs to be loaded on Component constructor
+        if (!plasmoid.configuration.alignmentUpgraded) {
+            plasmoid.configuration.alignment = plasmoid.configuration.panelPosition;
+            plasmoid.configuration.alignmentUpgraded = true;
+        }
+    }
     //END functions
 
 
@@ -1675,6 +1686,10 @@ Item {
                                               && (GraphicsInfo.api !== GraphicsInfo.Unknown)
     }
 
+    Upgrader {
+        id: upgrader
+    }
+
     ///////////////END components
 
     PlasmaCore.ColorScope{
diff --git a/shell/package/contents/configuration/pages/AppearanceConfig.qml b/shell/package/contents/configuration/pages/AppearanceConfig.qml
index 3fd169f74..17a9158b7 100644
--- a/shell/package/contents/configuration/pages/AppearanceConfig.qml
+++ b/shell/package/contents/configuration/pages/AppearanceConfig.qml
@@ -365,13 +365,13 @@ PlasmaComponents.Page {
                                 var newTotal = Math.abs(plasmoid.configuration.offset) + value;
 
                                 //centered and justify alignments based on offset and get out of the screen in some cases
-                                var centeredCheck = ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                                                     || (plasmoid.configuration.panelPosition === Latte.Types.Justify))
+                                var centeredCheck = ((plasmoid.configuration.alignment === Latte.Types.Center)
+                                                     || (plasmoid.configuration.alignment === Latte.Types.Justify))
                                         && ((Math.abs(plasmoid.configuration.offset) + value/2) > 50);
 
                                 if (newTotal > 100 || centeredCheck) {
-                                    if ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                                            || (plasmoid.configuration.panelPosition === Latte.Types.Justify)) {
+                                    if ((plasmoid.configuration.alignment === Latte.Types.Center)
+                                            || (plasmoid.configuration.alignment === Latte.Types.Justify)) {
 
                                         var suggestedValue = (plasmoid.configuration.offset<0) ? Math.min(0, -(100-value)): Math.max(0, 100-value);
 
@@ -425,7 +425,7 @@ PlasmaComponents.Page {
                     Layout.maximumWidth: Layout.minimumWidth
                     spacing: units.smallSpacing
                     visible: dialog.expertLevel
-                    enabled: (plasmoid.configuration.panelPosition !== Latte.Types.Justify)
+                    enabled: (plasmoid.configuration.alignment !== Latte.Types.Justify)
 
                     PlasmaComponents.Label {
                         id: minLengthLbl
@@ -497,10 +497,10 @@ PlasmaComponents.Page {
                         id: offsetSlider
 
                         value: plasmoid.configuration.offset
-                        from: ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                               || (plasmoid.configuration.panelPosition === Latte.Types.Justify)) ? -20 :  0
-                        to: ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                             || (plasmoid.configuration.panelPosition === Latte.Types.Justify)) ? 20 :  40
+                        from: ((plasmoid.configuration.alignment === Latte.Types.Center)
+                               || (plasmoid.configuration.alignment === Latte.Types.Justify)) ? -20 :  0
+                        to: ((plasmoid.configuration.alignment === Latte.Types.Center)
+                             || (plasmoid.configuration.alignment === Latte.Types.Justify)) ? 20 :  40
                         stepSize: 1
                         wheelEnabled: false
 
@@ -510,12 +510,12 @@ PlasmaComponents.Page {
                                 var newTotal = Math.abs(value) + plasmoid.configuration.maxLength;
 
                                 //centered and justify alignments based on offset and get out of the screen in some cases
-                                var centeredCheck = ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                                                     || (plasmoid.configuration.panelPosition === Latte.Types.Justify))
+                                var centeredCheck = ((plasmoid.configuration.alignment === Latte.Types.Center)
+                                                     || (plasmoid.configuration.alignment === Latte.Types.Justify))
                                         && ((Math.abs(value) + plasmoid.configuration.maxLength/2) > 50);
                                 if (newTotal > 100 || centeredCheck) {
-                                    plasmoid.configuration.maxLength = ((plasmoid.configuration.panelPosition === Latte.Types.Center)
-                                                                        || (plasmoid.configuration.panelPosition === Latte.Types.Justify)) ?
+                                    plasmoid.configuration.maxLength = ((plasmoid.configuration.alignment === Latte.Types.Center)
+                                                                        || (plasmoid.configuration.alignment === Latte.Types.Justify)) ?
                                                 2*(50 - Math.abs(value)) :100 - Math.abs(value);
                                 }
                             }
diff --git a/shell/package/contents/configuration/pages/BehaviorConfig.qml b/shell/package/contents/configuration/pages/BehaviorConfig.qml
index 1cb029979..2a59421ce 100644
--- a/shell/package/contents/configuration/pages/BehaviorConfig.qml
+++ b/shell/package/contents/configuration/pages/BehaviorConfig.qml
@@ -276,14 +276,14 @@ PlasmaComponents.Page {
                 LayoutMirroring.enabled: false
                 spacing: 2
 
-                readonly property int panelPosition: plasmoid.configuration.panelPosition
+                readonly property int configAlignment: plasmoid.configuration.alignment
                 readonly property int buttonSize: (dialog.optionsWidth - (spacing * 3)) / 4
 
                 ExclusiveGroup {
                     id: alignmentGroup
                     onCurrentChanged: {
                         if (current.checked)
-                            plasmoid.configuration.panelPosition = current.position
+                            plasmoid.configuration.alignment = current.alignment
                     }
                 }
 
@@ -292,33 +292,33 @@ PlasmaComponents.Page {
                     Layout.maximumWidth: Layout.minimumWidth
                     text: panelIsVertical ? i18nc("top alignment", "Top") : i18nc("left alignment", "Left")
                     iconSource: panelIsVertical ? "format-align-vertical-top" : "format-justify-left"
-                    checked: parent.panelPosition === position
+                    checked: parent.configAlignment === alignment
                     checkable: true
                     exclusiveGroup: alignmentGroup
 
-                    property int position: panelIsVertical ? Latte.Types.Top : Latte.Types.Left
+                    property int alignment: panelIsVertical ? Latte.Types.Top : Latte.Types.Left
                 }
                 PlasmaComponents.Button {
                     Layout.minimumWidth: parent.buttonSize
                     Layout.maximumWidth: Layout.minimumWidth
                     text: i18nc("center alignment", "Center")
                     iconSource: panelIsVertical ? "format-align-vertical-center" : "format-justify-center"
-                    checked: parent.panelPosition === position
+                    checked: parent.configAlignment === alignment
                     checkable: true
                     exclusiveGroup: alignmentGroup
 
-                    property int position: Latte.Types.Center
+                    property int alignment: Latte.Types.Center
                 }
                 PlasmaComponents.Button {
                     Layout.minimumWidth: parent.buttonSize
                     Layout.maximumWidth: Layout.minimumWidth
                     text: panelIsVertical ? i18nc("bottom alignment", "Bottom") : i18nc("right alignment", "Right")
                     iconSource: panelIsVertical ? "format-align-vertical-bottom" : "format-justify-right"
-                    checked: parent.panelPosition === position
+                    checked: parent.configAlignment === alignment
                     checkable: true
                     exclusiveGroup: alignmentGroup
 
-                    property int position: panelIsVertical ? Latte.Types.Bottom : Latte.Types.Right
+                    property int alignment: panelIsVertical ? Latte.Types.Bottom : Latte.Types.Right
                 }
 
                 PlasmaComponents.Button {
@@ -326,11 +326,11 @@ PlasmaComponents.Page {
                     Layout.maximumWidth: Layout.minimumWidth
                     text: i18nc("justify alignment", "Justify")
                     iconSource: "format-justify-fill"
-                    checked: parent.panelPosition === position
+                    checked: parent.configAlignment === alignment
                     checkable: true
                     exclusiveGroup: alignmentGroup
 
-                    property int position: Latte.Types.Justify
+                    property int alignment: Latte.Types.Justify
                 }
             }
         }
diff --git a/shell/package/contents/controls/TypeSelection.qml b/shell/package/contents/controls/TypeSelection.qml
index 3bf231dd3..4f4440a94 100644
--- a/shell/package/contents/controls/TypeSelection.qml
+++ b/shell/package/contents/controls/TypeSelection.qml
@@ -71,7 +71,7 @@ Grid {
         onPressedChanged: {
             if (pressed && !checked) {
                 latteView.visibility.mode = Latte.Types.DodgeActive;
-                plasmoid.configuration.panelPosition = Latte.Types.Center;
+                plasmoid.configuration.alignment = Latte.Types.Center;
                 plasmoid.configuration.useThemePanel = true;
                 plasmoid.configuration.solidPanel = false;
                 plasmoid.configuration.panelSize = 5;
@@ -116,7 +116,7 @@ Grid {
         onPressedChanged: {
             if (pressed && !checked) {
                 latteView.visibility.mode = Latte.Types.AlwaysVisible;
-                plasmoid.configuration.panelPosition = Latte.Types.Justify;
+                plasmoid.configuration.alignment = Latte.Types.Justify;
                 plasmoid.configuration.useThemePanel = true;
                 plasmoid.configuration.solidPanel = false;
                 plasmoid.configuration.panelSize = 100;
diff --git a/shell/package/contents/presets/Extended.layout.latte b/shell/package/contents/presets/Extended.layout.latte
index 22fd8a483..a56291693 100644
--- a/shell/package/contents/presets/Extended.layout.latte
+++ b/shell/package/contents/presets/Extended.layout.latte
@@ -141,6 +141,8 @@ DialogWidth=586
 
 [Containments][4][General]
 advanced=false
+alignment=10
+alignmentUpgraded=true
 appletOrder=8;24;25;10
 autoDecreaseIconSize=false
 iconSize=24
diff --git a/shell/package/contents/presets/Plasma.layout.latte b/shell/package/contents/presets/Plasma.layout.latte
index 8433833c9..e401e60a7 100644
--- a/shell/package/contents/presets/Plasma.layout.latte
+++ b/shell/package/contents/presets/Plasma.layout.latte
@@ -49,6 +49,8 @@ DialogWidth=586
 
 [Containments][1][General]
 advanced=false
+alignment=10
+alignmentUpgraded=true
 appletOrder=4;57;3;5
 autoDecreaseIconSize=false
 iconMargin=0
diff --git a/shell/package/contents/presets/Unity.layout.latte b/shell/package/contents/presets/Unity.layout.latte
index d5e3d96a9..affe16839 100644
--- a/shell/package/contents/presets/Unity.layout.latte
+++ b/shell/package/contents/presets/Unity.layout.latte
@@ -35,6 +35,8 @@ DialogWidth=586
 
 [Containments][1][General]
 advanced=false
+alignment=3
+alignmentUpgraded=true
 appletOrder=2;3
 panelPosition=Top
 panelSize=100
@@ -149,6 +151,8 @@ DialogWidth=586
 
 [Containments][4][General]
 advanced=false
+alignment=10
+alignmentUpgraded=true
 appletOrder=8;24;25;10
 autoDecreaseIconSize=false
 iconSize=24