Hello community,

here is the log from the commit of package uranium-lulzbot for openSUSE:Factory 
checked in at 2019-02-25 17:52:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/uranium-lulzbot (Old)
 and      /work/SRC/openSUSE:Factory/.uranium-lulzbot.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "uranium-lulzbot"

Mon Feb 25 17:52:18 2019 rev:7 rq:677901 version:3.6.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/uranium-lulzbot/uranium-lulzbot.changes  
2018-09-26 14:23:49.133883889 +0200
+++ 
/work/SRC/openSUSE:Factory/.uranium-lulzbot.new.28833/uranium-lulzbot.changes   
    2019-02-25 17:52:20.414721000 +0100
@@ -1,0 +2,34 @@
+Wed Feb 20 09:34:05 UTC 2019 - Adrian Schröter <[email protected]>
+
+- update to version 3.6.4
+
+-------------------------------------------------------------------
+Thu Jan 17 15:45:34 UTC 2019 - Adrian Schröter <[email protected]>
+
+- add recommends to numpy-stl
+
+-------------------------------------------------------------------
+Tue Jan 15 13:59:21 UTC 2019 - Adrian Schröter <[email protected]>
+
+- add fix_qt5.12.patch to fix i18n text string handling in qml
+  with Qt 5.12
+
+-------------------------------------------------------------------
+Wed Jan  9 09:50:25 UTC 2019 - Adrian Schröter <[email protected]>
+
+- update to version 3.6.1
+  https://code.alephobjects.com/w/cura-lulzbot/
+
+-------------------------------------------------------------------
+Tue Nov 20 15:48:01 UTC 2018 - Adrian Schröter <[email protected]>
+
+- update to version 3.2.32
+  * minor code cleanup
+
+-------------------------------------------------------------------
+Mon Oct 22 06:52:46 UTC 2018 - Adrian Schröter <[email protected]>
+
+- update to version 3.2.29
+  * version increase only
+
+-------------------------------------------------------------------

Old:
----
  Uranium-3.2.28.obscpio

New:
----
  Uranium-3.6.4.obscpio
  fix_qt5.12.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ uranium-lulzbot.spec ++++++
--- /var/tmp/diff_new_pack.cC1Tvb/_old  2019-02-25 17:52:21.138720605 +0100
+++ /var/tmp/diff_new_pack.cC1Tvb/_new  2019-02-25 17:52:21.142720604 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package uranium-lulzbot
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 Name:           uranium-lulzbot
 Conflicts:      uranium
-Version:        3.2.28
+Version:        3.6.4
 Release:        0
 Summary:        3D printer control software: python UI stack
 License:        AGPL-3.0-only
@@ -26,9 +26,12 @@
 Url:            https://code.alephobjects.com/diffusion/U/uranium.git
 Source0:        Uranium-%{version}.tar.xz
 Patch1:         fix-build.patch
+# PATCH-FIX-OPENSUSE fix Qt 5.12 with current python qt snapshot
+Patch2:         fix_qt5.12.patch
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  python3-devel >= 3.5.0
+Recommends:     python3-numpy-stl
 
 %description
 Cura is an engine for processing 3D models
@@ -40,6 +43,7 @@
 %prep
 %setup -q -n Uranium-%version
 %patch1 -p1
+%patch2 -p1
 
 %build
 CFLAGS="%{optflags}"

++++++ Uranium-3.2.28.obscpio -> Uranium-3.6.4.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Uranium-3.2.28/UM/Qt/QtApplication.py 
new/Uranium-3.6.4/UM/Qt/QtApplication.py
--- old/Uranium-3.2.28/UM/Qt/QtApplication.py   2018-08-15 20:00:21.000000000 
+0200
+++ new/Uranium-3.6.4/UM/Qt/QtApplication.py    2018-12-05 21:12:55.000000000 
+0100
@@ -98,6 +98,8 @@
         self._main_window = None
         self._theme = None
 
+        self.assertID = 0
+
         self._shutting_down = False
         self._qml_import_paths = []
         
self._qml_import_paths.append(os.path.join(os.path.dirname(sys.executable), 
"qml"))
@@ -579,11 +581,39 @@
                 Logger.log("w", "Failed to prevent from sleeping")
                 pass
         elif sys.platform.startswith('darwin'): # Mac OS
-            import os
-            import subprocess
             try:
+                from ctypes import cdll, c_void_p, c_uint32, POINTER, byref
+                from CoreFoundation import CFStringCreateWithCString, 
kCFStringEncodingASCII
+                from objc import pyobjc_id
+
+                libIOKit = 
cdll.LoadLibrary('/System/Library/Frameworks/IOKit.framework/IOKit')
+                libIOKit.IOPMAssertionCreateWithName.argtypes = [c_void_p, 
c_uint32, c_void_p, POINTER(c_uint32)]
+                libIOKit.IOPMAssertionRelease.argtypes = [c_uint32]
+
+                def CFSTR(py_string):
+                    return CFStringCreateWithCString(None, py_string, 
kCFStringEncodingASCII)
+
+                def raw_ptr(pyobjc_string):
+                    return pyobjc_id(pyobjc_string.nsstring())
+
+                def IOPMAssertionCreateWithName(assert_name, assert_level, 
assert_msg):
+                    assertID = c_uint32(0)
+                    p_assert_name = raw_ptr(CFSTR(assert_name))
+                    p_assert_msg = raw_ptr(CFSTR(assert_msg))
+                    errcode = 
libIOKit.IOPMAssertionCreateWithName(p_assert_name, assert_level, p_assert_msg, 
byref(assertID))
+                    return (errcode, assertID)
+
+                IOPMAssertionRelease = libIOKit.IOPMAssertionRelease
+
+                kIOPMAssertionTypeNoIdleSleep = b"NoIdleSleepAssertion"
+                kIOPMAssertionLevelOn = 255
+                reason = b"cura-lulzbot is printing"
+
                 if prevent:
-                    subprocess.Popen(['caffeinate', '-i', '-w', 
str(os.getpid())])
+                    errcode, self.assertID = 
IOPMAssertionCreateWithName(kIOPMAssertionTypeNoIdleSleep, 
kIOPMAssertionLevelOn, reason)
+                else:
+                    errcode = IOPMAssertionRelease(self.assertID)
+                    self.assertID = 0
             except:
                 Logger.log("w", "Failed to prevent from sleeping")
                 pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Uranium-3.2.28/UM/Scene/SceneNode.py 
new/Uranium-3.6.4/UM/Scene/SceneNode.py
--- old/Uranium-3.2.28/UM/Scene/SceneNode.py    2018-08-15 20:00:21.000000000 
+0200
+++ new/Uranium-3.6.4/UM/Scene/SceneNode.py     2018-12-05 21:12:55.000000000 
+0100
@@ -55,7 +55,9 @@
         self._shear = Vector(0.0, 0.0, 0.0)  # type: Vector
         self._mirror = Vector(1.0, 1.0, 1.0)  # type: Vector
         self._orientation = Quaternion()  # type: Quaternion
-
+        self._rotationX = 0
+        self._rotationY = 0
+        self._rotationZ = 0
         # World transformation (from root to local)
         self._world_transformation = Matrix()  # type: Matrix
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Uranium-3.2.28/plugins/LocalFileOutputDevice/LocalFileOutputDevice.py 
new/Uranium-3.6.4/plugins/LocalFileOutputDevice/LocalFileOutputDevice.py
--- old/Uranium-3.2.28/plugins/LocalFileOutputDevice/LocalFileOutputDevice.py   
2018-08-15 20:00:21.000000000 +0200
+++ new/Uranium-3.6.4/plugins/LocalFileOutputDevice/LocalFileOutputDevice.py    
2018-12-05 21:12:55.000000000 +0100
@@ -36,6 +36,7 @@
         self.setIconName("save")
 
         self._writing = False
+        self.setPriority(1.5)
 
     ##  Request the specified nodes to be written to a file.
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Uranium-3.2.28/plugins/Tools/RotateTool/RotateTool.py 
new/Uranium-3.6.4/plugins/Tools/RotateTool/RotateTool.py
--- old/Uranium-3.2.28/plugins/Tools/RotateTool/RotateTool.py   2018-08-15 
20:00:21.000000000 +0200
+++ new/Uranium-3.6.4/plugins/Tools/RotateTool/RotateTool.py    2018-12-05 
21:12:55.000000000 +0100
@@ -38,9 +38,9 @@
         self._snap_rotation = True
         self._snap_angle = math.radians(15)
 
-        self._X_angle = 0
-        self._Y_angle = 0
-        self._Z_angle = 0
+        self._X_angle = 0.0
+        self._Y_angle = 0.0
+        self._Z_angle = 0.0
 
         self._angle = None
         self._angle_update_time = None
@@ -144,14 +144,20 @@
                 direction = 1 if Vector.Unit_X.dot(drag_start.cross(drag_end)) 
> 0 else -1
                 rotation = Quaternion.fromAngleAxis(direction * angle, 
Vector.Unit_X)
                 self._X_angle = float(self._X_angle) + direction * 
math.degrees( angle )
+                for node in Selection.getAllSelectedObjects():
+                    node._rotationX = self._X_angle
             elif self.getLockedAxis() == ToolHandle.YAxis:
                 direction = 1 if Vector.Unit_Y.dot(drag_start.cross(drag_end)) 
> 0 else -1
                 rotation = Quaternion.fromAngleAxis(direction * angle, 
Vector.Unit_Y)
                 self._Y_angle = float(self._Y_angle) + direction * 
math.degrees( angle )
+                for node in Selection.getAllSelectedObjects():
+                    node._rotationY = self._Y_angle
             elif self.getLockedAxis() == ToolHandle.ZAxis:
                 direction = 1 if Vector.Unit_Z.dot(drag_start.cross(drag_end)) 
> 0 else -1
                 rotation = Quaternion.fromAngleAxis(direction * angle, 
Vector.Unit_Z)
                 self._Z_angle = float(self._Z_angle) + direction * 
math.degrees( angle )
+                for node in Selection.getAllSelectedObjects():
+                    node._rotationZ = self._Z_angle
             else:
                 direction = -1
 
@@ -230,6 +236,10 @@
     #
     #   \return type(float)
     def getX(self):
+        if Selection.getCount() > 1:
+            self._X_angle = 0.0
+            return self._X_angle
+        self._X_angle = Selection.getAllSelectedObjects()[0]._rotationX
         return self._X_angle
 
     ##  Set X
@@ -239,9 +249,7 @@
         if float(X) != self._X_angle:
             self._angle = ((float(X) % 360) - (self._X_angle % 360)) % 360
 
-            self.propertyChanged.emit()
             self._X_angle = float(X)
-            self.propertyChanged.emit()
 
             #rotation = Quaternion.fromAngleAxis( math.radians( self._angle ), 
Vector.Unit_X)
             rotation = Quaternion()
@@ -251,6 +259,7 @@
             self._saved_node_positions = []
             for node in Selection.getAllSelectedObjects():
                 self._saved_node_positions.append((node, node.getPosition()))
+                node._rotationX = self._X_angle
 
             # Rate-limit the angle change notification
             # This is done to prevent the UI from being flooded with property 
change notifications,
@@ -258,7 +267,6 @@
             new_time = time.monotonic()
             if not self._angle_update_time or new_time - 
self._angle_update_time > 0.1:
                 self._angle_update_time = new_time
-                self.propertyChanged.emit()
 
                 # Rotate around the saved centeres of all selected nodes
                 op = GroupedOperation()
@@ -266,17 +274,20 @@
                     op.addOperation(RotateOperation(node, rotation, 
rotate_around_point = position))
                 op.push()
 
-                self.propertyChanged.emit()
-
-                self._angle = 0
-                self.propertyChanged.emit()
+            self._angle = 0
+            self.propertyChanged.emit()
 
     ##  Get Y
     #
     #   \return type(float)
     def getY(self):
+        if Selection.getCount() > 1:
+            self._Y_angle = 0.0
+            return self._Y_angle
+        self._Y_angle = Selection.getAllSelectedObjects()[0]._rotationY
         return self._Y_angle
 
+
     ##  Set Y
     #
     #   \param Y type(float)
@@ -284,9 +295,7 @@
         if float(Y) != self._Y_angle:
             self._angle = ((float(Y) % 360) - (self._Y_angle % 360)) % 360
 
-            self.propertyChanged.emit()
             self._Y_angle = float(Y)
-            self.propertyChanged.emit()
 
             #rotation = Quaternion.fromAngleAxis(math.radians( self._angle ), 
Vector.Unit_Y)
             rotation = Quaternion()
@@ -297,6 +306,7 @@
             self._saved_node_positions = []
             for node in Selection.getAllSelectedObjects():
                 self._saved_node_positions.append((node, node.getPosition()))
+                node._rotationY = self._Y_angle
 
             # Rate-limit the angle change notification
             # This is done to prevent the UI from being flooded with property 
change notifications,
@@ -304,7 +314,6 @@
             new_time = time.monotonic()
             if not self._angle_update_time or new_time - 
self._angle_update_time > 0.1:
                 self._angle_update_time = new_time
-                self.propertyChanged.emit()
 
                 # Rotate around the saved centeres of all selected nodes
                 op = GroupedOperation()
@@ -312,16 +321,18 @@
                     op.addOperation(RotateOperation(node, rotation, 
rotate_around_point = position))
                 op.push()
 
-                self.propertyChanged.emit()
-
-                self._angle = 0
-                self.propertyChanged.emit()
+            self._angle = 0
+            self.propertyChanged.emit()
 
 
     ##  Get Z
     #
     #   \return type(float)
     def getZ(self):
+        if Selection.getCount() > 1:
+            self._Z_angle = 0.0
+            return self._Z_angle
+        self._Z_angle = Selection.getAllSelectedObjects()[0]._rotationZ
         return self._Z_angle
 
     ##  Set Z
@@ -331,9 +342,7 @@
         if float(Z) != self._Z_angle:
             self._angle = ((float(Z) % 360) - (self._Z_angle % 360)) % 360
 
-            self.propertyChanged.emit()
             self._Z_angle = float(Z)
-            self.propertyChanged.emit()
 
             #rotation = Quaternion.fromAngleAxis(math.radians( self._angle ), 
Vector.Unit_Z)
             rotation = Quaternion()
@@ -343,6 +352,7 @@
             self._saved_node_positions = []
             for node in Selection.getAllSelectedObjects():
                 self._saved_node_positions.append((node, node.getPosition()))
+                node._rotationZ = self._Z_angle
 
             # Rate-limit the angle change notification
             # This is done to prevent the UI from being flooded with property 
change notifications,
@@ -350,7 +360,6 @@
             new_time = time.monotonic()
             if not self._angle_update_time or new_time - 
self._angle_update_time > 0.1:
                 self._angle_update_time = new_time
-                self.propertyChanged.emit()
 
                 # Rotate around the saved centeres of all selected nodes
                 op = GroupedOperation()
@@ -358,7 +367,6 @@
                     op.addOperation(RotateOperation(node, rotation, 
rotate_around_point = position))
                 op.push()
 
-                self.propertyChanged.emit()
 
             self._angle = 0
             self.propertyChanged.emit()
@@ -368,6 +376,9 @@
     def resetRotation(self):
         for node in Selection.getAllSelectedObjects():
             node.setMirror(Vector(1,1,1))
+            node._rotationX = 0.0
+            node._rotationY = 0.0
+            node._rotationZ = 0.0
 
         Selection.applyOperation(SetTransformOperation, None, Quaternion(), 
None)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Uranium-3.2.28/plugins/Tools/ScaleTool/ScaleTool.qml 
new/Uranium-3.6.4/plugins/Tools/ScaleTool/ScaleTool.qml
--- old/Uranium-3.2.28/plugins/Tools/ScaleTool/ScaleTool.qml    2018-08-15 
20:00:21.000000000 +0200
+++ new/Uranium-3.6.4/plugins/Tools/ScaleTool/ScaleTool.qml     2018-12-05 
21:12:55.000000000 +0100
@@ -9,7 +9,7 @@
 Item
 {
     id: base
-    width: childrenRect.width
+    width: childrenRect.width * 1.05
     height: childrenRect.height
     UM.I18nCatalog { id: catalog; name:"uranium"}
 

++++++ Uranium.obsinfo ++++++
--- /var/tmp/diff_new_pack.cC1Tvb/_old  2019-02-25 17:52:21.414720455 +0100
+++ /var/tmp/diff_new_pack.cC1Tvb/_new  2019-02-25 17:52:21.414720455 +0100
@@ -1,5 +1,5 @@
 name: Uranium
-version: 3.2.28
-mtime: 1534356021
-commit: 50a3c8834c0080bf22036cd35e9b7eb85b66d486
+version: 3.6.4
+mtime: 1544040775
+commit: bd6e9e4f33a2dc58a024817ae707718553b31411
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.cC1Tvb/_old  2019-02-25 17:52:21.426720449 +0100
+++ /var/tmp/diff_new_pack.cC1Tvb/_new  2019-02-25 17:52:21.426720449 +0100
@@ -3,8 +3,8 @@
     <param 
name="url">https://code.alephobjects.com/diffusion/U/uranium.git</param>
     <param name="scm">git</param>
     <param name="filename">Uranium</param>
-    <param name="revision">v3.2.28</param>
-    <param name="version">3.2.28</param>
+    <param name="revision">v3.6.4</param>
+    <param name="version">3.6.4</param>
   </service>
   <service mode="disabled" name="set_version" />
 

++++++ fix_qt5.12.patch ++++++
diff --git a/UM/Qt/Bindings/i18nCatalogProxy.py 
b/UM/Qt/Bindings/i18nCatalogProxy.py
index 7e2bb16c..cec70dd6 100644
--- a/UM/Qt/Bindings/i18nCatalogProxy.py
+++ b/UM/Qt/Bindings/i18nCatalogProxy.py
@@ -86,9 +86,9 @@ class i18nCatalogProxy(QObject): # [CodeStyle: Ultimaker code 
style requires cla
     #   \todo Move this to a more generic place so more things can use it.
     def _wrapFunction(self, engine, this_object, function):
         # JavaScript code that wraps the Python method call in a closure
-        wrap_js = """function(this_object) {{
+        wrap_js = """(function(this_object) {{
             return function({args}) {{ return this_object.{function}({args}) }}
-        }}"""
+        }})"""
 
         # Get the function name and argument list.
         function_name = function.__name__

Reply via email to