background: Add "needs-download" property
Rather than relying on source-url being NULL, which would mean we can't then save it.
This commit is contained in:
parent
5864e7866f
commit
f77d23f35a
2 changed files with 34 additions and 1 deletions
|
@ -50,6 +50,7 @@ struct CcBackgroundItemPrivate
|
||||||
char *source_url; /* Used by the Flickr source */
|
char *source_url; /* Used by the Flickr source */
|
||||||
char *source_xml; /* Used by the Wallpapers source */
|
char *source_xml; /* Used by the Wallpapers source */
|
||||||
gboolean is_deleted;
|
gboolean is_deleted;
|
||||||
|
gboolean needs_download;
|
||||||
CcBackgroundItemFlags flags;
|
CcBackgroundItemFlags flags;
|
||||||
|
|
||||||
/* internal */
|
/* internal */
|
||||||
|
@ -71,7 +72,8 @@ enum {
|
||||||
PROP_SOURCE_URL,
|
PROP_SOURCE_URL,
|
||||||
PROP_SOURCE_XML,
|
PROP_SOURCE_XML,
|
||||||
PROP_FLAGS,
|
PROP_FLAGS,
|
||||||
PROP_SIZE
|
PROP_SIZE,
|
||||||
|
PROP_NEEDS_DOWNLOAD
|
||||||
};
|
};
|
||||||
|
|
||||||
static void cc_background_item_class_init (CcBackgroundItemClass *klass);
|
static void cc_background_item_class_init (CcBackgroundItemClass *klass);
|
||||||
|
@ -462,6 +464,21 @@ cc_background_item_get_size (CcBackgroundItem *item)
|
||||||
return item->priv->size;
|
return item->priv->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_set_needs_download (CcBackgroundItem *item,
|
||||||
|
gboolean value)
|
||||||
|
{
|
||||||
|
item->priv->needs_download = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
cc_background_item_get_needs_download (CcBackgroundItem *item)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (CC_IS_BACKGROUND_ITEM (item), 0);
|
||||||
|
|
||||||
|
return item->priv->needs_download;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cc_background_item_set_property (GObject *object,
|
cc_background_item_set_property (GObject *object,
|
||||||
guint prop_id,
|
guint prop_id,
|
||||||
|
@ -503,6 +520,9 @@ cc_background_item_set_property (GObject *object,
|
||||||
case PROP_FLAGS:
|
case PROP_FLAGS:
|
||||||
_set_flags (self, g_value_get_flags (value));
|
_set_flags (self, g_value_get_flags (value));
|
||||||
break;
|
break;
|
||||||
|
case PROP_NEEDS_DOWNLOAD:
|
||||||
|
_set_needs_download (self, g_value_get_boolean (value));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -553,6 +573,9 @@ cc_background_item_get_property (GObject *object,
|
||||||
case PROP_SIZE:
|
case PROP_SIZE:
|
||||||
g_value_set_string (value, self->priv->size);
|
g_value_set_string (value, self->priv->size);
|
||||||
break;
|
break;
|
||||||
|
case PROP_NEEDS_DOWNLOAD:
|
||||||
|
g_value_set_boolean (value, self->priv->needs_download);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -670,6 +693,14 @@ cc_background_item_class_init (CcBackgroundItemClass *klass)
|
||||||
NULL,
|
NULL,
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class,
|
||||||
|
PROP_NEEDS_DOWNLOAD,
|
||||||
|
g_param_spec_boolean ("needs-download",
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
TRUE,
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
|
|
||||||
g_type_class_add_private (klass, sizeof (CcBackgroundItemPrivate));
|
g_type_class_add_private (klass, sizeof (CcBackgroundItemPrivate));
|
||||||
}
|
}
|
||||||
|
@ -685,6 +716,7 @@ cc_background_item_init (CcBackgroundItem *item)
|
||||||
item->priv->placement = G_DESKTOP_BACKGROUND_STYLE_SCALED;
|
item->priv->placement = G_DESKTOP_BACKGROUND_STYLE_SCALED;
|
||||||
item->priv->primary_color = g_strdup ("#000000000000");
|
item->priv->primary_color = g_strdup ("#000000000000");
|
||||||
item->priv->secondary_color = g_strdup ("#000000000000");
|
item->priv->secondary_color = g_strdup ("#000000000000");
|
||||||
|
item->priv->needs_download = TRUE;
|
||||||
item->priv->flags = 0;
|
item->priv->flags = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,6 +91,7 @@ const char * cc_background_item_get_pcolor (CcBackgroundItem *i
|
||||||
const char * cc_background_item_get_scolor (CcBackgroundItem *item);
|
const char * cc_background_item_get_scolor (CcBackgroundItem *item);
|
||||||
const char * cc_background_item_get_name (CcBackgroundItem *item);
|
const char * cc_background_item_get_name (CcBackgroundItem *item);
|
||||||
const char * cc_background_item_get_size (CcBackgroundItem *item);
|
const char * cc_background_item_get_size (CcBackgroundItem *item);
|
||||||
|
gboolean cc_background_item_get_needs_download (CcBackgroundItem *item);
|
||||||
|
|
||||||
gboolean cc_background_item_compare (CcBackgroundItem *saved,
|
gboolean cc_background_item_compare (CcBackgroundItem *saved,
|
||||||
CcBackgroundItem *configured);
|
CcBackgroundItem *configured);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue