~ubuntu-branches/ubuntu/oneiric/evince/oneiric-updates

« back to all changes in this revision

Viewing changes to shell/ev-sidebar-layers.c

  • Committer: Bazaar Package Importer
  • Author(s): Frederic Peters
  • Date: 2011-04-14 16:20:57 UTC
  • mfrom: (1.6.4 upstream)
  • mto: (1.3.5 experimental)
  • mto: This revision was merged to the branch mainline in revision 138.
  • Revision ID: james.westby@ubuntu.com-20110414162057-0ofhbd139zs6ev6y
ImportĀ upstreamĀ versionĀ 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 *
16
16
 * You should have received a copy of the GNU General Public License
17
17
 * along with this program; if not, write to the Free Software
18
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
19
 */
20
20
 
21
21
#include "config.h"
47
47
        N_SIGNALS
48
48
};
49
49
 
50
 
static void ev_sidebar_layers_page_iface_init (EvSidebarPageIface *iface);
51
 
static void job_finished_callback             (EvJobLayers        *job,
52
 
                                               EvSidebarLayers    *sidebar_layers);
 
50
static void ev_sidebar_layers_page_iface_init (EvSidebarPageInterface *iface);
 
51
static void job_finished_callback             (EvJobLayers            *job,
 
52
                                               EvSidebarLayers        *sidebar_layers);
53
53
 
54
54
static guint signals[N_SIGNALS];
55
55
 
332
332
}
333
333
 
334
334
static void
 
335
update_layers_state (GtkTreeModel     *model,
 
336
                     GtkTreeIter      *iter,
 
337
                     EvDocumentLayers *document_layers)
 
338
{
 
339
        EvLayer    *layer;
 
340
        gboolean    visible;
 
341
        GtkTreeIter child_iter;
 
342
 
 
343
        do {
 
344
                gtk_tree_model_get (model, iter,
 
345
                                    EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, &visible,
 
346
                                    EV_DOCUMENT_LAYERS_COLUMN_LAYER, &layer,
 
347
                                    -1);
 
348
                if (layer) {
 
349
                        gboolean layer_visible;
 
350
 
 
351
                        layer_visible = ev_document_layers_layer_is_visible (document_layers, layer);
 
352
                        if (layer_visible != visible) {
 
353
                                gtk_tree_store_set (GTK_TREE_STORE (model), iter,
 
354
                                                    EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, layer_visible,
 
355
                                                    -1);
 
356
                        }
 
357
                }
 
358
 
 
359
                if (gtk_tree_model_iter_children (model, &child_iter, iter))
 
360
                        update_layers_state (model, &child_iter, document_layers);
 
361
        } while (gtk_tree_model_iter_next (model, iter));
 
362
}
 
363
 
 
364
void
 
365
ev_sidebar_layers_update_layers_state (EvSidebarLayers *sidebar_layers)
 
366
{
 
367
        GtkTreeModel     *model;
 
368
        GtkTreeIter       iter;
 
369
        EvDocumentLayers *document_layers;
 
370
 
 
371
        document_layers = EV_DOCUMENT_LAYERS (sidebar_layers->priv->document);
 
372
        model = gtk_tree_view_get_model (GTK_TREE_VIEW (sidebar_layers->priv->tree_view));
 
373
        if (gtk_tree_model_get_iter_first (model, &iter))
 
374
                update_layers_state (model, &iter, document_layers);
 
375
}
 
376
 
 
377
static void
335
378
job_finished_callback (EvJobLayers     *job,
336
379
                       EvSidebarLayers *sidebar_layers)
337
380
{
402
445
}
403
446
 
404
447
static void
405
 
ev_sidebar_layers_page_iface_init (EvSidebarPageIface *iface)
 
448
ev_sidebar_layers_page_iface_init (EvSidebarPageInterface *iface)
406
449
{
407
450
        iface->support_document = ev_sidebar_layers_support_document;
408
451
        iface->set_model = ev_sidebar_layers_set_model;