fixed add/remove palette cell
This commit is contained in:
parent
6b1cdb0ec3
commit
a809eaa25c
3 changed files with 22 additions and 12 deletions
|
@ -62,6 +62,11 @@ Palette::~Palette()
|
|||
c->setParent(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<PaletteCellPtr> cells = m_cells;
|
||||
Palette* pal = this;
|
||||
|
||||
int k = -1;
|
||||
}
|
||||
|
||||
QString Palette::id() const
|
||||
|
@ -143,13 +148,7 @@ PaletteCellPtr Palette::appendActionIcon(Ms::ActionIconType type, actions::Actio
|
|||
|
||||
bool Palette::insertCell(size_t idx, PaletteCellPtr cell)
|
||||
{
|
||||
if (idx > m_cells.size()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_cells.insert(m_cells.begin() + idx, cell);
|
||||
|
||||
return true;
|
||||
return insertCells(idx, { cell });
|
||||
}
|
||||
|
||||
bool Palette::insertCells(size_t idx, std::vector<PaletteCellPtr> cells)
|
||||
|
@ -158,6 +157,10 @@ bool Palette::insertCells(size_t idx, std::vector<PaletteCellPtr> cells)
|
|||
return false;
|
||||
}
|
||||
|
||||
for (PaletteCellPtr& c : cells) {
|
||||
c->setParent(this);
|
||||
}
|
||||
|
||||
m_cells.insert(m_cells.begin() + idx, std::make_move_iterator(cells.begin()),
|
||||
std::make_move_iterator(cells.end()));
|
||||
|
||||
|
@ -166,11 +169,8 @@ bool Palette::insertCells(size_t idx, std::vector<PaletteCellPtr> cells)
|
|||
|
||||
PaletteCellPtr Palette::takeCell(size_t idx)
|
||||
{
|
||||
if (idx >= m_cells.size()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return *m_cells.erase(m_cells.begin() + idx);
|
||||
std::vector<PaletteCellPtr> cells = takeCells(idx, 1);
|
||||
return !cells.empty() ? cells.front() : nullptr;
|
||||
}
|
||||
|
||||
std::vector<PaletteCellPtr> Palette::takeCells(size_t idx, size_t count)
|
||||
|
@ -188,6 +188,10 @@ std::vector<PaletteCellPtr> Palette::takeCells(size_t idx, size_t count)
|
|||
removedCells.insert(removedCells.end(), std::make_move_iterator(removeBegin), std::make_move_iterator(removeEnd));
|
||||
m_cells.erase(removeBegin, removeEnd);
|
||||
|
||||
for (PaletteCellPtr& c : removedCells) {
|
||||
c->setParent(nullptr);
|
||||
}
|
||||
|
||||
return removedCells;
|
||||
}
|
||||
|
||||
|
|
|
@ -74,6 +74,11 @@ PaletteCell::PaletteCell(ElementPtr e, const QString& _name, qreal _mag, QObject
|
|||
drawStaff = needsStaff(element);
|
||||
}
|
||||
|
||||
PaletteCell::~PaletteCell()
|
||||
{
|
||||
LOGI() << this;
|
||||
}
|
||||
|
||||
QAccessibleInterface* PaletteCell::accessibleInterface(QObject* object)
|
||||
{
|
||||
PaletteCell* cell = qobject_cast<PaletteCell*>(object);
|
||||
|
|
|
@ -71,6 +71,7 @@ class PaletteCell : public QObject
|
|||
public:
|
||||
explicit PaletteCell(QObject* parent = nullptr);
|
||||
PaletteCell(Ms::ElementPtr e, const QString& _name, qreal _mag = 1.0, QObject* parent = nullptr);
|
||||
~PaletteCell();
|
||||
|
||||
static QAccessibleInterface* accessibleInterface(QObject* object);
|
||||
|
||||
|
|
Loading…
Reference in a new issue