[tepl] AbstractFactory: add create_metadata_manager_file()
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl] AbstractFactory: add create_metadata_manager_file()
- Date: Sun, 19 Apr 2020 13:19:22 +0000 (UTC)
commit 85c9141a0c8419eee0cab5652257ff28f9af007c
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Apr 19 15:13:30 2020 +0200
AbstractFactory: add create_metadata_manager_file()
docs/reference/tepl-sections.txt | 1 +
tepl/tepl-abstract-factory.c | 27 +++++++++++++++++++++++++++
tepl/tepl-abstract-factory.h | 20 ++++++++++++++------
3 files changed, 42 insertions(+), 6 deletions(-)
---
diff --git a/docs/reference/tepl-sections.txt b/docs/reference/tepl-sections.txt
index 77e28f6..dd62bad 100644
--- a/docs/reference/tepl-sections.txt
+++ b/docs/reference/tepl-sections.txt
@@ -19,6 +19,7 @@ tepl_abstract_factory_create_main_window
tepl_abstract_factory_create_tab
tepl_abstract_factory_create_tab_label
tepl_abstract_factory_create_file
+tepl_abstract_factory_create_metadata_manager_file
<SUBSECTION Standard>
TEPL_ABSTRACT_FACTORY
TEPL_ABSTRACT_FACTORY_CLASS
diff --git a/tepl/tepl-abstract-factory.c b/tepl/tepl-abstract-factory.c
index 08007a1..f135c1c 100644
--- a/tepl/tepl-abstract-factory.c
+++ b/tepl/tepl-abstract-factory.c
@@ -245,3 +245,30 @@ tepl_abstract_factory_create_file (TeplAbstractFactory *factory)
return TEPL_ABSTRACT_FACTORY_GET_CLASS (factory)->create_file (factory);
}
+
+/**
+ * tepl_abstract_factory_create_metadata_manager_file:
+ * @factory: the #TeplAbstractFactory.
+ *
+ * Creates a new #GFile that is then intended to be used as an argument to
+ * tepl_metadata_manager_load_from_disk() and
+ * tepl_metadata_manager_save_to_disk(). This function just creates the #GFile
+ * object, it doesn't call any #TeplMetadataManager function.
+ *
+ * Returns: (transfer full) (nullable): a new #GFile, or %NULL if the vfunc is
+ * not implemented.
+ * Since: 5.0
+ */
+GFile *
+tepl_abstract_factory_create_metadata_manager_file (TeplAbstractFactory *factory)
+{
+ g_return_val_if_fail (TEPL_IS_ABSTRACT_FACTORY (factory), NULL);
+
+ if (TEPL_ABSTRACT_FACTORY_GET_CLASS (factory)->create_metadata_manager_file != NULL)
+ {
+ return TEPL_ABSTRACT_FACTORY_GET_CLASS (factory)->create_metadata_manager_file (factory);
+ }
+
+ g_warning ("The TeplAbstractFactory::create_metadata_manager_file vfunc is not implemented.");
+ return NULL;
+}
diff --git a/tepl/tepl-abstract-factory.h b/tepl/tepl-abstract-factory.h
index 87a6623..d58178f 100644
--- a/tepl/tepl-abstract-factory.h
+++ b/tepl/tepl-abstract-factory.h
@@ -59,20 +59,25 @@ struct _TeplAbstractFactory
* @create_file: Virtual function pointer for
* tepl_abstract_factory_create_file(). By default the #TeplFile is created
* with tepl_file_new().
+ * @create_metadata_manager_file: Virtual function pointer for
+ * tepl_abstract_factory_create_metadata_manager_file(). It is not implemented
+ * by default.
*/
struct _TeplAbstractFactoryClass
{
GObjectClass parent_class;
- GtkApplicationWindow * (* create_main_window) (TeplAbstractFactory *factory,
- GtkApplication *app);
+ GtkApplicationWindow * (* create_main_window) (TeplAbstractFactory *factory,
+ GtkApplication *app);
+
+ TeplTab * (* create_tab) (TeplAbstractFactory *factory);
- TeplTab * (* create_tab) (TeplAbstractFactory *factory);
+ GtkWidget * (* create_tab_label) (TeplAbstractFactory *factory,
+ TeplTab *tab);
- GtkWidget * (* create_tab_label) (TeplAbstractFactory *factory,
- TeplTab *tab);
+ TeplFile * (* create_file) (TeplAbstractFactory *factory);
- TeplFile * (* create_file) (TeplAbstractFactory *factory);
+ GFile * (* create_metadata_manager_file) (TeplAbstractFactory *factory);
/*< private >*/
gpointer padding[12];
@@ -94,6 +99,9 @@ GtkWidget * tepl_abstract_factory_create_tab_label (TeplAbstractFactory
*facto
TeplFile * tepl_abstract_factory_create_file (TeplAbstractFactory *factory);
+GFile * tepl_abstract_factory_create_metadata_manager_file
+ (TeplAbstractFactory *factory);
+
G_GNUC_INTERNAL
void _tepl_abstract_factory_unref_singleton (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]