summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeoff Lankow <geoff@darktrojan.net>2018-05-04 04:05:50 +0000
committerGeoff Lankow <geoff@darktrojan.net>2018-05-04 04:29:07 +0000
commit77fc334fc39f4bb390990be4927a8b18588cf594 (patch)
tree3715b4f1b1a5aa8c9cff56cc33fce70af763c45c
parentMerge branch 'master' of gitlab.com:gadic/inkscape (diff)
downloadinkscape-77fc334fc39f4bb390990be4927a8b18588cf594.tar.gz
inkscape-77fc334fc39f4bb390990be4927a8b18588cf594.zip
Add global guide controls to guides panel
-rw-r--r--src/desktop.cpp2
-rw-r--r--src/file.cpp2
-rw-r--r--src/object/sp-namedview.cpp7
-rw-r--r--src/object/sp-namedview.h1
-rw-r--r--src/ui/dialog/document-properties.cpp37
-rw-r--r--src/ui/dialog/document-properties.h6
-rw-r--r--src/ui/view/edit-widget-interface.h3
-rw-r--r--src/widgets/desktop-widget.cpp8
-rw-r--r--src/widgets/desktop-widget.h3
9 files changed, 52 insertions, 17 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 262f1339b..47c82b6d9 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -1525,7 +1525,7 @@ void SPDesktop::toggleColorProfAdjust()
void SPDesktop::toggleGuidesLock()
{
- _widget->toggleGuidesLock();
+ sp_namedview_guides_toggle_lock(this->getDocument(), namedview);
}
bool SPDesktop::colorProfAdjustEnabled()
diff --git a/src/file.cpp b/src/file.cpp
index 06db60765..30a218141 100644
--- a/src/file.cpp
+++ b/src/file.cpp
@@ -282,7 +282,7 @@ bool sp_file_open(const Glib::ustring &uri,
SPNamedView *nv = desktop->namedview;
if (nv->lockguides) {
- desktop->toggleGuidesLock();
+ nv->lockGuides();
}
// Perform a fixup pass for hrefs.
if ( Inkscape::ResourceManager::getManager().fixupBrokenLinks(doc) ) {
diff --git a/src/object/sp-namedview.cpp b/src/object/sp-namedview.cpp
index 59c7129f6..7cea56119 100644
--- a/src/object/sp-namedview.cpp
+++ b/src/object/sp-namedview.cpp
@@ -590,6 +590,7 @@ void SPNamedView::set(unsigned int key, const gchar* value) {
}
case SP_ATTR_INKSCAPE_LOCKGUIDES:
this->lockguides = value ? sp_str_to_bool(value) : FALSE;
+ this->lockGuides();
this->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
default:
@@ -1098,6 +1099,12 @@ bool SPNamedView::getGuides()
return v;
}
+
+void SPNamedView::lockGuides()
+{
+ sp_namedview_lock_guides(this);
+}
+
/**
* Gets page fitting margin information from the namedview node in the XML.
* \param nv_repr reference to this document's namedview
diff --git a/src/object/sp-namedview.h b/src/object/sp-namedview.h
index 20d762bc4..8a46d3fd5 100644
--- a/src/object/sp-namedview.h
+++ b/src/object/sp-namedview.h
@@ -98,6 +98,7 @@ public:
void setSnapGlobal(bool v);
void setGuides(bool v);
bool getGuides();
+ void lockGuides();
private:
double getMarginLength(gchar const * const key,Inkscape::Util::Unit const * const margin_units,Inkscape::Util::Unit const * const return_units,double const width,double const height,bool const use_width);
diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp
index aae9ce867..9e16f4d6d 100644
--- a/src/ui/dialog/document-properties.cpp
+++ b/src/ui/dialog/document-properties.cpp
@@ -26,6 +26,7 @@
#include "document-properties.h"
#include "rdf.h"
#include "verbs.h"
+#include "helper/action.h"
#include "io/sys.h"
@@ -112,8 +113,11 @@ DocumentProperties::DocumentProperties()
//---------------------------------------------------------------
//General snap options
_rcb_sgui(_("Show _guides"), _("Show or hide guides"), "showguides", _wr),
+ _rcb_lgui(_("Lock all guides"), _("Toggle lock of all guides in the document"), "inkscape:lockguides", _wr),
_rcp_gui(_("Guide co_lor:"), _("Guideline color"), _("Color of guidelines"), "guidecolor", "guideopacity", _wr),
_rcp_hgui(_("_Highlight color:"), _("Highlighted guideline color"), _("Color of a guideline when it is under mouse"), "guidehicolor", "guidehiopacity", _wr),
+ _create_guides_btn(_("Create guides around the page")),
+ _delete_guides_btn(_("Delete all guides")),
//---------------------------------------------------------------
_rsu_sno(_("Snap _distance"), _("Snap only when _closer than:"), _("Always snap"),
_("Snapping distance, in screen pixels, for snapping to objects"), _("Always snap to objects, regardless of their distance"),
@@ -363,11 +367,17 @@ void DocumentProperties::build_guides()
{
label_gui, 0,
0, &_rcb_sgui,
+ 0, &_rcb_lgui,
_rcp_gui._label, &_rcp_gui,
- _rcp_hgui._label, &_rcp_hgui
+ _rcp_hgui._label, &_rcp_hgui,
+ 0, &_create_guides_btn,
+ 0, &_delete_guides_btn
};
attach_all(_page_guides->table(), widget_array, G_N_ELEMENTS(widget_array));
+
+ _create_guides_btn.signal_clicked().connect(sigc::mem_fun(*this, &DocumentProperties::create_guides_around_page));
+ _delete_guides_btn.signal_clicked().connect(sigc::mem_fun(*this, &DocumentProperties::delete_all_guides));
}
void DocumentProperties::build_snap()
@@ -466,6 +476,30 @@ static void sanitizeName( Glib::ustring& str )
}
}
+void DocumentProperties::create_guides_around_page()
+{
+ SPDesktop *dt = getDesktop();
+ Verb *verb = Verb::get( SP_VERB_EDIT_GUIDES_AROUND_PAGE );
+ if (verb) {
+ SPAction *action = verb->get_action(Inkscape::ActionContext(dt));
+ if (action) {
+ sp_action_perform(action, NULL);
+ }
+ }
+}
+
+void DocumentProperties::delete_all_guides()
+{
+ SPDesktop *dt = getDesktop();
+ Verb *verb = Verb::get( SP_VERB_EDIT_DELETE_ALL_GUIDES );
+ if (verb) {
+ SPAction *action = verb->get_action(Inkscape::ActionContext(dt));
+ if (action) {
+ sp_action_perform(action, NULL);
+ }
+ }
+}
+
/// Links the selected color profile in the combo box to the document
void DocumentProperties::linkSelectedProfile()
{
@@ -1438,6 +1472,7 @@ void DocumentProperties::update()
//-----------------------------------------------------------guide page
_rcb_sgui.setActive (nv->showguides);
+ _rcb_lgui.setActive (nv->lockguides);
_rcp_gui.setRgba32 (nv->guidecolor);
_rcp_hgui.setRgba32 (nv->guidehicolor);
diff --git a/src/ui/dialog/document-properties.h b/src/ui/dialog/document-properties.h
index fe0e1864e..06db64782 100644
--- a/src/ui/dialog/document-properties.h
+++ b/src/ui/dialog/document-properties.h
@@ -58,6 +58,9 @@ protected:
void build_guides();
void build_snap();
void build_gridspage();
+
+ void create_guides_around_page();
+ void delete_all_guides();
#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
void build_cms();
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
@@ -132,8 +135,11 @@ protected:
UI::Widget::PageSizer _page_sizer;
//---------------------------------------------------------------
UI::Widget::RegisteredCheckButton _rcb_sgui;
+ UI::Widget::RegisteredCheckButton _rcb_lgui;
UI::Widget::RegisteredColorPicker _rcp_gui;
UI::Widget::RegisteredColorPicker _rcp_hgui;
+ Gtk::Button _create_guides_btn;
+ Gtk::Button _delete_guides_btn;
//---------------------------------------------------------------
UI::Widget::ToleranceSlider _rsu_sno;
UI::Widget::ToleranceSlider _rsu_sn;
diff --git a/src/ui/view/edit-widget-interface.h b/src/ui/view/edit-widget-interface.h
index c93b1f0ee..a8f68518f 100644
--- a/src/ui/view/edit-widget-interface.h
+++ b/src/ui/view/edit-widget-interface.h
@@ -116,9 +116,6 @@ struct EditWidgetInterface
/// Toggle CMS on/off and set preference value accordingly
virtual void toggleColorProfAdjust() = 0;
- /// Toggle lock guides on/off and set namedview value accordingly
- virtual void toggleGuidesLock() = 0;
-
/// Is CMS on/off
virtual bool colorProfAdjustEnabled() = 0;
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 1a2f13e1c..966c0842f 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -2252,14 +2252,6 @@ void sp_desktop_widget_toggle_color_prof_adj( SPDesktopWidget *dtw )
}
}
-void sp_desktop_widget_toggle_guides_lock( SPDesktopWidget *dtw )
-{
- if ( SP_BUTTON_IS_DOWN(dtw->guides_lock) ) {
- sp_button_toggle_set_down( SP_BUTTON(dtw->guides_lock), FALSE );
- } else {
- sp_button_toggle_set_down( SP_BUTTON(dtw->guides_lock), TRUE );
- }
-}
/* Unused
void
sp_spw_toggle_menubar (SPDesktopWidget *dtw, bool is_fullscreen)
diff --git a/src/widgets/desktop-widget.h b/src/widgets/desktop-widget.h
index 0d5f40987..fe0d6597b 100644
--- a/src/widgets/desktop-widget.h
+++ b/src/widgets/desktop-widget.h
@@ -50,7 +50,6 @@ void sp_desktop_widget_toggle_rulers (SPDesktopWidget *dtw);
void sp_desktop_widget_toggle_scrollbars (SPDesktopWidget *dtw);
void sp_desktop_widget_update_scrollbars (SPDesktopWidget *dtw, double scale);
void sp_desktop_widget_toggle_color_prof_adj( SPDesktopWidget *dtw );
-void sp_desktop_widget_toggle_guides_lock( SPDesktopWidget *dtw );
bool sp_desktop_widget_color_prof_adj_enabled( SPDesktopWidget *dtw );
void sp_dtw_desktop_activate (SPDesktopWidget *dtw);
@@ -186,8 +185,6 @@ struct SPDesktopWidget {
{ sp_desktop_widget_toggle_scrollbars (_dtw); }
virtual void toggleColorProfAdjust()
{ sp_desktop_widget_toggle_color_prof_adj(_dtw); }
- virtual void toggleGuidesLock()
- { sp_desktop_widget_toggle_guides_lock(_dtw); }
virtual bool colorProfAdjustEnabled()
{ return sp_desktop_widget_color_prof_adj_enabled(_dtw); }
virtual void updateZoom()