Inkscape
Vector Graphics Editor
|
#include <layer-manager.h>
Public Member Functions | |
LayerManager (SPDesktop *desktop) | |
~LayerManager () | |
void | renameLayer (SPObject *obj, char const *label, bool uniquify) |
Glib::ustring | getNextLayerName (SPObject *obj, char const *label) |
sigc::connection | connectCurrentLayerChanged (const sigc::slot< void(SPGroup *)> &slot) |
SPGroup * | currentRoot () const |
Returns current root (=bottom) layer. | |
SPGroup * | currentLayer () const |
Returns current top layer. | |
unsigned | getLayerCount () const |
void | reset () |
Resets the bottom layer to the current root. | |
void | setCurrentLayer (SPObject *object, bool clear=false) |
Sets the current layer of the desktop. | |
void | toggleLayerSolo (SPObject *object, bool force_hide=false) |
Toggle the visibility of every layer except the given layer. | |
void | toggleHideAllLayers (bool hide) |
void | toggleLockAllLayers (bool lock) |
void | toggleLockOtherLayers (SPObject *object, bool force_lock=false) |
Toggle the sensitivity of every layer except the given layer. | |
SPObject * | layerForObject (SPObject *object) |
Return layer that contains object. | |
std::list< SPItem * > | getAllLayers () |
bool | isLayer (SPObject *object) const |
True if object is a layer. | |
bool | isRoot () const |
![]() | |
bool | includes (SPObject *obj) const |
SPObject * | parentOf (SPObject *obj) const |
unsigned | childCount (SPObject *obj) const |
unsigned | indexOf (SPObject *obj) const |
SPObject * | nthChildOf (SPObject *obj, unsigned n) const |
sigc::connection | connectChanged (sigc::slot< void()> slot) const |
sigc::connection | connectAdded (sigc::slot< void(SPObject *)> slot) const |
sigc::connection | connectRemoved (sigc::slot< void(SPObject *)> slot) const |
Static Public Member Functions | |
static SPGroup * | asLayer (SPObject *object) |
Return the SPGroup if we have a layer object. | |
Private Member Functions | |
void | _objectModified (SPObject *obj, unsigned int flags) |
void | _setDocument (SPDesktop *, SPDocument *document) |
void | _rebuild () |
void | _selectedLayerChanged (SPObject *top, SPObject *bottom) |
void | _layer_activated (SPObject *layer) |
void | _layer_deactivated (SPObject *layer) |
Private Attributes | |
sigc::connection | _layer_connection |
sigc::connection | _activate_connection |
sigc::connection | _deactivate_connection |
sigc::connection | _document_connection |
sigc::connection | _resource_connection |
SPDesktop * | _desktop |
SPDocument * | _document |
std::unique_ptr< Inkscape::ObjectHierarchy > | _layer_hierarchy |
sigc::signal< void(SPGroup *)> | _layer_changed_signal |
Additional Inherited Members | |
![]() | |
DocumentSubset () | |
~DocumentSubset () | |
void | _addOne (SPObject *obj) |
void | _removeOne (SPObject *obj) |
void | _removeSubtree (SPObject *obj) |
void | _clear () |
Definition at line 27 of file layer-manager.h.
Inkscape::LayerManager::LayerManager | ( | SPDesktop * | desktop | ) |
Definition at line 46 of file layer-manager.cpp.
References _activate_connection, _deactivate_connection, _document_connection, _layer_activated(), _layer_connection, _layer_deactivated(), _layer_hierarchy, _selectedLayerChanged(), _setDocument(), SPDesktop::connectDocumentReplaced(), desktop, and SPDesktop::doc().
Inkscape::LayerManager::~LayerManager | ( | ) |
Definition at line 58 of file layer-manager.cpp.
References _activate_connection, _deactivate_connection, _document_connection, _layer_connection, and _resource_connection.
|
private |
Definition at line 78 of file layer-manager.cpp.
References _desktop, SPDesktop::dkey, and SPGroup::LAYER.
Referenced by LayerManager().
|
private |
Definition at line 85 of file layer-manager.cpp.
References _desktop, SPDesktop::dkey, and SPGroup::GROUP.
Referenced by LayerManager().
|
private |
|
private |
Definition at line 223 of file layer-manager.cpp.
References Inkscape::DocumentSubset::_addOne(), Inkscape::DocumentSubset::_clear(), _desktop, _document, currentRoot(), SPObject::getRepr(), SPDocument::getResourceList(), Inkscape::DocumentSubset::includes(), node, SPObject::parent, Inkscape::XML::Node::parent(), and root.
Referenced by _setDocument().
Definition at line 300 of file layer-manager.cpp.
References _layer_changed_signal.
Referenced by LayerManager().
|
private |
Definition at line 67 of file layer-manager.cpp.
References _document, _layer_hierarchy, _rebuild(), _resource_connection, SPDocument::connectResourcesChanged(), and SPDocument::getRoot().
Referenced by LayerManager().
Return the SPGroup if we have a layer object.
Definition at line 560 of file layer-manager.cpp.
References SPGroup::isLayer().
Referenced by ContextMenu::ContextMenu(), Inkscape::UI::Dialog::get_direct_sublayers(), and Inkscape::UI::Dialog::ObjectsPanel::on_click().
|
inline |
Definition at line 36 of file layer-manager.h.
References _layer_changed_signal.
Referenced by Inkscape::UI::Dialog::ObjectsPanel::desktopReplaced(), and Inkscape::UI::Widget::LayerSelector::setDesktop().
SPGroup * Inkscape::LayerManager::currentLayer | ( | ) | const |
Returns current top layer.
Definition at line 103 of file layer-manager.cpp.
References _layer_hierarchy.
Referenced by Inkscape::UI::Dialog::LayerPropertiesDialog::_doRename(), Inkscape::Selection::_emitChanged(), Inkscape::UI::Tools::PencilTool::_fitAndSplit(), Inkscape::UI::Widget::LayerSelector::_hideLayer(), Inkscape::UI::Widget::LayerSelector::_lockLayer(), Inkscape::UI::Dialog::LayerPropertiesDialog::_setup(), Inkscape::UI::Dialog::LayerPropertiesDialog::_setup_layers_controls(), Inkscape::Selection::activeContext(), create_flowtext_with_internal_frame(), create_text_with_inline_size(), create_text_with_rectangle(), Inkscape::UI::Tools::MeasureTool::createAngleDisplayCurve(), Inkscape::UI::Tools::ToolBase::currentLayer(), Inkscape::UI::Tools::do_trace(), Inkscape::Extension::Internal::Grid::effect(), Inkscape::Extension::Internal::Grid::effect(), file_import(), SPDocument::getItemsAtPoints(), group_exit(), Inkscape::have_viable_layer(), Inkscape::have_viable_layer(), isRoot(), layer_bottom(), layer_delete(), layer_hide_toggle(), layer_hide_toggle_others(), layer_lock_toggle(), layer_lock_toggle_others(), layer_lower(), layer_new(), layer_new_above(), layer_next(), layer_previous(), layer_raise(), layer_rename(), layer_to_group(), layer_top(), Inkscape::UI::Dialog::Find::onAction(), process_all(), SPDesktop::reconstruction_start(), selection_move_to_layer(), Inkscape::UI::Widget::LayerSelector::setDesktop(), Inkscape::UI::Tools::MeasureTool::setLabelText(), Inkscape::UI::Tools::MeasureTool::setLine(), Inkscape::UI::Tools::MeasureTool::setMeasureItem(), Inkscape::UI::Tools::MeasureTool::setPoint(), Inkscape::UI::Tools::MeasureTool::showCanvasItems(), sp_edit_clear_all(), sp_edit_select_all_full(), sp_import_document(), sp_namedview_document_from_window(), Inkscape::UI::Tools::sp_select_context_up_one_layer(), Inkscape::UI::Tools::MeasureTool::toGuides(), Inkscape::UI::Tools::MeasureTool::toItem(), Inkscape::ObjectSet::toNextLayer(), Inkscape::ObjectSet::toPrevLayer(), and SPSymbol::unSymbol().
SPGroup * Inkscape::LayerManager::currentRoot | ( | ) | const |
Returns current root (=bottom) layer.
Definition at line 95 of file layer-manager.cpp.
References _layer_hierarchy.
Referenced by Inkscape::UI::Widget::LayerSelector::_layerModified(), _rebuild(), ContextMenu::ContextMenu(), Inkscape::UI::Dialog::get_layer_for_glyph(), getAllLayers(), getLayerCount(), getNextLayerName(), init_avoided_shape_geometry(), isRoot(), layer_delete(), layer_next(), layer_previous(), layerForObject(), process_all(), Inkscape::UI::Dialog::FilterEffectsDialog::FilterModifier::remove_filter(), Inkscape::UI::Dialog::rename_glyph_layer(), reset(), Inkscape::UI::Dialog::FilterEffectsDialog::FilterModifier::select_filter_elements(), setCurrentLayer(), sp_edit_select_all_full(), sp_select_same_fill_stroke_style(), sp_select_same_object_type(), sp_selection_item_next(), sp_selection_item_prev(), Inkscape::UI::Toolbar::ConnectorToolbar::spacing_changed(), toggleHideAllLayers(), toggleLayerSolo(), toggleLockAllLayers(), toggleLockOtherLayers(), Inkscape::ObjectSet::toNextLayer(), Inkscape::ObjectSet::toPrevLayer(), and Inkscape::SelectionDescriber::updateMessage().
std::list< SPItem * > Inkscape::LayerManager::getAllLayers | ( | ) |
Definition at line 200 of file layer-manager.cpp.
References currentRoot(), item, and Inkscape::previous_layer().
Referenced by Inkscape::UI::Dialog::BatchExport::refreshItems().
|
inline |
Definition at line 43 of file layer-manager.h.
References Inkscape::DocumentSubset::childCount(), and currentRoot().
Referenced by Inkscape::UI::Dialog::LayerPropertiesDialog::_setup().
Glib::ustring Inkscape::LayerManager::getNextLayerName | ( | SPObject * | obj, |
char const * | label | ||
) |
Definition at line 121 of file layer-manager.cpp.
References _document, currentRoot(), Inkscape::ustring::format_classic(), SPDocument::getResourceList(), label, and result.
Referenced by Inkscape::UI::Dialog::LayerPropertiesDialog::_setup(), and renameLayer().
bool Inkscape::LayerManager::isLayer | ( | SPObject * | object | ) | const |
True if object is a layer.
Definition at line 549 of file layer-manager.cpp.
References _desktop, SPDesktop::dkey, and SPGroup::LAYER.
Referenced by Inkscape::UI::Dialog::Find::all_items(), Inkscape::UI::Dialog::Find::all_selection_items(), Inkscape::UI::Dialog::SpellCheck::allTextItems(), Inkscape::SelectionHelper::fixSelection(), get_all_items_recursive(), get_avoided_items_rec(), itemtree_map(), layerForObject(), next_item(), sp_edit_select_all_full(), sp_namedview_update_layers_from_document(), Inkscape::UI::Dialog::ObjectsPanel::toggleLocked(), and Inkscape::UI::Dialog::ObjectsPanel::toggleVisible().
|
inline |
Definition at line 56 of file layer-manager.h.
References currentLayer(), and currentRoot().
Referenced by layer_bottom(), layer_delete(), layer_duplicate(), layer_hide_toggle(), layer_hide_toggle_others(), layer_lock_toggle(), layer_lock_toggle_others(), layer_lower(), layer_raise(), layer_to_group(), and layer_top().
Return layer that contains object.
Definition at line 529 of file layer-manager.cpp.
References currentRoot(), isLayer(), and root.
Referenced by Inkscape::Selection::_emitChanged(), SPDocument::getItemsAtPoints(), Inkscape::Selection::numberOfLayers(), Inkscape::UI::Tools::MeasureTool::showCanvasItems(), and Inkscape::SelectionDescriber::updateMessage().
void Inkscape::LayerManager::renameLayer | ( | SPObject * | obj, |
char const * | label, | ||
bool | uniquify | ||
) |
Definition at line 166 of file layer-manager.cpp.
References getNextLayerName(), label, result, and SPObject::setLabel().
Referenced by Inkscape::UI::Dialog::LayerPropertiesDialog::_doCreate(), Inkscape::UI::Dialog::LayerPropertiesDialog::_doRename(), Inkscape::ObjectSet::duplicate(), layer_new_above(), and Inkscape::UI::Dialog::rename_glyph_layer().
void Inkscape::LayerManager::reset | ( | ) |
Resets the bottom layer to the current root.
Definition at line 111 of file layer-manager.cpp.
References _layer_hierarchy, and currentRoot().
Referenced by SPDesktop::reconstruction_start().
void Inkscape::LayerManager::setCurrentLayer | ( | SPObject * | object, |
bool | clear = false |
||
) |
Sets the current layer of the desktop.
Make object the top layer.
Definition at line 183 of file layer-manager.cpp.
References _desktop, _document, _layer_hierarchy, Inkscape::ObjectSet::clear(), SPDocument::clearNodeCache(), currentRoot(), Inkscape::Preferences::get(), Inkscape::Preferences::getBool(), SPDesktop::getSelection(), and root.
Referenced by Inkscape::UI::Dialog::LayerPropertiesDialog::_doCreate(), Inkscape::Selection::_emitChanged(), Inkscape::UI::Dialog::SvgFontsDialog::edit_glyph(), group_enter(), group_exit(), layer_delete(), layer_new_above(), layer_next(), layer_previous(), Inkscape::UI::Dialog::ObjectsPanel::on_click(), SPDesktop::reconstruction_finish(), Inkscape::UI::Dialog::XmlTree::set_dt_select(), sp_namedview_update_layers_from_document(), Inkscape::UI::Tools::sp_select_context_up_one_layer(), Inkscape::ObjectSet::toLayer(), Inkscape::ObjectSet::toNextLayer(), and Inkscape::ObjectSet::toPrevLayer().
void Inkscape::LayerManager::toggleHideAllLayers | ( | bool | hide | ) |
Definition at line 211 of file layer-manager.cpp.
References currentRoot(), and Inkscape::previous_layer().
Referenced by layer_hide_all(), and layer_unhide_all().
void Inkscape::LayerManager::toggleLayerSolo | ( | SPObject * | object, |
bool | force_hide = false |
||
) |
Toggle the visibility of every layer except the given layer.
Definition at line 507 of file layer-manager.cpp.
References currentRoot(), Inkscape::get_layers_to_toggle(), SPItem::isHidden(), item, and SPItem::setHidden().
Referenced by layer_hide_toggle_others(), and Inkscape::UI::Dialog::ObjectsPanel::toggleVisible().
void Inkscape::LayerManager::toggleLockAllLayers | ( | bool | lock | ) |
Definition at line 216 of file layer-manager.cpp.
References currentRoot(), and Inkscape::previous_layer().
Referenced by layer_lock_all(), and layer_unlock_all().
void Inkscape::LayerManager::toggleLockOtherLayers | ( | SPObject * | object, |
bool | force_lock = false |
||
) |
Toggle the sensitivity of every layer except the given layer.
Definition at line 485 of file layer-manager.cpp.
References currentRoot(), Inkscape::get_layers_to_toggle(), SPItem::isLocked(), item, and SPItem::setLocked().
Referenced by layer_lock_toggle_others(), and Inkscape::UI::Dialog::ObjectsPanel::toggleLocked().
|
private |
Definition at line 68 of file layer-manager.h.
Referenced by LayerManager(), and ~LayerManager().
|
private |
Definition at line 69 of file layer-manager.h.
Referenced by LayerManager(), and ~LayerManager().
|
private |
Definition at line 73 of file layer-manager.h.
Referenced by _layer_activated(), _layer_deactivated(), _rebuild(), isLayer(), and setCurrentLayer().
|
private |
Definition at line 74 of file layer-manager.h.
Referenced by _rebuild(), _setDocument(), getNextLayerName(), and setCurrentLayer().
|
private |
Definition at line 70 of file layer-manager.h.
Referenced by LayerManager(), and ~LayerManager().
|
private |
Definition at line 77 of file layer-manager.h.
Referenced by _selectedLayerChanged(), and connectCurrentLayerChanged().
|
private |
Definition at line 67 of file layer-manager.h.
Referenced by LayerManager(), and ~LayerManager().
|
private |
Definition at line 76 of file layer-manager.h.
Referenced by _setDocument(), currentLayer(), currentRoot(), LayerManager(), reset(), and setCurrentLayer().
|
private |
Definition at line 71 of file layer-manager.h.
Referenced by _setDocument(), and ~LayerManager().