diff options
| author | Marc Jeanmougin <marc@jeanmougin.fr> | 2017-10-01 21:57:52 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marc@jeanmougin.fr> | 2017-10-01 21:57:52 +0000 |
| commit | c20891fabc8c3ee2251e0545878e06545b6f0cdd (patch) | |
| tree | c19727ea5ec4c7fb90b7e4512a3cc5fb89f58945 /src/ui | |
| parent | Merge branch 'master' of gitlab.com:inkscape/inkscape (diff) | |
| download | inkscape-c20891fabc8c3ee2251e0545878e06545b6f0cdd.tar.gz inkscape-c20891fabc8c3ee2251e0545878e06545b6f0cdd.zip | |
First batch
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/contextmenu.cpp | 2 | ||||
| -rw-r--r-- | src/ui/dialog/clonetiler.cpp | 8 | ||||
| -rw-r--r-- | src/ui/dialog/grid-arrange-tab.cpp | 10 | ||||
| -rw-r--r-- | src/ui/dialog/tags.cpp | 8 | ||||
| -rw-r--r-- | src/ui/interface.cpp | 91 | ||||
| -rw-r--r-- | src/ui/widget/color-notebook.cpp | 5 |
6 files changed, 55 insertions, 69 deletions
diff --git a/src/ui/contextmenu.cpp b/src/ui/contextmenu.cpp index 1bc87574e..3ca752c82 100644 --- a/src/ui/contextmenu.cpp +++ b/src/ui/contextmenu.cpp @@ -253,7 +253,7 @@ context_menu_item_on_my_deselect(void */*object*/, SPAction *action) // TODO: Update this to allow radio items to be used -void ContextMenu::AppendItemFromVerb(Inkscape::Verb *verb)//, SPDesktop *view)//, bool radio, GSList *group) +void ContextMenu::AppendItemFromVerb(Inkscape::Verb *verb) { SPAction *action; SPDesktop *view = _desktop; diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index 5c9b31fb1..71edcf259 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -1993,18 +1993,16 @@ void CloneTiler::remove(bool do_undo/* = true*/) SPObject *parent = obj->parent; // remove old tiling - GSList *to_delete = NULL; + std::vector<SPObject *> to_delete; for (auto& child: parent->children) { if (is_a_clone_of (&child, obj)) { - to_delete = g_slist_prepend (to_delete, &child); + to_delete.push_back(&child); } } - for (GSList *i = to_delete; i; i = i->next) { - SPObject *obj = reinterpret_cast<SPObject *>(i->data); + for (auto obj:to_delete) { g_assert(obj != NULL); obj->deleteObject(); } - g_slist_free (to_delete); change_selection (selection); diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 6e08645cf..c16e60c5f 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -298,15 +298,14 @@ g_print("\n row = %f col = %f selection x= %f selection y = %f", total_row_h std::vector<SPItem*>::iterator it = sorted.begin(); for (row_cnt=0; ((it != sorted.end()) && (row_cnt<NoOfRows)); ++row_cnt) { - GSList *current_row = NULL; + std::vector<SPItem *> current_row; col_cnt = 0; for(;it!=sorted.end()&&col_cnt<NoOfCols;++it) { - current_row = g_slist_append (current_row, *it); + current_row.push_back(*it); col_cnt++; } - for (; current_row != NULL; current_row = current_row->next) { - SPItem *item=SP_ITEM(current_row->data); + for (auto item:current_row) { Inkscape::XML::Node *repr = item->getRepr(); Geom::OptRect b = item->documentVisualBounds(); Geom::Point min; @@ -330,10 +329,9 @@ g_print("\n row = %f col = %f selection x= %f selection y = %f", total_row_h Geom::Affine const affine = Geom::Affine(Geom::Translate(move)); item->set_i2d_affine(item->i2dt_affine() * affine); item->doWriteTransform(item->transform); - SP_OBJECT (current_row->data)->updateRepr(); + item->updateRepr(); cnt +=1; } - g_slist_free (current_row); } DocumentUndo::done(desktop->getDocument(), SP_VERB_SELECTION_ARRANGE, diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index 176719995..5a5417eb5 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -1103,14 +1103,6 @@ void TagsPanel::setDesktop( SPDesktop* desktop ) setDocument(_desktop, _desktop->doc()); } } -/* - GSList const *layers = _desktop->doc()->getResourceList( "layer" ); - g_message( "layers list starts at %p", layers ); - for ( GSList const *iter=layers ; iter ; iter = iter->next ) { - SPObject *layer=static_cast<SPObject *>(iter->data); - g_message(" {%s} [%s]", layer->id, layer->label() ); - } -*/ deskTrack.setBase(desktop); } diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 7a9b92378..f6a353b33 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -25,6 +25,8 @@ #include "ui/dialog/dialog-manager.h" #include <gtkmm/icontheme.h> +#include <gtkmm/radiomenuitem.h> +#include <gtkmm/separatormenuitem.h> #include "file.h" #include <glibmm/miscutils.h> @@ -220,19 +222,14 @@ sp_create_window(SPViewWidget *vw, bool editable) if ( completeDropTargets == 0 || completeDropTargetsCount == 0 ) { - std::vector<gchar*> types; - - GSList *list = gdk_pixbuf_get_formats(); - while ( list ) { - int i = 0; - GdkPixbufFormat *one = (GdkPixbufFormat*)list->data; - gchar** typesXX = gdk_pixbuf_format_get_mime_types(one); - for ( i = 0; typesXX[i]; i++ ) { - types.push_back(g_strdup(typesXX[i])); - } - g_strfreev(typesXX); + std::vector<Glib::ustring> types; - list = g_slist_next(list); + std::vector<Gdk::PixbufFormat> list = Gdk::Pixbuf::get_formats(); + for (auto one:list) { + std::vector<Glib::ustring> typesXX = one.get_mime_types(); + for (auto i:typesXX) { + types.push_back(i); + } } completeDropTargetsCount = nui_drop_target_entries + types.size(); completeDropTargets = new GtkTargetEntry[completeDropTargetsCount]; @@ -241,8 +238,8 @@ sp_create_window(SPViewWidget *vw, bool editable) } int pos = nui_drop_target_entries; - for (std::vector<gchar*>::iterator it = types.begin() ; it != types.end() ; ++it) { - completeDropTargets[pos].target = *it; + for (std::vector<Glib::ustring>::iterator it = types.begin() ; it != types.end() ; ++it) { + completeDropTargets[pos].target = g_strdup((*it).c_str()); completeDropTargets[pos].flags = 0; completeDropTargets[pos].info = IMAGE_DATA; pos++; @@ -451,14 +448,14 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *men Inkscape::UI::View::View *view, bool show_icon = false, bool radio = false, - GSList *group = NULL) + Gtk::RadioMenuItem::Group *group = NULL) { - GtkWidget *item; + Gtk::Widget *item; // Just create a menu separator if this isn't a real action. // Otherwise, create a real menu item if (verb->get_code() == SP_VERB_NONE) { - item = gtk_separator_menu_item_new(); + item = new Gtk::SeparatorMenuItem(); } else { SPAction *action = verb->get_action(Inkscape::ActionContext(view)); @@ -467,9 +464,9 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *men // Create the menu item itself, either as a radio menu item, or just // a regular menu item depending on whether the "radio" flag is set if (radio) { - item = gtk_radio_menu_item_new(group); + item = new Gtk::RadioMenuItem(*group); } else { - item = gtk_menu_item_new(); + item = new Gtk::MenuItem(); } // Create a box to contain all the widgets (icon, label, accelerator) @@ -490,8 +487,8 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *men GtkAccelGroup *accel_group = sp_shortcut_get_accel_group(); gtk_menu_set_accel_group(menu, accel_group); - sp_shortcut_add_accelerator(item, sp_shortcut_get_primary(verb)); - gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(label), item); + sp_shortcut_add_accelerator(item->gobj(), sp_shortcut_get_primary(verb)); + gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(label), item->gobj()); GtkWidget *icon; @@ -508,33 +505,34 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *men gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0); // Finally, pack all the widgets into the menu item - gtk_container_add(GTK_CONTAINER(item), box); + gtk_container_add(GTK_CONTAINER(item->gobj()), box); action->signal_set_sensitive.connect( sigc::bind<0>( sigc::ptr_fun(>k_widget_set_sensitive), - item)); + item->gobj())); action->signal_set_name.connect( sigc::bind<0>( sigc::ptr_fun(&sp_ui_menu_item_set_name), - item)); + item->gobj())); if (!action->sensitive) { - gtk_widget_set_sensitive(item, FALSE); + item->set_sensitive(false); } - gtk_widget_set_events(item, GDK_KEY_PRESS_MASK); - g_object_set_data(G_OBJECT(item), "view", (gpointer) view); - g_signal_connect( G_OBJECT(item), "activate", G_CALLBACK(sp_ui_menu_activate), action ); - g_signal_connect( G_OBJECT(item), "select", G_CALLBACK(sp_ui_menu_select_action), action ); - g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect_action), action ); + gtk_widget_set_events(item->gobj(), GDK_KEY_PRESS_MASK); + + g_object_set_data(G_OBJECT(item->gobj()), "view", (gpointer) view); + g_signal_connect( G_OBJECT(item->gobj()), "activate", G_CALLBACK(sp_ui_menu_activate), action ); + g_signal_connect( G_OBJECT(item->gobj()), "select", G_CALLBACK(sp_ui_menu_select_action), action ); + g_signal_connect( G_OBJECT(item->gobj()), "deselect", G_CALLBACK(sp_ui_menu_deselect_action), action ); } - gtk_widget_show_all(item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + item->show_all(); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item->gobj()); - return item; + return item->gobj(); } // end of sp_ui_menu_append_item_from_verb @@ -769,25 +767,24 @@ static void addTaskMenuItems(GtkMenu *menu, Inkscape::UI::View::View *view) 0, 0 }; - GSList *group = 0; + Gtk::RadioMenuItem::Group group; int count = 0; gint active = Inkscape::UI::UXManager::getInstance()->getDefaultTask( dynamic_cast<SPDesktop*>(view) ); for (gchar const **strs = data; strs[0]; strs += 2, count++) { - GtkWidget *item = gtk_radio_menu_item_new_with_label( group, strs[0] ); - group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(item) ); + Gtk::RadioMenuItem *item = new Gtk::RadioMenuItem(group,Glib::ustring(strs[0])); if ( count == active ) { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(item), TRUE ); + item->set_active(); } - g_object_set_data( G_OBJECT(item), "view", view ); - g_signal_connect( G_OBJECT(item), "toggled", reinterpret_cast<GCallback>(taskToggled), GINT_TO_POINTER(count) ); - g_signal_connect( G_OBJECT(item), "select", G_CALLBACK(sp_ui_menu_select), const_cast<gchar*>(strs[1]) ); - g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect), 0 ); + g_object_set_data( G_OBJECT(item->gobj()), "view", view ); + g_signal_connect( G_OBJECT(item->gobj()), "toggled", reinterpret_cast<GCallback>(taskToggled), GINT_TO_POINTER(count) ); + g_signal_connect( G_OBJECT(item->gobj()), "select", G_CALLBACK(sp_ui_menu_select), const_cast<gchar*>(strs[1]) ); + g_signal_connect( G_OBJECT(item->gobj()), "deselect", G_CALLBACK(sp_ui_menu_deselect), 0 ); - gtk_widget_show( item ); - gtk_menu_shell_append( GTK_MENU_SHELL(menu), item ); + item->show(); + gtk_menu_shell_append( GTK_MENU_SHELL(menu), GTK_WIDGET(item->gobj()) ); } } @@ -831,7 +828,7 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I { if (menus == NULL) return; if (menu == NULL) return; - GSList *group = NULL; + Gtk::RadioMenuItem::Group group; for (Inkscape::XML::Node *menu_pntr = menus; menu_pntr != NULL; @@ -863,8 +860,7 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I if (verb != NULL) { if (menu_pntr->attribute("radio") != NULL) { - GtkWidget *item = sp_ui_menu_append_item_from_verb (GTK_MENU(menu), verb, view, show_icon, true, group); - group = gtk_radio_menu_item_get_group( GTK_RADIO_MENU_ITEM(item)); + GtkWidget *item = sp_ui_menu_append_item_from_verb (GTK_MENU(menu), verb, view, show_icon, true, &group); if (menu_pntr->attribute("default") != NULL) { gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); } @@ -880,7 +876,8 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I } } else { sp_ui_menu_append_item_from_verb(GTK_MENU(menu), verb, view, show_icon); - group = NULL; + Gtk::RadioMenuItem::Group group2; + group = group2; } } else { gchar string[120]; diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index a4df8187f..ba333d0ed 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -22,6 +22,7 @@ #include <glibmm/i18n.h> #include <gtkmm/label.h> #include <gtkmm/notebook.h> +#include <gtkmm/radiobutton.h> #include "preferences.h" #include "widgets/spw-utilities.h" @@ -325,8 +326,8 @@ void ColorNotebook::_addPage(Page &page) _buttons[page_num] = gtk_radio_button_new_with_label(NULL, mode_name.c_str()); gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(_buttons[page_num]), FALSE); if (page_num > 0) { - GSList *group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(_buttons[0])); - gtk_radio_button_set_group(GTK_RADIO_BUTTON(_buttons[page_num]), group); + auto g = Glib::wrap(GTK_RADIO_BUTTON(_buttons[0]))->get_group(); + Glib::wrap(GTK_RADIO_BUTTON(_buttons[page_num]))->set_group(g); } gtk_widget_show(_buttons[page_num]); gtk_box_pack_start(GTK_BOX(_buttonbox), _buttons[page_num], TRUE, TRUE, 0); |
