~ubuntu-branches/ubuntu/trusty/gnome-photos/trusty

« back to all changes in this revision

Viewing changes to src/photos-tracker-collections-controller.c

  • Committer: Package Import Robot
  • Author(s): Jackson Doak
  • Date: 2014-02-12 06:40:47 UTC
  • Revision ID: package-import@ubuntu.com-20140212064047-33l9kizb5e74s7db
Tags: upstream-3.10.2
Import upstream version 3.10.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Photos - access, organize and share your photos on GNOME
 
3
 * Copyright © 2013 Red Hat, Inc.
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or
 
6
 * modify it under the terms of the GNU General Public License
 
7
 * as published by the Free Software Foundation; either version 2
 
8
 * of the License, or (at your option) any later version.
 
9
 *
 
10
 * This program is distributed in the hope that it will be useful,
 
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
 * GNU General Public License for more details.
 
14
 *
 
15
 * You should have received a copy of the GNU General Public License
 
16
 * along with this program; if not, write to the Free Software
 
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 
18
 * 02110-1301, USA.
 
19
 */
 
20
 
 
21
 
 
22
#include "config.h"
 
23
 
 
24
#include "photos-collection-manager.h"
 
25
#include "photos-offset-collections-controller.h"
 
26
#include "photos-query-builder.h"
 
27
#include "photos-tracker-collections-controller.h"
 
28
 
 
29
 
 
30
struct _PhotosTrackerCollectionsControllerPrivate
 
31
{
 
32
  PhotosBaseManager *col_mngr;
 
33
};
 
34
 
 
35
 
 
36
G_DEFINE_TYPE_WITH_PRIVATE (PhotosTrackerCollectionsController,
 
37
                            photos_tracker_collections_controller,
 
38
                            PHOTOS_TYPE_TRACKER_CONTROLLER);
 
39
 
 
40
 
 
41
static PhotosOffsetController *
 
42
photos_tracker_collections_controller_get_offset_controller (void)
 
43
{
 
44
  return photos_offset_collections_controller_dup_singleton ();
 
45
}
 
46
 
 
47
 
 
48
static PhotosQuery *
 
49
photos_tracker_collections_controller_get_query (PhotosTrackerController *trk_cntrlr)
 
50
{
 
51
  PhotosTrackerCollectionsController *self = PHOTOS_TRACKER_COLLECTIONS_CONTROLLER (trk_cntrlr);
 
52
  GObject *collection;
 
53
  gint flags;
 
54
 
 
55
  collection = photos_base_manager_get_active_object (self->priv->col_mngr);
 
56
  if (collection != NULL)
 
57
    flags = PHOTOS_QUERY_FLAGS_NONE;
 
58
  else
 
59
    flags = PHOTOS_QUERY_FLAGS_COLLECTIONS;
 
60
 
 
61
  return photos_query_builder_global_query (flags);
 
62
}
 
63
 
 
64
 
 
65
static GObject *
 
66
photos_tracker_collections_controller_constructor (GType type,
 
67
                                                   guint n_construct_params,
 
68
                                                   GObjectConstructParam *construct_params)
 
69
{
 
70
  static GObject *self = NULL;
 
71
 
 
72
  if (self == NULL)
 
73
    {
 
74
      self = G_OBJECT_CLASS (photos_tracker_collections_controller_parent_class)->constructor (type,
 
75
                                                                                               n_construct_params,
 
76
                                                                                               construct_params);
 
77
      g_object_add_weak_pointer (self, (gpointer) &self);
 
78
      return self;
 
79
    }
 
80
 
 
81
  return g_object_ref (self);
 
82
}
 
83
 
 
84
 
 
85
static void
 
86
photos_tracker_collections_controller_dispose (GObject *object)
 
87
{
 
88
  PhotosTrackerCollectionsController *self = PHOTOS_TRACKER_COLLECTIONS_CONTROLLER (object);
 
89
 
 
90
  g_clear_object (&self->priv->col_mngr);
 
91
 
 
92
  G_OBJECT_CLASS (photos_tracker_collections_controller_parent_class)->dispose (object);
 
93
}
 
94
 
 
95
 
 
96
static void
 
97
photos_tracker_collections_controller_init (PhotosTrackerCollectionsController *self)
 
98
{
 
99
  PhotosTrackerCollectionsControllerPrivate *priv;
 
100
 
 
101
  self->priv = photos_tracker_collections_controller_get_instance_private (self);
 
102
  priv = self->priv;
 
103
 
 
104
  priv->col_mngr = photos_collection_manager_dup_singleton ();
 
105
}
 
106
 
 
107
 
 
108
static void
 
109
photos_tracker_collections_controller_class_init (PhotosTrackerCollectionsControllerClass *class)
 
110
{
 
111
  GObjectClass *object_class = G_OBJECT_CLASS (class);
 
112
  PhotosTrackerControllerClass *tracker_controller_class = PHOTOS_TRACKER_CONTROLLER_CLASS (class);
 
113
 
 
114
  object_class->constructor = photos_tracker_collections_controller_constructor;
 
115
  object_class->dispose = photos_tracker_collections_controller_dispose;
 
116
  tracker_controller_class->get_offset_controller = photos_tracker_collections_controller_get_offset_controller;
 
117
  tracker_controller_class->get_query = photos_tracker_collections_controller_get_query;
 
118
}
 
119
 
 
120
 
 
121
PhotosTrackerController *
 
122
photos_tracker_collections_controller_dup_singleton (void)
 
123
{
 
124
  return g_object_new (PHOTOS_TYPE_TRACKER_COLLECTIONS_CONTROLLER, NULL);
 
125
}