1
/* sqlheavy-gtk-model.c generated by valac 0.12.1, the Vala compiler
2
* generated from sqlheavy-gtk-model.vala, do not modify */
6
#include <glib-object.h>
7
#include "SQLHeavyGTK.h"
13
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
14
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
15
#define _g_free0(var) (var = (g_free (var), NULL))
17
struct _SQLHeavyGtkModelPrivate {
18
SQLHeavyTable* _table;
19
SQLHeavyQueryable* queryable;
25
static gpointer sql_heavy_gtk_model_parent_class = NULL;
26
static GtkTreeModelIface* sql_heavy_gtk_model_gtk_tree_model_parent_iface = NULL;
28
#define SQL_HEAVY_GTK_MODEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SQL_HEAVY_GTK_TYPE_MODEL, SQLHeavyGtkModelPrivate))
30
SQL_HEAVY_GTK_MODEL_DUMMY_PROPERTY,
31
SQL_HEAVY_GTK_MODEL_TABLE
33
static SQLHeavyRow* sql_heavy_gtk_model_get_row_from_iter (SQLHeavyGtkModel* self, GtkTreeIter* iter);
34
static GType sql_heavy_gtk_model_real_get_column_type (GtkTreeModel* base, gint index);
35
static GtkTreeModelFlags sql_heavy_gtk_model_real_get_flags (GtkTreeModel* base);
36
static gboolean sql_heavy_gtk_model_real_get_iter (GtkTreeModel* base, GtkTreeIter* iter, GtkTreePath* path);
37
static gint sql_heavy_gtk_model_real_get_n_columns (GtkTreeModel* base);
38
static GtkTreePath* sql_heavy_gtk_model_real_get_path (GtkTreeModel* base, GtkTreeIter* iter);
39
static void sql_heavy_gtk_model_real_get_value (GtkTreeModel* base, GtkTreeIter* iter, gint column, GValue* value);
40
static gboolean sql_heavy_gtk_model_real_iter_children (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* parent);
41
static gboolean sql_heavy_gtk_model_real_iter_has_child (GtkTreeModel* base, GtkTreeIter* iter);
42
static gint sql_heavy_gtk_model_real_iter_n_children (GtkTreeModel* base, GtkTreeIter* iter);
43
static gboolean sql_heavy_gtk_model_real_iter_next (GtkTreeModel* base, GtkTreeIter* iter);
44
static gboolean sql_heavy_gtk_model_real_iter_nth_child (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* parent, gint n);
45
static gboolean sql_heavy_gtk_model_real_iter_parent (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* child);
46
static void sql_heavy_gtk_model_real_ref_node (SQLHeavyGtkModel* self, GtkTreeIter* iter);
47
static void sql_heavy_gtk_model_real_unref_node (SQLHeavyGtkModel* self, GtkTreeIter* iter);
48
static void sql_heavy_gtk_model_finalize (GObject* obj);
49
static void _vala_sql_heavy_gtk_model_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
50
static void _vala_sql_heavy_gtk_model_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
53
static gpointer _g_object_ref0 (gpointer self) {
54
return self ? g_object_ref (self) : NULL;
58
static SQLHeavyRow* sql_heavy_gtk_model_get_row_from_iter (SQLHeavyGtkModel* self, GtkTreeIter* iter) {
59
SQLHeavyRow* result = NULL;
60
GError * _inner_error_ = NULL;
61
g_return_val_if_fail (self != NULL, NULL);
62
if ((*iter).user_data != NULL) {
64
_tmp0_ = _g_object_ref0 (SQL_HEAVY_ROW ((*iter).user_data));
68
SQLHeavyTable* _tmp1_ = NULL;
69
SQLHeavyRow* _tmp2_ = NULL;
71
_tmp1_ = sql_heavy_gtk_model_get_table (self);
72
_tmp2_ = sql_heavy_table_get (_tmp1_, (gint64) (*iter).stamp, &_inner_error_);
74
if (_inner_error_ != NULL) {
75
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
76
goto __catch0_sql_heavy_error;
78
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
79
g_clear_error (&_inner_error_);
82
(*iter).user_data = row;
83
g_object_ref ((GObject*) row);
86
_g_object_unref0 (row);
88
__catch0_sql_heavy_error:
93
g_critical ("sqlheavy-gtk-model.vala:36: Unable to get row from iterator: %s", e->message);
99
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);
100
g_clear_error (&_inner_error_);
106
static GType sql_heavy_gtk_model_real_get_column_type (GtkTreeModel* base, gint index) {
107
SQLHeavyGtkModel * self;
109
GError * _inner_error_ = NULL;
110
self = (SQLHeavyGtkModel*) base;
112
result = G_TYPE_INT64;
115
SQLHeavyTable* _tmp0_ = NULL;
118
_tmp0_ = sql_heavy_gtk_model_get_table (self);
119
_tmp1_ = sql_heavy_table_field_affinity_type (_tmp0_, index - 1, &_inner_error_);
121
if (_inner_error_ != NULL) {
122
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
123
goto __catch1_sql_heavy_error;
125
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
126
g_clear_error (&_inner_error_);
133
__catch1_sql_heavy_error:
137
_inner_error_ = NULL;
138
g_critical ("sqlheavy-gtk-model.vala:51: Unable to determine column affinity (colum" \
139
"n #%d): %s", index, e->message);
140
result = G_TYPE_NONE;
145
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);
146
g_clear_error (&_inner_error_);
151
static GtkTreeModelFlags sql_heavy_gtk_model_real_get_flags (GtkTreeModel* base) {
152
SQLHeavyGtkModel * self;
153
GtkTreeModelFlags result = 0;
154
self = (SQLHeavyGtkModel*) base;
155
result = GTK_TREE_MODEL_LIST_ONLY;
160
static const gchar* string_to_string (const gchar* self) {
161
const gchar* result = NULL;
162
g_return_val_if_fail (self != NULL, NULL);
168
static gboolean sql_heavy_gtk_model_real_get_iter (GtkTreeModel* base, GtkTreeIter* iter, GtkTreePath* path) {
169
SQLHeavyGtkModel * self;
170
GtkTreeIter _iter = {0};
171
gboolean result = FALSE;
175
gint indices_length1;
177
SQLHeavyTable* _tmp1_ = NULL;
178
const gchar* _tmp2_ = NULL;
179
gchar* _tmp3_ = NULL;
181
const gchar* _tmp5_ = NULL;
182
gchar* _tmp6_ = NULL;
184
gchar* _tmp8_ = NULL;
186
SQLHeavyQuery* _tmp10_ = NULL;
187
SQLHeavyQuery* _tmp11_;
188
SQLHeavyQuery* _tmp12_;
189
SQLHeavyQuery* _tmp13_;
190
SQLHeavyQueryResult* _tmp14_ = NULL;
191
SQLHeavyQueryResult* _tmp15_;
192
SQLHeavyQueryResult* res;
196
GError * _inner_error_ = NULL;
197
self = (SQLHeavyGtkModel*) base;
198
g_return_val_if_fail (path != NULL, FALSE);
200
_tmp0_ = gtk_tree_path_get_indices (path);
202
indices_length1 = -1;
204
if (indices_length1 == (-1)) {
207
if (indices_length1 == 1) {
208
offset = (gint64) indices[0];
217
_tmp1_ = sql_heavy_gtk_model_get_table (self);
218
_tmp2_ = sql_heavy_table_get_name (_tmp1_);
219
_tmp3_ = sql_heavy_escape_string (_tmp2_);
221
_tmp5_ = string_to_string (_tmp4_);
222
_tmp6_ = g_strdup_printf ("%i", indices[0]);
224
_tmp8_ = g_strconcat ("SELECT `ROWID` FROM `", _tmp5_, "` ORDER BY `ROWID` ASC LIMIT ", _tmp7_, ",1;", NULL);
226
_tmp10_ = sql_heavy_queryable_prepare (self->priv->queryable, _tmp9_, &_inner_error_);
232
if (_inner_error_ != NULL) {
233
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
234
goto __catch2_sql_heavy_error;
236
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
237
g_clear_error (&_inner_error_);
241
_tmp14_ = sql_heavy_query_execute (_tmp13_, NULL, &_inner_error_, NULL);
243
_g_object_unref0 (_tmp13_);
245
if (_inner_error_ != NULL) {
246
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
247
goto __catch2_sql_heavy_error;
249
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
250
g_clear_error (&_inner_error_);
253
_tmp16_ = sql_heavy_query_result_get_finished (res);
256
_g_object_unref0 (res);
262
_tmp17_ = sql_heavy_record_fetch_int ((SQLHeavyRecord*) res, 0, &_inner_error_);
264
if (_inner_error_ != NULL) {
265
_g_object_unref0 (res);
266
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
267
goto __catch2_sql_heavy_error;
269
_g_object_unref0 (res);
270
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
271
g_clear_error (&_inner_error_);
274
_iter.stamp = _tmp18_;
276
_g_object_unref0 (res);
281
_g_object_unref0 (res);
283
__catch2_sql_heavy_error:
287
_inner_error_ = NULL;
288
g_critical ("sqlheavy-gtk-model.vala:77: Unable to get row ID for iterator: %s", e->message);
297
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);
298
g_clear_error (&_inner_error_);
303
static gint sql_heavy_gtk_model_real_get_n_columns (GtkTreeModel* base) {
304
SQLHeavyGtkModel * self;
306
SQLHeavyTable* _tmp0_ = NULL;
308
self = (SQLHeavyGtkModel*) base;
309
_tmp0_ = sql_heavy_gtk_model_get_table (self);
310
_tmp1_ = sql_heavy_table_get_field_count (_tmp0_);
316
static GtkTreePath* sql_heavy_gtk_model_real_get_path (GtkTreeModel* base, GtkTreeIter* iter) {
317
SQLHeavyGtkModel * self;
318
GtkTreePath* result = NULL;
319
SQLHeavyTable* _tmp0_ = NULL;
320
const gchar* _tmp1_ = NULL;
321
gchar* _tmp2_ = NULL;
323
const gchar* _tmp4_ = NULL;
324
gchar* _tmp5_ = NULL;
326
SQLHeavyQuery* _tmp7_ = NULL;
327
SQLHeavyQuery* _tmp8_;
328
SQLHeavyQuery* _tmp9_;
329
SQLHeavyQuery* _tmp10_;
330
SQLHeavyQueryResult* _tmp11_ = NULL;
331
SQLHeavyQueryResult* _tmp12_;
332
SQLHeavyQueryResult* res;
335
GtkTreePath* _tmp15_ = NULL;
336
GError * _inner_error_ = NULL;
337
self = (SQLHeavyGtkModel*) base;
338
_tmp0_ = sql_heavy_gtk_model_get_table (self);
339
_tmp1_ = sql_heavy_table_get_name (_tmp0_);
340
_tmp2_ = sql_heavy_escape_string (_tmp1_);
342
_tmp4_ = string_to_string (_tmp3_);
343
_tmp5_ = g_strconcat ("SELECT COUNT(*) FROM `", _tmp4_, "` WHERE `ROWID` < :rid ORDER BY `ROWID` ASC LIMIT 1", NULL);
345
_tmp7_ = sql_heavy_queryable_prepare (self->priv->queryable, _tmp6_, &_inner_error_);
350
if (_inner_error_ != NULL) {
351
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
352
goto __catch3_sql_heavy_error;
354
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
355
g_clear_error (&_inner_error_);
359
_tmp11_ = sql_heavy_query_execute (_tmp10_, ":rid", &_inner_error_, G_TYPE_INT, (*iter).stamp, NULL);
361
_g_object_unref0 (_tmp10_);
363
if (_inner_error_ != NULL) {
364
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
365
goto __catch3_sql_heavy_error;
367
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
368
g_clear_error (&_inner_error_);
371
_tmp13_ = sql_heavy_record_fetch_int ((SQLHeavyRecord*) res, 0, &_inner_error_);
373
if (_inner_error_ != NULL) {
374
_g_object_unref0 (res);
375
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
376
goto __catch3_sql_heavy_error;
378
_g_object_unref0 (res);
379
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
380
g_clear_error (&_inner_error_);
383
_tmp15_ = gtk_tree_path_new_from_indices (_tmp14_, -1);
385
_g_object_unref0 (res);
387
_g_object_unref0 (res);
389
__catch3_sql_heavy_error:
393
_inner_error_ = NULL;
394
g_critical ("sqlheavy-gtk-model.vala:91: Unable to get path from iterator: %s", e->message);
395
result = (gpointer) NULL;
400
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);
401
g_clear_error (&_inner_error_);
406
static void sql_heavy_gtk_model_real_get_value (GtkTreeModel* base, GtkTreeIter* iter, gint column, GValue* value) {
407
SQLHeavyGtkModel * self;
409
SQLHeavyRow* _tmp0_ = NULL;
415
GError * _inner_error_ = NULL;
416
self = (SQLHeavyGtkModel*) base;
417
_tmp0_ = sql_heavy_gtk_model_get_row_from_iter (self, iter);
419
sql_heavy_record_fetch ((SQLHeavyRecord*) row, column - 1, &_tmp1_, &_inner_error_);
422
if (_inner_error_ != NULL) {
423
_g_object_unref0 (row);
424
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
425
goto __catch4_sql_heavy_error;
427
_g_object_unref0 (row);
428
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
429
g_clear_error (&_inner_error_);
432
G_IS_VALUE (&_value) ? (g_value_unset (&_value), NULL) : NULL;
434
_tmp4_ = G_VALUE_HOLDS (&_value, G_TYPE_POINTER);
438
g_value_init (&_tmp5_, G_TYPE_STRING);
440
G_IS_VALUE (&_value) ? (g_value_unset (&_value), NULL) : NULL;
443
_g_object_unref0 (row);
445
__catch4_sql_heavy_error:
449
_inner_error_ = NULL;
450
g_critical ("sqlheavy-gtk-model.vala:104: Unable to get value: %s", e->message);
454
if (_inner_error_ != NULL) {
455
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);
456
g_clear_error (&_inner_error_);
462
G_IS_VALUE (&_value) ? (g_value_unset (&_value), NULL) : NULL;
467
static gboolean sql_heavy_gtk_model_real_iter_children (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* parent) {
468
SQLHeavyGtkModel * self;
469
GtkTreeIter _iter = {0};
470
gboolean result = FALSE;
471
self = (SQLHeavyGtkModel*) base;
480
static gboolean sql_heavy_gtk_model_real_iter_has_child (GtkTreeModel* base, GtkTreeIter* iter) {
481
SQLHeavyGtkModel * self;
482
gboolean result = FALSE;
483
self = (SQLHeavyGtkModel*) base;
489
static gint sql_heavy_gtk_model_real_iter_n_children (GtkTreeModel* base, GtkTreeIter* iter) {
490
SQLHeavyGtkModel * self;
492
self = (SQLHeavyGtkModel*) base;
498
static gboolean sql_heavy_gtk_model_real_iter_next (GtkTreeModel* base, GtkTreeIter* iter) {
499
SQLHeavyGtkModel * self;
500
gboolean result = FALSE;
501
SQLHeavyTable* _tmp0_ = NULL;
502
const gchar* _tmp1_ = NULL;
503
gchar* _tmp2_ = NULL;
505
const gchar* _tmp4_ = NULL;
506
gchar* _tmp5_ = NULL;
508
gchar* _tmp7_ = NULL;
510
SQLHeavyQuery* _tmp9_ = NULL;
511
SQLHeavyQuery* _tmp10_;
512
SQLHeavyQuery* _tmp11_;
513
SQLHeavyQuery* _tmp12_;
514
SQLHeavyQueryResult* _tmp13_ = NULL;
515
SQLHeavyQueryResult* _tmp14_;
516
SQLHeavyQueryResult* res;
518
GError * _inner_error_ = NULL;
519
self = (SQLHeavyGtkModel*) base;
520
_tmp0_ = sql_heavy_gtk_model_get_table (self);
521
_tmp1_ = sql_heavy_table_get_name (_tmp0_);
522
_tmp2_ = sql_heavy_escape_string (_tmp1_);
524
_tmp4_ = string_to_string (_tmp3_);
525
_tmp5_ = g_strdup_printf ("%i", (*iter).stamp);
527
_tmp7_ = g_strconcat ("SELECT `ROWID` FROM `", _tmp4_, "` WHERE `ROWID` > ", _tmp6_, " ORDER BY `ROWID` ASC LIMIT 1", NULL);
529
_tmp9_ = sql_heavy_queryable_prepare (self->priv->queryable, _tmp8_, &_inner_error_);
535
if (_inner_error_ != NULL) {
536
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
537
goto __catch5_sql_heavy_error;
539
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
540
g_clear_error (&_inner_error_);
544
_tmp13_ = sql_heavy_query_execute (_tmp12_, NULL, &_inner_error_, NULL);
546
_g_object_unref0 (_tmp12_);
548
if (_inner_error_ != NULL) {
549
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
550
goto __catch5_sql_heavy_error;
552
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
553
g_clear_error (&_inner_error_);
556
_tmp15_ = sql_heavy_query_result_get_finished (res);
559
_g_object_unref0 (res);
564
_tmp16_ = sql_heavy_record_fetch_int ((SQLHeavyRecord*) res, 0, &_inner_error_);
566
if (_inner_error_ != NULL) {
567
_g_object_unref0 (res);
568
if (_inner_error_->domain == SQL_HEAVY_ERROR) {
569
goto __catch5_sql_heavy_error;
571
_g_object_unref0 (res);
572
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
573
g_clear_error (&_inner_error_);
576
(*iter).stamp = _tmp17_;
577
(*iter).user_data = NULL;
579
_g_object_unref0 (res);
582
_g_object_unref0 (res);
584
__catch5_sql_heavy_error:
588
_inner_error_ = NULL;
589
g_critical ("sqlheavy-gtk-model.vala:133: Unable to determine next row id: %s", e->message);
595
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);
596
g_clear_error (&_inner_error_);
601
static gboolean sql_heavy_gtk_model_real_iter_nth_child (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* parent, gint n) {
602
SQLHeavyGtkModel * self;
603
GtkTreeIter _iter = {0};
604
gboolean result = FALSE;
605
self = (SQLHeavyGtkModel*) base;
614
static gboolean sql_heavy_gtk_model_real_iter_parent (GtkTreeModel* base, GtkTreeIter* iter, GtkTreeIter* child) {
615
SQLHeavyGtkModel * self;
616
GtkTreeIter _iter = {0};
617
gboolean result = FALSE;
618
self = (SQLHeavyGtkModel*) base;
627
static void sql_heavy_gtk_model_real_ref_node (SQLHeavyGtkModel* self, GtkTreeIter* iter) {
628
g_return_if_fail (self != NULL);
629
if ((*iter).user_data != NULL) {
630
g_object_ref ((GObject*) SQL_HEAVY_ROW ((*iter).user_data));
635
void sql_heavy_gtk_model_ref_node (SQLHeavyGtkModel* self, GtkTreeIter* iter) {
636
SQL_HEAVY_GTK_MODEL_GET_CLASS (self)->ref_node (self, iter);
640
static void sql_heavy_gtk_model_real_unref_node (SQLHeavyGtkModel* self, GtkTreeIter* iter) {
641
g_return_if_fail (self != NULL);
642
if ((*iter).user_data != NULL) {
643
g_object_unref ((GObject*) SQL_HEAVY_ROW ((*iter).user_data));
648
void sql_heavy_gtk_model_unref_node (SQLHeavyGtkModel* self, GtkTreeIter* iter) {
649
SQL_HEAVY_GTK_MODEL_GET_CLASS (self)->unref_node (self, iter);
656
* @param table the table this model is based on
659
SQLHeavyGtkModel* sql_heavy_gtk_model_construct (GType object_type, SQLHeavyTable* table) {
660
SQLHeavyGtkModel * self = NULL;
661
g_return_val_if_fail (table != NULL, NULL);
662
self = (SQLHeavyGtkModel*) g_object_new (object_type, "table", table, NULL);
667
SQLHeavyGtkModel* sql_heavy_gtk_model_new (SQLHeavyTable* table) {
668
return sql_heavy_gtk_model_construct (SQL_HEAVY_GTK_TYPE_MODEL, table);
672
SQLHeavyTable* sql_heavy_gtk_model_get_table (SQLHeavyGtkModel* self) {
673
SQLHeavyTable* result;
674
g_return_val_if_fail (self != NULL, NULL);
675
result = self->priv->_table;
680
static void sql_heavy_gtk_model_set_table (SQLHeavyGtkModel* self, SQLHeavyTable* value) {
681
SQLHeavyTable* _tmp0_;
682
SQLHeavyTable* _tmp1_ = NULL;
683
SQLHeavyQueryable* _tmp2_ = NULL;
684
SQLHeavyQueryable* _tmp3_;
685
g_return_if_fail (self != NULL);
686
_tmp0_ = _g_object_ref0 (value);
687
_g_object_unref0 (self->priv->_table);
688
self->priv->_table = _tmp0_;
689
_tmp1_ = sql_heavy_gtk_model_get_table (self);
690
_tmp2_ = sql_heavy_table_get_queryable (_tmp1_);
691
_tmp3_ = _g_object_ref0 (_tmp2_);
692
_g_object_unref0 (self->priv->queryable);
693
self->priv->queryable = _tmp3_;
694
g_object_notify ((GObject *) self, "table");
698
static void sql_heavy_gtk_model_class_init (SQLHeavyGtkModelClass * klass) {
699
sql_heavy_gtk_model_parent_class = g_type_class_peek_parent (klass);
700
g_type_class_add_private (klass, sizeof (SQLHeavyGtkModelPrivate));
701
SQL_HEAVY_GTK_MODEL_CLASS (klass)->ref_node = sql_heavy_gtk_model_real_ref_node;
702
SQL_HEAVY_GTK_MODEL_CLASS (klass)->unref_node = sql_heavy_gtk_model_real_unref_node;
703
G_OBJECT_CLASS (klass)->get_property = _vala_sql_heavy_gtk_model_get_property;
704
G_OBJECT_CLASS (klass)->set_property = _vala_sql_heavy_gtk_model_set_property;
705
G_OBJECT_CLASS (klass)->finalize = sql_heavy_gtk_model_finalize;
707
* The table that this model is based on
709
g_object_class_install_property (G_OBJECT_CLASS (klass), SQL_HEAVY_GTK_MODEL_TABLE, g_param_spec_object ("table", "table", "table", SQL_HEAVY_TYPE_TABLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
713
static void sql_heavy_gtk_model_gtk_tree_model_interface_init (GtkTreeModelIface * iface) {
714
sql_heavy_gtk_model_gtk_tree_model_parent_iface = g_type_interface_peek_parent (iface);
715
iface->get_column_type = (GType (*)(GtkTreeModel* ,gint)) sql_heavy_gtk_model_real_get_column_type;
716
iface->get_flags = (GtkTreeModelFlags (*)(GtkTreeModel*)) sql_heavy_gtk_model_real_get_flags;
717
iface->get_iter = (gboolean (*)(GtkTreeModel* ,GtkTreeIter* ,GtkTreePath*)) sql_heavy_gtk_model_real_get_iter;
718
iface->get_n_columns = (gint (*)(GtkTreeModel*)) sql_heavy_gtk_model_real_get_n_columns;
719
iface->get_path = (GtkTreePath* (*)(GtkTreeModel* ,GtkTreeIter*)) sql_heavy_gtk_model_real_get_path;
720
iface->get_value = (void (*)(GtkTreeModel* ,GtkTreeIter* ,gint ,GValue*)) sql_heavy_gtk_model_real_get_value;
721
iface->iter_children = (gboolean (*)(GtkTreeModel* ,GtkTreeIter* ,GtkTreeIter*)) sql_heavy_gtk_model_real_iter_children;
722
iface->iter_has_child = (gboolean (*)(GtkTreeModel* ,GtkTreeIter*)) sql_heavy_gtk_model_real_iter_has_child;
723
iface->iter_n_children = (gint (*)(GtkTreeModel* ,GtkTreeIter*)) sql_heavy_gtk_model_real_iter_n_children;
724
iface->iter_next = (gboolean (*)(GtkTreeModel* ,GtkTreeIter*)) sql_heavy_gtk_model_real_iter_next;
725
iface->iter_nth_child = (gboolean (*)(GtkTreeModel* ,GtkTreeIter* ,GtkTreeIter* ,gint)) sql_heavy_gtk_model_real_iter_nth_child;
726
iface->iter_parent = (gboolean (*)(GtkTreeModel* ,GtkTreeIter* ,GtkTreeIter*)) sql_heavy_gtk_model_real_iter_parent;
727
iface->ref_node = (void (*)(GtkTreeModel* ,GtkTreeIter*)) sql_heavy_gtk_model_ref_node;
728
iface->unref_node = (void (*)(GtkTreeModel* ,GtkTreeIter*)) sql_heavy_gtk_model_unref_node;
732
static void sql_heavy_gtk_model_instance_init (SQLHeavyGtkModel * self) {
733
self->priv = SQL_HEAVY_GTK_MODEL_GET_PRIVATE (self);
734
self->priv->get_value_calls = 0;
735
self->priv->next_calls = 0;
739
static void sql_heavy_gtk_model_finalize (GObject* obj) {
740
SQLHeavyGtkModel * self;
741
self = SQL_HEAVY_GTK_MODEL (obj);
742
_g_object_unref0 (self->priv->_table);
743
_g_object_unref0 (self->priv->queryable);
744
G_OBJECT_CLASS (sql_heavy_gtk_model_parent_class)->finalize (obj);
749
* Gtk.TreeModel implementation
751
GType sql_heavy_gtk_model_get_type (void) {
752
static volatile gsize sql_heavy_gtk_model_type_id__volatile = 0;
753
if (g_once_init_enter (&sql_heavy_gtk_model_type_id__volatile)) {
754
static const GTypeInfo g_define_type_info = { sizeof (SQLHeavyGtkModelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sql_heavy_gtk_model_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SQLHeavyGtkModel), 0, (GInstanceInitFunc) sql_heavy_gtk_model_instance_init, NULL };
755
static const GInterfaceInfo gtk_tree_model_info = { (GInterfaceInitFunc) sql_heavy_gtk_model_gtk_tree_model_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
756
GType sql_heavy_gtk_model_type_id;
757
sql_heavy_gtk_model_type_id = g_type_register_static (G_TYPE_OBJECT, "SQLHeavyGtkModel", &g_define_type_info, 0);
758
g_type_add_interface_static (sql_heavy_gtk_model_type_id, GTK_TYPE_TREE_MODEL, >k_tree_model_info);
759
g_once_init_leave (&sql_heavy_gtk_model_type_id__volatile, sql_heavy_gtk_model_type_id);
761
return sql_heavy_gtk_model_type_id__volatile;
765
static void _vala_sql_heavy_gtk_model_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
766
SQLHeavyGtkModel * self;
767
self = SQL_HEAVY_GTK_MODEL (object);
768
switch (property_id) {
769
case SQL_HEAVY_GTK_MODEL_TABLE:
770
g_value_set_object (value, sql_heavy_gtk_model_get_table (self));
773
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
779
static void _vala_sql_heavy_gtk_model_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
780
SQLHeavyGtkModel * self;
781
self = SQL_HEAVY_GTK_MODEL (object);
782
switch (property_id) {
783
case SQL_HEAVY_GTK_MODEL_TABLE:
784
sql_heavy_gtk_model_set_table (self, g_value_get_object (value));
787
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);