~ubuntu-branches/ubuntu/saucy/activity-log-manager/saucy

« back to all changes in this revision

Viewing changes to src/unified-privacy-applications.c

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2013-07-04 12:32:19 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20130704123219-9ucew0nqo70uadiz
Tags: 0.9.6-0ubuntu1
* New upstream release. (LP: #1189253, #1050620, #1167531)
* Don't split control-center plugin to a separate package
* debian/control:
  - Bump minimum vala
  - Build-depend on libwhoopsie-dev, libzeitgeist-2.0-dev, and
    libgcrypt11-dev (LP: #1197569)
* debian/watch: Fixed
* Dropped patches applied in new version:
  - 01_move_to_personal_section.patch
  - 02_handle_upstart_in_whoopsie.patch:
  - 03_correct_path_to_whoopsie_preferences.patch:
  - 04_correct_privacy_policy_url.patch:
  - 05_add_missing_configvapi.patch
  - 05_fix_userdirs.patch
* debian/patches/01_really_hide_automatic_reports.patch:
  - Don't show "Send automatic reports" since that feature isn't
    implemented yet
* debian/patches/02_update_standalone_title.patch:
  - Update the title of the standalone app to Activity Log Manager too
* debian/patches/06_add_unity_dash_privacy.patch:
  - Refreshed and set to only show when Unity is running (LP: #1082552)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* unified-privacy-applications.c generated by valac 0.20.1.51-7ff1, the Vala compiler
 
2
 * generated from unified-privacy-applications.vala, do not modify */
 
3
 
 
4
/* -*- Mode: vala; tab-width: 4; intend-tabs-mode: t -*- */
 
5
/* alm
 
6
 *
 
7
 * Copyright (C) 2012 Seif Lotfy <seif@lotfy.com>
 
8
 * Copyright (C) 2012 Stefano Candori <stefano.candori@gmail.com>
 
9
 * Copyright (C) 2012 Manish Sinha <manishsinha@ubuntu.com>
 
10
 * Copyright (C) 2012 Intel Corp.
 
11
 *               Authored by: Seif Lotfy <seif.lotfy@collabora.co.uk>
 
12
 *
 
13
 * alm is free software: you can redistribute it and/or modify it
 
14
 * under the terms of the GNU Lesser General Public License as published
 
15
 * by the Free Software Foundation, either version 2 of the License, or
 
16
 * (at your option) any later version.
 
17
 * 
 
18
 * alm is distributed in the hope that it will be useful, but
 
19
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 
20
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
21
 * See the GNU Lesser General Public License for more details.
 
22
 * 
 
23
 * You should have received a copy of the GNU Lesser General Public License
 
24
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.";
 
25
 */
 
26
 
 
27
#include <glib.h>
 
28
#include <glib-object.h>
 
29
#include <gee.h>
 
30
#include <stdlib.h>
 
31
#include <string.h>
 
32
#include <zeitgeist-datamodel.h>
 
33
#include <gtk/gtk.h>
 
34
#include <gdk-pixbuf/gdk-pixbuf.h>
 
35
#include <glib/gi18n-lib.h>
 
36
#include <pango/pango.h>
 
37
#include <gio/gio.h>
 
38
#include <gio/gdesktopappinfo.h>
 
39
#include <gdk/gdk.h>
 
40
#include <cairo.h>
 
41
#include <float.h>
 
42
#include <math.h>
 
43
#include <gobject/gvaluecollector.h>
 
44
 
 
45
 
 
46
#define ALM_TYPE_APPLICATION_BLACKLIST (alm_application_blacklist_get_type ())
 
47
#define ALM_APPLICATION_BLACKLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ALM_TYPE_APPLICATION_BLACKLIST, AlmApplicationBlacklist))
 
48
#define ALM_APPLICATION_BLACKLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ALM_TYPE_APPLICATION_BLACKLIST, AlmApplicationBlacklistClass))
 
49
#define ALM_IS_APPLICATION_BLACKLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ALM_TYPE_APPLICATION_BLACKLIST))
 
50
#define ALM_IS_APPLICATION_BLACKLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ALM_TYPE_APPLICATION_BLACKLIST))
 
51
#define ALM_APPLICATION_BLACKLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ALM_TYPE_APPLICATION_BLACKLIST, AlmApplicationBlacklistClass))
 
52
 
 
53
typedef struct _AlmApplicationBlacklist AlmApplicationBlacklist;
 
54
typedef struct _AlmApplicationBlacklistClass AlmApplicationBlacklistClass;
 
55
typedef struct _AlmApplicationBlacklistPrivate AlmApplicationBlacklistPrivate;
 
56
 
 
57
#define ALM_TYPE_BLACKLIST (alm_blacklist_get_type ())
 
58
#define ALM_BLACKLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ALM_TYPE_BLACKLIST, AlmBlacklist))
 
59
#define ALM_BLACKLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ALM_TYPE_BLACKLIST, AlmBlacklistClass))
 
60
#define ALM_IS_BLACKLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ALM_TYPE_BLACKLIST))
 
61
#define ALM_IS_BLACKLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ALM_TYPE_BLACKLIST))
 
62
#define ALM_BLACKLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ALM_TYPE_BLACKLIST, AlmBlacklistClass))
 
63
 
 
64
typedef struct _AlmBlacklist AlmBlacklist;
 
65
typedef struct _AlmBlacklistClass AlmBlacklistClass;
 
66
#define _alm_blacklist_unref0(var) ((var == NULL) ? NULL : (var = (alm_blacklist_unref (var), NULL)))
 
67
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 
68
 
 
69
#define ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG (alm_applications_chooser_dialog_get_type ())
 
70
#define ALM_APPLICATIONS_CHOOSER_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG, AlmApplicationsChooserDialog))
 
71
#define ALM_APPLICATIONS_CHOOSER_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG, AlmApplicationsChooserDialogClass))
 
72
#define ALM_IS_APPLICATIONS_CHOOSER_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG))
 
73
#define ALM_IS_APPLICATIONS_CHOOSER_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG))
 
74
#define ALM_APPLICATIONS_CHOOSER_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG, AlmApplicationsChooserDialogClass))
 
75
 
 
76
typedef struct _AlmApplicationsChooserDialog AlmApplicationsChooserDialog;
 
77
typedef struct _AlmApplicationsChooserDialogClass AlmApplicationsChooserDialogClass;
 
78
#define _g_free0(var) (var = (g_free (var), NULL))
 
79
#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
 
80
typedef struct _AlmParamSpecApplicationBlacklist AlmParamSpecApplicationBlacklist;
 
81
 
 
82
#define ALM_TYPE_APPLICATIONS_TREE_VIEW (alm_applications_tree_view_get_type ())
 
83
#define ALM_APPLICATIONS_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ALM_TYPE_APPLICATIONS_TREE_VIEW, AlmApplicationsTreeView))
 
84
#define ALM_APPLICATIONS_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ALM_TYPE_APPLICATIONS_TREE_VIEW, AlmApplicationsTreeViewClass))
 
85
#define ALM_IS_APPLICATIONS_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ALM_TYPE_APPLICATIONS_TREE_VIEW))
 
86
#define ALM_IS_APPLICATIONS_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ALM_TYPE_APPLICATIONS_TREE_VIEW))
 
87
#define ALM_APPLICATIONS_TREE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ALM_TYPE_APPLICATIONS_TREE_VIEW, AlmApplicationsTreeViewClass))
 
88
 
 
89
typedef struct _AlmApplicationsTreeView AlmApplicationsTreeView;
 
90
typedef struct _AlmApplicationsTreeViewClass AlmApplicationsTreeViewClass;
 
91
typedef struct _AlmApplicationsTreeViewPrivate AlmApplicationsTreeViewPrivate;
 
92
 
 
93
#define ALM_TYPE_APP_CHOOSE_INFO (alm_app_choose_info_get_type ())
 
94
#define ALM_APP_CHOOSE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ALM_TYPE_APP_CHOOSE_INFO, AlmAppChooseInfo))
 
95
#define ALM_APP_CHOOSE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ALM_TYPE_APP_CHOOSE_INFO, AlmAppChooseInfoClass))
 
96
#define ALM_IS_APP_CHOOSE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ALM_TYPE_APP_CHOOSE_INFO))
 
97
#define ALM_IS_APP_CHOOSE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ALM_TYPE_APP_CHOOSE_INFO))
 
98
#define ALM_APP_CHOOSE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ALM_TYPE_APP_CHOOSE_INFO, AlmAppChooseInfoClass))
 
99
 
 
100
typedef struct _AlmAppChooseInfo AlmAppChooseInfo;
 
101
typedef struct _AlmAppChooseInfoClass AlmAppChooseInfoClass;
 
102
 
 
103
#define ALM_APPLICATIONS_TREE_VIEW_TYPE_TREE_VIEW_COLS (alm_applications_tree_view_tree_view_cols_get_type ())
 
104
#define _alm_application_blacklist_unref0(var) ((var == NULL) ? NULL : (var = (alm_application_blacklist_unref (var), NULL)))
 
105
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
 
106
#define _gtk_icon_info_free0(var) ((var == NULL) ? NULL : (var = (gtk_icon_info_free (var), NULL)))
 
107
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
 
108
 
 
109
#define ALM_TYPE_APP_SELECTION_TREE_VIEW (alm_app_selection_tree_view_get_type ())
 
110
#define ALM_APP_SELECTION_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ALM_TYPE_APP_SELECTION_TREE_VIEW, AlmAppSelectionTreeView))
 
111
#define ALM_APP_SELECTION_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ALM_TYPE_APP_SELECTION_TREE_VIEW, AlmAppSelectionTreeViewClass))
 
112
#define ALM_IS_APP_SELECTION_TREE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ALM_TYPE_APP_SELECTION_TREE_VIEW))
 
113
#define ALM_IS_APP_SELECTION_TREE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ALM_TYPE_APP_SELECTION_TREE_VIEW))
 
114
#define ALM_APP_SELECTION_TREE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ALM_TYPE_APP_SELECTION_TREE_VIEW, AlmAppSelectionTreeViewClass))
 
115
 
 
116
typedef struct _AlmAppSelectionTreeView AlmAppSelectionTreeView;
 
117
typedef struct _AlmAppSelectionTreeViewClass AlmAppSelectionTreeViewClass;
 
118
typedef struct _AlmAppSelectionTreeViewPrivate AlmAppSelectionTreeViewPrivate;
 
119
 
 
120
#define ALM_APP_SELECTION_TREE_VIEW_TYPE_TREE_VIEW_COLS (alm_app_selection_tree_view_tree_view_cols_get_type ())
 
121
 
 
122
#define ALM_TYPE_USAGE_CELL_RENDERER (alm_usage_cell_renderer_get_type ())
 
123
#define ALM_USAGE_CELL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ALM_TYPE_USAGE_CELL_RENDERER, AlmUsageCellRenderer))
 
124
#define ALM_USAGE_CELL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ALM_TYPE_USAGE_CELL_RENDERER, AlmUsageCellRendererClass))
 
125
#define ALM_IS_USAGE_CELL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ALM_TYPE_USAGE_CELL_RENDERER))
 
126
#define ALM_IS_USAGE_CELL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ALM_TYPE_USAGE_CELL_RENDERER))
 
127
#define ALM_USAGE_CELL_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ALM_TYPE_USAGE_CELL_RENDERER, AlmUsageCellRendererClass))
 
128
 
 
129
typedef struct _AlmUsageCellRenderer AlmUsageCellRenderer;
 
130
typedef struct _AlmUsageCellRendererClass AlmUsageCellRendererClass;
 
131
typedef struct _AlmApplicationsChooserDialogPrivate AlmApplicationsChooserDialogPrivate;
 
132
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
 
133
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
 
134
#define _alm_app_choose_info_unref0(var) ((var == NULL) ? NULL : (var = (alm_app_choose_info_unref (var), NULL)))
 
135
typedef struct _AlmUsageCellRendererPrivate AlmUsageCellRendererPrivate;
 
136
typedef struct _AlmAppChooseInfoPrivate AlmAppChooseInfoPrivate;
 
137
typedef struct _AlmParamSpecAppChooseInfo AlmParamSpecAppChooseInfo;
 
138
 
 
139
struct _AlmApplicationBlacklist {
 
140
        GTypeInstance parent_instance;
 
141
        volatile int ref_count;
 
142
        AlmApplicationBlacklistPrivate * priv;
 
143
};
 
144
 
 
145
struct _AlmApplicationBlacklistClass {
 
146
        GTypeClass parent_class;
 
147
        void (*finalize) (AlmApplicationBlacklist *self);
 
148
};
 
149
 
 
150
struct _AlmApplicationBlacklistPrivate {
 
151
        AlmBlacklist* blacklist_interface;
 
152
        GeeHashSet* all_blocked_apps;
 
153
};
 
154
 
 
155
struct _AlmParamSpecApplicationBlacklist {
 
156
        GParamSpec parent_instance;
 
157
};
 
158
 
 
159
struct _AlmApplicationsTreeView {
 
160
        GtkBox parent_instance;
 
161
        AlmApplicationsTreeViewPrivate * priv;
 
162
};
 
163
 
 
164
struct _AlmApplicationsTreeViewClass {
 
165
        GtkBoxClass parent_class;
 
166
};
 
167
 
 
168
struct _AlmApplicationsTreeViewPrivate {
 
169
        AlmApplicationBlacklist* app_blacklist;
 
170
        GtkListStore* store;
 
171
        GtkTreeView* treeview;
 
172
        GHashTable* blocked_apps;
 
173
        GHashTable* unblocked_apps;
 
174
};
 
175
 
 
176
typedef enum  {
 
177
        ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_APP_NAME,
 
178
        ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_ICON,
 
179
        ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_DESKTOP_FILE,
 
180
        ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_N_COLS
 
181
} AlmApplicationsTreeViewTreeViewCols;
 
182
 
 
183
struct _AlmAppSelectionTreeView {
 
184
        GtkBox parent_instance;
 
185
        AlmAppSelectionTreeViewPrivate * priv;
 
186
};
 
187
 
 
188
struct _AlmAppSelectionTreeViewClass {
 
189
        GtkBoxClass parent_class;
 
190
};
 
191
 
 
192
struct _AlmAppSelectionTreeViewPrivate {
 
193
        AlmApplicationBlacklist* app_blacklist;
 
194
        GtkListStore* store;
 
195
        GtkTreeView* treeview;
 
196
};
 
197
 
 
198
typedef enum  {
 
199
        ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_APP_NAME,
 
200
        ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_ICON,
 
201
        ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_DESKTOP_FILE,
 
202
        ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_LAST_ACCESSED_STRING,
 
203
        ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_LAST_ACCESSED_INT,
 
204
        ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_USAGE,
 
205
        ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_N_COLS
 
206
} AlmAppSelectionTreeViewTreeViewCols;
 
207
 
 
208
struct _AlmApplicationsChooserDialog {
 
209
        GtkDialog parent_instance;
 
210
        AlmApplicationsChooserDialogPrivate * priv;
 
211
};
 
212
 
 
213
struct _AlmApplicationsChooserDialogClass {
 
214
        GtkDialogClass parent_class;
 
215
};
 
216
 
 
217
struct _AlmApplicationsChooserDialogPrivate {
 
218
        AlmApplicationBlacklist* app_blacklist;
 
219
        AlmAppSelectionTreeView* treeview;
 
220
        GHashTable* all_actors_list;
 
221
        GHashTable* actors_iter;
 
222
        GHashTable* blocked_apps;
 
223
        GHashTable* unblocked_apps;
 
224
};
 
225
 
 
226
struct _AlmUsageCellRenderer {
 
227
        GtkCellRenderer parent_instance;
 
228
        AlmUsageCellRendererPrivate * priv;
 
229
};
 
230
 
 
231
struct _AlmUsageCellRendererClass {
 
232
        GtkCellRendererClass parent_class;
 
233
};
 
234
 
 
235
struct _AlmUsageCellRendererPrivate {
 
236
        gint usage_num;
 
237
};
 
238
 
 
239
struct _AlmAppChooseInfo {
 
240
        GTypeInstance parent_instance;
 
241
        volatile int ref_count;
 
242
        AlmAppChooseInfoPrivate * priv;
 
243
};
 
244
 
 
245
struct _AlmAppChooseInfoClass {
 
246
        GTypeClass parent_class;
 
247
        void (*finalize) (AlmAppChooseInfo *self);
 
248
};
 
249
 
 
250
struct _AlmAppChooseInfoPrivate {
 
251
        gchar* app_id;
 
252
        gchar* app_name;
 
253
        GdkPixbuf* app_icon;
 
254
        gchar* last_accessed_time_s;
 
255
        gint64 last_accessed_time_i;
 
256
        guint usage_rating;
 
257
};
 
258
 
 
259
struct _AlmParamSpecAppChooseInfo {
 
260
        GParamSpec parent_instance;
 
261
};
 
262
 
 
263
 
 
264
static gpointer alm_application_blacklist_parent_class = NULL;
 
265
extern gchar* alm_application_blacklist_interpretation_prefix;
 
266
gchar* alm_application_blacklist_interpretation_prefix = NULL;
 
267
extern gchar* alm_application_blacklist_launcher_prefix;
 
268
gchar* alm_application_blacklist_launcher_prefix = NULL;
 
269
static gpointer alm_applications_tree_view_parent_class = NULL;
 
270
static gpointer alm_app_selection_tree_view_parent_class = NULL;
 
271
static gpointer alm_applications_chooser_dialog_parent_class = NULL;
 
272
static gpointer alm_usage_cell_renderer_parent_class = NULL;
 
273
static gpointer alm_app_choose_info_parent_class = NULL;
 
274
 
 
275
gpointer alm_application_blacklist_ref (gpointer instance);
 
276
void alm_application_blacklist_unref (gpointer instance);
 
277
GParamSpec* alm_param_spec_application_blacklist (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
278
void alm_value_set_application_blacklist (GValue* value, gpointer v_object);
 
279
void alm_value_take_application_blacklist (GValue* value, gpointer v_object);
 
280
gpointer alm_value_get_application_blacklist (const GValue* value);
 
281
GType alm_application_blacklist_get_type (void) G_GNUC_CONST;
 
282
gpointer alm_blacklist_ref (gpointer instance);
 
283
void alm_blacklist_unref (gpointer instance);
 
284
GParamSpec* alm_param_spec_blacklist (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
285
void alm_value_set_blacklist (GValue* value, gpointer v_object);
 
286
void alm_value_take_blacklist (GValue* value, gpointer v_object);
 
287
gpointer alm_value_get_blacklist (const GValue* value);
 
288
GType alm_blacklist_get_type (void) G_GNUC_CONST;
 
289
#define ALM_APPLICATION_BLACKLIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ALM_TYPE_APPLICATION_BLACKLIST, AlmApplicationBlacklistPrivate))
 
290
enum  {
 
291
        ALM_APPLICATION_BLACKLIST_DUMMY_PROPERTY
 
292
};
 
293
AlmApplicationBlacklist* alm_application_blacklist_new (AlmBlacklist* blacklist);
 
294
AlmApplicationBlacklist* alm_application_blacklist_construct (GType object_type, AlmBlacklist* blacklist);
 
295
static void alm_application_blacklist_on_blacklist_added (AlmApplicationBlacklist* self, const gchar* blacklist_id, ZeitgeistEvent* ev);
 
296
static void _alm_application_blacklist_on_blacklist_added_alm_blacklist_template_added (AlmBlacklist* _sender, const gchar* blacklist_id, ZeitgeistEvent* blacklist_template, gpointer self);
 
297
static void alm_application_blacklist_on_blacklist_removed (AlmApplicationBlacklist* self, const gchar* blacklist_id, ZeitgeistEvent* ev);
 
298
static void _alm_application_blacklist_on_blacklist_removed_alm_blacklist_template_removed (AlmBlacklist* _sender, const gchar* blacklist_id, ZeitgeistEvent* blacklist_template, gpointer self);
 
299
static GeeHashSet* alm_application_blacklist_get_blocked_apps (AlmApplicationBlacklist* self);
 
300
GType alm_applications_chooser_dialog_get_type (void) G_GNUC_CONST;
 
301
void alm_application_blacklist_get_all_applications (AlmApplicationBlacklist* self, AlmApplicationsChooserDialog* dialog);
 
302
void alm_blacklist_get_all_applications (AlmBlacklist* self, AlmApplicationsChooserDialog* dialog);
 
303
void alm_application_blacklist_get_count_for_app (AlmApplicationBlacklist* self, const gchar* id, GtkTreeIter* iter, GtkListStore* store);
 
304
void alm_blacklist_get_count_for_app (AlmBlacklist* self, const gchar* app_id, GtkTreeIter* iter, GtkListStore* store);
 
305
GHashTable* alm_blacklist_get_all_templates (AlmBlacklist* self);
 
306
GeeHashSet* alm_application_blacklist_get_all_apps (AlmApplicationBlacklist* self);
 
307
void alm_application_blacklist_block (AlmApplicationBlacklist* self, const gchar* application);
 
308
void alm_blacklist_add_template (AlmBlacklist* self, const gchar* blacklist_id, ZeitgeistEvent* blacklist_template);
 
309
void alm_application_blacklist_unblock (AlmApplicationBlacklist* self, const gchar* application);
 
310
void alm_blacklist_remove_template (AlmBlacklist* self, const gchar* blacklist_id);
 
311
static void g_cclosure_user_marshal_VOID__STRING_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
 
312
static void alm_application_blacklist_finalize (AlmApplicationBlacklist* obj);
 
313
GType alm_applications_tree_view_get_type (void) G_GNUC_CONST;
 
314
gpointer alm_app_choose_info_ref (gpointer instance);
 
315
void alm_app_choose_info_unref (gpointer instance);
 
316
GParamSpec* alm_param_spec_app_choose_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
317
void alm_value_set_app_choose_info (GValue* value, gpointer v_object);
 
318
void alm_value_take_app_choose_info (GValue* value, gpointer v_object);
 
319
gpointer alm_value_get_app_choose_info (const GValue* value);
 
320
GType alm_app_choose_info_get_type (void) G_GNUC_CONST;
 
321
#define ALM_APPLICATIONS_TREE_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ALM_TYPE_APPLICATIONS_TREE_VIEW, AlmApplicationsTreeViewPrivate))
 
322
enum  {
 
323
        ALM_APPLICATIONS_TREE_VIEW_DUMMY_PROPERTY,
 
324
        ALM_APPLICATIONS_TREE_VIEW_LISTSTORE
 
325
};
 
326
static GType alm_applications_tree_view_tree_view_cols_get_type (void) G_GNUC_UNUSED;
 
327
AlmApplicationsTreeView* alm_applications_tree_view_new (AlmApplicationBlacklist* app_blacklist, GHashTable* blocked, GHashTable* unblocked);
 
328
AlmApplicationsTreeView* alm_applications_tree_view_construct (GType object_type, AlmApplicationBlacklist* app_blacklist, GHashTable* blocked, GHashTable* unblocked);
 
329
static void alm_applications_tree_view_set_up_ui (AlmApplicationsTreeView* self);
 
330
GdkPixbuf* alm_applications_tree_view_get_pixbuf_from_gio_icon (GIcon* icon, gint size);
 
331
gchar* alm_applications_tree_view_markup_for_app (GDesktopAppInfo* app_info);
 
332
void alm_applications_tree_view_add_application_to_view (AlmApplicationsTreeView* self, const gchar* app);
 
333
GtkListStore* alm_applications_tree_view_get_liststore (AlmApplicationsTreeView* self);
 
334
AlmAppChooseInfo* alm_app_choose_info_new (const gchar* id, const gchar* app_name, GdkPixbuf* app_icon, const gchar* last_accessed_time_s, gint64 last_accessed_time_i, guint usage_rating);
 
335
AlmAppChooseInfo* alm_app_choose_info_construct (GType object_type, const gchar* id, const gchar* app_name, GdkPixbuf* app_icon, const gchar* last_accessed_time_s, gint64 last_accessed_time_i, guint usage_rating);
 
336
void alm_applications_tree_view_remove_app_from_view (AlmApplicationsTreeView* self, const gchar* app);
 
337
gchar* alm_applications_tree_view_remove_selected_app (AlmApplicationsTreeView* self);
 
338
static void alm_applications_tree_view_finalize (GObject* obj);
 
339
static void _vala_alm_applications_tree_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
340
GType alm_app_selection_tree_view_get_type (void) G_GNUC_CONST;
 
341
#define ALM_APP_SELECTION_TREE_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ALM_TYPE_APP_SELECTION_TREE_VIEW, AlmAppSelectionTreeViewPrivate))
 
342
enum  {
 
343
        ALM_APP_SELECTION_TREE_VIEW_DUMMY_PROPERTY,
 
344
        ALM_APP_SELECTION_TREE_VIEW_TREE,
 
345
        ALM_APP_SELECTION_TREE_VIEW_LISTSTORE
 
346
};
 
347
static GType alm_app_selection_tree_view_tree_view_cols_get_type (void) G_GNUC_UNUSED;
 
348
AlmAppSelectionTreeView* alm_app_selection_tree_view_new (AlmApplicationBlacklist* app_blacklist);
 
349
AlmAppSelectionTreeView* alm_app_selection_tree_view_construct (GType object_type, AlmApplicationBlacklist* app_blacklist);
 
350
static void alm_app_selection_tree_view_set_up_ui (AlmAppSelectionTreeView* self);
 
351
GType alm_usage_cell_renderer_get_type (void) G_GNUC_CONST;
 
352
AlmUsageCellRenderer* alm_usage_cell_renderer_new (void);
 
353
AlmUsageCellRenderer* alm_usage_cell_renderer_construct (GType object_type);
 
354
GtkTreeView* alm_app_selection_tree_view_get_tree (AlmAppSelectionTreeView* self);
 
355
GtkListStore* alm_app_selection_tree_view_get_liststore (AlmAppSelectionTreeView* self);
 
356
static void alm_app_selection_tree_view_finalize (GObject* obj);
 
357
static void _vala_alm_app_selection_tree_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
358
#define ALM_APPLICATIONS_CHOOSER_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG, AlmApplicationsChooserDialogPrivate))
 
359
enum  {
 
360
        ALM_APPLICATIONS_CHOOSER_DIALOG_DUMMY_PROPERTY,
 
361
        ALM_APPLICATIONS_CHOOSER_DIALOG_TREE,
 
362
        ALM_APPLICATIONS_CHOOSER_DIALOG_LISTSTORE
 
363
};
 
364
AlmApplicationsChooserDialog* alm_applications_chooser_dialog_new (AlmApplicationBlacklist* app_blacklist, GHashTable* blocked_list, GHashTable* unblocked_list);
 
365
AlmApplicationsChooserDialog* alm_applications_chooser_dialog_construct (GType object_type, AlmApplicationBlacklist* app_blacklist, GHashTable* blocked_list, GHashTable* unblocked_list);
 
366
static void _g_free0_ (gpointer var);
 
367
static void alm_applications_chooser_dialog_set_up_ui (AlmApplicationsChooserDialog* self);
 
368
static gint alm_applications_chooser_dialog_compare_dates (AlmApplicationsChooserDialog* self, GDateTime* now, GDateTime* time);
 
369
void alm_applications_chooser_dialog_handle_app_population (AlmApplicationsChooserDialog* self, GHashTable* all_actors);
 
370
static gint64* _int64_dup (gint64* self);
 
371
void alm_applications_chooser_dialog_insert_liststore (AlmApplicationsChooserDialog* self, GAppInfo* app_info, const gchar* last_accessed, gint64 last_accessed_time, guint usage);
 
372
static void _g_object_unref0_ (gpointer var);
 
373
static void _g_list_free__g_object_unref0_ (GList* self);
 
374
void alm_app_choose_info_set_last_accessed (AlmAppChooseInfo* self, const gchar* value);
 
375
void alm_app_choose_info_set_usage (AlmAppChooseInfo* self, guint value);
 
376
void alm_applications_chooser_dialog_insert_app_liststore (AlmApplicationsChooserDialog* self, const gchar* app);
 
377
const gchar* alm_app_choose_info_get_name (AlmAppChooseInfo* self);
 
378
GdkPixbuf* alm_app_choose_info_get_icon (AlmAppChooseInfo* self);
 
379
const gchar* alm_app_choose_info_get_last_accessed (AlmAppChooseInfo* self);
 
380
gint64 alm_app_choose_info_get_last_accessed_time (AlmAppChooseInfo* self);
 
381
gchar* alm_app_choose_info_get_id (AlmAppChooseInfo* self);
 
382
GtkTreeView* alm_applications_chooser_dialog_get_tree (AlmApplicationsChooserDialog* self);
 
383
GtkListStore* alm_applications_chooser_dialog_get_liststore (AlmApplicationsChooserDialog* self);
 
384
static void alm_applications_chooser_dialog_finalize (GObject* obj);
 
385
static void _vala_alm_applications_chooser_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
386
#define ALM_USAGE_CELL_RENDERER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ALM_TYPE_USAGE_CELL_RENDERER, AlmUsageCellRendererPrivate))
 
387
enum  {
 
388
        ALM_USAGE_CELL_RENDERER_DUMMY_PROPERTY,
 
389
        ALM_USAGE_CELL_RENDERER_USAGE
 
390
};
 
391
#define ALM_USAGE_CELL_RENDERER_RECT_NUM 10
 
392
#define ALM_USAGE_CELL_RENDERER_RECT_WIDTH 5
 
393
#define ALM_USAGE_CELL_RENDERER_RECT_HEIGHT 20
 
394
#define ALM_USAGE_CELL_RENDERER_RECT_SPACING 3
 
395
#define ALM_USAGE_CELL_RENDERER_xpadding 25
 
396
#define ALM_USAGE_CELL_RENDERER_ypadding 10
 
397
static void alm_usage_cell_renderer_real_get_size (GtkCellRenderer* base, GtkWidget* widget, GdkRectangle* cell_area, gint* x_offset, gint* y_offset, gint* width, gint* height);
 
398
static void alm_usage_cell_renderer_real_render (GtkCellRenderer* base, cairo_t* ctx, GtkWidget* widget, GdkRectangle* background_area, GdkRectangle* cell_area, GtkCellRendererState flags);
 
399
gint alm_usage_cell_renderer_get_usage (AlmUsageCellRenderer* self);
 
400
void alm_usage_cell_renderer_set_usage (AlmUsageCellRenderer* self, gint value);
 
401
static void alm_usage_cell_renderer_finalize (GObject* obj);
 
402
static void _vala_alm_usage_cell_renderer_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
403
static void _vala_alm_usage_cell_renderer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 
404
#define ALM_APP_CHOOSE_INFO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ALM_TYPE_APP_CHOOSE_INFO, AlmAppChooseInfoPrivate))
 
405
enum  {
 
406
        ALM_APP_CHOOSE_INFO_DUMMY_PROPERTY
 
407
};
 
408
void alm_app_choose_info_set_name (AlmAppChooseInfo* self, const gchar* value);
 
409
void alm_app_choose_info_set_icon (AlmAppChooseInfo* self, GdkPixbuf* value);
 
410
void alm_app_choose_info_set_last_accessed_time (AlmAppChooseInfo* self, gint64 value);
 
411
guint alm_app_choose_info_get_usage (AlmAppChooseInfo* self);
 
412
static void alm_app_choose_info_finalize (AlmAppChooseInfo* obj);
 
413
 
 
414
 
 
415
static gpointer _alm_blacklist_ref0 (gpointer self) {
 
416
        return self ? alm_blacklist_ref (self) : NULL;
 
417
}
 
418
 
 
419
 
 
420
static void _alm_application_blacklist_on_blacklist_added_alm_blacklist_template_added (AlmBlacklist* _sender, const gchar* blacklist_id, ZeitgeistEvent* blacklist_template, gpointer self) {
 
421
        alm_application_blacklist_on_blacklist_added (self, blacklist_id, blacklist_template);
 
422
}
 
423
 
 
424
 
 
425
static void _alm_application_blacklist_on_blacklist_removed_alm_blacklist_template_removed (AlmBlacklist* _sender, const gchar* blacklist_id, ZeitgeistEvent* blacklist_template, gpointer self) {
 
426
        alm_application_blacklist_on_blacklist_removed (self, blacklist_id, blacklist_template);
 
427
}
 
428
 
 
429
 
 
430
AlmApplicationBlacklist* alm_application_blacklist_construct (GType object_type, AlmBlacklist* blacklist) {
 
431
        AlmApplicationBlacklist* self = NULL;
 
432
        AlmBlacklist* _tmp0_ = NULL;
 
433
        AlmBlacklist* _tmp1_ = NULL;
 
434
        AlmBlacklist* _tmp2_ = NULL;
 
435
        AlmBlacklist* _tmp3_ = NULL;
 
436
        GeeHashSet* _tmp4_ = NULL;
 
437
        GeeHashSet* _tmp5_ = NULL;
 
438
        g_return_val_if_fail (blacklist != NULL, NULL);
 
439
        self = (AlmApplicationBlacklist*) g_type_create_instance (object_type);
 
440
        _tmp0_ = blacklist;
 
441
        _tmp1_ = _alm_blacklist_ref0 (_tmp0_);
 
442
        _alm_blacklist_unref0 (self->priv->blacklist_interface);
 
443
        self->priv->blacklist_interface = _tmp1_;
 
444
        _tmp2_ = self->priv->blacklist_interface;
 
445
        g_signal_connect (_tmp2_, "template-added", (GCallback) _alm_application_blacklist_on_blacklist_added_alm_blacklist_template_added, self);
 
446
        _tmp3_ = self->priv->blacklist_interface;
 
447
        g_signal_connect (_tmp3_, "template-removed", (GCallback) _alm_application_blacklist_on_blacklist_removed_alm_blacklist_template_removed, self);
 
448
        _tmp4_ = alm_application_blacklist_get_blocked_apps (self);
 
449
        _tmp5_ = _tmp4_;
 
450
        _g_object_unref0 (_tmp5_);
 
451
        return self;
 
452
}
 
453
 
 
454
 
 
455
AlmApplicationBlacklist* alm_application_blacklist_new (AlmBlacklist* blacklist) {
 
456
        return alm_application_blacklist_construct (ALM_TYPE_APPLICATION_BLACKLIST, blacklist);
 
457
}
 
458
 
 
459
 
 
460
void alm_application_blacklist_get_all_applications (AlmApplicationBlacklist* self, AlmApplicationsChooserDialog* dialog) {
 
461
        AlmBlacklist* _tmp0_ = NULL;
 
462
        AlmApplicationsChooserDialog* _tmp1_ = NULL;
 
463
        g_return_if_fail (self != NULL);
 
464
        g_return_if_fail (dialog != NULL);
 
465
        _tmp0_ = self->priv->blacklist_interface;
 
466
        _tmp1_ = dialog;
 
467
        alm_blacklist_get_all_applications (_tmp0_, _tmp1_);
 
468
}
 
469
 
 
470
 
 
471
void alm_application_blacklist_get_count_for_app (AlmApplicationBlacklist* self, const gchar* id, GtkTreeIter* iter, GtkListStore* store) {
 
472
        AlmBlacklist* _tmp0_ = NULL;
 
473
        const gchar* _tmp1_ = NULL;
 
474
        GtkTreeIter _tmp2_ = {0};
 
475
        GtkListStore* _tmp3_ = NULL;
 
476
        g_return_if_fail (self != NULL);
 
477
        g_return_if_fail (id != NULL);
 
478
        g_return_if_fail (iter != NULL);
 
479
        g_return_if_fail (store != NULL);
 
480
        _tmp0_ = self->priv->blacklist_interface;
 
481
        _tmp1_ = id;
 
482
        _tmp2_ = *iter;
 
483
        _tmp3_ = store;
 
484
        alm_blacklist_get_count_for_app (_tmp0_, _tmp1_, &_tmp2_, _tmp3_);
 
485
}
 
486
 
 
487
 
 
488
static glong string_strnlen (gchar* str, glong maxlen) {
 
489
        glong result = 0L;
 
490
        gchar* end = NULL;
 
491
        gchar* _tmp0_ = NULL;
 
492
        glong _tmp1_ = 0L;
 
493
        gchar* _tmp2_ = NULL;
 
494
        gchar* _tmp3_ = NULL;
 
495
        _tmp0_ = str;
 
496
        _tmp1_ = maxlen;
 
497
        _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
 
498
        end = _tmp2_;
 
499
        _tmp3_ = end;
 
500
        if (_tmp3_ == NULL) {
 
501
                glong _tmp4_ = 0L;
 
502
                _tmp4_ = maxlen;
 
503
                result = _tmp4_;
 
504
                return result;
 
505
        } else {
 
506
                gchar* _tmp5_ = NULL;
 
507
                gchar* _tmp6_ = NULL;
 
508
                _tmp5_ = end;
 
509
                _tmp6_ = str;
 
510
                result = (glong) (_tmp5_ - _tmp6_);
 
511
                return result;
 
512
        }
 
513
}
 
514
 
 
515
 
 
516
static gchar* string_substring (const gchar* self, glong offset, glong len) {
 
517
        gchar* result = NULL;
 
518
        glong string_length = 0L;
 
519
        gboolean _tmp0_ = FALSE;
 
520
        glong _tmp1_ = 0L;
 
521
        gboolean _tmp3_ = FALSE;
 
522
        glong _tmp9_ = 0L;
 
523
        glong _tmp15_ = 0L;
 
524
        glong _tmp18_ = 0L;
 
525
        glong _tmp19_ = 0L;
 
526
        glong _tmp20_ = 0L;
 
527
        glong _tmp21_ = 0L;
 
528
        glong _tmp22_ = 0L;
 
529
        gchar* _tmp23_ = NULL;
 
530
        g_return_val_if_fail (self != NULL, NULL);
 
531
        _tmp1_ = offset;
 
532
        if (_tmp1_ >= ((glong) 0)) {
 
533
                glong _tmp2_ = 0L;
 
534
                _tmp2_ = len;
 
535
                _tmp0_ = _tmp2_ >= ((glong) 0);
 
536
        } else {
 
537
                _tmp0_ = FALSE;
 
538
        }
 
539
        _tmp3_ = _tmp0_;
 
540
        if (_tmp3_) {
 
541
                glong _tmp4_ = 0L;
 
542
                glong _tmp5_ = 0L;
 
543
                glong _tmp6_ = 0L;
 
544
                _tmp4_ = offset;
 
545
                _tmp5_ = len;
 
546
                _tmp6_ = string_strnlen ((gchar*) self, _tmp4_ + _tmp5_);
 
547
                string_length = _tmp6_;
 
548
        } else {
 
549
                gint _tmp7_ = 0;
 
550
                gint _tmp8_ = 0;
 
551
                _tmp7_ = strlen (self);
 
552
                _tmp8_ = _tmp7_;
 
553
                string_length = (glong) _tmp8_;
 
554
        }
 
555
        _tmp9_ = offset;
 
556
        if (_tmp9_ < ((glong) 0)) {
 
557
                glong _tmp10_ = 0L;
 
558
                glong _tmp11_ = 0L;
 
559
                glong _tmp12_ = 0L;
 
560
                _tmp10_ = string_length;
 
561
                _tmp11_ = offset;
 
562
                offset = _tmp10_ + _tmp11_;
 
563
                _tmp12_ = offset;
 
564
                g_return_val_if_fail (_tmp12_ >= ((glong) 0), NULL);
 
565
        } else {
 
566
                glong _tmp13_ = 0L;
 
567
                glong _tmp14_ = 0L;
 
568
                _tmp13_ = offset;
 
569
                _tmp14_ = string_length;
 
570
                g_return_val_if_fail (_tmp13_ <= _tmp14_, NULL);
 
571
        }
 
572
        _tmp15_ = len;
 
573
        if (_tmp15_ < ((glong) 0)) {
 
574
                glong _tmp16_ = 0L;
 
575
                glong _tmp17_ = 0L;
 
576
                _tmp16_ = string_length;
 
577
                _tmp17_ = offset;
 
578
                len = _tmp16_ - _tmp17_;
 
579
        }
 
580
        _tmp18_ = offset;
 
581
        _tmp19_ = len;
 
582
        _tmp20_ = string_length;
 
583
        g_return_val_if_fail ((_tmp18_ + _tmp19_) <= _tmp20_, NULL);
 
584
        _tmp21_ = offset;
 
585
        _tmp22_ = len;
 
586
        _tmp23_ = g_strndup (((gchar*) self) + _tmp21_, (gsize) _tmp22_);
 
587
        result = _tmp23_;
 
588
        return result;
 
589
}
 
590
 
 
591
 
 
592
static gpointer _g_object_ref0 (gpointer self) {
 
593
        return self ? g_object_ref (self) : NULL;
 
594
}
 
595
 
 
596
 
 
597
static GeeHashSet* alm_application_blacklist_get_blocked_apps (AlmApplicationBlacklist* self) {
 
598
        GeeHashSet* result = NULL;
 
599
        GeeHashSet* _tmp0_ = NULL;
 
600
        AlmBlacklist* _tmp1_ = NULL;
 
601
        GHashTable* _tmp2_ = NULL;
 
602
        GHashTable* _tmp3_ = NULL;
 
603
        GList* _tmp4_ = NULL;
 
604
        GeeHashSet* _tmp13_ = NULL;
 
605
        GeeHashSet* _tmp14_ = NULL;
 
606
        g_return_val_if_fail (self != NULL, NULL);
 
607
        _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL);
 
608
        _g_object_unref0 (self->priv->all_blocked_apps);
 
609
        self->priv->all_blocked_apps = _tmp0_;
 
610
        _tmp1_ = self->priv->blacklist_interface;
 
611
        _tmp2_ = alm_blacklist_get_all_templates (_tmp1_);
 
612
        _tmp3_ = _tmp2_;
 
613
        _tmp4_ = g_hash_table_get_keys (_tmp3_);
 
614
        {
 
615
                GList* key_collection = NULL;
 
616
                GList* key_it = NULL;
 
617
                key_collection = _tmp4_;
 
618
                for (key_it = key_collection; key_it != NULL; key_it = key_it->next) {
 
619
                        gchar* _tmp5_ = NULL;
 
620
                        gchar* key = NULL;
 
621
                        _tmp5_ = g_strdup ((const gchar*) key_it->data);
 
622
                        key = _tmp5_;
 
623
                        {
 
624
                                const gchar* _tmp6_ = NULL;
 
625
                                const gchar* _tmp7_ = NULL;
 
626
                                gboolean _tmp8_ = FALSE;
 
627
                                _tmp6_ = key;
 
628
                                _tmp7_ = alm_application_blacklist_interpretation_prefix;
 
629
                                _tmp8_ = g_str_has_prefix (_tmp6_, _tmp7_);
 
630
                                if (_tmp8_) {
 
631
                                        gchar* app = NULL;
 
632
                                        const gchar* _tmp9_ = NULL;
 
633
                                        gchar* _tmp10_ = NULL;
 
634
                                        GeeHashSet* _tmp11_ = NULL;
 
635
                                        const gchar* _tmp12_ = NULL;
 
636
                                        _tmp9_ = key;
 
637
                                        _tmp10_ = string_substring (_tmp9_, (glong) 4, (glong) (-1));
 
638
                                        app = _tmp10_;
 
639
                                        _tmp11_ = self->priv->all_blocked_apps;
 
640
                                        _tmp12_ = app;
 
641
                                        gee_abstract_collection_add ((GeeAbstractCollection*) _tmp11_, _tmp12_);
 
642
                                        _g_free0 (app);
 
643
                                }
 
644
                                _g_free0 (key);
 
645
                        }
 
646
                }
 
647
                _g_list_free0 (key_collection);
 
648
        }
 
649
        _tmp13_ = self->priv->all_blocked_apps;
 
650
        _tmp14_ = _g_object_ref0 (_tmp13_);
 
651
        result = _tmp14_;
 
652
        return result;
 
653
}
 
654
 
 
655
 
 
656
static void alm_application_blacklist_on_blacklist_added (AlmApplicationBlacklist* self, const gchar* blacklist_id, ZeitgeistEvent* ev) {
 
657
        const gchar* _tmp0_ = NULL;
 
658
        const gchar* _tmp1_ = NULL;
 
659
        gboolean _tmp2_ = FALSE;
 
660
        g_return_if_fail (self != NULL);
 
661
        g_return_if_fail (blacklist_id != NULL);
 
662
        g_return_if_fail (ev != NULL);
 
663
        _tmp0_ = blacklist_id;
 
664
        _tmp1_ = alm_application_blacklist_interpretation_prefix;
 
665
        _tmp2_ = g_str_has_prefix (_tmp0_, _tmp1_);
 
666
        if (_tmp2_) {
 
667
                gchar* app = NULL;
 
668
                const gchar* _tmp3_ = NULL;
 
669
                gchar* _tmp4_ = NULL;
 
670
                const gchar* _tmp5_ = NULL;
 
671
                ZeitgeistEvent* _tmp6_ = NULL;
 
672
                GeeHashSet* _tmp7_ = NULL;
 
673
                GeeHashSet* _tmp8_ = NULL;
 
674
                const gchar* _tmp9_ = NULL;
 
675
                gboolean _tmp10_ = FALSE;
 
676
                _tmp3_ = blacklist_id;
 
677
                _tmp4_ = string_substring (_tmp3_, (glong) 4, (glong) (-1));
 
678
                app = _tmp4_;
 
679
                _tmp5_ = app;
 
680
                _tmp6_ = ev;
 
681
                g_signal_emit_by_name (self, "application-added", _tmp5_, _tmp6_);
 
682
                _tmp7_ = alm_application_blacklist_get_all_apps (self);
 
683
                _tmp8_ = _tmp7_;
 
684
                _tmp9_ = app;
 
685
                _tmp10_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp8_, _tmp9_);
 
686
                if (!_tmp10_) {
 
687
                        GeeHashSet* _tmp11_ = NULL;
 
688
                        GeeHashSet* _tmp12_ = NULL;
 
689
                        const gchar* _tmp13_ = NULL;
 
690
                        _tmp11_ = alm_application_blacklist_get_all_apps (self);
 
691
                        _tmp12_ = _tmp11_;
 
692
                        _tmp13_ = app;
 
693
                        gee_abstract_collection_add ((GeeAbstractCollection*) _tmp12_, _tmp13_);
 
694
                }
 
695
                _g_free0 (app);
 
696
        }
 
697
}
 
698
 
 
699
 
 
700
static void alm_application_blacklist_on_blacklist_removed (AlmApplicationBlacklist* self, const gchar* blacklist_id, ZeitgeistEvent* ev) {
 
701
        const gchar* _tmp0_ = NULL;
 
702
        const gchar* _tmp1_ = NULL;
 
703
        gboolean _tmp2_ = FALSE;
 
704
        g_return_if_fail (self != NULL);
 
705
        g_return_if_fail (blacklist_id != NULL);
 
706
        g_return_if_fail (ev != NULL);
 
707
        _tmp0_ = blacklist_id;
 
708
        _tmp1_ = alm_application_blacklist_interpretation_prefix;
 
709
        _tmp2_ = g_str_has_prefix (_tmp0_, _tmp1_);
 
710
        if (_tmp2_) {
 
711
                gchar* app = NULL;
 
712
                const gchar* _tmp3_ = NULL;
 
713
                gchar* _tmp4_ = NULL;
 
714
                const gchar* _tmp5_ = NULL;
 
715
                ZeitgeistEvent* _tmp6_ = NULL;
 
716
                GeeHashSet* _tmp7_ = NULL;
 
717
                GeeHashSet* _tmp8_ = NULL;
 
718
                const gchar* _tmp9_ = NULL;
 
719
                gboolean _tmp10_ = FALSE;
 
720
                _tmp3_ = blacklist_id;
 
721
                _tmp4_ = string_substring (_tmp3_, (glong) 4, (glong) (-1));
 
722
                app = _tmp4_;
 
723
                _tmp5_ = app;
 
724
                _tmp6_ = ev;
 
725
                g_signal_emit_by_name (self, "application-removed", _tmp5_, _tmp6_);
 
726
                _tmp7_ = alm_application_blacklist_get_all_apps (self);
 
727
                _tmp8_ = _tmp7_;
 
728
                _tmp9_ = app;
 
729
                _tmp10_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp8_, _tmp9_);
 
730
                if (_tmp10_) {
 
731
                        GeeHashSet* _tmp11_ = NULL;
 
732
                        GeeHashSet* _tmp12_ = NULL;
 
733
                        const gchar* _tmp13_ = NULL;
 
734
                        _tmp11_ = alm_application_blacklist_get_all_apps (self);
 
735
                        _tmp12_ = _tmp11_;
 
736
                        _tmp13_ = app;
 
737
                        gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp12_, _tmp13_);
 
738
                }
 
739
                _g_free0 (app);
 
740
        }
 
741
}
 
742
 
 
743
 
 
744
void alm_application_blacklist_block (AlmApplicationBlacklist* self, const gchar* application) {
 
745
        ZeitgeistEvent* ev = NULL;
 
746
        ZeitgeistEvent* _tmp0_ = NULL;
 
747
        ZeitgeistEvent* _tmp1_ = NULL;
 
748
        const gchar* _tmp2_ = NULL;
 
749
        gchar* _tmp3_ = NULL;
 
750
        gchar* _tmp4_ = NULL;
 
751
        ZeitgeistSubject* sub = NULL;
 
752
        ZeitgeistSubject* _tmp5_ = NULL;
 
753
        ZeitgeistEvent* _tmp6_ = NULL;
 
754
        ZeitgeistSubject* _tmp7_ = NULL;
 
755
        ZeitgeistEvent* launch_ev = NULL;
 
756
        ZeitgeistEvent* _tmp8_ = NULL;
 
757
        ZeitgeistSubject* launch_sub = NULL;
 
758
        ZeitgeistSubject* _tmp9_ = NULL;
 
759
        ZeitgeistSubject* _tmp10_ = NULL;
 
760
        const gchar* _tmp11_ = NULL;
 
761
        gchar* _tmp12_ = NULL;
 
762
        gchar* _tmp13_ = NULL;
 
763
        ZeitgeistEvent* _tmp14_ = NULL;
 
764
        ZeitgeistSubject* _tmp15_ = NULL;
 
765
        AlmBlacklist* _tmp16_ = NULL;
 
766
        const gchar* _tmp17_ = NULL;
 
767
        const gchar* _tmp18_ = NULL;
 
768
        gchar* _tmp19_ = NULL;
 
769
        gchar* _tmp20_ = NULL;
 
770
        ZeitgeistEvent* _tmp21_ = NULL;
 
771
        AlmBlacklist* _tmp22_ = NULL;
 
772
        const gchar* _tmp23_ = NULL;
 
773
        const gchar* _tmp24_ = NULL;
 
774
        gchar* _tmp25_ = NULL;
 
775
        gchar* _tmp26_ = NULL;
 
776
        ZeitgeistEvent* _tmp27_ = NULL;
 
777
        GeeHashSet* _tmp28_ = NULL;
 
778
        GeeHashSet* _tmp29_ = NULL;
 
779
        const gchar* _tmp30_ = NULL;
 
780
        gboolean _tmp31_ = FALSE;
 
781
        g_return_if_fail (self != NULL);
 
782
        g_return_if_fail (application != NULL);
 
783
        _tmp0_ = zeitgeist_event_new ();
 
784
        ev = _tmp0_;
 
785
        _tmp1_ = ev;
 
786
        _tmp2_ = application;
 
787
        _tmp3_ = g_strdup_printf ("application://%s", _tmp2_);
 
788
        _tmp4_ = _tmp3_;
 
789
        zeitgeist_event_set_actor (_tmp1_, _tmp4_);
 
790
        _g_free0 (_tmp4_);
 
791
        _tmp5_ = zeitgeist_subject_new ();
 
792
        sub = _tmp5_;
 
793
        _tmp6_ = ev;
 
794
        _tmp7_ = sub;
 
795
        zeitgeist_event_add_subject (_tmp6_, _tmp7_);
 
796
        _tmp8_ = zeitgeist_event_new ();
 
797
        launch_ev = _tmp8_;
 
798
        _tmp9_ = zeitgeist_subject_new ();
 
799
        launch_sub = _tmp9_;
 
800
        _tmp10_ = launch_sub;
 
801
        _tmp11_ = application;
 
802
        _tmp12_ = g_strdup_printf ("application://%s", _tmp11_);
 
803
        _tmp13_ = _tmp12_;
 
804
        zeitgeist_subject_set_uri (_tmp10_, _tmp13_);
 
805
        _g_free0 (_tmp13_);
 
806
        _tmp14_ = launch_ev;
 
807
        _tmp15_ = launch_sub;
 
808
        zeitgeist_event_add_subject (_tmp14_, _tmp15_);
 
809
        _tmp16_ = self->priv->blacklist_interface;
 
810
        _tmp17_ = alm_application_blacklist_interpretation_prefix;
 
811
        _tmp18_ = application;
 
812
        _tmp19_ = g_strdup_printf ("%s%s", _tmp17_, _tmp18_);
 
813
        _tmp20_ = _tmp19_;
 
814
        _tmp21_ = ev;
 
815
        alm_blacklist_add_template (_tmp16_, _tmp20_, _tmp21_);
 
816
        _g_free0 (_tmp20_);
 
817
        _tmp22_ = self->priv->blacklist_interface;
 
818
        _tmp23_ = alm_application_blacklist_launcher_prefix;
 
819
        _tmp24_ = application;
 
820
        _tmp25_ = g_strdup_printf ("%s%s", _tmp23_, _tmp24_);
 
821
        _tmp26_ = _tmp25_;
 
822
        _tmp27_ = launch_ev;
 
823
        alm_blacklist_add_template (_tmp22_, _tmp26_, _tmp27_);
 
824
        _g_free0 (_tmp26_);
 
825
        _tmp28_ = alm_application_blacklist_get_all_apps (self);
 
826
        _tmp29_ = _tmp28_;
 
827
        _tmp30_ = application;
 
828
        _tmp31_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp29_, _tmp30_);
 
829
        if (!_tmp31_) {
 
830
                GeeHashSet* _tmp32_ = NULL;
 
831
                GeeHashSet* _tmp33_ = NULL;
 
832
                const gchar* _tmp34_ = NULL;
 
833
                _tmp32_ = alm_application_blacklist_get_all_apps (self);
 
834
                _tmp33_ = _tmp32_;
 
835
                _tmp34_ = application;
 
836
                gee_abstract_collection_add ((GeeAbstractCollection*) _tmp33_, _tmp34_);
 
837
        }
 
838
        _g_object_unref0 (launch_sub);
 
839
        _g_object_unref0 (launch_ev);
 
840
        _g_object_unref0 (sub);
 
841
        _g_object_unref0 (ev);
 
842
}
 
843
 
 
844
 
 
845
void alm_application_blacklist_unblock (AlmApplicationBlacklist* self, const gchar* application) {
 
846
        AlmBlacklist* _tmp0_ = NULL;
 
847
        const gchar* _tmp1_ = NULL;
 
848
        const gchar* _tmp2_ = NULL;
 
849
        gchar* _tmp3_ = NULL;
 
850
        gchar* _tmp4_ = NULL;
 
851
        AlmBlacklist* _tmp5_ = NULL;
 
852
        const gchar* _tmp6_ = NULL;
 
853
        const gchar* _tmp7_ = NULL;
 
854
        gchar* _tmp8_ = NULL;
 
855
        gchar* _tmp9_ = NULL;
 
856
        GeeHashSet* _tmp10_ = NULL;
 
857
        GeeHashSet* _tmp11_ = NULL;
 
858
        const gchar* _tmp12_ = NULL;
 
859
        gboolean _tmp13_ = FALSE;
 
860
        g_return_if_fail (self != NULL);
 
861
        g_return_if_fail (application != NULL);
 
862
        _tmp0_ = self->priv->blacklist_interface;
 
863
        _tmp1_ = alm_application_blacklist_interpretation_prefix;
 
864
        _tmp2_ = application;
 
865
        _tmp3_ = g_strdup_printf ("%s%s", _tmp1_, _tmp2_);
 
866
        _tmp4_ = _tmp3_;
 
867
        alm_blacklist_remove_template (_tmp0_, _tmp4_);
 
868
        _g_free0 (_tmp4_);
 
869
        _tmp5_ = self->priv->blacklist_interface;
 
870
        _tmp6_ = alm_application_blacklist_launcher_prefix;
 
871
        _tmp7_ = application;
 
872
        _tmp8_ = g_strdup_printf ("%s%s", _tmp6_, _tmp7_);
 
873
        _tmp9_ = _tmp8_;
 
874
        alm_blacklist_remove_template (_tmp5_, _tmp9_);
 
875
        _g_free0 (_tmp9_);
 
876
        _tmp10_ = alm_application_blacklist_get_all_apps (self);
 
877
        _tmp11_ = _tmp10_;
 
878
        _tmp12_ = application;
 
879
        _tmp13_ = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp11_, _tmp12_);
 
880
        if (_tmp13_) {
 
881
                GeeHashSet* _tmp14_ = NULL;
 
882
                GeeHashSet* _tmp15_ = NULL;
 
883
                const gchar* _tmp16_ = NULL;
 
884
                _tmp14_ = alm_application_blacklist_get_all_apps (self);
 
885
                _tmp15_ = _tmp14_;
 
886
                _tmp16_ = application;
 
887
                gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp15_, _tmp16_);
 
888
        }
 
889
}
 
890
 
 
891
 
 
892
GeeHashSet* alm_application_blacklist_get_all_apps (AlmApplicationBlacklist* self) {
 
893
        GeeHashSet* result;
 
894
        GeeHashSet* _tmp0_ = NULL;
 
895
        g_return_val_if_fail (self != NULL, NULL);
 
896
        _tmp0_ = self->priv->all_blocked_apps;
 
897
        result = _tmp0_;
 
898
        return result;
 
899
}
 
900
 
 
901
 
 
902
static void g_cclosure_user_marshal_VOID__STRING_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
 
903
        typedef void (*GMarshalFunc_VOID__STRING_OBJECT) (gpointer data1, const char* arg_1, gpointer arg_2, gpointer data2);
 
904
        register GMarshalFunc_VOID__STRING_OBJECT callback;
 
905
        register GCClosure * cc;
 
906
        register gpointer data1;
 
907
        register gpointer data2;
 
908
        cc = (GCClosure *) closure;
 
909
        g_return_if_fail (n_param_values == 3);
 
910
        if (G_CCLOSURE_SWAP_DATA (closure)) {
 
911
                data1 = closure->data;
 
912
                data2 = param_values->data[0].v_pointer;
 
913
        } else {
 
914
                data1 = param_values->data[0].v_pointer;
 
915
                data2 = closure->data;
 
916
        }
 
917
        callback = (GMarshalFunc_VOID__STRING_OBJECT) (marshal_data ? marshal_data : cc->callback);
 
918
        callback (data1, g_value_get_string (param_values + 1), g_value_get_object (param_values + 2), data2);
 
919
}
 
920
 
 
921
 
 
922
static void alm_value_application_blacklist_init (GValue* value) {
 
923
        value->data[0].v_pointer = NULL;
 
924
}
 
925
 
 
926
 
 
927
static void alm_value_application_blacklist_free_value (GValue* value) {
 
928
        if (value->data[0].v_pointer) {
 
929
                alm_application_blacklist_unref (value->data[0].v_pointer);
 
930
        }
 
931
}
 
932
 
 
933
 
 
934
static void alm_value_application_blacklist_copy_value (const GValue* src_value, GValue* dest_value) {
 
935
        if (src_value->data[0].v_pointer) {
 
936
                dest_value->data[0].v_pointer = alm_application_blacklist_ref (src_value->data[0].v_pointer);
 
937
        } else {
 
938
                dest_value->data[0].v_pointer = NULL;
 
939
        }
 
940
}
 
941
 
 
942
 
 
943
static gpointer alm_value_application_blacklist_peek_pointer (const GValue* value) {
 
944
        return value->data[0].v_pointer;
 
945
}
 
946
 
 
947
 
 
948
static gchar* alm_value_application_blacklist_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
 
949
        if (collect_values[0].v_pointer) {
 
950
                AlmApplicationBlacklist* object;
 
951
                object = collect_values[0].v_pointer;
 
952
                if (object->parent_instance.g_class == NULL) {
 
953
                        return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
 
954
                } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
 
955
                        return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
 
956
                }
 
957
                value->data[0].v_pointer = alm_application_blacklist_ref (object);
 
958
        } else {
 
959
                value->data[0].v_pointer = NULL;
 
960
        }
 
961
        return NULL;
 
962
}
 
963
 
 
964
 
 
965
static gchar* alm_value_application_blacklist_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
 
966
        AlmApplicationBlacklist** object_p;
 
967
        object_p = collect_values[0].v_pointer;
 
968
        if (!object_p) {
 
969
                return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
 
970
        }
 
971
        if (!value->data[0].v_pointer) {
 
972
                *object_p = NULL;
 
973
        } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
 
974
                *object_p = value->data[0].v_pointer;
 
975
        } else {
 
976
                *object_p = alm_application_blacklist_ref (value->data[0].v_pointer);
 
977
        }
 
978
        return NULL;
 
979
}
 
980
 
 
981
 
 
982
GParamSpec* alm_param_spec_application_blacklist (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
 
983
        AlmParamSpecApplicationBlacklist* spec;
 
984
        g_return_val_if_fail (g_type_is_a (object_type, ALM_TYPE_APPLICATION_BLACKLIST), NULL);
 
985
        spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
 
986
        G_PARAM_SPEC (spec)->value_type = object_type;
 
987
        return G_PARAM_SPEC (spec);
 
988
}
 
989
 
 
990
 
 
991
gpointer alm_value_get_application_blacklist (const GValue* value) {
 
992
        g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, ALM_TYPE_APPLICATION_BLACKLIST), NULL);
 
993
        return value->data[0].v_pointer;
 
994
}
 
995
 
 
996
 
 
997
void alm_value_set_application_blacklist (GValue* value, gpointer v_object) {
 
998
        AlmApplicationBlacklist* old;
 
999
        g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, ALM_TYPE_APPLICATION_BLACKLIST));
 
1000
        old = value->data[0].v_pointer;
 
1001
        if (v_object) {
 
1002
                g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, ALM_TYPE_APPLICATION_BLACKLIST));
 
1003
                g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
 
1004
                value->data[0].v_pointer = v_object;
 
1005
                alm_application_blacklist_ref (value->data[0].v_pointer);
 
1006
        } else {
 
1007
                value->data[0].v_pointer = NULL;
 
1008
        }
 
1009
        if (old) {
 
1010
                alm_application_blacklist_unref (old);
 
1011
        }
 
1012
}
 
1013
 
 
1014
 
 
1015
void alm_value_take_application_blacklist (GValue* value, gpointer v_object) {
 
1016
        AlmApplicationBlacklist* old;
 
1017
        g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, ALM_TYPE_APPLICATION_BLACKLIST));
 
1018
        old = value->data[0].v_pointer;
 
1019
        if (v_object) {
 
1020
                g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, ALM_TYPE_APPLICATION_BLACKLIST));
 
1021
                g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
 
1022
                value->data[0].v_pointer = v_object;
 
1023
        } else {
 
1024
                value->data[0].v_pointer = NULL;
 
1025
        }
 
1026
        if (old) {
 
1027
                alm_application_blacklist_unref (old);
 
1028
        }
 
1029
}
 
1030
 
 
1031
 
 
1032
static void alm_application_blacklist_class_init (AlmApplicationBlacklistClass * klass) {
 
1033
        gchar* _tmp0_ = NULL;
 
1034
        gchar* _tmp1_ = NULL;
 
1035
        alm_application_blacklist_parent_class = g_type_class_peek_parent (klass);
 
1036
        ALM_APPLICATION_BLACKLIST_CLASS (klass)->finalize = alm_application_blacklist_finalize;
 
1037
        g_type_class_add_private (klass, sizeof (AlmApplicationBlacklistPrivate));
 
1038
        g_signal_new ("application_added", ALM_TYPE_APPLICATION_BLACKLIST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_OBJECT, G_TYPE_NONE, 2, G_TYPE_STRING, ZEITGEIST_TYPE_EVENT);
 
1039
        g_signal_new ("application_removed", ALM_TYPE_APPLICATION_BLACKLIST, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_OBJECT, G_TYPE_NONE, 2, G_TYPE_STRING, ZEITGEIST_TYPE_EVENT);
 
1040
        _tmp0_ = g_strdup ("app-");
 
1041
        alm_application_blacklist_interpretation_prefix = _tmp0_;
 
1042
        _tmp1_ = g_strdup ("launch-");
 
1043
        alm_application_blacklist_launcher_prefix = _tmp1_;
 
1044
}
 
1045
 
 
1046
 
 
1047
static void alm_application_blacklist_instance_init (AlmApplicationBlacklist * self) {
 
1048
        self->priv = ALM_APPLICATION_BLACKLIST_GET_PRIVATE (self);
 
1049
        self->ref_count = 1;
 
1050
}
 
1051
 
 
1052
 
 
1053
static void alm_application_blacklist_finalize (AlmApplicationBlacklist* obj) {
 
1054
        AlmApplicationBlacklist * self;
 
1055
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, ALM_TYPE_APPLICATION_BLACKLIST, AlmApplicationBlacklist);
 
1056
        _alm_blacklist_unref0 (self->priv->blacklist_interface);
 
1057
        _g_object_unref0 (self->priv->all_blocked_apps);
 
1058
}
 
1059
 
 
1060
 
 
1061
GType alm_application_blacklist_get_type (void) {
 
1062
        static volatile gsize alm_application_blacklist_type_id__volatile = 0;
 
1063
        if (g_once_init_enter (&alm_application_blacklist_type_id__volatile)) {
 
1064
                static const GTypeValueTable g_define_type_value_table = { alm_value_application_blacklist_init, alm_value_application_blacklist_free_value, alm_value_application_blacklist_copy_value, alm_value_application_blacklist_peek_pointer, "p", alm_value_application_blacklist_collect_value, "p", alm_value_application_blacklist_lcopy_value };
 
1065
                static const GTypeInfo g_define_type_info = { sizeof (AlmApplicationBlacklistClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alm_application_blacklist_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AlmApplicationBlacklist), 0, (GInstanceInitFunc) alm_application_blacklist_instance_init, &g_define_type_value_table };
 
1066
                static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
 
1067
                GType alm_application_blacklist_type_id;
 
1068
                alm_application_blacklist_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AlmApplicationBlacklist", &g_define_type_info, &g_define_type_fundamental_info, 0);
 
1069
                g_once_init_leave (&alm_application_blacklist_type_id__volatile, alm_application_blacklist_type_id);
 
1070
        }
 
1071
        return alm_application_blacklist_type_id__volatile;
 
1072
}
 
1073
 
 
1074
 
 
1075
gpointer alm_application_blacklist_ref (gpointer instance) {
 
1076
        AlmApplicationBlacklist* self;
 
1077
        self = instance;
 
1078
        g_atomic_int_inc (&self->ref_count);
 
1079
        return instance;
 
1080
}
 
1081
 
 
1082
 
 
1083
void alm_application_blacklist_unref (gpointer instance) {
 
1084
        AlmApplicationBlacklist* self;
 
1085
        self = instance;
 
1086
        if (g_atomic_int_dec_and_test (&self->ref_count)) {
 
1087
                ALM_APPLICATION_BLACKLIST_GET_CLASS (self)->finalize (self);
 
1088
                g_type_free_instance ((GTypeInstance *) self);
 
1089
        }
 
1090
}
 
1091
 
 
1092
 
 
1093
static GType alm_applications_tree_view_tree_view_cols_get_type (void) {
 
1094
        static volatile gsize alm_applications_tree_view_tree_view_cols_type_id__volatile = 0;
 
1095
        if (g_once_init_enter (&alm_applications_tree_view_tree_view_cols_type_id__volatile)) {
 
1096
                static const GEnumValue values[] = {{ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_APP_NAME, "ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_APP_NAME", "app-name"}, {ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_ICON, "ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_ICON", "icon"}, {ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_DESKTOP_FILE, "ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_DESKTOP_FILE", "desktop-file"}, {ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_N_COLS, "ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_N_COLS", "n-cols"}, {0, NULL, NULL}};
 
1097
                GType alm_applications_tree_view_tree_view_cols_type_id;
 
1098
                alm_applications_tree_view_tree_view_cols_type_id = g_enum_register_static ("AlmApplicationsTreeViewTreeViewCols", values);
 
1099
                g_once_init_leave (&alm_applications_tree_view_tree_view_cols_type_id__volatile, alm_applications_tree_view_tree_view_cols_type_id);
 
1100
        }
 
1101
        return alm_applications_tree_view_tree_view_cols_type_id__volatile;
 
1102
}
 
1103
 
 
1104
 
 
1105
static gpointer _alm_application_blacklist_ref0 (gpointer self) {
 
1106
        return self ? alm_application_blacklist_ref (self) : NULL;
 
1107
}
 
1108
 
 
1109
 
 
1110
static gpointer _g_hash_table_ref0 (gpointer self) {
 
1111
        return self ? g_hash_table_ref (self) : NULL;
 
1112
}
 
1113
 
 
1114
 
 
1115
AlmApplicationsTreeView* alm_applications_tree_view_construct (GType object_type, AlmApplicationBlacklist* app_blacklist, GHashTable* blocked, GHashTable* unblocked) {
 
1116
        AlmApplicationsTreeView * self = NULL;
 
1117
        AlmApplicationBlacklist* _tmp0_ = NULL;
 
1118
        AlmApplicationBlacklist* _tmp1_ = NULL;
 
1119
        GHashTable* _tmp2_ = NULL;
 
1120
        GHashTable* _tmp3_ = NULL;
 
1121
        GHashTable* _tmp4_ = NULL;
 
1122
        GHashTable* _tmp5_ = NULL;
 
1123
        GtkListStore* _tmp6_ = NULL;
 
1124
        GtkListStore* _tmp7_ = NULL;
 
1125
        GtkTreeView* _tmp8_ = NULL;
 
1126
        GtkTreeView* _tmp9_ = NULL;
 
1127
        GtkTreeView* _tmp10_ = NULL;
 
1128
        g_return_val_if_fail (app_blacklist != NULL, NULL);
 
1129
        g_return_val_if_fail (blocked != NULL, NULL);
 
1130
        g_return_val_if_fail (unblocked != NULL, NULL);
 
1131
        self = (AlmApplicationsTreeView*) g_object_new (object_type, "orientation", GTK_ORIENTATION_VERTICAL, NULL);
 
1132
        _tmp0_ = app_blacklist;
 
1133
        _tmp1_ = _alm_application_blacklist_ref0 (_tmp0_);
 
1134
        _alm_application_blacklist_unref0 (self->priv->app_blacklist);
 
1135
        self->priv->app_blacklist = _tmp1_;
 
1136
        _tmp2_ = blocked;
 
1137
        _tmp3_ = _g_hash_table_ref0 (_tmp2_);
 
1138
        _g_hash_table_unref0 (self->priv->blocked_apps);
 
1139
        self->priv->blocked_apps = _tmp3_;
 
1140
        _tmp4_ = unblocked;
 
1141
        _tmp5_ = _g_hash_table_ref0 (_tmp4_);
 
1142
        _g_hash_table_unref0 (self->priv->unblocked_apps);
 
1143
        self->priv->unblocked_apps = _tmp5_;
 
1144
        _tmp6_ = gtk_list_store_new ((gint) ALM_APPLICATIONS_TREE_VIEW_TREE_VIEW_COLS_N_COLS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING);
 
1145
        _g_object_unref0 (self->priv->store);
 
1146
        self->priv->store = _tmp6_;
 
1147
        _tmp7_ = self->priv->store;
 
1148
        _tmp8_ = (GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) _tmp7_);
 
1149
        g_object_ref_sink (_tmp8_);
 
1150
        _g_object_unref0 (self->priv->treeview);
 
1151
        self->priv->treeview = _tmp8_;
 
1152
        _tmp9_ = self->priv->treeview;
 
1153
        gtk_tree_view_set_headers_visible (_tmp9_, FALSE);
 
1154
        _tmp10_ = self->priv->treeview;
 
1155
        gtk_tree_view_set_rules_hint (_tmp10_, TRUE);
 
1156
        alm_applications_tree_view_set_up_ui (self);
 
1157
        return self;
 
1158
}
 
1159
 
 
1160
 
 
1161
AlmApplicationsTreeView* alm_applications_tree_view_new (AlmApplicationBlacklist* app_blacklist, GHashTable* blocked, GHashTable* unblocked) {
 
1162
        return alm_applications_tree_view_construct (ALM_TYPE_APPLICATIONS_TREE_VIEW, app_blacklist, blocked, unblocked);
 
1163
}
 
1164
 
 
1165
 
 
1166
static void alm_applications_tree_view_set_up_ui (AlmApplicationsTreeView* self) {
 
1167
        GtkTreeViewColumn* column_pix_name = NULL;
 
1168
        GtkTreeViewColumn* _tmp0_ = NULL;
 
1169
        const gchar* _tmp1_ = NULL;
 
1170
        GtkTreeView* _tmp2_ = NULL;
 
1171
        GtkCellRendererPixbuf* pix_rend = NULL;
 
1172
        GtkCellRendererPixbuf* _tmp3_ = NULL;
 
1173
        GtkCellRendererText* name_rend = NULL;
 
1174
        GtkCellRendererText* _tmp4_ = NULL;
 
1175
        GValue _tmp5_ = {0};
 
1176
        GtkScrolledWindow* scroll = NULL;
 
1177
        GtkScrolledWindow* _tmp6_ = NULL;
 
1178
        GtkTreeView* _tmp7_ = NULL;
 
1179
        g_return_if_fail (self != NULL);
 
1180
        _tmp0_ = gtk_tree_view_column_new ();
 
1181
        g_object_ref_sink (_tmp0_);
 
1182
        column_pix_name = _tmp0_;
 
1183
        _tmp1_ = _ ("Name");
 
1184
        gtk_tree_view_column_set_title (column_pix_name, _tmp1_);
 
1185
        _tmp2_ = self->priv->treeview;
 
1186
        gtk_tree_view_append_column (_tmp2_, column_pix_name);
 
1187
        _tmp3_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
 
1188
        g_object_ref_sink (_tmp3_);
 
1189
        pix_rend = _tmp3_;
 
1190
        gtk_cell_layout_pack_start ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) pix_rend, FALSE);
 
1191
        gtk_cell_layout_add_attribute ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) pix_rend, "pixbuf", 1);
 
1192
        _tmp4_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
 
1193
        g_object_ref_sink (_tmp4_);
 
1194
        name_rend = _tmp4_;
 
1195
        g_value_init (&_tmp5_, pango_ellipsize_mode_get_type ());
 
1196
        g_value_set_enum (&_tmp5_, PANGO_ELLIPSIZE_END);
 
1197
        g_object_set_property ((GObject*) name_rend, "ellipsize", &_tmp5_);
 
1198
        G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
 
1199
        gtk_cell_layout_pack_start ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) name_rend, TRUE);
 
1200
        gtk_cell_layout_add_attribute ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) name_rend, "markup", 0);
 
1201
        gtk_tree_view_column_set_resizable (column_pix_name, TRUE);
 
1202
        _tmp6_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
 
1203
        g_object_ref_sink (_tmp6_);
 
1204
        scroll = _tmp6_;
 
1205
        _tmp7_ = self->priv->treeview;
 
1206
        gtk_container_add ((GtkContainer*) scroll, (GtkWidget*) _tmp7_);
 
1207
        gtk_scrolled_window_set_policy (scroll, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 
1208
        gtk_scrolled_window_set_shadow_type (scroll, GTK_SHADOW_IN);
 
1209
        gtk_container_set_border_width ((GtkContainer*) scroll, (guint) 1);
 
1210
        gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) scroll, TRUE, TRUE, (guint) 0);
 
1211
        _g_object_unref0 (scroll);
 
1212
        _g_object_unref0 (name_rend);
 
1213
        _g_object_unref0 (pix_rend);
 
1214
        _g_object_unref0 (column_pix_name);
 
1215
}
 
1216
 
 
1217
 
 
1218
GdkPixbuf* alm_applications_tree_view_get_pixbuf_from_gio_icon (GIcon* icon, gint size) {
 
1219
        GdkPixbuf* result = NULL;
 
1220
        GdkPixbuf* pix = NULL;
 
1221
        GtkIconTheme* theme = NULL;
 
1222
        GtkIconTheme* _tmp0_ = NULL;
 
1223
        GtkIconTheme* _tmp1_ = NULL;
 
1224
        GtkIconInfo* icon_info = NULL;
 
1225
        GIcon* _tmp2_ = NULL;
 
1226
        GError * _inner_error_ = NULL;
 
1227
        pix = NULL;
 
1228
        _tmp0_ = gtk_icon_theme_get_default ();
 
1229
        _tmp1_ = _g_object_ref0 (_tmp0_);
 
1230
        theme = _tmp1_;
 
1231
        icon_info = NULL;
 
1232
        _tmp2_ = icon;
 
1233
        if (_tmp2_ == NULL) {
 
1234
                GtkIconTheme* _tmp3_ = NULL;
 
1235
                gint _tmp4_ = 0;
 
1236
                GtkIconInfo* _tmp5_ = NULL;
 
1237
                _tmp3_ = theme;
 
1238
                _tmp4_ = size;
 
1239
                _tmp5_ = gtk_icon_theme_lookup_icon (_tmp3_, "gtk-execute", _tmp4_, GTK_ICON_LOOKUP_FORCE_SVG);
 
1240
                _gtk_icon_info_free0 (icon_info);
 
1241
                icon_info = _tmp5_;
 
1242
        } else {
 
1243
                GtkIconTheme* _tmp6_ = NULL;
 
1244
                GIcon* _tmp7_ = NULL;
 
1245
                gint _tmp8_ = 0;
 
1246
                GtkIconInfo* _tmp9_ = NULL;
 
1247
                GtkIconInfo* _tmp10_ = NULL;
 
1248
                _tmp6_ = theme;
 
1249
                _tmp7_ = icon;
 
1250
                _tmp8_ = size;
 
1251
                _tmp9_ = gtk_icon_theme_lookup_by_gicon (_tmp6_, _tmp7_, _tmp8_, GTK_ICON_LOOKUP_FORCE_SVG);
 
1252
                _gtk_icon_info_free0 (icon_info);
 
1253
                icon_info = _tmp9_;
 
1254
                _tmp10_ = icon_info;
 
1255
                if (_tmp10_ == NULL) {
 
1256
                        GtkIconTheme* _tmp11_ = NULL;
 
1257
                        gint _tmp12_ = 0;
 
1258
                        GtkIconInfo* _tmp13_ = NULL;
 
1259
                        _tmp11_ = theme;
 
1260
                        _tmp12_ = size;
 
1261
                        _tmp13_ = gtk_icon_theme_lookup_icon (_tmp11_, "gtk-execute", _tmp12_, GTK_ICON_LOOKUP_FORCE_SVG);
 
1262
                        _gtk_icon_info_free0 (icon_info);
 
1263
                        icon_info = _tmp13_;
 
1264
                }
 
1265
        }
 
1266
        {
 
1267
                GdkPixbuf* _tmp14_ = NULL;
 
1268
                GtkIconInfo* _tmp15_ = NULL;
 
1269
                GdkPixbuf* _tmp16_ = NULL;
 
1270
                _tmp15_ = icon_info;
 
1271
                _tmp16_ = gtk_icon_info_load_icon (_tmp15_, &_inner_error_);
 
1272
                _tmp14_ = _tmp16_;
 
1273
                if (_inner_error_ != NULL) {
 
1274
                        goto __catch1_g_error;
 
1275
                }
 
1276
                _g_object_unref0 (pix);
 
1277
                pix = _tmp14_;
 
1278
        }
 
1279
        goto __finally1;
 
1280
        __catch1_g_error:
 
1281
        {
 
1282
                GError* e = NULL;
 
1283
                e = _inner_error_;
 
1284
                _inner_error_ = NULL;
 
1285
                result = NULL;
 
1286
                _g_error_free0 (e);
 
1287
                _gtk_icon_info_free0 (icon_info);
 
1288
                _g_object_unref0 (theme);
 
1289
                _g_object_unref0 (pix);
 
1290
                return result;
 
1291
        }
 
1292
        __finally1:
 
1293
        if (_inner_error_ != NULL) {
 
1294
                _gtk_icon_info_free0 (icon_info);
 
1295
                _g_object_unref0 (theme);
 
1296
                _g_object_unref0 (pix);
 
1297
                g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
 
1298
                g_clear_error (&_inner_error_);
 
1299
                return NULL;
 
1300
        }
 
1301
        result = pix;
 
1302
        _gtk_icon_info_free0 (icon_info);
 
1303
        _g_object_unref0 (theme);
 
1304
        return result;
 
1305
}
 
1306
 
 
1307
 
 
1308
gchar* alm_applications_tree_view_markup_for_app (GDesktopAppInfo* app_info) {
 
1309
        gchar* result = NULL;
 
1310
        gchar* app_name = NULL;
 
1311
        GDesktopAppInfo* _tmp0_ = NULL;
 
1312
        const gchar* _tmp1_ = NULL;
 
1313
        gchar* _tmp2_ = NULL;
 
1314
        gchar* description = NULL;
 
1315
        GDesktopAppInfo* _tmp3_ = NULL;
 
1316
        const gchar* _tmp4_ = NULL;
 
1317
        gchar* _tmp5_ = NULL;
 
1318
        const gchar* _tmp6_ = NULL;
 
1319
        const gchar* _tmp7_ = NULL;
 
1320
        const gchar* _tmp10_ = NULL;
 
1321
        gchar* _tmp11_ = NULL;
 
1322
        const gchar* _tmp12_ = NULL;
 
1323
        gchar* _tmp13_ = NULL;
 
1324
        gchar* _tmp14_ = NULL;
 
1325
        const gchar* _tmp15_ = NULL;
 
1326
        gchar* _tmp16_ = NULL;
 
1327
        gchar* _tmp17_ = NULL;
 
1328
        gchar* _tmp18_ = NULL;
 
1329
        gchar* _tmp19_ = NULL;
 
1330
        g_return_val_if_fail (app_info != NULL, NULL);
 
1331
        _tmp0_ = app_info;
 
1332
        _tmp1_ = g_app_info_get_name ((GAppInfo*) _tmp0_);
 
1333
        _tmp2_ = g_strdup (_tmp1_);
 
1334
        app_name = _tmp2_;
 
1335
        _tmp3_ = app_info;
 
1336
        _tmp4_ = g_app_info_get_description ((GAppInfo*) _tmp3_);
 
1337
        _tmp5_ = g_strdup (_tmp4_);
 
1338
        description = _tmp5_;
 
1339
        _tmp7_ = description;
 
1340
        if (_tmp7_ != NULL) {
 
1341
                const gchar* _tmp8_ = NULL;
 
1342
                _tmp8_ = description;
 
1343
                _tmp6_ = _tmp8_;
 
1344
        } else {
 
1345
                const gchar* _tmp9_ = NULL;
 
1346
                _tmp9_ = _ ("No description available");
 
1347
                _tmp6_ = _tmp9_;
 
1348
        }
 
1349
        _tmp10_ = _tmp6_;
 
1350
        _tmp11_ = g_strdup (_tmp10_);
 
1351
        _g_free0 (description);
 
1352
        description = _tmp11_;
 
1353
        _tmp12_ = app_name;
 
1354
        _tmp13_ = g_markup_escape_text (_tmp12_, (gssize) (-1));
 
1355
        _tmp14_ = _tmp13_;
 
1356
        _tmp15_ = description;
 
1357
        _tmp16_ = g_markup_escape_text (_tmp15_, (gssize) (-1));
 
1358
        _tmp17_ = _tmp16_;
 
1359
        _tmp18_ = g_strdup_printf ("<b>%s</b>\n%s", _tmp14_, _tmp17_);
 
1360
        _tmp19_ = _tmp18_;
 
1361
        _g_free0 (_tmp17_);
 
1362
        _g_free0 (_tmp14_);
 
1363
        result = _tmp19_;
 
1364
        _g_free0 (description);
 
1365
        _g_free0 (app_name);
 
1366
        return result;
 
1367
}
 
1368
 
 
1369
 
 
1370
void alm_applications_tree_view_add_application_to_view (AlmApplicationsTreeView* self, const gchar* app) {
 
1371
        GDesktopAppInfo* app_info = NULL;
 
1372
        const gchar* _tmp0_ = NULL;
 
1373
        GDesktopAppInfo* _tmp1_ = NULL;
 
1374
        GDesktopAppInfo* _tmp2_ = NULL;
 
1375
        g_return_if_fail (self != NULL);
 
1376
        g_return_if_fail (app != NULL);
 
1377
        _tmp0_ = app;
 
1378
        _tmp1_ = g_desktop_app_info_new (_tmp0_);
 
1379
        app_info = _tmp1_;
 
1380
        _tmp2_ = app_info;
 
1381
        if (_tmp2_ != NULL) {
 
1382
                GdkPixbuf* pix = NULL;
 
1383
                GDesktopAppInfo* _tmp3_ = NULL;
 
1384
                GIcon* _tmp4_ = NULL;
 
1385
                GdkPixbuf* _tmp5_ = NULL;
 
1386
                gchar* markup = NULL;
 
1387
                GDesktopAppInfo* _tmp6_ = NULL;
 
1388
                gchar* _tmp7_ = NULL;
 
1389
                GtkTreeIter iter = {0};
 
1390
                GtkListStore* _tmp8_ = NULL;
 
1391
                GtkListStore* _tmp9_ = NULL;
 
1392
                GtkTreeIter _tmp10_ = {0};
 
1393
                GtkListStore* _tmp11_ = NULL;
 
1394
                GtkListStore* _tmp12_ = NULL;
 
1395
                GtkTreeIter _tmp13_ = {0};
 
1396
                const gchar* _tmp14_ = NULL;
 
1397
                GdkPixbuf* _tmp15_ = NULL;
 
1398
                const gchar* _tmp16_ = NULL;
 
1399
                GHashTable* _tmp17_ = NULL;
 
1400
                const gchar* _tmp18_ = NULL;
 
1401
                gconstpointer _tmp19_ = NULL;
 
1402
                _tmp3_ = app_info;
 
1403
                _tmp4_ = g_app_info_get_icon ((GAppInfo*) _tmp3_);
 
1404
                _tmp5_ = alm_applications_tree_view_get_pixbuf_from_gio_icon (_tmp4_, 32);
 
1405
                pix = _tmp5_;
 
1406
                _tmp6_ = app_info;
 
1407
                _tmp7_ = alm_applications_tree_view_markup_for_app (_tmp6_);
 
1408
                markup = _tmp7_;
 
1409
                _tmp8_ = alm_applications_tree_view_get_liststore (self);
 
1410
                _tmp9_ = _tmp8_;
 
1411
                gtk_list_store_append (_tmp9_, &_tmp10_);
 
1412
                iter = _tmp10_;
 
1413
                _tmp11_ = alm_applications_tree_view_get_liststore (self);
 
1414
                _tmp12_ = _tmp11_;
 
1415
                _tmp13_ = iter;
 
1416
                _tmp14_ = markup;
 
1417
                _tmp15_ = pix;
 
1418
                _tmp16_ = app;
 
1419
                gtk_list_store_set (_tmp12_, &_tmp13_, 0, _tmp14_, 1, _tmp15_, 2, _tmp16_, -1, -1);
 
1420
                _tmp17_ = self->priv->blocked_apps;
 
1421
                _tmp18_ = app;
 
1422
                _tmp19_ = g_hash_table_lookup (_tmp17_, _tmp18_);
 
1423
                if (((AlmAppChooseInfo*) _tmp19_) == NULL) {
 
1424
                        GHashTable* _tmp20_ = NULL;
 
1425
                        const gchar* _tmp21_ = NULL;
 
1426
                        gchar* _tmp22_ = NULL;
 
1427
                        GDesktopAppInfo* _tmp23_ = NULL;
 
1428
                        const gchar* _tmp24_ = NULL;
 
1429
                        GDesktopAppInfo* _tmp25_ = NULL;
 
1430
                        const gchar* _tmp26_ = NULL;
 
1431
                        GdkPixbuf* _tmp27_ = NULL;
 
1432
                        AlmAppChooseInfo* _tmp28_ = NULL;
 
1433
                        _tmp20_ = self->priv->blocked_apps;
 
1434
                        _tmp21_ = app;
 
1435
                        _tmp22_ = g_strdup (_tmp21_);
 
1436
                        _tmp23_ = app_info;
 
1437
                        _tmp24_ = g_app_info_get_id ((GAppInfo*) _tmp23_);
 
1438
                        _tmp25_ = app_info;
 
1439
                        _tmp26_ = g_app_info_get_name ((GAppInfo*) _tmp25_);
 
1440
                        _tmp27_ = pix;
 
1441
                        _tmp28_ = alm_app_choose_info_new (_tmp24_, _tmp26_, _tmp27_, "", (gint64) 0, (guint) 0);
 
1442
                        g_hash_table_insert (_tmp20_, _tmp22_, _tmp28_);
 
1443
                }
 
1444
                _g_free0 (markup);
 
1445
                _g_object_unref0 (pix);
 
1446
        }
 
1447
        _g_object_unref0 (app_info);
 
1448
}
 
1449
 
 
1450
 
 
1451
void alm_applications_tree_view_remove_app_from_view (AlmApplicationsTreeView* self, const gchar* app) {
 
1452
        GtkTreeModel* model = NULL;
 
1453
        GtkTreeView* _tmp0_ = NULL;
 
1454
        GtkTreeModel* _tmp1_ = NULL;
 
1455
        GtkTreeModel* _tmp2_ = NULL;
 
1456
        GtkTreeIter iter = {0};
 
1457
        GtkTreeModel* _tmp3_ = NULL;
 
1458
        GtkTreeIter _tmp4_ = {0};
 
1459
        g_return_if_fail (self != NULL);
 
1460
        g_return_if_fail (app != NULL);
 
1461
        _tmp0_ = self->priv->treeview;
 
1462
        _tmp1_ = gtk_tree_view_get_model (_tmp0_);
 
1463
        _tmp2_ = _g_object_ref0 (_tmp1_);
 
1464
        model = _tmp2_;
 
1465
        _tmp3_ = model;
 
1466
        gtk_tree_model_get_iter_first (_tmp3_, &_tmp4_);
 
1467
        iter = _tmp4_;
 
1468
        while (TRUE) {
 
1469
                GValue can_app_value = {0};
 
1470
                GtkTreeModel* _tmp5_ = NULL;
 
1471
                GtkTreeIter _tmp6_ = {0};
 
1472
                GValue _tmp7_ = {0};
 
1473
                gchar* can_app = NULL;
 
1474
                const gchar* _tmp8_ = NULL;
 
1475
                gchar* _tmp9_ = NULL;
 
1476
                const gchar* _tmp10_ = NULL;
 
1477
                const gchar* _tmp11_ = NULL;
 
1478
                gboolean more_entires = FALSE;
 
1479
                GtkTreeModel* _tmp14_ = NULL;
 
1480
                gboolean _tmp15_ = FALSE;
 
1481
                gboolean _tmp16_ = FALSE;
 
1482
                _tmp5_ = model;
 
1483
                _tmp6_ = iter;
 
1484
                gtk_tree_model_get_value (_tmp5_, &_tmp6_, 2, &_tmp7_);
 
1485
                G_IS_VALUE (&can_app_value) ? (g_value_unset (&can_app_value), NULL) : NULL;
 
1486
                can_app_value = _tmp7_;
 
1487
                _tmp8_ = g_value_get_string (&can_app_value);
 
1488
                _tmp9_ = g_strdup (_tmp8_);
 
1489
                can_app = _tmp9_;
 
1490
                _tmp10_ = app;
 
1491
                _tmp11_ = can_app;
 
1492
                if (g_strcmp0 (_tmp10_, _tmp11_) == 0) {
 
1493
                        GtkListStore* _tmp12_ = NULL;
 
1494
                        GtkTreeIter _tmp13_ = {0};
 
1495
                        _tmp12_ = self->priv->store;
 
1496
                        _tmp13_ = iter;
 
1497
                        gtk_list_store_remove (_tmp12_, &_tmp13_);
 
1498
                        _g_free0 (can_app);
 
1499
                        G_IS_VALUE (&can_app_value) ? (g_value_unset (&can_app_value), NULL) : NULL;
 
1500
                        break;
 
1501
                }
 
1502
                _tmp14_ = model;
 
1503
                _tmp15_ = gtk_tree_model_iter_next (_tmp14_, &iter);
 
1504
                more_entires = _tmp15_;
 
1505
                _tmp16_ = more_entires;
 
1506
                if (!_tmp16_) {
 
1507
                        _g_free0 (can_app);
 
1508
                        G_IS_VALUE (&can_app_value) ? (g_value_unset (&can_app_value), NULL) : NULL;
 
1509
                        break;
 
1510
                }
 
1511
                _g_free0 (can_app);
 
1512
                G_IS_VALUE (&can_app_value) ? (g_value_unset (&can_app_value), NULL) : NULL;
 
1513
        }
 
1514
        _g_object_unref0 (model);
 
1515
}
 
1516
 
 
1517
 
 
1518
gchar* alm_applications_tree_view_remove_selected_app (AlmApplicationsTreeView* self) {
 
1519
        gchar* result = NULL;
 
1520
        GtkTreeSelection* selection = NULL;
 
1521
        GtkTreeView* _tmp0_ = NULL;
 
1522
        GtkTreeSelection* _tmp1_ = NULL;
 
1523
        GtkTreeSelection* _tmp2_ = NULL;
 
1524
        GtkTreeModel* model = NULL;
 
1525
        GtkTreeIter iter = {0};
 
1526
        gchar* app = NULL;
 
1527
        GtkTreeSelection* _tmp3_ = NULL;
 
1528
        GtkTreeModel* _tmp4_ = NULL;
 
1529
        GtkTreeIter _tmp5_ = {0};
 
1530
        gboolean _tmp6_ = FALSE;
 
1531
        GtkTreeModel* _tmp7_ = NULL;
 
1532
        g_return_val_if_fail (self != NULL, NULL);
 
1533
        _tmp0_ = self->priv->treeview;
 
1534
        _tmp1_ = gtk_tree_view_get_selection (_tmp0_);
 
1535
        _tmp2_ = _g_object_ref0 (_tmp1_);
 
1536
        selection = _tmp2_;
 
1537
        app = NULL;
 
1538
        _tmp3_ = selection;
 
1539
        _tmp6_ = gtk_tree_selection_get_selected (_tmp3_, &_tmp4_, &_tmp5_);
 
1540
        _g_object_unref0 (model);
 
1541
        _tmp7_ = _g_object_ref0 (_tmp4_);
 
1542
        model = _tmp7_;
 
1543
        iter = _tmp5_;
 
1544
        if (_tmp6_) {
 
1545
                GtkTreeModel* _tmp8_ = NULL;
 
1546
                GtkTreeIter _tmp9_ = {0};
 
1547
                GtkListStore* _tmp10_ = NULL;
 
1548
                GtkListStore* _tmp11_ = NULL;
 
1549
                GtkTreeIter _tmp12_ = {0};
 
1550
                _tmp8_ = model;
 
1551
                _tmp9_ = iter;
 
1552
                gtk_tree_model_get (_tmp8_, &_tmp9_, 2, &app, -1);
 
1553
                _tmp10_ = alm_applications_tree_view_get_liststore (self);
 
1554
                _tmp11_ = _tmp10_;
 
1555
                _tmp12_ = iter;
 
1556
                gtk_list_store_remove (_tmp11_, &_tmp12_);
 
1557
        }
 
1558
        result = app;
 
1559
        _g_object_unref0 (model);
 
1560
        _g_object_unref0 (selection);
 
1561
        return result;
 
1562
}
 
1563
 
 
1564
 
 
1565
GtkListStore* alm_applications_tree_view_get_liststore (AlmApplicationsTreeView* self) {
 
1566
        GtkListStore* result;
 
1567
        GtkListStore* _tmp0_ = NULL;
 
1568
        g_return_val_if_fail (self != NULL, NULL);
 
1569
        _tmp0_ = self->priv->store;
 
1570
        result = _tmp0_;
 
1571
        return result;
 
1572
}
 
1573
 
 
1574
 
 
1575
static void alm_applications_tree_view_class_init (AlmApplicationsTreeViewClass * klass) {
 
1576
        alm_applications_tree_view_parent_class = g_type_class_peek_parent (klass);
 
1577
        g_type_class_add_private (klass, sizeof (AlmApplicationsTreeViewPrivate));
 
1578
        G_OBJECT_CLASS (klass)->get_property = _vala_alm_applications_tree_view_get_property;
 
1579
        G_OBJECT_CLASS (klass)->finalize = alm_applications_tree_view_finalize;
 
1580
        g_object_class_install_property (G_OBJECT_CLASS (klass), ALM_APPLICATIONS_TREE_VIEW_LISTSTORE, g_param_spec_object ("liststore", "liststore", "liststore", GTK_TYPE_LIST_STORE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 
1581
}
 
1582
 
 
1583
 
 
1584
static void alm_applications_tree_view_instance_init (AlmApplicationsTreeView * self) {
 
1585
        self->priv = ALM_APPLICATIONS_TREE_VIEW_GET_PRIVATE (self);
 
1586
}
 
1587
 
 
1588
 
 
1589
static void alm_applications_tree_view_finalize (GObject* obj) {
 
1590
        AlmApplicationsTreeView * self;
 
1591
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, ALM_TYPE_APPLICATIONS_TREE_VIEW, AlmApplicationsTreeView);
 
1592
        _alm_application_blacklist_unref0 (self->priv->app_blacklist);
 
1593
        _g_object_unref0 (self->priv->store);
 
1594
        _g_object_unref0 (self->priv->treeview);
 
1595
        _g_hash_table_unref0 (self->priv->blocked_apps);
 
1596
        _g_hash_table_unref0 (self->priv->unblocked_apps);
 
1597
        G_OBJECT_CLASS (alm_applications_tree_view_parent_class)->finalize (obj);
 
1598
}
 
1599
 
 
1600
 
 
1601
GType alm_applications_tree_view_get_type (void) {
 
1602
        static volatile gsize alm_applications_tree_view_type_id__volatile = 0;
 
1603
        if (g_once_init_enter (&alm_applications_tree_view_type_id__volatile)) {
 
1604
                static const GTypeInfo g_define_type_info = { sizeof (AlmApplicationsTreeViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alm_applications_tree_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AlmApplicationsTreeView), 0, (GInstanceInitFunc) alm_applications_tree_view_instance_init, NULL };
 
1605
                GType alm_applications_tree_view_type_id;
 
1606
                alm_applications_tree_view_type_id = g_type_register_static (GTK_TYPE_BOX, "AlmApplicationsTreeView", &g_define_type_info, 0);
 
1607
                g_once_init_leave (&alm_applications_tree_view_type_id__volatile, alm_applications_tree_view_type_id);
 
1608
        }
 
1609
        return alm_applications_tree_view_type_id__volatile;
 
1610
}
 
1611
 
 
1612
 
 
1613
static void _vala_alm_applications_tree_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 
1614
        AlmApplicationsTreeView * self;
 
1615
        self = G_TYPE_CHECK_INSTANCE_CAST (object, ALM_TYPE_APPLICATIONS_TREE_VIEW, AlmApplicationsTreeView);
 
1616
        switch (property_id) {
 
1617
                case ALM_APPLICATIONS_TREE_VIEW_LISTSTORE:
 
1618
                g_value_set_object (value, alm_applications_tree_view_get_liststore (self));
 
1619
                break;
 
1620
                default:
 
1621
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
1622
                break;
 
1623
        }
 
1624
}
 
1625
 
 
1626
 
 
1627
static GType alm_app_selection_tree_view_tree_view_cols_get_type (void) {
 
1628
        static volatile gsize alm_app_selection_tree_view_tree_view_cols_type_id__volatile = 0;
 
1629
        if (g_once_init_enter (&alm_app_selection_tree_view_tree_view_cols_type_id__volatile)) {
 
1630
                static const GEnumValue values[] = {{ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_APP_NAME, "ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_APP_NAME", "app-name"}, {ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_ICON, "ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_ICON", "icon"}, {ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_DESKTOP_FILE, "ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_DESKTOP_FILE", "desktop-file"}, {ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_LAST_ACCESSED_STRING, "ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_LAST_ACCESSED_STRING", "last-accessed-string"}, {ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_LAST_ACCESSED_INT, "ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_LAST_ACCESSED_INT", "last-accessed-int"}, {ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_USAGE, "ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_USAGE", "usage"}, {ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_N_COLS, "ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_N_COLS", "n-cols"}, {0, NULL, NULL}};
 
1631
                GType alm_app_selection_tree_view_tree_view_cols_type_id;
 
1632
                alm_app_selection_tree_view_tree_view_cols_type_id = g_enum_register_static ("AlmAppSelectionTreeViewTreeViewCols", values);
 
1633
                g_once_init_leave (&alm_app_selection_tree_view_tree_view_cols_type_id__volatile, alm_app_selection_tree_view_tree_view_cols_type_id);
 
1634
        }
 
1635
        return alm_app_selection_tree_view_tree_view_cols_type_id__volatile;
 
1636
}
 
1637
 
 
1638
 
 
1639
AlmAppSelectionTreeView* alm_app_selection_tree_view_construct (GType object_type, AlmApplicationBlacklist* app_blacklist) {
 
1640
        AlmAppSelectionTreeView * self = NULL;
 
1641
        AlmApplicationBlacklist* _tmp0_ = NULL;
 
1642
        AlmApplicationBlacklist* _tmp1_ = NULL;
 
1643
        GtkListStore* _tmp2_ = NULL;
 
1644
        GtkListStore* _tmp3_ = NULL;
 
1645
        GtkTreeView* _tmp4_ = NULL;
 
1646
        GtkTreeView* _tmp5_ = NULL;
 
1647
        GtkTreeView* _tmp6_ = NULL;
 
1648
        g_return_val_if_fail (app_blacklist != NULL, NULL);
 
1649
        self = (AlmAppSelectionTreeView*) g_object_new (object_type, "orientation", GTK_ORIENTATION_VERTICAL, NULL);
 
1650
        _tmp0_ = app_blacklist;
 
1651
        _tmp1_ = _alm_application_blacklist_ref0 (_tmp0_);
 
1652
        _alm_application_blacklist_unref0 (self->priv->app_blacklist);
 
1653
        self->priv->app_blacklist = _tmp1_;
 
1654
        _tmp2_ = gtk_list_store_new ((gint) ALM_APP_SELECTION_TREE_VIEW_TREE_VIEW_COLS_N_COLS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT64, G_TYPE_UINT);
 
1655
        _g_object_unref0 (self->priv->store);
 
1656
        self->priv->store = _tmp2_;
 
1657
        _tmp3_ = self->priv->store;
 
1658
        _tmp4_ = (GtkTreeView*) gtk_tree_view_new_with_model ((GtkTreeModel*) _tmp3_);
 
1659
        g_object_ref_sink (_tmp4_);
 
1660
        _g_object_unref0 (self->priv->treeview);
 
1661
        self->priv->treeview = _tmp4_;
 
1662
        _tmp5_ = self->priv->treeview;
 
1663
        gtk_tree_view_set_headers_visible (_tmp5_, TRUE);
 
1664
        _tmp6_ = self->priv->treeview;
 
1665
        gtk_tree_view_set_rules_hint (_tmp6_, TRUE);
 
1666
        alm_app_selection_tree_view_set_up_ui (self);
 
1667
        return self;
 
1668
}
 
1669
 
 
1670
 
 
1671
AlmAppSelectionTreeView* alm_app_selection_tree_view_new (AlmApplicationBlacklist* app_blacklist) {
 
1672
        return alm_app_selection_tree_view_construct (ALM_TYPE_APP_SELECTION_TREE_VIEW, app_blacklist);
 
1673
}
 
1674
 
 
1675
 
 
1676
static void alm_app_selection_tree_view_set_up_ui (AlmAppSelectionTreeView* self) {
 
1677
        GtkTreeViewColumn* column_pix_name = NULL;
 
1678
        GtkTreeViewColumn* _tmp0_ = NULL;
 
1679
        const gchar* _tmp1_ = NULL;
 
1680
        GtkTreeView* _tmp2_ = NULL;
 
1681
        GtkCellRendererPixbuf* pix_rend = NULL;
 
1682
        GtkCellRendererPixbuf* _tmp3_ = NULL;
 
1683
        GtkCellRendererText* name_rend = NULL;
 
1684
        GtkCellRendererText* _tmp4_ = NULL;
 
1685
        GValue _tmp5_ = {0};
 
1686
        GtkTreeViewColumn* column_used_name = NULL;
 
1687
        GtkTreeViewColumn* _tmp6_ = NULL;
 
1688
        const gchar* _tmp7_ = NULL;
 
1689
        GtkTreeView* _tmp8_ = NULL;
 
1690
        GtkCellRendererText* used_rend = NULL;
 
1691
        GtkCellRendererText* _tmp9_ = NULL;
 
1692
        GValue _tmp10_ = {0};
 
1693
        GValue _tmp11_ = {0};
 
1694
        GtkTreeViewColumn* column_usage_name = NULL;
 
1695
        GtkTreeViewColumn* _tmp12_ = NULL;
 
1696
        const gchar* _tmp13_ = NULL;
 
1697
        GtkTreeView* _tmp14_ = NULL;
 
1698
        AlmUsageCellRenderer* usage_rend = NULL;
 
1699
        AlmUsageCellRenderer* _tmp15_ = NULL;
 
1700
        GtkScrolledWindow* scroll = NULL;
 
1701
        GtkScrolledWindow* _tmp16_ = NULL;
 
1702
        GtkTreeView* _tmp17_ = NULL;
 
1703
        g_return_if_fail (self != NULL);
 
1704
        _tmp0_ = gtk_tree_view_column_new ();
 
1705
        g_object_ref_sink (_tmp0_);
 
1706
        column_pix_name = _tmp0_;
 
1707
        _tmp1_ = _ ("Name");
 
1708
        gtk_tree_view_column_set_title (column_pix_name, _tmp1_);
 
1709
        _tmp2_ = self->priv->treeview;
 
1710
        gtk_tree_view_append_column (_tmp2_, column_pix_name);
 
1711
        _tmp3_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
 
1712
        g_object_ref_sink (_tmp3_);
 
1713
        pix_rend = _tmp3_;
 
1714
        gtk_cell_layout_pack_start ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) pix_rend, FALSE);
 
1715
        gtk_cell_layout_add_attribute ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) pix_rend, "pixbuf", 1);
 
1716
        _tmp4_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
 
1717
        g_object_ref_sink (_tmp4_);
 
1718
        name_rend = _tmp4_;
 
1719
        g_value_init (&_tmp5_, pango_ellipsize_mode_get_type ());
 
1720
        g_value_set_enum (&_tmp5_, PANGO_ELLIPSIZE_END);
 
1721
        g_object_set_property ((GObject*) name_rend, "ellipsize", &_tmp5_);
 
1722
        G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
 
1723
        gtk_cell_layout_pack_start ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) name_rend, TRUE);
 
1724
        gtk_cell_layout_add_attribute ((GtkCellLayout*) column_pix_name, (GtkCellRenderer*) name_rend, "text", 0);
 
1725
        gtk_tree_view_column_set_resizable (column_pix_name, TRUE);
 
1726
        gtk_tree_view_column_set_min_width (column_pix_name, 200);
 
1727
        gtk_tree_view_column_set_max_width (column_pix_name, 400);
 
1728
        gtk_tree_view_column_set_sort_column_id (column_pix_name, 0);
 
1729
        _tmp6_ = gtk_tree_view_column_new ();
 
1730
        g_object_ref_sink (_tmp6_);
 
1731
        column_used_name = _tmp6_;
 
1732
        _tmp7_ = _ ("Last Used");
 
1733
        gtk_tree_view_column_set_title (column_used_name, _tmp7_);
 
1734
        _tmp8_ = self->priv->treeview;
 
1735
        gtk_tree_view_append_column (_tmp8_, column_used_name);
 
1736
        _tmp9_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
 
1737
        g_object_ref_sink (_tmp9_);
 
1738
        used_rend = _tmp9_;
 
1739
        g_value_init (&_tmp10_, pango_ellipsize_mode_get_type ());
 
1740
        g_value_set_enum (&_tmp10_, PANGO_ELLIPSIZE_END);
 
1741
        g_object_set_property ((GObject*) used_rend, "ellipsize", &_tmp10_);
 
1742
        G_IS_VALUE (&_tmp10_) ? (g_value_unset (&_tmp10_), NULL) : NULL;
 
1743
        gtk_cell_layout_pack_start ((GtkCellLayout*) column_used_name, (GtkCellRenderer*) used_rend, TRUE);
 
1744
        gtk_cell_layout_add_attribute ((GtkCellLayout*) column_used_name, (GtkCellRenderer*) used_rend, "text", 3);
 
1745
        gtk_tree_view_column_set_resizable (column_used_name, TRUE);
 
1746
        gtk_tree_view_column_set_min_width (column_used_name, 200);
 
1747
        gtk_tree_view_column_set_max_width (column_used_name, 400);
 
1748
        gtk_tree_view_column_set_sort_column_id (column_used_name, 4);
 
1749
        g_value_init (&_tmp11_, G_TYPE_INT);
 
1750
        g_value_set_int (&_tmp11_, 0);
 
1751
        g_object_set_property ((GObject*) used_rend, "xalign", &_tmp11_);
 
1752
        G_IS_VALUE (&_tmp11_) ? (g_value_unset (&_tmp11_), NULL) : NULL;
 
1753
        _tmp12_ = gtk_tree_view_column_new ();
 
1754
        g_object_ref_sink (_tmp12_);
 
1755
        column_usage_name = _tmp12_;
 
1756
        _tmp13_ = _ ("Activity");
 
1757
        gtk_tree_view_column_set_title (column_usage_name, _tmp13_);
 
1758
        _tmp14_ = self->priv->treeview;
 
1759
        gtk_tree_view_append_column (_tmp14_, column_usage_name);
 
1760
        _tmp15_ = alm_usage_cell_renderer_new ();
 
1761
        g_object_ref_sink (_tmp15_);
 
1762
        usage_rend = _tmp15_;
 
1763
        gtk_cell_layout_pack_start ((GtkCellLayout*) column_usage_name, (GtkCellRenderer*) usage_rend, TRUE);
 
1764
        gtk_cell_layout_add_attribute ((GtkCellLayout*) column_usage_name, (GtkCellRenderer*) usage_rend, "usage", 5);
 
1765
        gtk_tree_view_column_set_sort_column_id (column_usage_name, 5);
 
1766
        gtk_tree_view_column_clicked (column_usage_name);
 
1767
        gtk_tree_view_column_clicked (column_usage_name);
 
1768
        _tmp16_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
 
1769
        g_object_ref_sink (_tmp16_);
 
1770
        scroll = _tmp16_;
 
1771
        _tmp17_ = self->priv->treeview;
 
1772
        gtk_container_add ((GtkContainer*) scroll, (GtkWidget*) _tmp17_);
 
1773
        gtk_scrolled_window_set_policy (scroll, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 
1774
        gtk_scrolled_window_set_shadow_type (scroll, GTK_SHADOW_IN);
 
1775
        gtk_container_set_border_width ((GtkContainer*) scroll, (guint) 1);
 
1776
        gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) scroll, TRUE, TRUE, (guint) 0);
 
1777
        _g_object_unref0 (scroll);
 
1778
        _g_object_unref0 (usage_rend);
 
1779
        _g_object_unref0 (column_usage_name);
 
1780
        _g_object_unref0 (used_rend);
 
1781
        _g_object_unref0 (column_used_name);
 
1782
        _g_object_unref0 (name_rend);
 
1783
        _g_object_unref0 (pix_rend);
 
1784
        _g_object_unref0 (column_pix_name);
 
1785
}
 
1786
 
 
1787
 
 
1788
GtkTreeView* alm_app_selection_tree_view_get_tree (AlmAppSelectionTreeView* self) {
 
1789
        GtkTreeView* result;
 
1790
        GtkTreeView* _tmp0_ = NULL;
 
1791
        g_return_val_if_fail (self != NULL, NULL);
 
1792
        _tmp0_ = self->priv->treeview;
 
1793
        result = _tmp0_;
 
1794
        return result;
 
1795
}
 
1796
 
 
1797
 
 
1798
GtkListStore* alm_app_selection_tree_view_get_liststore (AlmAppSelectionTreeView* self) {
 
1799
        GtkListStore* result;
 
1800
        GtkListStore* _tmp0_ = NULL;
 
1801
        g_return_val_if_fail (self != NULL, NULL);
 
1802
        _tmp0_ = self->priv->store;
 
1803
        result = _tmp0_;
 
1804
        return result;
 
1805
}
 
1806
 
 
1807
 
 
1808
static void alm_app_selection_tree_view_class_init (AlmAppSelectionTreeViewClass * klass) {
 
1809
        alm_app_selection_tree_view_parent_class = g_type_class_peek_parent (klass);
 
1810
        g_type_class_add_private (klass, sizeof (AlmAppSelectionTreeViewPrivate));
 
1811
        G_OBJECT_CLASS (klass)->get_property = _vala_alm_app_selection_tree_view_get_property;
 
1812
        G_OBJECT_CLASS (klass)->finalize = alm_app_selection_tree_view_finalize;
 
1813
        g_object_class_install_property (G_OBJECT_CLASS (klass), ALM_APP_SELECTION_TREE_VIEW_TREE, g_param_spec_object ("tree", "tree", "tree", GTK_TYPE_TREE_VIEW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 
1814
        g_object_class_install_property (G_OBJECT_CLASS (klass), ALM_APP_SELECTION_TREE_VIEW_LISTSTORE, g_param_spec_object ("liststore", "liststore", "liststore", GTK_TYPE_LIST_STORE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 
1815
}
 
1816
 
 
1817
 
 
1818
static void alm_app_selection_tree_view_instance_init (AlmAppSelectionTreeView * self) {
 
1819
        self->priv = ALM_APP_SELECTION_TREE_VIEW_GET_PRIVATE (self);
 
1820
}
 
1821
 
 
1822
 
 
1823
static void alm_app_selection_tree_view_finalize (GObject* obj) {
 
1824
        AlmAppSelectionTreeView * self;
 
1825
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, ALM_TYPE_APP_SELECTION_TREE_VIEW, AlmAppSelectionTreeView);
 
1826
        _alm_application_blacklist_unref0 (self->priv->app_blacklist);
 
1827
        _g_object_unref0 (self->priv->store);
 
1828
        _g_object_unref0 (self->priv->treeview);
 
1829
        G_OBJECT_CLASS (alm_app_selection_tree_view_parent_class)->finalize (obj);
 
1830
}
 
1831
 
 
1832
 
 
1833
GType alm_app_selection_tree_view_get_type (void) {
 
1834
        static volatile gsize alm_app_selection_tree_view_type_id__volatile = 0;
 
1835
        if (g_once_init_enter (&alm_app_selection_tree_view_type_id__volatile)) {
 
1836
                static const GTypeInfo g_define_type_info = { sizeof (AlmAppSelectionTreeViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alm_app_selection_tree_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AlmAppSelectionTreeView), 0, (GInstanceInitFunc) alm_app_selection_tree_view_instance_init, NULL };
 
1837
                GType alm_app_selection_tree_view_type_id;
 
1838
                alm_app_selection_tree_view_type_id = g_type_register_static (GTK_TYPE_BOX, "AlmAppSelectionTreeView", &g_define_type_info, 0);
 
1839
                g_once_init_leave (&alm_app_selection_tree_view_type_id__volatile, alm_app_selection_tree_view_type_id);
 
1840
        }
 
1841
        return alm_app_selection_tree_view_type_id__volatile;
 
1842
}
 
1843
 
 
1844
 
 
1845
static void _vala_alm_app_selection_tree_view_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 
1846
        AlmAppSelectionTreeView * self;
 
1847
        self = G_TYPE_CHECK_INSTANCE_CAST (object, ALM_TYPE_APP_SELECTION_TREE_VIEW, AlmAppSelectionTreeView);
 
1848
        switch (property_id) {
 
1849
                case ALM_APP_SELECTION_TREE_VIEW_TREE:
 
1850
                g_value_set_object (value, alm_app_selection_tree_view_get_tree (self));
 
1851
                break;
 
1852
                case ALM_APP_SELECTION_TREE_VIEW_LISTSTORE:
 
1853
                g_value_set_object (value, alm_app_selection_tree_view_get_liststore (self));
 
1854
                break;
 
1855
                default:
 
1856
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
1857
                break;
 
1858
        }
 
1859
}
 
1860
 
 
1861
 
 
1862
static void _g_free0_ (gpointer var) {
 
1863
        var = (g_free (var), NULL);
 
1864
}
 
1865
 
 
1866
 
 
1867
AlmApplicationsChooserDialog* alm_applications_chooser_dialog_construct (GType object_type, AlmApplicationBlacklist* app_blacklist, GHashTable* blocked_list, GHashTable* unblocked_list) {
 
1868
        AlmApplicationsChooserDialog * self = NULL;
 
1869
        AlmApplicationBlacklist* _tmp0_ = NULL;
 
1870
        AlmApplicationBlacklist* _tmp1_ = NULL;
 
1871
        GHashTable* _tmp2_ = NULL;
 
1872
        GHashTable* _tmp3_ = NULL;
 
1873
        GHashTable* _tmp4_ = NULL;
 
1874
        GHashTable* _tmp5_ = NULL;
 
1875
        GHashFunc _tmp6_ = NULL;
 
1876
        GEqualFunc _tmp7_ = NULL;
 
1877
        GHashTable* _tmp8_ = NULL;
 
1878
        const gchar* _tmp9_ = NULL;
 
1879
        AlmApplicationBlacklist* _tmp10_ = NULL;
 
1880
        g_return_val_if_fail (app_blacklist != NULL, NULL);
 
1881
        g_return_val_if_fail (blocked_list != NULL, NULL);
 
1882
        g_return_val_if_fail (unblocked_list != NULL, NULL);
 
1883
        self = (AlmApplicationsChooserDialog*) g_object_new (object_type, NULL);
 
1884
        _tmp0_ = app_blacklist;
 
1885
        _tmp1_ = _alm_application_blacklist_ref0 (_tmp0_);
 
1886
        _alm_application_blacklist_unref0 (self->priv->app_blacklist);
 
1887
        self->priv->app_blacklist = _tmp1_;
 
1888
        _tmp2_ = blocked_list;
 
1889
        _tmp3_ = _g_hash_table_ref0 (_tmp2_);
 
1890
        _g_hash_table_unref0 (self->priv->blocked_apps);
 
1891
        self->priv->blocked_apps = _tmp3_;
 
1892
        _tmp4_ = unblocked_list;
 
1893
        _tmp5_ = _g_hash_table_ref0 (_tmp4_);
 
1894
        _g_hash_table_unref0 (self->priv->unblocked_apps);
 
1895
        self->priv->unblocked_apps = _tmp5_;
 
1896
        _tmp6_ = g_str_hash;
 
1897
        _tmp7_ = g_str_equal;
 
1898
        _tmp8_ = g_hash_table_new_full (_tmp6_, _tmp7_, _g_free0_, _g_free0_);
 
1899
        _g_hash_table_unref0 (self->priv->actors_iter);
 
1900
        self->priv->actors_iter = _tmp8_;
 
1901
        _tmp9_ = _ ("Select Application");
 
1902
        gtk_window_set_title ((GtkWindow*) self, _tmp9_);
 
1903
        gtk_window_set_destroy_with_parent ((GtkWindow*) self, TRUE);
 
1904
        gtk_widget_set_size_request ((GtkWidget*) self, 600, 400);
 
1905
        gtk_window_set_skip_taskbar_hint ((GtkWindow*) self, TRUE);
 
1906
        gtk_container_set_border_width ((GtkContainer*) self, (guint) 12);
 
1907
        gtk_window_set_resizable ((GtkWindow*) self, FALSE);
 
1908
        alm_applications_chooser_dialog_set_up_ui (self);
 
1909
        _tmp10_ = self->priv->app_blacklist;
 
1910
        alm_application_blacklist_get_all_applications (_tmp10_, self);
 
1911
        return self;
 
1912
}
 
1913
 
 
1914
 
 
1915
AlmApplicationsChooserDialog* alm_applications_chooser_dialog_new (AlmApplicationBlacklist* app_blacklist, GHashTable* blocked_list, GHashTable* unblocked_list) {
 
1916
        return alm_applications_chooser_dialog_construct (ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG, app_blacklist, blocked_list, unblocked_list);
 
1917
}
 
1918
 
 
1919
 
 
1920
static gint alm_applications_chooser_dialog_compare_dates (AlmApplicationsChooserDialog* self, GDateTime* now, GDateTime* time) {
 
1921
        gint result = 0;
 
1922
        gint res = 0;
 
1923
        gint now_y = 0;
 
1924
        gint now_m = 0;
 
1925
        gint now_d = 0;
 
1926
        gint time_y = 0;
 
1927
        gint time_m = 0;
 
1928
        gint time_d = 0;
 
1929
        GDateTime* _tmp0_ = NULL;
 
1930
        gint _tmp1_ = 0;
 
1931
        gint _tmp2_ = 0;
 
1932
        gint _tmp3_ = 0;
 
1933
        GDateTime* _tmp4_ = NULL;
 
1934
        gint _tmp5_ = 0;
 
1935
        gint _tmp6_ = 0;
 
1936
        gint _tmp7_ = 0;
 
1937
        gboolean _tmp8_ = FALSE;
 
1938
        gboolean _tmp9_ = FALSE;
 
1939
        gint _tmp10_ = 0;
 
1940
        gint _tmp11_ = 0;
 
1941
        gboolean _tmp14_ = FALSE;
 
1942
        gboolean _tmp17_ = FALSE;
 
1943
        g_return_val_if_fail (self != NULL, 0);
 
1944
        g_return_val_if_fail (now != NULL, 0);
 
1945
        g_return_val_if_fail (time != NULL, 0);
 
1946
        res = -1;
 
1947
        _tmp0_ = now;
 
1948
        g_date_time_get_ymd (_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
 
1949
        now_y = _tmp1_;
 
1950
        now_m = _tmp2_;
 
1951
        now_d = _tmp3_;
 
1952
        _tmp4_ = time;
 
1953
        g_date_time_get_ymd (_tmp4_, &_tmp5_, &_tmp6_, &_tmp7_);
 
1954
        time_y = _tmp5_;
 
1955
        time_m = _tmp6_;
 
1956
        time_d = _tmp7_;
 
1957
        _tmp10_ = now_y;
 
1958
        _tmp11_ = time_y;
 
1959
        if (_tmp10_ == _tmp11_) {
 
1960
                gint _tmp12_ = 0;
 
1961
                gint _tmp13_ = 0;
 
1962
                _tmp12_ = now_m;
 
1963
                _tmp13_ = time_m;
 
1964
                _tmp9_ = _tmp12_ == _tmp13_;
 
1965
        } else {
 
1966
                _tmp9_ = FALSE;
 
1967
        }
 
1968
        _tmp14_ = _tmp9_;
 
1969
        if (_tmp14_) {
 
1970
                gint _tmp15_ = 0;
 
1971
                gint _tmp16_ = 0;
 
1972
                _tmp15_ = now_d;
 
1973
                _tmp16_ = time_d;
 
1974
                _tmp8_ = _tmp15_ == _tmp16_;
 
1975
        } else {
 
1976
                _tmp8_ = FALSE;
 
1977
        }
 
1978
        _tmp17_ = _tmp8_;
 
1979
        if (_tmp17_) {
 
1980
                result = 0;
 
1981
                return result;
 
1982
        } else {
 
1983
                gboolean _tmp18_ = FALSE;
 
1984
                gboolean _tmp19_ = FALSE;
 
1985
                gint _tmp20_ = 0;
 
1986
                gint _tmp21_ = 0;
 
1987
                gboolean _tmp24_ = FALSE;
 
1988
                gboolean _tmp27_ = FALSE;
 
1989
                _tmp20_ = now_y;
 
1990
                _tmp21_ = time_y;
 
1991
                if (_tmp20_ == _tmp21_) {
 
1992
                        gint _tmp22_ = 0;
 
1993
                        gint _tmp23_ = 0;
 
1994
                        _tmp22_ = now_m;
 
1995
                        _tmp23_ = time_m;
 
1996
                        _tmp19_ = _tmp22_ == _tmp23_;
 
1997
                } else {
 
1998
                        _tmp19_ = FALSE;
 
1999
                }
 
2000
                _tmp24_ = _tmp19_;
 
2001
                if (_tmp24_) {
 
2002
                        gint _tmp25_ = 0;
 
2003
                        gint _tmp26_ = 0;
 
2004
                        _tmp25_ = now_d;
 
2005
                        _tmp26_ = time_d;
 
2006
                        _tmp18_ = _tmp25_ == (_tmp26_ + 1);
 
2007
                } else {
 
2008
                        _tmp18_ = FALSE;
 
2009
                }
 
2010
                _tmp27_ = _tmp18_;
 
2011
                if (_tmp27_) {
 
2012
                        result = 1;
 
2013
                        return result;
 
2014
                }
 
2015
        }
 
2016
        result = res;
 
2017
        return result;
 
2018
}
 
2019
 
 
2020
 
 
2021
static gint64* _int64_dup (gint64* self) {
 
2022
        gint64* dup;
 
2023
        dup = g_new0 (gint64, 1);
 
2024
        memcpy (dup, self, sizeof (gint64));
 
2025
        return dup;
 
2026
}
 
2027
 
 
2028
 
 
2029
static gpointer __int64_dup0 (gpointer self) {
 
2030
        return self ? _int64_dup (self) : NULL;
 
2031
}
 
2032
 
 
2033
 
 
2034
static void _g_object_unref0_ (gpointer var) {
 
2035
        (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
 
2036
}
 
2037
 
 
2038
 
 
2039
static void _g_list_free__g_object_unref0_ (GList* self) {
 
2040
        g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
 
2041
        g_list_free (self);
 
2042
}
 
2043
 
 
2044
 
 
2045
void alm_applications_chooser_dialog_handle_app_population (AlmApplicationsChooserDialog* self, GHashTable* all_actors) {
 
2046
        GHashTable* _tmp0_ = NULL;
 
2047
        GHashTable* _tmp1_ = NULL;
 
2048
        GList* all_infos = NULL;
 
2049
        GList* _tmp2_ = NULL;
 
2050
        GList* other_appinfo = NULL;
 
2051
        GList* _tmp3_ = NULL;
 
2052
        g_return_if_fail (self != NULL);
 
2053
        g_return_if_fail (all_actors != NULL);
 
2054
        _tmp0_ = all_actors;
 
2055
        _tmp1_ = _g_hash_table_ref0 (_tmp0_);
 
2056
        _g_hash_table_unref0 (self->priv->all_actors_list);
 
2057
        self->priv->all_actors_list = _tmp1_;
 
2058
        _tmp2_ = g_app_info_get_all ();
 
2059
        all_infos = _tmp2_;
 
2060
        other_appinfo = NULL;
 
2061
        _tmp3_ = all_infos;
 
2062
        {
 
2063
                GList* app_info_collection = NULL;
 
2064
                GList* app_info_it = NULL;
 
2065
                app_info_collection = _tmp3_;
 
2066
                for (app_info_it = app_info_collection; app_info_it != NULL; app_info_it = app_info_it->next) {
 
2067
                        GAppInfo* _tmp4_ = NULL;
 
2068
                        GAppInfo* app_info = NULL;
 
2069
                        _tmp4_ = _g_object_ref0 ((GAppInfo*) app_info_it->data);
 
2070
                        app_info = _tmp4_;
 
2071
                        {
 
2072
                                gchar* id = NULL;
 
2073
                                GAppInfo* _tmp5_ = NULL;
 
2074
                                const gchar* _tmp6_ = NULL;
 
2075
                                gchar* _tmp7_ = NULL;
 
2076
                                gint64* last_accessed_time = NULL;
 
2077
                                GHashTable* _tmp8_ = NULL;
 
2078
                                const gchar* _tmp9_ = NULL;
 
2079
                                gconstpointer _tmp10_ = NULL;
 
2080
                                gint64* _tmp11_ = NULL;
 
2081
                                gint64* _tmp12_ = NULL;
 
2082
                                _tmp5_ = app_info;
 
2083
                                _tmp6_ = g_app_info_get_id (_tmp5_);
 
2084
                                _tmp7_ = g_strdup (_tmp6_);
 
2085
                                id = _tmp7_;
 
2086
                                _tmp8_ = all_actors;
 
2087
                                _tmp9_ = id;
 
2088
                                _tmp10_ = g_hash_table_lookup (_tmp8_, _tmp9_);
 
2089
                                _tmp11_ = __int64_dup0 ((gint64*) _tmp10_);
 
2090
                                last_accessed_time = _tmp11_;
 
2091
                                _tmp12_ = last_accessed_time;
 
2092
                                if (_tmp12_ != NULL) {
 
2093
                                        GDateTime* time = NULL;
 
2094
                                        gint64* _tmp13_ = NULL;
 
2095
                                        GDateTime* _tmp14_ = NULL;
 
2096
                                        GDateTime* now = NULL;
 
2097
                                        GDateTime* _tmp15_ = NULL;
 
2098
                                        gint res = 0;
 
2099
                                        GDateTime* _tmp16_ = NULL;
 
2100
                                        GDateTime* _tmp17_ = NULL;
 
2101
                                        gint _tmp18_ = 0;
 
2102
                                        gchar* last_accessed = NULL;
 
2103
                                        gchar* _tmp19_ = NULL;
 
2104
                                        gint _tmp20_ = 0;
 
2105
                                        GAppInfo* _tmp31_ = NULL;
 
2106
                                        const gchar* _tmp32_ = NULL;
 
2107
                                        gint64* _tmp33_ = NULL;
 
2108
                                        _tmp13_ = last_accessed_time;
 
2109
                                        _tmp14_ = g_date_time_new_from_unix_local ((*_tmp13_) / 1000);
 
2110
                                        time = _tmp14_;
 
2111
                                        _tmp15_ = g_date_time_new_now_local ();
 
2112
                                        now = _tmp15_;
 
2113
                                        _tmp16_ = now;
 
2114
                                        _tmp17_ = time;
 
2115
                                        _tmp18_ = alm_applications_chooser_dialog_compare_dates (self, _tmp16_, _tmp17_);
 
2116
                                        res = _tmp18_;
 
2117
                                        _tmp19_ = g_strdup ("");
 
2118
                                        last_accessed = _tmp19_;
 
2119
                                        _tmp20_ = res;
 
2120
                                        if (_tmp20_ == 0) {
 
2121
                                                GDateTime* _tmp21_ = NULL;
 
2122
                                                const gchar* _tmp22_ = NULL;
 
2123
                                                gchar* _tmp23_ = NULL;
 
2124
                                                _tmp21_ = time;
 
2125
                                                _tmp22_ = _ ("Today, %H:%M");
 
2126
                                                _tmp23_ = g_date_time_format (_tmp21_, _tmp22_);
 
2127
                                                _g_free0 (last_accessed);
 
2128
                                                last_accessed = _tmp23_;
 
2129
                                        } else {
 
2130
                                                gint _tmp24_ = 0;
 
2131
                                                _tmp24_ = res;
 
2132
                                                if (_tmp24_ == 1) {
 
2133
                                                        GDateTime* _tmp25_ = NULL;
 
2134
                                                        const gchar* _tmp26_ = NULL;
 
2135
                                                        gchar* _tmp27_ = NULL;
 
2136
                                                        _tmp25_ = time;
 
2137
                                                        _tmp26_ = _ ("Yesterday, %H:%M");
 
2138
                                                        _tmp27_ = g_date_time_format (_tmp25_, _tmp26_);
 
2139
                                                        _g_free0 (last_accessed);
 
2140
                                                        last_accessed = _tmp27_;
 
2141
                                                } else {
 
2142
                                                        GDateTime* _tmp28_ = NULL;
 
2143
                                                        const gchar* _tmp29_ = NULL;
 
2144
                                                        gchar* _tmp30_ = NULL;
 
2145
                                                        _tmp28_ = time;
 
2146
                                                        _tmp29_ = _ ("%e %B %Y, %H:%M");
 
2147
                                                        _tmp30_ = g_date_time_format (_tmp28_, _tmp29_);
 
2148
                                                        _g_free0 (last_accessed);
 
2149
                                                        last_accessed = _tmp30_;
 
2150
                                                }
 
2151
                                        }
 
2152
                                        _tmp31_ = app_info;
 
2153
                                        _tmp32_ = last_accessed;
 
2154
                                        _tmp33_ = last_accessed_time;
 
2155
                                        alm_applications_chooser_dialog_insert_liststore (self, _tmp31_, _tmp32_, *_tmp33_, (guint) 0);
 
2156
                                        _g_free0 (last_accessed);
 
2157
                                        _g_date_time_unref0 (now);
 
2158
                                        _g_date_time_unref0 (time);
 
2159
                                } else {
 
2160
                                        GAppInfo* _tmp34_ = NULL;
 
2161
                                        GAppInfo* _tmp35_ = NULL;
 
2162
                                        GAppInfo* _tmp36_ = NULL;
 
2163
                                        const gchar* _tmp37_ = NULL;
 
2164
                                        _tmp34_ = app_info;
 
2165
                                        _tmp35_ = _g_object_ref0 (_tmp34_);
 
2166
                                        other_appinfo = g_list_append (other_appinfo, _tmp35_);
 
2167
                                        _tmp36_ = app_info;
 
2168
                                        _tmp37_ = _ ("Never");
 
2169
                                        alm_applications_chooser_dialog_insert_liststore (self, _tmp36_, _tmp37_, (gint64) 0, (guint) 0);
 
2170
                                }
 
2171
                                _g_free0 (last_accessed_time);
 
2172
                                _g_free0 (id);
 
2173
                                _g_object_unref0 (app_info);
 
2174
                        }
 
2175
                }
 
2176
        }
 
2177
        __g_list_free__g_object_unref0_0 (other_appinfo);
 
2178
        __g_list_free__g_object_unref0_0 (all_infos);
 
2179
}
 
2180
 
 
2181
 
 
2182
static gpointer _alm_app_choose_info_ref0 (gpointer self) {
 
2183
        return self ? alm_app_choose_info_ref (self) : NULL;
 
2184
}
 
2185
 
 
2186
 
 
2187
void alm_applications_chooser_dialog_insert_liststore (AlmApplicationsChooserDialog* self, GAppInfo* app_info, const gchar* last_accessed, gint64 last_accessed_time, guint usage) {
 
2188
        gchar* id = NULL;
 
2189
        GAppInfo* _tmp0_ = NULL;
 
2190
        const gchar* _tmp1_ = NULL;
 
2191
        gchar* _tmp2_ = NULL;
 
2192
        gchar* name = NULL;
 
2193
        GAppInfo* _tmp3_ = NULL;
 
2194
        const gchar* _tmp4_ = NULL;
 
2195
        gchar* _tmp5_ = NULL;
 
2196
        GIcon* icon = NULL;
 
2197
        GAppInfo* _tmp6_ = NULL;
 
2198
        GIcon* _tmp7_ = NULL;
 
2199
        GIcon* _tmp8_ = NULL;
 
2200
        GdkPixbuf* pix = NULL;
 
2201
        GIcon* _tmp9_ = NULL;
 
2202
        GdkPixbuf* _tmp10_ = NULL;
 
2203
        AlmAppChooseInfo* app_choose_info = NULL;
 
2204
        GHashTable* _tmp11_ = NULL;
 
2205
        const gchar* _tmp12_ = NULL;
 
2206
        gconstpointer _tmp13_ = NULL;
 
2207
        AlmAppChooseInfo* _tmp14_ = NULL;
 
2208
        AlmAppChooseInfo* _tmp15_ = NULL;
 
2209
        g_return_if_fail (self != NULL);
 
2210
        g_return_if_fail (app_info != NULL);
 
2211
        g_return_if_fail (last_accessed != NULL);
 
2212
        _tmp0_ = app_info;
 
2213
        _tmp1_ = g_app_info_get_id (_tmp0_);
 
2214
        _tmp2_ = g_strdup (_tmp1_);
 
2215
        id = _tmp2_;
 
2216
        _tmp3_ = app_info;
 
2217
        _tmp4_ = g_app_info_get_name (_tmp3_);
 
2218
        _tmp5_ = g_strdup (_tmp4_);
 
2219
        name = _tmp5_;
 
2220
        _tmp6_ = app_info;
 
2221
        _tmp7_ = g_app_info_get_icon (_tmp6_);
 
2222
        _tmp8_ = _g_object_ref0 (_tmp7_);
 
2223
        icon = _tmp8_;
 
2224
        _tmp9_ = icon;
 
2225
        _tmp10_ = alm_applications_tree_view_get_pixbuf_from_gio_icon (_tmp9_, 32);
 
2226
        pix = _tmp10_;
 
2227
        _tmp11_ = self->priv->blocked_apps;
 
2228
        _tmp12_ = id;
 
2229
        _tmp13_ = g_hash_table_lookup (_tmp11_, _tmp12_);
 
2230
        _tmp14_ = _alm_app_choose_info_ref0 ((AlmAppChooseInfo*) _tmp13_);
 
2231
        app_choose_info = _tmp14_;
 
2232
        _tmp15_ = app_choose_info;
 
2233
        if (_tmp15_ == NULL) {
 
2234
                GtkTreeIter iter = {0};
 
2235
                AlmAppSelectionTreeView* _tmp16_ = NULL;
 
2236
                GtkListStore* _tmp17_ = NULL;
 
2237
                GtkListStore* _tmp18_ = NULL;
 
2238
                GtkTreeIter _tmp19_ = {0};
 
2239
                AlmAppSelectionTreeView* _tmp20_ = NULL;
 
2240
                GtkListStore* _tmp21_ = NULL;
 
2241
                GtkListStore* _tmp22_ = NULL;
 
2242
                GtkTreeIter _tmp23_ = {0};
 
2243
                const gchar* _tmp24_ = NULL;
 
2244
                GdkPixbuf* _tmp25_ = NULL;
 
2245
                const gchar* _tmp26_ = NULL;
 
2246
                const gchar* _tmp27_ = NULL;
 
2247
                gint64 _tmp28_ = 0LL;
 
2248
                GHashTable* _tmp29_ = NULL;
 
2249
                const gchar* _tmp30_ = NULL;
 
2250
                gchar* _tmp31_ = NULL;
 
2251
                const gchar* _tmp32_ = NULL;
 
2252
                const gchar* _tmp33_ = NULL;
 
2253
                GdkPixbuf* _tmp34_ = NULL;
 
2254
                const gchar* _tmp35_ = NULL;
 
2255
                gint64 _tmp36_ = 0LL;
 
2256
                guint _tmp37_ = 0U;
 
2257
                AlmAppChooseInfo* _tmp38_ = NULL;
 
2258
                gint64 _tmp39_ = 0LL;
 
2259
                _tmp16_ = self->priv->treeview;
 
2260
                _tmp17_ = alm_app_selection_tree_view_get_liststore (_tmp16_);
 
2261
                _tmp18_ = _tmp17_;
 
2262
                gtk_list_store_append (_tmp18_, &_tmp19_);
 
2263
                iter = _tmp19_;
 
2264
                _tmp20_ = self->priv->treeview;
 
2265
                _tmp21_ = alm_app_selection_tree_view_get_liststore (_tmp20_);
 
2266
                _tmp22_ = _tmp21_;
 
2267
                _tmp23_ = iter;
 
2268
                _tmp24_ = name;
 
2269
                _tmp25_ = pix;
 
2270
                _tmp26_ = id;
 
2271
                _tmp27_ = last_accessed;
 
2272
                _tmp28_ = last_accessed_time;
 
2273
                gtk_list_store_set (_tmp22_, &_tmp23_, 0, _tmp24_, 1, _tmp25_, 2, _tmp26_, 3, _tmp27_, 4, _tmp28_, 5, 0, -1, -1);
 
2274
                _tmp29_ = self->priv->blocked_apps;
 
2275
                _tmp30_ = id;
 
2276
                _tmp31_ = g_strdup (_tmp30_);
 
2277
                _tmp32_ = id;
 
2278
                _tmp33_ = name;
 
2279
                _tmp34_ = pix;
 
2280
                _tmp35_ = last_accessed;
 
2281
                _tmp36_ = last_accessed_time;
 
2282
                _tmp37_ = usage;
 
2283
                _tmp38_ = alm_app_choose_info_new (_tmp32_, _tmp33_, _tmp34_, _tmp35_, _tmp36_, _tmp37_);
 
2284
                g_hash_table_insert (_tmp29_, _tmp31_, _tmp38_);
 
2285
                _tmp39_ = last_accessed_time;
 
2286
                if (_tmp39_ > ((gint64) 0)) {
 
2287
                        AlmApplicationBlacklist* _tmp40_ = NULL;
 
2288
                        const gchar* _tmp41_ = NULL;
 
2289
                        GtkTreeIter _tmp42_ = {0};
 
2290
                        AlmAppSelectionTreeView* _tmp43_ = NULL;
 
2291
                        GtkListStore* _tmp44_ = NULL;
 
2292
                        GtkListStore* _tmp45_ = NULL;
 
2293
                        _tmp40_ = self->priv->app_blacklist;
 
2294
                        _tmp41_ = id;
 
2295
                        _tmp42_ = iter;
 
2296
                        _tmp43_ = self->priv->treeview;
 
2297
                        _tmp44_ = alm_app_selection_tree_view_get_liststore (_tmp43_);
 
2298
                        _tmp45_ = _tmp44_;
 
2299
                        alm_application_blacklist_get_count_for_app (_tmp40_, _tmp41_, &_tmp42_, _tmp45_);
 
2300
                }
 
2301
        } else {
 
2302
                AlmAppChooseInfo* _tmp46_ = NULL;
 
2303
                const gchar* _tmp47_ = NULL;
 
2304
                AlmAppChooseInfo* _tmp48_ = NULL;
 
2305
                _tmp46_ = app_choose_info;
 
2306
                _tmp47_ = last_accessed;
 
2307
                alm_app_choose_info_set_last_accessed (_tmp46_, _tmp47_);
 
2308
                _tmp48_ = app_choose_info;
 
2309
                alm_app_choose_info_set_usage (_tmp48_, (guint) 0);
 
2310
        }
 
2311
        _alm_app_choose_info_unref0 (app_choose_info);
 
2312
        _g_object_unref0 (pix);
 
2313
        _g_object_unref0 (icon);
 
2314
        _g_free0 (name);
 
2315
        _g_free0 (id);
 
2316
}
 
2317
 
 
2318
 
 
2319
void alm_applications_chooser_dialog_insert_app_liststore (AlmApplicationsChooserDialog* self, const gchar* app) {
 
2320
        AlmAppChooseInfo* app_choose_info = NULL;
 
2321
        GHashTable* _tmp0_ = NULL;
 
2322
        const gchar* _tmp1_ = NULL;
 
2323
        gconstpointer _tmp2_ = NULL;
 
2324
        AlmAppChooseInfo* _tmp3_ = NULL;
 
2325
        AlmAppChooseInfo* _tmp4_ = NULL;
 
2326
        g_return_if_fail (self != NULL);
 
2327
        g_return_if_fail (app != NULL);
 
2328
        _tmp0_ = self->priv->unblocked_apps;
 
2329
        _tmp1_ = app;
 
2330
        _tmp2_ = g_hash_table_lookup (_tmp0_, _tmp1_);
 
2331
        _tmp3_ = _alm_app_choose_info_ref0 ((AlmAppChooseInfo*) _tmp2_);
 
2332
        app_choose_info = _tmp3_;
 
2333
        _tmp4_ = app_choose_info;
 
2334
        if (_tmp4_ != NULL) {
 
2335
                GtkTreeIter iter = {0};
 
2336
                AlmAppSelectionTreeView* _tmp5_ = NULL;
 
2337
                GtkListStore* _tmp6_ = NULL;
 
2338
                GtkListStore* _tmp7_ = NULL;
 
2339
                GtkTreeIter _tmp8_ = {0};
 
2340
                AlmAppSelectionTreeView* _tmp9_ = NULL;
 
2341
                GtkListStore* _tmp10_ = NULL;
 
2342
                GtkListStore* _tmp11_ = NULL;
 
2343
                GtkTreeIter _tmp12_ = {0};
 
2344
                AlmAppChooseInfo* _tmp13_ = NULL;
 
2345
                const gchar* _tmp14_ = NULL;
 
2346
                const gchar* _tmp15_ = NULL;
 
2347
                AlmAppChooseInfo* _tmp16_ = NULL;
 
2348
                GdkPixbuf* _tmp17_ = NULL;
 
2349
                GdkPixbuf* _tmp18_ = NULL;
 
2350
                const gchar* _tmp19_ = NULL;
 
2351
                AlmAppChooseInfo* _tmp20_ = NULL;
 
2352
                const gchar* _tmp21_ = NULL;
 
2353
                const gchar* _tmp22_ = NULL;
 
2354
                AlmAppChooseInfo* _tmp23_ = NULL;
 
2355
                gint64 _tmp24_ = 0LL;
 
2356
                gint64 _tmp25_ = 0LL;
 
2357
                AlmApplicationBlacklist* _tmp26_ = NULL;
 
2358
                AlmAppChooseInfo* _tmp27_ = NULL;
 
2359
                gchar* _tmp28_ = NULL;
 
2360
                gchar* _tmp29_ = NULL;
 
2361
                GtkTreeIter _tmp30_ = {0};
 
2362
                AlmAppSelectionTreeView* _tmp31_ = NULL;
 
2363
                GtkListStore* _tmp32_ = NULL;
 
2364
                GtkListStore* _tmp33_ = NULL;
 
2365
                _tmp5_ = self->priv->treeview;
 
2366
                _tmp6_ = alm_app_selection_tree_view_get_liststore (_tmp5_);
 
2367
                _tmp7_ = _tmp6_;
 
2368
                gtk_list_store_insert (_tmp7_, &_tmp8_, 1);
 
2369
                iter = _tmp8_;
 
2370
                _tmp9_ = self->priv->treeview;
 
2371
                _tmp10_ = alm_app_selection_tree_view_get_liststore (_tmp9_);
 
2372
                _tmp11_ = _tmp10_;
 
2373
                _tmp12_ = iter;
 
2374
                _tmp13_ = app_choose_info;
 
2375
                _tmp14_ = alm_app_choose_info_get_name (_tmp13_);
 
2376
                _tmp15_ = _tmp14_;
 
2377
                _tmp16_ = app_choose_info;
 
2378
                _tmp17_ = alm_app_choose_info_get_icon (_tmp16_);
 
2379
                _tmp18_ = _tmp17_;
 
2380
                _tmp19_ = app;
 
2381
                _tmp20_ = app_choose_info;
 
2382
                _tmp21_ = alm_app_choose_info_get_last_accessed (_tmp20_);
 
2383
                _tmp22_ = _tmp21_;
 
2384
                _tmp23_ = app_choose_info;
 
2385
                _tmp24_ = alm_app_choose_info_get_last_accessed_time (_tmp23_);
 
2386
                _tmp25_ = _tmp24_;
 
2387
                gtk_list_store_set (_tmp11_, &_tmp12_, 0, _tmp15_, 1, _tmp18_, 2, _tmp19_, 3, _tmp22_, 4, _tmp25_, -1, -1);
 
2388
                _tmp26_ = self->priv->app_blacklist;
 
2389
                _tmp27_ = app_choose_info;
 
2390
                _tmp28_ = alm_app_choose_info_get_id (_tmp27_);
 
2391
                _tmp29_ = _tmp28_;
 
2392
                _tmp30_ = iter;
 
2393
                _tmp31_ = self->priv->treeview;
 
2394
                _tmp32_ = alm_app_selection_tree_view_get_liststore (_tmp31_);
 
2395
                _tmp33_ = _tmp32_;
 
2396
                alm_application_blacklist_get_count_for_app (_tmp26_, _tmp29_, &_tmp30_, _tmp33_);
 
2397
                _g_free0 (_tmp29_);
 
2398
        }
 
2399
        _alm_app_choose_info_unref0 (app_choose_info);
 
2400
}
 
2401
 
 
2402
 
 
2403
static void alm_applications_chooser_dialog_set_up_ui (AlmApplicationsChooserDialog* self) {
 
2404
        AlmApplicationBlacklist* _tmp0_ = NULL;
 
2405
        AlmAppSelectionTreeView* _tmp1_ = NULL;
 
2406
        GtkBox* area = NULL;
 
2407
        GtkBox* _tmp2_ = NULL;
 
2408
        GtkBox* _tmp3_ = NULL;
 
2409
        AlmAppSelectionTreeView* _tmp4_ = NULL;
 
2410
        AlmAppSelectionTreeView* _tmp5_ = NULL;
 
2411
        g_return_if_fail (self != NULL);
 
2412
        _tmp0_ = self->priv->app_blacklist;
 
2413
        _tmp1_ = alm_app_selection_tree_view_new (_tmp0_);
 
2414
        g_object_ref_sink (_tmp1_);
 
2415
        _g_object_unref0 (self->priv->treeview);
 
2416
        self->priv->treeview = _tmp1_;
 
2417
        _tmp2_ = (GtkBox*) gtk_dialog_get_content_area ((GtkDialog*) self);
 
2418
        _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, GTK_TYPE_BOX) ? ((GtkBox*) _tmp2_) : NULL);
 
2419
        area = _tmp3_;
 
2420
        _tmp4_ = self->priv->treeview;
 
2421
        gtk_box_pack_start (area, (GtkWidget*) _tmp4_, TRUE, TRUE, (guint) 0);
 
2422
        gtk_dialog_add_buttons ((GtkDialog*) self, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
 
2423
        _tmp5_ = self->priv->treeview;
 
2424
        gtk_widget_show_all ((GtkWidget*) _tmp5_);
 
2425
        _g_object_unref0 (area);
 
2426
}
 
2427
 
 
2428
 
 
2429
GtkTreeView* alm_applications_chooser_dialog_get_tree (AlmApplicationsChooserDialog* self) {
 
2430
        GtkTreeView* result;
 
2431
        AlmAppSelectionTreeView* _tmp0_ = NULL;
 
2432
        GtkTreeView* _tmp1_ = NULL;
 
2433
        GtkTreeView* _tmp2_ = NULL;
 
2434
        g_return_val_if_fail (self != NULL, NULL);
 
2435
        _tmp0_ = self->priv->treeview;
 
2436
        _tmp1_ = alm_app_selection_tree_view_get_tree (_tmp0_);
 
2437
        _tmp2_ = _tmp1_;
 
2438
        result = _tmp2_;
 
2439
        return result;
 
2440
}
 
2441
 
 
2442
 
 
2443
GtkListStore* alm_applications_chooser_dialog_get_liststore (AlmApplicationsChooserDialog* self) {
 
2444
        GtkListStore* result;
 
2445
        AlmAppSelectionTreeView* _tmp0_ = NULL;
 
2446
        GtkListStore* _tmp1_ = NULL;
 
2447
        GtkListStore* _tmp2_ = NULL;
 
2448
        g_return_val_if_fail (self != NULL, NULL);
 
2449
        _tmp0_ = self->priv->treeview;
 
2450
        _tmp1_ = alm_app_selection_tree_view_get_liststore (_tmp0_);
 
2451
        _tmp2_ = _tmp1_;
 
2452
        result = _tmp2_;
 
2453
        return result;
 
2454
}
 
2455
 
 
2456
 
 
2457
static void alm_applications_chooser_dialog_class_init (AlmApplicationsChooserDialogClass * klass) {
 
2458
        alm_applications_chooser_dialog_parent_class = g_type_class_peek_parent (klass);
 
2459
        g_type_class_add_private (klass, sizeof (AlmApplicationsChooserDialogPrivate));
 
2460
        G_OBJECT_CLASS (klass)->get_property = _vala_alm_applications_chooser_dialog_get_property;
 
2461
        G_OBJECT_CLASS (klass)->finalize = alm_applications_chooser_dialog_finalize;
 
2462
        g_object_class_install_property (G_OBJECT_CLASS (klass), ALM_APPLICATIONS_CHOOSER_DIALOG_TREE, g_param_spec_object ("tree", "tree", "tree", GTK_TYPE_TREE_VIEW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 
2463
        g_object_class_install_property (G_OBJECT_CLASS (klass), ALM_APPLICATIONS_CHOOSER_DIALOG_LISTSTORE, g_param_spec_object ("liststore", "liststore", "liststore", GTK_TYPE_LIST_STORE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
 
2464
}
 
2465
 
 
2466
 
 
2467
static void alm_applications_chooser_dialog_instance_init (AlmApplicationsChooserDialog * self) {
 
2468
        self->priv = ALM_APPLICATIONS_CHOOSER_DIALOG_GET_PRIVATE (self);
 
2469
}
 
2470
 
 
2471
 
 
2472
static void alm_applications_chooser_dialog_finalize (GObject* obj) {
 
2473
        AlmApplicationsChooserDialog * self;
 
2474
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG, AlmApplicationsChooserDialog);
 
2475
        _alm_application_blacklist_unref0 (self->priv->app_blacklist);
 
2476
        _g_object_unref0 (self->priv->treeview);
 
2477
        _g_hash_table_unref0 (self->priv->all_actors_list);
 
2478
        _g_hash_table_unref0 (self->priv->actors_iter);
 
2479
        _g_hash_table_unref0 (self->priv->blocked_apps);
 
2480
        _g_hash_table_unref0 (self->priv->unblocked_apps);
 
2481
        G_OBJECT_CLASS (alm_applications_chooser_dialog_parent_class)->finalize (obj);
 
2482
}
 
2483
 
 
2484
 
 
2485
GType alm_applications_chooser_dialog_get_type (void) {
 
2486
        static volatile gsize alm_applications_chooser_dialog_type_id__volatile = 0;
 
2487
        if (g_once_init_enter (&alm_applications_chooser_dialog_type_id__volatile)) {
 
2488
                static const GTypeInfo g_define_type_info = { sizeof (AlmApplicationsChooserDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alm_applications_chooser_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AlmApplicationsChooserDialog), 0, (GInstanceInitFunc) alm_applications_chooser_dialog_instance_init, NULL };
 
2489
                GType alm_applications_chooser_dialog_type_id;
 
2490
                alm_applications_chooser_dialog_type_id = g_type_register_static (GTK_TYPE_DIALOG, "AlmApplicationsChooserDialog", &g_define_type_info, 0);
 
2491
                g_once_init_leave (&alm_applications_chooser_dialog_type_id__volatile, alm_applications_chooser_dialog_type_id);
 
2492
        }
 
2493
        return alm_applications_chooser_dialog_type_id__volatile;
 
2494
}
 
2495
 
 
2496
 
 
2497
static void _vala_alm_applications_chooser_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 
2498
        AlmApplicationsChooserDialog * self;
 
2499
        self = G_TYPE_CHECK_INSTANCE_CAST (object, ALM_TYPE_APPLICATIONS_CHOOSER_DIALOG, AlmApplicationsChooserDialog);
 
2500
        switch (property_id) {
 
2501
                case ALM_APPLICATIONS_CHOOSER_DIALOG_TREE:
 
2502
                g_value_set_object (value, alm_applications_chooser_dialog_get_tree (self));
 
2503
                break;
 
2504
                case ALM_APPLICATIONS_CHOOSER_DIALOG_LISTSTORE:
 
2505
                g_value_set_object (value, alm_applications_chooser_dialog_get_liststore (self));
 
2506
                break;
 
2507
                default:
 
2508
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
2509
                break;
 
2510
        }
 
2511
}
 
2512
 
 
2513
 
 
2514
AlmUsageCellRenderer* alm_usage_cell_renderer_construct (GType object_type) {
 
2515
        AlmUsageCellRenderer * self = NULL;
 
2516
        self = (AlmUsageCellRenderer*) g_object_new (object_type, NULL);
 
2517
        self->priv->usage_num = 0;
 
2518
        return self;
 
2519
}
 
2520
 
 
2521
 
 
2522
AlmUsageCellRenderer* alm_usage_cell_renderer_new (void) {
 
2523
        return alm_usage_cell_renderer_construct (ALM_TYPE_USAGE_CELL_RENDERER);
 
2524
}
 
2525
 
 
2526
 
 
2527
static void alm_usage_cell_renderer_real_get_size (GtkCellRenderer* base, GtkWidget* widget, GdkRectangle* cell_area, gint* x_offset, gint* y_offset, gint* width, gint* height) {
 
2528
        AlmUsageCellRenderer * self;
 
2529
        gint _vala_x_offset = 0;
 
2530
        gint _vala_y_offset = 0;
 
2531
        gint _vala_width = 0;
 
2532
        gint _vala_height = 0;
 
2533
        self = (AlmUsageCellRenderer*) base;
 
2534
        g_return_if_fail (widget != NULL);
 
2535
        _vala_x_offset = ALM_USAGE_CELL_RENDERER_xpadding;
 
2536
        _vala_y_offset = ALM_USAGE_CELL_RENDERER_ypadding;
 
2537
        _vala_width = ((ALM_USAGE_CELL_RENDERER_RECT_WIDTH * ALM_USAGE_CELL_RENDERER_RECT_NUM) + (ALM_USAGE_CELL_RENDERER_xpadding * 2)) + (ALM_USAGE_CELL_RENDERER_RECT_SPACING * 9);
 
2538
        _vala_height = ALM_USAGE_CELL_RENDERER_RECT_HEIGHT + (ALM_USAGE_CELL_RENDERER_ypadding * 2);
 
2539
        if (x_offset) {
 
2540
                *x_offset = _vala_x_offset;
 
2541
        }
 
2542
        if (y_offset) {
 
2543
                *y_offset = _vala_y_offset;
 
2544
        }
 
2545
        if (width) {
 
2546
                *width = _vala_width;
 
2547
        }
 
2548
        if (height) {
 
2549
                *height = _vala_height;
 
2550
        }
 
2551
}
 
2552
 
 
2553
 
 
2554
static void alm_usage_cell_renderer_real_render (GtkCellRenderer* base, cairo_t* ctx, GtkWidget* widget, GdkRectangle* background_area, GdkRectangle* cell_area, GtkCellRendererState flags) {
 
2555
        AlmUsageCellRenderer * self;
 
2556
        gint x = 0;
 
2557
        GdkRectangle _tmp0_ = {0};
 
2558
        gint _tmp1_ = 0;
 
2559
        gint y = 0;
 
2560
        GdkRectangle _tmp2_ = {0};
 
2561
        gint _tmp3_ = 0;
 
2562
        self = (AlmUsageCellRenderer*) base;
 
2563
        g_return_if_fail (ctx != NULL);
 
2564
        g_return_if_fail (widget != NULL);
 
2565
        g_return_if_fail (background_area != NULL);
 
2566
        g_return_if_fail (cell_area != NULL);
 
2567
        _tmp0_ = *cell_area;
 
2568
        _tmp1_ = _tmp0_.x;
 
2569
        x = _tmp1_ + ALM_USAGE_CELL_RENDERER_xpadding;
 
2570
        _tmp2_ = *cell_area;
 
2571
        _tmp3_ = _tmp2_.y;
 
2572
        y = _tmp3_ + ALM_USAGE_CELL_RENDERER_ypadding;
 
2573
        {
 
2574
                gint i = 0;
 
2575
                i = 0;
 
2576
                {
 
2577
                        gboolean _tmp4_ = FALSE;
 
2578
                        _tmp4_ = TRUE;
 
2579
                        while (TRUE) {
 
2580
                                gboolean _tmp5_ = FALSE;
 
2581
                                gint _tmp7_ = 0;
 
2582
                                gint _tmp8_ = 0;
 
2583
                                gint _tmp9_ = 0;
 
2584
                                cairo_t* _tmp10_ = NULL;
 
2585
                                cairo_t* _tmp11_ = NULL;
 
2586
                                gint _tmp12_ = 0;
 
2587
                                gint _tmp13_ = 0;
 
2588
                                cairo_t* _tmp14_ = NULL;
 
2589
                                gint _tmp15_ = 0;
 
2590
                                _tmp5_ = _tmp4_;
 
2591
                                if (!_tmp5_) {
 
2592
                                        gint _tmp6_ = 0;
 
2593
                                        _tmp6_ = i;
 
2594
                                        i = _tmp6_ + 1;
 
2595
                                }
 
2596
                                _tmp4_ = FALSE;
 
2597
                                _tmp7_ = i;
 
2598
                                _tmp8_ = alm_usage_cell_renderer_get_usage (self);
 
2599
                                _tmp9_ = _tmp8_;
 
2600
                                if (!(_tmp7_ < _tmp9_)) {
 
2601
                                        break;
 
2602
                                }
 
2603
                                _tmp10_ = ctx;
 
2604
                                cairo_set_source_rgb (_tmp10_, 0.4, 0.4, 0.4);
 
2605
                                _tmp11_ = ctx;
 
2606
                                _tmp12_ = x;
 
2607
                                _tmp13_ = y;
 
2608
                                cairo_rectangle (_tmp11_, (gdouble) _tmp12_, (gdouble) _tmp13_, (gdouble) ALM_USAGE_CELL_RENDERER_RECT_WIDTH, (gdouble) ALM_USAGE_CELL_RENDERER_RECT_HEIGHT);
 
2609
                                _tmp14_ = ctx;
 
2610
                                cairo_fill (_tmp14_);
 
2611
                                _tmp15_ = x;
 
2612
                                x = _tmp15_ + (ALM_USAGE_CELL_RENDERER_RECT_SPACING + ALM_USAGE_CELL_RENDERER_RECT_WIDTH);
 
2613
                        }
 
2614
                }
 
2615
        }
 
2616
        {
 
2617
                gint i = 0;
 
2618
                i = 0;
 
2619
                {
 
2620
                        gboolean _tmp16_ = FALSE;
 
2621
                        _tmp16_ = TRUE;
 
2622
                        while (TRUE) {
 
2623
                                gboolean _tmp17_ = FALSE;
 
2624
                                gint _tmp19_ = 0;
 
2625
                                gint _tmp20_ = 0;
 
2626
                                gint _tmp21_ = 0;
 
2627
                                cairo_t* _tmp22_ = NULL;
 
2628
                                cairo_t* _tmp23_ = NULL;
 
2629
                                gint _tmp24_ = 0;
 
2630
                                gint _tmp25_ = 0;
 
2631
                                cairo_t* _tmp26_ = NULL;
 
2632
                                gint _tmp27_ = 0;
 
2633
                                _tmp17_ = _tmp16_;
 
2634
                                if (!_tmp17_) {
 
2635
                                        gint _tmp18_ = 0;
 
2636
                                        _tmp18_ = i;
 
2637
                                        i = _tmp18_ + 1;
 
2638
                                }
 
2639
                                _tmp16_ = FALSE;
 
2640
                                _tmp19_ = i;
 
2641
                                _tmp20_ = alm_usage_cell_renderer_get_usage (self);
 
2642
                                _tmp21_ = _tmp20_;
 
2643
                                if (!(_tmp19_ < (ALM_USAGE_CELL_RENDERER_RECT_NUM - _tmp21_))) {
 
2644
                                        break;
 
2645
                                }
 
2646
                                _tmp22_ = ctx;
 
2647
                                cairo_set_source_rgb (_tmp22_, 0.7, 0.7, 0.7);
 
2648
                                _tmp23_ = ctx;
 
2649
                                _tmp24_ = x;
 
2650
                                _tmp25_ = y;
 
2651
                                cairo_rectangle (_tmp23_, (gdouble) _tmp24_, (gdouble) _tmp25_, (gdouble) ALM_USAGE_CELL_RENDERER_RECT_WIDTH, (gdouble) ALM_USAGE_CELL_RENDERER_RECT_HEIGHT);
 
2652
                                _tmp26_ = ctx;
 
2653
                                cairo_fill (_tmp26_);
 
2654
                                _tmp27_ = x;
 
2655
                                x = _tmp27_ + (ALM_USAGE_CELL_RENDERER_RECT_SPACING + ALM_USAGE_CELL_RENDERER_RECT_WIDTH);
 
2656
                        }
 
2657
                }
 
2658
        }
 
2659
}
 
2660
 
 
2661
 
 
2662
gint alm_usage_cell_renderer_get_usage (AlmUsageCellRenderer* self) {
 
2663
        gint result;
 
2664
        gint _tmp0_ = 0;
 
2665
        g_return_val_if_fail (self != NULL, 0);
 
2666
        _tmp0_ = self->priv->usage_num;
 
2667
        result = _tmp0_;
 
2668
        return result;
 
2669
}
 
2670
 
 
2671
 
 
2672
void alm_usage_cell_renderer_set_usage (AlmUsageCellRenderer* self, gint value) {
 
2673
        gint _tmp0_ = 0;
 
2674
        g_return_if_fail (self != NULL);
 
2675
        _tmp0_ = value;
 
2676
        if (_tmp0_ > 10) {
 
2677
                self->priv->usage_num = 10;
 
2678
        } else {
 
2679
                gint _tmp1_ = 0;
 
2680
                _tmp1_ = value;
 
2681
                self->priv->usage_num = _tmp1_;
 
2682
        }
 
2683
        g_object_notify ((GObject *) self, "usage");
 
2684
}
 
2685
 
 
2686
 
 
2687
static void alm_usage_cell_renderer_class_init (AlmUsageCellRendererClass * klass) {
 
2688
        alm_usage_cell_renderer_parent_class = g_type_class_peek_parent (klass);
 
2689
        g_type_class_add_private (klass, sizeof (AlmUsageCellRendererPrivate));
 
2690
        GTK_CELL_RENDERER_CLASS (klass)->get_size = alm_usage_cell_renderer_real_get_size;
 
2691
        GTK_CELL_RENDERER_CLASS (klass)->render = alm_usage_cell_renderer_real_render;
 
2692
        G_OBJECT_CLASS (klass)->get_property = _vala_alm_usage_cell_renderer_get_property;
 
2693
        G_OBJECT_CLASS (klass)->set_property = _vala_alm_usage_cell_renderer_set_property;
 
2694
        G_OBJECT_CLASS (klass)->finalize = alm_usage_cell_renderer_finalize;
 
2695
        g_object_class_install_property (G_OBJECT_CLASS (klass), ALM_USAGE_CELL_RENDERER_USAGE, g_param_spec_int ("usage", "usage", "usage", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
2696
}
 
2697
 
 
2698
 
 
2699
static void alm_usage_cell_renderer_instance_init (AlmUsageCellRenderer * self) {
 
2700
        self->priv = ALM_USAGE_CELL_RENDERER_GET_PRIVATE (self);
 
2701
}
 
2702
 
 
2703
 
 
2704
static void alm_usage_cell_renderer_finalize (GObject* obj) {
 
2705
        AlmUsageCellRenderer * self;
 
2706
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, ALM_TYPE_USAGE_CELL_RENDERER, AlmUsageCellRenderer);
 
2707
        G_OBJECT_CLASS (alm_usage_cell_renderer_parent_class)->finalize (obj);
 
2708
}
 
2709
 
 
2710
 
 
2711
GType alm_usage_cell_renderer_get_type (void) {
 
2712
        static volatile gsize alm_usage_cell_renderer_type_id__volatile = 0;
 
2713
        if (g_once_init_enter (&alm_usage_cell_renderer_type_id__volatile)) {
 
2714
                static const GTypeInfo g_define_type_info = { sizeof (AlmUsageCellRendererClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alm_usage_cell_renderer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AlmUsageCellRenderer), 0, (GInstanceInitFunc) alm_usage_cell_renderer_instance_init, NULL };
 
2715
                GType alm_usage_cell_renderer_type_id;
 
2716
                alm_usage_cell_renderer_type_id = g_type_register_static (GTK_TYPE_CELL_RENDERER, "AlmUsageCellRenderer", &g_define_type_info, 0);
 
2717
                g_once_init_leave (&alm_usage_cell_renderer_type_id__volatile, alm_usage_cell_renderer_type_id);
 
2718
        }
 
2719
        return alm_usage_cell_renderer_type_id__volatile;
 
2720
}
 
2721
 
 
2722
 
 
2723
static void _vala_alm_usage_cell_renderer_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 
2724
        AlmUsageCellRenderer * self;
 
2725
        self = G_TYPE_CHECK_INSTANCE_CAST (object, ALM_TYPE_USAGE_CELL_RENDERER, AlmUsageCellRenderer);
 
2726
        switch (property_id) {
 
2727
                case ALM_USAGE_CELL_RENDERER_USAGE:
 
2728
                g_value_set_int (value, alm_usage_cell_renderer_get_usage (self));
 
2729
                break;
 
2730
                default:
 
2731
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
2732
                break;
 
2733
        }
 
2734
}
 
2735
 
 
2736
 
 
2737
static void _vala_alm_usage_cell_renderer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 
2738
        AlmUsageCellRenderer * self;
 
2739
        self = G_TYPE_CHECK_INSTANCE_CAST (object, ALM_TYPE_USAGE_CELL_RENDERER, AlmUsageCellRenderer);
 
2740
        switch (property_id) {
 
2741
                case ALM_USAGE_CELL_RENDERER_USAGE:
 
2742
                alm_usage_cell_renderer_set_usage (self, g_value_get_int (value));
 
2743
                break;
 
2744
                default:
 
2745
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
2746
                break;
 
2747
        }
 
2748
}
 
2749
 
 
2750
 
 
2751
AlmAppChooseInfo* alm_app_choose_info_construct (GType object_type, const gchar* id, const gchar* app_name, GdkPixbuf* app_icon, const gchar* last_accessed_time_s, gint64 last_accessed_time_i, guint usage_rating) {
 
2752
        AlmAppChooseInfo* self = NULL;
 
2753
        const gchar* _tmp0_ = NULL;
 
2754
        gchar* _tmp1_ = NULL;
 
2755
        GdkPixbuf* _tmp2_ = NULL;
 
2756
        GdkPixbuf* _tmp3_ = NULL;
 
2757
        const gchar* _tmp4_ = NULL;
 
2758
        gchar* _tmp5_ = NULL;
 
2759
        gint64 _tmp6_ = 0LL;
 
2760
        guint _tmp7_ = 0U;
 
2761
        const gchar* _tmp8_ = NULL;
 
2762
        gchar* _tmp9_ = NULL;
 
2763
        g_return_val_if_fail (id != NULL, NULL);
 
2764
        g_return_val_if_fail (app_name != NULL, NULL);
 
2765
        g_return_val_if_fail (last_accessed_time_s != NULL, NULL);
 
2766
        self = (AlmAppChooseInfo*) g_type_create_instance (object_type);
 
2767
        _tmp0_ = app_name;
 
2768
        _tmp1_ = g_strdup (_tmp0_);
 
2769
        _g_free0 (self->priv->app_name);
 
2770
        self->priv->app_name = _tmp1_;
 
2771
        _tmp2_ = app_icon;
 
2772
        _tmp3_ = _g_object_ref0 (_tmp2_);
 
2773
        _g_object_unref0 (self->priv->app_icon);
 
2774
        self->priv->app_icon = _tmp3_;
 
2775
        _tmp4_ = last_accessed_time_s;
 
2776
        _tmp5_ = g_strdup (_tmp4_);
 
2777
        _g_free0 (self->priv->last_accessed_time_s);
 
2778
        self->priv->last_accessed_time_s = _tmp5_;
 
2779
        _tmp6_ = last_accessed_time_i;
 
2780
        self->priv->last_accessed_time_i = _tmp6_;
 
2781
        _tmp7_ = usage_rating;
 
2782
        self->priv->usage_rating = _tmp7_;
 
2783
        _tmp8_ = id;
 
2784
        _tmp9_ = g_strdup (_tmp8_);
 
2785
        _g_free0 (self->priv->app_id);
 
2786
        self->priv->app_id = _tmp9_;
 
2787
        return self;
 
2788
}
 
2789
 
 
2790
 
 
2791
AlmAppChooseInfo* alm_app_choose_info_new (const gchar* id, const gchar* app_name, GdkPixbuf* app_icon, const gchar* last_accessed_time_s, gint64 last_accessed_time_i, guint usage_rating) {
 
2792
        return alm_app_choose_info_construct (ALM_TYPE_APP_CHOOSE_INFO, id, app_name, app_icon, last_accessed_time_s, last_accessed_time_i, usage_rating);
 
2793
}
 
2794
 
 
2795
 
 
2796
gchar* alm_app_choose_info_get_id (AlmAppChooseInfo* self) {
 
2797
        gchar* result = NULL;
 
2798
        const gchar* _tmp0_ = NULL;
 
2799
        gchar* _tmp1_ = NULL;
 
2800
        g_return_val_if_fail (self != NULL, NULL);
 
2801
        _tmp0_ = self->priv->app_id;
 
2802
        _tmp1_ = g_strdup (_tmp0_);
 
2803
        result = _tmp1_;
 
2804
        return result;
 
2805
}
 
2806
 
 
2807
 
 
2808
const gchar* alm_app_choose_info_get_name (AlmAppChooseInfo* self) {
 
2809
        const gchar* result;
 
2810
        const gchar* _tmp0_ = NULL;
 
2811
        g_return_val_if_fail (self != NULL, NULL);
 
2812
        _tmp0_ = self->priv->app_name;
 
2813
        result = _tmp0_;
 
2814
        return result;
 
2815
}
 
2816
 
 
2817
 
 
2818
void alm_app_choose_info_set_name (AlmAppChooseInfo* self, const gchar* value) {
 
2819
        const gchar* _tmp0_ = NULL;
 
2820
        gchar* _tmp1_ = NULL;
 
2821
        g_return_if_fail (self != NULL);
 
2822
        _tmp0_ = value;
 
2823
        _tmp1_ = g_strdup (_tmp0_);
 
2824
        _g_free0 (self->priv->app_name);
 
2825
        self->priv->app_name = _tmp1_;
 
2826
}
 
2827
 
 
2828
 
 
2829
GdkPixbuf* alm_app_choose_info_get_icon (AlmAppChooseInfo* self) {
 
2830
        GdkPixbuf* result;
 
2831
        GdkPixbuf* _tmp0_ = NULL;
 
2832
        g_return_val_if_fail (self != NULL, NULL);
 
2833
        _tmp0_ = self->priv->app_icon;
 
2834
        result = _tmp0_;
 
2835
        return result;
 
2836
}
 
2837
 
 
2838
 
 
2839
void alm_app_choose_info_set_icon (AlmAppChooseInfo* self, GdkPixbuf* value) {
 
2840
        GdkPixbuf* _tmp0_ = NULL;
 
2841
        GdkPixbuf* _tmp1_ = NULL;
 
2842
        g_return_if_fail (self != NULL);
 
2843
        _tmp0_ = value;
 
2844
        _tmp1_ = _g_object_ref0 (_tmp0_);
 
2845
        _g_object_unref0 (self->priv->app_icon);
 
2846
        self->priv->app_icon = _tmp1_;
 
2847
}
 
2848
 
 
2849
 
 
2850
const gchar* alm_app_choose_info_get_last_accessed (AlmAppChooseInfo* self) {
 
2851
        const gchar* result;
 
2852
        const gchar* _tmp0_ = NULL;
 
2853
        g_return_val_if_fail (self != NULL, NULL);
 
2854
        _tmp0_ = self->priv->last_accessed_time_s;
 
2855
        result = _tmp0_;
 
2856
        return result;
 
2857
}
 
2858
 
 
2859
 
 
2860
void alm_app_choose_info_set_last_accessed (AlmAppChooseInfo* self, const gchar* value) {
 
2861
        const gchar* _tmp0_ = NULL;
 
2862
        gchar* _tmp1_ = NULL;
 
2863
        g_return_if_fail (self != NULL);
 
2864
        _tmp0_ = value;
 
2865
        _tmp1_ = g_strdup (_tmp0_);
 
2866
        _g_free0 (self->priv->last_accessed_time_s);
 
2867
        self->priv->last_accessed_time_s = _tmp1_;
 
2868
}
 
2869
 
 
2870
 
 
2871
gint64 alm_app_choose_info_get_last_accessed_time (AlmAppChooseInfo* self) {
 
2872
        gint64 result;
 
2873
        gint64 _tmp0_ = 0LL;
 
2874
        g_return_val_if_fail (self != NULL, 0LL);
 
2875
        _tmp0_ = self->priv->last_accessed_time_i;
 
2876
        result = _tmp0_;
 
2877
        return result;
 
2878
}
 
2879
 
 
2880
 
 
2881
void alm_app_choose_info_set_last_accessed_time (AlmAppChooseInfo* self, gint64 value) {
 
2882
        gint64 _tmp0_ = 0LL;
 
2883
        g_return_if_fail (self != NULL);
 
2884
        _tmp0_ = value;
 
2885
        self->priv->last_accessed_time_i = _tmp0_;
 
2886
}
 
2887
 
 
2888
 
 
2889
guint alm_app_choose_info_get_usage (AlmAppChooseInfo* self) {
 
2890
        guint result;
 
2891
        guint _tmp0_ = 0U;
 
2892
        g_return_val_if_fail (self != NULL, 0U);
 
2893
        _tmp0_ = self->priv->usage_rating;
 
2894
        result = _tmp0_;
 
2895
        return result;
 
2896
}
 
2897
 
 
2898
 
 
2899
void alm_app_choose_info_set_usage (AlmAppChooseInfo* self, guint value) {
 
2900
        guint _tmp0_ = 0U;
 
2901
        g_return_if_fail (self != NULL);
 
2902
        _tmp0_ = value;
 
2903
        self->priv->usage_rating = _tmp0_;
 
2904
}
 
2905
 
 
2906
 
 
2907
static void alm_value_app_choose_info_init (GValue* value) {
 
2908
        value->data[0].v_pointer = NULL;
 
2909
}
 
2910
 
 
2911
 
 
2912
static void alm_value_app_choose_info_free_value (GValue* value) {
 
2913
        if (value->data[0].v_pointer) {
 
2914
                alm_app_choose_info_unref (value->data[0].v_pointer);
 
2915
        }
 
2916
}
 
2917
 
 
2918
 
 
2919
static void alm_value_app_choose_info_copy_value (const GValue* src_value, GValue* dest_value) {
 
2920
        if (src_value->data[0].v_pointer) {
 
2921
                dest_value->data[0].v_pointer = alm_app_choose_info_ref (src_value->data[0].v_pointer);
 
2922
        } else {
 
2923
                dest_value->data[0].v_pointer = NULL;
 
2924
        }
 
2925
}
 
2926
 
 
2927
 
 
2928
static gpointer alm_value_app_choose_info_peek_pointer (const GValue* value) {
 
2929
        return value->data[0].v_pointer;
 
2930
}
 
2931
 
 
2932
 
 
2933
static gchar* alm_value_app_choose_info_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
 
2934
        if (collect_values[0].v_pointer) {
 
2935
                AlmAppChooseInfo* object;
 
2936
                object = collect_values[0].v_pointer;
 
2937
                if (object->parent_instance.g_class == NULL) {
 
2938
                        return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
 
2939
                } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
 
2940
                        return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
 
2941
                }
 
2942
                value->data[0].v_pointer = alm_app_choose_info_ref (object);
 
2943
        } else {
 
2944
                value->data[0].v_pointer = NULL;
 
2945
        }
 
2946
        return NULL;
 
2947
}
 
2948
 
 
2949
 
 
2950
static gchar* alm_value_app_choose_info_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
 
2951
        AlmAppChooseInfo** object_p;
 
2952
        object_p = collect_values[0].v_pointer;
 
2953
        if (!object_p) {
 
2954
                return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
 
2955
        }
 
2956
        if (!value->data[0].v_pointer) {
 
2957
                *object_p = NULL;
 
2958
        } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
 
2959
                *object_p = value->data[0].v_pointer;
 
2960
        } else {
 
2961
                *object_p = alm_app_choose_info_ref (value->data[0].v_pointer);
 
2962
        }
 
2963
        return NULL;
 
2964
}
 
2965
 
 
2966
 
 
2967
GParamSpec* alm_param_spec_app_choose_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
 
2968
        AlmParamSpecAppChooseInfo* spec;
 
2969
        g_return_val_if_fail (g_type_is_a (object_type, ALM_TYPE_APP_CHOOSE_INFO), NULL);
 
2970
        spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
 
2971
        G_PARAM_SPEC (spec)->value_type = object_type;
 
2972
        return G_PARAM_SPEC (spec);
 
2973
}
 
2974
 
 
2975
 
 
2976
gpointer alm_value_get_app_choose_info (const GValue* value) {
 
2977
        g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, ALM_TYPE_APP_CHOOSE_INFO), NULL);
 
2978
        return value->data[0].v_pointer;
 
2979
}
 
2980
 
 
2981
 
 
2982
void alm_value_set_app_choose_info (GValue* value, gpointer v_object) {
 
2983
        AlmAppChooseInfo* old;
 
2984
        g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, ALM_TYPE_APP_CHOOSE_INFO));
 
2985
        old = value->data[0].v_pointer;
 
2986
        if (v_object) {
 
2987
                g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, ALM_TYPE_APP_CHOOSE_INFO));
 
2988
                g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
 
2989
                value->data[0].v_pointer = v_object;
 
2990
                alm_app_choose_info_ref (value->data[0].v_pointer);
 
2991
        } else {
 
2992
                value->data[0].v_pointer = NULL;
 
2993
        }
 
2994
        if (old) {
 
2995
                alm_app_choose_info_unref (old);
 
2996
        }
 
2997
}
 
2998
 
 
2999
 
 
3000
void alm_value_take_app_choose_info (GValue* value, gpointer v_object) {
 
3001
        AlmAppChooseInfo* old;
 
3002
        g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, ALM_TYPE_APP_CHOOSE_INFO));
 
3003
        old = value->data[0].v_pointer;
 
3004
        if (v_object) {
 
3005
                g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, ALM_TYPE_APP_CHOOSE_INFO));
 
3006
                g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
 
3007
                value->data[0].v_pointer = v_object;
 
3008
        } else {
 
3009
                value->data[0].v_pointer = NULL;
 
3010
        }
 
3011
        if (old) {
 
3012
                alm_app_choose_info_unref (old);
 
3013
        }
 
3014
}
 
3015
 
 
3016
 
 
3017
static void alm_app_choose_info_class_init (AlmAppChooseInfoClass * klass) {
 
3018
        alm_app_choose_info_parent_class = g_type_class_peek_parent (klass);
 
3019
        ALM_APP_CHOOSE_INFO_CLASS (klass)->finalize = alm_app_choose_info_finalize;
 
3020
        g_type_class_add_private (klass, sizeof (AlmAppChooseInfoPrivate));
 
3021
}
 
3022
 
 
3023
 
 
3024
static void alm_app_choose_info_instance_init (AlmAppChooseInfo * self) {
 
3025
        self->priv = ALM_APP_CHOOSE_INFO_GET_PRIVATE (self);
 
3026
        self->ref_count = 1;
 
3027
}
 
3028
 
 
3029
 
 
3030
static void alm_app_choose_info_finalize (AlmAppChooseInfo* obj) {
 
3031
        AlmAppChooseInfo * self;
 
3032
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, ALM_TYPE_APP_CHOOSE_INFO, AlmAppChooseInfo);
 
3033
        _g_free0 (self->priv->app_id);
 
3034
        _g_free0 (self->priv->app_name);
 
3035
        _g_object_unref0 (self->priv->app_icon);
 
3036
        _g_free0 (self->priv->last_accessed_time_s);
 
3037
}
 
3038
 
 
3039
 
 
3040
GType alm_app_choose_info_get_type (void) {
 
3041
        static volatile gsize alm_app_choose_info_type_id__volatile = 0;
 
3042
        if (g_once_init_enter (&alm_app_choose_info_type_id__volatile)) {
 
3043
                static const GTypeValueTable g_define_type_value_table = { alm_value_app_choose_info_init, alm_value_app_choose_info_free_value, alm_value_app_choose_info_copy_value, alm_value_app_choose_info_peek_pointer, "p", alm_value_app_choose_info_collect_value, "p", alm_value_app_choose_info_lcopy_value };
 
3044
                static const GTypeInfo g_define_type_info = { sizeof (AlmAppChooseInfoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alm_app_choose_info_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AlmAppChooseInfo), 0, (GInstanceInitFunc) alm_app_choose_info_instance_init, &g_define_type_value_table };
 
3045
                static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
 
3046
                GType alm_app_choose_info_type_id;
 
3047
                alm_app_choose_info_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AlmAppChooseInfo", &g_define_type_info, &g_define_type_fundamental_info, 0);
 
3048
                g_once_init_leave (&alm_app_choose_info_type_id__volatile, alm_app_choose_info_type_id);
 
3049
        }
 
3050
        return alm_app_choose_info_type_id__volatile;
 
3051
}
 
3052
 
 
3053
 
 
3054
gpointer alm_app_choose_info_ref (gpointer instance) {
 
3055
        AlmAppChooseInfo* self;
 
3056
        self = instance;
 
3057
        g_atomic_int_inc (&self->ref_count);
 
3058
        return instance;
 
3059
}
 
3060
 
 
3061
 
 
3062
void alm_app_choose_info_unref (gpointer instance) {
 
3063
        AlmAppChooseInfo* self;
 
3064
        self = instance;
 
3065
        if (g_atomic_int_dec_and_test (&self->ref_count)) {
 
3066
                ALM_APP_CHOOSE_INFO_GET_CLASS (self)->finalize (self);
 
3067
                g_type_free_instance ((GTypeInstance *) self);
 
3068
        }
 
3069
}
 
3070
 
 
3071
 
 
3072