Repository: spine-tools/Spine-Toolbox (language: python)

Issue:
Workflow editor: Properties widget has a vertical height limit
Properties widget needs to have a vertical scroll bar, so that it's height can be smaller. Now, on small screens, it prevents changing the size of the widget (and other widgets) in a way that makes the workflow editor difficult to use.
Workflow editor: Properties widget has a vertical height limit
Properties widget needs to have a vertical scroll bar, so that it's height can be smaller. Now, on small screens, it prevents changing the size of the widget (and other widgets) in a way that makes the workflow editor difficult to use.


Discussion / hints:
I have implemented this in my User/Design Mode branch. Maybe I should separate it to another branch so we can have in this master soon.
Great. If you think it would take more than 10 minutes, don't bother. It's not that bad. One can workaround it by moving the properties window fully to its own vertical slot.
I have implemented this in my User/Design Mode branch. Maybe I should separate it to another branch so we can have in this master soon.
Great. If you think it would take more than 10 minutes, don't bother. It's not that bad. One can workaround it by moving the properties window fully to its own vertical slot.

Fix patch:
diff --git a/spinetoolbox/resources_icons_rc.py b/spinetoolbox/resources_icons_rc.py
index e09a7f10d..c2238df72 100644
--- a/spinetoolbox/resources_icons_rc.py
+++ b/spinetoolbox/resources_icons_rc.py
@@ -11,7 +11,7 @@
 # this program. If not, see <http://www.gnu.org/licenses/>.
 ######################################################################################################################
 # Created by: object code
-# Created by: The Resource Compiler for Qt version 6.6.3
+# Created by: The Resource Compiler for Qt version 6.7.3
 # WARNING! All changes made in this file will be lost!
 
 from PySide6 import QtCore
@@ -32408,191 +32408,191 @@
 \x00\x00\x004\x00\x02\x00\x00\x00\x01\x00\x00\x00\x05\
 \x00\x00\x00\x00\x00\x00\x00\x00\
 \x00\x00\x00T\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x8aE\xfa\xa6?\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x00x\x00\x00\x00\x00\x00\x01\x00\x00\x09\xf5\
-\x00\x00\x01\x8aE\xfa\xa6>\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x008\x89\
-\x00\x00\x01\x8aE\xfa\xa6\xa3\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x00\x9e\x00\x01\x00\x00\x00\x01\x00\x00\x10N\
-\x00\x00\x01\x8aE\xfa\xa6?\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x02R\x00\x00\x00\x00\x00\x01\x00\x06A\x9c\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x01\xea\x00\x00\x00\x00\x00\x01\x00\x062\x92\
-\x00\x00\x01\x8aE\xfa\xa6\xa3\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x04p\x00\x00\x00\x00\x00\x01\x00\x06\xa8\xcd\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x04\xb8\x00\x00\x00\x00\x00\x01\x00\x06\xbd\xb7\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x03D\x00\x00\x00\x00\x00\x01\x00\x06\x88\x1a\
-\x00\x00\x01\x8aE\xfa\xa6\xa3\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x04\x98\x00\x00\x00\x00\x00\x01\x00\x06\xaa\xa1\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x04\x0c\x00\x00\x00\x00\x00\x01\x00\x06\x99\xa7\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x06E\xb2\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x02h\x00\x00\x00\x00\x00\x01\x00\x06B\xab\
-\x00\x00\x01\x8aE\xfa\xa6\xa3\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x03\xf6\x00\x00\x00\x00\x00\x01\x00\x06\x978\
-\x00\x00\x01\x8aE\xfa\xa6_\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x03^\x00\x00\x00\x00\x00\x01\x00\x06\x8a3\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x02\xc4\x00\x00\x00\x00\x00\x01\x00\x06Q\xfb\
-\x00\x00\x01\x8aE\xfa\xa6?\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x02.\x00\x00\x00\x00\x00\x01\x00\x06?\xec\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x03(\x00\x00\x00\x00\x00\x01\x00\x06b\xb3\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x060\xaf\
-\x00\x00\x01\x8aE\xfa\xa6\x91\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x03\x98\x00\x00\x00\x00\x00\x01\x00\x06\x94o\
-\x00\x00\x01\x91+\xd8Cg\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x01\xa6\x00\x00\x00\x00\x00\x01\x00\x06/\x9c\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x04$\x00\x00\x00\x00\x00\x01\x00\x06\xa0\x10\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x03\xb0\x00\x02\x00\x00\x00\x09\x00\x00\x00V\
 \x00\x00\x00\x00\x00\x00\x00\x00\
 \x00\x00\x03~\x00\x02\x00\x00\x003\x00\x00\x00#\
 \x00\x00\x00\x00\x00\x00\x00\x00\
 \x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x065G\
-\x00\x00\x01\x8aE\xfa\xa6\xa3\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x04T\x00\x00\x00\x00\x00\x01\x00\x06\xa3)\
-\x00\x00\x01\x8aE\xfa\xa6\xa3\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x03\xda\x00\x00\x00\x00\x00\x01\x00\x06\x96\x00\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x02\xda\x00\x00\x00\x00\x00\x01\x00\x06T\x05\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x02\x9e\x00\x00\x00\x00\x00\x01\x00\x06G\x93\
-\x00\x00\x01\x8aE\xfa\xa6\xa3\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x03\x02\x00\x00\x00\x00\x00\x01\x00\x06`G\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x02R\x00\x00\x00\x00\x00\x01\x00\x07\x0a\xf8\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0b\xec\x00\x00\x00\x00\x00\x01\x00\x07\xbf\xb6\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x06\xec\xdf\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x09\x14\x00\x00\x00\x00\x00\x01\x00\x07Hx\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x09\x9a\x00\x00\x00\x00\x00\x01\x00\x07_J\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x06\xf6\x00\x00\x00\x00\x00\x01\x00\x07\x08\x9c\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x08\x98\x00\x00\x00\x00\x00\x01\x00\x07B\xb4\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x09v\x00\x00\x00\x00\x00\x01\x00\x07]\x88\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0a\xce\x00\x00\x00\x00\x00\x01\x00\x07\xa0\x8e\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07\xa0\x00\x00\x00\x00\x00\x01\x00\x07\x1ez\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07\x16\x00\x00\x00\x00\x00\x01\x00\x07\x0e8\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x094\x00\x00\x00\x00\x00\x01\x00\x07ZV\
-\x00\x00\x01\x91+\xd8C5\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x08x\x00\x00\x00\x00\x00\x01\x00\x07)\xa4\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x08\xba\x00\x00\x00\x00\x00\x01\x00\x07D\xc1\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07\xf2\x00\x00\x00\x00\x00\x01\x00\x07$u\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x08\xee\x00\x00\x00\x00\x00\x01\x00\x07F\x1d\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x06V\x00\x00\x00\x00\x00\x01\x00\x06\xee\xe8\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x0a\x00\x00\x00\x00\x00\x00\x01\x00\x07~\x92\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07\xb8\x00\x00\x00\x00\x00\x01\x00\x07 m\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0b>\x00\x00\x00\x00\x00\x01\x00\x07\xa6\xd3\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x06\x1a\x00\x00\x00\x00\x00\x01\x00\x06\xeap\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x06\xd4\x00\x00\x00\x00\x00\x01\x00\x06\xfa\xbf\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x08T\x00\x00\x00\x00\x00\x01\x00\x07(B\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07X\x00\x00\x00\x00\x00\x01\x00\x07\x1a]\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x0b\xa4\x00\x00\x00\x00\x00\x01\x00\x07\xad\xdf\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0b\x0e\x00\x00\x00\x00\x00\x01\x00\x07\xa5\xce\
-\x00\x00\x01\x8aE\xfa\xa6\x81\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x05\xfe\x00\x00\x00\x00\x00\x01\x00\x06\xe7K\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07\xda\x00\x00\x00\x00\x00\x01\x00\x07!\x9a\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x09\xd2\x00\x00\x00\x00\x00\x01\x00\x07y\xdc\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0b\xcc\x00\x00\x00\x00\x00\x01\x00\x07\xb0:\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07:\x00\x01\x00\x00\x00\x01\x00\x07\x18\xeb\
-\x00\x00\x01\x91+\xd8CV\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0aT\x00\x00\x00\x00\x00\x01\x00\x07\x8e%\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x09^\x00\x00\x00\x00\x00\x01\x00\x07\x5ci\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x09\xbc\x00\x00\x00\x00\x00\x01\x00\x07m\xb8\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x06\xc0\x00\x00\x00\x00\x00\x01\x00\x06\xf6%\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0a\xf2\x00\x00\x00\x00\x00\x01\x00\x07\xa2T\
-\x00\x00\x01\x91+\xd8CE\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0a\x80\x00\x00\x00\x00\x00\x01\x00\x07\x90\xe7\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0a$\x00\x00\x00\x00\x00\x01\x00\x07\x8c\x8f\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x09\xe8\x00\x00\x00\x00\x00\x01\x00\x07{\x8f\
-\x00\x00\x01\x91+\xd8CV\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x07\x8a\x00\x00\x00\x00\x00\x01\x00\x07\x1c+\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0a\x98\x00\x00\x00\x00\x00\x01\x00\x07\x931\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x06\xaa\x00\x00\x00\x00\x00\x01\x00\x06\xf4{\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0a\xb0\x00\x00\x00\x00\x00\x01\x00\x07\x94\x97\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0b\x88\x00\x00\x00\x00\x00\x01\x00\x07\xaa\x95\
-\x00\x00\x01\x91+\xd8CE\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x08&\x00\x01\x00\x00\x00\x01\x00\x07%\xca\
-\x00\x00\x01\x8aE\xfa\xa6\x82\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x08@\x00\x00\x00\x00\x00\x01\x00\x07&\xa4\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x0bb\x00\x00\x00\x00\x00\x01\x00\x07\xa8\xb6\
-\x00\x00\x01\x8aE\xfa\xa6p\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x06\x86\x00\x00\x00\x00\x00\x01\x00\x06\xf0\xb4\
-\x00\x00\x01\x91+\xd8CE\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x07\x0c\x07\
-\x00\x00\x01\x8aE\xfa\xa6q\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x05X\x00\x00\x00\x00\x00\x01\x00\x078\x22\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x05\x84\x00\x00\x00\x00\x00\x01\x00\x07o\x0c\
-\x00\x00\x01\x8aE\xfa\xa6`\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x05\xb0\x00\x00\x00\x00\x00\x01\x00\x06\xe3:\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x05\x0e\x00\x00\x00\x00\x00\x01\x00\x06\xca\xc1\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x06\xc6\xaf\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x06\xc4\x9c\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x06\xe5\x0c\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x06\xcdK\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x06\xc8\x90\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x13\x09\
 \x00\x00\x05X\x00\x00\x00\x00\x00\x01\x00\x06\xcf\xfe\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x05\x84\x00\x00\x00\x00\x00\x01\x00\x06\xd9\xb8\
-\x00\x00\x01\x8aE\xfa\xa6\x92\
+\x00\x00\x01\x8f\xec\xcf\x12\xfa\
 \x00\x00\x01&\x00\x01\x00\x00\x00\x01\x00\x03\x04\x82\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x00\xe6\x00\x01\x00\x00\x00\x01\x00\x02\xbaN\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 \x00\x00\x01d\x00\x00\x00\x00\x00\x01\x00\x03\x10\xa8\
-\x00\x00\x01\x8aE\xfa\xa6P\
+\x00\x00\x01\x8f\xec\xcf\x12\xea\
 "
 
 def qInitResources():
diff --git a/spinetoolbox/resources_logos_rc.py b/spinetoolbox/resources_logos_rc.py
index 5a4ad7cd7..6cc3ebc57 100644
--- a/spinetoolbox/resources_logos_rc.py
+++ b/spinetoolbox/resources_logos_rc.py
@@ -11,7 +11,7 @@
 # this program. If not, see <http://www.gnu.org/licenses/>.
 ######################################################################################################################
 # Created by: object code
-# Created by: The Resource Compiler for Qt version 6.7.1
+# Created by: The Resource Compiler for Qt version 6.7.3
 # WARNING! All changes made in this file will be lost!
 
 from PySide6 import QtCore
diff --git a/spinetoolbox/spine_db_editor/ui/commit_viewer_affected_item_info.py b/spinetoolbox/spine_db_editor/ui/commit_viewer_affected_item_info.py
index b1ffe9be9..5c5787140 100644
--- a/spinetoolbox/spine_db_editor/ui/commit_viewer_affected_item_info.py
+++ b/spinetoolbox/spine_db_editor/ui/commit_viewer_affected_item_info.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'commit_viewer_affected_item_info.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/spine_db_editor/ui/db_commit_viewer.py b/spinetoolbox/spine_db_editor/ui/db_commit_viewer.py
index a50a1e07b..c18d483ae 100644
--- a/spinetoolbox/spine_db_editor/ui/db_commit_viewer.py
+++ b/spinetoolbox/spine_db_editor/ui/db_commit_viewer.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'db_commit_viewer.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/spine_db_editor/ui/parameter_type_editor.py b/spinetoolbox/spine_db_editor/ui/parameter_type_editor.py
index bbe5ad146..09c4c9f21 100644
--- a/spinetoolbox/spine_db_editor/ui/parameter_type_editor.py
+++ b/spinetoolbox/spine_db_editor/ui/parameter_type_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'parameter_type_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.6.3
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/spine_db_editor/ui/scenario_generator.py b/spinetoolbox/spine_db_editor/ui/scenario_generator.py
index 44c1038b4..858da0526 100644
--- a/spinetoolbox/spine_db_editor/ui/scenario_generator.py
+++ b/spinetoolbox/spine_db_editor/ui/scenario_generator.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'scenario_generator.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -92,7 +92,7 @@ def setupUi(self, Form):
 
         self.horizontalLayout.addWidget(self.alternative_list)
 
-        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
 
         self.horizontalLayout.addItem(self.horizontalSpacer)
 
diff --git a/spinetoolbox/spine_db_editor/ui/select_databases.py b/spinetoolbox/spine_db_editor/ui/select_databases.py
index e7aae00ab..0b3c26c81 100644
--- a/spinetoolbox/spine_db_editor/ui/select_databases.py
+++ b/spinetoolbox/spine_db_editor/ui/select_databases.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'select_databases.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -58,7 +58,7 @@ def setupUi(self, Form):
 
         self.horizontalLayout.addWidget(self.deselect_all_button)
 
-        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
 
         self.horizontalLayout.addItem(self.horizontalSpacer)
 
diff --git a/spinetoolbox/spine_db_editor/ui/spine_db_editor_window.py b/spinetoolbox/spine_db_editor/ui/spine_db_editor_window.py
index fff8627f1..541bcadde 100644
--- a/spinetoolbox/spine_db_editor/ui/spine_db_editor_window.py
+++ b/spinetoolbox/spine_db_editor/ui/spine_db_editor_window.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'spine_db_editor_window.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.6.3
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -50,67 +50,67 @@ def setupUi(self, MainWindow):
         self.actionCommit.setObjectName(u"actionCommit")
         self.actionCommit.setEnabled(True)
         icon = QIcon()
-        icon.addFile(u":/icons/menu_icons/check.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon.addFile(u":/icons/menu_icons/check.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionCommit.setIcon(icon)
         self.actionRollback = QAction(MainWindow)
         self.actionRollback.setObjectName(u"actionRollback")
         self.actionRollback.setEnabled(False)
         icon1 = QIcon()
-        icon1.addFile(u":/icons/menu_icons/times.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon1.addFile(u":/icons/menu_icons/times.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionRollback.setIcon(icon1)
         self.actionClose = QAction(MainWindow)
         self.actionClose.setObjectName(u"actionClose")
         self.actionClose.setEnabled(True)
         icon2 = QIcon()
-        icon2.addFile(u":/icons/menu_icons/window-close.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon2.addFile(u":/icons/menu_icons/window-close.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionClose.setIcon(icon2)
         self.actionImport = QAction(MainWindow)
         self.actionImport.setObjectName(u"actionImport")
         self.actionImport.setEnabled(False)
         icon3 = QIcon()
-        icon3.addFile(u":/icons/menu_icons/database-import.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon3.addFile(u":/icons/menu_icons/database-import.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionImport.setIcon(icon3)
         self.actionExport = QAction(MainWindow)
         self.actionExport.setObjectName(u"actionExport")
         self.actionExport.setEnabled(False)
         icon4 = QIcon()
-        icon4.addFile(u":/icons/menu_icons/database-export.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon4.addFile(u":/icons/menu_icons/database-export.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionExport.setIcon(icon4)
         self.actionCopy = QAction(MainWindow)
         self.actionCopy.setObjectName(u"actionCopy")
         self.actionCopy.setEnabled(False)
         icon5 = QIcon()
-        icon5.addFile(u":/icons/menu_icons/copy.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon5.addFile(u":/icons/menu_icons/copy.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionCopy.setIcon(icon5)
         self.actionPaste = QAction(MainWindow)
         self.actionPaste.setObjectName(u"actionPaste")
         self.actionPaste.setEnabled(False)
         icon6 = QIcon()
-        icon6.addFile(u":/icons/menu_icons/paste.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon6.addFile(u":/icons/menu_icons/paste.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionPaste.setIcon(icon6)
         self.actionStacked_style = QAction(MainWindow)
         self.actionStacked_style.setObjectName(u"actionStacked_style")
         self.actionStacked_style.setEnabled(True)
         icon7 = QIcon()
-        icon7.addFile(u":/icons/menu_icons/table.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon7.addFile(u":/icons/menu_icons/table.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionStacked_style.setIcon(icon7)
         self.actionGraph_style = QAction(MainWindow)
         self.actionGraph_style.setObjectName(u"actionGraph_style")
         self.actionGraph_style.setEnabled(True)
         icon8 = QIcon()
-        icon8.addFile(u":/icons/project-diagram.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon8.addFile(u":/icons/project-diagram.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionGraph_style.setIcon(icon8)
         self.actionView_history = QAction(MainWindow)
         self.actionView_history.setObjectName(u"actionView_history")
         self.actionView_history.setEnabled(True)
         icon9 = QIcon()
-        icon9.addFile(u":/icons/menu_icons/history.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon9.addFile(u":/icons/menu_icons/history.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionView_history.setIcon(icon9)
         self.actionMass_remove_items = QAction(MainWindow)
         self.actionMass_remove_items.setObjectName(u"actionMass_remove_items")
         self.actionMass_remove_items.setEnabled(False)
         icon10 = QIcon()
-        icon10.addFile(u":/icons/menu_icons/bolt-lightning.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon10.addFile(u":/icons/menu_icons/bolt-lightning.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionMass_remove_items.setIcon(icon10)
         self.actionExport_session = QAction(MainWindow)
         self.actionExport_session.setObjectName(u"actionExport_session")
@@ -119,34 +119,34 @@ def setupUi(self, MainWindow):
         self.actionSettings = QAction(MainWindow)
         self.actionSettings.setObjectName(u"actionSettings")
         icon11 = QIcon()
-        icon11.addFile(u":/icons/menu_icons/cog.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon11.addFile(u":/icons/menu_icons/cog.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionSettings.setIcon(icon11)
         self.actionUser_guide = QAction(MainWindow)
         self.actionUser_guide.setObjectName(u"actionUser_guide")
         icon12 = QIcon()
-        icon12.addFile(u":/icons/menu_icons/question-circle.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon12.addFile(u":/icons/menu_icons/question-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionUser_guide.setIcon(icon12)
         self.actionUndo = QAction(MainWindow)
         self.actionUndo.setObjectName(u"actionUndo")
         self.actionUndo.setEnabled(False)
         icon13 = QIcon()
-        icon13.addFile(u":/icons/menu_icons/undo.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon13.addFile(u":/icons/menu_icons/undo.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionUndo.setIcon(icon13)
         self.actionRedo = QAction(MainWindow)
         self.actionRedo.setObjectName(u"actionRedo")
         self.actionRedo.setEnabled(False)
         icon14 = QIcon()
-        icon14.addFile(u":/icons/menu_icons/redo.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon14.addFile(u":/icons/menu_icons/redo.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionRedo.setIcon(icon14)
         self.actionNew_db_file = QAction(MainWindow)
         self.actionNew_db_file.setObjectName(u"actionNew_db_file")
         icon15 = QIcon()
-        icon15.addFile(u":/icons/menu_icons/file.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon15.addFile(u":/icons/menu_icons/file.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionNew_db_file.setIcon(icon15)
         self.actionOpen_db_file = QAction(MainWindow)
         self.actionOpen_db_file.setObjectName(u"actionOpen_db_file")
         icon16 = QIcon()
-        icon16.addFile(u":/icons/menu_icons/folder-open-solid.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon16.addFile(u":/icons/menu_icons/folder-open-solid.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionOpen_db_file.setIcon(icon16)
         self.actionAdd_db_file = QAction(MainWindow)
         self.actionAdd_db_file.setObjectName(u"actionAdd_db_file")
@@ -154,31 +154,31 @@ def setupUi(self, MainWindow):
         self.actionVacuum = QAction(MainWindow)
         self.actionVacuum.setObjectName(u"actionVacuum")
         icon17 = QIcon()
-        icon17.addFile(u":/icons/menu_icons/broom.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon17.addFile(u":/icons/menu_icons/broom.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionVacuum.setIcon(icon17)
         self.actionValue = QAction(MainWindow)
         self.actionValue.setObjectName(u"actionValue")
         self.actionValue.setCheckable(True)
         icon18 = QIcon()
-        icon18.addFile(u":/icons/menu_icons/hashtag.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon18.addFile(u":/icons/menu_icons/hashtag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionValue.setIcon(icon18)
         self.actionIndex = QAction(MainWindow)
         self.actionIndex.setObjectName(u"actionIndex")
         self.actionIndex.setCheckable(True)
         icon19 = QIcon()
-        icon19.addFile(u":/icons/menu_icons/index.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon19.addFile(u":/icons/menu_icons/index.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionIndex.setIcon(icon19)
         self.actionElement = QAction(MainWindow)
         self.actionElement.setObjectName(u"actionElement")
         self.actionElement.setCheckable(True)
         icon20 = QIcon()
-        icon20.addFile(u":/icons/menu_icons/element.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon20.addFile(u":/icons/menu_icons/element.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionElement.setIcon(icon20)
         self.actionScenario = QAction(MainWindow)
         self.actionScenario.setObjectName(u"actionScenario")
         self.actionScenario.setCheckable(True)
         icon21 = QIcon()
-        icon21.addFile(u":/icons/menu_icons/scenario.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon21.addFile(u":/icons/menu_icons/scenario.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionScenario.setIcon(icon21)
         self.actionOpen_recent = QAction(MainWindow)
         self.actionOpen_recent.setObjectName(u"actionOpen_recent")
@@ -186,7 +186,7 @@ def setupUi(self, MainWindow):
         self.actionGitHub = QAction(MainWindow)
         self.actionGitHub.setObjectName(u"actionGitHub")
         icon22 = QIcon()
-        icon22.addFile(u":/icons/menu_icons/github-mark.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon22.addFile(u":/icons/menu_icons/github-mark.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionGitHub.setIcon(icon22)
         self.centralwidget = QWidget(MainWindow)
         self.centralwidget.setObjectName(u"centralwidget")
@@ -216,7 +216,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_18.addWidget(self.alternative_tree_view)
 
         self.alternative_dock_widget.setWidget(self.dockWidgetContents_15)
-        MainWindow.addDockWidget(Qt.RightDockWidgetArea, self.alternative_dock_widget)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.alternative_dock_widget)
         self.dockWidget_parameter_value_list = QDockWidget(MainWindow)
         self.dockWidget_parameter_value_list.setObjectName(u"dockWidget_parameter_value_list")
         self.dockWidgetContents = QWidget()
@@ -234,7 +234,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout.addWidget(self.treeView_parameter_value_list)
 
         self.dockWidget_parameter_value_list.setWidget(self.dockWidgetContents)
-        MainWindow.addDockWidget(Qt.RightDockWidgetArea, self.dockWidget_parameter_value_list)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.dockWidget_parameter_value_list)
         self.dockWidget_parameter_value = QDockWidget(MainWindow)
         self.dockWidget_parameter_value.setObjectName(u"dockWidget_parameter_value")
         self.dockWidgetContents_2 = QWidget()
@@ -260,7 +260,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_5.addWidget(self.tableView_parameter_value)
 
         self.dockWidget_parameter_value.setWidget(self.dockWidgetContents_2)
-        MainWindow.addDockWidget(Qt.RightDockWidgetArea, self.dockWidget_parameter_value)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.dockWidget_parameter_value)
         self.dockWidget_parameter_definition = QDockWidget(MainWindow)
         self.dockWidget_parameter_definition.setObjectName(u"dockWidget_parameter_definition")
         self.dockWidgetContents_5 = QWidget()
@@ -284,7 +284,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_10.addWidget(self.tableView_parameter_definition)
 
         self.dockWidget_parameter_definition.setWidget(self.dockWidgetContents_5)
-        MainWindow.addDockWidget(Qt.RightDockWidgetArea, self.dockWidget_parameter_definition)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.dockWidget_parameter_definition)
         self.dockWidget_entity_tree = QDockWidget(MainWindow)
         self.dockWidget_entity_tree.setObjectName(u"dockWidget_entity_tree")
         self.dockWidget_entity_tree.setAllowedAreas(Qt.AllDockWidgetAreas)
@@ -310,7 +310,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_4.addWidget(self.treeView_entity)
 
         self.dockWidget_entity_tree.setWidget(self.dockWidgetContents_6)
-        MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.dockWidget_entity_tree)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.dockWidget_entity_tree)
         self.dockWidget_entity_graph = QDockWidget(MainWindow)
         self.dockWidget_entity_graph.setObjectName(u"dockWidget_entity_graph")
         self.dockWidgetContents_8 = QWidget()
@@ -348,7 +348,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_7.addWidget(self.progress_bar_widget)
 
         self.dockWidget_entity_graph.setWidget(self.dockWidgetContents_8)
-        MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.dockWidget_entity_graph)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.dockWidget_entity_graph)
         self.dockWidget_pivot_table = QDockWidget(MainWindow)
         self.dockWidget_pivot_table.setObjectName(u"dockWidget_pivot_table")
         self.dockWidgetContents_10 = QWidget()
@@ -366,7 +366,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_13.addWidget(self.pivot_table)
 
         self.dockWidget_pivot_table.setWidget(self.dockWidgetContents_10)
-        MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.dockWidget_pivot_table)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.dockWidget_pivot_table)
         self.dockWidget_frozen_table = QDockWidget(MainWindow)
         self.dockWidget_frozen_table.setObjectName(u"dockWidget_frozen_table")
         self.dockWidgetContents_11 = QWidget()
@@ -387,7 +387,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_14.addWidget(self.frozen_table)
 
         self.dockWidget_frozen_table.setWidget(self.dockWidgetContents_11)
-        MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.dockWidget_frozen_table)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.dockWidget_frozen_table)
         self.dockWidget_exports = QDockWidget(MainWindow)
         self.dockWidget_exports.setObjectName(u"dockWidget_exports")
         self.dockWidget_exports.setMaximumSize(QSize(524287, 64))
@@ -410,7 +410,7 @@ def setupUi(self, MainWindow):
         self.horizontalLayout_3.addLayout(self.horizontalLayout_exports)
 
         self.dockWidget_exports.setWidget(self.dockWidgetContents_12)
-        MainWindow.addDockWidget(Qt.BottomDockWidgetArea, self.dockWidget_exports)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, self.dockWidget_exports)
         self.metadata_dock_widget = QDockWidget(MainWindow)
         self.metadata_dock_widget.setObjectName(u"metadata_dock_widget")
         self.metadata_dock_contents = QWidget()
@@ -427,7 +427,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_11.addWidget(self.metadata_table_view)
 
         self.metadata_dock_widget.setWidget(self.metadata_dock_contents)
-        MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.metadata_dock_widget)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.metadata_dock_widget)
         self.item_metadata_dock_widget = QDockWidget(MainWindow)
         self.item_metadata_dock_widget.setObjectName(u"item_metadata_dock_widget")
         self.item_metadata_dock_contents = QWidget()
@@ -445,7 +445,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_9.addWidget(self.item_metadata_table_view)
 
         self.item_metadata_dock_widget.setWidget(self.item_metadata_dock_contents)
-        MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.item_metadata_dock_widget)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.item_metadata_dock_widget)
         self.scenario_dock_widget = QDockWidget(MainWindow)
         self.scenario_dock_widget.setObjectName(u"scenario_dock_widget")
         self.dockWidgetContents_9 = QWidget()
@@ -467,7 +467,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_12.addWidget(self.scenario_tree_view)
 
         self.scenario_dock_widget.setWidget(self.dockWidgetContents_9)
-        MainWindow.addDockWidget(Qt.LeftDockWidgetArea, self.scenario_dock_widget)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.scenario_dock_widget)
         self.dockWidget_entity_alternative = QDockWidget(MainWindow)
         self.dockWidget_entity_alternative.setObjectName(u"dockWidget_entity_alternative")
         self.dockWidgetContents_3 = QWidget()
@@ -488,7 +488,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_2.addWidget(self.tableView_entity_alternative)
 
         self.dockWidget_entity_alternative.setWidget(self.dockWidgetContents_3)
-        MainWindow.addDockWidget(Qt.RightDockWidgetArea, self.dockWidget_entity_alternative)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.dockWidget_entity_alternative)
         self.menuBar = QMenuBar(MainWindow)
         self.menuBar.setObjectName(u"menuBar")
         self.menuBar.setGeometry(QRect(0, 0, 965, 22))
diff --git a/spinetoolbox/ui/about.py b/spinetoolbox/ui/about.py
index 4718db627..ee7658e75 100644
--- a/spinetoolbox/ui/about.py
+++ b/spinetoolbox/ui/about.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'about.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -38,7 +38,7 @@ def setupUi(self, Form):
             Form.setObjectName(u"Form")
         Form.setWindowModality(Qt.ApplicationModal)
         Form.resize(400, 614)
-        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
+        sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
         sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
@@ -63,7 +63,7 @@ def setupUi(self, Form):
         self.horizontalLayout.setObjectName(u"horizontalLayout")
         self.label = QLabel(Form)
         self.label.setObjectName(u"label")
-        sizePolicy1 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
+        sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
         sizePolicy1.setHorizontalStretch(0)
         sizePolicy1.setVerticalStretch(0)
         sizePolicy1.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
@@ -94,18 +94,18 @@ def setupUi(self, Form):
         palette1.setBrush(QPalette.Disabled, QPalette.Base, brush1)
         palette1.setBrush(QPalette.Disabled, QPalette.Window, brush1)
         self.frame_9.setPalette(palette1)
-        self.frame_9.setCursor(QCursor(Qt.ArrowCursor))
+        self.frame_9.setCursor(QCursor(Qt.CursorShape.ArrowCursor))
         self.frame_9.setAutoFillBackground(True)
         self.verticalLayout = QVBoxLayout(self.frame_9)
         self.verticalLayout.setObjectName(u"verticalLayout")
         self.verticalLayout.setContentsMargins(0, -1, 0, 0)
-        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
 
         self.verticalLayout.addItem(self.verticalSpacer)
 
         self.label_spine_toolbox = QLabel(self.frame_9)
         self.label_spine_toolbox.setObjectName(u"label_spine_toolbox")
-        sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+        sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
         sizePolicy2.setHorizontalStretch(0)
         sizePolicy2.setVerticalStretch(0)
         sizePolicy2.setHeightForWidth(self.label_spine_toolbox.sizePolicy().hasHeightForWidth())
@@ -169,20 +169,20 @@ def setupUi(self, Form):
 
         self.verticalLayout.addWidget(self.label_python)
 
-        self.verticalSpacer_3 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        self.verticalSpacer_3 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
 
         self.verticalLayout.addItem(self.verticalSpacer_3)
 
         self.horizontalLayout_8 = QHBoxLayout()
         self.horizontalLayout_8.setObjectName(u"horizontalLayout_8")
-        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
 
         self.horizontalLayout_8.addItem(self.horizontalSpacer)
 
         self.toolButton_copy_to_clipboard = QToolButton(self.frame_9)
         self.toolButton_copy_to_clipboard.setObjectName(u"toolButton_copy_to_clipboard")
         icon = QIcon()
-        icon.addFile(u":/icons/menu_icons/copy.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon.addFile(u":/icons/menu_icons/copy.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.toolButton_copy_to_clipboard.setIcon(icon)
 
         self.horizontalLayout_8.addWidget(self.toolButton_copy_to_clipboard)
@@ -267,7 +267,7 @@ def setupUi(self, Form):
 
         self.label_3 = QLabel(Form)
         self.label_3.setObjectName(u"label_3")
-        sizePolicy3 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
+        sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred)
         sizePolicy3.setHorizontalStretch(0)
         sizePolicy3.setVerticalStretch(0)
         sizePolicy3.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
diff --git a/spinetoolbox/ui/add_project_item.py b/spinetoolbox/ui/add_project_item.py
index ffa81ac01..2a3002a08 100644
--- a/spinetoolbox/ui/add_project_item.py
+++ b/spinetoolbox/ui/add_project_item.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'add_project_item.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/array_editor.py b/spinetoolbox/ui/array_editor.py
index c49e8be31..087987886 100644
--- a/spinetoolbox/ui/array_editor.py
+++ b/spinetoolbox/ui/array_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'array_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/datetime_editor.py b/spinetoolbox/ui/datetime_editor.py
index 8724c1000..5b903b9ef 100644
--- a/spinetoolbox/ui/datetime_editor.py
+++ b/spinetoolbox/ui/datetime_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'datetime_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.6.3
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/duration_editor.py b/spinetoolbox/ui/duration_editor.py
index 67b19f7c3..59bbb19dc 100644
--- a/spinetoolbox/ui/duration_editor.py
+++ b/spinetoolbox/ui/duration_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'duration_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/import_source_selector.py b/spinetoolbox/ui/import_source_selector.py
index 89876e5a7..db097f0ab 100644
--- a/spinetoolbox/ui/import_source_selector.py
+++ b/spinetoolbox/ui/import_source_selector.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'import_source_selector.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/jump_properties.py b/spinetoolbox/ui/jump_properties.py
index 7dcbff698..718f0d6e6 100644
--- a/spinetoolbox/ui/jump_properties.py
+++ b/spinetoolbox/ui/jump_properties.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'jump_properties.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -28,8 +28,8 @@
     QPalette, QPixmap, QRadialGradient, QTransform)
 from PySide6.QtWidgets import (QAbstractItemView, QApplication, QComboBox, QGridLayout,
     QGroupBox, QHBoxLayout, QHeaderView, QPushButton,
-    QRadioButton, QSizePolicy, QSpacerItem, QToolButton,
-    QTreeView, QVBoxLayout, QWidget)
+    QRadioButton, QScrollArea, QSizePolicy, QSpacerItem,
+    QToolButton, QTreeView, QVBoxLayout, QWidget)
 
 from spinetoolbox.widgets.code_text_edit import CodeTextEdit
 from spinetoolbox import resources_icons_rc
@@ -38,10 +38,22 @@ class Ui_Form(object):
     def setupUi(self, Form):
         if not Form.objectName():
             Form.setObjectName(u"Form")
-        Form.resize(520, 628)
-        self.verticalLayout = QVBoxLayout(Form)
+        Form.resize(307, 400)
+        self.verticalLayout_3 = QVBoxLayout(Form)
+        self.verticalLayout_3.setSpacing(0)
+        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
+        self.scrollArea = QScrollArea(Form)
+        self.scrollArea.setObjectName(u"scrollArea")
+        self.scrollArea.setWidgetResizable(True)
+        self.scrollAreaWidgetContents = QWidget()
+        self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
+        self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 305, 398))
+        self.verticalLayout = QVBoxLayout(self.scrollAreaWidgetContents)
+        self.verticalLayout.setSpacing(0)
         self.verticalLayout.setObjectName(u"verticalLayout")
-        self.groupBox_condition = QGroupBox(Form)
+        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+        self.groupBox_condition = QGroupBox(self.scrollAreaWidgetContents)
         self.groupBox_condition.setObjectName(u"groupBox_condition")
         self.verticalLayout_2 = QVBoxLayout(self.groupBox_condition)
         self.verticalLayout_2.setObjectName(u"verticalLayout_2")
@@ -104,7 +116,7 @@ def setupUi(self, Form):
         self.gridLayout.setObjectName(u"gridLayout")
         self.horizontalLayout = QHBoxLayout()
         self.horizontalLayout.setObjectName(u"horizontalLayout")
-        self.toolButton_add_arg = QToolButton(Form)
+        self.toolButton_add_arg = QToolButton(self.scrollAreaWidgetContents)
         self.toolButton_add_arg.setObjectName(u"toolButton_add_arg")
         icon1 = QIcon()
         icon1.addFile(u":/icons/file-upload.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
@@ -116,7 +128,7 @@ def setupUi(self, Form):
 
         self.horizontalLayout.addItem(self.horizontalSpacer_2)
 
-        self.toolButton_remove_arg = QToolButton(Form)
+        self.toolButton_remove_arg = QToolButton(self.scrollAreaWidgetContents)
         self.toolButton_remove_arg.setObjectName(u"toolButton_remove_arg")
         icon2 = QIcon()
         icon2.addFile(u":/icons/minus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
@@ -127,22 +139,26 @@ def setupUi(self, Form):
 
         self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1)
 
-        self.treeView_input_files = QTreeView(Form)
+        self.treeView_input_files = QTreeView(self.scrollAreaWidgetContents)
         self.treeView_input_files.setObjectName(u"treeView_input_files")
-        self.treeView_input_files.setDragDropMode(QAbstractItemView.DragDrop)
-        self.treeView_input_files.setSelectionMode(QAbstractItemView.ExtendedSelection)
+        self.treeView_input_files.setDragDropMode(QAbstractItemView.DragDropMode.DragDrop)
+        self.treeView_input_files.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection)
 
         self.gridLayout.addWidget(self.treeView_input_files, 2, 0, 1, 1)
 
-        self.treeView_cmd_line_args = QTreeView(Form)
+        self.treeView_cmd_line_args = QTreeView(self.scrollAreaWidgetContents)
         self.treeView_cmd_line_args.setObjectName(u"treeView_cmd_line_args")
-        self.treeView_cmd_line_args.setDragDropMode(QAbstractItemView.DragDrop)
+        self.treeView_cmd_line_args.setDragDropMode(QAbstractItemView.DragDropMode.DragDrop)
 
         self.gridLayout.addWidget(self.treeView_cmd_line_args, 0, 0, 1, 1)
 
 
         self.verticalLayout.addLayout(self.gridLayout)
 
+        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
+
+        self.verticalLayout_3.addWidget(self.scrollArea)
+
 
         self.retranslateUi(Form)
 
diff --git a/spinetoolbox/ui/jump_properties.ui b/spinetoolbox/ui/jump_properties.ui
index eceaee3af..562bfbfda 100644
--- a/spinetoolbox/ui/jump_properties.ui
+++ b/spinetoolbox/ui/jump_properties.ui
@@ -2,6 +2,7 @@
 <!--
 ######################################################################################################################
 # Copyright (C) 2017-2022 Spine project consortium
+# Copyright Spine Toolbox contributors
 # This file is part of Spine Toolbox.
 # Spine Toolbox is free software: you can redistribute it and\/or modify it under the terms of the GNU Lesser General
 # Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
@@ -18,148 +19,197 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>520</width>
-    <height>628</height>
+    <width>307</width>
+    <height>400</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_3">
+   <property name="spacing">
+    <number>0</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
    <item>
-    <widget class="QGroupBox" name="groupBox_condition">
-     <property name="title">
-      <string>Condition</string>
+    <widget class="QScrollArea" name="scrollArea">
+     <property name="widgetResizable">
+      <bool>true</bool>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <widget class="QRadioButton" name="radioButton_tool_spec">
-          <property name="text">
-           <string>Tool specification</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QComboBox" name="comboBox_tool_spec">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="toolButton_edit_tool_spec">
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="icon">
-           <iconset resource="../../../spine-items/spine_items/ui/resources/resources_icons.qrc">
-            <normaloff>:/icons/wrench.svg</normaloff>:/icons/wrench.svg</iconset>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="radioButton_py_script">
-        <property name="text">
-         <string>Python script</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="CodeTextEdit" name="condition_script_edit"/>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_3">
-        <item>
-         <spacer name="horizontalSpacer_3">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="pushButton_save_script">
-          <property name="text">
-           <string>Save script</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="1" column="0">
-      <layout class="QHBoxLayout" name="horizontalLayout">
+     <widget class="QWidget" name="scrollAreaWidgetContents">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>305</width>
+        <height>398</height>
+       </rect>
+      </property>
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
        <item>
-        <widget class="QToolButton" name="toolButton_add_arg">
-         <property name="text">
-          <string>...</string>
-         </property>
-         <property name="icon">
-          <iconset resource="../../../spine-items/spine_items/ui/resources/resources_icons.qrc">
-           <normaloff>:/icons/file-upload.svg</normaloff>:/icons/file-upload.svg</iconset>
+        <widget class="QGroupBox" name="groupBox_condition">
+         <property name="title">
+          <string>Condition</string>
          </property>
+         <layout class="QVBoxLayout" name="verticalLayout_2">
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout_2">
+            <item>
+             <widget class="QRadioButton" name="radioButton_tool_spec">
+              <property name="text">
+               <string>Tool specification</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QComboBox" name="comboBox_tool_spec">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="toolButton_edit_tool_spec">
+              <property name="text">
+               <string>...</string>
+              </property>
+              <property name="icon">
+               <iconset resource="resources/resources_icons.qrc">
+                <normaloff>:/icons/wrench.svg</normaloff>:/icons/wrench.svg</iconset>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <widget class="QRadioButton" name="radioButton_py_script">
+            <property name="text">
+             <string>Python script</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="CodeTextEdit" name="condition_script_edit"/>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <item>
+             <spacer name="horizontalSpacer_3">
+              <property name="orientation">
+               <enum>Qt::Orientation::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QPushButton" name="pushButton_save_script">
+              <property name="text">
+               <string>Save script</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+         </layout>
         </widget>
        </item>
        <item>
-        <spacer name="horizontalSpacer_2">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>40</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item>
-        <widget class="QToolButton" name="toolButton_remove_arg">
-         <property name="text">
-          <string>...</string>
-         </property>
-         <property name="icon">
-          <iconset resource="../../../spine-items/spine_items/ui/resources/resources_icons.qrc">
-           <normaloff>:/icons/minus.svg</normaloff>:/icons/minus.svg</iconset>
-         </property>
-        </widget>
+        <layout class="QGridLayout" name="gridLayout">
+         <item row="1" column="0">
+          <layout class="QHBoxLayout" name="horizontalLayout">
+           <item>
+            <widget class="QToolButton" name="toolButton_add_arg">
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="icon">
+              <iconset resource="resources/resources_icons.qrc">
+               <normaloff>:/icons/file-upload.svg</normaloff>:/icons/file-upload.svg</iconset>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <spacer name="horizontalSpacer_2">
+             <property name="orientation">
+              <enum>Qt::Orientation::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+           <item>
+            <widget class="QToolButton" name="toolButton_remove_arg">
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="icon">
+              <iconset resource="resources/resources_icons.qrc">
+               <normaloff>:/icons/minus.svg</normaloff>:/icons/minus.svg</iconset>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item row="2" column="0">
+          <widget class="QTreeView" name="treeView_input_files">
+           <property name="dragDropMode">
+            <enum>QAbstractItemView::DragDropMode::DragDrop</enum>
+           </property>
+           <property name="selectionMode">
+            <enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="0">
+          <widget class="QTreeView" name="treeView_cmd_line_args">
+           <property name="dragDropMode">
+            <enum>QAbstractItemView::DragDropMode::DragDrop</enum>
+           </property>
+          </widget>
+         </item>
+        </layout>
        </item>
       </layout>
-     </item>
-     <item row="2" column="0">
-      <widget class="QTreeView" name="treeView_input_files">
-       <property name="dragDropMode">
-        <enum>QAbstractItemView::DragDrop</enum>
-       </property>
-       <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0">
-      <widget class="QTreeView" name="treeView_cmd_line_args">
-       <property name="dragDropMode">
-        <enum>QAbstractItemView::DragDrop</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
+     </widget>
+    </widget>
    </item>
   </layout>
  </widget>
@@ -171,7 +221,7 @@
   </customwidget>
  </customwidgets>
  <resources>
-  <include location="../../../spine-items/spine_items/ui/resources/resources_icons.qrc"/>
+  <include location="resources/resources_icons.qrc"/>
  </resources>
  <connections/>
 </ui>
diff --git a/spinetoolbox/ui/link_properties.py b/spinetoolbox/ui/link_properties.py
index 43bd63568..55a76298a 100644
--- a/spinetoolbox/ui/link_properties.py
+++ b/spinetoolbox/ui/link_properties.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'link_properties.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -28,8 +28,8 @@
     QPalette, QPixmap, QRadialGradient, QTransform)
 from PySide6.QtWidgets import (QAbstractItemView, QApplication, QCheckBox, QComboBox,
     QFormLayout, QFrame, QHBoxLayout, QHeaderView,
-    QLabel, QPushButton, QSizePolicy, QSpacerItem,
-    QTreeView, QVBoxLayout, QWidget)
+    QLabel, QPushButton, QScrollArea, QSizePolicy,
+    QSpacerItem, QTreeView, QVBoxLayout, QWidget)
 
 from spinetoolbox.widgets.custom_qwidgets import PropertyQSpinBox
 from spinetoolbox import resources_icons_rc
@@ -38,17 +38,29 @@ class Ui_Form(object):
     def setupUi(self, Form):
         if not Form.objectName():
             Form.setObjectName(u"Form")
-        Form.resize(372, 355)
-        self.verticalLayout = QVBoxLayout(Form)
+        Form.resize(362, 404)
+        self.verticalLayout_3 = QVBoxLayout(Form)
+        self.verticalLayout_3.setSpacing(0)
+        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
+        self.scrollArea = QScrollArea(Form)
+        self.scrollArea.setObjectName(u"scrollArea")
+        self.scrollArea.setWidgetResizable(True)
+        self.scrollAreaWidgetContents = QWidget()
+        self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
+        self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 360, 402))
+        self.verticalLayout = QVBoxLayout(self.scrollAreaWidgetContents)
+        self.verticalLayout.setSpacing(0)
         self.verticalLayout.setObjectName(u"verticalLayout")
+        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
         self.formLayout = QFormLayout()
         self.formLayout.setObjectName(u"formLayout")
-        self.filter_type_label = QLabel(Form)
+        self.filter_type_label = QLabel(self.scrollAreaWidgetContents)
         self.filter_type_label.setObjectName(u"filter_type_label")
 
         self.formLayout.setWidget(0, QFormLayout.LabelRole, self.filter_type_label)
 
-        self.filter_type_combo_box = QComboBox(Form)
+        self.filter_type_combo_box = QComboBox(self.scrollAreaWidgetContents)
         self.filter_type_combo_box.setObjectName(u"filter_type_combo_box")
 
         self.formLayout.setWidget(0, QFormLayout.FieldRole, self.filter_type_combo_box)
@@ -56,18 +68,18 @@ def setupUi(self, Form):
 
         self.verticalLayout.addLayout(self.formLayout)
 
-        self.treeView_filters = QTreeView(Form)
+        self.treeView_filters = QTreeView(self.scrollAreaWidgetContents)
         self.treeView_filters.setObjectName(u"treeView_filters")
         self.treeView_filters.setAcceptDrops(True)
-        self.treeView_filters.setDragDropMode(QAbstractItemView.DragDrop)
+        self.treeView_filters.setDragDropMode(QAbstractItemView.DragDropMode.DragDrop)
         self.treeView_filters.header().setVisible(True)
 
         self.verticalLayout.addWidget(self.treeView_filters)
 
-        self.frame = QFrame(Form)
+        self.frame = QFrame(self.scrollAreaWidgetContents)
         self.frame.setObjectName(u"frame")
-        self.frame.setFrameShape(QFrame.StyledPanel)
-        self.frame.setFrameShadow(QFrame.Raised)
+        self.frame.setFrameShape(QFrame.Shape.StyledPanel)
+        self.frame.setFrameShadow(QFrame.Shadow.Raised)
         self.verticalLayout_2 = QVBoxLayout(self.frame)
         self.verticalLayout_2.setObjectName(u"verticalLayout_2")
         self.horizontalLayout_3 = QHBoxLayout()
@@ -143,6 +155,10 @@ def setupUi(self, Form):
 
         self.verticalLayout.addWidget(self.frame)
 
+        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
+
+        self.verticalLayout_3.addWidget(self.scrollArea)
+
 
         self.retranslateUi(Form)
 
diff --git a/spinetoolbox/ui/link_properties.ui b/spinetoolbox/ui/link_properties.ui
index e25e2da09..1c91c7b69 100644
--- a/spinetoolbox/ui/link_properties.ui
+++ b/spinetoolbox/ui/link_properties.ui
@@ -2,6 +2,7 @@
 <!--
 ######################################################################################################################
 # Copyright (C) 2017-2022 Spine project consortium
+# Copyright Spine Toolbox contributors
 # This file is part of Spine Toolbox.
 # Spine Toolbox is free software: you can redistribute it and\/or modify it under the terms of the GNU Lesser General
 # Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
@@ -18,171 +19,220 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>372</width>
-    <height>355</height>
+    <width>362</width>
+    <height>404</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_3">
+   <property name="spacing">
+    <number>0</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
    <item>
-    <layout class="QFormLayout" name="formLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="filter_type_label">
-       <property name="text">
-        <string>Filter type:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QComboBox" name="filter_type_combo_box">
-       <property name="toolTip">
-        <string>Select filter type between mutually exclusive filters.</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QTreeView" name="treeView_filters">
-     <property name="acceptDrops">
+    <widget class="QScrollArea" name="scrollArea">
+     <property name="widgetResizable">
       <bool>true</bool>
      </property>
-     <property name="dragDropMode">
-      <enum>QAbstractItemView::DragDrop</enum>
-     </property>
-     <attribute name="headerVisible">
-      <bool>true</bool>
-     </attribute>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="frame">
-     <property name="frameShape">
-      <enum>QFrame::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Raised</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_3">
-        <item>
-         <widget class="QCheckBox" name="auto_check_filters_check_box">
-          <property name="text">
-           <string>Check new filters automatically</string>
-          </property>
-          <property name="checked">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_3">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="open_filter_validation_menu_button">
-          <property name="text">
-           <string>Filter validation</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <widget class="QLabel" name="label_write_index">
-          <property name="text">
-           <string>Write index (lower writes earlier):</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="PropertyQSpinBox" name="spinBox_write_index">
-          <property name="minimum">
-           <number>1</number>
-          </property>
-          <property name="maximum">
-           <number>999</number>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <widget class="QCheckBox" name="checkBox_purge_before_writing">
-          <property name="text">
-           <string>Purge before writing</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QPushButton" name="purge_settings_button">
-          <property name="toolTip">
-           <string>Choose what database items to purge.</string>
-          </property>
-          <property name="text">
-           <string>Settings...</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="checkBox_use_memory_db">
-        <property name="text">
-         <string>Use memory DB for Tool execution</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="checkBox_use_datapackage">
-        <property name="text">
-         <string>Pack CSV files (as datapackage.json)</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
+     <widget class="QWidget" name="scrollAreaWidgetContents">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>360</width>
+        <height>402</height>
+       </rect>
+      </property>
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <layout class="QFormLayout" name="formLayout">
+         <item row="0" column="0">
+          <widget class="QLabel" name="filter_type_label">
+           <property name="text">
+            <string>Filter type:</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="QComboBox" name="filter_type_combo_box">
+           <property name="toolTip">
+            <string>Select filter type between mutually exclusive filters.</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <widget class="QTreeView" name="treeView_filters">
+         <property name="acceptDrops">
+          <bool>true</bool>
+         </property>
+         <property name="dragDropMode">
+          <enum>QAbstractItemView::DragDropMode::DragDrop</enum>
+         </property>
+         <attribute name="headerVisible">
+          <bool>true</bool>
+         </attribute>
+        </widget>
+       </item>
+       <item>
+        <widget class="QFrame" name="frame">
+         <property name="frameShape">
+          <enum>QFrame::Shape::StyledPanel</enum>
+         </property>
+         <property name="frameShadow">
+          <enum>QFrame::Shadow::Raised</enum>
+         </property>
+         <layout class="QVBoxLayout" name="verticalLayout_2">
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout_3">
+            <item>
+             <widget class="QCheckBox" name="auto_check_filters_check_box">
+              <property name="text">
+               <string>Check new filters automatically</string>
+              </property>
+              <property name="checked">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_3">
+              <property name="orientation">
+               <enum>Qt::Orientation::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QPushButton" name="open_filter_validation_menu_button">
+              <property name="text">
+               <string>Filter validation</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout">
+            <item>
+             <widget class="QLabel" name="label_write_index">
+              <property name="text">
+               <string>Write index (lower writes earlier):</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="PropertyQSpinBox" name="spinBox_write_index">
+              <property name="minimum">
+               <number>1</number>
+              </property>
+              <property name="maximum">
+               <number>999</number>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer">
+              <property name="orientation">
+               <enum>Qt::Orientation::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout_2">
+            <item>
+             <widget class="QCheckBox" name="checkBox_purge_before_writing">
+              <property name="text">
+               <string>Purge before writing</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="purge_settings_button">
+              <property name="toolTip">
+               <string>Choose what database items to purge.</string>
+              </property>
+              <property name="text">
+               <string>Settings...</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer_2">
+              <property name="orientation">
+               <enum>Qt::Orientation::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="checkBox_use_memory_db">
+            <property name="text">
+             <string>Use memory DB for Tool execution</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QCheckBox" name="checkBox_use_datapackage">
+            <property name="text">
+             <string>Pack CSV files (as datapackage.json)</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
   </layout>
@@ -195,7 +245,7 @@
   </customwidget>
  </customwidgets>
  <resources>
-  <include location="../../../spine-items/spine_items/ui/resources/resources_icons.qrc"/>
+  <include location="resources/resources_icons.qrc"/>
  </resources>
  <connections/>
 </ui>
diff --git a/spinetoolbox/ui/mainwindow.py b/spinetoolbox/ui/mainwindow.py
index febbc1232..79c337f0b 100644
--- a/spinetoolbox/ui/mainwindow.py
+++ b/spinetoolbox/ui/mainwindow.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'mainwindow.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.6.3
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -41,44 +41,44 @@ class Ui_MainWindow(object):
     def setupUi(self, MainWindow):
         if not MainWindow.objectName():
             MainWindow.setObjectName(u"MainWindow")
-        MainWindow.resize(1006, 672)
+        MainWindow.resize(820, 615)
         MainWindow.setDockNestingEnabled(True)
         self.actionQuit = QAction(MainWindow)
         self.actionQuit.setObjectName(u"actionQuit")
         icon = QIcon()
-        icon.addFile(u":/icons/menu_icons/window-close.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon.addFile(u":/icons/menu_icons/window-close.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionQuit.setIcon(icon)
         self.actionDocumentation = QAction(MainWindow)
         self.actionDocumentation.setObjectName(u"actionDocumentation")
         self.actionAbout = QAction(MainWindow)
         self.actionAbout.setObjectName(u"actionAbout")
         icon1 = QIcon()
-        icon1.addFile(u":/icons/menu_icons/info-circle.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon1.addFile(u":/icons/menu_icons/info-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionAbout.setIcon(icon1)
         self.actionSave = QAction(MainWindow)
         self.actionSave.setObjectName(u"actionSave")
         icon2 = QIcon()
-        icon2.addFile(u":/icons/menu_icons/save_solid.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon2.addFile(u":/icons/menu_icons/save_solid.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionSave.setIcon(icon2)
         self.actionSave_As = QAction(MainWindow)
         self.actionSave_As.setObjectName(u"actionSave_As")
         icon3 = QIcon()
-        icon3.addFile(u":/icons/menu_icons/save_regular.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon3.addFile(u":/icons/menu_icons/save_regular.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionSave_As.setIcon(icon3)
         self.actionOpen = QAction(MainWindow)
         self.actionOpen.setObjectName(u"actionOpen")
         icon4 = QIcon()
-        icon4.addFile(u":/icons/menu_icons/folder-open-solid.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon4.addFile(u":/icons/menu_icons/folder-open-solid.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionOpen.setIcon(icon4)
         self.actionNew = QAction(MainWindow)
         self.actionNew.setObjectName(u"actionNew")
         icon5 = QIcon()
-        icon5.addFile(u":/icons/menu_icons/file.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon5.addFile(u":/icons/menu_icons/file.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionNew.setIcon(icon5)
         self.actionSettings = QAction(MainWindow)
         self.actionSettings.setObjectName(u"actionSettings")
         icon6 = QIcon()
-        icon6.addFile(u":/icons/menu_icons/cog.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon6.addFile(u":/icons/menu_icons/cog.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionSettings.setIcon(icon6)
         self.actionItem_Toolbar = QAction(MainWindow)
         self.actionItem_Toolbar.setObjectName(u"actionItem_Toolbar")
@@ -97,19 +97,19 @@ def setupUi(self, MainWindow):
         self.actionUser_Guide = QAction(MainWindow)
         self.actionUser_Guide.setObjectName(u"actionUser_Guide")
         icon7 = QIcon()
-        icon7.addFile(u":/icons/menu_icons/question-circle.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon7.addFile(u":/icons/menu_icons/question-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionUser_Guide.setIcon(icon7)
         self.actionRestore_Dock_Widgets = QAction(MainWindow)
         self.actionRestore_Dock_Widgets.setObjectName(u"actionRestore_Dock_Widgets")
         self.actionAbout_Qt = QAction(MainWindow)
         self.actionAbout_Qt.setObjectName(u"actionAbout_Qt")
         icon8 = QIcon()
-        icon8.addFile(u":/icons/qt_extended_48x48.png", QSize(), QIcon.Normal, QIcon.Off)
+        icon8.addFile(u":/icons/qt_extended_48x48.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionAbout_Qt.setIcon(icon8)
         self.actionRemove_all = QAction(MainWindow)
         self.actionRemove_all.setObjectName(u"actionRemove_all")
         icon9 = QIcon()
-        icon9.addFile(u":/icons/menu_icons/trash-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon9.addFile(u":/icons/menu_icons/trash-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionRemove_all.setIcon(icon9)
         self.actionGetting_started = QAction(MainWindow)
         self.actionGetting_started.setObjectName(u"actionGetting_started")
@@ -117,7 +117,7 @@ def setupUi(self, MainWindow):
         self.actionOpen_recent = QAction(MainWindow)
         self.actionOpen_recent.setObjectName(u"actionOpen_recent")
         icon10 = QIcon()
-        icon10.addFile(u":/icons/menu_icons/history.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon10.addFile(u":/icons/menu_icons/history.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionOpen_recent.setIcon(icon10)
         self.actionCopy = QAction(MainWindow)
         self.actionCopy.setObjectName(u"actionCopy")
@@ -139,7 +139,7 @@ def setupUi(self, MainWindow):
         self.actionNew_DB_editor = QAction(MainWindow)
         self.actionNew_DB_editor.setObjectName(u"actionNew_DB_editor")
         icon11 = QIcon()
-        icon11.addFile(u":/icons/database-edit.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon11.addFile(u":/icons/database-edit.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionNew_DB_editor.setIcon(icon11)
         self.actionPasteAndDuplicateFiles = QAction(MainWindow)
         self.actionPasteAndDuplicateFiles.setObjectName(u"actionPasteAndDuplicateFiles")
@@ -156,27 +156,27 @@ def setupUi(self, MainWindow):
         self.actionClose = QAction(MainWindow)
         self.actionClose.setObjectName(u"actionClose")
         icon12 = QIcon()
-        icon12.addFile(u":/icons/menu_icons/door-closed.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon12.addFile(u":/icons/menu_icons/door-closed.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionClose.setIcon(icon12)
         self.actionSet_description = QAction(MainWindow)
         self.actionSet_description.setObjectName(u"actionSet_description")
         icon13 = QIcon()
-        icon13.addFile(u":/icons/menu_icons/exchange-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon13.addFile(u":/icons/menu_icons/exchange-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionSet_description.setIcon(icon13)
         self.actionExecute_project = QAction(MainWindow)
         self.actionExecute_project.setObjectName(u"actionExecute_project")
         icon14 = QIcon()
-        icon14.addFile(u":/icons/menu_icons/play-circle-solid.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon14.addFile(u":/icons/menu_icons/play-circle-solid.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionExecute_project.setIcon(icon14)
         self.actionExecute_selection = QAction(MainWindow)
         self.actionExecute_selection.setObjectName(u"actionExecute_selection")
         icon15 = QIcon()
-        icon15.addFile(u":/icons/menu_icons/play-circle-regular.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon15.addFile(u":/icons/menu_icons/play-circle-regular.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionExecute_selection.setIcon(icon15)
         self.actionStop_execution = QAction(MainWindow)
         self.actionStop_execution.setObjectName(u"actionStop_execution")
         icon16 = QIcon()
-        icon16.addFile(u":/icons/menu_icons/stop-circle-regular.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon16.addFile(u":/icons/menu_icons/stop-circle-regular.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionStop_execution.setIcon(icon16)
         self.actionTake_link = QAction(MainWindow)
         self.actionTake_link.setObjectName(u"actionTake_link")
@@ -185,19 +185,19 @@ def setupUi(self, MainWindow):
         self.actionStart_jupyter_console = QAction(MainWindow)
         self.actionStart_jupyter_console.setObjectName(u"actionStart_jupyter_console")
         icon17 = QIcon()
-        icon17.addFile(u":/icons/desktop.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon17.addFile(u":/icons/desktop.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionStart_jupyter_console.setIcon(icon17)
         self.actionGitHub = QAction(MainWindow)
         self.actionGitHub.setObjectName(u"actionGitHub")
         icon18 = QIcon()
-        icon18.addFile(u":/icons/menu_icons/github-mark.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon18.addFile(u":/icons/menu_icons/github-mark.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.actionGitHub.setIcon(icon18)
         self.centralwidget = QWidget(MainWindow)
         self.centralwidget.setObjectName(u"centralwidget")
         MainWindow.setCentralWidget(self.centralwidget)
         self.menubar = QMenuBar(MainWindow)
         self.menubar.setObjectName(u"menubar")
-        self.menubar.setGeometry(QRect(0, 0, 1006, 22))
+        self.menubar.setGeometry(QRect(0, 0, 820, 33))
         self.menubar.setNativeMenuBar(False)
         self.menuFile = QMenu(self.menubar)
         self.menuFile.setObjectName(u"menuFile")
@@ -229,8 +229,8 @@ def setupUi(self, MainWindow):
         sizePolicy.setVerticalStretch(0)
         sizePolicy.setHeightForWidth(self.dockWidget_eventlog.sizePolicy().hasHeightForWidth())
         self.dockWidget_eventlog.setSizePolicy(sizePolicy)
-        self.dockWidget_eventlog.setMinimumSize(QSize(174, 184))
-        self.dockWidget_eventlog.setFeatures(QDockWidget.DockWidgetClosable|QDockWidget.DockWidgetFloatable|QDockWidget.DockWidgetMovable)
+        self.dockWidget_eventlog.setMinimumSize(QSize(82, 104))
+        self.dockWidget_eventlog.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetClosable|QDockWidget.DockWidgetFeature.DockWidgetFloatable|QDockWidget.DockWidgetFeature.DockWidgetMovable)
         self.dockWidgetContents = QWidget()
         self.dockWidgetContents.setObjectName(u"dockWidgetContents")
         sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
@@ -249,7 +249,7 @@ def setupUi(self, MainWindow):
         self.textBrowser_eventlog.setObjectName(u"textBrowser_eventlog")
         sizePolicy.setHeightForWidth(self.textBrowser_eventlog.sizePolicy().hasHeightForWidth())
         self.textBrowser_eventlog.setSizePolicy(sizePolicy)
-        self.textBrowser_eventlog.setContextMenuPolicy(Qt.DefaultContextMenu)
+        self.textBrowser_eventlog.setContextMenuPolicy(Qt.ContextMenuPolicy.DefaultContextMenu)
         self.textBrowser_eventlog.setOpenLinks(False)
 
         self.verticalLayout_7.addWidget(self.textBrowser_eventlog)
@@ -257,10 +257,10 @@ def setupUi(self, MainWindow):
         self.toolButton_executions = QToolButton(self.dockWidgetContents)
         self.toolButton_executions.setObjectName(u"toolButton_executions")
         icon19 = QIcon()
-        icon19.addFile(u":/icons/check-circle.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon19.addFile(u":/icons/check-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.toolButton_executions.setIcon(icon19)
-        self.toolButton_executions.setPopupMode(QToolButton.InstantPopup)
-        self.toolButton_executions.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
+        self.toolButton_executions.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup)
+        self.toolButton_executions.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
 
         self.verticalLayout_7.addWidget(self.toolButton_executions)
 
@@ -268,37 +268,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_5.addLayout(self.verticalLayout_7)
 
         self.dockWidget_eventlog.setWidget(self.dockWidgetContents)
-        MainWindow.addDockWidget(Qt.BottomDockWidgetArea, self.dockWidget_eventlog)
-        self.dockWidget_item = QDockWidget(MainWindow)
-        self.dockWidget_item.setObjectName(u"dockWidget_item")
-        self.dockWidget_item.setMinimumSize(QSize(356, 293))
-        self.dockWidgetContents_3 = QWidget()
-        self.dockWidgetContents_3.setObjectName(u"dockWidgetContents_3")
-        self.verticalLayout = QVBoxLayout(self.dockWidgetContents_3)
-        self.verticalLayout.setSpacing(6)
-        self.verticalLayout.setObjectName(u"verticalLayout")
-        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
-        self.tabWidget_item_properties = QTabWidget(self.dockWidgetContents_3)
-        self.tabWidget_item_properties.setObjectName(u"tabWidget_item_properties")
-        self.tabWidget_item_properties.setStyleSheet(u"")
-        self.tab_no_selection = QWidget()
-        self.tab_no_selection.setObjectName(u"tab_no_selection")
-        self.verticalLayout_14 = QVBoxLayout(self.tab_no_selection)
-        self.verticalLayout_14.setObjectName(u"verticalLayout_14")
-        self.verticalLayout_14.setContentsMargins(6, 6, 6, 6)
-        self.label_no_selection = QLabel(self.tab_no_selection)
-        self.label_no_selection.setObjectName(u"label_no_selection")
-        self.label_no_selection.setAlignment(Qt.AlignCenter)
-        self.label_no_selection.setWordWrap(True)
-
-        self.verticalLayout_14.addWidget(self.label_no_selection)
-
-        self.tabWidget_item_properties.addTab(self.tab_no_selection, "")
-
-        self.verticalLayout.addWidget(self.tabWidget_item_properties)
-
-        self.dockWidget_item.setWidget(self.dockWidgetContents_3)
-        MainWindow.addDockWidget(Qt.TopDockWidgetArea, self.dockWidget_item)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, self.dockWidget_eventlog)
         self.dockWidget_console = QDockWidget(MainWindow)
         self.dockWidget_console.setObjectName(u"dockWidget_console")
         self.dockWidget_console.setFloating(False)
@@ -310,7 +280,7 @@ def setupUi(self, MainWindow):
         self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
         self.splitter_console = QSplitter(self.dockWidgetContents_console)
         self.splitter_console.setObjectName(u"splitter_console")
-        self.splitter_console.setOrientation(Qt.Vertical)
+        self.splitter_console.setOrientation(Qt.Orientation.Vertical)
         self.splitter_console.setChildrenCollapsible(False)
         self.listView_console_executions = QTreeView(self.splitter_console)
         self.listView_console_executions.setObjectName(u"listView_console_executions")
@@ -322,18 +292,18 @@ def setupUi(self, MainWindow):
         self.splitter_console.addWidget(self.listView_console_executions)
         self.label_no_console = QLabel(self.splitter_console)
         self.label_no_console.setObjectName(u"label_no_console")
-        self.label_no_console.setContextMenuPolicy(Qt.DefaultContextMenu)
-        self.label_no_console.setAlignment(Qt.AlignCenter)
+        self.label_no_console.setContextMenuPolicy(Qt.ContextMenuPolicy.DefaultContextMenu)
+        self.label_no_console.setAlignment(Qt.AlignmentFlag.AlignCenter)
         self.label_no_console.setWordWrap(True)
         self.splitter_console.addWidget(self.label_no_console)
 
         self.verticalLayout_6.addWidget(self.splitter_console)
 
         self.dockWidget_console.setWidget(self.dockWidgetContents_console)
-        MainWindow.addDockWidget(Qt.BottomDockWidgetArea, self.dockWidget_console)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, self.dockWidget_console)
         self.dockWidget_design_view = QDockWidget(MainWindow)
         self.dockWidget_design_view.setObjectName(u"dockWidget_design_view")
-        self.dockWidget_design_view.setFeatures(QDockWidget.DockWidgetMovable)
+        self.dockWidget_design_view.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetMovable)
         self.dockWidgetContents_5 = QWidget()
         self.dockWidgetContents_5.setObjectName(u"dockWidgetContents_5")
         self.verticalLayout_2 = QVBoxLayout(self.dockWidgetContents_5)
@@ -342,18 +312,48 @@ def setupUi(self, MainWindow):
         self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
         self.graphicsView = DesignQGraphicsView(self.dockWidgetContents_5)
         self.graphicsView.setObjectName(u"graphicsView")
-        self.graphicsView.setFrameShape(QFrame.NoFrame)
-        self.graphicsView.setFrameShadow(QFrame.Raised)
-        self.graphicsView.setRenderHints(QPainter.Antialiasing|QPainter.TextAntialiasing)
-        self.graphicsView.setDragMode(QGraphicsView.RubberBandDrag)
-        self.graphicsView.setResizeAnchor(QGraphicsView.AnchorUnderMouse)
-        self.graphicsView.setViewportUpdateMode(QGraphicsView.FullViewportUpdate)
-        self.graphicsView.setRubberBandSelectionMode(Qt.ContainsItemBoundingRect)
+        self.graphicsView.setFrameShape(QFrame.Shape.NoFrame)
+        self.graphicsView.setFrameShadow(QFrame.Shadow.Raised)
+        self.graphicsView.setRenderHints(QPainter.RenderHint.Antialiasing|QPainter.RenderHint.TextAntialiasing)
+        self.graphicsView.setDragMode(QGraphicsView.DragMode.RubberBandDrag)
+        self.graphicsView.setResizeAnchor(QGraphicsView.ViewportAnchor.AnchorUnderMouse)
+        self.graphicsView.setViewportUpdateMode(QGraphicsView.ViewportUpdateMode.FullViewportUpdate)
+        self.graphicsView.setRubberBandSelectionMode(Qt.ItemSelectionMode.ContainsItemBoundingRect)
 
         self.verticalLayout_2.addWidget(self.graphicsView)
 
         self.dockWidget_design_view.setWidget(self.dockWidgetContents_5)
-        MainWindow.addDockWidget(Qt.TopDockWidgetArea, self.dockWidget_design_view)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.dockWidget_design_view)
+        self.dockWidget_item = QDockWidget(MainWindow)
+        self.dockWidget_item.setObjectName(u"dockWidget_item")
+        self.dockWidget_item.setMinimumSize(QSize(127, 101))
+        self.dockWidgetContents_3 = QWidget()
+        self.dockWidgetContents_3.setObjectName(u"dockWidgetContents_3")
+        self.verticalLayout = QVBoxLayout(self.dockWidgetContents_3)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setObjectName(u"verticalLayout")
+        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
+        self.tabWidget_item_properties = QTabWidget(self.dockWidgetContents_3)
+        self.tabWidget_item_properties.setObjectName(u"tabWidget_item_properties")
+        self.tabWidget_item_properties.setStyleSheet(u"")
+        self.tab_no_selection = QWidget()
+        self.tab_no_selection.setObjectName(u"tab_no_selection")
+        self.verticalLayout_14 = QVBoxLayout(self.tab_no_selection)
+        self.verticalLayout_14.setObjectName(u"verticalLayout_14")
+        self.verticalLayout_14.setContentsMargins(6, 6, 6, 6)
+        self.label_no_selection = QLabel(self.tab_no_selection)
+        self.label_no_selection.setObjectName(u"label_no_selection")
+        self.label_no_selection.setAlignment(Qt.AlignmentFlag.AlignCenter)
+        self.label_no_selection.setWordWrap(True)
+
+        self.verticalLayout_14.addWidget(self.label_no_selection)
+
+        self.tabWidget_item_properties.addTab(self.tab_no_selection, "")
+
+        self.verticalLayout.addWidget(self.tabWidget_item_properties)
+
+        self.dockWidget_item.setWidget(self.dockWidgetContents_3)
+        MainWindow.addDockWidget(Qt.DockWidgetArea.TopDockWidgetArea, self.dockWidget_item)
         QWidget.setTabOrder(self.graphicsView, self.textBrowser_eventlog)
         QWidget.setTabOrder(self.textBrowser_eventlog, self.listView_console_executions)
         QWidget.setTabOrder(self.listView_console_executions, self.toolButton_executions)
@@ -621,11 +621,11 @@ def retranslateUi(self, MainWindow):
         self.menuServer.setTitle(QCoreApplication.translate("MainWindow", u"&Server", None))
         self.dockWidget_eventlog.setWindowTitle(QCoreApplication.translate("MainWindow", u"Event Log", None))
         self.toolButton_executions.setText(QCoreApplication.translate("MainWindow", u"...", None))
-        self.dockWidget_item.setWindowTitle(QCoreApplication.translate("MainWindow", u"Properties", None))
-        self.label_no_selection.setText(QCoreApplication.translate("MainWindow", u"Select an item to view its properties", None))
-        self.tabWidget_item_properties.setTabText(self.tabWidget_item_properties.indexOf(self.tab_no_selection), QCoreApplication.translate("MainWindow", u"No Selection", None))
         self.dockWidget_console.setWindowTitle(QCoreApplication.translate("MainWindow", u"Console", None))
         self.label_no_console.setText(QCoreApplication.translate("MainWindow", u"Select an executing item to see its console", None))
         self.dockWidget_design_view.setWindowTitle(QCoreApplication.translate("MainWindow", u"Design View", None))
+        self.dockWidget_item.setWindowTitle(QCoreApplication.translate("MainWindow", u"Properties", None))
+        self.label_no_selection.setText(QCoreApplication.translate("MainWindow", u"Select an item to view its properties", None))
+        self.tabWidget_item_properties.setTabText(self.tabWidget_item_properties.indexOf(self.tab_no_selection), QCoreApplication.translate("MainWindow", u"No Selection", None))
     # retranslateUi
 
diff --git a/spinetoolbox/ui/mainwindow.ui b/spinetoolbox/ui/mainwindow.ui
index 873737722..6d14f4849 100644
--- a/spinetoolbox/ui/mainwindow.ui
+++ b/spinetoolbox/ui/mainwindow.ui
@@ -19,8 +19,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>1006</width>
-    <height>672</height>
+    <width>820</width>
+    <height>615</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -35,8 +35,8 @@
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>1006</width>
-     <height>22</height>
+     <width>820</width>
+     <height>33</height>
     </rect>
    </property>
    <property name="nativeMenuBar">
@@ -145,12 +145,12 @@
    </property>
    <property name="minimumSize">
     <size>
-     <width>174</width>
-     <height>184</height>
+     <width>82</width>
+     <height>104</height>
     </size>
    </property>
    <property name="features">
-    <set>QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
+    <set>QDockWidget::DockWidgetFeature::DockWidgetClosable|QDockWidget::DockWidgetFeature::DockWidgetFloatable|QDockWidget::DockWidgetFeature::DockWidgetMovable</set>
    </property>
    <property name="windowTitle">
     <string>Event Log</string>
@@ -195,7 +195,7 @@
           </sizepolicy>
          </property>
          <property name="contextMenuPolicy">
-          <enum>Qt::DefaultContextMenu</enum>
+          <enum>Qt::ContextMenuPolicy::DefaultContextMenu</enum>
          </property>
          <property name="openLinks">
           <bool>false</bool>
@@ -212,10 +212,10 @@
            <normaloff>:/icons/check-circle.svg</normaloff>:/icons/check-circle.svg</iconset>
          </property>
          <property name="popupMode">
-          <enum>QToolButton::InstantPopup</enum>
+          <enum>QToolButton::ToolButtonPopupMode::InstantPopup</enum>
          </property>
          <property name="toolButtonStyle">
-          <enum>Qt::ToolButtonTextBesideIcon</enum>
+          <enum>Qt::ToolButtonStyle::ToolButtonTextBesideIcon</enum>
          </property>
         </widget>
        </item>
@@ -224,81 +224,6 @@
     </layout>
    </widget>
   </widget>
-  <widget class="QDockWidget" name="dockWidget_item">
-   <property name="minimumSize">
-    <size>
-     <width>356</width>
-     <height>293</height>
-    </size>
-   </property>
-   <property name="windowTitle">
-    <string>Properties</string>
-   </property>
-   <attribute name="dockWidgetArea">
-    <number>4</number>
-   </attribute>
-   <widget class="QWidget" name="dockWidgetContents_3">
-    <layout class="QVBoxLayout" name="verticalLayout">
-     <property name="spacing">
-      <number>6</number>
-     </property>
-     <property name="leftMargin">
-      <number>0</number>
-     </property>
-     <property name="topMargin">
-      <number>0</number>
-     </property>
-     <property name="rightMargin">
-      <number>0</number>
-     </property>
-     <property name="bottomMargin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QTabWidget" name="tabWidget_item_properties">
-       <property name="styleSheet">
-        <string notr="true"/>
-       </property>
-       <property name="currentIndex">
-        <number>0</number>
-       </property>
-       <widget class="QWidget" name="tab_no_selection">
-        <attribute name="title">
-         <string>No Selection</string>
-        </attribute>
-        <layout class="QVBoxLayout" name="verticalLayout_14">
-         <property name="leftMargin">
-          <number>6</number>
-         </property>
-         <property name="topMargin">
-          <number>6</number>
-         </property>
-         <property name="rightMargin">
-          <number>6</number>
-         </property>
-         <property name="bottomMargin">
-          <number>6</number>
-         </property>
-         <item>
-          <widget class="QLabel" name="label_no_selection">
-           <property name="text">
-            <string>Select an item to view its properties</string>
-           </property>
-           <property name="alignment">
-            <set>Qt::AlignCenter</set>
-           </property>
-           <property name="wordWrap">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </widget>
-     </item>
-    </layout>
-   </widget>
-  </widget>
   <widget class="QDockWidget" name="dockWidget_console">
    <property name="floating">
     <bool>false</bool>
@@ -329,7 +254,7 @@
      <item>
       <widget class="QSplitter" name="splitter_console">
        <property name="orientation">
-        <enum>Qt::Vertical</enum>
+        <enum>Qt::Orientation::Vertical</enum>
        </property>
        <property name="childrenCollapsible">
         <bool>false</bool>
@@ -349,13 +274,13 @@
        </widget>
        <widget class="QLabel" name="label_no_console">
         <property name="contextMenuPolicy">
-         <enum>Qt::DefaultContextMenu</enum>
+         <enum>Qt::ContextMenuPolicy::DefaultContextMenu</enum>
         </property>
         <property name="text">
          <string>Select an executing item to see its console</string>
         </property>
         <property name="alignment">
-         <set>Qt::AlignCenter</set>
+         <set>Qt::AlignmentFlag::AlignCenter</set>
         </property>
         <property name="wordWrap">
          <bool>true</bool>
@@ -368,7 +293,7 @@
   </widget>
   <widget class="QDockWidget" name="dockWidget_design_view">
    <property name="features">
-    <set>QDockWidget::DockWidgetMovable</set>
+    <set>QDockWidget::DockWidgetFeature::DockWidgetMovable</set>
    </property>
    <property name="windowTitle">
     <string>Design View</string>
@@ -396,26 +321,101 @@
      <item>
       <widget class="DesignQGraphicsView" name="graphicsView">
        <property name="frameShape">
-        <enum>QFrame::NoFrame</enum>
+        <enum>QFrame::Shape::NoFrame</enum>
        </property>
        <property name="frameShadow">
-        <enum>QFrame::Raised</enum>
+        <enum>QFrame::Shadow::Raised</enum>
        </property>
        <property name="renderHints">
-        <set>QPainter::Antialiasing|QPainter::TextAntialiasing</set>
+        <set>QPainter::RenderHint::Antialiasing|QPainter::RenderHint::TextAntialiasing</set>
        </property>
        <property name="dragMode">
-        <enum>QGraphicsView::RubberBandDrag</enum>
+        <enum>QGraphicsView::DragMode::RubberBandDrag</enum>
        </property>
        <property name="resizeAnchor">
-        <enum>QGraphicsView::AnchorUnderMouse</enum>
+        <enum>QGraphicsView::ViewportAnchor::AnchorUnderMouse</enum>
        </property>
        <property name="viewportUpdateMode">
-        <enum>QGraphicsView::FullViewportUpdate</enum>
+        <enum>QGraphicsView::ViewportUpdateMode::FullViewportUpdate</enum>
        </property>
        <property name="rubberBandSelectionMode">
-        <enum>Qt::ContainsItemBoundingRect</enum>
+        <enum>Qt::ItemSelectionMode::ContainsItemBoundingRect</enum>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+  <widget class="QDockWidget" name="dockWidget_item">
+   <property name="minimumSize">
+    <size>
+     <width>127</width>
+     <height>101</height>
+    </size>
+   </property>
+   <property name="windowTitle">
+    <string>Properties</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>4</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents_3">
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <property name="spacing">
+      <number>6</number>
+     </property>
+     <property name="leftMargin">
+      <number>0</number>
+     </property>
+     <property name="topMargin">
+      <number>0</number>
+     </property>
+     <property name="rightMargin">
+      <number>0</number>
+     </property>
+     <property name="bottomMargin">
+      <number>0</number>
+     </property>
+     <item>
+      <widget class="QTabWidget" name="tabWidget_item_properties">
+       <property name="styleSheet">
+        <string notr="true"/>
        </property>
+       <property name="currentIndex">
+        <number>0</number>
+       </property>
+       <widget class="QWidget" name="tab_no_selection">
+        <attribute name="title">
+         <string>No Selection</string>
+        </attribute>
+        <layout class="QVBoxLayout" name="verticalLayout_14">
+         <property name="leftMargin">
+          <number>6</number>
+         </property>
+         <property name="topMargin">
+          <number>6</number>
+         </property>
+         <property name="rightMargin">
+          <number>6</number>
+         </property>
+         <property name="bottomMargin">
+          <number>6</number>
+         </property>
+         <item>
+          <widget class="QLabel" name="label_no_selection">
+           <property name="text">
+            <string>Select an item to view its properties</string>
+           </property>
+           <property name="alignment">
+            <set>Qt::AlignmentFlag::AlignCenter</set>
+           </property>
+           <property name="wordWrap">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
       </widget>
      </item>
     </layout>
@@ -887,16 +887,16 @@
   </action>
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>CustomQTextBrowser</class>
-   <extends>QTextBrowser</extends>
-   <header>spinetoolbox/widgets/custom_qtextbrowser.h</header>
-  </customwidget>
   <customwidget>
    <class>DesignQGraphicsView</class>
    <extends>QGraphicsView</extends>
    <header>spinetoolbox/widgets/custom_qgraphicsviews.h</header>
   </customwidget>
+  <customwidget>
+   <class>CustomQTextBrowser</class>
+   <extends>QTextBrowser</extends>
+   <header>spinetoolbox/widgets/custom_qtextbrowser.h</header>
+  </customwidget>
  </customwidgets>
  <tabstops>
   <tabstop>graphicsView</tabstop>
diff --git a/spinetoolbox/ui/map_editor.py b/spinetoolbox/ui/map_editor.py
index abcce8e2e..4e72d5fc9 100644
--- a/spinetoolbox/ui/map_editor.py
+++ b/spinetoolbox/ui/map_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'map_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/mini_kernel_editor_dialog.py b/spinetoolbox/ui/mini_kernel_editor_dialog.py
index f8a597816..2736c5f2d 100644
--- a/spinetoolbox/ui/mini_kernel_editor_dialog.py
+++ b/spinetoolbox/ui/mini_kernel_editor_dialog.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'mini_kernel_editor_dialog.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -48,13 +48,13 @@ def setupUi(self, Dialog):
         self.verticalLayout = QVBoxLayout(self.widget)
         self.verticalLayout.setObjectName(u"verticalLayout")
         self.verticalLayout.setContentsMargins(0, 0, 0, 0)
-        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
 
         self.verticalLayout.addItem(self.verticalSpacer)
 
         self.label_message = QLabel(self.widget)
         self.label_message.setObjectName(u"label_message")
-        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
+        sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(2)
         sizePolicy.setHeightForWidth(self.label_message.sizePolicy().hasHeightForWidth())
@@ -68,14 +68,14 @@ def setupUi(self, Dialog):
 
         self.verticalLayout.addWidget(self.label_message)
 
-        self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
 
         self.verticalLayout.addItem(self.verticalSpacer_2)
 
         self.splitter.addWidget(self.widget)
         self.textBrowser_process = QTextBrowser(self.splitter)
         self.textBrowser_process.setObjectName(u"textBrowser_process")
-        sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+        sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
         sizePolicy1.setHorizontalStretch(0)
         sizePolicy1.setVerticalStretch(1)
         sizePolicy1.setHeightForWidth(self.textBrowser_process.sizePolicy().hasHeightForWidth())
@@ -86,7 +86,7 @@ def setupUi(self, Dialog):
 
         self.stackedWidget = QStackedWidget(Dialog)
         self.stackedWidget.setObjectName(u"stackedWidget")
-        sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
+        sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
         sizePolicy2.setHorizontalStretch(0)
         sizePolicy2.setVerticalStretch(0)
         sizePolicy2.setHeightForWidth(self.stackedWidget.sizePolicy().hasHeightForWidth())
@@ -103,7 +103,7 @@ def setupUi(self, Dialog):
         self.lineEdit_python_interpreter = QLineEdit(self.stackedWidgetPage1)
         self.lineEdit_python_interpreter.setObjectName(u"lineEdit_python_interpreter")
         self.lineEdit_python_interpreter.setEnabled(True)
-        self.lineEdit_python_interpreter.setCursor(QCursor(Qt.IBeamCursor))
+        self.lineEdit_python_interpreter.setCursor(QCursor(Qt.CursorShape.IBeamCursor))
         self.lineEdit_python_interpreter.setFocusPolicy(Qt.StrongFocus)
         self.lineEdit_python_interpreter.setReadOnly(True)
         self.lineEdit_python_interpreter.setClearButtonEnabled(False)
@@ -113,7 +113,7 @@ def setupUi(self, Dialog):
         self.stackedWidget.addWidget(self.stackedWidgetPage1)
         self.stackedWidgetPage2 = QWidget()
         self.stackedWidgetPage2.setObjectName(u"stackedWidgetPage2")
-        sizePolicy3 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
+        sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
         sizePolicy3.setHorizontalStretch(0)
         sizePolicy3.setVerticalStretch(0)
         sizePolicy3.setHeightForWidth(self.stackedWidgetPage2.sizePolicy().hasHeightForWidth())
diff --git a/spinetoolbox/ui/open_project_dialog.py b/spinetoolbox/ui/open_project_dialog.py
index 68ca8a800..9364d7e9d 100644
--- a/spinetoolbox/ui/open_project_dialog.py
+++ b/spinetoolbox/ui/open_project_dialog.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'open_project_dialog.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -46,7 +46,7 @@ def setupUi(self, Dialog):
         self.toolButton_root = QToolButton(Dialog)
         self.toolButton_root.setObjectName(u"toolButton_root")
         icon = QIcon()
-        icon.addFile(u":/icons/slash.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon.addFile(u":/icons/slash.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.toolButton_root.setIcon(icon)
 
         self.horizontalLayout.addWidget(self.toolButton_root)
@@ -54,7 +54,7 @@ def setupUi(self, Dialog):
         self.toolButton_home = QToolButton(Dialog)
         self.toolButton_home.setObjectName(u"toolButton_home")
         icon1 = QIcon()
-        icon1.addFile(u":/icons/home.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon1.addFile(u":/icons/home.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.toolButton_home.setIcon(icon1)
 
         self.horizontalLayout.addWidget(self.toolButton_home)
@@ -62,7 +62,7 @@ def setupUi(self, Dialog):
         self.toolButton_documents = QToolButton(Dialog)
         self.toolButton_documents.setObjectName(u"toolButton_documents")
         icon2 = QIcon()
-        icon2.addFile(u":/icons/book.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon2.addFile(u":/icons/book.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.toolButton_documents.setIcon(icon2)
 
         self.horizontalLayout.addWidget(self.toolButton_documents)
@@ -70,12 +70,12 @@ def setupUi(self, Dialog):
         self.toolButton_desktop = QToolButton(Dialog)
         self.toolButton_desktop.setObjectName(u"toolButton_desktop")
         icon3 = QIcon()
-        icon3.addFile(u":/icons/desktop.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon3.addFile(u":/icons/desktop.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.toolButton_desktop.setIcon(icon3)
 
         self.horizontalLayout.addWidget(self.toolButton_desktop)
 
-        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
 
         self.horizontalLayout.addItem(self.horizontalSpacer)
 
diff --git a/spinetoolbox/ui/parameter_value_editor.py b/spinetoolbox/ui/parameter_value_editor.py
index a4dd2c125..7fc0b7e84 100644
--- a/spinetoolbox/ui/parameter_value_editor.py
+++ b/spinetoolbox/ui/parameter_value_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'parameter_value_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -54,7 +54,7 @@ def setupUi(self, ParameterValueEditor):
 
         self.parameter_type_selector_layout.addWidget(self.parameter_type_selector)
 
-        self.parameter_type_selector_spacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        self.parameter_type_selector_spacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
 
         self.parameter_type_selector_layout.addItem(self.parameter_type_selector_spacer)
 
diff --git a/spinetoolbox/ui/plain_parameter_value_editor.py b/spinetoolbox/ui/plain_parameter_value_editor.py
index f5df143c0..bd8cc2470 100644
--- a/spinetoolbox/ui/plain_parameter_value_editor.py
+++ b/spinetoolbox/ui/plain_parameter_value_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'plain_parameter_value_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -83,7 +83,7 @@ def setupUi(self, PlainParameterValueEditor):
 
         self.verticalLayout.addWidget(self.groupBox)
 
-        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
 
         self.verticalLayout.addItem(self.verticalSpacer)
 
diff --git a/spinetoolbox/ui/select_database_items.py b/spinetoolbox/ui/select_database_items.py
index 46d90d1c9..6134702e9 100644
--- a/spinetoolbox/ui/select_database_items.py
+++ b/spinetoolbox/ui/select_database_items.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'select_database_items.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.6.3
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/select_database_items_dialog.py b/spinetoolbox/ui/select_database_items_dialog.py
index 39eee7a9a..59ae1e6bb 100644
--- a/spinetoolbox/ui/select_database_items_dialog.py
+++ b/spinetoolbox/ui/select_database_items_dialog.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'select_database_items_dialog.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -37,7 +37,7 @@ def setupUi(self, Dialog):
         Dialog.resize(400, 307)
         self.root_layout = QVBoxLayout(Dialog)
         self.root_layout.setObjectName(u"root_layout")
-        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
 
         self.root_layout.addItem(self.verticalSpacer)
 
diff --git a/spinetoolbox/ui/settings.py b/spinetoolbox/ui/settings.py
index 1cc454478..12192ba39 100644
--- a/spinetoolbox/ui/settings.py
+++ b/spinetoolbox/ui/settings.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'settings.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.6.3
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -63,24 +63,24 @@ def setupUi(self, SettingsForm):
         self.splitter.setChildrenCollapsible(False)
         self.listWidget = QListWidget(self.splitter)
         icon = QIcon()
-        icon.addFile(u":/icons/sliders-h.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon.addFile(u":/icons/sliders-h.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         __qlistwidgetitem = QListWidgetItem(self.listWidget)
         __qlistwidgetitem.setIcon(icon);
         __qlistwidgetitem.setFlags(Qt.ItemIsSelectable|Qt.ItemIsUserCheckable|Qt.ItemIsEnabled);
         icon1 = QIcon()
-        icon1.addFile(u":/icons/project_item_icons/hammer.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon1.addFile(u":/icons/project_item_icons/hammer.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         __qlistwidgetitem1 = QListWidgetItem(self.listWidget)
         __qlistwidgetitem1.setIcon(icon1);
         icon2 = QIcon()
-        icon2.addFile(u":/icons/database.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon2.addFile(u":/icons/database.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         __qlistwidgetitem2 = QListWidgetItem(self.listWidget)
         __qlistwidgetitem2.setIcon(icon2);
         icon3 = QIcon()
-        icon3.addFile(u":/icons/wrench.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon3.addFile(u":/icons/wrench.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         __qlistwidgetitem3 = QListWidgetItem(self.listWidget)
         __qlistwidgetitem3.setIcon(icon3);
         icon4 = QIcon()
-        icon4.addFile(u":/icons/tractor.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon4.addFile(u":/icons/tractor.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         __qlistwidgetitem4 = QListWidgetItem(self.listWidget)
         __qlistwidgetitem4.setIcon(icon4);
         self.listWidget.setObjectName(u"listWidget")
@@ -91,14 +91,14 @@ def setupUi(self, SettingsForm):
         self.listWidget.setSizePolicy(sizePolicy1)
         self.listWidget.setSizeAdjustPolicy(QAbstractScrollArea.SizeAdjustPolicy.AdjustIgnored)
         self.listWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
-        self.listWidget.setProperty("showDropIndicator", True)
+        self.listWidget.setProperty(u"showDropIndicator", True)
         self.listWidget.setDragDropMode(QAbstractItemView.DragDropMode.NoDragDrop)
         self.listWidget.setDefaultDropAction(Qt.DropAction.CopyAction)
         self.listWidget.setAlternatingRowColors(False)
         self.listWidget.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
         self.listWidget.setMovement(QListView.Movement.Static)
         self.listWidget.setFlow(QListView.Flow.TopToBottom)
-        self.listWidget.setProperty("isWrapping", False)
+        self.listWidget.setProperty(u"isWrapping", False)
         self.listWidget.setResizeMode(QListView.ResizeMode.Fixed)
         self.listWidget.setLayoutMode(QListView.LayoutMode.SinglePass)
         self.listWidget.setSpacing(0)
@@ -153,7 +153,7 @@ def setupUi(self, SettingsForm):
         sizePolicy4.setHeightForWidth(self.toolButton_browse_work.sizePolicy().hasHeightForWidth())
         self.toolButton_browse_work.setSizePolicy(sizePolicy4)
         icon5 = QIcon()
-        icon5.addFile(u":/icons/menu_icons/folder-open-solid.svg", QSize(), QIcon.Normal, QIcon.Off)
+        icon5.addFile(u":/icons/menu_icons/folder-open-solid.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
         self.toolButton_browse_work.setIcon(icon5)
 
         self.horizontalLayout_6.addWidget(self.toolButton_browse_work)
@@ -406,8 +406,8 @@ def setupUi(self, SettingsForm):
 
         self.line_3 = QFrame(self.groupBox_julia)
         self.line_3.setObjectName(u"line_3")
-        self.line_3.setFrameShape(QFrame.VLine)
-        self.line_3.setFrameShadow(QFrame.Sunken)
+        self.line_3.setFrameShape(QFrame.Shape.VLine)
+        self.line_3.setFrameShadow(QFrame.Shadow.Sunken)
 
         self.horizontalLayout_14.addWidget(self.line_3)
 
@@ -489,8 +489,8 @@ def setupUi(self, SettingsForm):
 
         self.line = QFrame(self.groupBox_julia)
         self.line.setObjectName(u"line")
-        self.line.setFrameShape(QFrame.HLine)
-        self.line.setFrameShadow(QFrame.Sunken)
+        self.line.setFrameShape(QFrame.Shape.HLine)
+        self.line.setFrameShadow(QFrame.Shadow.Sunken)
 
         self.verticalLayout_10.addWidget(self.line)
 
@@ -543,8 +543,8 @@ def setupUi(self, SettingsForm):
 
         self.line_2 = QFrame(self.groupBox_python)
         self.line_2.setObjectName(u"line_2")
-        self.line_2.setFrameShape(QFrame.VLine)
-        self.line_2.setFrameShadow(QFrame.Sunken)
+        self.line_2.setFrameShape(QFrame.Shape.VLine)
+        self.line_2.setFrameShadow(QFrame.Shadow.Sunken)
 
         self.horizontalLayout_5.addWidget(self.line_2)
 
@@ -909,7 +909,7 @@ def setupUi(self, SettingsForm):
         self.horizontalLayout_18.setObjectName(u"horizontalLayout_18")
         self.lineEdit_secfolder = QLineEdit(self.groupBox_4)
         self.lineEdit_secfolder.setObjectName(u"lineEdit_secfolder")
-        self.lineEdit_secfolder.setCursor(QCursor(Qt.ArrowCursor))
+        self.lineEdit_secfolder.setCursor(QCursor(Qt.CursorShape.ArrowCursor))
         self.lineEdit_secfolder.setReadOnly(False)
         self.lineEdit_secfolder.setClearButtonEnabled(True)
 
@@ -949,7 +949,7 @@ def setupUi(self, SettingsForm):
         self.spinBox_port.setFrame(True)
         self.spinBox_port.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.UpDownArrows)
         self.spinBox_port.setAccelerated(True)
-        self.spinBox_port.setProperty("showGroupSeparator", False)
+        self.spinBox_port.setProperty(u"showGroupSeparator", False)
         self.spinBox_port.setMinimum(49152)
         self.spinBox_port.setMaximum(65535)
 
diff --git a/spinetoolbox/ui/time_pattern_editor.py b/spinetoolbox/ui/time_pattern_editor.py
index 3a5c69ff4..32853f31f 100644
--- a/spinetoolbox/ui/time_pattern_editor.py
+++ b/spinetoolbox/ui/time_pattern_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'time_pattern_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/time_series_fixed_resolution_editor.py b/spinetoolbox/ui/time_series_fixed_resolution_editor.py
index 771aecbf7..4261c1f1b 100644
--- a/spinetoolbox/ui/time_series_fixed_resolution_editor.py
+++ b/spinetoolbox/ui/time_series_fixed_resolution_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'time_series_fixed_resolution_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/time_series_variable_resolution_editor.py b/spinetoolbox/ui/time_series_variable_resolution_editor.py
index 0ce459945..997657b11 100644
--- a/spinetoolbox/ui/time_series_variable_resolution_editor.py
+++ b/spinetoolbox/ui/time_series_variable_resolution_editor.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'time_series_variable_resolution_editor.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.7.0
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
diff --git a/spinetoolbox/ui/tool_configuration_assistant.py b/spinetoolbox/ui/tool_configuration_assistant.py
index 66757d24c..5f605cb99 100644
--- a/spinetoolbox/ui/tool_configuration_assistant.py
+++ b/spinetoolbox/ui/tool_configuration_assistant.py
@@ -14,7 +14,7 @@
 ################################################################################
 ## Form generated from reading UI file 'tool_configuration_assistant.ui'
 ##
-## Created by: Qt User Interface Compiler version 6.5.2
+## Created by: Qt User Interface Compiler version 6.7.3
 ##
 ## WARNING! All changes made in this file will be lost when recompiling UI file!
 ################################################################################
@@ -35,7 +35,7 @@ def setupUi(self, PackagesForm):
             PackagesForm.setObjectName(u"PackagesForm")
         PackagesForm.setWindowModality(Qt.ApplicationModal)
         PackagesForm.resize(685, 331)
-        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
+        sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
         sizePolicy.setHorizontalStretch(0)
         sizePolicy.setVerticalStretch(0)
         sizePolicy.setHeightForWidth(PackagesForm.sizePolicy().hasHeightForWidth())
@@ -63,7 +63,7 @@ def setupUi(self, PackagesForm):
         self.verticalLayout_2.setObjectName(u"verticalLayout_2")
         self.groupBox_general = QGroupBox(self.scrollAreaWidgetContents)
         self.groupBox_general.setObjectName(u"groupBox_general")
-        sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+        sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
         sizePolicy1.setHorizontalStretch(0)
         sizePolicy1.setVerticalStretch(0)
         sizePolicy1.setHeightForWidth(self.groupBox_general.sizePolicy().hasHeightForWidth())
diff --git a/spinetoolbox/ui_main.py b/spinetoolbox/ui_main.py
index 09fc15329..93124c9c6 100644
--- a/spinetoolbox/ui_main.py
+++ b/spinetoolbox/ui_main.py
@@ -211,10 +211,8 @@ def __init__(self):
             LoggingConnection: LinkPropertiesWidget(self, base_color=LINK_COLOR),
             LoggingJump: JumpPropertiesWidget(self, base_color=JUMP_COLOR),
         }
-        link_tab = self._make_properties_tab(self.link_properties_widgets[LoggingConnection])
-        jump_tab = self._make_properties_tab(self.link_properties_widgets[LoggingJump])
-        self.ui.tabWidget_item_properties.addTab(link_tab, "Link properties")
-        self.ui.tabWidget_item_properties.addTab(jump_tab, "Loop properties")
+        self.ui.tabWidget_item_properties.addTab(self.link_properties_widgets[LoggingConnection], "Link properties")
+        self.ui.tabWidget_item_properties.addTab(self.link_properties_widgets[LoggingJump], "Loop properties")
         self._plugin_manager = PluginManager(self)
         self._plugin_manager.load_installed_plugins()
         self.refresh_toolbars()
@@ -809,22 +807,8 @@ def init_specification_model(self):
     def make_item_properties_uis(self):
         for item_type, factory in self.item_factories.items():
             properties_ui = self._item_properties_uis[item_type] = factory.make_properties_widget(self)
-            color = factory.icon_color()
-            icon = factory.icon()
-            properties_ui.set_color_and_icon(color, icon)
-            scroll_area = QScrollArea(self)
-            scroll_area.setWidget(properties_ui)
-            scroll_area.setWidgetResizable(True)
-            tab = self._make_properties_tab(scroll_area)
-            self.ui.tabWidget_item_properties.addTab(tab, item_type)
-
-    def _make_properties_tab(self, properties_ui):
-        tab = QWidget(self)
-        layout = QVBoxLayout(tab)
-        layout.setContentsMargins(0, 0, 0, 0)
-        layout.setSpacing(0)
-        layout.addWidget(properties_ui)
-        return tab
+            properties_ui.set_color_and_icon(factory.icon_color(), factory.icon())
+            self.ui.tabWidget_item_properties.addTab(properties_ui, item_type)
 
     def add_project_items(self, items_dict):
         """Pushes an AddProjectItemsCommand to the undo stack.


Test patch:
diff --git a/tests/widgets/test_AddProjectItemWidget.py b/tests/widgets/test_AddProjectItemWidget.py
index 782dc14f5..4894d7356 100644
--- a/tests/widgets/test_AddProjectItemWidget.py
+++ b/tests/widgets/test_AddProjectItemWidget.py
@@ -19,6 +19,7 @@
 from spinetoolbox.project_item.project_item import ProjectItem
 from spinetoolbox.project_item.project_item_factory import ProjectItemFactory
 from spinetoolbox.widgets.add_project_item_widget import AddProjectItemWidget
+from spinetoolbox.widgets.properties_widget import PropertiesWidgetBase
 from tests.mock_helpers import TestCaseWithQApplication, clean_up_toolbox, create_toolboxui_with_project
 
 
@@ -125,7 +126,7 @@ def make_properties_widget(toolbox):
         Returns:
             QWidget: item's properties tab widget
         """
-        return MagicMock()
+        return PropertiesWidgetBase(toolbox)
 
     @staticmethod
     def make_specification_menu(parent, index):