Needed to add a Filter possibility to facilitate that
Created a Simple UserString class which can be used as:
```py
sql_filter = SQLFilter(f"SELECT {{}} FROM table_name WHERE id = ?")
cursor.execute(sql_filter) # Will execute: SELECT * FROM table_name WHERE id = ?
cursor.execute(sql_filter["id", "name"]) # Will execute: SELECT id, name FROM table_name WHERE id = ?
```
Contributes to CURA-6096
This was not a true limitation of the mathematics. In fact, we had other flow settings (for initial layer) that already went to 0.0001%.
Discovered while working on a bug report from Reddit.
The icon is called People in the UX team's icon system, and we need to stay aligned to that.
The high detail variant has an extra person in it.
Contributes to issue CURA-8530.
This greatly reduced the amount of duplicate code in the DataBaseHandlers
Not sure how secure this is SQL injections. Need to check that and maybe
put in some guards. Using double underscores for now and only provide a
getter. But then again why bother with an SQL injection as
you can just as easily modify the Python code, and we still have the old
Containers to fallback to if the Database gets corrupted.
Contributes to CURA-6096
Instead of relying on the filename emitted when the workspace is changed. This is done so the user can also change the project name when saving to an output device, such as a local file, or the digital library, that supports changeing the (file)name.
CURA-8358
The new links also have campaign identifiers. Because apparently the website doesn't read the HTTP metadata information saying that it redirected from Cura, and it adds information which button it came from.
The old links will remain working via redirects, for older Cura versions.
Contributes to issue CURA-8528.
The PrintWindow still used an old style combobox.
This resulted in a Mac user not being able to specify
which clustered printer he wanted to send a slice to.
Using the new QtQuick.Controls and specifically setting
the currentIndex fixed it for Mac.
This way we don't have to use the html in the setting item and we
dont have to re-do the whole hover logic in the search text field.
THis also makes the search magnifier themed, so it looks a lot better
in the dark theme
CURA-8498
The icon existed only in the UM3NetworkPrinting plugin but it was also used in the ConfigurationItem.qml in Cura, so it had to be moved to the Cura icons.
CURA-8520
Although the ExpandablePopup already sets the anchors of the `headerItem` to account for the arrow icon on the right side, the ConfigurationMenu's extruder row was ignoring it, thus making the elided text of the last extruder to overlap with the arrow icon a bit.
This commit fixes that by explicitly accounting for the width of the arrow in the extruders row.
**Note:** if the Cura window gets resized way too much, the extruder icons will still overlap with the arrow, since there is no space to fit everything.
CURA-8496
Although the ExpandablePopup already sets the anchors of the `headerItem` to account for the arrow icon on the right side, the ConfigurationMenu's extruder row was ignoring it, thus making the elided text of the last extruder to overlap with the arrow icon a bit.
This commit fixes that by explicitly accounting for the width of the arrow in the extruders row.
**Note:** if the Cura window gets resized way too much, the extruder icons will still overlap with the arrow, since there is no space to fit everything.
CURA-8496