inspector update for barlines & clefs
This commit is contained in:
parent
6dd82d2f78
commit
64034e6172
4 changed files with 33 additions and 46 deletions
|
@ -41,7 +41,7 @@ int BarLine::_origSpanTo;
|
||||||
// BarLineTable
|
// BarLineTable
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
||||||
static const BarLineTableItem barLineTable[] {
|
const std::vector<BarLineTableItem> BarLine::barLineTable {
|
||||||
{ BarLineType::NORMAL, QT_TRANSLATE_NOOP("Palette", "Normal barline"), "normal" },
|
{ BarLineType::NORMAL, QT_TRANSLATE_NOOP("Palette", "Normal barline"), "normal" },
|
||||||
{ BarLineType::DOUBLE, QT_TRANSLATE_NOOP("Palette", "Double barline"), "double" },
|
{ BarLineType::DOUBLE, QT_TRANSLATE_NOOP("Palette", "Double barline"), "double" },
|
||||||
{ BarLineType::START_REPEAT, QT_TRANSLATE_NOOP("Palette", "Start repeat"), "start-repeat" },
|
{ BarLineType::START_REPEAT, QT_TRANSLATE_NOOP("Palette", "Start repeat"), "start-repeat" },
|
||||||
|
@ -58,7 +58,7 @@ static const BarLineTableItem barLineTable[] {
|
||||||
|
|
||||||
const BarLineTableItem* BarLine::barLineTableItem(unsigned i)
|
const BarLineTableItem* BarLine::barLineTableItem(unsigned i)
|
||||||
{
|
{
|
||||||
if (i >= sizeof(barLineTable)/sizeof(*barLineTable))
|
if (i >= barLineTable.size())
|
||||||
return 0;
|
return 0;
|
||||||
return &barLineTable[i];
|
return &barLineTable[i];
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,6 +148,8 @@ class BarLine : public Element {
|
||||||
|
|
||||||
virtual QString accessibleInfo() const override;
|
virtual QString accessibleInfo() const override;
|
||||||
virtual QString accessibleExtraInfo() const override;
|
virtual QString accessibleExtraInfo() const override;
|
||||||
|
|
||||||
|
static const std::vector<BarLineTableItem> barLineTable;
|
||||||
};
|
};
|
||||||
} // namespace Ms
|
} // namespace Ms
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -345,7 +345,8 @@ InspectorElementBase::InspectorElementBase(QWidget* parent)
|
||||||
{ P_ID::USER_OFF, 1, 0, e.offsetY, e.resetY },
|
{ P_ID::USER_OFF, 1, 0, e.offsetY, e.resetY },
|
||||||
{ P_ID::AUTOPLACE, 0, 0, e.autoplace, e.resetAutoplace },
|
{ P_ID::AUTOPLACE, 0, 0, e.autoplace, e.resetAutoplace },
|
||||||
};
|
};
|
||||||
connect(e.autoplace, SIGNAL(toggled(bool)), SLOT(autoplaceChanged(bool)));
|
connect(e.resetAutoplace, SIGNAL(clicked()), SLOT(resetAutoplace()));
|
||||||
|
connect(e.autoplace, SIGNAL(toggled(bool)), SLOT(autoplaceChanged(bool)));
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -354,9 +355,8 @@ InspectorElementBase::InspectorElementBase(QWidget* parent)
|
||||||
|
|
||||||
void InspectorElementBase::setElement()
|
void InspectorElementBase::setElement()
|
||||||
{
|
{
|
||||||
Element* e = inspector->element();
|
|
||||||
autoplaceChanged(e->autoplace());
|
|
||||||
InspectorBase::setElement();
|
InspectorBase::setElement();
|
||||||
|
autoplaceChanged(inspector->element()->autoplace());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -365,11 +365,17 @@ void InspectorElementBase::setElement()
|
||||||
|
|
||||||
void InspectorElementBase::autoplaceChanged(bool val)
|
void InspectorElementBase::autoplaceChanged(bool val)
|
||||||
{
|
{
|
||||||
val = !val;
|
for (auto i : std::vector<QWidget*> { e.offsetX, e.offsetY, e.resetX, e.resetY, e.hRaster, e.vRaster })
|
||||||
e.offsetX->setEnabled(val);
|
i->setEnabled(!val);
|
||||||
e.offsetY->setEnabled(val);
|
}
|
||||||
e.resetX->setEnabled(val);
|
|
||||||
e.resetY->setEnabled(val);
|
//---------------------------------------------------------
|
||||||
|
// resetAutoplace
|
||||||
|
//---------------------------------------------------------
|
||||||
|
|
||||||
|
void InspectorElementBase::resetAutoplace()
|
||||||
|
{
|
||||||
|
autoplaceChanged(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
@ -981,43 +987,27 @@ QSize InspectorEmpty::sizeHint() const
|
||||||
return QSize(255 * guiScaling, 170 * guiScaling);
|
return QSize(255 * guiScaling, 170 * guiScaling);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const BarLineType types[] = {
|
|
||||||
BarLineType::NORMAL,
|
|
||||||
BarLineType::BROKEN,
|
|
||||||
BarLineType::DOTTED,
|
|
||||||
BarLineType::DOUBLE,
|
|
||||||
BarLineType::END,
|
|
||||||
BarLineType::START_REPEAT, // repeat types cannot be set for a single bar line
|
|
||||||
BarLineType::END_REPEAT, // of a multi-staff scores
|
|
||||||
BarLineType::END_START_REPEAT,
|
|
||||||
};
|
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
// InspectorBarLine
|
// InspectorBarLine
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
||||||
InspectorBarLine::InspectorBarLine(QWidget* parent)
|
InspectorBarLine::InspectorBarLine(QWidget* parent)
|
||||||
: InspectorBase(parent)
|
: InspectorElementBase(parent)
|
||||||
{
|
{
|
||||||
e.setupUi(addWidget());
|
|
||||||
s.setupUi(addWidget());
|
s.setupUi(addWidget());
|
||||||
b.setupUi(addWidget());
|
b.setupUi(addWidget());
|
||||||
|
|
||||||
for (BarLineType t : types)
|
for (auto i : BarLine::barLineTable)
|
||||||
b.type->addItem(BarLine::userTypeName(t), int(t));
|
b.type->addItem(qApp->translate("Palette", i.userName), int(i.type));
|
||||||
|
|
||||||
iList = {
|
std::vector<InspectorItem> il = {
|
||||||
{ P_ID::COLOR, 0, 0, e.color, e.resetColor },
|
|
||||||
{ P_ID::VISIBLE, 0, 0, e.visible, e.resetVisible },
|
|
||||||
{ P_ID::USER_OFF, 0, 0, e.offsetX, e.resetX },
|
|
||||||
{ P_ID::USER_OFF, 1, 0, e.offsetY, e.resetY },
|
|
||||||
{ P_ID::LEADING_SPACE, 0, 1, s.leadingSpace, s.resetLeadingSpace },
|
{ P_ID::LEADING_SPACE, 0, 1, s.leadingSpace, s.resetLeadingSpace },
|
||||||
{ P_ID::BARLINE_TYPE, 0, 0, b.type, b.resetType },
|
{ P_ID::BARLINE_TYPE, 0, 0, b.type, b.resetType },
|
||||||
{ P_ID::BARLINE_SPAN, 0, 0, b.span, b.resetSpan },
|
{ P_ID::BARLINE_SPAN, 0, 0, b.span, b.resetSpan },
|
||||||
{ P_ID::BARLINE_SPAN_FROM, 0, 0, b.spanFrom, b.resetSpanFrom },
|
{ P_ID::BARLINE_SPAN_FROM, 0, 0, b.spanFrom, b.resetSpanFrom },
|
||||||
{ P_ID::BARLINE_SPAN_TO, 0, 0, b.spanTo, b.resetSpanTo },
|
{ P_ID::BARLINE_SPAN_TO, 0, 0, b.spanTo, b.resetSpanTo },
|
||||||
};
|
};
|
||||||
mapSignals();
|
mapSignals(il);
|
||||||
// when any of the span parameters is changed, span data need to be managed
|
// when any of the span parameters is changed, span data need to be managed
|
||||||
connect(b.span, SIGNAL(valueChanged(int)), SLOT(manageSpanData()));
|
connect(b.span, SIGNAL(valueChanged(int)), SLOT(manageSpanData()));
|
||||||
connect(b.spanFrom, SIGNAL(valueChanged(int)), SLOT(manageSpanData()));
|
connect(b.spanFrom, SIGNAL(valueChanged(int)), SLOT(manageSpanData()));
|
||||||
|
@ -1038,25 +1028,20 @@ InspectorBarLine::InspectorBarLine(QWidget* parent)
|
||||||
void InspectorBarLine::setElement()
|
void InspectorBarLine::setElement()
|
||||||
{
|
{
|
||||||
blockSpanDataSignals(true);
|
blockSpanDataSignals(true);
|
||||||
InspectorBase::setElement();
|
InspectorElementBase::setElement();
|
||||||
BarLine* bl = toBarLine(inspector->element());
|
BarLine* bl = toBarLine(inspector->element());
|
||||||
|
|
||||||
// enable / disable individual type combo items according to score and selected bar line status
|
// enable / disable individual type combo items according to score and selected bar line status
|
||||||
bool bMultiStaff = bl->score()->nstaves() > 1;
|
bool bMultiStaff = bl->score()->nstaves() > 1;
|
||||||
BarLineType blt = bl->barLineType();
|
BarLineType blt = bl->barLineType();
|
||||||
bool isRepeat = (blt == BarLineType::START_REPEAT
|
bool isRepeat = blt & (BarLineType::START_REPEAT | BarLineType::END_REPEAT | BarLineType::END_START_REPEAT);
|
||||||
|| blt == BarLineType::END_REPEAT
|
|
||||||
|| blt == BarLineType::END_START_REPEAT);
|
|
||||||
|
|
||||||
const QStandardItemModel* model = qobject_cast<const QStandardItemModel*>(b.type->model());
|
const QStandardItemModel* model = qobject_cast<const QStandardItemModel*>(b.type->model());
|
||||||
for (unsigned i = 0; i < sizeof(types)/sizeof(*types); ++i) {
|
int i = 0;
|
||||||
BarLineType type = types[i];
|
for (auto& k : BarLine::barLineTable) {
|
||||||
|
|
||||||
QStandardItem* item = model->item(i);
|
QStandardItem* item = model->item(i);
|
||||||
// if combo item is repeat type, should be disabled for multi-staff scores
|
// if combo item is repeat type, should be disabled for multi-staff scores
|
||||||
if (type == BarLineType::START_REPEAT
|
if (k.type & (BarLineType::START_REPEAT | BarLineType::END_REPEAT | BarLineType::END_START_REPEAT)) {
|
||||||
|| type == BarLineType::END_REPEAT
|
|
||||||
|| type == BarLineType::END_START_REPEAT) {
|
|
||||||
// disable / enable
|
// disable / enable
|
||||||
item->setFlags(bMultiStaff ?
|
item->setFlags(bMultiStaff ?
|
||||||
item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled) :
|
item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled) :
|
||||||
|
@ -1068,6 +1053,7 @@ void InspectorBarLine::setElement()
|
||||||
item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled) :
|
item->flags() & ~(Qt::ItemIsSelectable|Qt::ItemIsEnabled) :
|
||||||
item->flags() | (Qt::ItemFlags)(Qt::ItemIsSelectable|Qt::ItemIsEnabled) );
|
item->flags() | (Qt::ItemFlags)(Qt::ItemIsSelectable|Qt::ItemIsEnabled) );
|
||||||
}
|
}
|
||||||
|
++i;
|
||||||
}
|
}
|
||||||
manageSpanData();
|
manageSpanData();
|
||||||
blockSpanDataSignals(false);
|
blockSpanDataSignals(false);
|
||||||
|
|
|
@ -50,7 +50,7 @@ class Note;
|
||||||
class Inspector;
|
class Inspector;
|
||||||
class Segment;
|
class Segment;
|
||||||
class Chord;
|
class Chord;
|
||||||
|
class Clef;
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
// UiInspectorElement
|
// UiInspectorElement
|
||||||
|
@ -72,7 +72,8 @@ class InspectorElementBase : public InspectorBase {
|
||||||
UiInspectorElement e;
|
UiInspectorElement e;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void autoplaceChanged(bool val);
|
void resetAutoplace();
|
||||||
|
void autoplaceChanged(bool);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
InspectorElementBase(QWidget* parent);
|
InspectorElementBase(QWidget* parent);
|
||||||
|
@ -188,7 +189,6 @@ class InspectorRest : public InspectorBase {
|
||||||
// InspectorClef
|
// InspectorClef
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
||||||
class Clef;
|
|
||||||
|
|
||||||
class InspectorClef : public InspectorBase {
|
class InspectorClef : public InspectorBase {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -337,10 +337,9 @@ class InspectorDynamic : public InspectorBase {
|
||||||
// InspectorBarLine
|
// InspectorBarLine
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
||||||
class InspectorBarLine : public InspectorBase {
|
class InspectorBarLine : public InspectorElementBase {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
UiInspectorElement e;
|
|
||||||
Ui::InspectorSegment s;
|
Ui::InspectorSegment s;
|
||||||
Ui::InspectorBarLine b;
|
Ui::InspectorBarLine b;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue