presentation
andreasb123 15 years ago
parent 07c5df1345
commit 2f4f2ab3f4
  1. 20
      src/control/Control.cpp
  2. 7
      src/gui/dialog/toolbarCustomize/ToolbarAdapter.h
  3. 2
      src/gui/dialog/toolbarCustomize/ToolbarDragDropHandler.cpp
  4. 2
      src/gui/toolbarMenubar/model/ToolbarData.cpp
  5. 18
      src/gui/toolbarMenubar/model/ToolbarModel.cpp
  6. 2
      src/gui/toolbarMenubar/model/ToolbarModel.h

@ -882,10 +882,24 @@ void Control::customizeToolbars() {
if (res == -8) { // Yes
ToolbarData * data = new ToolbarData(*this->win->getSelectedToolbar());
data->setName(data->getName() + _(" Copy"));
data->setId(data->getId() + _(" Copy"));
ToolbarModel * model = this->win->getToolbarModel();
this->win->getToolbarModel()->add(data);
for (int i = 0; i < 100; i++) {
String id = data->getId() + " Copy";
if(i != 0) {
id += " ";
id += i;
}
if (!model->existsId(id)) {
data->setName(data->getName() + _(" Copy"));
data->setId(data->getId() + " Copy");
break;
}
}
model->add(data);
this->win->toolbarSelected(data);
// TODO: !!! update toolbar menu
} else {

@ -69,6 +69,11 @@ private:
GtkWidget * w = GTK_WIDGET(this->spacerItem);
GtkWidget * parent = gtk_widget_get_parent(w);
gtk_container_remove(GTK_CONTAINER(parent), w);
GtkToolbar * tb = GTK_TOOLBAR(this->w);
if(gtk_toolbar_get_n_items(tb) == 0) {
gtk_widget_hide(this->w);
}
}
void showToolbar() {
@ -81,7 +86,7 @@ private:
this->spacerItem = it;
gtk_toolbar_insert(tb, it, 0);
// TODO: ist hier wirklich metadata nötig?
// TODO: !!!! ist hier wirklich metadata nötig?
// ToolitemDragDrop::attachMetadata(GTK_WIDGET(it), -2, NULL);
GtkOrientation orientation = gtk_toolbar_get_orientation(tb);

@ -77,6 +77,8 @@ void ToolbarDragDropHandler::toolbarConfigDialogClosed() {
delete this->customizeDialog;
this->customizeDialog = NULL;
printf("ToolbarDragDropHandler::toolbarConfigDialogClosed()\n");
MainWindow * win = control->getWindow();
this->clearToolbarsFromDragAndDrop();

@ -105,7 +105,7 @@ void ToolbarData::saveToKeyFile(GKeyFile * config) {
line += *it.next();
}
if (line.length() < 2) {
if (line.length() > 2) {
g_key_file_set_string(config, group, e.getName().c_str(), line.substring(1).c_str());
}
}

@ -97,6 +97,20 @@ bool ToolbarModel::parse(const char * file, bool predefined) {
return true;
}
bool ToolbarModel::existsId(String id) {
XOJ_CHECK_TYPE(ToolbarModel);
for(GList * l = this->toolbars; l != NULL; l = l->next) {
ToolbarData * data = (ToolbarData *) l->data;
if(data->getName() == id) {
return true;
}
}
return false;
}
const char * TOOLBAR_INI_HEADER =
"# Xournal++ Toolbar configuration\n"
"# Here you can customize the Toolbars\n"
@ -144,6 +158,10 @@ void ToolbarModel::save(const char * filename) {
gsize len = 0;
char * data = g_key_file_to_data(config, &len, NULL);
printf("->%s\n", data);
FILE * fp = fopen(filename, "w");
fwrite(data, 1, len, fp);
fclose(fp);

@ -15,6 +15,7 @@
#include <glib.h>
#include <ListIterator.h>
#include <XournalType.h>
#include <String.h>
class ToolbarData;
@ -30,6 +31,7 @@ public:
void add(ToolbarData * data);
void remove(ToolbarData * data);
void save(const char * filename);
bool existsId(String id);
private:
void parseGroup(GKeyFile * config, const char * group, bool predefined);

Loading…
Cancel
Save