Skip to content
Commits on Source (3)
......@@ -107,6 +107,10 @@ Fellype do Nascimento <fellypao@yahoo.com.br>
Brazilian Portugese.
Jeong Jiseong <stopstar@gist.ac.kr>
Korean.
Julian Hofer <julian.hofer@protonmail.com>
German.
Sabrina Meindlhumer
German.
=== Copies ===
......
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -96,13 +96,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/gwy-cc-options.m4 \
$(top_srcdir)/m4/gwy-enable.m4 $(top_srcdir)/m4/gwy-math.m4 \
$(top_srcdir)/m4/gwy-python.m4 $(top_srcdir)/m4/gwy-version.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/configure.ac
$(top_srcdir)/m4/gwy-openmp.m4 $(top_srcdir)/m4/gwy-python.m4 \
$(top_srcdir)/m4/gwy-version.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
......@@ -176,7 +176,7 @@ am__recursive_targets = \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir dist dist-all distcheck
cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
$(LISP)config.h.in
# Read a list of newline-separated strings from the standard input,
......@@ -354,8 +354,10 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MINIZIP_CFLAGS = @MINIZIP_CFLAGS@
MINIZIP_LIBS = @MINIZIP_LIBS@
MINIZIP1_CFLAGS = @MINIZIP1_CFLAGS@
MINIZIP1_LIBS = @MINIZIP1_LIBS@
MINIZIP2_CFLAGS = @MINIZIP2_CFLAGS@
MINIZIP2_LIBS = @MINIZIP2_LIBS@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
......@@ -365,6 +367,7 @@ NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENMP_CFLAGS = @OPENMP_CFLAGS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
......@@ -388,11 +391,13 @@ PYGTK_CFLAGS = @PYGTK_CFLAGS@
PYGTK_CODEGENDIR = @PYGTK_CODEGENDIR@
PYGTK_LIBS = @PYGTK_LIBS@
PYTHON = @PYTHON@
PYTHON_CFLAGS = @PYTHON_CFLAGS@
PYTHON_CONFIG = @PYTHON_CONFIG@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_EXTRA_CFLAGS = @PYTHON_EXTRA_CFLAGS@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
PYTHON_LIBS = @PYTHON_LIBS@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
PYTHON_PREFIX = @PYTHON_PREFIX@
PYTHON_VERSION = @PYTHON_VERSION@
......@@ -539,8 +544,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
......@@ -705,7 +710,10 @@ distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@case `sed 15q $(srcdir)/NEWS` in \
*"$(VERSION)"*) : ;; \
*) \
......
2.54 (2019-08-27)
Application:
- Remote control: When Gwyddion is given files to open and is not run from
terminal, it behaves as if --remote-new was the default to make setting up
file associations easier.
- Menus: New submenu Measure Features was added to Data Process and several
functions moved there.
- Toolbox: A critical warning upon keypress when Gwyddion starts with the Tools
part of the toolbox collapsed was fixed.
- Toolbox: About dialogue shows correct build date in non-English locales for
builds directly from svn.
- Command line: Option --version prints build/release date in parentheses and
adds +SVN for builds directly from svn, similar as in the About dialogue.
- Dependencies: Support for minizip 2.x as ZIP file handling library was added
and we no longer try to use minizip 2.x in 1.x compatibility mode (broken).
The ZIP library to use can be controlled by --with-zip= configure option.
- Translations updated: Czech, French, German, Russian.
Libraries:
- libgwyddion: Use of unitialised memory on Mac when constructing data paths,
causing Gwyddion not to find its data, was fixed.
- libgwyddion: Deadlock when more than two GwyNLFitter objects exist
simultaneously was fixed (introduced in 2.53).
- libgwyddion: GwyNLFitter initial residuum calculation in approximately
geometric fits was corrected, fixing their occasional instability. Possible
inconsistency in returned best rss and best parameters was fixed.
- libgwyddion: Memory leak in gwy_fprintf() in MS Windows was fixed.
- libgwyddion: GwyResults function for formatting table rows with mixed value
types was added. Formatted error no longer persists after a value with error
is set to N.A.
- libgwyprocess: 2D FFT functions ignoring windowing and levelling arguments
(by using original GwyDataFields for FFT) were fixed.
- libgwyprocess: Slighty wrong row-wise PSDF output GwyDataLine real size
(usually by factor 1+2/N) was corrected.
- libgwyprocess: Sign convention of raw C2R GwyDataField transform was fixed.
- libgwyprocess: An assertion possibly failing in gwy_spline_sample_uniformly()
was corrected.
- libgwyprocess: A plain FFT-based data field convolution function was added.
- libgwyprocess: New Gaussian step filter function was added.
- libgwyprocess: GwyDataLine ACF and HHCF functions set output units correctly
and were sped up using FFT.
- libgwyprocess: Mirror extension for GwyDataField, broken in 2.53, was fixed.
- libgwyprocess: MFM perpendicular stray field calculation function with
cantilever tilt correction was added.
- libgwyprocess: Extra factor √π in GwyShapeFitPreset step fitting functions
parameter h was correcred.
- libgwyprocess: Fixed gwy_fft_simple() possibly overwriting input arrays.
- libgwyprocess: Possible crash in multithreaded tip blind estimation was
fixed.
- libgwydgets: Gwy3DView supports export of pixbufs with sort of transparency.
- libgwydgets: GwyDataView can take keyboard focus.
- libgwyapp: Rectangular selection width and height displayed by GwyPlainTool
were corrected; 2.52 and 2.53 showed the opposite corner coordinates instead.
- libgwyapp: Support for transparent PNG export of 3D view was added.
- libgwyapp: Support for extra widget in wait dialogues was added.
- libgwyapp: Workaround was added for GwyDataChooser updates sometimes
producing a Critical warning ‘assertion 'left_attach < right_attach' failed’.
Modules:
- Wrap value (new): Rewraps values periodic in z to a different split point.
- Fit terraces (new): Fits step height from terrace structure measurement.
- Graph terraces (new): Fits step height from terrace structure measurement.
- Graph statistical functions (new): One-dimensional statistics from curves.
- Olymputs OIR (new): Imports of OIR and POIR files (experimental).
- Gaussian step (new): Step detection by convolution with a Gaussian step.
- Zero crossing (new): Split from Edge to a separate module.
- Corning CSV (new): Imports Corning Tropel UltraSort exported CSV data.
- Annealing synthesis (new): Generates images by simulated annealing of a
two- or three-component lattice gas model.
- Coupled PDE synthesis (new): Generates images using coupled non-linear
partial differential equations.
- Radial smoothing (new): Radially averages image around its center by
smoothing in polar coordinates.
- Displacement field (new): Distorts scan lines or images in plane using either
a generated random displacement field or another image.
- Nanonis: Import of incomplete scans was corrected.
- Omicron Matrix: Support for volume spectroscopy data was added. Data with
two ‘--’ in the file name are imported correctly.
- Grain correlations: Each grain quantity can be calculated from a different
image.
- Transfer function (PSF) guess: Zoom was removed; instead the transfer
function can be cut to arbitrary size.
- Anasys XML: Support for compressed files (AXZ) was added, also no longer
creates empty spectra sets and imports all spectra channels.
- Area function: A specific range can be now selected.
- NMM file: Alignment of profiles to X axis is optional. Rotation of
everything by 180 degrees was corrected.
- Volume summarize planes: Output graph units are set correctly. Selected
target graph is actually remembered to next invocation.
- Nanoscope: Operating mode detection (image/force/force volume) was improved.
- Row/Column statistics tool: Useless interpolation option was removed.
- Convolve: Kernel size can be up to image size when output size is not ‘Cut to
interior’.
- Deconvolve: Added L-curve based search for optimium regularization parameter.
- Domain synthesis: Was sped up using OpenMP, but the same seed now produces
a different image than in previous versions.
- Domain, Diffusion, Ballistic deposition and Columnar synthesis: Wait
dialogues show progressive preview (if enabled).
- Cross profile tool: Curve doubling in vertical mode was corrected. Wrong
vertical selection in images with non-square pixels was corrected.
- 2D ACF, 2D PSDF: Profile graph always has at least some minimum height.
- Mark by Segmentation: Curvature contribution broken for non-square images
was fixed.
- Radial profile tool: Automatic profile centre refinement method was improved.
- Layers: Selections can be modified using keyboard if the data view has
keyboard focus.
- MFM Perpendicular Field: Cantilever angle correction was added.
- Pattern synthesis: Amphitheatre pattern was added, generating systems of
concentric terraces.
- Relate: Wrong displayed units of some parameters were corrected.
- Particle synthesis: Revise parameter is no longer ignored.
- Alicona: Import of depth images broken with GCC's fast-math was corrected.
- Pixmap: WebP support was added. Selected mapping type is mostly preserved
in next invocation, unless the channel is unavailable.
- Image export: White and Black buttons also display white and black swatches.
Other:
- OpenMP: Workaround for GCC 9 compilation failure caused by incompatible
changes in OpenMP specs was added.
- OpenMP: Gwyddion links with OpenMP-enabled FFTW if it is found.
- Appdata: Appdata file was added.
2.53 (2019-02-28)
Application:
- Command line: Option --debug-objects is accepted but has no effect any more.
- Command line: New option --new-instance runs a new instance unconditionally
(currently only useful for overriding preceding options).
- Translations updated: Czech, French, Russian.
Libraries:
- libgwyddion: Interface for controlling the use of OpenMP in data processing
functions were added.
- libgwyddion: Broken GwyResults parenthesisation of values with errors in
Colon style was corrected.
- libgwyddion: Setting values to N.A. in GwyResults invalidates formatted
results the same way as setting them to a valid number.
- libgwyddion: Integer power function gwy_powi() was added.
- libgwyddion, libgwyprocess: Various local static data were removed or
guarded by locks to improve thread safety.
- libgwyprocess: Possibly incorrect output of
gwy_data_field_area_grains_tgnd_range() when min and/or max was inside the
value range was fixed.
- libgwyprocess: Function for finding maximum-area inscribed rectangles into
grains was added.
- libgwyprocess: Odd area and width values for small peaks calculated with zero
background were corrected in GwyPeaks.
- libgwyprocess: gwy_data_field_area_filter_kth_rank() not invalidating cached
quantities of the field was corrected.
- libgwyprocess: Trimmed mean filter function was added.
- libgwyprocess: Plane, One and double-sided step, Cone and Pyramid (3-sided)
fitting shapes were added.
- libgwyprocess: gwy_data_field_get_autorange() possible crash on data fields
with strange data was fixed.
- libgwydgets: GwyAdjustBars scroll at least by one step upon scroll events
when snapping.
- libgwyapp: Helpers for filling graphs and curves in GwyResults were added.
Modules:
- Relate (new): Finds a linear relation between two images.
- Frequency split (new): Splits image into high and low frequency components.
- Radial profile tool (new): Separate tool for angularly averaged profiles.
- Cross profile tool (new): Reading of scan lines or columns.
- Cross layer (new): Simple vector layer for selection of horizontal, vertical
or both lines.
- Facet measurement (new): Alternative facet measurement tool, focused more
on providing a defined output than playing with the facets.
- K-th rank filter (new): General k-th rank image filter.
- Trimmed mean (new): Trimmed mean filter and/or background removal.
- XYZ operations (new): Simple operations with XYZ data, currently merging.
- Profile tool: Radial profiles were moved to a new separate tool.
- Correlation search: Inverted meaning of threshold value was corrected.
- Rawfile: Reading of user-defined data of sizes not multiples of 8 bits was
corrected. User-defined data item size can be up to 56 bits now.
- Dektak VCA: Import of files with matrix data type 69 was implemented. Images
are shown with physically aspect ratio by default.
- HDF4 file: PSI files with binary header lengths shorter than 202 bytes should
be also importable now.
- MetroPro: Crash upon reading the header but failing to read data was fixed.
- Read value tool: A zoomed view of neigbourhood of selected point is shown.
Units are correctly updated when image units change. Curvature values are
cleared when no image is active.
- Spot remove tool: The marked area can also be elliptic.
- Spot remove and Read value tools: Maximum area size was slightly increased.
- Spot remove and Grain remove tools: More efficient Laplace interpolation
function is used. A fractal-Laplace blend interpolation method was added.
- Find graph peaks: Option to invert data and find valleys instead was added.
- Grain Statistics: Functions Select Inscribed Rectangles and Select Bounding
Boxes were added.
- Facet Analysis: Reset Rotation button was added to rotation controls.
- Graph Statistics: Wrong units of variation were corrected. Parameter table
has standard export controls now.
- Arithmetic: No longer produces NaNs and infinities; they are masked and
replaced with a fixed filler value or Laplace interpolation.
- Calibration, Volume calibration: No longer gets stuck in an infinite loop if
negative value range calibration factor was used. Zero data value range
remains zero instead of producing NaNs.
- Stitch: Only image with compatible units are offered and units of the result
are set correctly.
Other:
- OpenMP: Gwyddion can be built with OpenMP parallelisation support and does so
if OpenMP at least 3.1 is available. Libraries use single-thread processing
by default; OpenMP must be switched on explicitly. Gwyddion, the program,
does so.
- OSX build: Failure due to the wrong #include in mac_integration.c was fixed.
2.52 (2018-11-14)
Application:
- Translations updated: Czech, French, Russian.
......
============================================================================
Unimplemented stuff:
- libprocess/correlation.c: @window_width and @window_height are unused in
gwy_data_field_crosscorrelate() and gwy_data_field_crosscorrelate_iteration()
============================================================================
Release checklist:
Release checklist.
1. Keeping things up to date:
- make sure global library headers (libfoo.h) include all other public
headers
- make sure modules/pygwy/Makefile.am includes all relevant header files in
PYGWY_H_FILES
- update library versions, if something has changed
- run utils/update-api-indices.py to index the new symbols
- update user guide module map
2. Setting version number:
- update library versions, if something has changed
- update version in configure.ac
- update version in gwyddion-night-build
- must build on Linux from svn and tarballs
- must cross-build for MS Windows
- update user guide module map
- update version and date in data/net.gwyddion.Gwyddion.appdata.xml by running
./utils/updateappdataversion.sh
3. Metadata sync and sanity:
- generate on-line module list (run ./make-module-list in utils, may need
manual filtering of non-released modules)
docbase=$HOME/Projects/Gwyddion/gwyddion/devel-docs ./gendoc.sh
- check translations, may require actually running Gwyddion in all locales
- update translations (make update-po in po; remember to commit and tag the
really final versions, making dists in general updates po again)
- make sure global library headers (libfoo.h) include all other public
headers
- check full rebuild
disabled=update_version ./utils/gwyddion-night-build
- check and update NEWS, set release data, generate the HTML version
./utils/gen-news.py <NEWS
- generate on-line module list (run ./make-module-list in utils, may need
manual filtering of non-released modules)
- update contributors page using ./utils/gen-authors.py AUTHORS web
- update the list of supported file formats in the user guide (it has a
make rule in data/)
- generate stable API docs for gwyddion.net (using gwyddion.net-doc-build SVN
module) and upload them
docbase=$HOME/Projects/Gwyddion/gwyddion/devel-docs ./gendoc.sh
4. Checking the tarballs:
- must build on Linux from svn and tarballs
- check full rebuild
disabled=update_version ./utils/gwyddion-night-build
- must cross-build for MS Windows
5. Making and tagging the release:
- update translations (make update-po in po; remember to commit and tag the
really final versions, making dists in general updates po again)
- tag SVN:
svn copy svn+ssh://yeti-dn@svn.code.sf.net/p/gwyddion/code/trunk/gwyddion svn+ssh://yeti-dn@svn.code.sf.net/p/gwyddion/code/tags/gwyddion-2.50
- build and upload packages
- sign packages and upload signatures
gpg2 -u yeti@gwyddion.net -b gwyddion-2.50.tar.gz
- update gwyddion main page
- publish files at SourceForge
rsync --progress -e ssh gwyddion-2.50.tar.xz yeti-dn@frs.sourceforge.net:/home/frs/project/gwyddion/gwyddion/2.50/
- README.txt with release info should be uploaded from web browser; does not
work well with rsync
6. Announcing the release:
- update gwyddion main page, version statistics, etc.
- publish project NEWS at Sourceforge in the ‘News’ blog
- publish project on Freshcode.club (note: there is no login; just fill the
info)
- send e-mail to the mailing lists
- update the list of supported file formats in the user guide
- update contributors page using ./utils/gen-authors.py AUTHORS web
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1143,7 +1143,7 @@ sixtyfour bits
test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
])
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
# Copyright (C) 2002-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1155,10 +1155,10 @@ sixtyfour bits
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.15'
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.15.1], [],
m4_if([$1], [1.16.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
......@@ -1174,14 +1174,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.15.1])dnl
[AM_AUTOMAKE_VERSION([1.16.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1233,7 +1233,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1264,7 +1264,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1455,13 +1455,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
......@@ -1469,49 +1468,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
# TODO: see whether this extra hack can be removed once we start
# requiring Autoconf 2.70 or later.
AS_CASE([$CONFIG_FILES],
[*\'*], [eval set x "$CONFIG_FILES"],
[*], [set x $CONFIG_FILES])
shift
for mf
# Used to flag and report bootstrapping failures.
am_rc=0
for am_mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named 'Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile which includes
# dependency-tracking related rules and includes.
# Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`AS_DIRNAME("$mf")`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running 'make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "$am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
AS_MKDIR_P([$dirpart/$fdir])
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|| continue
am_dirpart=`AS_DIRNAME(["$am_mf"])`
am_filepart=`AS_BASENAME(["$am_mf"])`
AM_RUN_LOG([cd "$am_dirpart" \
&& sed -e '/# am--include-marker/d' "$am_filepart" \
| $MAKE -f - am--depfiles]) || am_rc=$?
done
if test $am_rc -ne 0; then
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. Try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).])
fi
AS_UNSET([am_dirpart])
AS_UNSET([am_filepart])
AS_UNSET([am_mf])
AS_UNSET([am_rc])
rm -f conftest-deps.mk
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
......@@ -1520,18 +1511,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each '.P' file that we will
# need in order to bootstrap the dependency handling code.
# This code is only required when automatic dependency tracking is enabled.
# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
# order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
[AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1618,8 +1608,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
......@@ -1686,7 +1676,7 @@ END
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
that behaves properly: <http://www.gnu.org/software/coreutils/>.
that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
......@@ -1728,7 +1718,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1749,7 +1739,7 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
# Copyright (C) 2003-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1771,7 +1761,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1806,7 +1796,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1814,49 +1804,42 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
# Check whether make has an 'include' directive that can support all
# the idioms we need for our automatic dependency tracking code.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
cat > confinc.mk << 'END'
am__doit:
@echo this is the am__doit target
@echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from 'make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
# BSD make does it like this.
echo '.include "confinc.mk" # ignored' > confmf.BSD
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
echo 'include confinc.mk # ignored' > confmf.GNU
_am_result=no
for s in GNU BSD; do
AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
AS_CASE([$?:`cat confinc.out 2>/dev/null`],
['0:this is the am__doit target'],
[AS_CASE([$s],
[BSD], [am__include='.include' am__quote='"'],
[am__include='include' am__quote=''])])
if test "$am__include" != "#"; then
_am_result="yes ($s style)"
break
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
done
rm -f confinc.* confmf.*
AC_MSG_RESULT([${_am_result}])
AC_SUBST([am__include])])
AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
# Copyright (C) 1997-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1895,7 +1878,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1924,7 +1907,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -1971,7 +1954,7 @@ AC_LANG_POP([C])])
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Copyright (C) 1999-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -2004,10 +1987,12 @@ AC_DEFUN([AM_PATH_PYTHON],
[
dnl Find a Python interpreter. Python versions prior to 2.0 are not
dnl supported. (2.0 was released on October 16, 2000).
dnl FIXME: Remove the need to hard-code Python versions here.
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
[python python2 python3 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
[python python2 python3 dnl
python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 dnl
python3.2 python3.1 python3.0 dnl
python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 dnl
python2.0])
AC_ARG_VAR([PYTHON], [the Python interpreter])
......@@ -2207,7 +2192,7 @@ for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
sys.exit(sys.hexversion < minverhex)"
AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -2226,7 +2211,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Copyright (C) 1996-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -2307,7 +2292,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
# Copyright (C) 2009-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -2367,7 +2352,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
# Copyright (C) 2001-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -2395,7 +2380,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
# Copyright (C) 2006-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -2414,7 +2399,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
# Copyright (C) 2004-2018 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -2551,6 +2536,7 @@ m4_include([m4/gtk-doc.m4])
m4_include([m4/gwy-cc-options.m4])
m4_include([m4/gwy-enable.m4])
m4_include([m4/gwy-math.m4])
m4_include([m4/gwy-openmp.m4])
m4_include([m4/gwy-python.m4])
m4_include([m4/gwy-version.m4])
m4_include([m4/iconv.m4])
......
# $Id: Makefile.am 21624 2018-11-13 13:48:03Z yeti-dn $
# $Id: Makefile.am 22437 2019-08-27 11:57:54Z yeti-dn $
libgwyddion = $(top_builddir)/libgwyddion/libgwyddion2.la
libgwymodule = $(top_builddir)/libgwymodule/libgwymodule2.la
......@@ -97,7 +97,7 @@ libgwyapp2.def: $(libgwyapp2_la_OBJECTS)
# Any iface change C++: 0: A
# Adding ifaces C: R: A++
# Changing ifaces C: R: 0
libversion = -version-info 21:1:21
libversion = -version-info 23:0:23
#libversion = -release @LIBRARY_RELEASE@
AM_CFLAGS = @COMMON_CFLAGS@ @GIO_CFLAGS@
AM_LDFLAGS = @GTKGLEXT_LIBS@ @GIO_LIBS@ @BASIC_LIBS@ $(win32_libs) -export-dynamic $(no_undefined) $(export_symbols) $(libversion) $(libgwyapp_libadd)
......
# Makefile.in generated by automake 1.15.1 from Makefile.am.
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -14,7 +14,7 @@
@SET_MAKE@
# $Id: Makefile.am 21624 2018-11-13 13:48:03Z yeti-dn $
# $Id: Makefile.am 22437 2019-08-27 11:57:54Z yeti-dn $
# Generic glib-mkenum rules.
# $Id: mkenum.mk 20681 2017-12-18 18:37:24Z yeti-dn $
......@@ -113,13 +113,13 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gtk-doc.m4 \
$(top_srcdir)/m4/gwy-cc-options.m4 \
$(top_srcdir)/m4/gwy-enable.m4 $(top_srcdir)/m4/gwy-math.m4 \
$(top_srcdir)/m4/gwy-python.m4 $(top_srcdir)/m4/gwy-version.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/configure.ac
$(top_srcdir)/m4/gwy-openmp.m4 $(top_srcdir)/m4/gwy-python.m4 \
$(top_srcdir)/m4/gwy-version.m4 $(top_srcdir)/m4/iconv.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(libgwyapp2include_HEADERS) \
......@@ -185,7 +185,22 @@ am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/app.Plo \
./$(DEPDIR)/data-browser-aux.Plo ./$(DEPDIR)/data-browser.Plo \
./$(DEPDIR)/datachooser.Plo ./$(DEPDIR)/file.Plo \
./$(DEPDIR)/filelist.Plo ./$(DEPDIR)/funcuse.Plo \
./$(DEPDIR)/glmaterial-editor.Plo \
./$(DEPDIR)/gradient-editor.Plo \
./$(DEPDIR)/gwyappfilechooser.Plo ./$(DEPDIR)/gwyapptypes.Plo \
./$(DEPDIR)/gwymoduleutils-file.Plo \
./$(DEPDIR)/gwymoduleutils.Plo ./$(DEPDIR)/gwyplaintool.Plo \
./$(DEPDIR)/gwyresultsexport.Plo ./$(DEPDIR)/gwytool.Plo \
./$(DEPDIR)/help.Plo ./$(DEPDIR)/log.Plo \
./$(DEPDIR)/logging.Plo ./$(DEPDIR)/menu.Plo \
./$(DEPDIR)/meta.Plo ./$(DEPDIR)/resource-editor.Plo \
./$(DEPDIR)/settings.Plo ./$(DEPDIR)/undo.Plo \
./$(DEPDIR)/validate.Plo ./$(DEPDIR)/wait.Plo
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
......@@ -343,8 +358,10 @@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MINIZIP_CFLAGS = @MINIZIP_CFLAGS@
MINIZIP_LIBS = @MINIZIP_LIBS@
MINIZIP1_CFLAGS = @MINIZIP1_CFLAGS@
MINIZIP1_LIBS = @MINIZIP1_LIBS@
MINIZIP2_CFLAGS = @MINIZIP2_CFLAGS@
MINIZIP2_LIBS = @MINIZIP2_LIBS@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
......@@ -354,6 +371,7 @@ NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENMP_CFLAGS = @OPENMP_CFLAGS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
......@@ -377,11 +395,13 @@ PYGTK_CFLAGS = @PYGTK_CFLAGS@
PYGTK_CODEGENDIR = @PYGTK_CODEGENDIR@
PYGTK_LIBS = @PYGTK_LIBS@
PYTHON = @PYTHON@
PYTHON_CFLAGS = @PYTHON_CFLAGS@
PYTHON_CONFIG = @PYTHON_CONFIG@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_EXTRA_CFLAGS = @PYTHON_EXTRA_CFLAGS@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
PYTHON_LIBS = @PYTHON_LIBS@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
PYTHON_PREFIX = @PYTHON_PREFIX@
PYTHON_VERSION = @PYTHON_VERSION@
......@@ -559,7 +579,7 @@ mkenum_built_sources = $(MKENUM_NAME).h $(MKENUM_NAME).c
# Any iface change C++: 0: A
# Adding ifaces C: R: A++
# Changing ifaces C: R: 0
libversion = -version-info 21:1:21
libversion = -version-info 23:0:23
#libversion = -release @LIBRARY_RELEASE@
AM_CFLAGS = @COMMON_CFLAGS@ @GIO_CFLAGS@
AM_LDFLAGS = @GTKGLEXT_LIBS@ @GIO_LIBS@ @BASIC_LIBS@ $(win32_libs) -export-dynamic $(no_undefined) $(export_symbols) $(libversion) $(libgwyapp_libadd)
......@@ -614,8 +634,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/utils/mkenum.mk $(am__empty):
......@@ -672,32 +692,38 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/app.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-browser-aux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-browser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datachooser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filelist.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/funcuse.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmaterial-editor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gradient-editor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyappfilechooser.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyapptypes.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwymoduleutils-file.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwymoduleutils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyplaintool.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyresultsexport.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwytool.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logging.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/meta.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource-editor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/settings.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/undo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/validate.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/app.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-browser-aux.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-browser.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/datachooser.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filelist.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/funcuse.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glmaterial-editor.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gradient-editor.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyappfilechooser.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyapptypes.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwymoduleutils-file.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwymoduleutils.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyplaintool.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwyresultsexport.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gwytool.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logging.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/menu.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/meta.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource-editor.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/settings.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/undo.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/validate.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait.Plo@am__quote@ # am--include-marker
$(am__depfiles_remade):
@$(MKDIR_P) $(@D)
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade)
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
......@@ -799,7 +825,10 @@ cscopelist-am: $(am__tagged_files)
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
......@@ -877,7 +906,32 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f ./$(DEPDIR)/app.Plo
-rm -f ./$(DEPDIR)/data-browser-aux.Plo
-rm -f ./$(DEPDIR)/data-browser.Plo
-rm -f ./$(DEPDIR)/datachooser.Plo
-rm -f ./$(DEPDIR)/file.Plo
-rm -f ./$(DEPDIR)/filelist.Plo
-rm -f ./$(DEPDIR)/funcuse.Plo
-rm -f ./$(DEPDIR)/glmaterial-editor.Plo
-rm -f ./$(DEPDIR)/gradient-editor.Plo
-rm -f ./$(DEPDIR)/gwyappfilechooser.Plo
-rm -f ./$(DEPDIR)/gwyapptypes.Plo
-rm -f ./$(DEPDIR)/gwymoduleutils-file.Plo
-rm -f ./$(DEPDIR)/gwymoduleutils.Plo
-rm -f ./$(DEPDIR)/gwyplaintool.Plo
-rm -f ./$(DEPDIR)/gwyresultsexport.Plo
-rm -f ./$(DEPDIR)/gwytool.Plo
-rm -f ./$(DEPDIR)/help.Plo
-rm -f ./$(DEPDIR)/log.Plo
-rm -f ./$(DEPDIR)/logging.Plo
-rm -f ./$(DEPDIR)/menu.Plo
-rm -f ./$(DEPDIR)/meta.Plo
-rm -f ./$(DEPDIR)/resource-editor.Plo
-rm -f ./$(DEPDIR)/settings.Plo
-rm -f ./$(DEPDIR)/undo.Plo
-rm -f ./$(DEPDIR)/validate.Plo
-rm -f ./$(DEPDIR)/wait.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
......@@ -923,7 +977,32 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f ./$(DEPDIR)/app.Plo
-rm -f ./$(DEPDIR)/data-browser-aux.Plo
-rm -f ./$(DEPDIR)/data-browser.Plo
-rm -f ./$(DEPDIR)/datachooser.Plo
-rm -f ./$(DEPDIR)/file.Plo
-rm -f ./$(DEPDIR)/filelist.Plo
-rm -f ./$(DEPDIR)/funcuse.Plo
-rm -f ./$(DEPDIR)/glmaterial-editor.Plo
-rm -f ./$(DEPDIR)/gradient-editor.Plo
-rm -f ./$(DEPDIR)/gwyappfilechooser.Plo
-rm -f ./$(DEPDIR)/gwyapptypes.Plo
-rm -f ./$(DEPDIR)/gwymoduleutils-file.Plo
-rm -f ./$(DEPDIR)/gwymoduleutils.Plo
-rm -f ./$(DEPDIR)/gwyplaintool.Plo
-rm -f ./$(DEPDIR)/gwyresultsexport.Plo
-rm -f ./$(DEPDIR)/gwytool.Plo
-rm -f ./$(DEPDIR)/help.Plo
-rm -f ./$(DEPDIR)/log.Plo
-rm -f ./$(DEPDIR)/logging.Plo
-rm -f ./$(DEPDIR)/menu.Plo
-rm -f ./$(DEPDIR)/meta.Plo
-rm -f ./$(DEPDIR)/resource-editor.Plo
-rm -f ./$(DEPDIR)/settings.Plo
-rm -f ./$(DEPDIR)/undo.Plo
-rm -f ./$(DEPDIR)/validate.Plo
-rm -f ./$(DEPDIR)/wait.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
......@@ -945,14 +1024,14 @@ uninstall-am: uninstall-libLTLIBRARIES \
.MAKE: all check install install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \
ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-libLTLIBRARIES \
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
cscopelist-am ctags ctags-am distclean distclean-compile \
distclean-generic distclean-libtool distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-libLTLIBRARIES \
install-libgwyapp2includeHEADERS install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
......
/*
* $Id: app.c 21435 2018-09-11 12:39:53Z yeti-dn $
* Copyright (C) 2003-2006,2013-2017 David Necas (Yeti), Petr Klapetek.
* $Id: app.c 21954 2019-04-03 12:40:50Z yeti-dn $
* Copyright (C) 2003-2006,2013-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -838,7 +838,7 @@ _gwy_app_3d_window_setup(Gwy3DWindow *window3d)
GtkTooltips *tooltips;
Gwy3DView *view3d;
GwyContainer *settings;
gboolean autocrop = FALSE;
gboolean autocrop = FALSE, transparent = FALSE;
GtkWidget *button, *check, *label;
gwy_app_add_main_accel_group(GTK_WINDOW(window3d));
......@@ -870,6 +870,7 @@ _gwy_app_3d_window_setup(Gwy3DWindow *window3d)
G_CALLBACK(gwy_app_3d_window_export), window3d);
settings = gwy_app_settings_get();
gwy_container_gis_boolean_by_name(settings, "/app/3d/autocrop", &autocrop);
check = gtk_check_button_new_with_mnemonic(_("_Autocrop"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), autocrop);
......@@ -878,6 +879,16 @@ _gwy_app_3d_window_setup(Gwy3DWindow *window3d)
_("Remove white borders from exported image"), NULL);
g_object_set_data(G_OBJECT(window3d), "gwy-app-autocrop-check", check);
gwy_container_gis_boolean_by_name(settings, "/app/3d/transparent",
&transparent);
check = gtk_check_button_new_with_mnemonic(_("_Transparent"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), transparent);
gwy_3d_window_add_action_widget(window3d, check);
gtk_tooltips_set_tip(tooltips, check,
_("Export PNG images with transparent background"),
NULL);
g_object_set_data(G_OBJECT(window3d), "gwy-app-transparent-check", check);
gwy_app_3d_window_add_overlay_menu(window3d);
gwy_help_add_to_window(GTK_WINDOW(window3d), "opengl-3d-view", NULL,
GWY_HELP_DEFAULT);
......@@ -1107,6 +1118,20 @@ autocrop_3d_export_pixbuf(GdkPixbuf *pixbuf)
left = width-1;
right = 0;
if (bpp == 4) {
for (i = 0; i < height; i++) {
row = data + i*stride;
for (j = 0; j < width; j++, row += bpp) {
if (row[3]) {
top = MIN(top, i);
bot = MAX(bot, i);
left = MIN(left, j);
right = MAX(right, j);
}
}
}
}
else {
for (i = 0; i < height; i++) {
row = data + i*stride;
for (j = 0; j < bpp*width; j++) {
......@@ -1118,6 +1143,7 @@ autocrop_3d_export_pixbuf(GdkPixbuf *pixbuf)
}
}
}
}
if (top > bot || left > right)
top = bot = left = right = 0;
......@@ -1136,7 +1162,7 @@ gwy_app_save_3d_export(GtkWidget *dialog,
GtkWidget *gwy3dview;
GError *err = NULL;
GwyContainer *settings;
gboolean autocrop = FALSE;
gboolean autocrop = FALSE, transparent = FALSE;
if (response != GTK_RESPONSE_OK) {
gtk_widget_destroy(dialog);
......@@ -1148,9 +1174,16 @@ gwy_app_save_3d_export(GtkWidget *dialog,
gtk_widget_destroy(dialog);
settings = gwy_app_settings_get();
gwy_container_gis_boolean_by_name(settings, "/app/3d/autocrop", &autocrop);
gwy_container_gis_boolean_by_name(settings, "/app/3d/autocrop",
&autocrop);
gwy_container_gis_boolean_by_name(settings, "/app/3d/transparent",
&transparent);
if (transparent)
pixbuf = gwy_3d_view_get_pixbuf_with_alpha(GWY_3D_VIEW(gwy3dview));
else
pixbuf = gwy_3d_view_get_pixbuf(GWY_3D_VIEW(gwy3dview));
if (autocrop)
cropped_pixbuf = autocrop_3d_export_pixbuf(pixbuf);
else
......@@ -1198,15 +1231,19 @@ gwy_app_3d_window_export(Gwy3DWindow *gwy3dwindow)
GtkWidget *dialog, *gwy3dview, *check;
const guchar *filename_utf8;
gchar *filename_sys;
gboolean need_free_utf = FALSE, autocrop;
gboolean need_free_utf = FALSE, autocrop, transparent;
gwy3dview = gwy_3d_window_get_3d_view(gwy3dwindow);
data = gwy_3d_view_get_data(GWY_3D_VIEW(gwy3dview));
check = g_object_get_data(G_OBJECT(gwy3dwindow), "gwy-app-autocrop-check");
autocrop = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check));
check = g_object_get_data(G_OBJECT(gwy3dwindow), "gwy-app-transparent-check");
transparent = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check));
settings = gwy_app_settings_get();
gwy_container_set_boolean_by_name(settings, "/app/3d/autocrop", autocrop);
gwy_container_set_boolean_by_name(settings, "/app/3d/transparent",
transparent);
filename_utf8 = g_object_get_data(G_OBJECT(gwy3dwindow),
"gwy-app-export-filename");
......@@ -1663,7 +1700,7 @@ change_brick_preview(GwyDataWindow *data_window)
spin = gtk_spin_button_new(leveladj, 0.0, 0);
gtk_table_attach(GTK_TABLE(table), spin, 2, 3, 8, 9, GTK_FILL, 0, 0, 0);
g_object_set_data(G_OBJECT(dialog), "section-spin", spin);
label = gtk_label_new("px");
label = gtk_label_new(_("px"));
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
gtk_table_attach(GTK_TABLE(table), label, 3, 4, 8, 9, GTK_FILL, 0, 0, 0);
g_object_set_data(G_OBJECT(dialog), "section-units", label);
......
/*
* $Id: data-browser-aux.c 21430 2018-09-11 11:46:00Z yeti-dn $
* $Id: data-browser-aux.c 21680 2018-11-26 10:39:39Z yeti-dn $
* Copyright (C) 2006-2016 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -2339,7 +2339,6 @@ render_data_thumbnail(GwyDataField *dfield,
render_field = make_thumbnail_field(dfield, &width, &height);
pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, BITS_PER_SAMPLE,
width, height);
gwy_debug_objects_creation(G_OBJECT(pixbuf));
switch (range_type) {
case GWY_LAYER_BASIC_RANGE_FULL:
......
/*
* $Id: data-browser.c 21361 2018-08-28 13:53:09Z yeti-dn $
* $Id: data-browser.c 21680 2018-11-26 10:39:39Z yeti-dn $
* Copyright (C) 2006-2018 David Necas (Yeti), Petr Klapetek, Chris Anderson
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net, sidewinderasu@gmail.com.
*
......@@ -2238,7 +2238,6 @@ gwy_app_data_proxy_list_setup(GwyAppDataList *list)
G_TYPE_OBJECT,
G_TYPE_DOUBLE,
GDK_TYPE_PIXBUF);
gwy_debug_objects_creation(G_OBJECT(list->store));
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(list->store),
MODEL_ID, GTK_SORT_ASCENDING);
list->last = -1;
......
/*
* $Id: datachooser.c 20678 2017-12-18 18:26:55Z yeti-dn $
* Copyright (C) 2006-2016 David Necas (Yeti), Petr Klapetek.
* $Id: datachooser.c 22218 2019-07-11 08:01:47Z yeti-dn $
* Copyright (C) 2006-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -683,6 +683,8 @@ gwy_data_chooser_process_events(gpointer user_data)
found = gwy_data_chooser_find_data(chooser, event->container, event->id,
&position);
gwy_debug("id %u, type %u, container %p, found %d",
event->id, event->event_type, event->container, found);
if (found) {
if (event->event_type == GWY_DATA_WATCH_EVENT_ADDED) {
......@@ -714,13 +716,27 @@ gwy_data_chooser_process_events(gpointer user_data)
-1);
}
else if (event->event_type == GWY_DATA_WATCH_EVENT_CHANGED) {
gtk_tree_model_iter_nth_child(model, &iter, NULL, position);
found = gtk_tree_model_iter_nth_child(model, &iter, NULL, position);
gtk_tree_model_get(model, &iter, MODEL_COLUMN_PROXY, &proxy, -1);
proxy_free(proxy);
proxy = g_new0(Proxy, 1);
gtk_list_store_set(chooser->store, &iter,
MODEL_COLUMN_PROXY, proxy,
-1);
GWY_OBJECT_UNREF(proxy->thumb);
g_free(proxy->name);
proxy->name = NULL;
/* XXX XXX XXX: We cannot emit "row-changed" on the tree model here
* for some reason. If we do, we get CRITICAL message
*
* gtk_menu_attach: assertion 'left_attach < right_attach' failed
*
* because property "right_attach" of the combo box menu is -1 now
* (like unattached?), it gets typecast to guint as G_MAXUINT and
* things only go downhill from there.
*
* This does not occur in Fedora, but does in Ubuntu. No RedHat
* patch seems relevant, so who knows...
*
* Work around by pretending the row did not change (we can do that
* because the tree model only contains a pointer) and asking the
* widget to redraw itself. */
gtk_widget_queue_draw(GTK_WIDGET(chooser));
}
else if (event->event_type == GWY_DATA_WATCH_EVENT_REMOVED) {
gtk_tree_model_iter_nth_child(model, &iter, NULL, position);
......
/*
* $Id: file.c 21363 2018-08-28 14:39:00Z yeti-dn $
* $Id: file.c 22100 2019-05-27 10:59:56Z yeti-dn $
* Copyright (C) 2003-2006 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -180,6 +180,8 @@ warn_broken_load_func(const gchar *name,
{
static const gchar *broken_file_funcs[] = {
"dimensionfile",
"oirfile",
"poirfile",
/*"at present no modules are broken and this is not a file type name",*/
};
......
/*
* $Id: filelist.c 20678 2017-12-18 18:26:55Z yeti-dn $
* $Id: filelist.c 21804 2019-01-06 20:50:38Z yeti-dn $
* Copyright (C) 2004-2016 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -191,7 +191,6 @@ gwy_app_recent_file_list_get_failed_pixbuf(void)
if (!failed_pixbuf) {
failed_pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8,
THUMB_SIZE, THUMB_SIZE);
gwy_debug_objects_creation(G_OBJECT(failed_pixbuf));
gdk_pixbuf_fill(failed_pixbuf, 0);
}
......@@ -505,8 +504,8 @@ cell_renderer_desc(G_GNUC_UNUSED GtkTreeViewColumn *column,
g_free(escaped);
if (rf->image_width && rf->image_height)
g_string_append_printf(s, "\n%d×%d px",
rf->image_width, rf->image_height);
g_string_append_printf(s, "\n%d×%d %s",
rf->image_width, rf->image_height, _("px"));
if (rf->image_real_size) {
g_string_append_c(s, '\n');
g_string_append(s, rf->image_real_size);
......@@ -1153,7 +1152,6 @@ gwy_app_recent_file_try_load_thumbnail(GwyRecentFile *rf)
g_object_ref(rf->pixbuf);
return FALSE;
}
gwy_debug_objects_creation(G_OBJECT(pixbuf));
width = gdk_pixbuf_get_width(pixbuf);
height = gdk_pixbuf_get_height(pixbuf);
......@@ -1162,7 +1160,6 @@ gwy_app_recent_file_try_load_thumbnail(GwyRecentFile *rf)
height = CLAMP((gint)(scale*height), 1, THUMB_SIZE);
rf->pixbuf = gdk_pixbuf_scale_simple(pixbuf, width, height,
GDK_INTERP_TILES);
gwy_debug_objects_creation(G_OBJECT(rf->pixbuf));
option = gdk_pixbuf_get_option(pixbuf, KEY_THUMB_URI);
gwy_debug("uri = <%s>", rf->file_uri);
......
/*
* $Id: gwyappfilechooser.c 20867 2018-03-20 10:34:18Z yeti-dn $
* Copyright (C) 2003-2017 David Necas (Yeti), Petr Klapetek.
* $Id: gwyappfilechooser.c 21804 2019-01-06 20:50:38Z yeti-dn $
* Copyright (C) 2003-2018 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -552,6 +552,11 @@ gwy_app_file_chooser_add_type_list(GwyAppFileChooser *chooser)
extraheight = 5*extraheight/3;
gtk_widget_set_size_request(scwin, -1, req.height + extraheight);
/* Ignore the file from settings (i.e. between sessions). Preserving it
* can be useful when importing lots of raw data, but it confuses people
* no end when they suddently cannot open files because some kind of raw
* data import is selected. */
if (action != GTK_FILE_CHOOSER_ACTION_OPEN)
gwy_app_file_chooser_select_type(chooser);
gwy_app_file_chooser_type_changed(chooser, selection);
}
......@@ -1065,7 +1070,7 @@ describe_channel(GwyContainer *container, gint id, GString *str)
xres = gwy_data_field_get_xres(dfield);
yres = gwy_data_field_get_yres(dfield);
g_string_append_printf(str, "%d×%d px\n", xres, yres);
g_string_append_printf(str, "%d×%d %s\n", xres, yres, _("px"));
xreal = gwy_data_field_get_xreal(dfield);
yreal = gwy_data_field_get_yreal(dfield);
......@@ -1200,7 +1205,7 @@ describe_volume(GwyContainer *container, gint id, GString *str)
xres = gwy_brick_get_xres(brick);
yres = gwy_brick_get_yres(brick);
zres = gwy_brick_get_zres(brick);
g_string_append_printf(str, "%d×%dx%d px\n", xres, yres, zres);
g_string_append_printf(str, "%d×%dx%d %s\n", xres, yres, zres, _("px"));
real = gwy_brick_get_xreal(brick);
siunit = gwy_brick_get_si_unit_x(brick);
......
/*
* $Id: gwyplaintool.c 21343 2018-08-27 14:28:40Z yeti-dn $
* Copyright (C) 2006-2018 David Necas (Yeti), Petr Klapetek.
* $Id: gwyplaintool.c 21965 2019-04-08 14:10:40Z yeti-dn $
* Copyright (C) 2006-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -934,11 +934,12 @@ gwy_rect_selection_labels_make_pspin(GtkTable *table,
else
adj = gtk_adjustment_new(0.0, 0.0, 100.0, 1.0, 10.0, 0.0);
spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 0.0, 0);
gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(spin), TRUE);
gtk_entry_set_width_chars(GTK_ENTRY(spin), 4);
hbox = gtk_hbox_new(FALSE, 4);
label = gtk_label_new("px");
label = gtk_label_new(_("px"));
gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 0);
gtk_box_pack_end(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
......@@ -1244,6 +1245,8 @@ gwy_rect_selection_labels_fill(GwyRectSelectionLabels *rlabels,
isel[2] -= isel[0] - 1;
isel[3] -= isel[1] - 1;
sel[2] -= sel[0];
sel[3] -= sel[1];
sel[0] += xoff;
sel[1] += yoff;
......
/*
* $Id: gwyresultsexport.c 20808 2018-03-05 10:08:24Z yeti-dn $
* Copyright (C) 2017 David Necas (Yeti).
* $Id: gwyresultsexport.c 21852 2019-01-24 10:27:06Z yeti-dn $
* Copyright (C) 2017-2019 David Necas (Yeti).
* E-mail: yeti@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -706,6 +706,63 @@ gwy_results_fill_xyz(GwyResults *results,
gwy_app_get_surface_title_key_for_id(i));
}
/**
* gwy_results_fill_graph:
* @results: Set of reported scalar values.
* @id: Value identifier.
* @graphmodel: A graph model.
*
* Fills graph title in a set of reported scalar values.
*
* This is a helper function for #GwyResults.
*
* Since: 2.53
**/
void
gwy_results_fill_graph(GwyResults *results,
const gchar *id,
GwyGraphModel *graphmodel)
{
gchar *title = NULL;
g_return_if_fail(GWY_IS_GRAPH_MODEL(graphmodel));
g_return_if_fail(GWY_IS_RESULTS(results));
g_return_if_fail(id);
g_object_get(graphmodel, "title", &title, NULL);
gwy_results_fill_values(results, id, title, NULL);
g_free(title);
}
/**
* gwy_results_fill_graph_curve:
* @results: Set of reported scalar values.
* @id: Value identifier.
* @container: Data container corresponding to a file.
* @curvemodel: A graph curve model.
*
* Fills graph curve description in a set of reported scalar values.
*
* This is a helper function for #GwyResults.
*
* Since: 2.53
**/
void
gwy_results_fill_graph_curve(GwyResults *results,
const gchar *id,
GwyGraphCurveModel *curvemodel)
{
gchar *title = NULL;
g_return_if_fail(GWY_IS_GRAPH_CURVE_MODEL(curvemodel));
g_return_if_fail(GWY_IS_RESULTS(results));
g_return_if_fail(id);
g_object_get(curvemodel, "description", &title, NULL);
gwy_results_fill_values(results, id, title, NULL);
g_free(title);
}
/************************** Documentation ****************************/
/**
......
/*
* $Id: gwyresultsexport.h 20677 2017-12-18 18:22:52Z yeti-dn $
* Copyright (C) 2017 David Necas (Yeti).
* $Id: gwyresultsexport.h 21874 2019-02-04 07:46:10Z yeti-dn $
* Copyright (C) 2017-2019 David Necas (Yeti).
* E-mail: yeti@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -25,6 +25,7 @@
#include <gtk/gtk.h>
#include <libgwyddion/gwyresults.h>
#include <libgwyddion/gwycontainer.h>
#include <libgwydgets/gwygraphmodel.h>
G_BEGIN_DECLS
......@@ -104,6 +105,12 @@ void gwy_results_fill_xyz (GwyResults *resul
const gchar *id,
GwyContainer *container,
gint i);
void gwy_results_fill_graph (GwyResults *results,
const gchar *id,
GwyGraphModel *graphmodel);
void gwy_results_fill_graph_curve (GwyResults *results,
const gchar *id,
GwyGraphCurveModel *curvemodel);
G_END_DECLS
......
/*
* $Id: logging.c 20677 2017-12-18 18:22:52Z yeti-dn $
* Copyright (C) 2016 David Necas (Yeti).
* $Id: logging.c 22396 2019-08-18 06:38:30Z yeti-dn $
* Copyright (C) 2016-2018 David Necas (Yeti).
* E-mail: yeti@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -65,6 +65,10 @@ static void logger (const gchar *log_domain_str,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data);
static void black_hole (const gchar *log_domain_str,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data);
static void flush_last_message (LoggingSetup *setup);
static void emit_message_to_file (FILE *fh,
GLogLevelFlags log_level,
......@@ -101,14 +105,17 @@ static LoggingSetup log_setup;
void
gwy_app_setup_logging(GwyAppLoggingFlags flags)
{
static const gchar *domains[] = {
static const gchar *our_domains[] = {
"Gwyddion", "GwyProcess", "GwyDraw", "Gwydgets", "GwyModule", "GwyApp",
"Module", "Gwyddion-Program", NULL
};
static const gchar *other_domains[] = {
"GLib", "GLib-GObject", "GLib-GIO", "GModule", "GThread",
"GdkPixbuf", "Gdk", "Gtk",
"GdkGLExt", "GtkGLExt",
"GtkSourceView",
"Pango", "Unique",
"Gwyddion", "GwyProcess", "GwyDraw", "Gwydgets", "GwyModule", "GwyApp",
"Module", NULL
NULL,
};
guint i;
......@@ -137,13 +144,29 @@ gwy_app_setup_logging(GwyAppLoggingFlags flags)
/* NB: We must not initialise the text buffer here because Gtk+ may not be
* initialised yet. Only do that on demand. */
for (i = 0; i < G_N_ELEMENTS(domains); i++) {
g_log_set_handler(domains[i],
for (i = 0; i < G_N_ELEMENTS(our_domains); i++) {
g_log_set_handler(our_domains[i],
G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_MESSAGE
| G_LOG_LEVEL_INFO | G_LOG_LEVEL_WARNING
| G_LOG_LEVEL_CRITICAL,
logger, &log_setup);
}
for (i = 0; i < G_N_ELEMENTS(other_domains); i++) {
g_log_set_handler(other_domains[i],
G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL,
logger, &log_setup);
}
/* Send messages at levels lower than WARNING to a black hole because
* the developers of the libraries think printing DEBUG messages in
* production code is a good idea and hence they cannot be trusted. We
* could make an effort to pass some specifically to the default handler,
* but I do not care. */
for (i = 0; i < G_N_ELEMENTS(other_domains); i++) {
g_log_set_handler(other_domains[i],
G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_MESSAGE
| G_LOG_LEVEL_INFO,
black_hole, NULL);
}
}
void
......@@ -219,6 +242,14 @@ flush_last_message(LoggingSetup *setup)
setup->last_count = G_MAXUINT;
}
static void
black_hole(G_GNUC_UNUSED const gchar *log_domain_str,
G_GNUC_UNUSED GLogLevelFlags log_level,
G_GNUC_UNUSED const gchar *message,
G_GNUC_UNUSED gpointer user_data)
{
}
static void
logger(const gchar *log_domain_str,
GLogLevelFlags log_level,
......
/*
* $Id: wait.c 21526 2018-10-28 09:01:13Z yeti-dn $
* $Id: wait.c 22152 2019-06-09 14:51:25Z yeti-dn $
* Copyright (C) 2004-2018 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -33,6 +33,7 @@ static gboolean wait_enabled = TRUE;
static GtkWidget *dialog = NULL;
static GtkWidget *progress = NULL;
static GtkWidget *label = NULL;
static GtkWidget *preview = NULL;
static gchar *message_prefix = NULL;
static gboolean cancelled = FALSE;
static GTimer *timer = NULL;
......@@ -77,6 +78,16 @@ gwy_app_wait_start(GtkWindow *window,
gwy_app_wait_create_dialog(window, message);
}
static void
silent_kill_preview_widget(void)
{
if (preview) {
gtk_widget_destroy(preview);
g_object_unref(preview);
preview = NULL;
}
}
/**
* gwy_app_wait_finish:
*
......@@ -89,8 +100,7 @@ gwy_app_wait_start(GtkWindow *window,
void
gwy_app_wait_finish(void)
{
if (!wait_enabled)
return;
silent_kill_preview_widget();
if (cancelled) {
cancelled = FALSE;
......@@ -111,6 +121,8 @@ static void
gwy_app_wait_create_dialog(GtkWindow *window,
const gchar *message)
{
GtkBox *vbox;
dialog = gtk_dialog_new_with_buttons(_("Please wait"),
window,
GTK_DIALOG_DESTROY_WITH_PARENT
......@@ -123,17 +135,19 @@ gwy_app_wait_create_dialog(GtkWindow *window,
gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
}
vbox = GTK_BOX(GTK_DIALOG(dialog)->vbox);
if (preview)
gtk_box_pack_start(vbox, preview, FALSE, FALSE, 4);
label = gtk_label_new(NULL);
gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
gtk_label_set_markup(GTK_LABEL(label), message);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label,
FALSE, FALSE, 4);
gtk_box_pack_start(vbox, label, FALSE, FALSE, 4);
progress = gtk_progress_bar_new();
gtk_widget_set_size_request(progress, 280, -1);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress), 0.0);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progress,
FALSE, FALSE, 4);
gtk_box_pack_start(vbox, progress, FALSE, FALSE, 4);
g_signal_connect(dialog, "response",
G_CALLBACK(gwy_app_wait_cancelled), NULL);
......@@ -440,6 +454,33 @@ gwy_app_wait_was_canceled(void)
return cancelled;
}
/**
* gwy_app_wait_set_preview_widget:
* @widget: Preview widget, usually something like #GwyDataView.
*
* Sets the preview widget of a wait dialogue.
*
* This function needs to be used before gwy_app_wait_start() to have any
* effect.
*
* Since: 2.54
**/
void
gwy_app_wait_set_preview_widget(GtkWidget *widget)
{
g_return_if_fail(!widget || GTK_IS_WIDGET(widget));
if (widget == preview)
return;
silent_kill_preview_widget();
if (widget) {
g_object_ref(widget);
gtk_object_sink(GTK_OBJECT(widget));
preview = widget;
}
}
/************************** Documentation ****************************/
/**
......
/*
* $Id: wait.h 21407 2018-09-07 13:07:11Z yeti-dn $
* $Id: wait.h 22152 2019-06-09 14:51:25Z yeti-dn $
* Copyright (C) 2004-2018 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -37,6 +37,7 @@ void gwy_app_wait_cursor_finish (GtkWindow *window);
gboolean gwy_app_wait_get_enabled (void);
void gwy_app_wait_set_enabled (gboolean setting);
gboolean gwy_app_wait_was_canceled (void);
void gwy_app_wait_set_preview_widget(GtkWidget *widget);
G_END_DECLS
......