Fixed Sidebar bug

presentation
Andreas Butti 7 years ago
parent 2d0c97cf41
commit 7ce22b9e39
  1. 2
      src/gui/sidebar/Sidebar.cpp
  2. 8
      src/gui/sidebar/previews/base/SidebarPreviewBase.cpp
  3. 2
      src/gui/sidebar/previews/base/SidebarPreviewBase.h
  4. 13
      src/gui/sidebar/previews/base/SidebarToolbar.cpp
  5. 3
      src/gui/sidebar/previews/layer/SidebarPreviewLayers.cpp
  6. 2
      src/gui/sidebar/previews/layer/SidebarPreviewLayers.h
  7. 3
      src/gui/sidebar/previews/page/SidebarPreviewPages.cpp
  8. 2
      src/gui/sidebar/previews/page/SidebarPreviewPages.h
  9. 9
      src/model/PageRef.cpp

@ -36,7 +36,7 @@ void Sidebar::initPages(GtkWidget* sidebar, GladeGui* gui)
XOJ_CHECK_TYPE(Sidebar);
addPage(new SidebarIndexPage(this->control));
addPage(new SidebarPreviewPages(this->control, this->gui));
addPage(new SidebarPreviewPages(this->control, this->gui, &this->toolbar));
#ifdef UNSTABLE_LAYERS_SIDEBAR
addPage(new SidebarPreviewLayers(this->control));
#endif //UNSTABLE_LAYERS_SIDEBAR

@ -6,14 +6,15 @@
#include "SidebarPreviewBaseEntry.h"
#include "SidebarToolbar.h"
SidebarPreviewBase::SidebarPreviewBase(Control* control, GladeGui* gui) : AbstractSidebarPage(control)
SidebarPreviewBase::SidebarPreviewBase(Control* control, GladeGui* gui, SidebarToolbar* toolbar)
: AbstractSidebarPage(control),
toolbar(toolbar)
{
XOJ_INIT_TYPE(SidebarPreviewBase);
this->backgroundInitialized = false;
this->layoutmanager = new SidebarLayout();
this->toolbar = new SidebarToolbar(control, gui);
this->zoom = 0.15;
@ -62,9 +63,6 @@ SidebarPreviewBase::~SidebarPreviewBase()
delete this->layoutmanager;
this->layoutmanager = NULL;
delete this->toolbar;
this->toolbar = NULL;
g_object_unref(this->table);
for (SidebarPreviewBaseEntry* p : this->previews)

@ -29,7 +29,7 @@ typedef std::vector<SidebarPreviewBaseEntry*> SidebarPreviewBaseEntryVector;
class SidebarPreviewBase : public AbstractSidebarPage
{
public:
SidebarPreviewBase(Control* control, GladeGui* gui);
SidebarPreviewBase(Control* control, GladeGui* gui, SidebarToolbar* toolbar);
virtual ~SidebarPreviewBase();
public:

@ -4,6 +4,7 @@
#include "undo/CopyUndoAction.h"
#include "undo/SwapUndoAction.h"
SidebarToolbar::SidebarToolbar(Control* control, GladeGui* gui)
{
XOJ_INIT_TYPE(SidebarToolbar);
@ -89,10 +90,16 @@ void SidebarToolbar::btCopyClicked(GtkToolButton* toolbutton, SidebarToolbar* to
{
XOJ_CHECK_TYPE_OBJ(toolbar, SidebarToolbar);
printf("copy page this=%lx\n", toolbar);
Document* doc = toolbar->control->getDocument();
doc->lock();
int page = doc->indexOf(toolbar->currentPage);
if (page < 0)
{
return;
}
PageRef newPage = toolbar->currentPage.clone();
doc->insertPage(newPage, page + 1);
@ -126,5 +133,11 @@ void SidebarToolbar::setButtonEnabled(bool enableUp, bool enableDown, bool enabl
gtk_widget_set_sensitive(GTK_WIDGET(this->btDelete), enableDelete);
this->currentPage = currentPage;
Document* doc = control->getDocument();
doc->lock();
int page = doc->indexOf(currentPage);
doc->unlock();
printf("Current selected page is %i, this=%lx\n", page, this);
}

@ -7,7 +7,8 @@
#include <i18n.h>
SidebarPreviewLayers::SidebarPreviewLayers(Control* control, GladeGui* gui) : SidebarPreviewBase(control, gui)
SidebarPreviewLayers::SidebarPreviewLayers(Control* control, GladeGui* gui, SidebarToolbar* toolbar)
: SidebarPreviewBase(control, gui, toolbar)
{
XOJ_INIT_TYPE(SidebarPreviewLayers);
displayedPage = 0;

@ -18,7 +18,7 @@
class SidebarPreviewLayers : public SidebarPreviewBase
{
public:
SidebarPreviewLayers(Control* control, GladeGui* gui);
SidebarPreviewLayers(Control* control, GladeGui* gui, SidebarToolbar* toolbar);
virtual ~SidebarPreviewLayers();
public:

@ -7,7 +7,8 @@
#include <i18n.h>
SidebarPreviewPages::SidebarPreviewPages(Control* control, GladeGui* gui) : SidebarPreviewBase(control, gui)
SidebarPreviewPages::SidebarPreviewPages(Control* control, GladeGui* gui, SidebarToolbar* toolbar)
: SidebarPreviewBase(control, gui, toolbar)
{
XOJ_INIT_TYPE(SidebarPreviewPages);
}

@ -18,7 +18,7 @@
class SidebarPreviewPages : public SidebarPreviewBase
{
public:
SidebarPreviewPages(Control* control, GladeGui* gui);
SidebarPreviewPages(Control* control, GladeGui* gui, SidebarToolbar* toolbar);
virtual ~SidebarPreviewPages();
public:

@ -90,7 +90,14 @@ const XojPage* PageRef::operator->() const
PageRef PageRef::clone()
{
return PageRef(this->page->clone());
if (this->page == NULL)
{
return PageRef(NULL);
}
else
{
return PageRef(this->page->clone());
}
}
bool PageRef::isValid()

Loading…
Cancel
Save