aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-07-02 01:21:22 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-07-02 22:34:11 +0800
commit67df30b17e196e0241cac79627b6e7ec79581438 (patch)
tree8c4e6106e4c3496ffc3a4da146c42650a4cc75c5
parent8b04ed82b34235f123d75d878806de2db3a5a82d (diff)
downloadgsoc2013-evolution-67df30b17e196e0241cac79627b6e7ec79581438.tar
gsoc2013-evolution-67df30b17e196e0241cac79627b6e7ec79581438.tar.gz
gsoc2013-evolution-67df30b17e196e0241cac79627b6e7ec79581438.tar.bz2
gsoc2013-evolution-67df30b17e196e0241cac79627b6e7ec79581438.tar.lz
gsoc2013-evolution-67df30b17e196e0241cac79627b6e7ec79581438.tar.xz
gsoc2013-evolution-67df30b17e196e0241cac79627b6e7ec79581438.tar.zst
gsoc2013-evolution-67df30b17e196e0241cac79627b6e7ec79581438.zip
e_tree_new: Take an ETableSpecification parameter.
Creating an ETableSpecification is failable, so it's now up to the caller to do that and handle errors before calling e_tree_new().
-rw-r--r--e-util/e-tree.c38
-rw-r--r--e-util/e-tree.h4
2 files changed, 15 insertions, 27 deletions
diff --git a/e-util/e-tree.c b/e-util/e-tree.c
index 501a4ce967..5cea79cf16 100644
--- a/e-util/e-tree.c
+++ b/e-util/e-tree.c
@@ -1631,7 +1631,7 @@ et_real_construct (ETree *tree,
* @tree: The newly created #ETree object.
* @etm: The model for this table.
* @ete: An optional #ETableExtras. (%NULL is valid.)
- * @spec_str: The spec.
+ * @specification: an #ETableSpecification
*
* This is the internal implementation of e_tree_new() for use by
* subclasses or language bindings. See e_tree_new() for details.
@@ -1642,31 +1642,20 @@ gboolean
e_tree_construct (ETree *tree,
ETreeModel *etm,
ETableExtras *ete,
- const gchar *spec_str)
+ ETableSpecification *specification)
{
- ETableSpecification *specification;
ETableState *state;
g_return_val_if_fail (E_IS_TREE (tree), FALSE);
g_return_val_if_fail (E_IS_TREE_MODEL (etm), FALSE);
g_return_val_if_fail (ete == NULL || E_IS_TABLE_EXTRAS (ete), FALSE);
- g_return_val_if_fail (spec_str != NULL, FALSE);
-
- specification = e_table_specification_new ();
- if (!e_table_specification_load_from_string (specification, spec_str)) {
- g_object_unref (specification);
- return FALSE;
- }
+ g_return_val_if_fail (E_IS_TABLE_SPECIFICATION (specification), FALSE);
state = g_object_ref (specification->state);
- if (!et_real_construct (tree, etm, ete, specification, state)) {
- g_object_unref (specification);
- g_object_unref (state);
- return FALSE;
- }
+ et_real_construct (tree, etm, ete, specification, state);
- tree->priv->spec = specification;
+ tree->priv->spec = g_object_ref (specification);
tree->priv->spec->allow_grouping = FALSE;
g_object_unref (state);
@@ -1727,7 +1716,7 @@ e_tree_construct_from_spec_file (ETree *tree,
* e_tree_new:
* @etm: The model for this tree
* @ete: An optional #ETableExtras (%NULL is valid.)
- * @spec_str: The spec
+ * @specification: an #ETableSpecification
*
* This function creates an #ETree from the given parameters. The
* #ETreeModel is a tree model to be represented. The #ETableExtras
@@ -1735,10 +1724,9 @@ e_tree_construct_from_spec_file (ETree *tree,
* used when interpreting the spec. If you pass in %NULL it uses the
* default #ETableExtras. (See e_table_extras_new()).
*
- * @spec is the specification of the set of viewable columns and the
- * default sorting state and such. @state is an optional string
- * specifying the current sorting state and such. If @state is NULL,
- * then the default state from the spec will be used.
+ * @specification is the specification of the set of viewable columns and the
+ * default sorting state and such. @state is an optional string specifying
+ * the current sorting state and such.
*
* Return value:
* The newly created #ETree or %NULL if there's an error.
@@ -1746,22 +1734,22 @@ e_tree_construct_from_spec_file (ETree *tree,
GtkWidget *
e_tree_new (ETreeModel *etm,
ETableExtras *ete,
- const gchar *spec_str)
+ ETableSpecification *specification)
{
ETree *tree;
g_return_val_if_fail (E_IS_TREE_MODEL (etm), NULL);
g_return_val_if_fail (ete == NULL || E_IS_TABLE_EXTRAS (ete), NULL);
- g_return_val_if_fail (spec_str != NULL, NULL);
+ g_return_val_if_fail (E_IS_TABLE_SPECIFICATION (specification), NULL);
tree = g_object_new (E_TYPE_TREE, NULL);
- if (!e_tree_construct (tree, etm, ete, spec_str)) {
+ if (!e_tree_construct (tree, etm, ete, specification)) {
g_object_unref (tree);
return NULL;
}
- return (GtkWidget *) tree;
+ return GTK_WIDGET (tree);
}
/**
diff --git a/e-util/e-tree.h b/e-util/e-tree.h
index 99dcfee762..99725df3aa 100644
--- a/e-util/e-tree.h
+++ b/e-util/e-tree.h
@@ -175,10 +175,10 @@ GType e_tree_get_type (void) G_GNUC_CONST;
gboolean e_tree_construct (ETree *tree,
ETreeModel *etm,
ETableExtras *ete,
- const gchar *spec_str);
+ ETableSpecification *specification);
GtkWidget * e_tree_new (ETreeModel *etm,
ETableExtras *ete,
- const gchar *spec_str);
+ ETableSpecification *specification);
/* Create an ETree using files. */
gboolean e_tree_construct_from_spec_file (ETree *tree,