Layer sidebar repaint fixed

presentation
Andreas Butti 7 years ago
parent 9f618ca3e6
commit 0684fe4159
  1. 7
      src/control/layer/LayerController.cpp
  2. 1
      src/control/layer/LayerController.h
  3. 28
      src/gui/sidebar/previews/layer/SidebarPreviewLayers.cpp
  4. 5
      src/gui/sidebar/previews/layer/SidebarPreviewLayers.h

@ -250,6 +250,13 @@ PageRef LayerController::getCurrentPage()
return control->getDocument()->getPage(selectedPage);
}
size_t LayerController::getCurrentPageId()
{
XOJ_CHECK_TYPE(LayerController);
return selectedPage;
}
void LayerController::setLayerVisible(int layerId, bool visible)
{
XOJ_CHECK_TYPE(LayerController);

@ -69,6 +69,7 @@ public:
void setLayerVisible(int layerId, bool visible);
PageRef getCurrentPage();
size_t getCurrentPageId();
/**
* @return Layer count of the current page

@ -54,6 +54,34 @@ string SidebarPreviewLayers::getIconName()
return "layer.svg";
}
void SidebarPreviewLayers::pageSizeChanged(size_t page)
{
XOJ_CHECK_TYPE(SidebarPreviewLayers);
if (page != this->lc->getCurrentPageId())
{
return;
}
updatePreviews();
}
void SidebarPreviewLayers::pageChanged(size_t page)
{
XOJ_CHECK_TYPE(SidebarPreviewLayers);
if (page != this->lc->getCurrentPageId())
{
return;
}
// Repaint all layer
for (SidebarPreviewBaseEntry* p : this->previews)
{
p->repaint();
}
}
void SidebarPreviewLayers::updatePreviews()
{
XOJ_CHECK_TYPE(SidebarPreviewLayers);

@ -58,6 +58,11 @@ public:
protected:
void updateSelectedLayer();
public:
// DocumentListener interface (only the part which is not handled by SidebarPreviewBase)
virtual void pageSizeChanged(size_t page);
virtual void pageChanged(size_t page);
private:
XOJ_TYPE_ATTRIB;

Loading…
Cancel
Save