From add9001e02f0ae7e917ad0f56532c42297fe555e Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Mon, 11 Jun 2012 02:15:14 +0100 Subject: Fix some broken callbacks for Gtk+ 3 (bzr r11486) --- src/interface.cpp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index fb4e5cf8f..f6b0ebede 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -550,8 +550,11 @@ checkitem_toggled(GtkCheckMenuItem *menuitem, gpointer user_data) reinterpret_cast(view)->layoutWidget(); } -static gboolean -checkitem_update(GtkWidget *widget, GdkEventExpose */*event*/, gpointer user_data) +#if GTK_CHECK_VERSION(3,0,0) +static gboolean checkitem_update(GtkWidget *widget, cairo_t * /*cr*/, gpointer user_data) +#else +static gboolean checkitem_update(GtkWidget *widget, GdkEventExpose * /*event*/, gpointer user_data) +#endif { GtkCheckMenuItem *menuitem=GTK_CHECK_MENU_ITEM(widget); @@ -589,7 +592,11 @@ static void taskToggled(GtkCheckMenuItem *menuitem, gpointer userData) /** * Callback function to update the status of the radio buttons in the View -> Display mode menu (Normal, No Filters, Outline) and Color display mode. */ -static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose */*event*/, gpointer user_data) +#if GTK_CHECK_VERSION(3,0,0) +static gboolean update_view_menu(GtkWidget *widget, cairo_t * /*cr*/, gpointer user_data) +#else +static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose * /*event*/, gpointer user_data) +#endif { SPAction *action = (SPAction *) user_data; g_assert(action->id != NULL); @@ -633,7 +640,11 @@ static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose */*event*/, g void sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View *view, gchar const *label, gchar const *tip, gchar const *pref, void (*callback_toggle)(GtkCheckMenuItem *, gpointer user_data), +#if GTK_CHECK_VERSION(3,0,0) + gboolean (*callback_update)(GtkWidget *widget, cairo_t *cr, gpointer user_data), +#else gboolean (*callback_update)(GtkWidget *widget, GdkEventExpose *event, gpointer user_data), +#endif Inkscape::Verb *verb) { unsigned int shortcut = (verb) ? sp_shortcut_get_primary(verb) : 0; @@ -683,7 +694,12 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View * g_object_set_data(G_OBJECT(item), "view", (gpointer) view); g_signal_connect( G_OBJECT(item), "toggled", (GCallback) callback_toggle, (void *) pref); + +#if GTK_CHECK_VERSION(3,0,0) + g_signal_connect( G_OBJECT(item), "draw", (GCallback) callback_update, (void *) pref); +#else g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) callback_update, (void *) pref); +#endif g_signal_connect( G_OBJECT(item), "select", G_CALLBACK(sp_ui_menu_select), (gpointer) (action ? action->tip : tip)); g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect), NULL); @@ -894,7 +910,11 @@ void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape } if (verb->get_code() != SP_VERB_NONE) { SPAction *action = verb->get_action(view); +#if GTK_CHECK_VERSION(3,0,0) + g_signal_connect( G_OBJECT(item), "draw", (GCallback) update_view_menu, (void *) action); +#else g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) update_view_menu, (void *) action); +#endif } } else { sp_ui_menu_append_item_from_verb(GTK_MENU(menu), verb, view); -- cgit v1.2.3 From 9abd33133650d77714fccf09d0c9ff27c9b75a78 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 5 Jul 2012 22:39:08 +0100 Subject: Drop GTK+ 2.20 support. Fixed bugs: - https://launchpad.net/bugs/1020494 (bzr r11529) --- src/interface.cpp | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index f6b0ebede..c97d84082 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -83,10 +83,6 @@ #include #include -#if !GTK_CHECK_VERSION(2,22,0) -#include "compat-key-syms.h" -#endif - using Inkscape::DocumentUndo; /* Drag and Drop */ @@ -1124,11 +1120,7 @@ sp_ui_drag_data_received(GtkWidget *widget, //} if (!consumed && item) { -#if GTK_CHECK_VERSION (2, 22, 0) bool fillnotstroke = (gdk_drag_context_get_actions (drag_context) != GDK_ACTION_MOVE); -#else - bool fillnotstroke = (drag_context->action != GDK_ACTION_MOVE); -#endif if (fillnotstroke && (SP_IS_SHAPE(item) || SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item))) { Path *livarot_path = Path_for_item(item, true, true); @@ -1231,11 +1223,7 @@ sp_ui_drag_data_received(GtkWidget *widget, } if (!consumed && item) { -#if GTK_CHECK_VERSION (2, 22, 0) bool fillnotstroke = (gdk_drag_context_get_actions (drag_context) != GDK_ACTION_MOVE); -#else - bool fillnotstroke = (drag_context->action != GDK_ACTION_MOVE); -#endif if (fillnotstroke && (SP_IS_SHAPE(item) || SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item))) { Path *livarot_path = Path_for_item(item, true, true); -- cgit v1.2.3 From d71d34161792bd83064081bda825ef9579825b78 Mon Sep 17 00:00:00 2001 From: John Smith Date: Wed, 25 Jul 2012 11:42:34 +0900 Subject: Fix for 722625 : Select Same by Object Type (bzr r11573) --- src/interface.cpp | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 5 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index c97d84082..25799b7b8 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1711,16 +1711,51 @@ void ContextMenu::MakeItemMenu (void) mi->show(); append(*mi); - /* Select same fill and stroke */ - mi = manage(new Gtk::MenuItem(_("_Select Same Fill and Stroke"),1)); + + + mi = manage(new Gtk::MenuItem(_("Select Same"))); + mi->show(); + Gtk::Menu *select_same_submenu = manage(new Gtk::Menu()); if (_desktop->selection->isEmpty()) { mi->set_sensitive(FALSE); - } else { - mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::SelectSameFillStroke)); } + mi->set_submenu(*select_same_submenu); + append(*mi); + + /* Select same fill and stroke */ + mi = manage(new Gtk::MenuItem(_("Fill and Stroke"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::SelectSameFillStroke)); mi->set_sensitive(!SP_IS_ANCHOR(_item)); mi->show(); - append(*mi); + select_same_submenu->append(*mi); + + /* Select same fill color */ + mi = manage(new Gtk::MenuItem(_("Fill Color"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::SelectSameFillColor)); + mi->set_sensitive(!SP_IS_ANCHOR(_item)); + mi->show(); + select_same_submenu->append(*mi); + + /* Select same stroke color */ + mi = manage(new Gtk::MenuItem(_("Stroke Color"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::SelectSameStrokeColor)); + mi->set_sensitive(!SP_IS_ANCHOR(_item)); + mi->show(); + select_same_submenu->append(*mi); + + /* Select same stroke style */ + mi = manage(new Gtk::MenuItem(_("Stroke Style"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::SelectSameStrokeStyle)); + mi->set_sensitive(!SP_IS_ANCHOR(_item)); + mi->show(); + select_same_submenu->append(*mi); + + /* Select same stroke style */ + mi = manage(new Gtk::MenuItem(_("Object type"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::SelectSameObjectType)); + mi->set_sensitive(!SP_IS_ANCHOR(_item)); + mi->show(); + select_same_submenu->append(*mi); /* Create link */ mi = manage(new Gtk::MenuItem(_("_Create Link"),1)); @@ -1795,6 +1830,26 @@ void ContextMenu::SelectSameFillStroke(void) sp_select_same_fill_stroke_style(_desktop, true, true, true); } +void ContextMenu::SelectSameFillColor(void) +{ + sp_select_same_fill_stroke_style(_desktop, true, false, false); +} + +void ContextMenu::SelectSameStrokeColor(void) +{ + sp_select_same_fill_stroke_style(_desktop, false, true, false); +} + +void ContextMenu::SelectSameStrokeStyle(void) +{ + sp_select_same_stroke_style(_desktop); +} + +void ContextMenu::SelectSameObjectType(void) +{ + sp_select_same_object_type(_desktop); +} + void ContextMenu::ItemProperties(void) { _desktop->selection->set(_item); -- cgit v1.2.3 From cb9c625f18ed64e1e9d2f378fa2a601367fc2fe3 Mon Sep 17 00:00:00 2001 From: John Smith Date: Wed, 1 Aug 2012 18:20:14 +0900 Subject: Fix for 918894 : Remove link is reported as Ungroup in Undo history (bzr r11580) --- src/interface.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 25799b7b8..1d09f2b72 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1960,7 +1960,8 @@ void ContextMenu::AnchorLinkFollow(void) void ContextMenu::AnchorLinkRemove(void) { GSList *children = NULL; - sp_item_group_ungroup(static_cast(_item), &children); + sp_item_group_ungroup(static_cast(_item), &children, false); + DocumentUndo::done(_desktop->doc(), SP_VERB_NONE, _("Remove link")); g_slist_free(children); } -- cgit v1.2.3 From 0d1d59a3dfe51740e7601dba044c9ed979e4c9f7 Mon Sep 17 00:00:00 2001 From: John Smith Date: Thu, 9 Aug 2012 16:23:35 +0900 Subject: Fix for 819671 : No visual indication for grid and snap being on/off (bzr r11600) --- src/interface.cpp | 71 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 62 insertions(+), 9 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 1d09f2b72..ac624f0e1 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -534,16 +534,34 @@ checkitem_toggled(GtkCheckMenuItem *menuitem, gpointer user_data) { gchar const *pref = (gchar const *) user_data; Inkscape::UI::View::View *view = (Inkscape::UI::View::View *) g_object_get_data(G_OBJECT(menuitem), "view"); + SPAction *action = (SPAction *) g_object_get_data(G_OBJECT(menuitem), "action"); + if (action) { + + sp_ui_menu_activate(menuitem, action); + + } else if (pref) { + // The Show/Hide menu items without actions + Glib::ustring pref_path = getLayoutPrefPath( view ); + pref_path += pref; + pref_path += "/state"; + + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + gboolean checked = gtk_check_menu_item_get_active(menuitem); + prefs->setBool(pref_path, checked); + + reinterpret_cast(view)->layoutWidget(); + } +} + +static bool getViewStateFromPref(Inkscape::UI::View::View *view, gchar const *pref) +{ Glib::ustring pref_path = getLayoutPrefPath( view ); pref_path += pref; pref_path += "/state"; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - gboolean checked = gtk_check_menu_item_get_active(menuitem); - prefs->setBool(pref_path, checked); - - reinterpret_cast(view)->layoutWidget(); + return prefs->getBool(pref_path, true); } #if GTK_CHECK_VERSION(3,0,0) @@ -556,13 +574,34 @@ static gboolean checkitem_update(GtkWidget *widget, GdkEventExpose * /*event*/, gchar const *pref = (gchar const *) user_data; Inkscape::UI::View::View *view = (Inkscape::UI::View::View *) g_object_get_data(G_OBJECT(menuitem), "view"); + SPAction *action = (SPAction *) g_object_get_data(G_OBJECT(menuitem), "action"); + SPDesktop *dt = static_cast(view); - Glib::ustring pref_path = getLayoutPrefPath( view ); - pref_path += pref; - pref_path += "/state"; + bool ison = false; + if (action) { - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - bool ison = prefs->getBool(pref_path, true); + if (!strcmp(action->id, "ToggleGrid")) { + ison = dt->gridsEnabled(); + } + if (!strcmp(action->id, "ToggleGuides")) { + ison = dt->namedview->getGuides(); + } + if (!strcmp(action->id, "ToggleSnapGlobal")) { + ison = dt->namedview->getSnapGlobal(); + } + if (!strcmp(action->id, "ViewCmsToggle")) { + ison = dt->colorProfAdjustEnabled(); + } + if (!strcmp(action->id, "ToggleRulers")) { + ison = getViewStateFromPref(view, pref); + } + if (!strcmp(action->id, "ToggleScrollbars")) { + ison = getViewStateFromPref(view, pref); + } + } else if (pref) { + // The Show/Hide menu items without actions + ison = getViewStateFromPref(view, pref); + } g_signal_handlers_block_by_func(G_OBJECT(menuitem), (gpointer)(GCallback)checkitem_toggled, user_data); gtk_check_menu_item_set_active(menuitem, ison); @@ -571,6 +610,7 @@ static gboolean checkitem_update(GtkWidget *widget, GdkEventExpose * /*event*/, return FALSE; } + static void taskToggled(GtkCheckMenuItem *menuitem, gpointer userData) { if ( gtk_check_menu_item_get_active(menuitem) ) { @@ -647,6 +687,7 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View * SPAction *action = (verb) ? verb->get_action(view) : 0; GtkWidget *item = gtk_check_menu_item_new(); + if (verb && shortcut!=GDK_KEY_VoidSymbol) { gchar* c = sp_shortcut_get_label(shortcut); @@ -688,6 +729,7 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View * gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); g_object_set_data(G_OBJECT(item), "view", (gpointer) view); + g_object_set_data(G_OBJECT(item), "action", (gpointer) action); g_signal_connect( G_OBJECT(item), "toggled", (GCallback) callback_toggle, (void *) pref); @@ -697,8 +739,11 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View * g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) callback_update, (void *) pref); #endif + (*callback_update)(item, NULL, (void *)pref); + g_signal_connect( G_OBJECT(item), "select", G_CALLBACK(sp_ui_menu_select), (gpointer) (action ? action->tip : tip)); g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect), NULL); + } static void @@ -912,6 +957,14 @@ void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape g_signal_connect( G_OBJECT(item), "expose_event", (GCallback) update_view_menu, (void *) action); #endif } + } else if (menu_pntr->attribute("check") != NULL) { + SPAction *action = NULL; + if (verb->get_code() != SP_VERB_NONE) { + action = verb->get_action(view); + } + sp_ui_menu_append_check_item_from_verb(GTK_MENU(menu), view, action->name, action->tip, NULL, + checkitem_toggled, checkitem_update, verb); + } else { sp_ui_menu_append_item_from_verb(GTK_MENU(menu), verb, view); group = NULL; -- cgit v1.2.3 From ba7bc9962c95a891aab90b5665d813867d72a4c4 Mon Sep 17 00:00:00 2001 From: John Smith Date: Thu, 30 Aug 2012 08:27:47 +0900 Subject: Fix for 980520 : Conflicting accelerator keys (bzr r11631) --- src/interface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index ac624f0e1..4b40d0bdd 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1811,7 +1811,7 @@ void ContextMenu::MakeItemMenu (void) select_same_submenu->append(*mi); /* Create link */ - mi = manage(new Gtk::MenuItem(_("_Create Link"),1)); + mi = manage(new Gtk::MenuItem(_("Create _Link"),1)); mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ItemCreateLink)); mi->set_sensitive(!SP_IS_ANCHOR(_item)); mi->show(); @@ -1856,7 +1856,7 @@ void ContextMenu::MakeItemMenu (void) append(*mi); /* Set Clip */ - mi = manage(new Gtk::MenuItem(_("Set _Clip"),1)); + mi = manage(new Gtk::MenuItem(_("Set Cl_ip"),1)); mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::SetClip)); if (ClipRefOK || MaskRefOK) { mi->set_sensitive(FALSE); -- cgit v1.2.3 From a51385827276535559541fb2e4c5145876a7d08a Mon Sep 17 00:00:00 2001 From: John Smith Date: Thu, 30 Aug 2012 09:22:17 +0900 Subject: Fix for 170550 : open blank document on 'close' (bzr r11632) --- src/interface.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 4b40d0bdd..71be84f59 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -314,6 +314,17 @@ sp_ui_close_view(GtkWidget */*widget*/) return; // Shutdown operation has been canceled, so do nothing } + // If closing the last document, open a new document so Inkscape doesn't quit. + std::list desktops; + inkscape_get_all_desktops(desktops); + if (desktops.size() == 1) { + Glib::ustring templateUri = sp_file_default_template_uri(); + SPDocument *doc = SPDocument::createNewDoc( templateUri.c_str() , TRUE, true ); + dt->change_document(doc); + sp_namedview_window_from_document(dt); + return; + } + // Shutdown can proceed; use the stored reference to the desktop here instead of the current SP_ACTIVE_DESKTOP, // because the user might have changed the focus in the meantime (see bug #381357 on Launchpad) dt->destroyWidget(); -- cgit v1.2.3 From b3f55760cbb99bd4cc96d86eae8068e724d0abe9 Mon Sep 17 00:00:00 2001 From: John Smith Date: Sun, 2 Sep 2012 13:24:45 +0900 Subject: Fix for 273539 : Add Group action to the context menu (bzr r11640) --- src/interface.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 71be84f59..b10ba3077 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1887,6 +1887,17 @@ void ContextMenu::MakeItemMenu (void) } mi->show(); append(*mi); + + /* Group */ + mi = manage(new Gtk::MenuItem(_("_Group"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ActivateGroup)); + if (_desktop->selection->isEmpty() || _desktop->selection->single()) { + mi->set_sensitive(FALSE); + } else { + mi->set_sensitive(TRUE); + } + mi->show(); + append(*mi); } void ContextMenu::SelectSameFillStroke(void) @@ -1979,6 +1990,11 @@ void ContextMenu::MakeGroupMenu(void) append(*mi); } +void ContextMenu::ActivateGroup(void) +{ + sp_selection_group(_desktop); +} + void ContextMenu::ActivateUngroup(void) { GSList *children = NULL; -- cgit v1.2.3 From d99ebfe27cca750966d0483360394a3039cb365e Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Thu, 20 Sep 2012 16:11:29 +0200 Subject: Fix for Bug #944787 (The command to follow link does not work). (bzr r11684) --- src/interface.cpp | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index b10ba3077..710211fe7 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1766,15 +1766,16 @@ void ContextMenu::MakeItemMenu (void) AddSeparator(); /* Select item */ - mi = manage(new Gtk::MenuItem(_("_Select This"),1)); - if (_desktop->selection->includes(_item)) { - mi->set_sensitive(FALSE); - } else { - mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ItemSelectThis)); + if (Inkscape::Verb::getbyid( "org.inkscape.followlink" )) { + mi = manage(new Gtk::MenuItem(_("_Select This"),1)); + if (_desktop->selection->includes(_item)) { + mi->set_sensitive(FALSE); + } else { + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ItemSelectThis)); + } + mi->show(); + append(*mi); } - mi->show(); - append(*mi); - mi = manage(new Gtk::MenuItem(_("Select Same"))); @@ -2034,7 +2035,18 @@ void ContextMenu::AnchorLinkProperties(void) void ContextMenu::AnchorLinkFollow(void) { - /* shell out to an external browser here */ + + if (_desktop->selection->isEmpty()) { + _desktop->selection->set(_item); + } + // Opening the selected links with a python extension + Inkscape::Verb *verb = Inkscape::Verb::getbyid( "org.inkscape.followlink" ); + if (verb) { + SPAction *action = verb->get_action(_desktop); + if (action) { + sp_action_perform(action, NULL); + } + } } void ContextMenu::AnchorLinkRemove(void) -- cgit v1.2.3 From 3d71bbcdde6255ee9e587124aaccf58dd8741ed6 Mon Sep 17 00:00:00 2001 From: su_v Date: Fri, 21 Sep 2012 14:24:26 +0200 Subject: Fix for bug #1053024: set current layer from template in new blank document after closing last window Fixed bugs: - https://launchpad.net/bugs/1053024 (bzr r11689) --- src/interface.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 710211fe7..acd56f8da 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -322,6 +322,7 @@ sp_ui_close_view(GtkWidget */*widget*/) SPDocument *doc = SPDocument::createNewDoc( templateUri.c_str() , TRUE, true ); dt->change_document(doc); sp_namedview_window_from_document(dt); + sp_namedview_update_layers_from_document(dt); return; } -- cgit v1.2.3 From 3f61bc675d5f2f0c92d7906b8552b09df3cd411f Mon Sep 17 00:00:00 2001 From: John Smith Date: Sat, 22 Sep 2012 21:14:14 +0900 Subject: Fix for 172222 : Move direct to specified layer (bzr r11695) --- src/interface.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index acd56f8da..c3dbc47c8 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -79,6 +79,7 @@ // #include "inkscape.h" #include "ui/dialog/dialog-manager.h" // #include "../xml/repr.h" +#include "ui/dialog/layer-properties.h" #include #include @@ -1823,6 +1824,16 @@ void ContextMenu::MakeItemMenu (void) mi->show(); select_same_submenu->append(*mi); + /* Move to layer */ + mi = manage(new Gtk::MenuItem(_("_Move to layer ..."),1)); + if (_desktop->selection->isEmpty()) { + mi->set_sensitive(FALSE); + } else { + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ItemMoveTo)); + } + mi->show(); + append(*mi); + /* Create link */ mi = manage(new Gtk::MenuItem(_("Create _Link"),1)); mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ItemCreateLink)); @@ -1938,6 +1949,13 @@ void ContextMenu::ItemSelectThis(void) _desktop->selection->set(_item); } +void ContextMenu::ItemMoveTo(void) +{ + Inkscape::UI::Dialogs::LayerPropertiesDialog::showMove(_desktop, _desktop->currentLayer()); +} + + + void ContextMenu::ItemCreateLink(void) { Inkscape::XML::Document *xml_doc = _desktop->doc()->getReprDoc(); -- cgit v1.2.3 From a17956f9fa43854a9b0f3b0a72542cdadfad916a Mon Sep 17 00:00:00 2001 From: John Smith Date: Sun, 23 Sep 2012 11:44:45 +0900 Subject: Fix for 170395 : Add Trace Bitmap to context menu of images (bzr r11697) --- src/interface.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index c3dbc47c8..0db046559 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -2097,6 +2097,12 @@ void ContextMenu::MakeImageMenu (void) mi->set_sensitive( FALSE ); } + /* Trace Bitmap */ + mi = manage(new Gtk::MenuItem(_("_Trace Bitmap..."),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ImageTraceBitmap)); + mi->show(); + insert(*mi,positionOfLastDialog++); + /* Embed image */ if (Inkscape::Verb::getbyid( "org.ekips.filter.embedselectedimages" )) { mi = manage(new Gtk::MenuItem(C_("Context menu", "Embed Image"))); @@ -2208,6 +2214,12 @@ void ContextMenu::ImageEdit(void) } } +void ContextMenu::ImageTraceBitmap(void) +{ + inkscape_dialogs_unhide(); + _desktop->_dlg_mgr->showDialog("Trace"); +} + void ContextMenu::ImageEmbed(void) { if (_desktop->selection->isEmpty()) { -- cgit v1.2.3 From f29a0a4399cac653df3df4be98ff04cbfc4773cc Mon Sep 17 00:00:00 2001 From: John Smith Date: Sun, 23 Sep 2012 17:33:15 +0900 Subject: Fix for 170395 : Add Trace Bitmap to context menu of images : Focus fix (bzr r11698) --- src/interface.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 0db046559..fdfdce5ae 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -2102,6 +2102,9 @@ void ContextMenu::MakeImageMenu (void) mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ImageTraceBitmap)); mi->show(); insert(*mi,positionOfLastDialog++); + if (_desktop->selection->isEmpty()) { + mi->set_sensitive(FALSE); + } /* Embed image */ if (Inkscape::Verb::getbyid( "org.ekips.filter.embedselectedimages" )) { -- cgit v1.2.3 From c877d257fed8ff721d23d9e5d841be08bd769559 Mon Sep 17 00:00:00 2001 From: John Smith Date: Sun, 30 Sep 2012 14:15:19 +0900 Subject: Fix for 681625 : sort template names under File->New (bzr r11717) --- src/interface.cpp | 150 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 99 insertions(+), 51 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index fdfdce5ae..f26b7ac74 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -778,69 +778,117 @@ sp_file_new_from_template(GtkWidget */*widget*/, gchar const *uri) sp_file_new(uri); } -void -sp_menu_append_new_templates(GtkWidget *menu, Inkscape::UI::View::View *view) -{ - std::list sources; - sources.push_back( profile_path("templates") ); // first try user's local dir - sources.push_back( g_strdup(INKSCAPE_TEMPLATESDIR) ); // then the system templates dir - // Use this loop to iterate through a list of possible document locations. - while (!sources.empty()) { - gchar *dirname = sources.front(); +static bool +compare_file_basenames(gchar const *a, gchar const *b) { + bool rc; + gchar *ba, *bb; - if ( Inkscape::IO::file_test( dirname, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR) ) ) { - GError *err = 0; - GDir *dir = g_dir_open(dirname, 0, &err); + bool sort_by_fullname = true; // Sort by full name (including path) or just filename + if (sort_by_fullname) { + ba = g_strdup(a); + bb = g_strdup(b); + } else { + ba = g_path_get_basename(a); + bb = g_path_get_basename(b); + } - if (dir) { - for (gchar const *file = g_dir_read_name(dir); file != NULL; file = g_dir_read_name(dir)) { - if (!g_str_has_suffix(file, ".svg") && !g_str_has_suffix(file, ".svgz")) { - continue; // skip non-svg files - } + gchar *fa = g_filename_to_utf8(ba, -1, NULL, NULL, NULL); + gchar *fb = g_filename_to_utf8(bb, -1, NULL, NULL, NULL); + g_free(ba); + g_free(bb); - { - gchar *basename = g_path_get_basename(file); - if (g_str_has_suffix(basename, ".svg") && g_str_has_prefix(basename, "default.")) { - g_free(basename); - basename = 0; - continue; // skip default.*.svg (i.e. default.svg and translations) - it's in the menu already - } + rc = g_utf8_collate(fa, fb) < 0; + + g_free(fa); + g_free(fb); + + return rc; +} + +void +sp_menu_get_svg_filenames_from_dir(gchar const *dirname, std::list *files) +{ + if ( Inkscape::IO::file_test( dirname, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR) ) ) { + GError *err = 0; + GDir *dir = g_dir_open(dirname, 0, &err); + + if (dir) { + for (gchar const *file = g_dir_read_name(dir); file != NULL; file = g_dir_read_name(dir)) { + if (!g_str_has_suffix(file, ".svg") && !g_str_has_suffix(file, ".svgz")) { + continue; // skip non-svg files + } + + { + gchar *basename = g_path_get_basename(file); + if (g_str_has_suffix(basename, ".svg") && g_str_has_prefix(basename, "default.")) { g_free(basename); basename = 0; + continue; // skip default.*.svg (i.e. default.svg and translations) - it's in the menu already } - - gchar const *filepath = g_build_filename(dirname, file, NULL); - gchar *dupfile = g_strndup(file, strlen(file) - 4); - gchar *filename = g_filename_to_utf8(dupfile, -1, NULL, NULL, NULL); - g_free(dupfile); - GtkWidget *item = gtk_menu_item_new_with_label(filename); - g_free(filename); - - gtk_widget_show(item); - // how does "filepath" ever get freed? - g_signal_connect(G_OBJECT(item), - "activate", - G_CALLBACK(sp_file_new_from_template), - (gpointer) filepath); - - if (view) { - // set null tip for now; later use a description from the template file - g_object_set_data(G_OBJECT(item), "view", (gpointer) view); - g_signal_connect( G_OBJECT(item), "select", G_CALLBACK(sp_ui_menu_select), (gpointer) NULL ); - g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect), NULL); - } - - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + g_free(basename); + basename = 0; } - g_dir_close(dir); + + gchar const *filepath = g_build_filename(dirname, file, NULL); + files->push_front(filepath); } + g_dir_close(dir); + } + } + + files->sort(compare_file_basenames); +} + +void +sp_menu_add_filenames_to_menu(GtkWidget *menu, Inkscape::UI::View::View *view, std::list *files) +{ + if (!files->empty()) { + GtkWidget *sep = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), sep); + } + + for(std::list::iterator it=files->begin(); it != files->end(); ++it) { + gchar const *filepath = *it; + gchar const *file = g_path_get_basename(filepath); + gchar *dupfile = g_strndup(file, strlen(file) - 4); + gchar *filename = g_filename_to_utf8(dupfile, -1, NULL, NULL, NULL); + g_free(dupfile); + + GtkWidget *item = gtk_menu_item_new_with_label(filename); + g_free(filename); + + gtk_widget_show(item); + // how does "filepath" ever get freed? + g_signal_connect(G_OBJECT(item), + "activate", + G_CALLBACK(sp_file_new_from_template), + (gpointer) filepath); + + if (view) { + // set null tip for now; later use a description from the template file + g_object_set_data(G_OBJECT(item), "view", (gpointer) view); + g_signal_connect( G_OBJECT(item), "select", G_CALLBACK(sp_ui_menu_select), (gpointer) NULL ); + g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect), NULL); } - // toss the dirname - g_free(dirname); - sources.pop_front(); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); } + +} +void +sp_menu_append_new_templates(GtkWidget *menu, Inkscape::UI::View::View *view) +{ + // user's local dir + std::list userfiles; + sp_menu_get_svg_filenames_from_dir(profile_path("templates"), &userfiles); + sp_menu_add_filenames_to_menu(menu, view, &userfiles); + + // system templates dir + std::list templatefiles; + sp_menu_get_svg_filenames_from_dir(INKSCAPE_TEMPLATESDIR, &templatefiles); + sp_menu_add_filenames_to_menu(menu, view, &templatefiles); + } void -- cgit v1.2.3 From 370a3f5cc9e39352a081e5d5dd8c43676547a6e6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Oct 2012 11:45:44 +1000 Subject: code cleanup: add own includes to cpp files or make the functions static if they are not used elsewhere. (bzr r11735) --- src/interface.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index f26b7ac74..2ee188ef7 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -396,7 +396,7 @@ sp_ui_menu_deselect(gpointer object) /** * Creates and attaches a scaled icon to the given menu item. */ -void +static void sp_ui_menuitem_add_icon( GtkWidget *item, gchar *icon_name ) { static bool iconsInjected = false; @@ -686,7 +686,7 @@ static gboolean update_view_menu(GtkWidget *widget, GdkEventExpose * /*event*/, return FALSE; } -void +static void sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View *view, gchar const *label, gchar const *tip, gchar const *pref, void (*callback_toggle)(GtkCheckMenuItem *, gpointer user_data), #if GTK_CHECK_VERSION(3,0,0) @@ -806,7 +806,7 @@ compare_file_basenames(gchar const *a, gchar const *b) { return rc; } -void +static void sp_menu_get_svg_filenames_from_dir(gchar const *dirname, std::list *files) { if ( Inkscape::IO::file_test( dirname, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR) ) ) { @@ -840,7 +840,7 @@ sp_menu_get_svg_filenames_from_dir(gchar const *dirname, std::list files->sort(compare_file_basenames); } -void +static void sp_menu_add_filenames_to_menu(GtkWidget *menu, Inkscape::UI::View::View *view, std::list *files) { if (!files->empty()) { @@ -876,7 +876,7 @@ sp_menu_add_filenames_to_menu(GtkWidget *menu, Inkscape::UI::View::View *view, s } } -void +static void sp_menu_append_new_templates(GtkWidget *menu, Inkscape::UI::View::View *view) { // user's local dir @@ -891,7 +891,7 @@ sp_menu_append_new_templates(GtkWidget *menu, Inkscape::UI::View::View *view) } -void +static void sp_ui_checkboxes_menus(GtkMenu *m, Inkscape::UI::View::View *view) { //sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu", @@ -915,7 +915,7 @@ sp_ui_checkboxes_menus(GtkMenu *m, Inkscape::UI::View::View *view) } -void addTaskMenuItems(GtkMenu *menu, Inkscape::UI::View::View *view) +static void addTaskMenuItems(GtkMenu *menu, Inkscape::UI::View::View *view) { gchar const* data[] = { C_("Interface setup", "Default"), _("Default interface setup"), @@ -982,7 +982,7 @@ private: * @param menu Menu to be added to * @param view The View that this menu is being built for */ -void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape::UI::View::View *view) +static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape::UI::View::View *view) { if (menus == NULL) return; if (menu == NULL) return; -- cgit v1.2.3 From 3ca2c298a152f092b99d0c9978a47deec787ed8c Mon Sep 17 00:00:00 2001 From: John Smith Date: Thu, 11 Oct 2012 17:03:21 +0900 Subject: Fix for 171904 : toggleToolbox verb (bzr r11778) --- src/interface.cpp | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 2ee188ef7..bad95adc6 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -527,7 +527,7 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb } // end of sp_ui_menu_append_item_from_verb -static Glib::ustring getLayoutPrefPath( Inkscape::UI::View::View *view ) +Glib::ustring getLayoutPrefPath( Inkscape::UI::View::View *view ) { Glib::ustring prefPath; @@ -554,7 +554,7 @@ checkitem_toggled(GtkCheckMenuItem *menuitem, gpointer user_data) sp_ui_menu_activate(menuitem, action); } else if (pref) { - // The Show/Hide menu items without actions + // All check menu items should have actions now, but just in case Glib::ustring pref_path = getLayoutPrefPath( view ); pref_path += pref; pref_path += "/state"; @@ -596,19 +596,16 @@ static gboolean checkitem_update(GtkWidget *widget, GdkEventExpose * /*event*/, if (!strcmp(action->id, "ToggleGrid")) { ison = dt->gridsEnabled(); } - if (!strcmp(action->id, "ToggleGuides")) { + else if (!strcmp(action->id, "ToggleGuides")) { ison = dt->namedview->getGuides(); } - if (!strcmp(action->id, "ToggleSnapGlobal")) { + else if (!strcmp(action->id, "ToggleSnapGlobal")) { ison = dt->namedview->getSnapGlobal(); } - if (!strcmp(action->id, "ViewCmsToggle")) { + else if (!strcmp(action->id, "ViewCmsToggle")) { ison = dt->colorProfAdjustEnabled(); } - if (!strcmp(action->id, "ToggleRulers")) { - ison = getViewStateFromPref(view, pref); - } - if (!strcmp(action->id, "ToggleScrollbars")) { + else { ison = getViewStateFromPref(view, pref); } } else if (pref) { @@ -896,22 +893,22 @@ sp_ui_checkboxes_menus(GtkMenu *m, Inkscape::UI::View::View *view) { //sp_ui_menu_append_check_item_from_verb(m, view, _("_Menu"), _("Show or hide the menu bar"), "menu", // checkitem_toggled, checkitem_update, 0); - sp_ui_menu_append_check_item_from_verb(m, view, _("_Commands Bar"), _("Show or hide the Commands bar (under the menu)"), "commands", - checkitem_toggled, checkitem_update, 0); - sp_ui_menu_append_check_item_from_verb(m, view, _("Sn_ap Controls Bar"), _("Show or hide the snapping controls"), "snaptoolbox", - checkitem_toggled, checkitem_update, 0); - sp_ui_menu_append_check_item_from_verb(m, view, _("T_ool Controls Bar"), _("Show or hide the Tool Controls bar"), "toppanel", - checkitem_toggled, checkitem_update, 0); - sp_ui_menu_append_check_item_from_verb(m, view, _("_Toolbox"), _("Show or hide the main toolbox (on the left)"), "toolbox", - checkitem_toggled, checkitem_update, 0); + sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "commands", + checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_COMMANDS_TOOLBAR)); + sp_ui_menu_append_check_item_from_verb(m, view,NULL, NULL, "snaptoolbox", + checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_SNAP_TOOLBAR)); + sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "toppanel", + checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_TOOL_TOOLBAR)); + sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "toolbox", + checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_TOOLBOX)); sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "rulers", checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_RULERS)); sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "scrollbars", checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_SCROLLBARS)); - sp_ui_menu_append_check_item_from_verb(m, view, _("_Palette"), _("Show or hide the color palette"), "panels", - checkitem_toggled, checkitem_update, 0); - sp_ui_menu_append_check_item_from_verb(m, view, _("_Statusbar"), _("Show or hide the statusbar (at the bottom of the window)"), "statusbar", - checkitem_toggled, checkitem_update, 0); + sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "panels", + checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_PALETTE)); + sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "statusbar", + checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_STATUSBAR)); } -- cgit v1.2.3 From f1a9fc07d9f4cfa94da390247c25ce4ba693a34e Mon Sep 17 00:00:00 2001 From: John Smith Date: Sun, 18 Nov 2012 21:33:53 +0900 Subject: Fix for 1079971 : Symbol dialog : Drag & Drop to the canvas (bzr r11880) --- src/interface.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index bad95adc6..823119953 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -59,6 +59,7 @@ #include "dialogs/dialog-events.h" #include "message-context.h" #include "ui/uxmanager.h" +#include "ui/clipboard.h" #include "display/sp-canvas.h" #include "color.h" @@ -97,6 +98,7 @@ typedef enum { APP_X_INKY_COLOR, APP_X_COLOR, APP_OSWB_COLOR, + APP_X_INK_PASTE } ui_drop_target_info; static GtkTargetEntry ui_drop_target_entries [] = { @@ -109,7 +111,8 @@ static GtkTargetEntry ui_drop_target_entries [] = { {(gchar *)"application/x-inkscape-color", 0, APP_X_INKY_COLOR}, #endif // ENABLE_MAGIC_COLORS {(gchar *)"application/x-oswb-color", 0, APP_OSWB_COLOR }, - {(gchar *)"application/x-color", 0, APP_X_COLOR } + {(gchar *)"application/x-color", 0, APP_X_COLOR }, + {(gchar *)"application/x-inkscape-paste", 0, APP_X_INK_PASTE } }; static GtkTargetEntry *completeDropTargets = 0; @@ -1430,6 +1433,13 @@ sp_ui_drag_data_received(GtkWidget *widget, break; } + case APP_X_INK_PASTE: { + Inkscape::UI::ClipboardManager *cm = Inkscape::UI::ClipboardManager::get(); + cm->paste(desktop); + DocumentUndo::done( doc, SP_VERB_NONE, _("Drop Symbol") ); + break; + } + case PNG_DATA: case JPEG_DATA: case IMAGE_DATA: { -- cgit v1.2.3 From cc58df90863ed3d5c056a976ee4cefffb99c7f04 Mon Sep 17 00:00:00 2001 From: John Smith Date: Mon, 18 Feb 2013 22:04:08 +0900 Subject: Fix for 998276 : Keyboard shortcuts not appearing in the main menu under Unity (bzr r12132) --- src/interface.cpp | 114 ++++++++---------------------------------------------- 1 file changed, 16 insertions(+), 98 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 823119953..284368bff 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -458,47 +458,21 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb item = gtk_separator_menu_item_new(); } else { - unsigned int shortcut; action = verb->get_action(view); if (!action) return NULL; - shortcut = sp_shortcut_get_primary(verb); - if (shortcut!=GDK_KEY_VoidSymbol) { - gchar* c = sp_shortcut_get_label(shortcut); -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *const hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 16); - gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *const hb = gtk_hbox_new(FALSE, 16); -#endif - GtkWidget *const name_lbl = gtk_label_new(""); - gtk_label_set_markup_with_mnemonic(GTK_LABEL(name_lbl), action->name); - gtk_misc_set_alignment(reinterpret_cast(name_lbl), 0.0, 0.5); - gtk_box_pack_start(reinterpret_cast(hb), name_lbl, TRUE, TRUE, 0); - GtkWidget *const accel_lbl = gtk_label_new(c); - gtk_misc_set_alignment(reinterpret_cast(accel_lbl), 1.0, 0.5); - gtk_box_pack_end(reinterpret_cast(hb), accel_lbl, FALSE, FALSE, 0); - gtk_widget_show_all(hb); - if (radio) { - item = gtk_radio_menu_item_new (group); - } else { - item = gtk_image_menu_item_new(); - } - gtk_container_add(reinterpret_cast(item), hb); - g_free(c); + if (radio) { + item = gtk_radio_menu_item_new_with_mnemonic(group, action->name); } else { - if (radio) { - item = gtk_radio_menu_item_new (group); - } else { - item = gtk_image_menu_item_new (); - } - GtkWidget *const name_lbl = gtk_label_new(""); - gtk_label_set_markup_with_mnemonic(GTK_LABEL(name_lbl), action->name); - gtk_misc_set_alignment(reinterpret_cast(name_lbl), 0.0, 0.5); - gtk_container_add(reinterpret_cast(item), name_lbl); + item = gtk_image_menu_item_new_with_mnemonic(action->name); } + 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)); + action->signal_set_sensitive.connect( sigc::bind<0>( sigc::ptr_fun(>k_widget_set_sensitive), @@ -698,45 +672,16 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View * { unsigned int shortcut = (verb) ? sp_shortcut_get_primary(verb) : 0; SPAction *action = (verb) ? verb->get_action(view) : 0; - GtkWidget *item = gtk_check_menu_item_new(); - - - if (verb && shortcut!=GDK_KEY_VoidSymbol) { - gchar* c = sp_shortcut_get_label(shortcut); - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 16); - gtk_box_set_homogeneous(GTK_BOX(hb), FALSE); -#else - GtkWidget *hb = gtk_hbox_new(FALSE, 16); -#endif + GtkWidget *item = gtk_check_menu_item_new_with_mnemonic(action ? action->name : label); - { - GtkWidget *l = gtk_label_new_with_mnemonic(action ? action->name : label); - gtk_misc_set_alignment((GtkMisc *) l, 0.0, 0.5); - gtk_box_pack_start((GtkBox *) hb, l, TRUE, TRUE, 0); - } - - { - GtkWidget *l = gtk_label_new(c); - gtk_misc_set_alignment((GtkMisc *) l, 1.0, 0.5); - gtk_box_pack_end((GtkBox *) hb, l, FALSE, FALSE, 0); - } - - gtk_widget_show_all(hb); - - gtk_container_add((GtkContainer *) item, hb); - g_free(c); - } else { - GtkWidget *l = gtk_label_new_with_mnemonic(action ? action->name : label); - gtk_misc_set_alignment((GtkMisc *) l, 0.0, 0.5); - gtk_container_add((GtkContainer *) item, l); - } #if 0 if (!action->sensitive) { gtk_widget_set_sensitive(item, FALSE); } #endif + + sp_shortcut_add_accelerator(item, shortcut); + gtk_widget_show(item); gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); @@ -1726,40 +1671,13 @@ void ContextMenu::AppendItemFromVerb(Inkscape::Verb *verb)//, SPDesktop *view)// append(*item); } else { action = verb->get_action(view); - if (!action) - { + if (!action) { return; } - Gtk::ImageMenuItem *item = NULL; - unsigned int shortcut = sp_shortcut_get_primary(verb); - if (shortcut!=GDK_KEY_VoidSymbol) { - gchar* c = sp_shortcut_get_label(shortcut); - Gtk::HBox *const hb = manage(new Gtk::HBox (FALSE, 16)); - Gtk::Label *const name_lbl = manage(new Gtk::Label(action->name, true)); - name_lbl->set_alignment(0.0, 0.5); - hb->pack_start(*name_lbl, TRUE, TRUE, 0); - Gtk::Label *const accel_lbl = manage(new Gtk::Label(c)); - accel_lbl->set_alignment(1.0, 0.5); - hb->pack_end(*accel_lbl, FALSE, FALSE, 0); - hb->show_all(); - // if (radio) { - // item = gtk_radio_menu_item_new (group); - // } else { - item = new Gtk::ImageMenuItem(); - // } - item->add(*hb); - g_free(c); - } else { - // if (radio) { - // item = gtk_radio_menu_item_new (group); - // } else { - item = manage(new Gtk::ImageMenuItem()); - // } - Gtk::Label *const name_lbl = manage(new Gtk::Label(action->name, true)); - name_lbl->set_alignment(0.0, 0.5); - item->add(*name_lbl); - } + Gtk::ImageMenuItem *item = manage(new Gtk::ImageMenuItem(action->name, true)); + + sp_shortcut_add_accelerator(GTK_WIDGET(item->gobj()), sp_shortcut_get_primary(verb)); action->signal_set_sensitive.connect(sigc::mem_fun(*this, &ContextMenu::set_sensitive)); action->signal_set_name.connect(sigc::mem_fun(*item, &ContextMenu::set_name)); -- cgit v1.2.3 From 208407c7507285f2c988504c88f998dd9d6d07d9 Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Tue, 5 Mar 2013 19:57:17 +0100 Subject: Added null check (should fix Bug #1051017 ) (bzr r12175) --- src/interface.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 284368bff..bf497b407 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1539,14 +1539,16 @@ sp_ui_menu_item_set_name(GtkWidget *data, Glib::ustring const &name) //- a GtkHBox, whose first child is a label displaying name if the menu //item has an accel key //- a GtkLabel if the menu has no accel key - if (GTK_IS_LABEL(child)) { - gtk_label_set_markup_with_mnemonic(GTK_LABEL (child), name.c_str()); - } else if (GTK_IS_HBOX(child)) { - gtk_label_set_markup_with_mnemonic( - GTK_LABEL (gtk_container_get_children(GTK_CONTAINER (child))->data), - name.c_str()); - }//else sp_ui_menu_append_item_from_verb has been modified and can set - //a menu item in yet another way... + if (child != NULL){ + if (GTK_IS_LABEL(child)) { + gtk_label_set_markup_with_mnemonic(GTK_LABEL (child), name.c_str()); + } else if (GTK_IS_HBOX(child)) { + gtk_label_set_markup_with_mnemonic( + GTK_LABEL (gtk_container_get_children(GTK_CONTAINER (child))->data), + name.c_str()); + }//else sp_ui_menu_append_item_from_verb has been modified and can set + //a menu item in yet another way... + } } } -- cgit v1.2.3 From c834b13959869176738502e99fc74301e7b32100 Mon Sep 17 00:00:00 2001 From: John Smith Date: Mon, 11 Mar 2013 23:14:55 +0900 Subject: Fix for 998276 : Keyboard shortcuts not appearing in the main menu under Unity, uppdate to fix markup issue (bzr r12190) --- src/interface.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index bf497b407..69832a2eb 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -468,6 +468,8 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb item = gtk_image_menu_item_new_with_mnemonic(action->name); } + gtk_label_set_markup_with_mnemonic( GTK_LABEL(gtk_bin_get_child(GTK_BIN (item))), action->name); + GtkAccelGroup *accel_group = sp_shortcut_get_accel_group(); gtk_menu_set_accel_group(menu, accel_group); -- cgit v1.2.3 From 0cdd007ebf8dcfbd39c1d36ab53f43617eb692df Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Mon, 25 Mar 2013 17:42:31 +0000 Subject: Workaround usage of deprecated glib symbols in 3rd party libraries Fixed bugs: - https://launchpad.net/bugs/1122774 (bzr r12243) --- src/interface.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 69832a2eb..4421b4a1d 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -23,9 +23,9 @@ # include "config.h" #endif -#include "file.h" -#include +#include "ui/dialog/dialog-manager.h" #include +#include "file.h" #include #include @@ -75,11 +75,7 @@ #include "sp-image.h" #include "sp-item.h" #include "sp-mask.h" -// #include "verbs.h" #include "message-stack.h" -// #include "inkscape.h" -#include "ui/dialog/dialog-manager.h" -// #include "../xml/repr.h" #include "ui/dialog/layer-properties.h" #include -- cgit v1.2.3 From d2bba282171a9e2c70a624794650689ec4531047 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Tue, 26 Mar 2013 16:03:49 +0000 Subject: Fix Glibmm inclusions for Gtk+ 3 builds and implement a Gtk+ 3 compatible check for X11 backend Fixed bugs: - https://launchpad.net/bugs/1160252 - https://launchpad.net/bugs/1122774 (bzr r12247) --- src/interface.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 4421b4a1d..986d3107f 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -79,7 +79,8 @@ #include "ui/dialog/layer-properties.h" #include -#include + +#include using Inkscape::DocumentUndo; -- cgit v1.2.3 From 8443720ce6429b9beec839e60b8a808595f4ba72 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 2 Apr 2013 23:01:45 +0200 Subject: Cleaned up a bit. Uses some C++11 features. (bzr r11608.1.72) --- src/interface.cpp | 76 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 26 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 986d3107f..ab1e550a3 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1701,32 +1701,56 @@ void ContextMenu::AppendItemFromVerb(Inkscape::Verb *verb)//, SPDesktop *view)// void ContextMenu::MakeObjectMenu(void) { - GObjectClass *klass = G_OBJECT_GET_CLASS(_object); //to deduce the object's type from its class - - if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_ITEM)) - { - MakeItemMenu (); - } - if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_GROUP)) - { - MakeGroupMenu(); - } - if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_ANCHOR)) - { - MakeAnchorMenu(); - } - if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_IMAGE)) - { - MakeImageMenu(); - } - if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_SHAPE)) - { - MakeShapeMenu(); - } - if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_TEXT)) - { - MakeTextMenu(); - } +// GObjectClass *klass = G_OBJECT_GET_CLASS(_object); //to deduce the object's type from its class +// +// if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_ITEM)) +// { +// MakeItemMenu (); +// } +// if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_GROUP)) +// { +// MakeGroupMenu(); +// } +// if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_ANCHOR)) +// { +// MakeAnchorMenu(); +// } +// if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_IMAGE)) +// { +// MakeImageMenu(); +// } +// if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_SHAPE)) +// { +// MakeShapeMenu(); +// } +// if (G_TYPE_CHECK_CLASS_TYPE(klass, SP_TYPE_TEXT)) +// { +// MakeTextMenu(); +// } + + if (SP_IS_ITEM(_object)) { + MakeItemMenu(); + } + + if (SP_IS_GROUP(_object)) { + MakeGroupMenu(); + } + + if (SP_IS_ANCHOR(_object)) { + MakeAnchorMenu(); + } + + if (SP_IS_IMAGE(_object)) { + MakeImageMenu(); + } + + if (SP_IS_SHAPE(_object)) { + MakeShapeMenu(); + } + + if (SP_IS_TEXT(_object)) { + MakeTextMenu(); + } } void ContextMenu::MakeItemMenu (void) -- cgit v1.2.3 From b0cc47554b385fb68643d07efe6e42366c7121ad Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 6 Apr 2013 01:36:16 +0200 Subject: Merged PaintServer and subclasses; moved Gradient classes to own files. (bzr r11608.1.82) --- src/interface.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index ab1e550a3..3f480d5e8 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -47,7 +47,6 @@ #include "widgets/desktop-widget.h" #include "sp-item-group.h" #include "sp-text.h" -#include "sp-gradient-fns.h" #include "sp-gradient.h" #include "sp-flowtext.h" #include "sp-namedview.h" -- cgit v1.2.3 From c3a160589a9cb41c70a56e5e7b66a65857a0d10e Mon Sep 17 00:00:00 2001 From: Eric Greveson Date: Mon, 1 Jul 2013 21:04:32 +0100 Subject: Factored layer model out into new Inkscape::LayerModel class. This allows Inkscape::Selection to use a LayerModel that is not associated with a UI. Changed the interface of verbs (SPAction) to use a new ActionContext rather than UI::View::View, again so that verbs may be used in a console mode. Modified boolean operation verbs to work in console-only mode. Fixed up DESKTOP_IS_ACTIVE macro to work in the case of no desktops. Modified main.cpp to process selections and verbs in no-GUI mode. Other changes are all consequences of the SPDesktop, Selection and LayerModel interface changes. (bzr r12387.1.1) --- src/interface.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 986d3107f..e3036afdd 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -53,6 +53,7 @@ #include "sp-namedview.h" #include "ui/view/view.h" #include "helper/action.h" +#include "helper/action-context.h" #include "helper/gnome-utils.h" #include "helper/window.h" #include "io/sys.h" @@ -370,13 +371,13 @@ sp_ui_menu_activate(void */*object*/, SPAction *action) static void sp_ui_menu_select_action(void */*object*/, SPAction *action) { - action->view->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, action->tip); + sp_action_get_view(action)->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, action->tip); } static void sp_ui_menu_deselect_action(void */*object*/, SPAction *action) { - action->view->tipsMessageContext()->clear(); + sp_action_get_view(action)->tipsMessageContext()->clear(); } static void @@ -419,7 +420,7 @@ sp_ui_dialog_title_string(Inkscape::Verb *verb, gchar *c) gchar *s; gchar *atitle; - action = verb->get_action(NULL); + action = verb->get_action(Inkscape::ActionContext()); if (!action) return; @@ -456,7 +457,7 @@ static GtkWidget *sp_ui_menu_append_item_from_verb(GtkMenu *menu, Inkscape::Verb } else { - action = verb->get_action(view); + action = verb->get_action(Inkscape::ActionContext(view)); if (!action) return NULL; if (radio) { @@ -670,7 +671,7 @@ sp_ui_menu_append_check_item_from_verb(GtkMenu *menu, Inkscape::UI::View::View * Inkscape::Verb *verb) { unsigned int shortcut = (verb) ? sp_shortcut_get_primary(verb) : 0; - SPAction *action = (verb) ? verb->get_action(view) : 0; + SPAction *action = (verb) ? verb->get_action(Inkscape::ActionContext(view)) : 0; GtkWidget *item = gtk_check_menu_item_new_with_mnemonic(action ? action->name : label); #if 0 @@ -955,7 +956,7 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), TRUE); } if (verb->get_code() != SP_VERB_NONE) { - SPAction *action = verb->get_action(view); + SPAction *action = verb->get_action(Inkscape::ActionContext(view)); #if GTK_CHECK_VERSION(3,0,0) g_signal_connect( G_OBJECT(item), "draw", (GCallback) update_view_menu, (void *) action); #else @@ -965,7 +966,7 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I } else if (menu_pntr->attribute("check") != NULL) { SPAction *action = NULL; if (verb->get_code() != SP_VERB_NONE) { - action = verb->get_action(view); + action = verb->get_action(Inkscape::ActionContext(view)); } sp_ui_menu_append_check_item_from_verb(GTK_MENU(menu), view, action->name, action->tip, NULL, checkitem_toggled, checkitem_update, verb); @@ -1671,7 +1672,7 @@ void ContextMenu::AppendItemFromVerb(Inkscape::Verb *verb)//, SPDesktop *view)// item->show(); append(*item); } else { - action = verb->get_action(view); + action = verb->get_action(Inkscape::ActionContext(view)); if (!action) { return; } @@ -2035,7 +2036,7 @@ void ContextMenu::AnchorLinkFollow(void) // Opening the selected links with a python extension Inkscape::Verb *verb = Inkscape::Verb::getbyid( "org.inkscape.followlink" ); if (verb) { - SPAction *action = verb->get_action(_desktop); + SPAction *action = verb->get_action(Inkscape::ActionContext(_desktop)); if (action) { sp_action_perform(action, NULL); } @@ -2205,7 +2206,7 @@ void ContextMenu::ImageEmbed(void) Inkscape::Verb *verb = Inkscape::Verb::getbyid( "org.ekips.filter.embedselectedimages" ); if (verb) { - SPAction *action = verb->get_action(_desktop); + SPAction *action = verb->get_action(Inkscape::ActionContext(_desktop)); if (action) { sp_action_perform(action, NULL); } @@ -2220,7 +2221,7 @@ void ContextMenu::ImageExtract(void) Inkscape::Verb *verb = Inkscape::Verb::getbyid( "org.ekips.filter.extractimage" ); if (verb) { - SPAction *action = verb->get_action(_desktop); + SPAction *action = verb->get_action(Inkscape::ActionContext(_desktop)); if (action) { sp_action_perform(action, NULL); } -- cgit v1.2.3 From 1c75594f5c37e86dec195ec1975254315ef180e9 Mon Sep 17 00:00:00 2001 From: Eric Greveson Date: Wed, 3 Jul 2013 23:00:06 +0100 Subject: Changed dbus interface to treat 'division' like other boolops, with a new return type for selection_combine to support this (array of string). This also fixes a bug with not setting the error flag when returning NULL from this method. Refactored some more selection verbs to allow use in no-GUI mode. (bzr r12387.1.5) --- src/interface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index e3036afdd..98c30bf3c 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1987,7 +1987,7 @@ void ContextMenu::MakeGroupMenu(void) void ContextMenu::ActivateGroup(void) { - sp_selection_group(_desktop); + sp_selection_group(_desktop->selection, _desktop); } void ContextMenu::ActivateUngroup(void) -- cgit v1.2.3 From 6b78e29d0a6b0a5df82b1d8779689ec41718b258 Mon Sep 17 00:00:00 2001 From: Slagvi Public Date: Wed, 24 Jul 2013 09:25:52 +0200 Subject: Old templates support removed (bzr r12379.2.13) --- src/interface.cpp | 97 +------------------------------------------------------ 1 file changed, 1 insertion(+), 96 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 986d3107f..f9e720494 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -716,13 +716,6 @@ sp_recent_open(GtkRecentChooser *recent_menu, gpointer /*user_data*/) g_free(uri); } -static void -sp_file_new_from_template(GtkWidget */*widget*/, gchar const *uri) -{ - sp_file_new(uri); -} - - static bool compare_file_basenames(gchar const *a, gchar const *b) { bool rc; @@ -750,91 +743,6 @@ compare_file_basenames(gchar const *a, gchar const *b) { return rc; } -static void -sp_menu_get_svg_filenames_from_dir(gchar const *dirname, std::list *files) -{ - if ( Inkscape::IO::file_test( dirname, (GFileTest)(G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR) ) ) { - GError *err = 0; - GDir *dir = g_dir_open(dirname, 0, &err); - - if (dir) { - for (gchar const *file = g_dir_read_name(dir); file != NULL; file = g_dir_read_name(dir)) { - if (!g_str_has_suffix(file, ".svg") && !g_str_has_suffix(file, ".svgz")) { - continue; // skip non-svg files - } - - { - gchar *basename = g_path_get_basename(file); - if (g_str_has_suffix(basename, ".svg") && g_str_has_prefix(basename, "default.")) { - g_free(basename); - basename = 0; - continue; // skip default.*.svg (i.e. default.svg and translations) - it's in the menu already - } - g_free(basename); - basename = 0; - } - - gchar const *filepath = g_build_filename(dirname, file, NULL); - files->push_front(filepath); - } - g_dir_close(dir); - } - } - - files->sort(compare_file_basenames); -} - -static void -sp_menu_add_filenames_to_menu(GtkWidget *menu, Inkscape::UI::View::View *view, std::list *files) -{ - if (!files->empty()) { - GtkWidget *sep = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), sep); - } - - for(std::list::iterator it=files->begin(); it != files->end(); ++it) { - gchar const *filepath = *it; - gchar const *file = g_path_get_basename(filepath); - gchar *dupfile = g_strndup(file, strlen(file) - 4); - gchar *filename = g_filename_to_utf8(dupfile, -1, NULL, NULL, NULL); - g_free(dupfile); - - GtkWidget *item = gtk_menu_item_new_with_label(filename); - g_free(filename); - - gtk_widget_show(item); - // how does "filepath" ever get freed? - g_signal_connect(G_OBJECT(item), - "activate", - G_CALLBACK(sp_file_new_from_template), - (gpointer) filepath); - - if (view) { - // set null tip for now; later use a description from the template file - g_object_set_data(G_OBJECT(item), "view", (gpointer) view); - g_signal_connect( G_OBJECT(item), "select", G_CALLBACK(sp_ui_menu_select), (gpointer) NULL ); - g_signal_connect( G_OBJECT(item), "deselect", G_CALLBACK(sp_ui_menu_deselect), NULL); - } - - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - } - -} -static void -sp_menu_append_new_templates(GtkWidget *menu, Inkscape::UI::View::View *view) -{ - // user's local dir - std::list userfiles; - sp_menu_get_svg_filenames_from_dir(profile_path("templates"), &userfiles); - sp_menu_add_filenames_to_menu(menu, view, &userfiles); - - // system templates dir - std::list templatefiles; - sp_menu_get_svg_filenames_from_dir(INKSCAPE_TEMPLATESDIR, &templatefiles); - sp_menu_add_filenames_to_menu(menu, view, &templatefiles); - -} - static void sp_ui_checkboxes_menus(GtkMenu *m, Inkscape::UI::View::View *view) { @@ -995,10 +903,7 @@ static void sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, I gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); continue; } - if (!strcmp(menu_pntr->name(), "template-list")) { - sp_menu_append_new_templates(menu, view); - continue; - } + if (!strcmp(menu_pntr->name(), "recent-file-list")) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); -- cgit v1.2.3 From dd18c27c36c9138bc68161ad365bfc61b8d135f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20dos=20Santos=20Oliveira?= Date: Thu, 12 Sep 2013 07:23:11 -0300 Subject: Integrating with libdepixelize (bzr r12506.1.1) --- src/interface.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 026890c67..48f42d694 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1986,6 +1986,15 @@ void ContextMenu::MakeImageMenu (void) mi->set_sensitive(FALSE); } + /* Trace Pixel Art */ + mi = manage(new Gtk::MenuItem(_("Trace Pixel Art"),1)); + mi->signal_activate().connect(sigc::mem_fun(*this, &ContextMenu::ImageTracePixelArt)); + mi->show(); + insert(*mi,positionOfLastDialog++); + if (_desktop->selection->isEmpty()) { + mi->set_sensitive(FALSE); + } + /* Embed image */ if (Inkscape::Verb::getbyid( "org.ekips.filter.embedselectedimages" )) { mi = manage(new Gtk::MenuItem(C_("Context menu", "Embed Image"))); @@ -2103,6 +2112,12 @@ void ContextMenu::ImageTraceBitmap(void) _desktop->_dlg_mgr->showDialog("Trace"); } +void ContextMenu::ImageTracePixelArt(void) +{ + inkscape_dialogs_unhide(); + _desktop->_dlg_mgr->showDialog("PixelArt"); +} + void ContextMenu::ImageEmbed(void) { if (_desktop->selection->isEmpty()) { -- cgit v1.2.3 From 4768c87314c3de876a7bffa4006cd43aa57dac74 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 21 Sep 2013 13:02:20 +0100 Subject: Drop unused static function declarations (bzr r12565) --- src/interface.cpp | 27 --------------------------- 1 file changed, 27 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index ea5eaf16a..d18eb8063 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -716,33 +716,6 @@ sp_recent_open(GtkRecentChooser *recent_menu, gpointer /*user_data*/) g_free(uri); } -static bool -compare_file_basenames(gchar const *a, gchar const *b) { - bool rc; - gchar *ba, *bb; - - bool sort_by_fullname = true; // Sort by full name (including path) or just filename - if (sort_by_fullname) { - ba = g_strdup(a); - bb = g_strdup(b); - } else { - ba = g_path_get_basename(a); - bb = g_path_get_basename(b); - } - - gchar *fa = g_filename_to_utf8(ba, -1, NULL, NULL, NULL); - gchar *fb = g_filename_to_utf8(bb, -1, NULL, NULL, NULL); - g_free(ba); - g_free(bb); - - rc = g_utf8_collate(fa, fb) < 0; - - g_free(fa); - g_free(fb); - - return rc; -} - static void sp_ui_checkboxes_menus(GtkMenu *m, Inkscape::UI::View::View *view) { -- cgit v1.2.3 From 2df0abfd438d90edb6056f0197ed9d27ce2cd1f1 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 22 Sep 2013 13:47:37 -0400 Subject: Fix adding viewBox to new documents. Fixed bugs: - https://launchpad.net/bugs/1228660 - https://launchpad.net/bugs/1228693 - https://launchpad.net/bugs/1228852 (bzr r12575) --- src/interface.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index d18eb8063..e57092e2b 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -50,6 +50,7 @@ #include "sp-gradient.h" #include "sp-flowtext.h" #include "sp-namedview.h" +#include "sp-root.h" #include "ui/view/view.h" #include "helper/action.h" #include "helper/action-context.h" @@ -321,6 +322,10 @@ sp_ui_close_view(GtkWidget */*widget*/) if (desktops.size() == 1) { Glib::ustring templateUri = sp_file_default_template_uri(); SPDocument *doc = SPDocument::createNewDoc( templateUri.c_str() , TRUE, true ); + // Set viewBox if it doesn't exist + if (!doc->getRoot()->viewBox_set) { + doc->setViewBox(Geom::Rect::from_xywh(0, 0, doc->getWidth().quantity, doc->getHeight().quantity)); + } dt->change_document(doc); sp_namedview_window_from_document(dt); sp_namedview_update_layers_from_document(dt); -- cgit v1.2.3 From 651b367a2e01f918435d829394baff45537f6b91 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Thu, 24 Oct 2013 17:03:01 +0200 Subject: fix bug "some of the locale-based templates cause objects to be resized when default units are changed" #1236257 Fixed bugs: - https://launchpad.net/bugs/1236257 (bzr r12717) --- src/interface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index e57092e2b..f411989ce 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -324,7 +324,7 @@ sp_ui_close_view(GtkWidget */*widget*/) SPDocument *doc = SPDocument::createNewDoc( templateUri.c_str() , TRUE, true ); // Set viewBox if it doesn't exist if (!doc->getRoot()->viewBox_set) { - doc->setViewBox(Geom::Rect::from_xywh(0, 0, doc->getWidth().quantity, doc->getHeight().quantity)); + doc->setViewBox(Geom::Rect::from_xywh(0, 0, doc->getWidth().value(doc->getDefaultUnit()), doc->getHeight().value(doc->getDefaultUnit()))); } dt->change_document(doc); sp_namedview_window_from_document(dt); -- cgit v1.2.3 From c04e30df241a3ee039077425bab9b9c37abe2854 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 9 Nov 2013 23:36:13 +0100 Subject: Moved and renamed some tool-related files. (bzr r12785) --- src/interface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index f411989ce..5d4022e7b 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -67,7 +67,7 @@ #include "svg/svg-color.h" #include "desktop-style.h" #include "style.h" -#include "event-context.h" +#include "ui/tools/tool-base.h" #include "gradient-drag.h" #include "widgets/ege-paint-def.h" #include "document-undo.h" @@ -1300,7 +1300,7 @@ sp_ui_drag_data_received(GtkWidget *widget, } } -#include "gradient-context.h" +#include "ui/tools/gradient-tool.h" void sp_ui_drag_motion( GtkWidget */*widget*/, GdkDragContext */*drag_context*/, -- cgit v1.2.3 From c862d2996b29dcace346d6c2e746672fd9d1949d Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Thu, 2 Jan 2014 17:34:58 +0000 Subject: Fix Gtk+ 3.10 warnings: GtkStockItem is deprecated (bzr r12868) --- src/interface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 5d4022e7b..881dbbc0c 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1392,7 +1392,7 @@ sp_ui_overwrite_file(gchar const *filename) dirName ); gtk_dialog_add_buttons( GTK_DIALOG(dialog), - GTK_STOCK_CANCEL, GTK_RESPONSE_NO, + _("_Cancel"), GTK_RESPONSE_NO, _("Replace"), GTK_RESPONSE_YES, NULL ); gtk_dialog_set_default_response( GTK_DIALOG(dialog), GTK_RESPONSE_YES ); -- cgit v1.2.3 From 25bea5005bdd07e3807c04ce7942786571344ac2 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Fri, 3 Jan 2014 10:33:30 +0000 Subject: Stop using GTK_IS_HBOX: Deprecated in Gtk+ 3 (bzr r12872) --- src/interface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index 881dbbc0c..bdbedd311 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -1418,13 +1418,13 @@ sp_ui_menu_item_set_name(GtkWidget *data, Glib::ustring const &name) if (data || GTK_IS_BIN (data)) { void *child = gtk_bin_get_child (GTK_BIN (data)); //child is either - //- a GtkHBox, whose first child is a label displaying name if the menu + //- a GtkBox, whose first child is a label displaying name if the menu //item has an accel key //- a GtkLabel if the menu has no accel key if (child != NULL){ if (GTK_IS_LABEL(child)) { gtk_label_set_markup_with_mnemonic(GTK_LABEL (child), name.c_str()); - } else if (GTK_IS_HBOX(child)) { + } else if (GTK_IS_BOX(child)) { gtk_label_set_markup_with_mnemonic( GTK_LABEL (gtk_container_get_children(GTK_CONTAINER (child))->data), name.c_str()); -- cgit v1.2.3 From bad6e2e0dd2b5cea8a3f8a56f68d301ded69e768 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Wed, 26 Mar 2014 13:30:14 -0400 Subject: Remove Snap menu item and improve grid menu item text (bzr r13213) --- src/interface.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'src/interface.cpp') diff --git a/src/interface.cpp b/src/interface.cpp index bdbedd311..6eb1b6a5a 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -580,9 +580,6 @@ static gboolean checkitem_update(GtkWidget *widget, GdkEventExpose * /*event*/, else if (!strcmp(action->id, "ToggleGuides")) { ison = dt->namedview->getGuides(); } - else if (!strcmp(action->id, "ToggleSnapGlobal")) { - ison = dt->namedview->getSnapGlobal(); - } else if (!strcmp(action->id, "ViewCmsToggle")) { ison = dt->colorProfAdjustEnabled(); } -- cgit v1.2.3