Split of getStringParts function

Spit into `getMainStringParts` and `getTailStringParts` so we can easily differentiate between the two in the front-end.

Cura-9773
This commit is contained in:
c.lamboo 2022-11-28 13:10:52 +01:00
parent 5ed572779d
commit 8e8437eab0
3 changed files with 40 additions and 8 deletions

View file

@ -16,16 +16,25 @@ class ActiveQuality:
layer_height: float = None # Layer height of quality in mm. For example 0.4 layer_height: float = None # Layer height of quality in mm. For example 0.4
is_experimental: bool = False # If the quality experimental. is_experimental: bool = False # If the quality experimental.
def getStringParts(self) -> List[str]: def getMainStringParts(self) -> List[str]:
string_parts = [] string_parts = []
if self.custom_profile is not None: if self.custom_profile is not None:
string_parts.append(self.custom_profile) string_parts.append(self.custom_profile)
if self.intent_category is not "default":
string_parts.append(f"{self.intent_name} - {self.profile}")
else: else:
string_parts.append(self.profile) string_parts.append(self.profile)
if self.intent_category is not "default":
string_parts.append(self.intent_name)
return string_parts
def getTailStringParts(self) -> List[str]:
string_parts = []
if self.custom_profile is not None:
string_parts.append(self.profile)
if self.intent_category is not "default":
string_parts.append(self.intent_name)
if self.layer_height: if self.layer_height:
string_parts.append(f"{self.layer_height}mm") string_parts.append(f"{self.layer_height}mm")
@ -35,3 +44,5 @@ class ActiveQuality:
return string_parts return string_parts
def getStringParts(self) -> List[str]:
return self.getMainStringParts() + self.getTailStringParts()

View file

@ -1636,18 +1636,28 @@ class MachineManager(QObject):
def activeQualityDisplayNameStringParts(self) -> List[str]: def activeQualityDisplayNameStringParts(self) -> List[str]:
return self.activeQualityDisplayNameMap.getStringParts() return self.activeQualityDisplayNameMap.getStringParts()
@pyqtProperty("QList<QString>", notify = activeQualityDisplayNameChanged)
def activeQualityDisplayNameMainStringParts(self) -> List[str]:
return self.activeQualityDisplayNameMap.getMainStringParts()
@pyqtProperty("QList<QString>", notify = activeQualityDisplayNameChanged)
def activeQualityDisplayNameTailStringParts(self) -> List[str]:
return self.activeQualityDisplayNameMap.getTailStringParts()
@pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged) @pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged)
def activeQualityDisplayNameMap(self) -> ActiveQuality: def activeQualityDisplayNameMap(self) -> ActiveQuality:
global_stack = self._application.getGlobalContainerStack() global_stack = self._application.getGlobalContainerStack()
if global_stack is None: if global_stack is None:
return ActiveQuality() return ActiveQuality()
return ActiveQuality(profile = global_stack.quality.getName(), return ActiveQuality(
profile = global_stack.quality.getName(),
intent_category = self.activeIntentCategory, intent_category = self.activeIntentCategory,
intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()), intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()),
custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None, custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None,
layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None, layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None,
is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported) is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported
)
@pyqtSlot(str) @pyqtSlot(str)
def setIntentByCategory(self, intent_category: str) -> None: def setIntentByCategory(self, intent_category: str) -> None:

View file

@ -67,7 +67,7 @@ Item
UM.Label UM.Label
{ {
id: textLabel id: textLabel
text: Cura.MachineManager.activeQualityDisplayNameStringParts[0] text: Cura.MachineManager.activeQualityDisplayNameMainStringParts.join(" - ")
Layout.margins: 0 Layout.margins: 0
Layout.maximumWidth: Math.floor(parent.width * 0.7) // Always leave >= 30% for the rest of the row. Layout.maximumWidth: Math.floor(parent.width * 0.7) // Always leave >= 30% for the rest of the row.
height: contentHeight height: contentHeight
@ -77,7 +77,18 @@ Item
UM.Label UM.Label
{ {
text: ` - ${Cura.MachineManager.activeQualityDisplayNameStringParts.slice(1).join(" - ")}` text:
{
const string_parts = Cura.MachineManager.activeQualityDisplayNameTailStringParts;
if (string_parts.length === 0)
{
return "";
}
else
{
` - ${string_parts.join(" - ")}`
}
}
color: UM.Theme.getColor("text_detail") color: UM.Theme.getColor("text_detail")
Layout.margins: 0 Layout.margins: 0