VnListModel, DbIterator

- VnGridModel renombrado a VnListModel, que ahora implementa directamente
la linea de valores nulos virtual usada para los ComboBox, en lugar de
implementarse en el DbModel.
	- Al refrescar, DbSimpleIterator va al primer registro cuando no recuerda
selección, VnGrid pierde la selección completamente.
	- Se han añadido algunos comentarios para documentación y para
GObjectIntrospection.
This commit is contained in:
Alejandro T. Colombini Gómez 2014-10-09 08:55:17 +02:00
parent 851b6a890e
commit ea4aea818b
35 changed files with 1118 additions and 3254 deletions

View File

@ -346,29 +346,27 @@ gboolean db_iterator_move_last (DbIterator * self)
gboolean db_iterator_move_previous (DbIterator * self)
{
DbIter * self_iter;
gboolean move = FALSE;
DB_ITERATOR_GET_INTERFACE (self)->get_iter (self, &self_iter);
if (self_iter)
{
gboolean ret = FALSE;
DbIter * iter = db_iter_copy (self_iter);
DbModel * model = GET_MODEL (self);
if (db_model_iter_prev (model, iter))
ret = db_iterator_move_iter (self, iter);
move = db_iterator_move_iter (self, iter);
else
g_warning (
"Can't move the cursor to the previous "
"row, because there are no more rows."
);
g_warning ("Can't move the cursor to the previous "
"row, because there are no more rows.");
db_iter_free (iter);
return ret;
}
else
return db_iterator_move_first (self);
move = db_iterator_move_first (self);
return move;
}
/**
@ -383,29 +381,27 @@ gboolean db_iterator_move_previous (DbIterator * self)
gboolean db_iterator_move_next (DbIterator * self)
{
DbIter * self_iter;
gboolean move = FALSE;
DB_ITERATOR_GET_INTERFACE (self)->get_iter (self, &self_iter);
if (self_iter)
{
gboolean ret;
DbIter * iter = db_iter_copy (self_iter);
DbModel * model = GET_MODEL (self);
if (db_model_iter_next (model, iter))
ret = db_iterator_move_iter (self, iter);
move = db_iterator_move_iter (self, iter);
else
g_warning (
"Can't move the cursor to the next "
"row, because there are no more rows."
);
g_warning ("Can't move the cursor to the next "
"row, because there are no more rows.");
db_iter_free (iter);
return ret;
}
else
return db_iterator_move_last (self);
move = db_iterator_move_last (self);
return move;
}
/**
@ -552,7 +548,7 @@ const GValue * db_iterator_get_value (DbIterator * self, const gchar * column_na
/**
* db_iterator_set_value:
* @self: a #DbIterator
* @column: the column name.
* @column_name: the column name.
* @value: a #GValue with the new value.
* @err: (out) (allow-none): the return location for a #GError or %NULL.
*

View File

@ -61,7 +61,6 @@ struct _DbModelPrivate
DbModelStatus status;
gboolean autoload;
gint stamp;
DbRow * null_row;
GHashTable * defaults;
@ -127,7 +126,6 @@ typedef struct
{
gint col;
gint order;
DbRow * null_row;
}
SortInfo;
@ -848,22 +846,11 @@ static gint db_model_value_compare0 (const GValue * a, const GValue * b)
static inline gint db_model_valcmp (gpointer * a, gpointer * b, SortInfo * info)
{
gint order;
gint dir = info->order == DB_SORT_ASCENDING ? 1 : -1;
DbRow * first = *a;
DbRow * second = *b;
if (first == info->null_row)
order = -1;
else if (second == info->null_row)
order = 1;
else
{
gint dir = info->order == DB_SORT_ASCENDING ? 1 : -1;
order = dir * db_model_value_compare0 (&first->value[info->col]
,&second->value[info->col]);
}
return order;
return dir * db_model_value_compare0 (&first->value[info->col], &second->value[info->col]);
}
static void db_model_set_status (DbModel * self, DbModelStatus status)
@ -1828,9 +1815,6 @@ void db_model_set (DbModel * self, DbIter * iter, ...)
g_return_if_fail (DB_IS_MODEL (self));
g_return_if_fail (self->priv->result);
g_return_if_fail (iter != NULL);
if (iter->data == self->priv->null_row)
return;
va_start (va, iter);
@ -1923,11 +1907,6 @@ gboolean db_model_set_value (DbModel * self, DbIter * iter, gint col, const GVal
GvnParamSpec * spec = priv->column[col].spec;
g_return_val_if_fail (0 <= col && col < priv->result->ncols, FALSE);
if (iter->data == self->priv->null_row)
{
return FALSE;
}
if (!gvn_param_spec_validate (spec, value, err))
return FALSE;
@ -2078,9 +2057,6 @@ void db_model_delete (DbModel * self, DbIter * iter)
return;
}
if (iter->data == self->priv->null_row)
return;
if (!db_model_set_row_operation
(self, g_ptr_array_index (self->priv->data, DB_ROW_POSITION (iter->data)),
DB_MODEL_ROW_OP_DELETE, 0))
@ -2092,68 +2068,6 @@ void db_model_delete (DbModel * self, DbIter * iter)
db_model_perform_operations (self, FALSE);
}
/**
* db_model_use_null_row:
* @self: a #DbModel
* @use: wether to use a null row
*
* Sets wether to use a null row at the end of the model. This row can't be
* modified by the methods @db_model_delete or @db_model_set_value, the only way
* to remove it is to call @db_model_use_null_row again passing #FALSE.
**/
void db_model_use_null_row (DbModel * self, gboolean use)
{
DbModelPrivate * priv;
g_return_if_fail (DB_IS_MODEL (self));
priv = self->priv;
if (MODEL_NOT_READY(self) || !priv->result
|| ((priv->null_row != NULL) == use))
return;
if (use)
{
if (!priv->null_row)
{
gint i;
DbIter iter;
DbModelPrivate * priv = self->priv;
DbRow * curr, * row = db_row_new (priv->result->ncols, 0);
gpointer * data = priv->data->pdata;
for (i = 0; i < row->len; i++)
g_value_init (&row->value[i], GVN_TYPE_NULL);
priv->null_row = row;
iter.data = row;
iter.stamp = priv->stamp;
priv->result->nrows++;
g_ptr_array_set_size (priv->data, priv->result->nrows);
curr = data[0];
data[0] = row;
for (i = 1; i < priv->result->nrows; i++)
{
DbRow * next = data[i];
DB_ROW_POSITION (curr)++;
data[i] = curr;
curr = next;
}
g_signal_emit (self, db_model_signal[LINE_INSERTED], 0, &iter);
}
}
else if (priv->null_row)
{
g_signal_emit (self, db_model_signal[LINE_DELETED], 0,
DB_ROW_POSITION (priv->null_row));
priv->null_row = NULL;
}
}
/**
* db_model_order_by:
* @self: a #DbModel
@ -2193,8 +2107,7 @@ void db_model_order_by (DbModel * self, gint col, DbSortType order)
priv->sort_column_id = col;
g_signal_emit (self, db_model_signal[SORT_CHANGED], 0, NULL);
info.col = col;
info.null_row = priv->null_row;
info.col = col;
info.order = order;
g_ptr_array_sort_with_data (priv->data
@ -3154,7 +3067,6 @@ static void db_model_init (DbModel * self)
);
priv->fresh = TRUE;
priv->null_row = NULL;
priv->sort_column_id = DB_MODEL_UNSORTED_SORT_COLUMN_ID;
priv->default_sort_data = NULL;
priv->default_sort_func = NULL;

View File

@ -206,7 +206,6 @@ void db_model_unset_update_flags (DbModel * self
void db_model_set_mode (DbModel * self, DbModelMode mode);
DbModelMode db_model_get_mode (DbModel * self);
void db_model_toggle_mode (DbModel * self);
void db_model_use_null_row (DbModel * self, gboolean use);
gboolean db_model_get_last (DbModel * self, DbIter * iter);
void db_model_get (DbModel * self
,DbIter * iter

View File

@ -112,7 +112,7 @@
<xi:include href="xml/vn-gui.xml"/>
<xi:include href="xml/vn-mod.xml"/>
<xi:include href="xml/vn-form.xml"/>
<xi:include href="xml/vn-grid-model.xml"/>
<xi:include href="xml/vn-list-model.xml"/>
<xi:include href="xml/vn-grid.xml"/>
<xi:include href="xml/vn-handler.xml"/>
<xi:include href="xml/vn-set.xml"/>

View File

@ -249,6 +249,10 @@ void gvn_param_set_string (GvnParam * self, const gchar * value)
gvn_param_take_value (self, gvn_value_new_string (value));
}
/**
* gvn_param_get_boxed:
* Return value: (transfer none):
**/
gpointer gvn_param_get_boxed (GvnParam * self)
{
g_return_val_if_fail (GVN_IS_PARAM (self), NULL);

View File

@ -703,6 +703,10 @@ GValue * gvn_value_new_string (const gchar * value)
return gvalue;
}
/**
* gvn_value_get_boxed:
* Return value: (transfer none):
**/
gpointer gvn_value_get_boxed (const GValue * value)
{
g_return_val_if_fail (G_IS_VALUE (value), NULL);

View File

@ -1,737 +0,0 @@
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in 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.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# Definition of the install directories
# Libraries
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(top_srcdir)/Makefile.decl $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am
subdir = module
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/build/m4/dev-tools.m4 \
$(top_srcdir)/build/m4/gtk-doc.m4 \
$(top_srcdir)/build/m4/intltool.m4 \
$(top_srcdir)/build/m4/libtool.m4 \
$(top_srcdir)/build/m4/ltoptions.m4 \
$(top_srcdir)/build/m4/ltsugar.m4 \
$(top_srcdir)/build/m4/ltversion.m4 \
$(top_srcdir)/build/m4/lt~obsolete.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/build/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_DEBUG = @ENABLE_DEBUG@
ENABLE_INSTALL = @ENABLE_INSTALL@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GIR_SCANNER_ARGS = @GIR_SCANNER_ARGS@
GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
GTKDOC_REBASE = @GTKDOC_REBASE@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RAGEL = @RAGEL@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALAC = @VALAC@
VALA_VERSION = @VALA_VERSION@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
XGETTEXT = @XGETTEXT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gdome_CFLAGS = @gdome_CFLAGS@
gdome_LIBS = @gdome_LIBS@
gladeui_CFLAGS = @gladeui_CFLAGS@
gladeui_LIBS = @gladeui_LIBS@
glib_CFLAGS = @glib_CFLAGS@
glib_LIBS = @glib_LIBS@
gsettingsschemadir = @gsettingsschemadir@
gtk_CFLAGS = @gtk_CFLAGS@
gtk_LIBS = @gtk_LIBS@
gtksourceview_CFLAGS = @gtksourceview_CFLAGS@
gtksourceview_LIBS = @gtksourceview_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
intltool__v_merge_options_ = @intltool__v_merge_options_@
intltool__v_merge_options_0 = @intltool__v_merge_options_0@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sqlite_CFLAGS = @sqlite_CFLAGS@
sqlite_LIBS = @sqlite_LIBS@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
uVERSION = @uVERSION@
@ENABLE_INSTALL_FALSE@hedera_libdir = $(abs_top_builddir)
@ENABLE_INSTALL_TRUE@hedera_libdir = $(pkglibdir)
@ENABLE_INSTALL_FALSE@hedera_datadir = $(abs_top_srcdir)
@ENABLE_INSTALL_TRUE@hedera_datadir = $(pkgdatadir)
gvn_libdir = $(hedera_libdir)
sql_libdir = $(hedera_libdir)
vn_libdir = $(hedera_libdir)
field_libdir = $(vn_libdir)
column_libdir = $(vn_libdir)
plugin_libdir = $(hedera_libdir)/plugin
@ENABLE_INSTALL_FALSE@db_libdir = $(hedera_libdir)/db
@ENABLE_INSTALL_TRUE@db_libdir = $(hedera_libdir)
@ENABLE_INSTALL_FALSE@module_libdir = $(hedera_libdir)/module/src/.libs
@ENABLE_INSTALL_TRUE@module_libdir = $(hedera_libdir)/module
# Binaries (programs)
hedera_bindir = $(bindir)
# Headers and development files
hedera_includedir = $(pkgincludedir)
gvn_includedir = $(hedera_includedir)/gvn
sql_includedir = $(hedera_includedir)/sql
db_includedir = $(hedera_includedir)/db
vn_includedir = $(hedera_includedir)/vn
field_includedir = $(vn_includedir)/field
column_includedir = $(vn_includedir)/column
pkgconfigdir = $(libdir)/pkgconfig
@ENABLE_VALA_TRUE@girdir = $(datadir)/gir-1.0
@ENABLE_VALA_TRUE@typelibdir = $(prefix)/lib/girepository-1.0
@ENABLE_VALA_TRUE@vapidata = $(top_srcdir)/vapi
@ENABLE_VALA_TRUE@vapis = $(top_builddir)/vapi
@ENABLE_VALA_TRUE@vapidir = $(datadir)/vala-$(VALA_VERSION)/vapi
gladevn_libdir = $(prefix)/lib/glade/modules
gladevn_datadir = $(datadir)/glade/catalogs
# Data
vn_datadir = $(hedera_datadir)/vn
vn_imagedir = $(vn_datadir)/image
vn_guidir = $(vn_datadir)/gui
module_querydir = $(hedera_datadir)/module/sql
@ENABLE_INSTALL_FALSE@vn_configdir = $(vn_datadir)/schema
@ENABLE_INSTALL_TRUE@vn_configdir = $(vn_datadir)
@ENABLE_INSTALL_FALSE@vn_xmldir = $(vn_datadir)/schema
@ENABLE_INSTALL_TRUE@vn_xmldir = $(datadir)/xml/$(PACKAGE)
@ENABLE_INSTALL_FALSE@module_datadir = $(hedera_datadir)/module/data
@ENABLE_INSTALL_TRUE@module_datadir = $(hedera_datadir)/module
desktopdir = $(datadir)/applications
vapigen_v = $(vapigen_v_@AM_V@)
vapigen_v_ = $(vapigen_v_@AM_DEFAULT_V@)
vapigen_v_0 = @echo " VAPIGEN $(subst $(vapis)/,,$@)";
SUBDIRS = \
src \
data
all: all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu module/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu module/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*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);; \
esac;
$(top_srcdir)/Makefile.decl:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-recursive
all-am: Makefile
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am:
.MAKE: $(am__recursive_targets) install-am install-strip
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
check-am clean clean-generic clean-libtool cscopelist-am ctags \
ctags-am distclean 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-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am tags tags-am uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,618 +0,0 @@
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in 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.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# Definition of the install directories
# Libraries
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(top_srcdir)/Makefile.decl $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am
subdir = module/data
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/build/m4/dev-tools.m4 \
$(top_srcdir)/build/m4/gtk-doc.m4 \
$(top_srcdir)/build/m4/intltool.m4 \
$(top_srcdir)/build/m4/libtool.m4 \
$(top_srcdir)/build/m4/ltoptions.m4 \
$(top_srcdir)/build/m4/ltsugar.m4 \
$(top_srcdir)/build/m4/ltversion.m4 \
$(top_srcdir)/build/m4/lt~obsolete.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/build/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(exampledir)"
DATA = $(example_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_DEBUG = @ENABLE_DEBUG@
ENABLE_INSTALL = @ENABLE_INSTALL@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GIR_SCANNER_ARGS = @GIR_SCANNER_ARGS@
GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
GTKDOC_REBASE = @GTKDOC_REBASE@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RAGEL = @RAGEL@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALAC = @VALAC@
VALA_VERSION = @VALA_VERSION@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
XGETTEXT = @XGETTEXT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gdome_CFLAGS = @gdome_CFLAGS@
gdome_LIBS = @gdome_LIBS@
gladeui_CFLAGS = @gladeui_CFLAGS@
gladeui_LIBS = @gladeui_LIBS@
glib_CFLAGS = @glib_CFLAGS@
glib_LIBS = @glib_LIBS@
gsettingsschemadir = @gsettingsschemadir@
gtk_CFLAGS = @gtk_CFLAGS@
gtk_LIBS = @gtk_LIBS@
gtksourceview_CFLAGS = @gtksourceview_CFLAGS@
gtksourceview_LIBS = @gtksourceview_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
intltool__v_merge_options_ = @intltool__v_merge_options_@
intltool__v_merge_options_0 = @intltool__v_merge_options_0@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sqlite_CFLAGS = @sqlite_CFLAGS@
sqlite_LIBS = @sqlite_LIBS@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
uVERSION = @uVERSION@
@ENABLE_INSTALL_FALSE@hedera_libdir = $(abs_top_builddir)
@ENABLE_INSTALL_TRUE@hedera_libdir = $(pkglibdir)
@ENABLE_INSTALL_FALSE@hedera_datadir = $(abs_top_srcdir)
@ENABLE_INSTALL_TRUE@hedera_datadir = $(pkgdatadir)
gvn_libdir = $(hedera_libdir)
sql_libdir = $(hedera_libdir)
vn_libdir = $(hedera_libdir)
field_libdir = $(vn_libdir)
column_libdir = $(vn_libdir)
plugin_libdir = $(hedera_libdir)/plugin
@ENABLE_INSTALL_FALSE@db_libdir = $(hedera_libdir)/db
@ENABLE_INSTALL_TRUE@db_libdir = $(hedera_libdir)
@ENABLE_INSTALL_FALSE@module_libdir = $(hedera_libdir)/module/src/.libs
@ENABLE_INSTALL_TRUE@module_libdir = $(hedera_libdir)/module
# Binaries (programs)
hedera_bindir = $(bindir)
# Headers and development files
hedera_includedir = $(pkgincludedir)
gvn_includedir = $(hedera_includedir)/gvn
sql_includedir = $(hedera_includedir)/sql
db_includedir = $(hedera_includedir)/db
vn_includedir = $(hedera_includedir)/vn
field_includedir = $(vn_includedir)/field
column_includedir = $(vn_includedir)/column
pkgconfigdir = $(libdir)/pkgconfig
@ENABLE_VALA_TRUE@girdir = $(datadir)/gir-1.0
@ENABLE_VALA_TRUE@typelibdir = $(prefix)/lib/girepository-1.0
@ENABLE_VALA_TRUE@vapidata = $(top_srcdir)/vapi
@ENABLE_VALA_TRUE@vapis = $(top_builddir)/vapi
@ENABLE_VALA_TRUE@vapidir = $(datadir)/vala-$(VALA_VERSION)/vapi
gladevn_libdir = $(prefix)/lib/glade/modules
gladevn_datadir = $(datadir)/glade/catalogs
# Data
vn_datadir = $(hedera_datadir)/vn
vn_imagedir = $(vn_datadir)/image
vn_guidir = $(vn_datadir)/gui
module_querydir = $(hedera_datadir)/module/sql
@ENABLE_INSTALL_FALSE@vn_configdir = $(vn_datadir)/schema
@ENABLE_INSTALL_TRUE@vn_configdir = $(vn_datadir)
@ENABLE_INSTALL_FALSE@vn_xmldir = $(vn_datadir)/schema
@ENABLE_INSTALL_TRUE@vn_xmldir = $(datadir)/xml/$(PACKAGE)
@ENABLE_INSTALL_FALSE@module_datadir = $(hedera_datadir)/module/data
@ENABLE_INSTALL_TRUE@module_datadir = $(hedera_datadir)/module
desktopdir = $(datadir)/applications
vapigen_v = $(vapigen_v_@AM_V@)
vapigen_v_ = $(vapigen_v_@AM_DEFAULT_V@)
vapigen_v_0 = @echo " VAPIGEN $(subst $(vapis)/,,$@)";
exampledir = $(module_datadir)
example_DATA = \
example.xml \
example-menu.xml \
consulter.glade \
shelfs.glade \
consulter-menu.xml \
customer.glade
EXTRA_DIST = $(example_DATA)
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu module/data/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu module/data/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*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);; \
esac;
$(top_srcdir)/Makefile.decl:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-exampleDATA: $(example_DATA)
@$(NORMAL_INSTALL)
@list='$(example_DATA)'; test -n "$(exampledir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(exampledir)'"; \
$(MKDIR_P) "$(DESTDIR)$(exampledir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(exampledir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(exampledir)" || exit $$?; \
done
uninstall-exampleDATA:
@$(NORMAL_UNINSTALL)
@list='$(example_DATA)'; test -n "$(exampledir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(exampledir)'; $(am__uninstall_files_from_dir)
tags TAGS:
ctags CTAGS:
cscope cscopelist:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(exampledir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-exampleDATA
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-exampleDATA
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
cscopelist-am ctags-am distclean distclean-generic \
distclean-libtool distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exampleDATA install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
uninstall-am uninstall-exampleDATA
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,814 +0,0 @@
# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in 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.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# Definition of the install directories
# Libraries
VPATH = @srcdir@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(top_srcdir)/Makefile.decl $(srcdir)/Makefile.in \
$(srcdir)/Makefile.am $(top_srcdir)/build/depcomp
subdir = module/src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/build/m4/dev-tools.m4 \
$(top_srcdir)/build/m4/gtk-doc.m4 \
$(top_srcdir)/build/m4/intltool.m4 \
$(top_srcdir)/build/m4/libtool.m4 \
$(top_srcdir)/build/m4/ltoptions.m4 \
$(top_srcdir)/build/m4/ltsugar.m4 \
$(top_srcdir)/build/m4/ltversion.m4 \
$(top_srcdir)/build/m4/lt~obsolete.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/build/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(example_libdir)" \
"$(DESTDIR)$(example_querydir)"
LTLIBRARIES = $(example_lib_LTLIBRARIES)
libexample_la_DEPENDENCIES = $(top_builddir)/vn/libvn.la
am_libexample_la_OBJECTS = vn-consulter.lo vn-shelves.lo \
vn-customer.lo
libexample_la_OBJECTS = $(am_libexample_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
libexample_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(libexample_la_LDFLAGS) $(LDFLAGS) -o $@
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/build
depcomp = $(SHELL) $(top_srcdir)/build/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(libexample_la_SOURCES)
DIST_SOURCES = $(libexample_la_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
DATA = $(example_query_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALL_LINGUAS = @ALL_LINGUAS@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_DEBUG = @ENABLE_DEBUG@
ENABLE_INSTALL = @ENABLE_INSTALL@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GIR_SCANNER_ARGS = @GIR_SCANNER_ARGS@
GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
GTKDOC_CHECK = @GTKDOC_CHECK@
GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
GTKDOC_MKPDF = @GTKDOC_MKPDF@
GTKDOC_REBASE = @GTKDOC_REBASE@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
RAGEL = @RAGEL@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VALAC = @VALAC@
VALA_VERSION = @VALA_VERSION@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
XGETTEXT = @XGETTEXT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
gdome_CFLAGS = @gdome_CFLAGS@
gdome_LIBS = @gdome_LIBS@
gladeui_CFLAGS = @gladeui_CFLAGS@
gladeui_LIBS = @gladeui_LIBS@
glib_CFLAGS = @glib_CFLAGS@
glib_LIBS = @glib_LIBS@
gsettingsschemadir = @gsettingsschemadir@
gtk_CFLAGS = @gtk_CFLAGS@
gtk_LIBS = @gtk_LIBS@
gtksourceview_CFLAGS = @gtksourceview_CFLAGS@
gtksourceview_LIBS = @gtksourceview_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
intltool__v_merge_options_ = @intltool__v_merge_options_@
intltool__v_merge_options_0 = @intltool__v_merge_options_0@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sqlite_CFLAGS = @sqlite_CFLAGS@
sqlite_LIBS = @sqlite_LIBS@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
uVERSION = @uVERSION@
@ENABLE_INSTALL_FALSE@hedera_libdir = $(abs_top_builddir)
@ENABLE_INSTALL_TRUE@hedera_libdir = $(pkglibdir)
@ENABLE_INSTALL_FALSE@hedera_datadir = $(abs_top_srcdir)
@ENABLE_INSTALL_TRUE@hedera_datadir = $(pkgdatadir)
gvn_libdir = $(hedera_libdir)
sql_libdir = $(hedera_libdir)
vn_libdir = $(hedera_libdir)
field_libdir = $(vn_libdir)
column_libdir = $(vn_libdir)
plugin_libdir = $(hedera_libdir)/plugin
@ENABLE_INSTALL_FALSE@db_libdir = $(hedera_libdir)/db
@ENABLE_INSTALL_TRUE@db_libdir = $(hedera_libdir)
@ENABLE_INSTALL_FALSE@module_libdir = $(hedera_libdir)/module/src/.libs
@ENABLE_INSTALL_TRUE@module_libdir = $(hedera_libdir)/module
# Binaries (programs)
hedera_bindir = $(bindir)
# Headers and development files
hedera_includedir = $(pkgincludedir)
gvn_includedir = $(hedera_includedir)/gvn
sql_includedir = $(hedera_includedir)/sql
db_includedir = $(hedera_includedir)/db
vn_includedir = $(hedera_includedir)/vn
field_includedir = $(vn_includedir)/field
column_includedir = $(vn_includedir)/column
pkgconfigdir = $(libdir)/pkgconfig
@ENABLE_VALA_TRUE@girdir = $(datadir)/gir-1.0
@ENABLE_VALA_TRUE@typelibdir = $(prefix)/lib/girepository-1.0
@ENABLE_VALA_TRUE@vapidata = $(top_srcdir)/vapi
@ENABLE_VALA_TRUE@vapis = $(top_builddir)/vapi
@ENABLE_VALA_TRUE@vapidir = $(datadir)/vala-$(VALA_VERSION)/vapi
gladevn_libdir = $(prefix)/lib/glade/modules
gladevn_datadir = $(datadir)/glade/catalogs
# Data
vn_datadir = $(hedera_datadir)/vn
vn_imagedir = $(vn_datadir)/image
vn_guidir = $(vn_datadir)/gui
module_querydir = $(hedera_datadir)/module/sql
@ENABLE_INSTALL_FALSE@vn_configdir = $(vn_datadir)/schema
@ENABLE_INSTALL_TRUE@vn_configdir = $(vn_datadir)
@ENABLE_INSTALL_FALSE@vn_xmldir = $(vn_datadir)/schema
@ENABLE_INSTALL_TRUE@vn_xmldir = $(datadir)/xml/$(PACKAGE)
@ENABLE_INSTALL_FALSE@module_datadir = $(hedera_datadir)/module/data
@ENABLE_INSTALL_TRUE@module_datadir = $(hedera_datadir)/module
desktopdir = $(datadir)/applications
vapigen_v = $(vapigen_v_@AM_V@)
vapigen_v_ = $(vapigen_v_@AM_DEFAULT_V@)
vapigen_v_0 = @echo " VAPIGEN $(subst $(vapis)/,,$@)";
example_libdir = $(module_libdir)
example_lib_LTLIBRARIES = libexample.la
AM_CPPFLAGS = \
-I$(top_srcdir) \
$(gtk_CFLAGS) \
$(DEFINES)
libexample_la_LDFLAGS = -avoid-version
libexample_la_LIBADD = $(top_builddir)/vn/libvn.la
libexample_la_SOURCES = \
vn-consulter.h \
vn-consulter.c \
vn-shelves.h \
vn-shelves.c \
vn-customer.h \
vn-customer.c
example_querydir = $(module_querydir)/example
example_query_DATA = ../sql/example/consulter.sql
DEFINES = -D_QUERY_PATH=\"$(module_querydir)\"
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Makefile.decl $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu module/src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu module/src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*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);; \
esac;
$(top_srcdir)/Makefile.decl:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-example_libLTLIBRARIES: $(example_lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
@list='$(example_lib_LTLIBRARIES)'; test -n "$(example_libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
list2="$$list2 $$p"; \
else :; fi; \
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(example_libdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(example_libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(example_libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(example_libdir)"; \
}
uninstall-example_libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(example_lib_LTLIBRARIES)'; test -n "$(example_libdir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(example_libdir)/$$f'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(example_libdir)/$$f"; \
done
clean-example_libLTLIBRARIES:
-test -z "$(example_lib_LTLIBRARIES)" || rm -f $(example_lib_LTLIBRARIES)
@list='$(example_lib_LTLIBRARIES)'; \
locs=`for p in $$list; do echo $$p; done | \
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
sort -u`; \
test -z "$$locs" || { \
echo rm -f $${locs}; \
rm -f $${locs}; \
}
libexample.la: $(libexample_la_OBJECTS) $(libexample_la_DEPENDENCIES) $(EXTRA_libexample_la_DEPENDENCIES)
$(AM_V_CCLD)$(libexample_la_LINK) -rpath $(example_libdir) $(libexample_la_OBJECTS) $(libexample_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vn-consulter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vn-customer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vn-shelves.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-example_queryDATA: $(example_query_DATA)
@$(NORMAL_INSTALL)
@list='$(example_query_DATA)'; test -n "$(example_querydir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(example_querydir)'"; \
$(MKDIR_P) "$(DESTDIR)$(example_querydir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(example_querydir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(example_querydir)" || exit $$?; \
done
uninstall-example_queryDATA:
@$(NORMAL_UNINSTALL)
@list='$(example_query_DATA)'; test -n "$(example_querydir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(example_querydir)'; $(am__uninstall_files_from_dir)
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(DATA)
installdirs:
for dir in "$(DESTDIR)$(example_libdir)" "$(DESTDIR)$(example_querydir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-example_libLTLIBRARIES clean-generic clean-libtool \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-example_libLTLIBRARIES \
install-example_queryDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-example_libLTLIBRARIES \
uninstall-example_queryDATA
.MAKE: install-am install-data-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
clean-example_libLTLIBRARIES clean-generic clean-libtool \
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-data-hook install-dvi \
install-dvi-am install-example_libLTLIBRARIES \
install-example_queryDATA install-exec install-exec-am \
install-html install-html-am install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-example_libLTLIBRARIES \
uninstall-example_queryDATA
install-data-hook:
rm -f $(DESTDIR)$(module_libdir)/libexample.la
rm -f $(DESTDIR)$(module_libdir)/libexample.a
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -52,7 +52,7 @@ static gboolean db_sqlite_open (DbSqlite * self, const gchar * host,
g_set_error (err
,DB_CONN_LOG_DOMAIN
,DB_CONN_ERROR_OPENING
,sqlite3_errmsg (self->sqlite)
,"%s", sqlite3_errmsg (self->sqlite)
);
return FALSE;
}
@ -209,7 +209,7 @@ static DbResultSet * db_sqlite_query (DbSqlite * self, const gchar * sql, GError
g_set_error (err
,DB_CONN_LOG_DOMAIN
,DB_CONN_ERROR_UNKNOW
,sqlite3_errmsg (self->sqlite)
,"%s", sqlite3_errmsg (self->sqlite)
);
}

View File

@ -29,7 +29,7 @@ db/db-request.c
db/db-file-loader.c
vn/vn-gui.c
vn/vn-grid-model.c
vn/vn-list-model.c
vn/vn-grid.c
vn/vn-handler.c
vn/vn-form.c
@ -66,3 +66,5 @@ glade/glade-sql-batch.c
module/data/consulter.glade
[type: gettext/glade]module/data/consulter-menu.xml
module/src/vn-consulter.c
module/data/shelves.glade
module/src/vn-shelves.c

100
po/ca.po
View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 15:30+0200\n"
"POT-Creation-Date: 2014-10-09 10:39+0200\n"
"PO-Revision-Date: 2013-06-04 13:38+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Catalan\n"
@ -31,19 +31,19 @@ msgstr "El parametre no pot ser nul"
msgid "Incompatible type for this param"
msgstr "Tipus incompatible per a aquest parametre"
#: ../gvn/gvn-param.c:285
#: ../gvn/gvn-param.c:289
msgid "Value"
msgstr ""
#: ../gvn/gvn-param.c:286
#: ../gvn/gvn-param.c:290
msgid "The value of the param"
msgstr ""
#: ../gvn/gvn-param.c:292
#: ../gvn/gvn-param.c:296
msgid "Master"
msgstr ""
#: ../gvn/gvn-param.c:293
#: ../gvn/gvn-param.c:297
#, fuzzy
msgid "The master parameter"
msgstr "Nom d'usuari"
@ -69,7 +69,7 @@ msgstr ""
msgid "The character used for delimite the name of fields, tables..."
msgstr ""
#: ../sql/sql-string.c:188 ../db/db-model.c:3337 ../db/db-request.c:449
#: ../sql/sql-string.c:188 ../db/db-model.c:3249 ../db/db-request.c:449
msgid "SQL"
msgstr ""
@ -262,80 +262,80 @@ msgstr ""
msgid "Can't allocate the needed memory"
msgstr ""
#: ../db/db-model.c:3311 ../db/db-request.c:442 ../vn/vn-gui.c:1408
#: ../db/db-model.c:3223 ../db/db-request.c:442 ../vn/vn-gui.c:1408
#: ../vn/vn-form.c:245
msgid "Connection"
msgstr ""
#: ../db/db-model.c:3312
#: ../db/db-model.c:3224
msgid "The DbConn that manages the connection to the database"
msgstr ""
#: ../db/db-model.c:3319
#: ../db/db-model.c:3231
msgid "Statement"
msgstr ""
#: ../db/db-model.c:3320
#: ../db/db-model.c:3232
msgid "The statement which retrieves the data"
msgstr ""
#: ../db/db-model.c:3327
#: ../db/db-model.c:3239
msgid "Use file"
msgstr ""
#: ../db/db-model.c:3328
#: ../db/db-model.c:3240
msgid ""
"If this is set to TRUE, the \"sql\" property will hold the name of a file "
"containing a query, if set to FALSE, \"sql\" is used as an SQL string"
msgstr ""
#: ../db/db-model.c:3338
#: ../db/db-model.c:3250
msgid ""
"Depending on the \"use-file\" property this will be the path to a file with "
"queries for the model or a SQL string"
msgstr ""
#: ../db/db-model.c:3347
#: ../db/db-model.c:3259
msgid "Main Table"
msgstr ""
#: ../db/db-model.c:3348
#: ../db/db-model.c:3260
msgid "The main table of the model"
msgstr ""
#: ../db/db-model.c:3355
#: ../db/db-model.c:3267
msgid "Update flags"
msgstr ""
#: ../db/db-model.c:3356
#: ../db/db-model.c:3268
msgid "The flags that indicate how a model can be modified"
msgstr ""
#: ../db/db-model.c:3364
#: ../db/db-model.c:3276
msgid "Result position"
msgstr ""
#: ../db/db-model.c:3365
#: ../db/db-model.c:3277
msgid ""
"The position where the query that will fill the model will be placed in a "
"multi-query"
msgstr ""
#: ../db/db-model.c:3375
#: ../db/db-model.c:3287
msgid "Partial delete"
msgstr ""
#: ../db/db-model.c:3376
#: ../db/db-model.c:3288
msgid ""
"When a row is deleted set all the fields from the table to null rather than "
"delete it."
msgstr ""
#: ../db/db-model.c:3384
#: ../db/db-model.c:3296
msgid "Batch"
msgstr ""
#: ../db/db-model.c:3385
#: ../db/db-model.c:3297
msgid "The batch assigned to the model"
msgstr ""
@ -578,7 +578,7 @@ msgstr ""
msgid "Connection closed"
msgstr ""
#: ../vn/vn-gui.c:919 ../vn/field/vn-http-image.c:119
#: ../vn/vn-gui.c:919 ../vn/field/vn-http-image.c:127
msgid "Loading"
msgstr ""
@ -590,7 +590,7 @@ msgstr ""
msgid "The connection used by Gui"
msgstr ""
#: ../vn/vn-gui.c:1415 ../vn/vn-login.c:611
#: ../vn/vn-gui.c:1415 ../vn/vn-login.c:613
msgid "Application"
msgstr ""
@ -598,6 +598,14 @@ msgstr ""
msgid "The application handler for the entire program"
msgstr ""
#: ../vn/vn-list-model.c:573
msgid "Null row"
msgstr ""
#: ../vn/vn-list-model.c:574
msgid "Whether the list model will add a null row or not"
msgstr ""
#: ../vn/vn-handler.c:74
msgid "Are you sure you want to delete the current selection?"
msgstr ""
@ -682,20 +690,20 @@ msgstr ""
msgid "The module"
msgstr ""
#: ../vn/vn-login.c:396 ../vn/vn-login.c:398 ../vn/vn-login.c:490
#: ../vn/vn-login.c:398 ../vn/vn-login.c:400 ../vn/vn-login.c:492
msgid "Login error"
msgstr ""
#: ../vn/vn-login.c:456
#: ../vn/vn-login.c:458
#, c-format
msgid "Bad connection settings, please check it."
msgstr ""
#: ../vn/vn-login.c:488
#: ../vn/vn-login.c:490
msgid "Please select a connection"
msgstr ""
#: ../vn/vn-login.c:612
#: ../vn/vn-login.c:614
msgid "The application"
msgstr ""
@ -766,19 +774,19 @@ msgstr ""
msgid "The number of decimal places to display."
msgstr ""
#: ../vn/field/vn-combo.c:298 ../vn/column/vn-column-combo.c:340
#: ../vn/field/vn-combo.c:297 ../vn/column/vn-column-combo.c:338
msgid "Index column"
msgstr ""
#: ../vn/field/vn-combo.c:299 ../vn/column/vn-column-combo.c:341
#: ../vn/field/vn-combo.c:298 ../vn/column/vn-column-combo.c:339
msgid "The column index of the model"
msgstr ""
#: ../vn/field/vn-combo.c:305 ../vn/column/vn-column-combo.c:347
#: ../vn/field/vn-combo.c:304 ../vn/column/vn-column-combo.c:345
msgid "Show column"
msgstr ""
#: ../vn/field/vn-combo.c:306 ../vn/column/vn-column-combo.c:348
#: ../vn/field/vn-combo.c:305 ../vn/column/vn-column-combo.c:346
msgid "The column of the model shown by combo"
msgstr ""
@ -829,37 +837,37 @@ msgstr ""
msgid "Undefined error"
msgstr ""
#: ../vn/field/vn-http-image.c:145
msgid "File loader already set"
msgstr ""
#. Se usará para subir imagenes y cambiar nombres, o abrir un menu contextual
#. g_signal_connect (self, "event", G_CALLBACK (vn_http_image_on_event), self);
#: ../vn/field/vn-http-image.c:184
#: ../vn/field/vn-http-image.c:120 ../vn/field/vn-http-image.c:192
msgid "No image set"
msgstr ""
#: ../vn/field/vn-http-image.c:212 ../vn/column/vn-column-image.c:536
#: ../vn/field/vn-http-image.c:153
msgid "File loader already set"
msgstr ""
#: ../vn/field/vn-http-image.c:220 ../vn/column/vn-column-image.c:536
msgid "File loader"
msgstr ""
#: ../vn/field/vn-http-image.c:213
#: ../vn/field/vn-http-image.c:221
msgid "A DbFileLoader, used to download the files"
msgstr ""
#: ../vn/field/vn-http-image.c:220
#: ../vn/field/vn-http-image.c:228
msgid "File path"
msgstr ""
#: ../vn/field/vn-http-image.c:221
#: ../vn/field/vn-http-image.c:229
msgid "The relative path to the image from file loader path"
msgstr ""
#: ../vn/field/vn-http-image.c:228
#: ../vn/field/vn-http-image.c:236
msgid "Image bytes"
msgstr ""
#: ../vn/field/vn-http-image.c:229
#: ../vn/field/vn-http-image.c:237
msgid "A GBytes structure with the image data"
msgstr ""
@ -884,11 +892,11 @@ msgid ""
"A VnColumnStyleFunc to set the properties of each cell depending on its value"
msgstr ""
#: ../vn/column/vn-column-combo.c:354
#: ../vn/column/vn-column-combo.c:352
msgid "Sort column"
msgstr ""
#: ../vn/column/vn-column-combo.c:355
#: ../vn/column/vn-column-combo.c:353
msgid "The field number of the Grid model used to sort the column"
msgstr ""

100
po/es.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 15:30+0200\n"
"POT-Creation-Date: 2014-10-09 10:39+0200\n"
"PO-Revision-Date: 2013-06-04 13:36+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Spanish\n"
@ -33,19 +33,19 @@ msgstr "El parámetro no puede ser nulo"
msgid "Incompatible type for this param"
msgstr "Tipo incompatible para este parámetro"
#: ../gvn/gvn-param.c:285
#: ../gvn/gvn-param.c:289
msgid "Value"
msgstr "Valor"
#: ../gvn/gvn-param.c:286
#: ../gvn/gvn-param.c:290
msgid "The value of the param"
msgstr "El valor del parámetro"
#: ../gvn/gvn-param.c:292
#: ../gvn/gvn-param.c:296
msgid "Master"
msgstr "Maestro"
#: ../gvn/gvn-param.c:293
#: ../gvn/gvn-param.c:297
msgid "The master parameter"
msgstr "El parámetro maestro"
@ -70,7 +70,7 @@ msgstr "Delimitador"
msgid "The character used for delimite the name of fields, tables..."
msgstr "El carácter usado para delimitar los nombres de campos, tablas..."
#: ../sql/sql-string.c:188 ../db/db-model.c:3337 ../db/db-request.c:449
#: ../sql/sql-string.c:188 ../db/db-model.c:3249 ../db/db-request.c:449
msgid "SQL"
msgstr "SQL"
@ -259,28 +259,28 @@ msgstr "Una de las posibles opciones de #SqlSelectType"
msgid "Can't allocate the needed memory"
msgstr "No es posible asignar la memoria necesaria"
#: ../db/db-model.c:3311 ../db/db-request.c:442 ../vn/vn-gui.c:1408
#: ../db/db-model.c:3223 ../db/db-request.c:442 ../vn/vn-gui.c:1408
#: ../vn/vn-form.c:245
msgid "Connection"
msgstr "Conexión"
#: ../db/db-model.c:3312
#: ../db/db-model.c:3224
msgid "The DbConn that manages the connection to the database"
msgstr "La DbConn que controla la conexión a la base de datos"
#: ../db/db-model.c:3319
#: ../db/db-model.c:3231
msgid "Statement"
msgstr "Consulta"
#: ../db/db-model.c:3320
#: ../db/db-model.c:3232
msgid "The statement which retrieves the data"
msgstr "La consulta que recupera los datos"
#: ../db/db-model.c:3327
#: ../db/db-model.c:3239
msgid "Use file"
msgstr "Usa fichero"
#: ../db/db-model.c:3328
#: ../db/db-model.c:3240
msgid ""
"If this is set to TRUE, the \"sql\" property will hold the name of a file "
"containing a query, if set to FALSE, \"sql\" is used as an SQL string"
@ -288,7 +288,7 @@ msgstr ""
"Si es TRUE, la propiedad \"sql\" contiene el nombre de un archivo, si es "
"falso, \"sql\" se usa como una cadena SQL"
#: ../db/db-model.c:3338
#: ../db/db-model.c:3250
msgid ""
"Depending on the \"use-file\" property this will be the path to a file with "
"queries for the model or a SQL string"
@ -296,27 +296,27 @@ msgstr ""
"Dependiendo de la propiedad \"use-file\", esta propiedad será la ruta a un "
"fichero con consultas para el modelo o una cadena SQL"
#: ../db/db-model.c:3347
#: ../db/db-model.c:3259
msgid "Main Table"
msgstr "Tabla principal"
#: ../db/db-model.c:3348
#: ../db/db-model.c:3260
msgid "The main table of the model"
msgstr "La tabla principal del modelo"
#: ../db/db-model.c:3355
#: ../db/db-model.c:3267
msgid "Update flags"
msgstr "Flags de actualización"
#: ../db/db-model.c:3356
#: ../db/db-model.c:3268
msgid "The flags that indicate how a model can be modified"
msgstr "Indican como se puede modificar el modelo"
#: ../db/db-model.c:3364
#: ../db/db-model.c:3276
msgid "Result position"
msgstr "Posición del resultado"
#: ../db/db-model.c:3365
#: ../db/db-model.c:3277
msgid ""
"The position where the query that will fill the model will be placed in a "
"multi-query"
@ -324,11 +324,11 @@ msgstr ""
"La posición en la que se situa la consulta que pone datos en el modelo en "
"una consulta múltiple"
#: ../db/db-model.c:3375
#: ../db/db-model.c:3287
msgid "Partial delete"
msgstr "Delete parcial"
#: ../db/db-model.c:3376
#: ../db/db-model.c:3288
msgid ""
"When a row is deleted set all the fields from the table to null rather than "
"delete it."
@ -336,11 +336,11 @@ msgstr ""
"Cuando una fila es eliminada, poner todos los campos de la tabla a nulo en "
"lugar de borrarla."
#: ../db/db-model.c:3384
#: ../db/db-model.c:3296
msgid "Batch"
msgstr "Batch"
#: ../db/db-model.c:3385
#: ../db/db-model.c:3297
msgid "The batch assigned to the model"
msgstr "El batch asignado al modelo"
@ -587,7 +587,7 @@ msgstr "Conexión perdida"
msgid "Connection closed"
msgstr "Conexión cerrada"
#: ../vn/vn-gui.c:919 ../vn/field/vn-http-image.c:119
#: ../vn/vn-gui.c:919 ../vn/field/vn-http-image.c:127
msgid "Loading"
msgstr "Cargando"
@ -599,7 +599,7 @@ msgstr "Preparado"
msgid "The connection used by Gui"
msgstr "La conexión empleada por Gui"
#: ../vn/vn-gui.c:1415 ../vn/vn-login.c:611
#: ../vn/vn-gui.c:1415 ../vn/vn-login.c:613
msgid "Application"
msgstr "Aplicación"
@ -607,6 +607,14 @@ msgstr "Aplicación"
msgid "The application handler for the entire program"
msgstr "El manejador de la aplicación para todo el programa"
#: ../vn/vn-list-model.c:573
msgid "Null row"
msgstr "Fila nula"
#: ../vn/vn-list-model.c:574
msgid "Whether the list model will add a null row or not"
msgstr "Indica si el modelo añadirá una fila nula o no"
#: ../vn/vn-handler.c:74
msgid "Are you sure you want to delete the current selection?"
msgstr "¿Estás seguro de que quieres eliminar los registros seleccionados?"
@ -691,20 +699,20 @@ msgstr "Módulo"
msgid "The module"
msgstr "El módulo"
#: ../vn/vn-login.c:396 ../vn/vn-login.c:398 ../vn/vn-login.c:490
#: ../vn/vn-login.c:398 ../vn/vn-login.c:400 ../vn/vn-login.c:492
msgid "Login error"
msgstr "Error de acceso"
#: ../vn/vn-login.c:456
#: ../vn/vn-login.c:458
#, c-format
msgid "Bad connection settings, please check it."
msgstr "Los parámetros de la conexión son incorrectos, compruébalos por favor."
#: ../vn/vn-login.c:488
#: ../vn/vn-login.c:490
msgid "Please select a connection"
msgstr "Por favor, selecciona una conexión"
#: ../vn/vn-login.c:612
#: ../vn/vn-login.c:614
msgid "The application"
msgstr "La aplicación"
@ -777,19 +785,19 @@ msgstr "Dí­gitos"
msgid "The number of decimal places to display."
msgstr "El número de posiciones decimales que se muestran"
#: ../vn/field/vn-combo.c:298 ../vn/column/vn-column-combo.c:340
#: ../vn/field/vn-combo.c:297 ../vn/column/vn-column-combo.c:338
msgid "Index column"
msgstr "Columna índice"
#: ../vn/field/vn-combo.c:299 ../vn/column/vn-column-combo.c:341
#: ../vn/field/vn-combo.c:298 ../vn/column/vn-column-combo.c:339
msgid "The column index of the model"
msgstr "La columna í­ndice del modelo"
#: ../vn/field/vn-combo.c:305 ../vn/column/vn-column-combo.c:347
#: ../vn/field/vn-combo.c:304 ../vn/column/vn-column-combo.c:345
msgid "Show column"
msgstr "Columna visible"
#: ../vn/field/vn-combo.c:306 ../vn/column/vn-column-combo.c:348
#: ../vn/field/vn-combo.c:305 ../vn/column/vn-column-combo.c:346
msgid "The column of the model shown by combo"
msgstr "La columna del modelo que se mostrará en el combo"
@ -843,37 +851,37 @@ msgstr "Selecciona la imagen"
msgid "Undefined error"
msgstr "Error indefinido"
#: ../vn/field/vn-http-image.c:145
msgid "File loader already set"
msgstr "Ya se ha especificado un cargador de archivos"
#. Se usará para subir imagenes y cambiar nombres, o abrir un menu contextual
#. g_signal_connect (self, "event", G_CALLBACK (vn_http_image_on_event), self);
#: ../vn/field/vn-http-image.c:184
#: ../vn/field/vn-http-image.c:120 ../vn/field/vn-http-image.c:192
msgid "No image set"
msgstr "Sin imagen"
#: ../vn/field/vn-http-image.c:212 ../vn/column/vn-column-image.c:536
#: ../vn/field/vn-http-image.c:153
msgid "File loader already set"
msgstr "Ya se ha especificado un cargador de archivos"
#: ../vn/field/vn-http-image.c:220 ../vn/column/vn-column-image.c:536
msgid "File loader"
msgstr "Cargador de archivos"
#: ../vn/field/vn-http-image.c:213
#: ../vn/field/vn-http-image.c:221
msgid "A DbFileLoader, used to download the files"
msgstr "Un DbFileLoader que se usará para descargar los archivos"
#: ../vn/field/vn-http-image.c:220
#: ../vn/field/vn-http-image.c:228
msgid "File path"
msgstr "Ruta del archivo"
#: ../vn/field/vn-http-image.c:221
#: ../vn/field/vn-http-image.c:229
msgid "The relative path to the image from file loader path"
msgstr "La ruta relativa a la imágen desde la del cargador de archivos"
#: ../vn/field/vn-http-image.c:228
#: ../vn/field/vn-http-image.c:236
msgid "Image bytes"
msgstr "Bytes"
#: ../vn/field/vn-http-image.c:229
#: ../vn/field/vn-http-image.c:237
msgid "A GBytes structure with the image data"
msgstr "Una estructura GBytes con los datos de la imágen"
@ -900,11 +908,11 @@ msgstr ""
"Una VnColumnStyleFunc para configurar las propiedadesde cada celda "
"dependiendo de su valor"
#: ../vn/column/vn-column-combo.c:354
#: ../vn/column/vn-column-combo.c:352
msgid "Sort column"
msgstr "Columna de ordenación"
#: ../vn/column/vn-column-combo.c:355
#: ../vn/column/vn-column-combo.c:353
msgid "The field number of the Grid model used to sort the column"
msgstr ""
"El número de campo del modelo del Grid que se usa para ordenar la columna"

100
po/nl.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hedera 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-22 15:30+0200\n"
"POT-Creation-Date: 2014-10-09 10:39+0200\n"
"PO-Revision-Date: 2012-10-09 11:38+0200\n"
"Last-Translator: Alejandro T. Colombini Gómez <atcolombini@verdnatura.es>\n"
"Language-Team: Dutch\n"
@ -33,19 +33,19 @@ msgstr ""
msgid "Incompatible type for this param"
msgstr ""
#: ../gvn/gvn-param.c:285
#: ../gvn/gvn-param.c:289
msgid "Value"
msgstr ""
#: ../gvn/gvn-param.c:286
#: ../gvn/gvn-param.c:290
msgid "The value of the param"
msgstr ""
#: ../gvn/gvn-param.c:292
#: ../gvn/gvn-param.c:296
msgid "Master"
msgstr ""
#: ../gvn/gvn-param.c:293
#: ../gvn/gvn-param.c:297
msgid "The master parameter"
msgstr ""
@ -70,7 +70,7 @@ msgstr ""
msgid "The character used for delimite the name of fields, tables..."
msgstr ""
#: ../sql/sql-string.c:188 ../db/db-model.c:3337 ../db/db-request.c:449
#: ../sql/sql-string.c:188 ../db/db-model.c:3249 ../db/db-request.c:449
msgid "SQL"
msgstr ""
@ -259,80 +259,80 @@ msgstr ""
msgid "Can't allocate the needed memory"
msgstr ""
#: ../db/db-model.c:3311 ../db/db-request.c:442 ../vn/vn-gui.c:1408
#: ../db/db-model.c:3223 ../db/db-request.c:442 ../vn/vn-gui.c:1408
#: ../vn/vn-form.c:245
msgid "Connection"
msgstr ""
#: ../db/db-model.c:3312
#: ../db/db-model.c:3224
msgid "The DbConn that manages the connection to the database"
msgstr ""
#: ../db/db-model.c:3319
#: ../db/db-model.c:3231
msgid "Statement"
msgstr ""
#: ../db/db-model.c:3320
#: ../db/db-model.c:3232
msgid "The statement which retrieves the data"
msgstr ""
#: ../db/db-model.c:3327
#: ../db/db-model.c:3239
msgid "Use file"
msgstr ""
#: ../db/db-model.c:3328
#: ../db/db-model.c:3240
msgid ""
"If this is set to TRUE, the \"sql\" property will hold the name of a file "
"containing a query, if set to FALSE, \"sql\" is used as an SQL string"
msgstr ""
#: ../db/db-model.c:3338
#: ../db/db-model.c:3250
msgid ""
"Depending on the \"use-file\" property this will be the path to a file with "
"queries for the model or a SQL string"
msgstr ""
#: ../db/db-model.c:3347
#: ../db/db-model.c:3259
msgid "Main Table"
msgstr ""
#: ../db/db-model.c:3348
#: ../db/db-model.c:3260
msgid "The main table of the model"
msgstr ""
#: ../db/db-model.c:3355
#: ../db/db-model.c:3267
msgid "Update flags"
msgstr ""
#: ../db/db-model.c:3356
#: ../db/db-model.c:3268
msgid "The flags that indicate how a model can be modified"
msgstr ""
#: ../db/db-model.c:3364
#: ../db/db-model.c:3276
msgid "Result position"
msgstr ""
#: ../db/db-model.c:3365
#: ../db/db-model.c:3277
msgid ""
"The position where the query that will fill the model will be placed in a "
"multi-query"
msgstr ""
#: ../db/db-model.c:3375
#: ../db/db-model.c:3287
msgid "Partial delete"
msgstr ""
#: ../db/db-model.c:3376
#: ../db/db-model.c:3288
msgid ""
"When a row is deleted set all the fields from the table to null rather than "
"delete it."
msgstr ""
#: ../db/db-model.c:3384
#: ../db/db-model.c:3296
msgid "Batch"
msgstr ""
#: ../db/db-model.c:3385
#: ../db/db-model.c:3297
msgid "The batch assigned to the model"
msgstr ""
@ -575,7 +575,7 @@ msgstr ""
msgid "Connection closed"
msgstr ""
#: ../vn/vn-gui.c:919 ../vn/field/vn-http-image.c:119
#: ../vn/vn-gui.c:919 ../vn/field/vn-http-image.c:127
msgid "Loading"
msgstr ""
@ -587,7 +587,7 @@ msgstr ""
msgid "The connection used by Gui"
msgstr ""
#: ../vn/vn-gui.c:1415 ../vn/vn-login.c:611
#: ../vn/vn-gui.c:1415 ../vn/vn-login.c:613
msgid "Application"
msgstr ""
@ -595,6 +595,14 @@ msgstr ""
msgid "The application handler for the entire program"
msgstr ""
#: ../vn/vn-list-model.c:573
msgid "Null row"
msgstr ""
#: ../vn/vn-list-model.c:574
msgid "Whether the list model will add a null row or not"
msgstr ""
#: ../vn/vn-handler.c:74
msgid "Are you sure you want to delete the current selection?"
msgstr ""
@ -679,20 +687,20 @@ msgstr ""
msgid "The module"
msgstr ""
#: ../vn/vn-login.c:396 ../vn/vn-login.c:398 ../vn/vn-login.c:490
#: ../vn/vn-login.c:398 ../vn/vn-login.c:400 ../vn/vn-login.c:492
msgid "Login error"
msgstr ""
#: ../vn/vn-login.c:456
#: ../vn/vn-login.c:458
#, c-format
msgid "Bad connection settings, please check it."
msgstr ""
#: ../vn/vn-login.c:488
#: ../vn/vn-login.c:490
msgid "Please select a connection"
msgstr ""
#: ../vn/vn-login.c:612
#: ../vn/vn-login.c:614
msgid "The application"
msgstr ""
@ -763,19 +771,19 @@ msgstr ""
msgid "The number of decimal places to display."
msgstr ""
#: ../vn/field/vn-combo.c:298 ../vn/column/vn-column-combo.c:340
#: ../vn/field/vn-combo.c:297 ../vn/column/vn-column-combo.c:338
msgid "Index column"
msgstr ""
#: ../vn/field/vn-combo.c:299 ../vn/column/vn-column-combo.c:341
#: ../vn/field/vn-combo.c:298 ../vn/column/vn-column-combo.c:339
msgid "The column index of the model"
msgstr ""
#: ../vn/field/vn-combo.c:305 ../vn/column/vn-column-combo.c:347
#: ../vn/field/vn-combo.c:304 ../vn/column/vn-column-combo.c:345
msgid "Show column"
msgstr ""
#: ../vn/field/vn-combo.c:306 ../vn/column/vn-column-combo.c:348
#: ../vn/field/vn-combo.c:305 ../vn/column/vn-column-combo.c:346
msgid "The column of the model shown by combo"
msgstr ""
@ -826,37 +834,37 @@ msgstr ""
msgid "Undefined error"
msgstr ""
#: ../vn/field/vn-http-image.c:145
msgid "File loader already set"
msgstr ""
#. Se usará para subir imagenes y cambiar nombres, o abrir un menu contextual
#. g_signal_connect (self, "event", G_CALLBACK (vn_http_image_on_event), self);
#: ../vn/field/vn-http-image.c:184
#: ../vn/field/vn-http-image.c:120 ../vn/field/vn-http-image.c:192
msgid "No image set"
msgstr ""
#: ../vn/field/vn-http-image.c:212 ../vn/column/vn-column-image.c:536
#: ../vn/field/vn-http-image.c:153
msgid "File loader already set"
msgstr ""
#: ../vn/field/vn-http-image.c:220 ../vn/column/vn-column-image.c:536
msgid "File loader"
msgstr ""
#: ../vn/field/vn-http-image.c:213
#: ../vn/field/vn-http-image.c:221
msgid "A DbFileLoader, used to download the files"
msgstr ""
#: ../vn/field/vn-http-image.c:220
#: ../vn/field/vn-http-image.c:228
msgid "File path"
msgstr ""
#: ../vn/field/vn-http-image.c:221
#: ../vn/field/vn-http-image.c:229
msgid "The relative path to the image from file loader path"
msgstr ""
#: ../vn/field/vn-http-image.c:228
#: ../vn/field/vn-http-image.c:236
msgid "Image bytes"
msgstr ""
#: ../vn/field/vn-http-image.c:229
#: ../vn/field/vn-http-image.c:237
msgid "A GBytes structure with the image data"
msgstr ""
@ -881,11 +889,11 @@ msgid ""
"A VnColumnStyleFunc to set the properties of each cell depending on its value"
msgstr ""
#: ../vn/column/vn-column-combo.c:354
#: ../vn/column/vn-column-combo.c:352
msgid "Sort column"
msgstr ""
#: ../vn/column/vn-column-combo.c:355
#: ../vn/column/vn-column-combo.c:353
msgid "The field number of the Grid model used to sort the column"
msgstr ""

View File

@ -21,9 +21,11 @@
#include "sql-parser.h"
#include "parser/gram.c"
#define PARSE(token, value) \
state->current = ts; \
Parse(parser, SQL_PARSER_##token, value, state)
#define PARSE(token, value)\
G_STMT_START { \
state->current = ts; \
Parse (parser, SQL_PARSER_##token, value, state); \
} G_STMT_END
/**
* SECTION: sql-parser

View File

@ -14,7 +14,7 @@ vn_include_HEADERS = \
vn-window.h \
vn-mod.h \
vn-form.h \
vn-grid-model.h \
vn-list-model.h \
vn-grid.h \
vn-handler.h \
vn-set.h \
@ -44,7 +44,7 @@ libvn_files = \
vn-window.c \
vn-mod.c \
vn-form.c \
vn-grid-model.c \
vn-list-model.c \
vn-grid.c \
vn-handler.c \
vn-set.c

View File

@ -27,7 +27,7 @@ VnColumn * vn_column_check_new ()
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Private
static void vn_column_check_cb_toggled (GtkCellRendererToggle * cell,
const gchar * path, VnColumn * obj)
const gchar * path, VnColumn * self)
{
gint col;
DbIter iter;
@ -35,10 +35,10 @@ static void vn_column_check_cb_toggled (GtkCellRendererToggle * cell,
GValue new_value = G_VALUE_INIT;
const GValue * old_value;
col = vn_column_get_column_index (obj);
model = vn_column_get_model (obj);
col = vn_column_get_column_index (self);
model = vn_column_get_model (self);
vn_column_get_iter (obj, path, &iter);
vn_column_get_iter (self, path, &iter);
old_value = db_model_get_value (model, &iter, col, NULL);
g_value_init (&new_value, G_TYPE_BOOLEAN);
@ -47,17 +47,17 @@ static void vn_column_check_cb_toggled (GtkCellRendererToggle * cell,
db_model_set_value (model, &iter, col, &new_value, NULL);
}
static void vn_column_check_set_editable (VnColumn * obj, gboolean editable)
static void vn_column_check_set_editable (VnColumn * self, gboolean editable)
{
if (editable)
g_signal_connect (obj->cell, "toggled",
G_CALLBACK (vn_column_check_cb_toggled), obj);
g_signal_connect (self->cell, "toggled",
G_CALLBACK (vn_column_check_cb_toggled), self);
else
g_signal_handlers_disconnect_by_func (obj->cell,
vn_column_check_cb_toggled, obj);
g_signal_handlers_disconnect_by_func (self->cell,
vn_column_check_cb_toggled, self);
}
static void vn_column_check_set_value (VnColumnCheck * obj, GtkTreeModel * model,
static void vn_column_check_set_value (VnColumnCheck * self, GtkTreeModel * model,
GtkTreeIter * iter, GtkCellRendererToggle * cell, const GValue * value)
{
GValue new_value = G_VALUE_INIT;
@ -76,15 +76,15 @@ static void vn_column_check_set_value (VnColumnCheck * obj, GtkTreeModel * model
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Class
static void vn_column_check_init (VnColumnCheck * obj)
static void vn_column_check_init (VnColumnCheck * self)
{
GtkCellRenderer * cell = gtk_cell_renderer_toggle_new ();
VN_COLUMN_GET_CLASS (obj)->set_renderer (VN_COLUMN (obj), cell);
VN_COLUMN_GET_CLASS (self)->set_renderer (VN_COLUMN (self), cell);
}
static void vn_column_check_finalize (VnColumnCheck * obj)
static void vn_column_check_finalize (VnColumnCheck * self)
{
G_OBJECT_CLASS (vn_column_check_parent_class)->finalize (G_OBJECT (obj));
G_OBJECT_CLASS (vn_column_check_parent_class)->finalize (G_OBJECT (self));
}
static void vn_column_check_class_init (VnColumnCheckClass * klass)

View File

@ -21,11 +21,11 @@
#include <vn/vn-column.h>
#define VN_TYPE_COLUMN_CHECK (vn_column_check_get_type ())
#define VN_COLUMN_CHECK(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, VN_TYPE_COLUMN_CHECK, VnColumnCheck))
#define VN_IS_COLUMN_CHECK(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, VN_TYPE_COLUMN_CHECK))
#define VN_COLUMN_CHECK(self) (G_TYPE_CHECK_INSTANCE_CAST (self, VN_TYPE_COLUMN_CHECK, VnColumnCheck))
#define VN_IS_COLUMN_CHECK(self) (G_TYPE_CHECK_INSTANCE_TYPE (self, VN_TYPE_COLUMN_CHECK))
#define VN_COLUMN_CHECK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, VN_TYPE_COLUMN_CHECK, VnColumnCheckClass))
#define VN_IS_COLUMN_CHECK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass, VN_TYPE_COLUMN_CHECK))
#define VN_COLUMN_CHECK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (obj, VN_TYPE_COLUMN_CHECK, VnColumnCheckClass))
#define VN_COLUMN_CHECK_GET_CLASS(self) (G_TYPE_INSTANCE_GET_CLASS (self, VN_TYPE_COLUMN_CHECK, VnColumnCheckClass))
typedef struct _VnColumnCheck VnColumnCheck;
typedef struct _VnColumnCheckClass VnColumnCheckClass;

View File

@ -16,7 +16,7 @@
*/
#include "vn-column-combo.h"
#include "../vn-grid-model.h"
#include "../vn-list-model.h"
static void vn_column_combo_model_holder_init (DbModelHolderInterface * iface);
@ -32,41 +32,41 @@ VnColumn * vn_column_combo_new ()
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Private
static void vn_column_combo_set_value (VnColumnCombo * obj, GtkTreeModel * model,
static void vn_column_combo_set_value (VnColumnCombo * self, GtkTreeModel * model,
GtkTreeIter * tree_iter, GObject * cell, const GValue * value)
{
if (obj->model && db_model_get_status (obj->model) == DB_MODEL_STATUS_READY)
if (self->model && db_model_get_status (self->model) == DB_MODEL_STATUS_READY)
{
DbIter iter;
if (gvn_value_is_null (value))
g_object_set_property (cell, "text", value);
else if (db_model_search_value (obj->model, obj->index_column, &iter, value))
else if (db_model_search_value (self->model, self->index_column, &iter, value))
g_object_set_property (cell, "text",
db_model_get_value (obj->model, &iter, obj->show_column, NULL));
db_model_get_value (self->model, &iter, self->show_column, NULL));
}
}
/*
* Restores the focus to the tree view after its edition.
*/
static void vn_column_combo_restore_focus (VnColumnCombo * obj)
static void vn_column_combo_restore_focus (VnColumnCombo * self)
{
gtk_widget_grab_focus
(gtk_tree_view_column_get_tree_view (GTK_TREE_VIEW_COLUMN (obj)));
(gtk_tree_view_column_get_tree_view (GTK_TREE_VIEW_COLUMN (self)));
}
/*
* Sets the value of the entry to an empty string if a null value is selected.
*/
static gchar * vn_column_combo_on_format_entry_text (GtkComboBox * combo,
gchar * path, VnColumnCombo * obj)
gchar * path, VnColumnCombo * self)
{
gchar * str;
GtkTreeIter iter;
gtk_tree_model_get_iter_from_string (obj->tree_model, &iter, path);
gtk_tree_model_get (obj->tree_model, &iter, obj->show_column, &str, -1);
gtk_tree_model_get_iter_from_string (self->tree, &iter, path);
gtk_tree_model_get (self->tree, &iter, self->show_column, &str, -1);
return str ? str : g_strdup ("");
}
@ -75,47 +75,47 @@ static gchar * vn_column_combo_on_format_entry_text (GtkComboBox * combo,
* Sets the autocompletion functionality to the cell being edited.
*/
static void vn_column_combo_on_editing_started (GtkCellRenderer * cell,
GtkCellEditable * cell_editable, const gchar * path, VnColumnCombo * obj)
GtkCellEditable * cell_editable, const gchar * path, VnColumnCombo * self)
{
GtkEntry * entry;
if (!GTK_IS_COMBO_BOX (cell_editable) || !obj->tree_model)
if (!GTK_IS_COMBO_BOX (cell_editable) || !self->tree)
return;
entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (cell_editable)));
// Each edition uses a new cell_editable.
if (obj->cell_editable)
if (self->cell_editable)
{
g_signal_handlers_disconnect_by_func (obj->cell_editable,
vn_column_combo_on_format_entry_text, obj);
g_object_unref (obj->cell_editable);
g_signal_handlers_disconnect_by_func (self->cell_editable,
vn_column_combo_on_format_entry_text, self);
g_object_unref (self->cell_editable);
}
if (!obj->completion_ready)
if (!self->completion_ready)
{
gtk_entry_completion_set_model (obj->completion, obj->tree_model);
gtk_entry_completion_set_text_column (obj->completion, obj->show_column);
gtk_entry_completion_set_minimum_key_length (obj->completion, 1);
obj->completion_ready = TRUE;
gtk_entry_completion_set_model (self->completion, self->tree);
gtk_entry_completion_set_text_column (self->completion, self->show_column);
gtk_entry_completion_set_minimum_key_length (self->completion, 1);
self->completion_ready = TRUE;
g_signal_connect_swapped (cell_editable, "editing-done",
G_CALLBACK (vn_column_combo_restore_focus), obj);
obj->cell_editable = g_object_ref (cell_editable);
G_CALLBACK (vn_column_combo_restore_focus), self);
self->cell_editable = g_object_ref (cell_editable);
}
gtk_entry_set_completion (entry, obj->completion);
gtk_entry_set_completion (entry, self->completion);
g_signal_connect (cell_editable, "format-entry-text",
G_CALLBACK (vn_column_combo_on_format_entry_text), obj);
obj->cell_editable = g_object_ref (cell_editable);
G_CALLBACK (vn_column_combo_on_format_entry_text), self);
self->cell_editable = g_object_ref (cell_editable);
}
/*
* When the text is edited using an entry, tries to set its underlying value.
*/
static void vn_column_combo_on_edited (GtkCellRendererText * renderer,
gchar * path, gchar * new_text, VnColumnCombo * obj)
gchar * path, gchar * new_text, VnColumnCombo * self)
{
DbIter iter;
GValue value = G_VALUE_INIT;
@ -123,122 +123,121 @@ static void vn_column_combo_on_edited (GtkCellRendererText * renderer,
if (!g_strcmp0 (new_text, ""))
{
g_value_init (&value, GVN_TYPE_NULL);
VN_COLUMN_GET_CLASS (obj)->value_changed (VN_COLUMN (obj), path, &value);
VN_COLUMN_GET_CLASS (self)->value_changed (VN_COLUMN (self), path, &value);
}
else
{
gvn_value_new_with_content (&value, G_TYPE_STRING, new_text);
if (db_model_search_value (obj->model, obj->show_column, &iter, &value))
if (db_model_search_value (self->model, self->show_column, &iter, &value))
{
const GValue * val;
if ((val = db_model_get_value (obj->model, &iter, obj->index_column, NULL)))
VN_COLUMN_GET_CLASS (obj)->value_changed (VN_COLUMN (obj), path, val);
if ((val = db_model_get_value (self->model, &iter, self->index_column, NULL)))
VN_COLUMN_GET_CLASS (self)->value_changed (VN_COLUMN (self), path, val);
}
}
g_value_unset (&value);
vn_column_combo_restore_focus (obj);
vn_column_combo_restore_focus (self);
}
static void vn_column_combo_set_editable (VnColumnCombo * obj, gboolean editable)
static void vn_column_combo_set_editable (VnColumnCombo * self, gboolean editable)
{
VnColumn * parent = VN_COLUMN (obj);
VnColumn * parent = VN_COLUMN (self);
if (editable)
{
g_signal_connect (parent->cell, "editing-started",
G_CALLBACK (vn_column_combo_on_editing_started), obj);
G_CALLBACK (vn_column_combo_on_editing_started), self);
g_signal_connect (parent->cell, "edited",
G_CALLBACK (vn_column_combo_on_edited), obj);
G_CALLBACK (vn_column_combo_on_edited), self);
g_signal_connect_swapped (parent->cell, "editing-canceled",
G_CALLBACK (vn_column_combo_restore_focus), obj);
G_CALLBACK (vn_column_combo_restore_focus), self);
if (!obj->completion)
obj->completion = gtk_entry_completion_new ();
if (!self->completion)
self->completion = gtk_entry_completion_new ();
}
else
{
g_signal_handlers_disconnect_by_data (parent->cell, obj);
g_signal_handlers_disconnect_by_data (parent->cell, self);
if (obj->cell_editable)
g_signal_handlers_disconnect_by_data (obj->cell_editable, obj);
if (self->cell_editable)
g_signal_handlers_disconnect_by_data (self->cell_editable, self);
if (obj->completion)
g_clear_object (&obj->completion);
if (self->completion)
g_clear_object (&self->completion);
obj->completion_ready = FALSE;
obj->cell_editable = NULL;
self->completion_ready = FALSE;
self->cell_editable = NULL;
}
g_object_set (parent->cell, "editable", editable, NULL);
}
static void vn_column_combo_set_null (VnColumnCombo * obj, gboolean null)
static void vn_column_combo_set_null (VnColumnCombo * self, gboolean null)
{
if (vn_column_get_model (VN_COLUMN (obj)) && obj->model)
db_model_use_null_row (obj->model, null);
if (vn_column_get_model (VN_COLUMN (self)) && self->model)
vn_list_model_use_null_row (VN_LIST_MODEL (self->tree), null);
}
static void vn_column_combo_model_changed (VnColumnCombo * obj)
static void vn_column_combo_model_changed (VnColumnCombo * self)
{
if (obj->model)
if (self->model)
{
db_model_use_null_row (obj->model, VN_COLUMN (obj)->null);
vn_list_model_use_null_row (VN_LIST_MODEL (self->tree), VN_COLUMN (self)->null);
if (obj->sort_column >= 0)
if (self->sort_column >= 0)
gtk_tree_view_column_set_sort_column_id (
GTK_TREE_VIEW_COLUMN (obj), obj->sort_column);
GTK_TREE_VIEW_COLUMN (self), self->sort_column);
}
}
static void vn_column_combo_on_status_changed (DbModel * model,
DbModelStatus status, VnColumnCombo * obj)
DbModelStatus status, VnColumnCombo * self)
{
if (status == DB_MODEL_STATUS_READY)
{
g_object_set (VN_COLUMN (obj)->cell, "model", obj->tree_model, NULL);
db_model_use_null_row (obj->model, VN_COLUMN (obj)->null);
g_object_set (VN_COLUMN (self)->cell, "model", self->tree, NULL);
vn_list_model_use_null_row (VN_LIST_MODEL (self->tree), VN_COLUMN (self)->null);
}
else
g_object_set (VN_COLUMN (obj)->cell, "model", NULL, NULL);
g_object_set (VN_COLUMN (self)->cell, "model", NULL, NULL);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++ DbModelHolder implementation
static void vn_column_combo_set_model (VnColumnCombo * obj,
DbModel * model)
static void vn_column_combo_set_model (VnColumnCombo * self, DbModel * model)
{
g_return_if_fail (!model || DB_IS_MODEL (model));
if (obj->model)
if (self->model)
{
g_signal_handlers_disconnect_by_func (obj->model,
vn_column_combo_on_status_changed, obj);
g_clear_object (&obj->model);
g_clear_object (&obj->tree_model);
g_signal_handlers_disconnect_by_func (self->model,
vn_column_combo_on_status_changed, self);
g_clear_object (&self->model);
g_clear_object (&self->tree);
if (obj->completion_ready)
gtk_entry_completion_set_model (obj->completion, NULL);
if (self->completion_ready)
gtk_entry_completion_set_model (self->completion, NULL);
}
if (model)
{
obj->model = model;
obj->tree_model = GTK_TREE_MODEL (vn_grid_model_new (model));
self->model = g_object_ref (model);
self->tree = GTK_TREE_MODEL (vn_list_model_new (model));
g_signal_connect (model, "status-changed",
G_CALLBACK (vn_column_combo_on_status_changed), obj);
G_CALLBACK (vn_column_combo_on_status_changed), self);
if (obj->completion_ready)
gtk_entry_completion_set_model (obj->completion, obj->tree_model);
if (self->completion_ready)
gtk_entry_completion_set_model (self->completion, self->tree);
}
}
static DbModel * vn_column_combo_get_model (VnColumnCombo * obj)
static DbModel * vn_column_combo_get_model (VnColumnCombo * self)
{
return obj->model;
return self->model;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Properties
@ -251,75 +250,74 @@ enum
,PROP_MODEL
};
static void vn_column_combo_set_property (VnColumnCombo * obj, guint id,
static void vn_column_combo_set_property (VnColumnCombo * self, guint id,
const GValue * value, GParamSpec * pspec)
{
switch (id)
{
case PROP_INDEX_COLUMN:
obj->index_column = g_value_get_uint (value);
self->index_column = g_value_get_uint (value);
break;
case PROP_SHOW_COLUMN:
obj->show_column = g_value_get_uint (value);
g_object_set (VN_COLUMN (obj)->cell, "text-column", obj->show_column,
self->show_column = g_value_get_uint (value);
g_object_set (VN_COLUMN (self)->cell, "text-column", self->show_column,
NULL);
break;
case PROP_SORT_COLUMN:
obj->sort_column = g_value_get_int (value);
self->sort_column = g_value_get_int (value);
break;
case PROP_MODEL:
vn_column_combo_set_model (obj, g_value_dup_object (value));
vn_column_combo_set_model (self, g_value_get_object (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
static void vn_column_combo_get_property (VnColumnCombo * obj, guint id,
static void vn_column_combo_get_property (VnColumnCombo * self, guint id,
GValue * value, GParamSpec * pspec)
{
switch (id)
{
case PROP_INDEX_COLUMN:
g_value_set_uint (value, obj->index_column);
g_value_set_uint (value, self->index_column);
break;
case PROP_SHOW_COLUMN:
g_value_set_uint (value, obj->show_column);
g_value_set_uint (value, self->show_column);
break;
case PROP_SORT_COLUMN:
g_value_set_int (value, obj->sort_column);
g_value_set_int (value, self->sort_column);
break;
case PROP_MODEL:
g_value_set_object (value, obj->model);
g_value_set_object (value, self->model);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Class
static void vn_column_combo_init (VnColumnCombo * obj)
static void vn_column_combo_init (VnColumnCombo * self)
{
GtkCellRenderer * cell = gtk_cell_renderer_combo_new ();
obj->model = NULL;
obj->tree_model = NULL;
obj->completion = NULL;
obj->completion_ready = FALSE;
obj->cell_editable = NULL;
self->model = NULL;
self->tree = NULL;
self->completion = NULL;
self->completion_ready = FALSE;
self->cell_editable = NULL;
VN_COLUMN_GET_CLASS (obj)->set_renderer (VN_COLUMN (obj), cell);
VN_COLUMN_GET_CLASS (self)->set_renderer (VN_COLUMN (self), cell);
}
static void vn_column_combo_finalize (VnColumnCombo * obj)
static void vn_column_combo_finalize (VnColumnCombo * self)
{
vn_column_combo_set_model (obj, NULL);
vn_column_combo_set_model (self, NULL);
if (obj->completion)
g_object_unref (obj->completion);
if (self->completion)
g_object_unref (self->completion);
G_OBJECT_CLASS (vn_column_combo_parent_class)->finalize (G_OBJECT (obj));
G_OBJECT_CLASS (vn_column_combo_parent_class)->finalize (G_OBJECT (self));
}
static void vn_column_combo_class_init (VnColumnComboClass * klass)

View File

@ -21,11 +21,11 @@
#include <vn/vn-column.h>
#define VN_TYPE_COLUMN_COMBO (vn_column_combo_get_type ())
#define VN_COLUMN_COMBO(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, VN_TYPE_COLUMN_COMBO, VnColumnCombo))
#define VN_IS_COLUMN_COMBO(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, VN_TYPE_COLUMN_COMBO))
#define VN_COLUMN_COMBO(self) (G_TYPE_CHECK_INSTANCE_CAST (self, VN_TYPE_COLUMN_COMBO, VnColumnCombo))
#define VN_IS_COLUMN_COMBO(self) (G_TYPE_CHECK_INSTANCE_TYPE (self, VN_TYPE_COLUMN_COMBO))
#define VN_COLUMN_COMBO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, VN_TYPE_COLUMN_COMBO, VnColumnComboClass))
#define VN_IS_COLUMN_COMBO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass, VN_TYPE_COLUMN_COMBO))
#define VN_COLUMN_COMBO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (obj, VN_TYPE_COLUMN_COMBO, VnColumnComboClass))
#define VN_COLUMN_COMBO_GET_CLASS(self) (G_TYPE_INSTANCE_GET_CLASS (self, VN_TYPE_COLUMN_COMBO, VnColumnComboClass))
typedef struct _VnColumnCombo VnColumnCombo;
typedef struct _VnColumnComboClass VnColumnComboClass;
@ -35,7 +35,7 @@ struct _VnColumnCombo
VnColumn parent;
/* <private> */
DbModel * model;
GtkTreeModel * tree_model;
GtkTreeModel * tree;
guint index_column;
guint show_column;
gint sort_column;

View File

@ -27,7 +27,7 @@ VnColumn * vn_column_entry_new ()
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Private
static void vn_column_entry_cb_edited (GtkCellRendererText * cell,
const gchar * path, gchar * text, VnColumnEntry * obj)
const gchar * path, gchar * text, VnColumnEntry * self)
{
GValue value = G_VALUE_INIT;
@ -39,27 +39,27 @@ static void vn_column_entry_cb_edited (GtkCellRendererText * cell,
else
g_value_init (&value, GVN_TYPE_NULL);
VN_COLUMN_GET_CLASS (obj)->value_changed (VN_COLUMN (obj), path, &value);
VN_COLUMN_GET_CLASS (self)->value_changed (VN_COLUMN (self), path, &value);
g_value_unset (&value);
}
static void vn_column_entry_set_editable (VnColumn * obj, gboolean editable)
static void vn_column_entry_set_editable (VnColumn * self, gboolean editable)
{
g_object_set (obj->cell, "editable", editable, NULL);
g_object_set (self->cell, "editable", editable, NULL);
if (editable)
g_signal_connect (obj->cell, "edited",
G_CALLBACK (vn_column_entry_cb_edited), obj);
g_signal_connect (self->cell, "edited",
G_CALLBACK (vn_column_entry_cb_edited), self);
else
g_signal_handlers_disconnect_by_func (obj->cell,
vn_column_entry_cb_edited, obj);
g_signal_handlers_disconnect_by_func (self->cell,
vn_column_entry_cb_edited, self);
}
static void vn_column_entry_set_value (VnColumnEntry * obj, GtkTreeModel * model,
static void vn_column_entry_set_value (VnColumnEntry * self, GtkTreeModel * model,
GtkTreeIter * iter, GObject * cell, const GValue * value)
{
GValue new_value = G_VALUE_INIT;
gvn_value_to_format_string (value, obj->format, &new_value);
gvn_value_to_format_string (value, self->format, &new_value);
g_object_set_property (cell, "text", &new_value);
g_value_unset (&new_value);
}
@ -71,46 +71,46 @@ enum
PROP_FORMAT = 1
};
static void vn_column_entry_set_property (VnColumnEntry * obj, guint id,
static void vn_column_entry_set_property (VnColumnEntry * self, guint id,
const GValue * value, GParamSpec * pspec)
{
switch (id)
{
case PROP_FORMAT:
g_free (obj->format);
obj->format = g_value_dup_string (value);
g_free (self->format);
self->format = g_value_dup_string (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
static void vn_column_entry_get_property (VnColumnEntry * obj, guint id,
static void vn_column_entry_get_property (VnColumnEntry * self, guint id,
GValue * value, GParamSpec * pspec)
{
switch (id)
{
case PROP_FORMAT:
g_value_set_string (value, obj->format);
g_value_set_string (value, self->format);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Class
static void vn_column_entry_init (VnColumnEntry * obj)
static void vn_column_entry_init (VnColumnEntry * self)
{
GtkCellRenderer * cell = gtk_cell_renderer_text_new ();
VN_COLUMN_GET_CLASS (obj)->set_renderer (VN_COLUMN (obj), cell);
obj->format = NULL;
VN_COLUMN_GET_CLASS (self)->set_renderer (VN_COLUMN (self), cell);
self->format = NULL;
}
static void vn_column_entry_finalize (VnColumnEntry * obj)
static void vn_column_entry_finalize (VnColumnEntry * self)
{
g_free (obj->format);
G_OBJECT_CLASS (vn_column_entry_parent_class)->finalize (G_OBJECT (obj));
g_free (self->format);
G_OBJECT_CLASS (vn_column_entry_parent_class)->finalize (G_OBJECT (self));
}
static void vn_column_entry_class_init (VnColumnEntryClass * klass)

View File

@ -21,11 +21,11 @@
#include <vn/vn-column.h>
#define VN_TYPE_COLUMN_ENTRY (vn_column_entry_get_type ())
#define VN_COLUMN_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, VN_TYPE_COLUMN_ENTRY, VnColumnEntry))
#define VN_IS_COLUMN_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, VN_TYPE_COLUMN_ENTRY))
#define VN_COLUMN_ENTRY(self) (G_TYPE_CHECK_INSTANCE_CAST (self, VN_TYPE_COLUMN_ENTRY, VnColumnEntry))
#define VN_IS_COLUMN_ENTRY(self) (G_TYPE_CHECK_INSTANCE_TYPE (self, VN_TYPE_COLUMN_ENTRY))
#define VN_COLUMN_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, VN_TYPE_COLUMN_ENTRY, VnColumnEntryClass))
#define VN_IS_COLUMN_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass, VN_TYPE_COLUMN_ENTRY))
#define VN_COLUMN_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (obj, VN_TYPE_COLUMN_ENTRY, VnColumnEntryClass))
#define VN_COLUMN_ENTRY_GET_CLASS(self) (G_TYPE_INSTANCE_GET_CLASS (self, VN_TYPE_COLUMN_ENTRY, VnColumnEntryClass))
typedef struct _VnColumnEntry VnColumnEntry;
typedef struct _VnColumnEntryClass VnColumnEntryClass;

View File

@ -16,7 +16,7 @@
*/
#include "vn-column-image.h"
#include "../vn-grid-model.h"
#include "../vn-list-model.h"
#define LOAD_IMAGE _IMAGE_DIR"/load.gif"
@ -24,7 +24,7 @@ G_DEFINE_TYPE (VnColumnImage, vn_column_image, VN_TYPE_COLUMN);
typedef struct
{
VnColumnImage * obj;
VnColumnImage * self;
GtkTreeModel * model;
GtkTreeIter * iter;
GtkCellRenderer * cell;
@ -48,9 +48,9 @@ VnColumn * vn_column_image_new ()
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Private
static void vn_column_image_download_error (VnColumnImage * obj, const GError * error)
static void vn_column_image_download_error (VnColumnImage * self, const GError * error)
{
g_object_set (VN_COLUMN (obj)->cell, "icon-name", "image-missing", NULL);
g_object_set (VN_COLUMN (self)->cell, "icon-name", "image-missing", NULL);
}
static void free_object (gpointer object)
@ -140,7 +140,7 @@ static void vn_column_image_on_download_tooltip (DbFileLoader * fl,
}
static gboolean vn_column_image_on_query_tooltip (GtkTreeView * view,
gint x, gint y, gboolean k, GtkTooltip * tip, VnColumnImage * obj)
gint x, gint y, gboolean k, GtkTooltip * tip, VnColumnImage * self)
{
gboolean ret = FALSE;
TooltipData * data;
@ -154,7 +154,7 @@ static gboolean vn_column_image_on_query_tooltip (GtkTreeView * view,
gtk_tree_view_convert_bin_window_to_widget_coords (view, x, y, &wx, &wy);
gtk_tree_view_get_background_area
(view, path, GTK_TREE_VIEW_COLUMN (obj), &rect);
(view, path, GTK_TREE_VIEW_COLUMN (self), &rect);
if (!(rect.x < wx && wx < rect.x + rect.width))
{
@ -165,19 +165,19 @@ static gboolean vn_column_image_on_query_tooltip (GtkTreeView * view,
else
return FALSE;
if (obj->tooltips
&& (data = g_hash_table_lookup (obj->tooltips, iter.user_data))
if (self->tooltips
&& (data = g_hash_table_lookup (self->tooltips, iter.user_data))
&& !data->error && data->path)
{
gtk_tree_view_set_tooltip_cell (view, tip, path,
GTK_TREE_VIEW_COLUMN (obj), VN_COLUMN (obj)->cell);
GTK_TREE_VIEW_COLUMN (self), VN_COLUMN (self)->cell);
if (!data->image)
{
data->image = g_object_ref_sink (gtk_image_new_from_file (LOAD_IMAGE));
gtk_tooltip_set_custom (tip, data->image);
db_file_loader_download (obj->loader, data->path,
db_file_loader_download (self->loader, data->path,
(DbFileLoaderCallbackFunc) vn_column_image_on_download_tooltip, data);
}
else
@ -190,7 +190,7 @@ static gboolean vn_column_image_on_query_tooltip (GtkTreeView * view,
return ret;
}
static GdkPixbuf * vn_column_image_set_image (VnColumnImage * obj,
static GdkPixbuf * vn_column_image_set_image (VnColumnImage * self,
GtkCellRenderer * cell, GBytes * bytes, gboolean pix)
{
gsize size;
@ -211,7 +211,7 @@ static GdkPixbuf * vn_column_image_set_image (VnColumnImage * obj,
else
{
gdk_pixbuf_loader_close (loader, NULL);
vn_column_image_download_error (obj, error);
vn_column_image_download_error (self, error);
g_error_free (error);
}
@ -221,32 +221,32 @@ static GdkPixbuf * vn_column_image_set_image (VnColumnImage * obj,
return pix && pixbuf ? g_object_ref (pixbuf) : NULL;
}
static void vn_column_image_on_download (DbFileLoader * obj, GBytes * bytes,
static void vn_column_image_on_download (DbFileLoader * self, GBytes * bytes,
const GError * error, DownloadData * data)
{
GtkTreePath * path;
if (error)
vn_column_image_download_error (data->obj, error);
else if (bytes && vn_grid_model_iter_is_valid (data->iter, data->model))
vn_column_image_download_error (data->self, error);
else if (bytes && vn_list_model_iter_is_valid (data->iter, data->model))
{
if (data->obj->loaded)
g_hash_table_replace (data->obj->loaded, g_strdup (data->name),
vn_column_image_set_image (data->obj, data->cell, bytes, TRUE));
if (data->self->loaded)
g_hash_table_replace (data->self->loaded, g_strdup (data->name),
vn_column_image_set_image (data->self, data->cell, bytes, TRUE));
path = gtk_tree_model_get_path (data->model, data->iter);
gtk_tree_model_row_changed (data->model, path, data->iter);
gtk_tree_path_free (path);
}
g_object_unref (data->obj);
g_object_unref (data->self);
g_object_unref (data->model);
gtk_tree_iter_free (data->iter);
g_free (data->name);
g_free (data);
}
static void vn_column_image_set_value (VnColumnImage * obj, GtkTreeModel * model,
static void vn_column_image_set_value (VnColumnImage * self, GtkTreeModel * model,
GtkTreeIter * iter, GtkCellRenderer * cell, const GValue * value)
{
GType type = G_VALUE_TYPE (value);
@ -258,9 +258,9 @@ static void vn_column_image_set_value (VnColumnImage * obj, GtkTreeModel * model
GBytes * bytes = g_value_get_boxed (value);
if (bytes)
vn_column_image_set_image (obj, cell, bytes, FALSE);
vn_column_image_set_image (self, cell, bytes, FALSE);
else
vn_column_image_download_error (obj, NULL);
vn_column_image_download_error (self, NULL);
}
else if (type == G_TYPE_STRING)
{
@ -268,41 +268,41 @@ static void vn_column_image_set_value (VnColumnImage * obj, GtkTreeModel * model
gchar * cell_name;
const gchar * name = g_value_get_string (value);
GtkTreeView * view = GTK_TREE_VIEW
(gtk_tree_view_column_get_tree_view (GTK_TREE_VIEW_COLUMN (obj)));
(gtk_tree_view_column_get_tree_view (GTK_TREE_VIEW_COLUMN (self)));
if (view != obj->tree_view)
if (view != self->tree_view)
{
if (GTK_IS_TREE_VIEW (obj->tree_view))
g_signal_handlers_disconnect_by_func (obj->tree_view,
vn_column_image_on_query_tooltip, obj);
if (GTK_IS_TREE_VIEW (self->tree_view))
g_signal_handlers_disconnect_by_func (self->tree_view,
vn_column_image_on_query_tooltip, self);
g_signal_connect (view, "query-tooltip",
G_CALLBACK (vn_column_image_on_query_tooltip), obj);
G_CALLBACK (vn_column_image_on_query_tooltip), self);
g_object_set (view, "has-tooltip", TRUE, NULL);
obj->tree_view = view;
self->tree_view = view;
}
if (obj->loaded)
if (self->loaded)
{
if (g_hash_table_contains (obj->loaded, name))
if (g_hash_table_contains (self->loaded, name))
{
GdkPixbuf * pixbuf = g_hash_table_lookup (obj->loaded, name);
GdkPixbuf * pixbuf = g_hash_table_lookup (self->loaded, name);
if (pixbuf)
g_object_set (cell, "pixbuf", pixbuf, NULL);
else
vn_column_image_download_error (obj, NULL);
vn_column_image_download_error (self, NULL);
if (obj->tooltips
&& !g_hash_table_contains (obj->tooltips, iter->user_data))
if (self->tooltips
&& !g_hash_table_contains (self->tooltips, iter->user_data))
{
TooltipData * data = g_new (TooltipData, 1);
data->path = g_strconcat ("/", obj->tooltip_path, "/", name, NULL);
data->path = g_strconcat ("/", self->tooltip_path, "/", name, NULL);
data->error = FALSE;
data->tooltip_size = obj->tooltip_size;
data->tooltip_size = self->tooltip_size;
data->image = NULL;
g_hash_table_insert (obj->tooltips, iter->user_data, data);
g_hash_table_insert (self->tooltips, iter->user_data, data);
}
return;
@ -314,7 +314,7 @@ static void vn_column_image_set_value (VnColumnImage * obj, GtkTreeModel * model
GtkTreePath * path = gtk_tree_model_get_path (model, iter);
gtk_tree_view_get_cell_area
(view, path, GTK_TREE_VIEW_COLUMN (obj), &cell_rect);
(view, path, GTK_TREE_VIEW_COLUMN (self), &cell_rect);
gtk_tree_path_free (path);
gtk_tree_view_get_visible_rect (view, &view_rect);
gtk_tree_view_convert_tree_to_bin_window_coords
@ -326,53 +326,53 @@ static void vn_column_image_set_value (VnColumnImage * obj, GtkTreeModel * model
}
}
else
obj->loaded = g_hash_table_new_full
self->loaded = g_hash_table_new_full
((GHashFunc) g_str_hash, (GEqualFunc) g_str_equal,
(GDestroyNotify) g_free, (GDestroyNotify) free_object);
cell_name =
/*obj->external_loader ?
g_strconcat ("/", obj->path, "/", name, NULL):*/
/*self->external_loader ?
g_strconcat ("/", self->path, "/", name, NULL):*/
g_strdup (name);
g_hash_table_insert (obj->loaded, g_strdup (cell_name), NULL);
g_hash_table_insert (self->loaded, g_strdup (cell_name), NULL);
if (!obj->loader)
obj->loader = db_file_loader_new (obj->host, obj->path);
if (!self->loader)
self->loader = db_file_loader_new (self->host, self->path);
if (obj->tooltip_path && !obj->tooltips)
obj->tooltips = g_hash_table_new_full
if (self->tooltip_path && !self->tooltips)
self->tooltips = g_hash_table_new_full
((GHashFunc) g_direct_hash, (GEqualFunc) g_direct_equal,
(GDestroyNotify) NULL, (GDestroyNotify) free_tooltip_data);
data = g_new (DownloadData, 1);
data->obj = g_object_ref (obj);
data->self = g_object_ref (self);
data->model = g_object_ref (model);
data->iter = gtk_tree_iter_copy (iter);
data->cell = cell;
data->name = cell_name;
db_file_loader_download (obj->loader, cell_name,
db_file_loader_download (self->loader, cell_name,
(DbFileLoaderCallbackFunc) vn_column_image_on_download, data);
}
}
static void vn_column_image_on_model_changed (VnColumnImage * obj)
static void vn_column_image_on_model_changed (VnColumnImage * self)
{
if (obj->loader)
db_file_loader_cancel_all (obj->loader);
if (self->loader)
db_file_loader_cancel_all (self->loader);
if (obj->loaded)
g_hash_table_destroy (obj->loaded);
if (self->loaded)
g_hash_table_destroy (self->loaded);
if (obj->tooltips)
g_hash_table_destroy (obj->tooltips);
if (self->tooltips)
g_hash_table_destroy (self->tooltips);
obj->loaded = NULL;
obj->tooltips = NULL;
self->loaded = NULL;
self->tooltips = NULL;
}
static void vn_column_image_set_editable (VnColumn * obj, gboolean editable){}
static void vn_column_image_set_editable (VnColumn * self, gboolean editable){}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Property
@ -385,101 +385,101 @@ enum
,PROP_FILE_LOADER
};
static void vn_column_image_set_property (VnColumnImage * obj, guint id,
static void vn_column_image_set_property (VnColumnImage * self, guint id,
const GValue * value, GParamSpec * pspec)
{
switch (id)
{
case PROP_HOST:
g_free (obj->host);
obj->host = g_value_dup_string (value);
g_free (self->host);
self->host = g_value_dup_string (value);
break;
case PROP_PATH:
g_free (obj->path);
obj->path = g_value_dup_string (value);
g_free (self->path);
self->path = g_value_dup_string (value);
break;
case PROP_TOOLTIP_PATH:
g_free (obj->tooltip_path);
obj->tooltip_path = g_value_dup_string (value);
g_free (self->tooltip_path);
self->tooltip_path = g_value_dup_string (value);
break;
case PROP_TOOLTIP_SIZE:
obj->tooltip_size = g_value_get_int (value);
self->tooltip_size = g_value_get_int (value);
break;
case PROP_FILE_LOADER:
obj->loader = g_value_dup_object (value);
if (obj->loader)
obj->external_loader = TRUE;
self->loader = g_value_dup_object (value);
if (self->loader)
self->external_loader = TRUE;
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
static void vn_column_image_get_property (VnColumnImage * obj, guint id,
static void vn_column_image_get_property (VnColumnImage * self, guint id,
GValue * value, GParamSpec * pspec)
{
switch (id)
{
case PROP_HOST:
g_value_set_string (value, obj->host);
g_value_set_string (value, self->host);
break;
case PROP_PATH:
g_value_set_string (value, obj->path);
g_value_set_string (value, self->path);
break;
case PROP_TOOLTIP_PATH:
g_value_set_string (value, obj->tooltip_path);
g_value_set_string (value, self->tooltip_path);
break;
case PROP_TOOLTIP_SIZE:
g_value_set_int (value, obj->tooltip_size);
g_value_set_int (value, self->tooltip_size);
break;
case PROP_FILE_LOADER:
g_value_set_object (value, obj->loader);
g_value_set_object (value, self->loader);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Class
static void vn_column_image_init (VnColumnImage * obj)
static void vn_column_image_init (VnColumnImage * self)
{
GtkCellRenderer * cell = gtk_cell_renderer_pixbuf_new ();
VN_COLUMN_GET_CLASS (obj)->set_renderer (VN_COLUMN (obj), cell);
VN_COLUMN_GET_CLASS (self)->set_renderer (VN_COLUMN (self), cell);
obj->host = NULL;
obj->path = NULL;
obj->tooltip_path = NULL;
obj->loader = NULL;
obj->external_loader = FALSE;
obj->loaded = NULL;
obj->tooltips = NULL;
obj->tree_view = NULL;
self->host = NULL;
self->path = NULL;
self->tooltip_path = NULL;
self->loader = NULL;
self->external_loader = FALSE;
self->loaded = NULL;
self->tooltips = NULL;
self->tree_view = NULL;
}
static void vn_column_image_finalize (VnColumnImage * obj)
static void vn_column_image_finalize (VnColumnImage * self)
{
g_free (obj->host);
g_free (obj->path);
g_free (obj->tooltip_path);
g_free (self->host);
g_free (self->path);
g_free (self->tooltip_path);
if (obj->loader)
if (self->loader)
{
db_file_loader_cancel_all (obj->loader);
g_object_unref (obj->loader);
db_file_loader_cancel_all (self->loader);
g_object_unref (self->loader);
}
if (obj->loaded)
g_hash_table_destroy (obj->loaded);
if (self->loaded)
g_hash_table_destroy (self->loaded);
if (obj->tooltips)
g_hash_table_destroy (obj->tooltips);
if (self->tooltips)
g_hash_table_destroy (self->tooltips);
if (GTK_IS_TREE_VIEW (obj->tree_view))
g_signal_handlers_disconnect_by_func (obj->tree_view,
vn_column_image_on_query_tooltip, obj);
if (GTK_IS_TREE_VIEW (self->tree_view))
g_signal_handlers_disconnect_by_func (self->tree_view,
vn_column_image_on_query_tooltip, self);
G_OBJECT_CLASS (vn_column_image_parent_class)->finalize (G_OBJECT (obj));
G_OBJECT_CLASS (vn_column_image_parent_class)->finalize (G_OBJECT (self));
}
static void vn_column_image_class_init (VnColumnImageClass * klass)

View File

@ -21,11 +21,11 @@
#include <vn/vn-column.h>
#define VN_TYPE_COLUMN_IMAGE (vn_column_image_get_type ())
#define VN_COLUMN_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, VN_TYPE_COLUMN_IMAGE, VnColumnImage))
#define VN_IS_COLUMN_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, VN_TYPE_COLUMN_IMAGE))
#define VN_COLUMN_IMAGE(self) (G_TYPE_CHECK_INSTANCE_CAST (self, VN_TYPE_COLUMN_IMAGE, VnColumnImage))
#define VN_IS_COLUMN_IMAGE(self) (G_TYPE_CHECK_INSTANCE_TYPE (self, VN_TYPE_COLUMN_IMAGE))
#define VN_COLUMN_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, VN_TYPE_COLUMN_IMAGE, VnColumnImageClass))
#define VN_IS_COLUMN_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass, VN_TYPE_COLUMN_IMAGE))
#define VN_COLUMN_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (obj, VN_TYPE_COLUMN_IMAGE, VnColumnImageClass))
#define VN_COLUMN_IMAGE_GET_CLASS(self) (G_TYPE_INSTANCE_GET_CLASS (self, VN_TYPE_COLUMN_IMAGE, VnColumnImageClass))
typedef struct _VnColumnImage VnColumnImage;
typedef struct _VnColumnImageClass VnColumnImageClass;

View File

@ -16,7 +16,7 @@
*/
#include "vn-column-spin.h"
#include "../vn-grid-model.h"
#include "../vn-list-model.h"
G_DEFINE_TYPE (VnColumnSpin, vn_column_spin, VN_TYPE_COLUMN);
@ -28,7 +28,7 @@ VnColumn * vn_column_spin_new ()
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Private
static void vn_column_spin_on_edited (GtkCellRendererSpin * cell,
const gchar * path, gchar * text, VnColumnSpin * obj)
const gchar * path, gchar * text, VnColumnSpin * self)
{
GValue value = G_VALUE_INIT;
@ -40,12 +40,12 @@ static void vn_column_spin_on_edited (GtkCellRendererSpin * cell,
else
g_value_init (&value, GVN_TYPE_NULL);
VN_COLUMN_GET_CLASS (obj)->value_changed (VN_COLUMN (obj), path, &value);
VN_COLUMN_GET_CLASS (self)->value_changed (VN_COLUMN (self), path, &value);
g_value_unset (&value);
}
void vn_column_spin_on_editing_started (GtkCellRenderer * renderer,
GtkEntry * entry, gchar * path, GtkTreeViewColumn * obj)
GtkEntry * entry, gchar * path, GtkTreeViewColumn * self)
{
GtkTreeIter iter;
GtkTreeModel * model;
@ -54,13 +54,13 @@ void vn_column_spin_on_editing_started (GtkCellRenderer * renderer,
if (!GTK_IS_SPIN_BUTTON (entry))
return;
tree = GTK_TREE_VIEW (gtk_tree_view_column_get_tree_view (obj));
tree = GTK_TREE_VIEW (gtk_tree_view_column_get_tree_view (self));
model = gtk_tree_view_get_model (tree);
if (gtk_tree_model_get_iter_from_string (model, &iter, path))
{
GValue value = G_VALUE_INIT;
gint col = vn_column_get_column_index (VN_COLUMN (obj));
gint col = vn_column_get_column_index (VN_COLUMN (self));
gtk_tree_model_get_value (model, &iter, col, &value);
@ -69,27 +69,27 @@ void vn_column_spin_on_editing_started (GtkCellRenderer * renderer,
}
}
static void vn_column_spin_set_editable (VnColumn * obj, gboolean editable)
static void vn_column_spin_set_editable (VnColumn * self, gboolean editable)
{
if (editable)
{
g_signal_connect (obj->cell, "editing-started",
G_CALLBACK (vn_column_spin_on_editing_started), obj);
g_signal_connect (obj->cell, "edited",
G_CALLBACK (vn_column_spin_on_edited), obj);
g_signal_connect (self->cell, "editing-started",
G_CALLBACK (vn_column_spin_on_editing_started), self);
g_signal_connect (self->cell, "edited",
G_CALLBACK (vn_column_spin_on_edited), self);
}
else
{
g_signal_handlers_disconnect_by_func (obj->cell,
vn_column_spin_on_editing_started, obj);
g_signal_handlers_disconnect_by_func (obj->cell,
vn_column_spin_on_edited, obj);
g_signal_handlers_disconnect_by_func (self->cell,
vn_column_spin_on_editing_started, self);
g_signal_handlers_disconnect_by_func (self->cell,
vn_column_spin_on_edited, self);
}
g_object_set (obj->cell, "editable", editable, NULL);
g_object_set (self->cell, "editable", editable, NULL);
}
static void vn_column_spin_set_value (VnColumnSpin * obj, GtkTreeModel * model,
static void vn_column_spin_set_value (VnColumnSpin * self, GtkTreeModel * model,
GtkTreeIter * iter, GObject * cell, const GValue * value)
{
guint digits;
@ -112,7 +112,7 @@ static void vn_column_spin_set_value (VnColumnSpin * obj, GtkTreeModel * model,
else
dec = g_value_get_double (value);
g_ascii_formatd (buffer, G_ASCII_DTOSTR_BUF_SIZE, obj->format, dec);
g_ascii_formatd (buffer, G_ASCII_DTOSTR_BUF_SIZE, self->format, dec);
g_value_set_string (&new_value, buffer);
break;
@ -135,7 +135,7 @@ enum
PROP_DIGITS = 1
};
static void vn_column_spin_set_property (VnColumnSpin * obj, guint id,
static void vn_column_spin_set_property (VnColumnSpin * self, guint id,
const GValue * value, GParamSpec * pspec)
{
switch (id)
@ -143,34 +143,34 @@ static void vn_column_spin_set_property (VnColumnSpin * obj, guint id,
case PROP_DIGITS:
{
guint digits = g_value_get_uint (value);
g_object_set (VN_COLUMN (obj)->cell, "digits", digits, NULL);
g_free (obj->format);
obj->format = g_strdup_printf ("%%.%df", digits);
g_object_set (VN_COLUMN (self)->cell, "digits", digits, NULL);
g_free (self->format);
self->format = g_strdup_printf ("%%.%df", digits);
break;
}
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
static void vn_column_spin_get_property (VnColumnSpin * obj, guint id,
static void vn_column_spin_get_property (VnColumnSpin * self, guint id,
GValue * value, GParamSpec * pspec)
{
switch (id)
{
case PROP_DIGITS:
g_object_get_property (G_OBJECT (VN_COLUMN (obj)->cell), "digits", value);
g_object_get_property (G_OBJECT (VN_COLUMN (self)->cell), "digits", value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, id, pspec);
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, id, pspec);
}
}
static void vn_column_spin_init (VnColumnSpin * obj)
static void vn_column_spin_init (VnColumnSpin * self)
{
GtkCellRenderer * cell;
obj->format = NULL;
self->format = NULL;
cell = gtk_cell_renderer_spin_new ();
g_object_set (cell
@ -178,13 +178,13 @@ static void vn_column_spin_init (VnColumnSpin * obj)
,"alignment", PANGO_ALIGN_RIGHT
,NULL
);
VN_COLUMN_GET_CLASS (obj)->set_renderer (VN_COLUMN (obj), cell);
VN_COLUMN_GET_CLASS (self)->set_renderer (VN_COLUMN (self), cell);
}
static void vn_column_spin_finalize (VnColumnSpin * obj)
static void vn_column_spin_finalize (VnColumnSpin * self)
{
g_free (obj->format);
G_OBJECT_CLASS (vn_column_spin_parent_class)->finalize (G_OBJECT (obj));
g_free (self->format);
G_OBJECT_CLASS (vn_column_spin_parent_class)->finalize (G_OBJECT (self));
}
static void vn_column_spin_class_init (VnColumnSpinClass * klass)

View File

@ -21,11 +21,11 @@
#include <vn/vn-column.h>
#define VN_TYPE_COLUMN_SPIN (vn_column_spin_get_type ())
#define VN_COLUMN_SPIN(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, VN_TYPE_COLUMN_SPIN, VnColumnSpin))
#define VN_IS_COLUMN_SPIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, VN_TYPE_COLUMN_SPIN))
#define VN_COLUMN_SPIN(self) (G_TYPE_CHECK_INSTANCE_CAST (self, VN_TYPE_COLUMN_SPIN, VnColumnSpin))
#define VN_IS_COLUMN_SPIN(self) (G_TYPE_CHECK_INSTANCE_TYPE (self, VN_TYPE_COLUMN_SPIN))
#define VN_COLUMN_SPIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, VN_TYPE_COLUMN_SPIN, VnColumnSpinClass))
#define VN_IS_COLUMN_SPIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass, VN_TYPE_COLUMN_SPIN))
#define VN_COLUMN_SPIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (obj, VN_TYPE_COLUMN_SPIN, VnColumnSpinClass))
#define VN_COLUMN_SPIN_GET_CLASS(self) (G_TYPE_INSTANCE_GET_CLASS (self, VN_TYPE_COLUMN_SPIN, VnColumnSpinClass))
typedef struct _VnColumnSpin VnColumnSpin;
typedef struct _VnColumnSpinClass VnColumnSpinClass;

View File

@ -16,11 +16,11 @@
*/
#include "vn-combo.h"
#include "../vn-grid-model.h"
#include "../vn-list-model.h"
#include <db/db.h>
/**
* SECTION:vn-combo
* SECTION: vn-combo
* @Short_description: a combo box widget
* @Title: VnCombo
* @See_also: #VnField
@ -77,7 +77,6 @@ static void vn_combo_on_model_ready (VnCombo * self, const GValue * value)
&& db_model_search_value (self->model, self->index_column, &iter, value))
{
GtkTreeIter tree_iter;
vn_gtk_tree_iter_from_db_iter (&tree_iter, &iter);
gtk_combo_box_set_active_iter (self->combo, &tree_iter);
}
@ -96,7 +95,8 @@ static void vn_combo_on_status_changed (DbModel * model, DbModelStatus status, V
self->tree_set = TRUE;
vn_combo_on_model_ready (self, gvn_param_get_value (GVN_PARAM (self)));
db_model_use_null_row (model, vn_field_get_null (VN_FIELD (self)));
vn_list_model_use_null_row (VN_LIST_MODEL (self->tree),
vn_field_get_null (VN_FIELD (self)));
}
else
{
@ -126,7 +126,6 @@ static DbModel * vn_combo_get_model (VnCombo * self)
static void vn_combo_set_model (VnCombo * self, DbModel * model)
{
g_return_if_fail (VN_IS_COMBO (self));
g_return_if_fail (DB_IS_MODEL (model) || !model);
if (self->model)
{
@ -137,7 +136,7 @@ static void vn_combo_set_model (VnCombo * self, DbModel * model)
}
if (model)
{
self->tree = GTK_TREE_MODEL (vn_grid_model_new (model));
self->tree = GTK_TREE_MODEL (vn_list_model_new (model));
self->model = g_object_ref (model);
g_signal_connect (model, "status-changed",
G_CALLBACK (vn_combo_on_status_changed), self);
@ -269,7 +268,7 @@ static void vn_combo_init (VnCombo * self)
g_signal_connect (self->combo, "changed",
G_CALLBACK (vn_combo_on_changed), self);
gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (self->combo));
self->cell = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (self->combo), self->cell, TRUE);

View File

@ -17,7 +17,7 @@
#include "vn-completion.h"
#include <db/db.h>
#include <vn/vn-grid-model.h>
#include <vn/vn-list-model.h>
#include <string.h>
#define set_icon(self,icon_name) (gtk_entry_set_icon_from_icon_name (self->entry, GTK_ENTRY_ICON_SECONDARY, icon_name))
@ -64,7 +64,7 @@ static void vn_completion_on_status_changed (DbModel * model,
if (status == DB_MODEL_STATUS_READY)
{
GtkTreeModel * tree = GTK_TREE_MODEL (vn_grid_model_new (model));
GtkTreeModel * tree = GTK_TREE_MODEL (vn_list_model_new (model));
gtk_entry_completion_set_model (self->completion, tree);
g_signal_emit_by_name (self->entry, "changed");
g_object_unref (tree);

View File

@ -65,7 +65,7 @@ static void vn_column_data_func (GtkTreeViewColumn * col, GtkCellRenderer * cell
/*
vn_gtk_tree_iter_to_db_iter (iter, &dbiter);
ops = db_model_get_row_operations (
vn_grid_model_get_model (VN_GRID_MODEL (model))
vn_list_model_get_model (VN_LIST_MODEL (model))
,&dbiter
);

View File

@ -1,507 +0,0 @@
/*
* Copyright (C) 2012 - Juan Ferrer Toribio
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "vn-grid-model.h"
typedef struct
{
gchar * detail;
gpointer callback;
}
GvnSignalInfo;
/*
* gvn_object_link:
* @obj: instance
* @prop: property of @obj to be set to @prop_value
* @prop_value: the value to set on @prop
* @info: an array of GvnSignalInfo
*
* Connects the signals of an object passed on @prop_value to the callbacks
* listed in a GvnSignalInfo array.
*/
void _gvn_object_link (gpointer obj, gpointer * prop, gpointer prop_value, GvnSignalInfo * info)
{
gint i;
if (*prop)
{
for (i = 0; info[i].detail; i++)
g_signal_handlers_disconnect_by_func (*prop, info[i].callback, obj);
g_object_unref (*prop);
}
if (prop_value)
{
for (i = 0; info[i].detail; i++)
if (g_str_has_suffix (info[i].detail, ".after"))
{
gchar ** split = g_strsplit (info[i].detail, ".", 0);
g_signal_connect_after (prop_value, split[0], info[i].callback, obj);
g_strfreev (split);
}
else
g_signal_connect (prop_value, info[i].detail, info[i].callback, obj);
*prop = g_object_ref_sink (prop_value);
}
else
*prop = NULL;
}
#define gvn_object_link(obj, prop, prop_value, info) (_gvn_object_link (obj, (void**) prop, prop_value, info))
static void vn_grid_model_tree_model_init (GtkTreeModelIface * iface);
static void vn_grid_model_tree_sortable_init (GtkTreeSortableIface * iface);
G_DEFINE_TYPE_WITH_CODE (VnGridModel, vn_grid_model, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL,
vn_grid_model_tree_model_init)
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_SORTABLE,
vn_grid_model_tree_sortable_init)
);
/**
* vn_grid_model_new:
* @model: a #DbModel
*
* Creates a new #VnGridModel with @model as the data model.
*
* Return value: (transfer full): a #VnGridModel.
**/
VnGridModel * vn_grid_model_new (DbModel * model)
{
return g_object_new (VN_TYPE_GRID_MODEL, "model", model, NULL);
}
/**
* vn_grid_model_get_model:
* @obj: a #VnGridModel
*
* Passes the #DbModel used internally by @model.
*
* Return value: (transfer none): a #DbModel.
**/
DbModel * vn_grid_model_get_model (VnGridModel * obj)
{
g_return_val_if_fail (VN_IS_GRID_MODEL (obj), NULL);
return obj->model;
}
/**
* vn_gtk_tree_iter_from_db_iter:
* @dest_iter: the #GtkTreeIter to set using the data on @src_iter
* @src_iter: a valid #DbIter
*
* Sets a #GtkTreeIter with the data of a #DbIter. This function is mostly used
* internally.
**/
void gtk_tree_iter_from_db_iter (GtkTreeIter * dest_iter, const DbIter * src_iter)
{
dest_iter->stamp = src_iter->stamp;
dest_iter->user_data = src_iter->data;
}
/**
* vn_gtk_tree_iter_to_db_iter:
* @src_iter: a valid #GtkTreeIter
* @dest_iter: the #DbIter to set using the data on @src_iter
*
* Sets a with #DbIter the data of a #GtkTreeIter. This function is mostly used
* internally.
**/
void gtk_tree_iter_to_db_iter (const GtkTreeIter * src_iter, DbIter * dest_iter)
{
dest_iter->stamp = src_iter->stamp;
dest_iter->data = src_iter->user_data;
}
/**
* vn_grid_model_iter_is_valid:
* @iter: a #GtkTreeIter
* @model: a #GtkTreeModel
*
* Checks if @iter is a valid #GtkTreeIter pointing inside #GtkTreeModel.
**/
gboolean vn_grid_model_iter_is_valid (GtkTreeIter * iter, GtkTreeModel * model)
{
DbIter dbiter;
g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
gtk_tree_iter_to_db_iter (iter, &dbiter);
return db_model_iter_is_valid (&dbiter, VN_GRID_MODEL (model)->model);
}
static gint vn_grid_model_get_nrows (GtkTreeModel * obj)
{
return db_model_get_nrows (VN_GRID_MODEL (obj)->model);
}
//++++ Broadcast of GtkTreeModel and GtkTreeSortable signals:
static void vn_grid_model_on_line_updated (DbModel * model, DbIter * dbiter, GtkTreeModel * obj)
{
GtkTreeIter iter;
gtk_tree_iter_from_db_iter (&iter, dbiter);
GtkTreePath * path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, db_model_get_path (model, dbiter));
gtk_tree_model_row_changed (obj, path, &iter);
gtk_tree_path_free (path);
}
static void vn_grid_model_on_line_inserted (DbModel * model, DbIter * dbiter, GtkTreeModel * obj)
{
GtkTreeIter iter;
gtk_tree_iter_from_db_iter (&iter, dbiter);
GtkTreePath * path = gtk_tree_path_new ();
gtk_tree_path_append_index (path,
db_model_get_path (model, dbiter));
gtk_tree_model_row_inserted (obj, path, &iter);
gtk_tree_path_free (path);
}
static void vn_grid_model_on_line_deleted (DbModel * model, gint position, GtkTreeModel * obj)
{
GtkTreePath * path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, position);
if (gtk_tree_path_get_indices (path))
gtk_tree_model_row_deleted (obj, path);
gtk_tree_path_free (path);
}
static void vn_grid_model_on_lines_reordered (DbModel * model, guint col, gint * new_order, GtkTreeModel * obj)
{
GtkTreePath * path = gtk_tree_path_new ();
gtk_tree_model_rows_reordered (obj, path, NULL, new_order);
gtk_tree_path_free (path);
}
static void vn_grid_model_on_sort_changed (DbModel * model, GtkTreeSortable * obj)
{
g_signal_emit_by_name (obj, "sort-column-changed");
}
//++++ Implementation of GtkTreeModel methods (using DbModel methods)
static GtkTreeModelFlags vn_grid_model_get_flags (GtkTreeModel * obj)
{
return GTK_TREE_MODEL_ITERS_PERSIST | GTK_TREE_MODEL_LIST_ONLY;
}
static gint vn_grid_model_get_ncols (GtkTreeModel * obj)
{
return db_model_get_ncols (VN_GRID_MODEL (obj)->model);
}
static GType vn_grid_model_get_column_type (GtkTreeModel * obj, gint index_)
{
return db_model_get_column_type (VN_GRID_MODEL (obj)->model, index_);
}
static gboolean vn_grid_model_get_iter (GtkTreeModel * obj, GtkTreeIter * iter,
GtkTreePath * path)
{
DbIter dbiter;
gint p = gtk_tree_path_get_indices (path)[0];
gboolean ret = db_model_get_iter (VN_GRID_MODEL (obj)->model, &dbiter, p);
if (ret)
gtk_tree_iter_from_db_iter (iter, &dbiter);
return ret;
}
static GtkTreePath * vn_grid_model_get_path (GtkTreeModel * obj, GtkTreeIter * iter)
{
GtkTreePath * path;
DbIter dbiter;
gtk_tree_iter_to_db_iter (iter, &dbiter);
path = gtk_tree_path_new ();
gtk_tree_path_append_index (path,
db_model_get_path (VN_GRID_MODEL (obj)->model, &dbiter));
return path;
}
static void vn_grid_model_get_value (GtkTreeModel * obj, GtkTreeIter * iter,
gint column, GValue * value)
{
const GValue * v;
DbIter dbiter;
gtk_tree_iter_to_db_iter (iter, &dbiter);
v = db_model_get_value (VN_GRID_MODEL (obj)->model, &dbiter, column, NULL);
if (v)
{
g_value_init (value, G_VALUE_TYPE (v));
g_value_copy (v, value);
}
else
g_value_init (value, GVN_TYPE_NULL);
}
static gboolean vn_grid_model_iter_next (GtkTreeModel * obj, GtkTreeIter * iter)
{
DbIter dbiter;
gtk_tree_iter_to_db_iter (iter, &dbiter);
gboolean ret_val = db_model_iter_next (VN_GRID_MODEL (obj)->model, &dbiter);
iter->user_data = dbiter.data;
return ret_val;
}
static gboolean vn_grid_model_iter_previous (GtkTreeModel * obj, GtkTreeIter * iter)
{
DbIter dbiter;
gtk_tree_iter_to_db_iter (iter, &dbiter);
gboolean ret_val = db_model_iter_prev (VN_GRID_MODEL (obj)->model, &dbiter);
iter->user_data = dbiter.data;
return ret_val;
}
static gboolean vn_grid_model_iter_children (GtkTreeModel * obj, GtkTreeIter * iter,
GtkTreeIter * parent)
{
if (parent == NULL)
{
DbIter dbiter;
gboolean ret_val = db_model_get_iter_first (VN_GRID_MODEL (obj)->model
,&dbiter);
if (ret_val)
gtk_tree_iter_from_db_iter (iter, &dbiter);
return ret_val;
}
return FALSE;
}
static gboolean vn_grid_model_iter_has_child (GtkTreeModel * obj, GtkTreeIter * iter)
{
return FALSE;
}
static gint vn_grid_model_iter_n_children (GtkTreeModel * obj, GtkTreeIter * iter)
{
if (iter == NULL)
return vn_grid_model_get_nrows (obj);
return 0;
}
static gboolean vn_grid_model_iter_nth_child (GtkTreeModel * obj, GtkTreeIter * iter
,GtkTreeIter * parent, gint n)
{
if (parent == NULL)
{
DbIter dbiter;
gboolean ret = db_model_get_iter (VN_GRID_MODEL (obj)->model, &dbiter, n);
if (ret)
gtk_tree_iter_from_db_iter (iter, &dbiter);
}
return FALSE;
}
static gboolean vn_grid_model_iter_parent (GtkTreeModel * obj, GtkTreeIter * iter,
GtkTreeIter * child)
{
return FALSE;
}
//++++ Implementation of GtkTreeSortable methods (using DbModel methods)
static gboolean vn_grid_model_get_sort_column_id (GtkTreeSortable * obj,
gint * sort_column_id,
GtkSortType * order)
{
return db_model_get_sort_column_id (VN_GRID_MODEL (obj)->model
,sort_column_id, (DbSortType *) order);
}
static void vn_grid_model_set_sort_column_id (GtkTreeSortable * obj, gint sort_column_id,
GtkSortType order)
{
DbSortType db_order;
if (order == GTK_SORT_ASCENDING)
db_order = DB_SORT_ASCENDING;
else
db_order = DB_SORT_DESCENDING;
db_model_set_sort_column_id (VN_GRID_MODEL (obj)->model, sort_column_id, db_order);
}
static void vn_grid_model_set_sort_func (GtkTreeSortable *sortable, gint sort_column_id,
GtkTreeIterCompareFunc sort_func, gpointer user_data, GDestroyNotify destroy)
{
g_log (g_quark_to_string (VN_GRID_MODEL_LOG_DOMAIN)
,G_LOG_LEVEL_WARNING, "Function vn_grid_model_set_sort_func not implemented");
}
static void vn_grid_model_set_default_sort_func (GtkTreeSortable *sortable,
GtkTreeIterCompareFunc sort_func, gpointer user_data, GDestroyNotify destroy)
{
g_log (g_quark_to_string (VN_GRID_MODEL_LOG_DOMAIN)
,G_LOG_LEVEL_WARNING, "Function vn_grid_model_set_default_sort_func not implemented");
}
static gboolean vn_grid_model_has_default_sort_func (GtkTreeSortable * obj)
{
return TRUE;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Properties
typedef enum
{
PROP_MODEL = 1
}
VnGridModelProp;
/*Experimental way to connect a property object signals using gvn_object_link*/
GvnSignalInfo signal_info[] =
{
{"line-updated.after", vn_grid_model_on_line_updated
},{"line-inserted", vn_grid_model_on_line_inserted
},{"line-deleted.after", vn_grid_model_on_line_deleted
},{"lines-reordered", vn_grid_model_on_lines_reordered
},{"sort-changed", vn_grid_model_on_sort_changed
},{NULL}
};
static void vn_grid_model_set_property (VnGridModel * obj, guint property_id,
const GValue * value, GParamSpec * pspec)
{
switch (property_id)
{
case PROP_MODEL:
gvn_object_link (obj, &obj->model, g_value_get_object (value), signal_info);
/*g_object_ref_sink (obj->model);
g_object_connect (obj->model
,"signal-after::line-updated", vn_grid_model_on_line_updated, obj
,"signal::line-inserted", vn_grid_model_on_line_inserted, obj
,"signal-after::line-deleted", vn_grid_model_on_line_deleted, obj
,"signal::lines-reordered", vn_grid_model_on_lines_reordered, obj
,"signal::sort-changed", vn_grid_model_on_sort_changed, obj, NULL);*/
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
}
}
static void vn_grid_model_get_property (VnGridModel * obj, guint property_id,
GValue * value, GParamSpec * pspec)
{
switch (property_id)
{
case PROP_MODEL:
g_value_set_object (value, obj->model);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Class
static void vn_grid_model_finalize (VnGridModel * obj)
{
gvn_object_link (obj, &obj->model, NULL, signal_info);
/*
g_object_disconnect (obj->model
,"any_signal", vn_grid_model_on_line_updated, obj
,"any_signal", vn_grid_model_on_line_inserted, obj
,"any_signal", vn_grid_model_on_line_deleted, obj
,"any_signal", vn_grid_model_on_lines_reordered, obj
,"any_signal", vn_grid_model_on_sort_changed, obj, NULL);
g_object_unref (obj->model);
*/
G_OBJECT_CLASS (vn_grid_model_parent_class)->finalize (G_OBJECT (obj));
}
static void vn_grid_model_class_init (VnGridModelClass * k)
{
GObjectClass * klass = G_OBJECT_CLASS (k);
klass->set_property = (GObjectSetPropertyFunc) vn_grid_model_set_property;
klass->get_property = (GObjectGetPropertyFunc) vn_grid_model_get_property;
klass->finalize = (GObjectFinalizeFunc) vn_grid_model_finalize;
g_object_class_install_property (klass, PROP_MODEL,
g_param_spec_object ("model"
,"Model"
,"The #DbModel with the data used by the #VnGridModel"
,DB_TYPE_MODEL
,G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE
));
}
static void vn_grid_model_tree_model_init (GtkTreeModelIface * iface)
{
iface->get_flags = vn_grid_model_get_flags;
iface->get_n_columns = vn_grid_model_get_ncols;
iface->get_column_type = vn_grid_model_get_column_type;
iface->get_iter = vn_grid_model_get_iter;
iface->get_path = vn_grid_model_get_path;
iface->get_value = vn_grid_model_get_value;
iface->iter_next = vn_grid_model_iter_next;
iface->iter_previous = vn_grid_model_iter_previous;
iface->iter_children = vn_grid_model_iter_children;
iface->iter_has_child = vn_grid_model_iter_has_child;
iface->iter_n_children = vn_grid_model_iter_n_children;
iface->iter_nth_child = vn_grid_model_iter_nth_child;
iface->iter_parent = vn_grid_model_iter_parent;
}
static void vn_grid_model_tree_sortable_init (GtkTreeSortableIface * iface)
{
iface->get_sort_column_id = vn_grid_model_get_sort_column_id;
iface->set_sort_column_id = vn_grid_model_set_sort_column_id;
iface->set_sort_func = vn_grid_model_set_sort_func;
iface->set_default_sort_func = vn_grid_model_set_default_sort_func;
iface->has_default_sort_func = vn_grid_model_has_default_sort_func;
}
static void vn_grid_model_init (VnGridModel * obj)
{
obj->model = NULL;
}

View File

@ -334,7 +334,7 @@ static void vn_grid_on_model_status_changed (DbModel * model, DbModelStatus stat
db_iterator_status_changed (DB_ITERATOR (self), TRUE);
tree_model = GTK_TREE_MODEL (vn_grid_model_new (self->model));
tree_model = GTK_TREE_MODEL (vn_list_model_new (self->model));
gtk_tree_view_set_model (GTK_TREE_VIEW (self), tree_model);
vn_grid_on_iter_changed (GTK_TREE_VIEW (self));

View File

@ -20,7 +20,7 @@
#include <db/db.h>
#include <gtk/gtk.h>
#include "vn-grid-model.h"
#include "vn-list-model.h"
#include "vn-column.h"
#define VN_TYPE_GRID (vn_grid_get_type ())
@ -51,6 +51,6 @@ struct _VnGridClass
};
GType vn_grid_get_type ();
VnGrid * vn_grid_new ();
VnGrid * vn_grid_new (DbModel * model);
#endif

600
vn/vn-list-model.c Normal file
View File

@ -0,0 +1,600 @@
/*
* Copyright (C) 2012 - Juan Ferrer Toribio
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "vn-list-model.h"
typedef struct
{
gchar * detail;
gpointer callback;
}
GvnSignalInfo;
/*
* gvn_object_link:
* @obj: instance
* @prop: property of @obj to be set to @prop_value
* @prop_value: the value to set on @prop
* @info: an array of GvnSignalInfo
*
* Connects the signals of an object passed on @prop_value to the callbacks
* listed in a GvnSignalInfo array.
*/
void _gvn_object_link (gpointer self, gpointer * prop, gpointer prop_value, GvnSignalInfo * info)
{
gint i;
if (*prop)
{
for (i = 0; info[i].detail; i++)
g_signal_handlers_disconnect_by_func (*prop, info[i].callback, self);
g_object_unref (*prop);
}
if (prop_value)
{
for (i = 0; info[i].detail; i++)
if (g_str_has_suffix (info[i].detail, ".after"))
{
gchar ** split = g_strsplit (info[i].detail, ".", 0);
g_signal_connect_after (prop_value, split[0], info[i].callback, self);
g_strfreev (split);
}
else
g_signal_connect (prop_value, info[i].detail, info[i].callback, self);
*prop = g_object_ref_sink (prop_value);
}
else
*prop = NULL;
}
#define gvn_object_link(self, prop, prop_value, info) (_gvn_object_link (self, (void**) prop, prop_value, info))
static void vn_list_model_tree_model_init (GtkTreeModelIface * iface);
static void vn_list_model_tree_sortable_init (GtkTreeSortableIface * iface);
G_DEFINE_TYPE_WITH_CODE (VnListModel, vn_list_model, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL,
vn_list_model_tree_model_init)
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_SORTABLE,
vn_list_model_tree_sortable_init)
);
/**
* vn_list_model_new:
* @model: a #DbModel
*
* Creates a new #VnListModel with @model as the data model.
*
* Return value: (transfer full): a #VnListModel.
**/
VnListModel * vn_list_model_new (DbModel * model)
{
return g_object_new (VN_TYPE_LIST_MODEL, "model", model, NULL);
}
/**
* vn_list_model_get_model:
* @obj: a #VnListModel
*
* Passes the #DbModel used internally by @model.
*
* Return value: (transfer none): a #DbModel.
**/
DbModel * vn_list_model_get_model (VnListModel * self)
{
g_return_val_if_fail (VN_IS_LIST_MODEL (self), NULL);
return self->model;
}
/**
* vn_list_model_use_null_row:
* @self: a #VnListModel
* @use: wether to use a null row
*
* Sets wether to use a null row at the end of the model. This row can't be
* modified, its purpose is to set a #NULL option in selection widgets, like
* #VnCombo.
**/
void vn_list_model_use_null_row (VnListModel * self, gboolean use)
{
g_return_if_fail (VN_IS_LIST_MODEL (self));
self->null_row = use;
}
/**
* vn_gtk_tree_iter_from_db_iter:
* @dest_iter: the #GtkTreeIter to set using the data on @src_iter
* @src_iter: a valid #DbIter
*
* Sets a #GtkTreeIter with the data of a #DbIter. This function is mostly used
* internally.
**/
void gtk_tree_iter_from_db_iter (GtkTreeIter * dest_iter, const DbIter * src_iter)
{
dest_iter->stamp = src_iter->stamp;
dest_iter->user_data = src_iter->data;
}
/**
* vn_gtk_tree_iter_to_db_iter:
* @src_iter: a valid #GtkTreeIter
* @dest_iter: the #DbIter to set using the data on @src_iter
*
* Sets a with #DbIter the data of a #GtkTreeIter. This function is mostly used
* internally.
**/
void gtk_tree_iter_to_db_iter (const GtkTreeIter * src_iter, DbIter * dest_iter)
{
dest_iter->stamp = src_iter->stamp;
dest_iter->data = src_iter->user_data;
}
/**
* vn_list_model_iter_is_valid:
* @iter: a #GtkTreeIter
* @model: a #GtkTreeModel
*
* Checks if @iter is a valid #GtkTreeIter pointing inside #GtkTreeModel.
**/
gboolean vn_list_model_iter_is_valid (GtkTreeIter * iter, GtkTreeModel * model)
{
DbIter dbiter;
g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
gtk_tree_iter_to_db_iter (iter, &dbiter);
return db_model_iter_is_valid (&dbiter, VN_LIST_MODEL (model)->model);
}
static gint vn_list_model_get_nrows (GtkTreeModel * self)
{
gint nrows = db_model_get_nrows (VN_LIST_MODEL (self)->model);
return VN_LIST_MODEL (self)->null_row ? nrows + 1 : nrows;
}
//++++ Broadcast of GtkTreeModel and GtkTreeSortable signals:
static void vn_list_model_on_line_updated (DbModel * model, DbIter * dbiter, GtkTreeModel * self)
{
GtkTreeIter iter;
GtkTreePath * path;
gint p = db_model_get_path (model, dbiter);
p = VN_LIST_MODEL (self)->null_row ? p + 1 : p;
gtk_tree_iter_from_db_iter (&iter, dbiter);
path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, p);
gtk_tree_model_row_changed (self, path, &iter);
gtk_tree_path_free (path);
}
static void vn_list_model_on_line_inserted (DbModel * model, DbIter * dbiter, GtkTreeModel * self)
{
GtkTreeIter iter;
GtkTreePath * path;
gint p = db_model_get_path (model, dbiter);
p = VN_LIST_MODEL (self)->null_row ? p + 1 : p;
gtk_tree_iter_from_db_iter (&iter, dbiter);
path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, p);
gtk_tree_model_row_inserted (self, path, &iter);
gtk_tree_path_free (path);
}
static void vn_list_model_on_line_deleted (DbModel * model, gint pos, GtkTreeModel * self)
{
GtkTreePath * path = gtk_tree_path_new ();
gtk_tree_path_append_index (path,
VN_LIST_MODEL (self)->null_row ? pos + 1 : pos);
if (gtk_tree_path_get_indices (path))
gtk_tree_model_row_deleted (self, path);
gtk_tree_path_free (path);
}
static void vn_list_model_on_lines_reordered (DbModel * model, guint col, gint * new_order, GtkTreeModel * self)
{
GtkTreePath * path = gtk_tree_path_new ();
gtk_tree_model_rows_reordered (self, path, NULL, new_order);
gtk_tree_path_free (path);
}
static void vn_list_model_on_sort_changed (DbModel * model, GtkTreeSortable * self)
{
g_signal_emit_by_name (self, "sort-column-changed");
}
//++++ Implementation of GtkTreeModel methods (using DbModel methods)
static GtkTreeModelFlags vn_list_model_get_flags (GtkTreeModel * self)
{
return GTK_TREE_MODEL_ITERS_PERSIST | GTK_TREE_MODEL_LIST_ONLY;
}
static gint vn_list_model_get_ncols (GtkTreeModel * self)
{
return db_model_get_ncols (VN_LIST_MODEL (self)->model);
}
static GType vn_list_model_get_column_type (GtkTreeModel * self, gint index_)
{
return db_model_get_column_type (VN_LIST_MODEL (self)->model, index_);
}
static gboolean vn_list_model_get_iter (GtkTreeModel * self, GtkTreeIter * iter,
GtkTreePath * path)
{
gboolean ok = FALSE;
gint p = gtk_tree_path_get_indices (path)[0];
p = VN_LIST_MODEL (self)->null_row ? p - 1 : p;
if (p >= 0)
{
DbIter dbiter;
ok = db_model_get_iter (VN_LIST_MODEL (self)->model, &dbiter, p);
if (ok)
gtk_tree_iter_from_db_iter (iter, &dbiter);
}
else
{
iter->user_data = self;
ok = TRUE;
}
return ok;
}
static GtkTreePath * vn_list_model_get_path (GtkTreeModel * self, GtkTreeIter * iter)
{
gint p;
GtkTreePath * path;
if (iter->user_data != self)
{
DbIter dbiter;
gtk_tree_iter_to_db_iter (iter, &dbiter);
p = db_model_get_path (VN_LIST_MODEL (self)->model, &dbiter);
p = VN_LIST_MODEL (self)->null_row ? p + 1 : p;
}
else
p = 0;
path = gtk_tree_path_new ();
gtk_tree_path_append_index (path, p);
return path;
}
static void vn_list_model_get_value (GtkTreeModel * self, GtkTreeIter * iter,
gint column, GValue * value)
{
GValue * v = NULL;
if (iter->user_data != self)
{
DbIter dbiter;
gtk_tree_iter_to_db_iter (iter, &dbiter);
v = (GValue *) db_model_get_value (VN_LIST_MODEL (self)->model, &dbiter, column, NULL);
}
if (v)
{
g_value_init (value, G_VALUE_TYPE (v));
g_value_copy (v, value);
}
else
g_value_init (value, GVN_TYPE_NULL);
}
static gboolean vn_list_model_iter_next (GtkTreeModel * self, GtkTreeIter * iter)
{
DbIter dbiter;
gboolean ret_val;
if (iter->user_data != self)
{
gtk_tree_iter_to_db_iter (iter, &dbiter);
ret_val = db_model_iter_next (VN_LIST_MODEL (self)->model, &dbiter);
}
else
ret_val = db_model_get_iter_first (VN_LIST_MODEL (self)->model, &dbiter);
gtk_tree_iter_from_db_iter (iter, &dbiter);
return ret_val;
}
static gboolean vn_list_model_iter_previous (GtkTreeModel * self, GtkTreeIter * iter)
{
if (iter->user_data != self)
{
DbIter dbiter;
DbModel * model = VN_LIST_MODEL (self)->model;
gtk_tree_iter_to_db_iter (iter, &dbiter);
if (db_model_iter_prev (model, &dbiter))
{
iter->user_data = dbiter.data;
return TRUE;
}
else if (db_model_get_iter_first (model, &dbiter)
&& iter->user_data == dbiter.data)
{
iter->user_data = self;
return TRUE;
}
}
return FALSE;
}
static gboolean vn_list_model_iter_children (GtkTreeModel * self, GtkTreeIter * iter,
GtkTreeIter * parent)
{
if (parent == NULL)
{
gboolean ret_val;
if (!VN_LIST_MODEL (self)->null_row)
{
DbIter dbiter;
ret_val = db_model_get_iter_first (VN_LIST_MODEL (self)->model, &dbiter);
if (ret_val)
gtk_tree_iter_from_db_iter (iter, &dbiter);
}
else
{
iter->user_data = self;
ret_val = TRUE;
}
return ret_val;
}
return FALSE;
}
static gboolean vn_list_model_iter_has_child (GtkTreeModel * self, GtkTreeIter * iter)
{
return FALSE;
}
static gint vn_list_model_iter_n_children (GtkTreeModel * self, GtkTreeIter * iter)
{
if (iter == NULL)
{
gint nrows = vn_list_model_get_nrows (self);
return VN_LIST_MODEL (self)->null_row ? nrows + 1 : nrows;
}
return 0;
}
static gboolean vn_list_model_iter_nth_child (GtkTreeModel * self, GtkTreeIter * iter
,GtkTreeIter * parent, gint n)
{
if (parent == NULL)
{
DbIter dbiter;
gboolean ok = db_model_get_iter (VN_LIST_MODEL (self)->model,
&dbiter, VN_LIST_MODEL (self)->null_row ? n - 1 : n);
if (ok)
{
gtk_tree_iter_from_db_iter (iter, &dbiter);
return TRUE;
}
}
return FALSE;
}
static gboolean vn_list_model_iter_parent (GtkTreeModel * self, GtkTreeIter * iter,
GtkTreeIter * child)
{
return FALSE;
}
//++++ Implementation of GtkTreeSortable methods (using DbModel methods)
static gboolean vn_list_model_get_sort_column_id (GtkTreeSortable * self,
gint * sort_column_id,
GtkSortType * order)
{
return db_model_get_sort_column_id (VN_LIST_MODEL (self)->model
,sort_column_id, (DbSortType *) order);
}
static void vn_list_model_set_sort_column_id (GtkTreeSortable * self, gint sort_column_id,
GtkSortType order)
{
DbSortType db_order;
if (order == GTK_SORT_ASCENDING)
db_order = DB_SORT_ASCENDING;
else
db_order = DB_SORT_DESCENDING;
db_model_set_sort_column_id (VN_LIST_MODEL (self)->model, sort_column_id, db_order);
}
static void vn_list_model_set_sort_func (GtkTreeSortable *sortable, gint sort_column_id,
GtkTreeIterCompareFunc sort_func, gpointer user_data, GDestroyNotify destroy)
{
g_warning ("Function vn_list_model_set_sort_func not implemented");
}
static void vn_list_model_set_default_sort_func (GtkTreeSortable *sortable,
GtkTreeIterCompareFunc sort_func, gpointer user_data, GDestroyNotify destroy)
{
g_warning ("Function vn_list_model_set_default_sort_func not implemented");
}
static gboolean vn_list_model_has_default_sort_func (GtkTreeSortable * self)
{
return TRUE;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Properties
typedef enum
{
PROP_MODEL = 1
,PROP_NULL_ROW
}
VnListModelProp;
/*Experimental way to connect a property object signals using gvn_object_link*/
GvnSignalInfo signal_info[] =
{
{"line-updated.after", vn_list_model_on_line_updated
},{"line-inserted", vn_list_model_on_line_inserted
},{"line-deleted.after", vn_list_model_on_line_deleted
},{"lines-reordered", vn_list_model_on_lines_reordered
},{"sort-changed", vn_list_model_on_sort_changed
},{NULL}
};
static void vn_list_model_set_property (VnListModel * self, guint property_id,
const GValue * value, GParamSpec * pspec)
{
switch (property_id)
{
case PROP_MODEL:
gvn_object_link (self, &self->model, g_value_get_object (value), signal_info);
/*g_object_ref_sink (self->model);
g_object_connect (self->model
,"signal-after::line-updated", vn_list_model_on_line_updated, obj
,"signal::line-inserted", vn_list_model_on_line_inserted, obj
,"signal-after::line-deleted", vn_list_model_on_line_deleted, obj
,"signal::lines-reordered", vn_list_model_on_lines_reordered, obj
,"signal::sort-changed", vn_list_model_on_sort_changed, self, NULL);*/
break;
case PROP_NULL_ROW:
vn_list_model_use_null_row (self, g_value_get_boolean (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, property_id, pspec);
}
}
static void vn_list_model_get_property (VnListModel * self, guint property_id,
GValue * value, GParamSpec * pspec)
{
switch (property_id)
{
case PROP_MODEL:
g_value_set_object (value, self->model);
break;
case PROP_NULL_ROW:
g_value_set_boolean (value, self->null_row);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (self, property_id, pspec);
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Class
static void vn_list_model_init (VnListModel * self)
{
self->model = NULL;
self->null_row = FALSE;
}
static void vn_list_model_finalize (VnListModel * self)
{
gvn_object_link (self, &self->model, NULL, signal_info);
/*
g_object_disconnect (self->model
,"any_signal", vn_list_model_on_line_updated, obj
,"any_signal", vn_list_model_on_line_inserted, obj
,"any_signal", vn_list_model_on_line_deleted, obj
,"any_signal", vn_list_model_on_lines_reordered, obj
,"any_signal", vn_list_model_on_sort_changed, self, NULL);
g_object_unref (self->model);
*/
G_OBJECT_CLASS (vn_list_model_parent_class)->finalize (G_OBJECT (self));
}
static void vn_list_model_class_init (VnListModelClass * k)
{
GObjectClass * klass = G_OBJECT_CLASS (k);
klass->set_property = (GObjectSetPropertyFunc) vn_list_model_set_property;
klass->get_property = (GObjectGetPropertyFunc) vn_list_model_get_property;
klass->finalize = (GObjectFinalizeFunc) vn_list_model_finalize;
g_object_class_install_property (klass, PROP_MODEL,
g_param_spec_object ("model"
,"Model"
,"The #DbModel with the data used by the #VnListModel"
,DB_TYPE_MODEL
,G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE
));
g_object_class_install_property (klass, PROP_NULL_ROW,
g_param_spec_boolean ("null-row"
,_("Null row")
,_("Whether the list model will add a null row or not")
,FALSE
,G_PARAM_READWRITE
));
}
static void vn_list_model_tree_model_init (GtkTreeModelIface * iface)
{
iface->get_flags = vn_list_model_get_flags;
iface->get_n_columns = vn_list_model_get_ncols;
iface->get_column_type = vn_list_model_get_column_type;
iface->get_iter = vn_list_model_get_iter;
iface->get_path = vn_list_model_get_path;
iface->get_value = vn_list_model_get_value;
iface->iter_next = vn_list_model_iter_next;
iface->iter_previous = vn_list_model_iter_previous;
iface->iter_children = vn_list_model_iter_children;
iface->iter_has_child = vn_list_model_iter_has_child;
iface->iter_n_children = vn_list_model_iter_n_children;
iface->iter_nth_child = vn_list_model_iter_nth_child;
iface->iter_parent = vn_list_model_iter_parent;
}
static void vn_list_model_tree_sortable_init (GtkTreeSortableIface * iface)
{
iface->get_sort_column_id = vn_list_model_get_sort_column_id;
iface->set_sort_column_id = vn_list_model_set_sort_column_id;
iface->set_sort_func = vn_list_model_set_sort_func;
iface->set_default_sort_func = vn_list_model_set_default_sort_func;
iface->has_default_sort_func = vn_list_model_has_default_sort_func;
}

View File

@ -15,47 +15,47 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef VN_GRID_MODEL_H
#define VN_GRID_MODEL_H
#ifndef VN_LIST_MODEL_H
#define VN_LIST_MODEL_H
#include <glib-object.h>
#include <db/db-model.h>
#include <gtk/gtk.h>
#define VN_TYPE_GRID_MODEL (vn_grid_model_get_type())
#define VN_GRID_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VN_TYPE_GRID_MODEL, VnGridModel))
#define VN_IS_GRID_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VN_TYPE_GRID_MODEL))
#define VN_GRID_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VN_TYPE_GRID_MODEL, VnGridModelClass))
#define VN_IS_GRID_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VN_TYPE_GRID_MODEL))
#define VN_GRID_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VN_TYPE_GRID_MODEL, VnGridModelClass))
#define VN_GRID_MODEL_LOG_DOMAIN (g_quark_from_string ("VnGridModel"))
#define VN_TYPE_LIST_MODEL (vn_list_model_get_type())
#define VN_LIST_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VN_TYPE_LIST_MODEL, VnListModel))
#define VN_IS_LIST_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VN_TYPE_LIST_MODEL))
#define VN_LIST_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VN_TYPE_LIST_MODEL, VnListModelClass))
#define VN_IS_LIST_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VN_TYPE_LIST_MODEL))
#define VN_LIST_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VN_TYPE_LIST_MODEL, VnListModelClass))
#define gtk_tree_iter_from_db_iter(d,s) vn_gtk_tree_iter_from_db_iter(d,s)
#define gtk_tree_iter_to_db_iter(s,d) vn_gtk_tree_iter_to_db_iter(s,d)
typedef struct _VnGridModel VnGridModel;
typedef struct _VnGridModelClass VnGridModelClass;
typedef struct _VnListModel VnListModel;
typedef struct _VnListModelClass VnListModelClass;
struct _VnGridModel
struct _VnListModel
{
GObject parent;
DbModel * model;
gboolean null_row;
};
struct _VnGridModelClass
struct _VnListModelClass
{
/* <private> */
GObjectClass parent;
};
GType vn_grid_model_get_type ();
VnGridModel * vn_grid_model_new (DbModel * model);
DbModel * vn_grid_model_get_model (VnGridModel * obj);
gboolean vn_grid_model_iter_is_valid (GtkTreeIter * iter, GtkTreeModel * model);
GType vn_list_model_get_type ();
VnListModel * vn_list_model_new (DbModel * model);
DbModel * vn_list_model_get_model (VnListModel * obj);
gboolean vn_list_model_iter_is_valid (GtkTreeIter * iter, GtkTreeModel * model);
void vn_gtk_tree_iter_from_db_iter (GtkTreeIter * dest_iter
,const DbIter * src_iter);
void vn_gtk_tree_iter_to_db_iter (const GtkTreeIter * src_iter
,DbIter * dest_iter);
void vn_list_model_use_null_row (VnListModel * self, gboolean use);
#endif

View File

@ -20,7 +20,7 @@
#include <db/db.h>
#include <gtk/gtk.h>
#include "vn-grid-model.h"
#include "vn-list-model.h"
#include "vn-handler.h"
#include "vn-grid.h"
#include "vn-login.h"