Moved hasUndo and hasRedo from Editor::Paint to Editor::Scene.
This commit is contained in:
parent
fb511c3e03
commit
aef2148ed0
|
@ -81,8 +81,8 @@ Paint::Paint(
|
||||||
(*it)->setVisible(!isUndo);
|
(*it)->setVisible(!isUndo);
|
||||||
}
|
}
|
||||||
|
|
||||||
_hasUndo = hasUndo();
|
_hasUndo = _scene->hasUndo();
|
||||||
_hasRedo = hasRedo();
|
_hasRedo = _scene->hasRedo();
|
||||||
}, lifetime());
|
}, lifetime());
|
||||||
|
|
||||||
controllers->undoController->setCanPerformChanges(rpl::merge(
|
controllers->undoController->setCanPerformChanges(rpl::merge(
|
||||||
|
@ -217,16 +217,6 @@ void Paint::keepResult() {
|
||||||
}) | ranges::to_vector;
|
}) | ranges::to_vector;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Paint::hasUndo() const {
|
|
||||||
return ranges::any_of(_scene->items(), &QGraphicsItem::isVisible);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Paint::hasRedo() const {
|
|
||||||
return ranges::any_of(
|
|
||||||
_scene->items(),
|
|
||||||
[=](const ItemPtr &i) { return isItemHidden(i); });
|
|
||||||
}
|
|
||||||
|
|
||||||
void Paint::clearRedoList() {
|
void Paint::clearRedoList() {
|
||||||
const auto items = _scene->items(Qt::AscendingOrder);
|
const auto items = _scene->items(Qt::AscendingOrder);
|
||||||
auto &&filtered = ranges::views::all(
|
auto &&filtered = ranges::views::all(
|
||||||
|
@ -252,8 +242,8 @@ bool Paint::isItemToRemove(const ItemPtr &item) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Paint::updateUndoState() {
|
void Paint::updateUndoState() {
|
||||||
_hasUndo = hasUndo();
|
_hasUndo = _scene->hasUndo();
|
||||||
_hasRedo = hasRedo();
|
_hasRedo = _scene->hasRedo();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Paint::applyBrush(const Brush &brush) {
|
void Paint::applyBrush(const Brush &brush) {
|
||||||
|
|
|
@ -49,8 +49,6 @@ private:
|
||||||
|
|
||||||
ItemBase::Data itemBaseData() const;
|
ItemBase::Data itemBaseData() const;
|
||||||
|
|
||||||
bool hasUndo() const;
|
|
||||||
bool hasRedo() const;
|
|
||||||
void clearRedoList();
|
void clearRedoList();
|
||||||
|
|
||||||
bool isItemToRemove(const std::shared_ptr<QGraphicsItem> &item) const;
|
bool isItemToRemove(const std::shared_ptr<QGraphicsItem> &item) const;
|
||||||
|
|
|
@ -163,6 +163,14 @@ void Scene::restoreItemsState(SaveState state) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Scene::hasUndo() const {
|
||||||
|
return ranges::any_of(_items, &NumberedItem::isNormalStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Scene::hasRedo() const {
|
||||||
|
return ranges::any_of(_items, &NumberedItem::isUndidStatus);
|
||||||
|
}
|
||||||
|
|
||||||
Scene::~Scene() {
|
Scene::~Scene() {
|
||||||
// Prevent destroying by scene of all items.
|
// Prevent destroying by scene of all items.
|
||||||
QGraphicsScene::removeItem(_canvas.get());
|
QGraphicsScene::removeItem(_canvas.get());
|
||||||
|
|
|
@ -49,6 +49,9 @@ public:
|
||||||
|
|
||||||
void saveItemsState(SaveState state);
|
void saveItemsState(SaveState state);
|
||||||
void restoreItemsState(SaveState state);
|
void restoreItemsState(SaveState state);
|
||||||
|
|
||||||
|
[[nodiscard]] bool hasUndo() const;
|
||||||
|
[[nodiscard]] bool hasRedo() const;
|
||||||
protected:
|
protected:
|
||||||
void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
||||||
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
||||||
|
|
Loading…
Reference in New Issue