~centralelyon2010/inkscape/imagelinks2

« back to all changes in this revision

Viewing changes to src/ui/widget/layer-selector.cpp

  • Committer: JazzyNico
  • Date: 2011-08-29 20:25:30 UTC
  • Revision ID: nicoduf@yahoo.fr-20110829202530-6deuoz11q90usldv
Code refactoring and merging with trunk (revision 10599).

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 *
4
4
 * Authors:
5
5
 *   MenTaLguY <mental@rydia.net>
 
6
 *   Abhishek Sharma
6
7
 *
7
8
 * Copyright (C) 2004 MenTaLguY
8
9
 *
94
95
    AlternateIcons *label;
95
96
 
96
97
    label = Gtk::manage(new AlternateIcons(Inkscape::ICON_SIZE_DECORATION,
97
 
        INKSCAPE_ICON_OBJECT_VISIBLE, INKSCAPE_ICON_OBJECT_HIDDEN));
 
98
        INKSCAPE_ICON("object-visible"), INKSCAPE_ICON("object-hidden")));
98
99
    _visibility_toggle.add(*label);
99
100
    _visibility_toggle.signal_toggled().connect(
100
101
        sigc::compose(
115
116
    pack_start(_visibility_toggle, Gtk::PACK_EXPAND_PADDING);
116
117
 
117
118
    label = Gtk::manage(new AlternateIcons(Inkscape::ICON_SIZE_DECORATION,
118
 
        INKSCAPE_ICON_OBJECT_UNLOCKED, INKSCAPE_ICON_OBJECT_LOCKED));
 
119
        INKSCAPE_ICON("object-unlocked"), INKSCAPE_ICON("object-locked")));
119
120
    _lock_toggle.add(*label);
120
121
    _lock_toggle.signal_toggled().connect(
121
122
        sigc::compose(
235
236
    using Inkscape::Util::reverse_list;
236
237
 
237
238
    _selection_changed_connection.block();
 
239
    _visibility_toggled_connection.block();
 
240
    _lock_toggled_connection.block();
238
241
 
239
242
    while (!_layer_model->children().empty()) {
240
243
        Gtk::ListStore::iterator first_row(_layer_model->children().begin());
284
287
        _lock_toggle.set_active(( SP_IS_ITEM(layer) ? SP_ITEM(layer)->isLocked() : false ));
285
288
    }
286
289
 
 
290
    _lock_toggled_connection.unblock();
 
291
    _visibility_toggled_connection.unblock();
287
292
    _selection_changed_connection.unblock();
288
293
}
289
294
 
459
464
    );
460
465
 
461
466
    SPObject *layer=_desktop->currentLayer();
462
 
    if ( &object == layer || &object == SP_OBJECT_PARENT(layer) ) {
 
467
    if ( (&object == layer) || (&object == layer->parent) ) {
463
468
        callbacks->update_list = sigc::bind(
464
469
            sigc::mem_fun(*this, &LayerSelector::_protectUpdate),
465
470
            sigc::bind(
497
502
    sp_object_ref(&object, NULL);
498
503
    row->set_value(_model_columns.object, &object);
499
504
 
500
 
    Inkscape::GC::anchor(SP_OBJECT_REPR(&object));
501
 
    row->set_value(_model_columns.repr, SP_OBJECT_REPR(&object));
 
505
    Inkscape::GC::anchor(object.getRepr());
 
506
    row->set_value(_model_columns.repr, object.getRepr());
502
507
 
503
508
    row->set_value(_model_columns.callbacks, reinterpret_cast<void *>(callbacks));
504
509
 
505
 
    sp_repr_add_listener(SP_OBJECT_REPR(&object), vector, callbacks);
 
510
    sp_repr_add_listener(object.getRepr(), vector, callbacks);
506
511
}
507
512
 
508
513
/** Removes a row from the _model_columns object, disconnecting listeners
535
540
    //       (or before one has been selected) something appears to
536
541
    //       "invent" an iterator with null data and try to render it;
537
542
    //       where does it come from, and how can we avoid it?
538
 
    if ( object && SP_OBJECT_REPR(object) ) {
 
543
    if ( object && object->getRepr() ) {
539
544
        SPObject *layer=( _desktop ? _desktop->currentLayer() : NULL );
540
545
        SPObject *root=( _desktop ? _desktop->currentRoot() : NULL );
541
546
 
542
 
        bool isancestor = !( (layer && (SP_OBJECT_PARENT(object) == SP_OBJECT_PARENT(layer))) || ((layer == root) && (SP_OBJECT_PARENT(object) == root)));
 
547
        bool isancestor = !( (layer && (object->parent == layer->parent)) || ((layer == root) && (object->parent == root)));
543
548
 
544
 
        bool iscurrent = ( object == layer && object != root );
 
549
        bool iscurrent = ( (object == layer) && (object != root) );
545
550
 
546
551
        gchar *format = g_strdup_printf (
547
552
            "<span size=\"smaller\" %s><tt>%*s%s</tt>%s%s%s%%s%s%s%s</span>",
583
588
void LayerSelector::_lockLayer(bool lock) {
584
589
    if ( _layer && SP_IS_ITEM(_layer) ) {
585
590
        SP_ITEM(_layer)->setLocked(lock);
586
 
        sp_document_done(sp_desktop_document(_desktop), SP_VERB_NONE,
587
 
                         lock? _("Lock layer") : _("Unlock layer"));
 
591
        DocumentUndo::done(sp_desktop_document(_desktop), SP_VERB_NONE,
 
592
                           lock? _("Lock layer") : _("Unlock layer"));
588
593
    }
589
594
}
590
595
 
591
596
void LayerSelector::_hideLayer(bool hide) {
592
597
    if ( _layer && SP_IS_ITEM(_layer) ) {
593
598
        SP_ITEM(_layer)->setHidden(hide);
594
 
        sp_document_done(sp_desktop_document(_desktop), SP_VERB_NONE,
595
 
                         hide? _("Hide layer") : _("Unhide layer"));
 
599
        DocumentUndo::done(sp_desktop_document(_desktop), SP_VERB_NONE,
 
600
                           hide? _("Hide layer") : _("Unhide layer"));
596
601
    }
597
602
}
598
603
 
608
613
  fill-column:99
609
614
  End:
610
615
*/
611
 
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
 
616
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :