Skip to content

Commit

Permalink
EditSelection: rerender range of selected elements
Browse files Browse the repository at this point in the history
  • Loading branch information
hrdl-github committed Feb 6, 2023
1 parent 684c0f8 commit fafcbb8
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
17 changes: 9 additions & 8 deletions src/core/control/tools/EditSelection.cpp
Expand Up @@ -64,7 +64,7 @@ EditSelection::EditSelection(UndoRedoHandler* undo, const PageRef& page, XojPage

EditSelection::EditSelection(UndoRedoHandler* undo, Selection* selection, XojPageView* view):
snappingHandler(view->getXournal()->getControl()->getSettings()) {
calcSizeFromElements(selection->selectedElements);
Range r = calcSizeFromElements(selection->selectedElements);

construct(undo, view, view->getPage());

Expand All @@ -80,7 +80,7 @@ EditSelection::EditSelection(UndoRedoHandler* undo, Selection* selection, XojPag
this->sourceLayer->removeElement(e, false);
}

view->rerenderPage();
view->rerenderRange(r);
}

EditSelection::EditSelection(UndoRedoHandler* undo, Element* e, XojPageView* view, const PageRef& page):
Expand All @@ -97,21 +97,21 @@ EditSelection::EditSelection(UndoRedoHandler* undo, Element* e, XojPageView* vie
EditSelection::EditSelection(UndoRedoHandler* undo, const vector<Element*>& elements, XojPageView* view,
const PageRef& page):
snappingHandler(view->getXournal()->getControl()->getSettings()) {
calcSizeFromElements(elements);
Range r = calcSizeFromElements(elements);
construct(undo, view, page);

for (Element* e: elements) {
addElement(e, this->sourceLayer->indexOf(e));
this->sourceLayer->removeElement(e, false);
}

view->rerenderPage();
view->rerenderRange(r);
}

EditSelection::EditSelection(UndoRedoHandler* undo, XojPageView* view, const PageRef& page, Layer* layer):
snappingHandler(view->getXournal()->getControl()->getSettings()) {
const auto& elements = layer->getElements();
calcSizeFromElements(elements);
Range r = calcSizeFromElements(elements);
construct(undo, view, page);

long i = 0L;
Expand All @@ -122,17 +122,17 @@ EditSelection::EditSelection(UndoRedoHandler* undo, XojPageView* view, const Pag

layer->clearNoFree();

view->rerenderPage();
view->rerenderRange(r);
}

void EditSelection::calcSizeFromElements(vector<Element*> elements) {
auto EditSelection::calcSizeFromElements(vector<Element*> elements) -> Range {
if (elements.empty()) {
x = 0;
y = 0;
width = 0;
height = 0;
snappedBounds = Rectangle<double>{};
return;
return Range();
}

Element* first = elements.front();
Expand All @@ -153,6 +153,7 @@ void EditSelection::calcSizeFromElements(vector<Element*> elements) {
height = range.getHeight() + 3 * this->btnWidth;

snappedBounds = rect;
return range;
}

void EditSelection::construct(UndoRedoHandler* undo, XojPageView* view, const PageRef& sourcePage) {
Expand Down
2 changes: 1 addition & 1 deletion src/core/control/tools/EditSelection.h
Expand Up @@ -60,7 +60,7 @@ class EditSelection: public ElementContainer, public Serializable {
/**
* Calculate the size from the element list
*/
void calcSizeFromElements(std::vector<Element*> elements);
auto calcSizeFromElements(std::vector<Element*> elements) -> Range;

public:
/**
Expand Down

0 comments on commit fafcbb8

Please sign in to comment.