gimp/libgimp/gimpprocedureconfig-private.h
Jehan 12ad579843 libgimp: fix disabling various metadata export per Preferences.
Preferences > Image Import and Export tab has various Export Policies,
which are mostly for safety reasons. One may want to default at never
exporting specific metadata. This got broken and anyway the logic was
not good enough.

Now these policies are followed in interactive mode, unless an export
has already happened for this specific export plug-in on this specific
file (in this case, we reuse the last values). We don't want settings to
unexpectedly change in such a case.

In last-vals and non-interactive run-mode though, we don't follow the
Preferences policies, since in the former case, we want to reuse exactly
the same settings (e.g. we don't want an Export discarding metadata
which explicitly checked in the Export As) and in the latter case, it is
the developer's responsibility to set up expected options.
2024-09-29 12:27:50 +02:00

64 lines
3.4 KiB
C

/* LIBGIMP - The GIMP Library
* Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
*
* gimpprocedureconfig-private.h
* Copyright (C) 2019 Michael Natterer <mitch@gimp.org>
*
* This library is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <https://www.gnu.org/licenses/>.
*/
#ifndef __GIMP_PROCEDURE_CONFIG_PRIVATE_H__
#define __GIMP_PROCEDURE_CONFIG_PRIVATE_H__
G_BEGIN_DECLS
G_GNUC_INTERNAL void _gimp_procedure_config_get_values (GimpProcedureConfig *config,
GimpValueArray *values);
G_GNUC_INTERNAL void _gimp_procedure_config_begin_run (GimpProcedureConfig *config,
GimpImage *image,
GimpRunMode run_mode,
const GimpValueArray *args,
gboolean *editable_properties);
G_GNUC_INTERNAL void _gimp_procedure_config_end_run (GimpProcedureConfig *config,
GimpPDBStatusType status);
G_GNUC_INTERNAL GimpMetadata * _gimp_procedure_config_begin_export (GimpProcedureConfig *config,
GimpImage *original_image,
GimpRunMode run_mode,
const GimpValueArray *args,
const gchar *mime_type);
G_GNUC_INTERNAL void _gimp_procedure_config_end_export (GimpProcedureConfig *config,
GimpImage *exported_image,
GFile *file,
GimpPDBStatusType status);
/* These 3 functions are not marked internal because they are used in libgimpui.
* The headers is not installed so these functions should be considered not
* existing. Yet they are still exported in the library.
*/
gboolean gimp_procedure_config_has_default (GimpProcedureConfig *config);
gboolean gimp_procedure_config_load_default (GimpProcedureConfig *config,
GError **error);
gboolean gimp_procedure_config_save_default (GimpProcedureConfig *config,
GError **error);
G_END_DECLS
#endif /* __GIMP_PROCEDURE_CONFIG_PRIVATE_H__ */