diff --git a/src/engraving/libmscore/pedal.cpp b/src/engraving/libmscore/pedal.cpp
index c4a80b220b..71b61d38f6 100644
--- a/src/engraving/libmscore/pedal.cpp
+++ b/src/engraving/libmscore/pedal.cpp
@@ -55,6 +55,9 @@ static const ElementStyle pedalStyle {
{ Sid::pedalPosBelow, Pid::OFFSET },
};
+const QString Pedal::PEDAL_SYMBOL = "keyboardPedalPed";
+const QString Pedal::STAR_SYMBOL = "keyboardPedalUp";
+
PedalSegment::PedalSegment(Pedal* sp, System* parent)
: TextLineBaseSegment(ElementType::PEDAL_SEGMENT, sp, parent, ElementFlag::MOVABLE | ElementFlag::ON_STAFF)
{
diff --git a/src/engraving/libmscore/pedal.h b/src/engraving/libmscore/pedal.h
index 390ca8a7f7..6e942f691a 100644
--- a/src/engraving/libmscore/pedal.h
+++ b/src/engraving/libmscore/pedal.h
@@ -58,6 +58,9 @@ protected:
mu::PointF linePos(Grip, System**) const override;
public:
+ static const QString PEDAL_SYMBOL;
+ static const QString STAR_SYMBOL;
+
Pedal(EngravingItem* parent);
Pedal* clone() const override { return new Pedal(*this); }
diff --git a/src/engraving/rw/compat/read114.cpp b/src/engraving/rw/compat/read114.cpp
index 82e53fb010..f3070c3656 100644
--- a/src/engraving/rw/compat/read114.cpp
+++ b/src/engraving/rw/compat/read114.cpp
@@ -1392,7 +1392,7 @@ static void readPedal114(XmlReader& e, const ReadContext& ctx, Pedal* pedal)
e.unknown();
}
}
- pedal->setBeginText("keyboardPedalPed");
+ pedal->setBeginText(Pedal::PEDAL_SYMBOL);
}
//---------------------------------------------------------
diff --git a/src/importexport/musicxml/internal/musicxml/importmxmlpass2.cpp b/src/importexport/musicxml/internal/musicxml/importmxmlpass2.cpp
index 2b8cf42785..f3fccf7d62 100644
--- a/src/importexport/musicxml/internal/musicxml/importmxmlpass2.cpp
+++ b/src/importexport/musicxml/internal/musicxml/importmxmlpass2.cpp
@@ -3107,7 +3107,7 @@ void MusicXMLParserDirection::pedal(const QString& type, const int /* number */,
if (type == "start") {
auto p = spdesc._isStopped ? toPedal(spdesc._sp) : new Pedal(_score->dummy());
if (sign == "yes") {
- p->setBeginText("keyboardPedalPed");
+ p->setBeginText(Pedal::PEDAL_SYMBOL);
} else {
p->setBeginHookType(HookType::HOOK_90);
}
diff --git a/src/inspector/models/notation/lines/hairpinlinesettingsmodel.cpp b/src/inspector/models/notation/lines/hairpinlinesettingsmodel.cpp
index fdd3d22e8d..22e24e6da2 100644
--- a/src/inspector/models/notation/lines/hairpinlinesettingsmodel.cpp
+++ b/src/inspector/models/notation/lines/hairpinlinesettingsmodel.cpp
@@ -54,7 +54,7 @@ HairpinLineSettingsModel::HairpinLineSettingsModel(QObject* parent, IElementRepo
{ Ms::HookType::HOOK_90T, IconCode::LINE_WITH_T_LIKE_END_HOOK }
};
- setPossibleHookTypes(hookTypes);
+ setPossibleEndHookTypes(hookTypes);
createProperties();
}
diff --git a/src/inspector/models/notation/lines/letringsettingsmodel.cpp b/src/inspector/models/notation/lines/letringsettingsmodel.cpp
index 51c8f7de16..f1af72e8b1 100644
--- a/src/inspector/models/notation/lines/letringsettingsmodel.cpp
+++ b/src/inspector/models/notation/lines/letringsettingsmodel.cpp
@@ -37,7 +37,7 @@ void LetRingSettingsModel::createProperties()
{
LineSettingsModel::createProperties();
- beginingHookType()->setIsVisible(false);
+ startHookType()->setIsVisible(false);
endHookType()->setIsVisible(false);
beginingTextHorizontalOffset()->setIsVisible(false);
diff --git a/src/inspector/models/notation/lines/linesettingsmodel.cpp b/src/inspector/models/notation/lines/linesettingsmodel.cpp
index 57e0bfebae..deefa6c33e 100644
--- a/src/inspector/models/notation/lines/linesettingsmodel.cpp
+++ b/src/inspector/models/notation/lines/linesettingsmodel.cpp
@@ -36,11 +36,13 @@ LineSettingsModel::LineSettingsModel(QObject* parent, IElementRepositoryService*
void LineSettingsModel::createProperties()
{
- m_lineStyle = buildPropertyItem(Ms::Pid::LINE_STYLE, [this](const Ms::Pid pid, const QVariant& newValue) {
+ auto applyPropertyValueAndUpdateAvailability = [this](const Ms::Pid pid, const QVariant& newValue) {
onPropertyValueChanged(pid, newValue);
-
onUpdateLinePropertiesAvailability();
- });
+ };
+
+ m_lineStyle = buildPropertyItem(Ms::Pid::LINE_STYLE, applyPropertyValueAndUpdateAvailability);
+ m_isLineVisible = buildPropertyItem(Ms::Pid::LINE_VISIBLE, applyPropertyValueAndUpdateAvailability);
m_placement = buildPropertyItem(Ms::Pid::PLACEMENT);
@@ -48,10 +50,9 @@ void LineSettingsModel::createProperties()
m_dashLineLength = buildPropertyItem(Ms::Pid::DASH_LINE_LEN);
m_dashGapLength = buildPropertyItem(Ms::Pid::DASH_GAP_LEN);
- m_isLineVisible = buildPropertyItem(Ms::Pid::LINE_VISIBLE);
m_allowDiagonal = buildPropertyItem(Ms::Pid::DIAGONAL);
- m_beginingHookType = buildPropertyItem(Ms::Pid::BEGIN_HOOK_TYPE);
+ m_startHookType = buildPropertyItem(Ms::Pid::BEGIN_HOOK_TYPE);
m_endHookType = buildPropertyItem(Ms::Pid::END_HOOK_TYPE);
m_hookHeight = buildPropertyItem(Ms::Pid::END_HOOK_HEIGHT);
@@ -107,7 +108,7 @@ void LineSettingsModel::loadProperties()
loadPropertyItem(m_isLineVisible);
loadPropertyItem(m_allowDiagonal);
- loadPropertyItem(m_beginingHookType);
+ loadPropertyItem(m_startHookType);
loadPropertyItem(m_endHookType);
loadPropertyItem(m_hookHeight);
@@ -148,7 +149,7 @@ void LineSettingsModel::resetProperties()
m_dashGapLength,
m_isLineVisible,
m_allowDiagonal,
- m_beginingHookType,
+ m_startHookType,
m_endHookType,
m_hookHeight,
m_beginingText,
@@ -204,9 +205,9 @@ PropertyItem* LineSettingsModel::allowDiagonal() const
return m_allowDiagonal;
}
-PropertyItem* LineSettingsModel::beginingHookType() const
+PropertyItem* LineSettingsModel::startHookType() const
{
- return m_beginingHookType;
+ return m_startHookType;
}
PropertyItem* LineSettingsModel::endHookType() const
@@ -264,13 +265,23 @@ PropertyItem* LineSettingsModel::endTextVerticalOffset() const
return m_endTextVerticalOffset;
}
+QVariantList LineSettingsModel::possibleStartHookTypes() const
+{
+ return m_possibleStartHookTypes;
+}
+
QVariantList LineSettingsModel::possibleEndHookTypes() const
+{
+ return m_possibleEndHookTypes;
+}
+
+QVariantList LineSettingsModel::hookTypesToObjList(const QList& types) const
{
QVariantList result;
- for (HookTypeInfo typeInfo : m_possibleHookTypes) {
+ for (HookTypeInfo typeInfo : types) {
QVariantMap obj;
- obj["value"] = static_cast(typeInfo.type);
+ obj["value"] = typeInfo.type;
obj["iconCode"] = static_cast(typeInfo.icon);
result << obj;
@@ -283,7 +294,7 @@ void LineSettingsModel::onUpdateLinePropertiesAvailability()
{
bool isLineAvailable = m_isLineVisible->value().toBool();
- m_beginingHookType->setIsEnabled(isLineAvailable);
+ m_startHookType->setIsEnabled(isLineAvailable);
m_endHookType->setIsEnabled(isLineAvailable);
m_thickness->setIsEnabled(isLineAvailable);
m_hookHeight->setIsEnabled(isLineAvailable);
@@ -302,7 +313,12 @@ bool LineSettingsModel::isTextVisible(TextType type) const
return type != TextType::EndText;
}
-void LineSettingsModel::setPossibleHookTypes(const QList& types)
+void LineSettingsModel::setPossibleStartHookTypes(const QList& types)
{
- m_possibleHookTypes = types;
+ m_possibleStartHookTypes = hookTypesToObjList(types);
+}
+
+void LineSettingsModel::setPossibleEndHookTypes(const QList& types)
+{
+ m_possibleEndHookTypes = hookTypesToObjList(types);
}
diff --git a/src/inspector/models/notation/lines/linesettingsmodel.h b/src/inspector/models/notation/lines/linesettingsmodel.h
index bf8ec7fe8e..475253cd93 100644
--- a/src/inspector/models/notation/lines/linesettingsmodel.h
+++ b/src/inspector/models/notation/lines/linesettingsmodel.h
@@ -41,7 +41,7 @@ class LineSettingsModel : public AbstractInspectorModel
Q_PROPERTY(PropertyItem * isLineVisible READ isLineVisible CONSTANT)
Q_PROPERTY(PropertyItem * allowDiagonal READ allowDiagonal CONSTANT)
- Q_PROPERTY(PropertyItem * beginingHookType READ beginingHookType CONSTANT)
+ Q_PROPERTY(PropertyItem * startHookType READ startHookType CONSTANT)
Q_PROPERTY(PropertyItem * endHookType READ endHookType CONSTANT)
Q_PROPERTY(PropertyItem * hookHeight READ hookHeight CONSTANT)
@@ -71,7 +71,7 @@ public:
PropertyItem* isLineVisible() const;
PropertyItem* allowDiagonal() const;
- PropertyItem* beginingHookType() const;
+ PropertyItem* startHookType() const;
PropertyItem* endHookType() const;
PropertyItem* hookHeight() const;
@@ -87,6 +87,7 @@ public:
PropertyItem* endTextHorizontalOffset() const;
PropertyItem* endTextVerticalOffset() const;
+ Q_INVOKABLE QVariantList possibleStartHookTypes() const;
Q_INVOKABLE QVariantList possibleEndHookTypes() const;
protected:
@@ -97,7 +98,17 @@ protected:
};
struct HookTypeInfo {
- Ms::HookType type = Ms::HookType::NONE;
+ HookTypeInfo(Ms::HookType type, ui::IconCode::Code icon)
+ : type(static_cast(type)), icon(icon)
+ {
+ }
+
+ HookTypeInfo(int type, ui::IconCode::Code icon)
+ : type(type), icon(icon)
+ {
+ }
+
+ int type = 0;
ui::IconCode::Code icon = ui::IconCode::Code::NONE;
};
@@ -106,12 +117,14 @@ protected:
void resetProperties() override;
virtual void onUpdateLinePropertiesAvailability();
-
virtual bool isTextVisible(TextType type) const;
- void setPossibleHookTypes(const QList& types);
+ void setPossibleStartHookTypes(const QList& types);
+ void setPossibleEndHookTypes(const QList& types);
private:
+ QVariantList hookTypesToObjList(const QList& types) const;
+
PropertyItem* m_lineStyle = nullptr;
PropertyItem* m_placement = nullptr;
@@ -122,7 +135,7 @@ private:
PropertyItem* m_isLineVisible = nullptr;
PropertyItem* m_allowDiagonal = nullptr;
- PropertyItem* m_beginingHookType = nullptr;
+ PropertyItem* m_startHookType = nullptr;
PropertyItem* m_endHookType = nullptr;
PropertyItem* m_hookHeight = nullptr;
@@ -138,7 +151,8 @@ private:
PropertyItem* m_endTextHorizontalOffset = nullptr;
PropertyItem* m_endTextVerticalOffset = nullptr;
- QList m_possibleHookTypes;
+ QVariantList m_possibleStartHookTypes;
+ QVariantList m_possibleEndHookTypes;
};
}
diff --git a/src/inspector/models/notation/lines/ottavasettingsmodel.cpp b/src/inspector/models/notation/lines/ottavasettingsmodel.cpp
index 803d1130ce..e7f1671aff 100644
--- a/src/inspector/models/notation/lines/ottavasettingsmodel.cpp
+++ b/src/inspector/models/notation/lines/ottavasettingsmodel.cpp
@@ -42,7 +42,7 @@ OttavaSettingsModel::OttavaSettingsModel(QObject* parent, IElementRepositoryServ
{ Ms::HookType::HOOK_45, IconCode::LINE_WITH_ANGLED_END_HOOK }
};
- setPossibleHookTypes(hookTypes);
+ setPossibleEndHookTypes(hookTypes);
createProperties();
}
diff --git a/src/inspector/models/notation/lines/palmmutesettingsmodel.cpp b/src/inspector/models/notation/lines/palmmutesettingsmodel.cpp
index cedb2be2b6..9f50da9a03 100644
--- a/src/inspector/models/notation/lines/palmmutesettingsmodel.cpp
+++ b/src/inspector/models/notation/lines/palmmutesettingsmodel.cpp
@@ -36,7 +36,7 @@ void PalmMuteSettingsModel::createProperties()
{
LineSettingsModel::createProperties();
- beginingHookType()->setIsVisible(false);
+ startHookType()->setIsVisible(false);
endHookType()->setIsVisible(false);
beginingTextHorizontalOffset()->setIsVisible(false);
diff --git a/src/inspector/models/notation/lines/pedalsettingsmodel.cpp b/src/inspector/models/notation/lines/pedalsettingsmodel.cpp
index 2ba95b3a0e..ee71da9bd5 100644
--- a/src/inspector/models/notation/lines/pedalsettingsmodel.cpp
+++ b/src/inspector/models/notation/lines/pedalsettingsmodel.cpp
@@ -22,13 +22,16 @@
#include "pedalsettingsmodel.h"
#include "translation.h"
-
#include "ui/view/iconcodes.h"
+#include "libmscore/pedal.h"
+
using namespace mu::inspector;
using IconCode = mu::ui::IconCode::Code;
+static constexpr int HOOK_STAR = static_cast(Ms::HookType::HOOK_90T) + 1;
+
PedalSettingsModel::PedalSettingsModel(QObject* parent, IElementRepositoryService* repository)
: LineSettingsModel(parent, repository, Ms::ElementType::PEDAL)
{
@@ -36,54 +39,102 @@ PedalSettingsModel::PedalSettingsModel(QObject* parent, IElementRepositoryServic
setTitle(qtrc("inspector", "Pedal"));
setIcon(ui::IconCode::Code::PEDAL_MARKING);
- static const QList hookTypes {
+ static const QList startHookTypes {
+ { Ms::HookType::NONE, IconCode::LINE_NORMAL },
+ { Ms::HookType::HOOK_45, IconCode::LINE_WITH_ANGLED_START_HOOK },
+ { Ms::HookType::HOOK_90T, IconCode::LINE_WITH_T_LINE_START_HOOK }
+ };
+
+ setPossibleStartHookTypes(startHookTypes);
+
+ static const QList endHookTypes {
{ Ms::HookType::NONE, IconCode::LINE_NORMAL },
{ Ms::HookType::HOOK_90, IconCode::LINE_WITH_END_HOOK },
{ Ms::HookType::HOOK_45, IconCode::LINE_WITH_ANGLED_END_HOOK },
- { Ms::HookType::HOOK_90T, IconCode::LINE_PEDAL_STAR_ENDING }
+ { Ms::HookType::HOOK_90T, IconCode::LINE_WITH_T_LIKE_END_HOOK },
+ { HOOK_STAR, IconCode::LINE_PEDAL_STAR_ENDING }
};
- setPossibleHookTypes(hookTypes);
+ setPossibleEndHookTypes(endHookTypes);
createProperties();
}
-PropertyItem* PedalSettingsModel::showPedalSymbol() const
+PropertyItem* PedalSettingsModel::lineType() const
{
- return m_showPedalSymbol;
+ return m_lineType;
}
-PropertyItem* PedalSettingsModel::showLineWithRosette() const
+bool PedalSettingsModel::pedalSymbolVisible() const
{
- return m_showLineWithRosette;
+ return beginingText()->value().toString() == Ms::Pedal::PEDAL_SYMBOL;
}
-bool PedalSettingsModel::showLineWithRosetteVisible() const
+bool PedalSettingsModel::isChangingLineVisibilityAllowed() const
{
- return m_showLineWithRosetteVisible;
+ return isStarSymbolVisible();
+}
+
+bool PedalSettingsModel::isStarSymbolVisible() const
+{
+ return endText()->value().toString() == Ms::Pedal::STAR_SYMBOL;
+}
+
+void PedalSettingsModel::setPedalSymbolVisible(bool visible)
+{
+ beginingText()->setValue(visible ? Ms::Pedal::PEDAL_SYMBOL : "");
}
void PedalSettingsModel::createProperties()
{
LineSettingsModel::createProperties();
- //! TODO: determine suitable properties
- m_showPedalSymbol = buildPropertyItem(Ms::Pid::SYMBOL);
- m_showLineWithRosette = buildPropertyItem(Ms::Pid::SYMBOL);
+ connect(beginingText(), &PropertyItem::isModifiedChanged, this, [this]() {
+ emit pedalSymbolVisibleChanged();
+ });
+
+ connect(endText(), &PropertyItem::isModifiedChanged, this, [this]() {
+ emit isChangingLineVisibilityAllowedChanged();
+ });
+
+ m_lineType = buildPropertyItem(Ms::Pid::END, [this](const Ms::Pid, const QVariant& newValue) {
+ setLineType(newValue.toInt());
+ });
}
void PedalSettingsModel::loadProperties()
{
LineSettingsModel::loadProperties();
- loadPropertyItem(m_showPedalSymbol);
- loadPropertyItem(m_showLineWithRosette);
+ m_lineType->setIsEnabled(true);
+
+ if (isStarSymbolVisible()) {
+ m_lineType->setValue(HOOK_STAR);
+ } else {
+ m_lineType->setValue(endHookType()->value());
+ }
}
-void PedalSettingsModel::resetProperties()
+void PedalSettingsModel::setLineType(int newType)
{
- LineSettingsModel::resetProperties();
+ bool rosetteHookSelected = (newType == HOOK_STAR);
+ int hookType = newType;
+ QString text = QString();
- m_showPedalSymbol->resetToDefault();
- m_showLineWithRosette->resetToDefault();
+ if (rosetteHookSelected) {
+ hookType = static_cast(Ms::HookType::NONE);
+ text = Ms::Pedal::STAR_SYMBOL;
+ startHookType()->setValue(hookType);
+ }
+
+ endHookType()->setValue(hookType);
+ endText()->setValue(text);
+ isLineVisible()->setValue(!rosetteHookSelected);
+
+ m_lineType->setValue(newType);
+}
+
+bool PedalSettingsModel::isTextVisible(TextType) const
+{
+ return true;
}
diff --git a/src/inspector/models/notation/lines/pedalsettingsmodel.h b/src/inspector/models/notation/lines/pedalsettingsmodel.h
index d4f37d23fa..ce2bef677b 100644
--- a/src/inspector/models/notation/lines/pedalsettingsmodel.h
+++ b/src/inspector/models/notation/lines/pedalsettingsmodel.h
@@ -29,30 +29,34 @@ class PedalSettingsModel : public LineSettingsModel
{
Q_OBJECT
- Q_PROPERTY(PropertyItem * showPedalSymbol READ showPedalSymbol CONSTANT)
- Q_PROPERTY(PropertyItem * showLineWithRosette READ showLineWithRosette CONSTANT)
-
- Q_PROPERTY(bool showLineWithRosetteVisible READ showLineWithRosetteVisible NOTIFY showLineWithRosetteVisibleChanged)
+ Q_PROPERTY(PropertyItem* lineType READ lineType CONSTANT)
+ Q_PROPERTY(bool pedalSymbolVisible READ pedalSymbolVisible WRITE setPedalSymbolVisible NOTIFY pedalSymbolVisibleChanged)
+ Q_PROPERTY(bool isChangingLineVisibilityAllowed READ isChangingLineVisibilityAllowed NOTIFY isChangingLineVisibilityAllowedChanged)
public:
explicit PedalSettingsModel(QObject* parent, IElementRepositoryService* repository);
- PropertyItem* showPedalSymbol() const;
- PropertyItem* showLineWithRosette() const;
+ PropertyItem* lineType() const;
+ bool pedalSymbolVisible() const;
+ bool isChangingLineVisibilityAllowed() const;
- bool showLineWithRosetteVisible() const;
+public slots:
+ void setPedalSymbolVisible(bool visible);
signals:
- void showLineWithRosetteVisibleChanged();
+ void pedalSymbolVisibleChanged();
+ void isChangingLineVisibilityAllowedChanged();
private:
+ bool isStarSymbolVisible() const;
+
void createProperties() override;
void loadProperties() override;
- void resetProperties() override;
+ bool isTextVisible(TextType type) const override;
- PropertyItem* m_showPedalSymbol = nullptr;
- PropertyItem* m_showLineWithRosette = nullptr;
- bool m_showLineWithRosetteVisible = false;
+ void setLineType(int newType);
+
+ PropertyItem* m_lineType = nullptr;
};
}
diff --git a/src/inspector/models/notation/lines/voltasettingsmodel.cpp b/src/inspector/models/notation/lines/voltasettingsmodel.cpp
index 13a77027e7..926f0985f7 100644
--- a/src/inspector/models/notation/lines/voltasettingsmodel.cpp
+++ b/src/inspector/models/notation/lines/voltasettingsmodel.cpp
@@ -41,7 +41,7 @@ VoltaSettingsModel::VoltaSettingsModel(QObject* parent, IElementRepositoryServic
{ Ms::HookType::HOOK_90, IconCode::LINE_WITH_TWO_INVERTED_HOOKS },
};
- setPossibleHookTypes(hookTypes);
+ setPossibleEndHookTypes(hookTypes);
createProperties();
}
diff --git a/src/inspector/view/qml/MuseScore/Inspector/notation/lines/PedalSettings.qml b/src/inspector/view/qml/MuseScore/Inspector/notation/lines/PedalSettings.qml
index 30e6632f05..bc8eae96ce 100644
--- a/src/inspector/view/qml/MuseScore/Inspector/notation/lines/PedalSettings.qml
+++ b/src/inspector/view/qml/MuseScore/Inspector/notation/lines/PedalSettings.qml
@@ -39,32 +39,35 @@ Column {
spacing: 12
CheckBox {
- isIndeterminate: root.model && root.model.showPedalSymbol.isUndefined
- checked: root.model && !isIndeterminate && root.model.showPedalSymbol.value
+ checked: root.model && root.model.pedalSymbolVisible
text: qsTrc("inspector", "Show pedal symbol")
onClicked: {
- root.model.showPedalSymbol.value = !checked
+ root.model.pedalSymbolVisible = !checked
}
}
LineTypeSection {
- endHookType: root.model ? root.model.endHookType : null
+ startHookType: root.model ? root.model.startHookType : null
+ endHookType: root.model ? root.model.lineType : null
+
thickness: root.model ? root.model.thickness : null
hookHeight: root.model ? root.model.hookHeight : null
+
+ possibleStartHookTypes: root.model ? root.model.possibleStartHookTypes() : null
possibleEndHookTypes: root.model ? root.model.possibleEndHookTypes() : null
}
CheckBox {
- isIndeterminate: root.model && root.model.showLineWithRosette.isUndefined
- checked: root.model && !isIndeterminate && root.model.showLineWithRosette.value
- visible: root.model & root.model.showLineWithRosetteVisible
+ isIndeterminate: root.model && root.model.isLineVisible.isUndefined
+ checked: root.model && !isIndeterminate && root.model.isLineVisible.value
+ visible: root.model && root.model.isChangingLineVisibilityAllowed
text: qsTrc("inspector", "Show line with rosette")
onClicked: {
- root.model.showLineWithRosette.value = !checked
+ root.model.isLineVisible.value = !checked
}
}
diff --git a/src/inspector/view/qml/MuseScore/Inspector/notation/lines/internal/LineTypeSection.qml b/src/inspector/view/qml/MuseScore/Inspector/notation/lines/internal/LineTypeSection.qml
index 8d01fc8a76..8996951461 100644
--- a/src/inspector/view/qml/MuseScore/Inspector/notation/lines/internal/LineTypeSection.qml
+++ b/src/inspector/view/qml/MuseScore/Inspector/notation/lines/internal/LineTypeSection.qml
@@ -32,10 +32,12 @@ import "../../../common"
Column {
id: root
+ property PropertyItem startHookType: null
property PropertyItem endHookType: null
property PropertyItem thickness: null
property PropertyItem hookHeight: null
+ property alias possibleStartHookTypes: startHookButtonGroup.model
property alias possibleEndHookTypes: lineTypeButtonGroup.model
width: parent.width
@@ -49,6 +51,13 @@ Column {
propertyItem: root.endHookType
}
+ FlatRadioButtonGroupPropertyView {
+ id: startHookButtonGroup
+
+ titleText: qsTrc("inspector", "Start hook")
+ propertyItem: root.startHookType
+ }
+
Item {
height: childrenRect.height
width: parent.width
diff --git a/src/palette/internal/palettecreator.cpp b/src/palette/internal/palettecreator.cpp
index 4ddec3e6b9..0ae744ccbf 100644
--- a/src/palette/internal/palettecreator.cpp
+++ b/src/palette/internal/palettecreator.cpp
@@ -1042,16 +1042,16 @@ PalettePtr PaletteCreator::newLinesPalette()
auto pedal = makeElement(gpaletteScore);
pedal->setLen(w);
- pedal->setBeginText("keyboardPedalPed");
- pedal->setContinueText("(keyboardPedalPed)");
+ pedal->setBeginText(Pedal::PEDAL_SYMBOL);
+ pedal->setContinueText(QString("(%1)").arg(Pedal::PEDAL_SYMBOL));
pedal->setEndHookType(HookType::HOOK_90);
sp->appendElement(pedal, QT_TRANSLATE_NOOP("palette", "Pedal (with ped and line)"));
pedal = makeElement(gpaletteScore);
pedal->setLen(w);
- pedal->setBeginText("keyboardPedalPed");
- pedal->setContinueText("(keyboardPedalPed)");
- pedal->setEndText("keyboardPedalUp");
+ pedal->setBeginText(Pedal::PEDAL_SYMBOL);
+ pedal->setContinueText(QString("(%1)").arg(Pedal::PEDAL_SYMBOL));
+ pedal->setEndText(Pedal::STAR_SYMBOL);
pedal->setLineVisible(false);
sp->appendElement(pedal, QT_TRANSLATE_NOOP("palette", "Pedal (with ped and asterisk)"));