Toolbar data, memory fixes, not all fixed yet

presentation
Andreas Butti 7 years ago
parent b7b6132395
commit 4ba308d196
  1. 29
      src/gui/dialog/ToolbarManageDialog.cpp
  2. 2
      src/gui/dialog/ToolbarManageDialog.h
  3. 13
      src/gui/toolbarMenubar/model/ToolbarData.cpp
  4. 2
      src/gui/toolbarMenubar/model/ToolbarData.h

@ -120,7 +120,8 @@ void ToolbarManageDialog::buttonDeleteCallback(GtkButton* button, ToolbarManageD
while (gtk_tree_model_iter_next(GTK_TREE_MODEL(dlg->model), &iter));
}
dlg->entrySelected(NULL);
dlg->updateSelectionData();
delete dlg->selected;
}
}
@ -192,19 +193,39 @@ void ToolbarManageDialog::entrySelected(ToolbarData* data)
this->selected = data;
}
void ToolbarManageDialog::treeSelectionChangedCallback(GtkTreeSelection* selection, ToolbarManageDialog* dlg)
void ToolbarManageDialog::updateSelectionData()
{
XOJ_CHECK_TYPE_OBJ(dlg, ToolbarManageDialog);
XOJ_CHECK_TYPE(ToolbarManageDialog);
GtkTreeIter iter;
GtkTreeModel* model = NULL;
ToolbarData* data = NULL;
GtkWidget* tree = get("toolbarList");
GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
if (selection == NULL)
{
entrySelected(NULL);
return;
}
if (gtk_tree_selection_get_selected(selection, &model, &iter))
{
gtk_tree_model_get(model, &iter, COLUMN_POINTER, &data, -1);
dlg->entrySelected(data);
entrySelected(data);
}
else
{
entrySelected(NULL);
}
}
void ToolbarManageDialog::treeSelectionChangedCallback(GtkTreeSelection* selection, ToolbarManageDialog* dlg)
{
XOJ_CHECK_TYPE_OBJ(dlg, ToolbarManageDialog);
dlg->updateSelectionData();
}
void ToolbarManageDialog::show(GtkWindow* parent)

@ -37,6 +37,8 @@ private:
void addToolbarData(ToolbarData* data);
void entrySelected(ToolbarData* data);
void updateSelectionData();
private:
XOJ_TYPE_ATTRIB;

@ -21,6 +21,19 @@ ToolbarData::ToolbarData(const ToolbarData& data)
this->predefined = false;
}
void ToolbarData::operator=(const ToolbarData& other)
{
this->id = other.id;
this->name = other.name;
this->predefined = other.predefined;
contents.clear();
for (const ToolbarEntry* e : other.contents)
{
contents.push_back(new ToolbarEntry(*e));
}
}
ToolbarData::~ToolbarData()
{
XOJ_CHECK_TYPE(ToolbarData);

@ -22,6 +22,8 @@ public:
ToolbarData(const ToolbarData& data);
virtual ~ToolbarData();
void operator=(const ToolbarData& other);
public:
string getName();
void setName(string name);

Loading…
Cancel
Save