commit bf976be79439011a23267f9325bdc3f2958871f1
parent 26b73fd4d4befee1bf13ad285955000048d42e0d
Author: Jean-Yves Lefort <jylefort@brutele.be>
Date: Mon, 1 Nov 2004 03:43:27 +1000
mail-notification-0.8.0
* The double-click action can now be customized
* A mail reader can now be launched
* IMAP IDLE support has been implemented
* The mail summary layout has been improved
* The mail summary is now also displayed in the tooltip
* The tooltip now supports keyboard activation
* A mail summary popup option allowing to only display recent
mail has been added
* A bug which caused SASL authentication to sometimes fail has
been fixed
* The Gmail parser was getting confused by special strings
embedded in message fields: fixed
Diffstat:
161 files changed, 9967 insertions(+), 4830 deletions(-)
diff --git a/Makefile.in b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -40,9 +40,9 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
compile config.guess config.sub depcomp install-sh missing \
mkinstalldirs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -112,6 +112,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -149,6 +150,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -209,6 +211,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -452,12 +456,14 @@ distdir: $(DISTFILES)
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
- || mkdir "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="../$(top_distdir)" \
- distdir="../$(distdir)/$$subdir" \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -468,15 +474,15 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
- $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
- $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
@@ -489,7 +495,7 @@ dist-zip: distdir
$(am__remove_distdir)
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
@@ -498,11 +504,11 @@ dist dist-all: distdir
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
- bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
@@ -583,7 +589,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
diff --git a/NEWS b/NEWS
@@ -1,3 +1,18 @@
+0.8.0 31 October 2004
+
+ * The double-click action can now be customized
+ * A mail reader can now be launched
+ * IMAP IDLE support has been implemented
+ * The mail summary layout has been improved
+ * The mail summary is now also displayed in the tooltip
+ * The tooltip now supports keyboard activation
+ * A mail summary popup option allowing to only display recent
+ mail has been added
+ * A bug which caused SASL authentication to sometimes fail has
+ been fixed
+ * The Gmail parser was getting confused by special strings
+ embedded in message fields: fixed
+
0.7.1 25 October 2004
* Gmail fixes:
diff --git a/TODO b/TODO
@@ -2,18 +2,3 @@
(RFC 3501, section 11.1)
* See if we can add an Evolution data server mailbox backend
-
-* Add an option to display only the mail that is new since the last
- time the mail summary popup was closed
-
-* Allow to customize the double-click action:
-
- When double-clicked: (o) Display the Mail Summary
- ( ) Display the Properties
- ( ) Run a command: [sylpheed ]
-
-* Allow to monitor multiple IMAP folders per IMAP mailbox
-
-* In the IMAP mailbox properties, add a "Browse" button next to the
- folder entry (it will connect to the IMAP server and retrieve the
- list of folders)
diff --git a/aclocal.m4 b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.8.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.2 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
# Free Software Foundation, Inc.
@@ -392,148 +392,6 @@ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
])dnl
-ll## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
-
-dnl AC_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
-# serial 1 AC_PROG_INTLTOOL
-AC_DEFUN([AC_PROG_INTLTOOL],
-[
-
-if test -n "$1"; then
- AC_MSG_CHECKING(for intltool >= $1)
-
- INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ printf "%d", $[1] * 100 + $[2]; }'`
- INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $[2]; }' < ${ac_aux_dir}/intltool-update.in`
- changequote({{,}})
- INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split(${{2}}, VERSION, "."); printf "%d\n", VERSION[1] * 100 + VERSION[2];}' < ${ac_aux_dir}/intltool-update.in`
- changequote([,])
-
- if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then
- AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
- else
- AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found. Your intltool is too old. You need intltool $1 or later.])
- exit 1
- fi
-fi
-
- INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
-INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
- INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
-INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
- INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
-
-AC_SUBST(INTLTOOL_DESKTOP_RULE)
-AC_SUBST(INTLTOOL_DIRECTORY_RULE)
-AC_SUBST(INTLTOOL_KEYS_RULE)
-AC_SUBST(INTLTOOL_PROP_RULE)
-AC_SUBST(INTLTOOL_OAF_RULE)
-AC_SUBST(INTLTOOL_PONG_RULE)
-AC_SUBST(INTLTOOL_SERVER_RULE)
-AC_SUBST(INTLTOOL_SHEET_RULE)
-AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
-AC_SUBST(INTLTOOL_UI_RULE)
-AC_SUBST(INTLTOOL_XAM_RULE)
-AC_SUBST(INTLTOOL_KBD_RULE)
-AC_SUBST(INTLTOOL_XML_RULE)
-AC_SUBST(INTLTOOL_CAVES_RULE)
-AC_SUBST(INTLTOOL_SCHEMAS_RULE)
-AC_SUBST(INTLTOOL_THEME_RULE)
-
-# Use the tools built into the package, not the ones that are installed.
-
-INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract'
-INTLTOOL_MERGE='$(top_builddir)/intltool-merge'
-INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
-
-AC_SUBST(INTLTOOL_EXTRACT)
-AC_SUBST(INTLTOOL_MERGE)
-AC_SUBST(INTLTOOL_UPDATE)
-
-AC_PATH_PROG(INTLTOOL_PERL, perl)
-if test -z "$INTLTOOL_PERL"; then
- AC_MSG_ERROR([perl not found; required for intltool])
-fi
-if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
- AC_MSG_ERROR([perl 5.x required for intltool])
-fi
-if test "x$2" != "xno-xml"; then
- AC_MSG_CHECKING([for XML::Parser])
- if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
- AC_MSG_RESULT([ok])
- else
- AC_MSG_ERROR([XML::Parser perl module is required for intltool])
- fi
-fi
-
-# Remove file type tags (using []) from po/POTFILES.
-
-ifdef([AC_DIVERSION_ICMDS],[
- AC_DIVERT_PUSH(AC_DIVERSION_ICMDS)
- changequote(,)
- mv -f po/POTFILES po/POTFILES.tmp
- sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
- rm -f po/POTFILES.tmp
- changequote([,])
- AC_DIVERT_POP()
-],[
- ifdef([AC_CONFIG_COMMANDS_PRE],[
- AC_CONFIG_COMMANDS_PRE([
- changequote(,)
- mv -f po/POTFILES po/POTFILES.tmp
- sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
- rm -f po/POTFILES.tmp
- changequote([,])
- ])
- ])
-])
-
-# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
-
-AC_OUTPUT_COMMANDS([
-
-sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${ac_aux_dir}/intltool-extract.in > intltool-extract.out
-if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
- rm -f intltool-extract.out
-else
- mv -f intltool-extract.out intltool-extract
-fi
-chmod ugo+x intltool-extract
-chmod u+w intltool-extract
-
-sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" \
- < ${ac_aux_dir}/intltool-merge.in > intltool-merge.out
-if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then
- rm -f intltool-merge.out
-else
- mv -f intltool-merge.out intltool-merge
-fi
-chmod ugo+x intltool-merge
-chmod u+w intltool-merge
-
-sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${ac_aux_dir}/intltool-update.in > intltool-update.out
-if cmp -s intltool-update intltool-update.out 2>/dev/null; then
- rm -f intltool-update.out
-else
- mv -f intltool-update.out intltool-update
-fi
-chmod ugo+x intltool-update
-chmod u+w intltool-update
-
-], INTLTOOL_PERL=${INTLTOOL_PERL} ac_aux_dir=${ac_aux_dir})
-
-])
-
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
@@ -614,14 +472,14 @@ AC_DEFUN(PKG_CHECK_MODULES, [
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"])
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.8.5])])
+ [AM_AUTOMAKE_VERSION([1.9.2])])
# AM_AUX_DIR_EXPAND
@@ -689,7 +547,7 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
# 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
@@ -726,8 +584,8 @@ else
fi
AC_CONFIG_COMMANDS_PRE(
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.])
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
fi])])
# serial 7 -*- Autoconf -*-
@@ -900,7 +758,8 @@ AC_SUBST([AMDEPBACKSLASH])
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+# Free Software Foundation, Inc.
# 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
@@ -936,27 +795,21 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
else
continue
fi
- grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
@@ -1011,7 +864,7 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
# This macro actually does too much some checks are only needed if
# your package does certain things. But this isn't really a big deal.
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
@@ -1087,7 +940,6 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_MISSING_PROG(AMTAR, tar)
AM_PROG_INSTALL_SH
AM_PROG_INSTALL_STRIP
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
@@ -1096,7 +948,9 @@ AC_REQUIRE([AM_PROG_MKDIR_P])dnl
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES(CC)],
@@ -1379,13 +1233,21 @@ fi
# this.)
AC_DEFUN([AM_PROG_MKDIR_P],
[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # Keeping the `.' argument allows $(mkdir_p) to be used without
- # argument. Indeed, we sometimes output rules like
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
# $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined.
- # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
- # expensive solution, as it forces Make to start a sub-shell.)
- mkdir_p='mkdir -p -- .'
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
@@ -1551,6 +1413,115 @@ fi
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004 Free Software Foundation, Inc.
+
+# 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 2, 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 1
+
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/intltool.m4])
m4_include([m4/openssl.m4])
m4_include([m4/sasl2.m4])
dnl AM_GCONF_SOURCE_2
diff --git a/art/Makefile.in b/art/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -38,9 +38,9 @@ subdir = art
DIST_COMMON = $(dist_app_pixmaps_DATA) $(dist_gnome_pixmaps_DATA) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -48,7 +48,14 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
-am__installdirs = "$(DESTDIR)$(app_pixmapsdir)" "$(DESTDIR)$(gnome_pixmapsdir)"
+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 = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(app_pixmapsdir)" \
+ "$(DESTDIR)$(gnome_pixmapsdir)"
dist_app_pixmapsDATA_INSTALL = $(INSTALL_DATA)
dist_gnome_pixmapsDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_app_pixmaps_DATA) $(dist_gnome_pixmaps_DATA)
@@ -93,6 +100,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -130,6 +138,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -190,6 +199,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -259,7 +270,7 @@ install-dist_app_pixmapsDATA: $(dist_app_pixmaps_DATA)
test -z "$(app_pixmapsdir)" || $(mkdir_p) "$(DESTDIR)$(app_pixmapsdir)"
@list='$(dist_app_pixmaps_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(dist_app_pixmapsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(app_pixmapsdir)/$$f'"; \
$(dist_app_pixmapsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(app_pixmapsdir)/$$f"; \
done
@@ -267,7 +278,7 @@ install-dist_app_pixmapsDATA: $(dist_app_pixmaps_DATA)
uninstall-dist_app_pixmapsDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_app_pixmaps_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(app_pixmapsdir)/$$f'"; \
rm -f "$(DESTDIR)$(app_pixmapsdir)/$$f"; \
done
@@ -276,7 +287,7 @@ install-dist_gnome_pixmapsDATA: $(dist_gnome_pixmaps_DATA)
test -z "$(gnome_pixmapsdir)" || $(mkdir_p) "$(DESTDIR)$(gnome_pixmapsdir)"
@list='$(dist_gnome_pixmaps_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(dist_gnome_pixmapsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gnome_pixmapsdir)/$$f'"; \
$(dist_gnome_pixmapsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gnome_pixmapsdir)/$$f"; \
done
@@ -284,7 +295,7 @@ install-dist_gnome_pixmapsDATA: $(dist_gnome_pixmaps_DATA)
uninstall-dist_gnome_pixmapsDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_gnome_pixmaps_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(gnome_pixmapsdir)/$$f'"; \
rm -f "$(DESTDIR)$(gnome_pixmapsdir)/$$f"; \
done
@@ -348,7 +359,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
diff --git a/autotools.conf b/autotools.conf
@@ -1,6 +1,10 @@
-export LIBTOOLIZE="libtoolize15 --automake"
-export ACLOCAL="aclocal18 -I m4"
-export AUTOHEADER="autoheader259"
-export AUTOM4TE="autom4te259"
-export AUTOCONF="autoconf259"
-export AUTOMAKE="automake18"
+export AUTOCONF_VER=259
+export AUTOMAKE_VER=19
+export LIBTOOL_VER=15
+
+export LIBTOOLIZE="libtoolize$LIBTOOL_VER --automake"
+export ACLOCAL="aclocal$AUTOMAKE_VER -I m4"
+export AUTOHEADER="autoheader$AUTOCONF_VER"
+export AUTOM4TE="autom4te$AUTOCONF_VER"
+export AUTOCONF="autoconf$AUTOCONF_VER"
+export AUTOMAKE="automake$AUTOMAKE_VER"
diff --git a/configure b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for mail-notification 0.7.1.
+# Generated by GNU Autoconf 2.59 for mail-notification 0.8.0.
#
# Report bugs to <jylefort@brutele.be>.
#
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='mail-notification'
PACKAGE_TARNAME='mail-notification'
-PACKAGE_VERSION='0.7.1'
-PACKAGE_STRING='mail-notification 0.7.1'
+PACKAGE_VERSION='0.8.0'
+PACKAGE_STRING='mail-notification 0.8.0'
PACKAGE_BUGREPORT='jylefort@brutele.be'
ac_unique_file="src/mn-main.c"
@@ -311,7 +311,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WARN_CFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GETTEXT_PACKAGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL PKG_CONFIG GTK_CFLAGS GTK_LIBS GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS SOUP_CFLAGS SOUP_LIBS GMIME_CFLAGS GMIME_LIBS WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_POP3_OR_IMAP_OR_GMAIL_TRUE WITH_POP3_OR_IMAP_OR_GMAIL_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WARN_CFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GETTEXT_PACKAGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL ICONV MSGMERGE PKG_CONFIG GTK_CFLAGS GTK_LIBS GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS SOUP_CFLAGS SOUP_LIBS GMIME_CFLAGS GMIME_LIBS WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_POP3_OR_IMAP_OR_GMAIL_TRUE WITH_POP3_OR_IMAP_OR_GMAIL_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -780,7 +780,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mail-notification 0.7.1 to adapt to many kinds of systems.
+\`configure' configures mail-notification 0.8.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -842,7 +842,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mail-notification 0.7.1:";;
+ short | recursive ) echo "Configuration of mail-notification 0.8.0:";;
esac
cat <<\_ACEOF
@@ -986,7 +986,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-mail-notification configure 0.7.1
+mail-notification configure 0.8.0
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1000,7 +1000,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mail-notification $as_me 0.7.1, which was
+It was created by mail-notification $as_me 0.8.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1512,7 +1512,7 @@ fi;
### initialization
-am__api_version="1.8"
+am__api_version="1.9"
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/install-sh; then
@@ -1689,13 +1689,21 @@ echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
- # Keeping the `.' argument allows $(mkdir_p) to be used without
- # argument. Indeed, we sometimes output rules like
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
# $(mkdir_p) $(somedir)
- # where $(somedir) is conditionally defined.
- # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
- # expensive solution, as it forces Make to start a sub-shell.)
- mkdir_p='mkdir -p -- .'
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
@@ -1811,7 +1819,7 @@ fi
# Define the identity of the package.
PACKAGE='mail-notification'
- VERSION='0.7.1'
+ VERSION='0.8.0'
cat >>confdefs.h <<_ACEOF
@@ -1839,9 +1847,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
install_sh=${install_sh-"$am_aux_dir/install-sh"}
# Installed binaries are usually stripped using `strip' when the user
@@ -1934,6 +1939,13 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
@@ -5067,6 +5079,167 @@ echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;}
fi
fi
+# Extract the first word of "iconv", so it can be a program name with args.
+set dummy iconv; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ICONV+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $ICONV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ICONV="$ICONV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ICONV="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_path_ICONV" && ac_cv_path_ICONV="iconv"
+ ;;
+esac
+fi
+ICONV=$ac_cv_path_ICONV
+
+if test -n "$ICONV"; then
+ echo "$as_me:$LINENO: result: $ICONV" >&5
+echo "${ECHO_T}$ICONV" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_MSGFMT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+ ;;
+esac
+fi
+MSGFMT=$ac_cv_path_MSGFMT
+
+if test -n "$MSGFMT"; then
+ echo "$as_me:$LINENO: result: $MSGFMT" >&5
+echo "${ECHO_T}$MSGFMT" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_MSGMERGE+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MSGMERGE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE="msgmerge"
+ ;;
+esac
+fi
+MSGMERGE=$ac_cv_path_MSGMERGE
+
+if test -n "$MSGMERGE"; then
+ echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+echo "${ECHO_T}$MSGMERGE" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_XGETTEXT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $XGETTEXT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT="xgettext"
+ ;;
+esac
+fi
+XGETTEXT=$ac_cv_path_XGETTEXT
+
+if test -n "$XGETTEXT"; then
+ echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+echo "${ECHO_T}$XGETTEXT" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
# Remove file type tags (using []) from po/POTFILES.
@@ -5077,7 +5250,7 @@ fi
# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
- ac_config_commands="$ac_config_commands default-2"
+ ac_config_commands="$ac_config_commands intltool"
@@ -8303,7 +8476,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by mail-notification $as_me 0.7.1, which was
+This file was extended by mail-notification $as_me 0.8.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8366,7 +8539,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-mail-notification config.status 0.7.1
+mail-notification config.status 0.8.0
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -8467,7 +8640,9 @@ cat >>$CONFIG_STATUS <<_ACEOF
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-INTLTOOL_PERL=${INTLTOOL_PERL} ac_aux_dir=${ac_aux_dir}
+INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${ICONV}'
+MSGFMT='${MSGFMT}' MSGMERGE='${MSGMERGE}' XGETTEXT='${XGETTEXT}'
_ACEOF
@@ -8490,7 +8665,7 @@ do
"ui/Makefile" ) CONFIG_FILES="$CONFIG_FILES ui/Makefile" ;;
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
- "default-2" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;;
+ "intltool" ) CONFIG_COMMANDS="$CONFIG_COMMANDS intltool" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
@@ -8589,7 +8764,6 @@ s,@AUTOCONF@,$AUTOCONF,;t t
s,@AUTOMAKE@,$AUTOMAKE,;t t
s,@AUTOHEADER@,$AUTOHEADER,;t t
s,@MAKEINFO@,$MAKEINFO,;t t
-s,@AMTAR@,$AMTAR,;t t
s,@install_sh@,$install_sh,;t t
s,@STRIP@,$STRIP,;t t
s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
@@ -8598,6 +8772,9 @@ s,@mkdir_p@,$mkdir_p,;t t
s,@AWK@,$AWK,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
s,@am__leading_dot@,$am__leading_dot,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@am__tar@,$am__tar,;t t
+s,@am__untar@,$am__untar,;t t
s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
s,@MAINT@,$MAINT,;t t
@@ -8655,6 +8832,8 @@ s,@INTLTOOL_EXTRACT@,$INTLTOOL_EXTRACT,;t t
s,@INTLTOOL_MERGE@,$INTLTOOL_MERGE,;t t
s,@INTLTOOL_UPDATE@,$INTLTOOL_UPDATE,;t t
s,@INTLTOOL_PERL@,$INTLTOOL_PERL,;t t
+s,@ICONV@,$ICONV,;t t
+s,@MSGMERGE@,$MSGMERGE,;t t
s,@PKG_CONFIG@,$PKG_CONFIG,;t t
s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t
s,@GTK_LIBS@,$GTK_LIBS,;t t
@@ -9327,27 +9506,21 @@ echo X"$mf" |
else
continue
fi
- grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
@@ -9396,9 +9569,17 @@ done
default-1 ) case "$CONFIG_FILES" in *po/Makefile.in*)
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
esac ;;
- default-2 )
+ intltool )
+
+intltool_edit="-e 's:@INTLTOOL_EXTRACT@:`pwd`/intltool-extract:g' \
+ -e 's:@INTLTOOL_ICONV@:${ICONV}:g' \
+ -e 's:@INTLTOOL_MSGFMT@:${MSGFMT}:g' \
+ -e 's:@INTLTOOL_MSGMERGE@:${MSGMERGE}:g' \
+ -e 's:@INTLTOOL_XGETTEXT@:${XGETTEXT}:g' \
+ -e 's:@INTLTOOL_PERL@:${INTLTOOL_PERL}:g'"
-sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${ac_aux_dir}/intltool-extract.in > intltool-extract.out
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
+ > intltool-extract.out
if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
rm -f intltool-extract.out
else
@@ -9407,8 +9588,8 @@ fi
chmod ugo+x intltool-extract
chmod u+w intltool-extract
-sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" \
- < ${ac_aux_dir}/intltool-merge.in > intltool-merge.out
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-merge.in \
+ > intltool-merge.out
if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then
rm -f intltool-merge.out
else
@@ -9417,7 +9598,8 @@ fi
chmod ugo+x intltool-merge
chmod u+w intltool-merge
-sed -e "s:@INTLTOOL_PERL@:${INTLTOOL_PERL}:;" < ${ac_aux_dir}/intltool-update.in > intltool-update.out
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-update.in \
+ > intltool-update.out
if cmp -s intltool-update intltool-update.out 2>/dev/null; then
rm -f intltool-update.out
else
diff --git a/configure.ac b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(mail-notification, 0.7.1, jylefort@brutele.be)
+AC_INIT(mail-notification, 0.8.0, jylefort@brutele.be)
AC_CONFIG_SRCDIR(src/mn-main.c)
AC_PREREQ(2.59)
diff --git a/data/Makefile.in b/data/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -37,9 +37,9 @@ POST_UNINSTALL = :
subdir = data
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -47,7 +47,15 @@ CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
-am__installdirs = "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" "$(DESTDIR)$(settingsdir)" "$(DESTDIR)$(soundlistdir)"
+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 = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(applicationsdir)" \
+ "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" \
+ "$(DESTDIR)$(settingsdir)" "$(DESTDIR)$(soundlistdir)"
applicationsDATA_INSTALL = $(INSTALL_DATA)
schemasDATA_INSTALL = $(INSTALL_DATA)
serverDATA_INSTALL = $(INSTALL_DATA)
@@ -96,6 +104,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -133,6 +142,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -193,6 +203,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -281,7 +293,7 @@ install-applicationsDATA: $(applications_DATA)
test -z "$(applicationsdir)" || $(mkdir_p) "$(DESTDIR)$(applicationsdir)"
@list='$(applications_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(applicationsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(applicationsdir)/$$f'"; \
$(applicationsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(applicationsdir)/$$f"; \
done
@@ -289,7 +301,7 @@ install-applicationsDATA: $(applications_DATA)
uninstall-applicationsDATA:
@$(NORMAL_UNINSTALL)
@list='$(applications_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(applicationsdir)/$$f'"; \
rm -f "$(DESTDIR)$(applicationsdir)/$$f"; \
done
@@ -298,7 +310,7 @@ install-schemasDATA: $(schemas_DATA)
test -z "$(schemasdir)" || $(mkdir_p) "$(DESTDIR)$(schemasdir)"
@list='$(schemas_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(schemasDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(schemasdir)/$$f'"; \
$(schemasDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(schemasdir)/$$f"; \
done
@@ -306,7 +318,7 @@ install-schemasDATA: $(schemas_DATA)
uninstall-schemasDATA:
@$(NORMAL_UNINSTALL)
@list='$(schemas_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(schemasdir)/$$f'"; \
rm -f "$(DESTDIR)$(schemasdir)/$$f"; \
done
@@ -315,7 +327,7 @@ install-serverDATA: $(server_DATA)
test -z "$(serverdir)" || $(mkdir_p) "$(DESTDIR)$(serverdir)"
@list='$(server_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(serverDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(serverdir)/$$f'"; \
$(serverDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(serverdir)/$$f"; \
done
@@ -323,7 +335,7 @@ install-serverDATA: $(server_DATA)
uninstall-serverDATA:
@$(NORMAL_UNINSTALL)
@list='$(server_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(serverdir)/$$f'"; \
rm -f "$(DESTDIR)$(serverdir)/$$f"; \
done
@@ -332,7 +344,7 @@ install-settingsDATA: $(settings_DATA)
test -z "$(settingsdir)" || $(mkdir_p) "$(DESTDIR)$(settingsdir)"
@list='$(settings_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(settingsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(settingsdir)/$$f'"; \
$(settingsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(settingsdir)/$$f"; \
done
@@ -340,7 +352,7 @@ install-settingsDATA: $(settings_DATA)
uninstall-settingsDATA:
@$(NORMAL_UNINSTALL)
@list='$(settings_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(settingsdir)/$$f'"; \
rm -f "$(DESTDIR)$(settingsdir)/$$f"; \
done
@@ -349,7 +361,7 @@ install-soundlistDATA: $(soundlist_DATA)
test -z "$(soundlistdir)" || $(mkdir_p) "$(DESTDIR)$(soundlistdir)"
@list='$(soundlist_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(soundlistDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(soundlistdir)/$$f'"; \
$(soundlistDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(soundlistdir)/$$f"; \
done
@@ -357,7 +369,7 @@ install-soundlistDATA: $(soundlist_DATA)
uninstall-soundlistDATA:
@$(NORMAL_UNINSTALL)
@list='$(soundlist_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(soundlistdir)/$$f'"; \
rm -f "$(DESTDIR)$(soundlistdir)/$$f"; \
done
@@ -422,11 +434,12 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+@GCONF_SCHEMAS_INSTALL_FALSE@install-data-local:
clean: clean-am
clean-am: clean-generic mostlyclean-am
diff --git a/data/mail-notification.schemas.in b/data/mail-notification.schemas.in
@@ -65,6 +65,28 @@
</locale>
</schema>
<schema>
+ <key>/schemas/apps/mail-notification/commands/mail-reader/enabled</key>
+ <applyto>/apps/mail-notification/commands/mail-reader/enabled</applyto>
+ <owner>mail-notification</owner>
+ <type>bool</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Set a mail reader</short>
+ <long>Whether to set a mail reader or not.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/mail-notification/commands/mail-reader/command</key>
+ <applyto>/apps/mail-notification/commands/mail-reader/command</applyto>
+ <owner>mail-notification</owner>
+ <type>string</type>
+ <default>evolution</default>
+ <locale name="C">
+ <short>Mail reader command</short>
+ <long>The command to run to launch the mail reader.</long>
+ </locale>
+ </schema>
+ <schema>
<key>/schemas/apps/mail-notification/mailboxes</key>
<applyto>/apps/mail-notification/mailboxes</applyto>
<owner>mail-notification</owner>
@@ -251,5 +273,27 @@
<long>The number of pixels to leave between the top or bottom side of the screen and the mail summary popup.</long>
</locale>
</schema>
+ <schema>
+ <key>/schemas/apps/mail-notification/mail-summary-popup/only-recent</key>
+ <applyto>/apps/mail-notification/mail-summary-popup/only-recent</applyto>
+ <owner>mail-notification</owner>
+ <type>bool</type>
+ <default>0</default>
+ <locale name="C">
+ <short>Only display recent mail in mail summary popup</short>
+ <long>Whether to hide previously displayed mail in the mail summary popup or not.</long>
+ </locale>
+ </schema>
+ <schema>
+ <key>/schemas/apps/mail-notification/double-click-action</key>
+ <applyto>/apps/mail-notification/double-click-action</applyto>
+ <owner>mail-notification</owner>
+ <type>string</type>
+ <default>display-mail-summary</default>
+ <locale name="C">
+ <short>Double-click action</short>
+ <long>The action to perform when the icon is double-clicked. Must be "display-mail-summary" or "launch-mail-reader".</long>
+ </locale>
+ </schema>
</schemalist>
</gconfschemafile>
diff --git a/help/C/Makefile.in b/help/C/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -99,9 +99,9 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/help/omf.make $(top_srcdir)/help/xmldocs.make
subdir = help/C
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -150,6 +150,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -187,6 +188,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -247,6 +249,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -380,7 +384,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -433,15 +437,15 @@ ps-am:
uninstall-am: uninstall-info-am uninstall-local
-.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-data-local install-exec install-exec-am install-info \
- install-info-am install-man install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
- pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \
- uninstall-local
+.PHONY: all all-am check check-am clean clean-generic dist-hook \
+ distclean distclean-generic distdir dvi dvi-am html html-am \
+ info info-am install install-am install-data install-data-am \
+ install-data-hook install-data-local install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am uninstall-local
omf: omf_timestamp
diff --git a/help/C/mail-notification-C.omf b/help/C/mail-notification-C.omf
@@ -12,9 +12,9 @@
Mail Notification Manual
</title>
<date>
- 2004-10-06
+ 2004-10-31
</date>
- <version identifier="2.6" date="2004-10-25" description="Seventh release"/>
+ <version identifier="2.7" date="2004-10-31" description="Eighth release"/>
<subject category="GNOME|Internet"/>
<description>
Mail Notification Manual
diff --git a/help/C/mail-notification.xml b/help/C/mail-notification.xml
@@ -2,9 +2,9 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY app "<application>Mail Notification</application>">
- <!ENTITY appversion "0.7.1">
- <!ENTITY manrevision "2.6">
- <!ENTITY date "Monday, October 25, 2004">
+ <!ENTITY appversion "0.8.0">
+ <!ENTITY manrevision "2.7">
+ <!ENTITY date "Sunday, October 31, 2004">
<!ENTITY project "The Mail Notification Project">
@@ -26,7 +26,7 @@
<!ENTITY gnomevfs "<link linkend="gnomevfs">GnomeVFS</link>">
]>
-<!-- $Id: mail-notification.xml,v 1.66 2004/10/25 13:21:59 jylefort Exp $ -->
+<!-- $Id: mail-notification.xml,v 1.72 2004/10/31 17:38:57 jylefort Exp $ -->
<!-- Mail Notification Manual -->
<!-- Copyright (c) 2004 Jean-Yves Lefort -->
@@ -134,6 +134,17 @@
</revdescription>
</revision>
<revision>
+ <revnumber>Mail Notification Manual V2.6</revnumber>
+ <date>Monday, October 25, 2004</date>
+ <revdescription>
+ <para role="author">
+ Jean-Yves Lefort
+ <email>jylefort@brutele.be</email>
+ </para>
+ <para role="publisher">&project;</para>
+ </revdescription>
+ </revision>
+ <revision>
<revnumber>Mail Notification Manual V2.5</revnumber>
<date>Wednesday, October 6, 2004</date>
<revdescription>
@@ -411,7 +422,8 @@
<para>
Leaving your mouse over the icon will reveal more details
about the status of your mailboxes. Double-clicking on the
- icon will display the <link linkend="mail-summary">Mail Summary</link> dialog.
+ icon will perform the action specified in the
+ <link linkend="double-click-action">Double-click Action</link> setting.
</para>
</sect2>
</sect1>
@@ -481,11 +493,25 @@
<term><guilabel>Commands</guilabel></term>
<listitem>
<para>
- You can configure commands to be executed <guilabel>when new mail arrives</guilabel>
+ You can specify a <guilabel>mail reader</guilabel>
+ (which can be launched from various parts of &app;), as
+ well as configure commands to be executed <guilabel>when new mail arrives</guilabel>
and <guilabel>when all mail is read</guilabel>.
</para>
</listitem>
</varlistentry>
+ <varlistentry id="double-click-action">
+ <term><guilabel>Double-click Action</guilabel></term>
+ <listitem>
+ <para>
+ You can choose an action to be performed when the mail
+ icon is double-clicked: <guilabel>display the mail summary dialog</guilabel>
+ or <guilabel>launch the mail reader</guilabel>.
+ The latter is only available if a mail reader is
+ configured in the <link linkend="commands">Commands</link> properties.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</sect2>
@@ -545,8 +571,8 @@
<term><guilabel>Enable mail summary popup</guilabel></term>
<listitem>
<para>
- Whether to display the mail summary popup when new
- mail arrives or not.
+ If this option is enabled, the mail summary popup
+ will be displayed when new mail arrives.
<note>
<para>
The mail summary popup will not be displayed if the <link linkend="mail-summary">Mail Summary</link>
@@ -560,8 +586,9 @@
<term><guilabel>Automatically close after</guilabel></term>
<listitem>
<para>
- Whether to automatically close the mail summary
- popup after a delay has elapsed or not.
+ If this option is enabled, the mail summary popup
+ will be automatically closed after a delay has
+ elapsed.
<note>
<para>
The timer is restarted when new mail arrives.
@@ -570,6 +597,15 @@
</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><guilabel>Only display recent mail</guilabel></term>
+ <listitem>
+ <para>
+ If this option is enabled, the mail summary popup
+ will hide previously displayed mail.
+ </para>
+ </listitem>
+ </varlistentry>
</variablelist>
</listitem>
</varlistentry>
@@ -878,21 +914,49 @@
changes.
</para>
<para>
- For immediate notification to be supported, &gnomevfs; must be compiled
- with <ulink url="http://oss.sgi.com/projects/fam" type="http">FAM</ulink> support,
- and FAM must be configured properly.
- </para>
- <para>
- Refer to the
- <citerefentry><refentrytitle>fam</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- manual page for more details.
+ Requirements for immediate notification to be enabled:
</para>
+ <variablelist>
+ <varlistentry>
+ <term>&mbox;, &mh;, &maildir; and &sylpheed; mailboxes:</term>
+ <listitem>
+ <para>
+ &gnomevfs; must be compiled
+ with <ulink url="http://oss.sgi.com/projects/fam" type="http">FAM</ulink> support,
+ and FAM must be configured properly.
+ </para>
+ <para>
+ Refer to the
+ <citerefentry><refentrytitle>fam</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ manual page for more details.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>&imap; mailboxes:</term>
+ <listitem>
+ <para>
+ The &imap; server must support the IDLE extension, as defined by
+ <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>&pop3; and &gmail; mailboxes:</term>
+ <listitem>
+ <para>
+ Immediate notification is not supported.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
<note>
<para>
- Immediate notification is only supported for local mailboxes.
- Mailboxes which do not support it will be checked periodically
- according to the <link linkend="delay-between-mail-checks">Delay between mail checks</link>
- setting.
+ If immediate notification cannot be enabled for a mailbox
+ (either because that type of mailbox does not support it or
+ because the requirements are not met), the mailbox will be
+ checked periodically according to the
+ <link linkend="delay-between-mail-checks">Delay between mail checks</link> setting.
</para>
</note>
</sect2>
@@ -940,11 +1004,13 @@ endif</programlisting>
<title>IMAP Implementation</title>
<para>
The &app; &imap; implementation strictly conforms to
- <ulink url="http://www.ietf.org/rfc/rfc3501.txt" type="http">RFC 3501</ulink>.
+ <ulink url="http://www.ietf.org/rfc/rfc3501.txt" type="http">RFC 3501</ulink>
+ and
+ <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>.
</para>
<para>
The AUTHENTICATE and LOGIN authentication mechanisms are
- supported.
+ supported, and the IDLE extension is implemented.
</para>
<para>
The authentication logic can be represented with the following
diff --git a/help/Makefile.in b/help/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -36,9 +36,9 @@ POST_UNINSTALL = :
subdir = help
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -96,6 +96,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -133,6 +134,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -193,6 +195,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -395,15 +399,17 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
- || mkdir "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="../$(top_distdir)" \
- distdir="../$(distdir)/$$subdir" \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -432,7 +438,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
diff --git a/intltool-extract.in b/intltool-extract.in
@@ -32,7 +32,7 @@
## Release information
my $PROGRAM = "intltool-extract";
my $PACKAGE = "intltool";
-my $VERSION = "0.31";
+my $VERSION = "0.31.3";
## Loaded modules
use strict;
@@ -266,11 +266,12 @@ sub type_keys {
sub type_xml {
### For generic translatable XML files ###
- while ($input =~ /\s_$w+\s*=\s*\"([^"]+)\"/sg) { # "
- $messages{entity_decode_minimal($1)} = [];
+ while ($input =~ /(?:<!--([^>]*?)-->[^\n]*\n?[^\n]*)?\s_$w+\s*=\s*\"([^"]+)\"/sg) { # "
+ $messages{entity_decode_minimal($2)} = [];
+ $comments{entity_decode_minimal($2)} = $1 if (defined($1));
}
- while ($input =~ /(?:<!--([^>]*?)-->\s*)?<_($w+)(?: xml:space="($w+)")?>(.+?)<\/_\2>/sg) {
+ while ($input =~ /(?:<!--([^>]*?)-->\s*)?<_($w+)(?: xml:space="($w+)")?[^>]*>(.+?)<\/_\2>/sg) {
$_ = $4;
if (!defined($3) || $3 ne "preserve") {
s/\s+/ /g;
diff --git a/intltool-merge.in b/intltool-merge.in
@@ -35,7 +35,7 @@
## Release information
my $PROGRAM = "intltool-merge";
my $PACKAGE = "intltool";
-my $VERSION = "0.31";
+my $VERSION = "0.31.3";
## Loaded modules
use strict;
@@ -91,7 +91,7 @@ my $OUTFILE;
my %po_files_by_lang = ();
my %translations = ();
-my $iconv = $ENV{"INTLTOOL_ICONV"} || "iconv";
+my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "@INTLTOOL_ICONV@";
# Use this instead of \w for XML files to handle more possible characters.
my $w = "[-A-Za-z0-9._:]";
diff --git a/intltool-update.in b/intltool-update.in
@@ -30,7 +30,7 @@
## Release information
my $PROGRAM = "intltool-update";
-my $VERSION = "0.31";
+my $VERSION = "0.31.3";
my $PACKAGE = "intltool";
## Loaded modules
@@ -525,7 +525,7 @@ sub Console_WriteError_InvalidOption
sub GenerateHeaders
{
- my $EXTRACT = `which intltool-extract 2>/dev/null`;
+ my $EXTRACT = "@INTLTOOL_EXTRACT@";
chomp $EXTRACT;
$EXTRACT = $ENV{"INTLTOOL_EXTRACT"} if $ENV{"INTLTOOL_EXTRACT"};
@@ -579,13 +579,10 @@ sub GenerateHeaders
#
sub GeneratePOTemplate
{
- my $XGETTEXT = `which xgettext 2>/dev/null`;
- my $XGETTEXT_ARGS = '';
+ my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@";
+ my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
chomp $XGETTEXT;
- $XGETTEXT = $ENV{"XGETTEXT"} if $ENV{"XGETTEXT"};
- $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} if $ENV{"XGETTEXT_ARGS"};
-
if (! -x $XGETTEXT)
{
print STDERR " *** xgettext is not found on this system!\n".
@@ -597,7 +594,7 @@ sub GeneratePOTemplate
open INFILE, $POTFILES_in;
unlink "POTFILES.in.temp";
- open OUTFILE, ">POTFILES.in.temp";
+ open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing");
my $gettext_support_nonascii = 0;
@@ -753,6 +750,7 @@ sub POFile_Update
{
-f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
+ my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@";
my ($lang, $outfile) = @_;
print "Merging $lang.po with $MODULE.pot..." if $VERBOSE;
@@ -761,7 +759,7 @@ sub POFile_Update
$outfile = "$lang.po" if ($outfile eq "");
# I think msgmerge won't overwrite old file if merge is not successful
- system ("msgmerge", "-o", $outfile, $infile, "$MODULE.pot");
+ system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot");
}
sub Console_WriteError_NotExisting
@@ -795,14 +793,17 @@ sub POFile_GetLanguage ($)
sub Console_Write_TranslationStatus
{
my ($lang, $output_file) = @_;
+ my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
$output_file = "$lang.po" if ($output_file eq "");
- system ("msgfmt", "-o", "/dev/null", "--statistics", $output_file);
+ system ("$MSGFMT", "-o", "/dev/null", "--statistics", $output_file);
}
sub Console_Write_CoverageReport
{
+ my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+
&GatherPOFiles;
foreach my $lang (@languages)
@@ -816,7 +817,7 @@ sub Console_Write_CoverageReport
foreach my $lang (@languages)
{
print "$lang: ";
- system ("msgfmt", "-o", "/dev/null", "--statistics", "$lang.po");
+ system ("$MSGFMT", "-o", "/dev/null", "--statistics", "$lang.po");
}
}
@@ -833,7 +834,7 @@ sub SubstituteVariable
{
if (/^(\w+)=(.*)$/)
{
- ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1)/;
+ ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1/;
}
}
@@ -845,7 +846,10 @@ sub SubstituteVariable
return SubstituteVariable ("$untouched$sub$rest");
}
- return $str;
+
+ # We're using Perl backticks ` and "echo -n" here in order to
+ # expand any shell escapes (such as backticks themselves) in every variable
+ return `echo -n "$str"`;
}
sub CONF_Handle_Open
@@ -954,19 +958,23 @@ sub FindPackageName
if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m)
{
($name, $version) = ($1, $2);
- ($varhash{"AC_PACKAGE_NAME"} = $name) =~ s/[\[\]\s]//g;
- ($varhash{"PACKAGE"} = $name) =~ s/[\[\]\s]//g;
- ($varhash{"AC_PACKAGE_VERSION"} = $version) =~ s/[\[\]\s]//g;
- ($varhash{"VERSION"} = $version) =~ s/[\[\]\s]//g;
- }
+ $name =~ s/[\[\]\s]//g;
+ $version =~ s/[\[\]\s]//g;
+ $varhash{"AC_PACKAGE_NAME"} = $name;
+ $varhash{"PACKAGE"} = $name;
+ $varhash{"AC_PACKAGE_VERSION"} = $version;
+ $varhash{"VERSION"} = $version;
+ }
if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m)
{
($name, $version) = ($1, $2);
- ($varhash{"AC_PACKAGE_NAME"} = $name) =~ s/[\[\]\s]//g;
- ($varhash{"PACKAGE"} = $name) =~ s/[\[\]\s]//g;
- ($varhash{"AC_PACKAGE_VERSION"} = $version) =~ s/[\[\]\s]//g;
- ($varhash{"VERSION"} = $version) =~ s/[\[\]\s]//g;
+ $name =~ s/[\[\]\s]//g;
+ $version =~ s/[\[\]\s]//g;
+ $varhash{"AC_PACKAGE_NAME"} = $name;
+ $varhash{"PACKAGE"} = $name;
+ $varhash{"AC_PACKAGE_VERSION"} = $version;
+ $varhash{"VERSION"} = $version;
}
# \s makes this not work, why?
@@ -1018,7 +1026,7 @@ sub FindMakevarsDomain
close IN;
}
- $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]]+)/m;
+ $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m;
$domain =~ s/^\s+//;
$domain =~ s/\s+$//;
diff --git a/m4/Makefile.in b/m4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -36,9 +36,9 @@ POST_UNINSTALL = :
subdir = m4
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -87,6 +87,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -124,6 +125,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -184,6 +186,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -295,7 +299,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
diff --git a/m4/intltool.m4 b/m4/intltool.m4
@@ -0,0 +1,179 @@
+## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
+## Copyright (C) 2001 Eazel, Inc.
+## Author: Maciej Stachowiak <mjs@noisehavoc.org>
+## Kenneth Christiansen <kenneth@gnu.org>
+##
+## 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 2 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, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+dnl AC_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 1 AC_PROG_INTLTOOL
+AC_DEFUN([AC_PROG_INTLTOOL],
+[
+
+if test -n "$1"; then
+ AC_MSG_CHECKING(for intltool >= $1)
+
+ INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ printf "%d", $[1] * 100 + $[2]; }'`
+ INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $[2]; }' < ${ac_aux_dir}/intltool-update.in`
+ changequote({{,}})
+ INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split(${{2}}, VERSION, "."); printf "%d\n", VERSION[1] * 100 + VERSION[2];}' < ${ac_aux_dir}/intltool-update.in`
+ changequote([,])
+
+ if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+ else
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found. Your intltool is too old. You need intltool $1 or later.])
+ exit 1
+ fi
+fi
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+AC_SUBST(INTLTOOL_DESKTOP_RULE)
+AC_SUBST(INTLTOOL_DIRECTORY_RULE)
+AC_SUBST(INTLTOOL_KEYS_RULE)
+AC_SUBST(INTLTOOL_PROP_RULE)
+AC_SUBST(INTLTOOL_OAF_RULE)
+AC_SUBST(INTLTOOL_PONG_RULE)
+AC_SUBST(INTLTOOL_SERVER_RULE)
+AC_SUBST(INTLTOOL_SHEET_RULE)
+AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
+AC_SUBST(INTLTOOL_UI_RULE)
+AC_SUBST(INTLTOOL_XAM_RULE)
+AC_SUBST(INTLTOOL_KBD_RULE)
+AC_SUBST(INTLTOOL_XML_RULE)
+AC_SUBST(INTLTOOL_CAVES_RULE)
+AC_SUBST(INTLTOOL_SCHEMAS_RULE)
+AC_SUBST(INTLTOOL_THEME_RULE)
+
+# Use the tools built into the package, not the ones that are installed.
+
+INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract'
+INTLTOOL_MERGE='$(top_builddir)/intltool-merge'
+INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
+
+AC_SUBST(INTLTOOL_EXTRACT)
+AC_SUBST(INTLTOOL_MERGE)
+AC_SUBST(INTLTOOL_UPDATE)
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+ AC_MSG_ERROR([perl not found; required for intltool])
+fi
+if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
+ AC_MSG_ERROR([perl 5.x required for intltool])
+fi
+if test "x$2" != "xno-xml"; then
+ AC_MSG_CHECKING([for XML::Parser])
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ AC_MSG_RESULT([ok])
+ else
+ AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+ fi
+fi
+
+AC_PATH_PROG(ICONV, iconv, iconv)
+AC_PATH_PROG(MSGFMT, msgfmt, msgfmt)
+AC_PATH_PROG(MSGMERGE, msgmerge, msgmerge)
+AC_PATH_PROG(XGETTEXT, xgettext, xgettext)
+
+# Remove file type tags (using []) from po/POTFILES.
+
+ifdef([AC_DIVERSION_ICMDS],[
+ AC_DIVERT_PUSH(AC_DIVERSION_ICMDS)
+ changequote(,)
+ mv -f po/POTFILES po/POTFILES.tmp
+ sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
+ rm -f po/POTFILES.tmp
+ changequote([,])
+ AC_DIVERT_POP()
+],[
+ ifdef([AC_CONFIG_COMMANDS_PRE],[
+ AC_CONFIG_COMMANDS_PRE([
+ changequote(,)
+ mv -f po/POTFILES po/POTFILES.tmp
+ sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
+ rm -f po/POTFILES.tmp
+ changequote([,])
+ ])
+ ])
+])
+
+# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
+
+AC_CONFIG_COMMANDS([intltool], [
+
+intltool_edit="-e 's:@INTLTOOL_EXTRACT@:`pwd`/intltool-extract:g' \
+ -e 's:@INTLTOOL_ICONV@:${ICONV}:g' \
+ -e 's:@INTLTOOL_MSGFMT@:${MSGFMT}:g' \
+ -e 's:@INTLTOOL_MSGMERGE@:${MSGMERGE}:g' \
+ -e 's:@INTLTOOL_XGETTEXT@:${XGETTEXT}:g' \
+ -e 's:@INTLTOOL_PERL@:${INTLTOOL_PERL}:g'"
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
+ > intltool-extract.out
+if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
+ rm -f intltool-extract.out
+else
+ mv -f intltool-extract.out intltool-extract
+fi
+chmod ugo+x intltool-extract
+chmod u+w intltool-extract
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-merge.in \
+ > intltool-merge.out
+if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then
+ rm -f intltool-merge.out
+else
+ mv -f intltool-merge.out intltool-merge
+fi
+chmod ugo+x intltool-merge
+chmod u+w intltool-merge
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-update.in \
+ > intltool-update.out
+if cmp -s intltool-update intltool-update.out 2>/dev/null; then
+ rm -f intltool-update.out
+else
+ mv -f intltool-update.out intltool-update
+fi
+chmod ugo+x intltool-update
+chmod u+w intltool-update
+
+], INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${ICONV}'
+MSGFMT='${MSGFMT}' MSGMERGE='${MSGMERGE}' XGETTEXT='${XGETTEXT}')
+
+])
diff --git a/po/POTFILES.in b/po/POTFILES.in
@@ -37,7 +37,7 @@ src/mn-main.c
src/mn-mbox-mailbox.gob
src/mn-md5.c
src/mn-md5.h
-src/mn-message-label.gob
+src/mn-message-box.gob
src/mn-message-mime.c
src/mn-message-mime.h
src/mn-message.gob
@@ -67,6 +67,7 @@ src/mn-summary.c
src/mn-summary.h
src/mn-sylpheed-mailbox.gob
src/mn-system-mailbox-properties.gob
+src/mn-tooltips.gob
src/mn-unsupported-mailbox.gob
src/mn-uri.gob
src/mn-util.c
diff --git a/po/bg.gmo b/po/bg.gmo
Binary files differ.
diff --git a/po/bg.po b/po/bg.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome in bulgarian 0.6.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
"PO-Revision-Date: 2004-10-05 16:13+0200\n"
"Last-Translator: Vladimir \"Kaladan\" Petkov <vpetkov@i-space.org>\n"
"Language-Team: Bulgarian <bg@li.org>\n"
@@ -34,7 +34,7 @@ msgstr "Настройване на известяването за поща"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr "Известяване за поща"
@@ -63,196 +63,236 @@ msgid "Do not show the immediate notification error dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:6
+#, fuzzy
+msgid "Double-click action"
+msgstr "Команда при двойна натискане"
+
+#: data/mail-notification.schemas.in.h:7
msgid "Enable mail summary popup"
msgstr ""
-#: data/mail-notification.schemas.in.h:7
+#: data/mail-notification.schemas.in.h:8
msgid "Fingerprints of trusted X509 certificates"
msgstr "Пръстови отпечатъци на проверени X509 сертификати"
-#: data/mail-notification.schemas.in.h:8
+#: data/mail-notification.schemas.in.h:9
msgid "Has already been run"
msgstr "Вече е стартиран"
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
#, fuzzy
msgid "Height of mail summary dialog"
msgstr "Височина на диалоговия прозорец за настройките"
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
msgid "Height of properties dialog"
msgstr "Височина на диалоговия прозорец за настройките"
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
#, fuzzy
msgid "Mail read command"
msgstr "Нова команда за поща"
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
+#, fuzzy
+msgid "Mail reader command"
+msgstr "Нова команда за поща"
+
+#: data/mail-notification.schemas.in.h:14
msgid "Mail summary popup horizontal offset"
msgstr ""
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:15
msgid "Mail summary popup position"
msgstr ""
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:16
msgid "Mail summary popup vertical offset"
msgstr ""
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:17
#, fuzzy
msgid "Mailbox list"
msgstr "Списък на пощенските кутии"
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:18
msgid "Minutes between mail checks"
msgstr "Минути между проверките"
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
msgid "Minutes to wait before closing the mail summary popup"
msgstr ""
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
msgid "New mail command"
msgstr "Нова команда за поща"
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
+msgid "Only display recent mail in mail summary popup"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:22
#, fuzzy
msgid "Run a command when all mail is read"
msgstr "Стартиране на команда при пристигането на нова поща"
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:23
msgid "Run a command when new mail arrives"
msgstr "Стартиране на команда при пристигането на нова поща"
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:24
msgid "Seconds between mail checks"
msgstr "Секунди между проверките за поща"
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:25
msgid "Seconds to wait before closing the mail summary popup"
msgstr ""
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:26
+#, fuzzy
+msgid "Set a mail reader"
+msgstr "Избор на файл или папка"
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:28
#, fuzzy
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr "Времевият интервал за изчакване между проверките за нова поща"
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
#, fuzzy
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr "Времевият интервал за изчакване между проверките за нова поща"
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+#, fuzzy
+msgid "The command to run to launch the mail reader."
+msgstr "Командата, която да се стартира при пристигането на нова поща."
+
+#: data/mail-notification.schemas.in.h:31
#, fuzzy
msgid "The command to run when all mail is read."
msgstr "Командата, която да се стартира при пристигането на нова поща."
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
msgid "The command to run when new mail arrives."
msgstr "Командата, която да се стартира при пристигането на нова поща."
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
#, fuzzy
msgid "The height of the mail summary dialog in pixels."
msgstr "Височината в пиксели на диалоговия прозорец за настройките."
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr "Височината в пиксели на диалоговия прозорец за настройките."
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr "Списъкът на пощенските кутии за следене."
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
"Списъкът на проверените сертификати тип X509, представени от техните "
"пръстови отпечатъци в MD5 формат."
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
msgstr ""
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
msgstr ""
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
msgstr ""
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
#, fuzzy
msgid "The width of the mail summary dialog in pixels."
msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr "Списък на проверените сървъри"
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr "Дали известяването за поща вече е стартирано или не."
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr "Дали иконата за състоянието да мига при грешки или не"
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
#, fuzzy
msgid "Whether to automatically close the mail summary popup or not."
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
#, fuzzy
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
#, fuzzy
msgid "Whether to run a command when all mail is read or not."
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
msgid "Whether to run a command when new mail arrives or not."
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+#, fuzzy
+msgid "Whether to set a mail reader or not."
+msgstr "Дали известяването за поща вече е стартирано или не."
+
+#: data/mail-notification.schemas.in.h:53
#, fuzzy
msgid "Width of mail summary dialog"
msgstr "Ширина на диалоговия прозорец за настройките"
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr "Ширина на диалоговия прозорец за настройките"
@@ -434,127 +474,127 @@ msgstr ""
msgid "unable to parse response \"%s\""
msgstr "неуспех при преглед на отговор \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr "неуспех при четенето от сървър: %s"
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr "неуспех при четенето от сървър: EOF"
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr ""
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr ""
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr "неуспех при записването на сървър: %s"
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr "неуспех при записването на сървър: EOF"
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr ""
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr ""
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr ""
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr ""
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr ""
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr ""
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr ""
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
msgstr ""
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
msgstr ""
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr ""
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr ""
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr ""
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr ""
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr "синхронизиране на базата данни на GConf"
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr "завършено"
@@ -568,33 +608,33 @@ msgid ""
"when needed)"
msgstr ""
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr ""
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, fuzzy, c-format
msgid "unable to parse URI \"%s\""
msgstr "неуспех при преглед на отговор \"%s\""
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr "неуспех при пренасянето на данни: %s"
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr "влизане"
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr "влизането е неуспешно"
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr "търсене за непрочетена поща"
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr "неуспех при прегледа на данни от Gmail"
@@ -658,76 +698,80 @@ msgstr "Номера на порта на IMAP сървъра"
msgid "The mailbox name"
msgstr "Име на пощенската кутия"
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr ""
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr "неуспех при влизането"
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
#, fuzzy
msgid "server did not send search results"
msgstr "сървърът не изпраща състоянието"
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
#, fuzzy
msgid "server did not send all the messages we requested"
msgstr "сървърът не изпраща състоянието"
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
#, fuzzy
msgid "unable to fetch message"
msgstr "неуспех при свързването: %s"
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr "сървърът не изпраща състоянието"
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr "неизвестна грешка в сървъра"
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr ""
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "неизвестен механизъм за идентификация \"%s\""
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr "неуспешна идентификация"
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr ""
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr "_Актуализиране"
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "Пре_махване от зоната за известяване"
@@ -784,7 +828,7 @@ msgstr "Завършено"
msgid "Whether the properties are completely filled or not"
msgstr ""
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr "Пощенска кутия"
@@ -810,37 +854,38 @@ msgid "The mailbox human-readable name"
msgstr "Името на пощенската кутия във формат разбираем от хора"
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
-msgstr ""
+#, fuzzy
+msgid "Whether the mailbox has to be polled or not"
+msgstr "Дали изображението да мига или не"
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr ""
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr ""
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr "Грешката в пощенската кутия, ако има"
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr "не съществува"
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr "непознат формат"
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, fuzzy, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr ""
"Известяването за поща не можа да разреши моменталното известяване за една "
"или повече пощенски кутии. %s"
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -851,7 +896,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -862,7 +907,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -873,11 +918,11 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr "Получи се грешка при наблюдението"
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
@@ -886,26 +931,26 @@ msgstr ""
"Известяването за поща не можа да разреши моменталното известяване за една "
"или повече пощенски кутии. %s"
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr ""
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s е неподдържан: %s"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr "%s има поща"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr "%s няма нова поща"
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr "%s докладва за грешка: %s"
@@ -1022,51 +1067,51 @@ msgstr "грешка при четенето на пощенската кути
msgid "unable to open mailbox: %s"
msgstr "грешка при отварянето на пощенската кутия: %s"
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr ""
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr ""
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr ""
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr ""
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1116,21 +1161,21 @@ msgstr "_in-band SSL/TLS"
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS на отделен по_рт"
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr "Хостът или IP адресът на POP3 сървъра"
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr "Потребителското име в POP3 сървъра"
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr "Номера на порта на POP3 сървъра"
@@ -1138,95 +1183,78 @@ msgstr "Номера на порта на POP3 сървъра"
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr ""
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
#, fuzzy
msgid "unknown error"
msgstr "неизвестна грешка в сървъра"
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr "Сървърът не поддържа идентификация тип APOP"
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr ""
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr ""
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
#, fuzzy
msgid "top left"
msgstr "Завършено"
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr ""
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr ""
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr ""
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr "Няма избрана кутия."
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, fuzzy, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] "%i избрана кутия."
msgstr[1] "%i избрана кутия."
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr "Имате поща."
-#: src/mn-shell.gob:263
-#, fuzzy
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] "Следната пощенска кутия има нова поща:\n"
-msgstr[1] "Следната пощенска кутия има нова поща:\n"
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
-msgstr "Нямата нова поща."
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
+msgstr ""
-#: src/mn-shell.gob:270
-#, fuzzy
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] "Следната пощенска кутия докладва за грешка:\n"
-msgstr[1] "Следната пощенска кутия докладва за грешка:\n"
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr ""
-#: src/mn-shell.gob:275
+#: src/mn-shell.gob:351
#, fuzzy
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] "Следните пощенски кутии не се поддържат:\n"
-msgstr[1] "Следните пощенски кутии не се поддържат:\n"
-
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
-msgstr "Грешка с командите се получи в известяването за поща"
+msgid "Unsupported Mailboxes"
+msgstr "Системна кутия"
-#: src/mn-shell.gob:321
-#, fuzzy, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "неуспех при намирането на %s: %s"
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
+msgstr ""
#: src/mn-soup.c:140
#, fuzzy, c-format
@@ -1327,11 +1355,20 @@ msgstr "Получи се сериозна грешка в известяван
msgid "unable to get current time: %s"
msgstr "неуспех при свързването с %s"
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr ""
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr "Грешка с командите се получи в известяването за поща"
+
+#: src/mn-util.c:946
+#, fuzzy, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "неуспех при намирането на %s: %s"
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr "*"
@@ -1354,154 +1391,186 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Команди</span>"
#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
+#, fuzzy
+msgid "<span weight=\"bold\">Double-click Action</span>"
msgstr "<span weight=\"bold\">Основни</span>"
#: ui/properties.glade.h:5
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Основни</span>"
+
+#: ui/properties.glade.h:6
#, fuzzy
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Пощенски кутии</span>"
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
#, fuzzy
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Команди</span>"
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
msgid "General"
msgstr ""
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
msgid "Hori_zontal offset:"
msgstr ""
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
msgid "Mail Notification Properties"
msgstr "Настройки на известяването за поща"
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
msgid "Mail Summary Popup"
msgstr ""
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
#, fuzzy
msgid "Mailboxes"
msgstr "Пощенска кутия"
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
+msgid "Only display _recent mail"
+msgstr ""
+
+#: ui/properties.glade.h:14
#, fuzzy
msgid "P_osition:"
msgstr "_Местоположение:"
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:15
#, fuzzy
msgid "The amount of time to wait before closing the mail summary popup"
msgstr "Времевият интервал за изчакване между проверките за нова поща"
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:16
msgid "The amount of time to wait between mail checks"
msgstr "Времевият интервал за изчакване между проверките за нова поща"
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
+#, fuzzy
+msgid "The command to run to launch the mail reader"
+msgstr "Командата, която да се изпълни при пристигането на нова поща"
+
+#: ui/properties.glade.h:18
#, fuzzy
msgid "The command to run when all mail is read"
msgstr "Командата, която да се изпълни при пристигането на нова поща"
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:19
msgid "The command to run when new mail arrives"
msgstr "Командата, която да се изпълни при пристигането на нова поща"
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
msgstr ""
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
msgstr ""
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
#, fuzzy
msgid "When _all mail is read:"
msgstr "При пристигане на _нова поща:"
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr "При пристигане на _нова поща:"
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr "Дали иконата за състоянието да започне да мига при грешки или не"
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
#, fuzzy
msgid "Whether to automatically close the mail summary popup or not"
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
#, fuzzy
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+msgid "Whether to hide previously displayed mail or not"
+msgstr ""
+
+#: ui/properties.glade.h:28
#, fuzzy
msgid "Whether to run a command when all mail is read or not"
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+#, fuzzy
+msgid "Whether to set a mail reader or not"
+msgstr "Дали да се стартира команда при пристигането на нова поща или не"
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
msgstr ""
"Дали да се стартира известяването за поща, когато влизате в GNOME или не"
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr ""
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr "_Мигане при грешки"
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr "_Време между проверките за поща:"
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+#, fuzzy
+msgid "_Display the mail summary dialog"
+msgstr "Изобразяване на диалоговия прозорец с информацията"
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr ""
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:38
+msgid "_Mail reader:"
+msgstr ""
+
+#: ui/properties.glade.h:39
msgid "_Start Mail Notification on GNOME login"
msgstr "_Стартиране на известяването за поща при влизане в GNOME"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr ""
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr "минути"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr ""
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr "секунди"
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr ""
-
#: ui/summary-popup.glade.h:1
#, fuzzy
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
@@ -1544,9 +1613,6 @@ msgstr "_Настройки на известяването за поща"
msgid "_Skip configuration"
msgstr "_Пропускане на настройването"
-#~ msgid "Double-clicked command"
-#~ msgstr "Команда при двойна натискане"
-
#~ msgid "Run a command when the icon is double-clicked"
#~ msgstr "Стартиране на команда при двойно натискане на иконата"
@@ -1581,6 +1647,18 @@ msgstr "_Пропускане на настройването"
#~ msgid "Unable to execute double-clicked command: %s."
#~ msgstr "Неуспех при стартирането на командата: %s."
+#~ msgid "The following mailbox has new mail:\n"
+#~ msgstr "Следната пощенска кутия има нова поща:\n"
+
+#~ msgid "You have no new mail."
+#~ msgstr "Нямата нова поща."
+
+#~ msgid "The following mailbox reported an error:\n"
+#~ msgstr "Следната пощенска кутия докладва за грешка:\n"
+
+#~ msgid "The following mailbox is unsupported:\n"
+#~ msgstr "Следните пощенски кутии не се поддържат:\n"
+
#~ msgid "Unable to execute new mail command: %s."
#~ msgstr "Неуспех при стартирането на нова пощенска команда: %s."
diff --git a/po/de.gmo b/po/de.gmo
Binary files differ.
diff --git a/po/de.po b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 0.7.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
"PO-Revision-Date: 2004-10-24 10:59+0200\n"
"Last-Translator: Hendrik Brandt <eru@gmx.li>\n"
"Language-Team: German <gnome-de@gnome.org>\n"
@@ -34,7 +34,7 @@ msgstr "Die E-Mail-Eingangsüberwachung einstellen"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr "E-Mail-Eingangsüberwachung"
@@ -63,108 +63,138 @@ msgid "Do not show the immediate notification error dialog"
msgstr "Den Fehlerdialog der Sofortbenachrichtigung nicht sofort anzeigen"
#: data/mail-notification.schemas.in.h:6
+msgid "Double-click action"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:7
msgid "Enable mail summary popup"
msgstr "Nachrichtenübersicht aktivieren"
-#: data/mail-notification.schemas.in.h:7
+#: data/mail-notification.schemas.in.h:8
msgid "Fingerprints of trusted X509 certificates"
msgstr "Fingerabdrücke vertrauensvoller X509-Zertifikate"
-#: data/mail-notification.schemas.in.h:8
+#: data/mail-notification.schemas.in.h:9
msgid "Has already been run"
msgstr "Wurde schon einmal gestartet"
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
msgid "Height of mail summary dialog"
msgstr "Höhe der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
msgid "Height of properties dialog"
msgstr "Höhe des Einstellungen-Dialogs"
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
msgid "Mail read command"
msgstr "Befehl zum Lesen einer Nachricht"
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
+#, fuzzy
+msgid "Mail reader command"
+msgstr "Befehl zum Lesen einer Nachricht"
+
+#: data/mail-notification.schemas.in.h:14
msgid "Mail summary popup horizontal offset"
msgstr "Horizontaler Abstand der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:15
msgid "Mail summary popup position"
msgstr "Position der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:16
msgid "Mail summary popup vertical offset"
msgstr "Vertikaler"
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:17
msgid "Mailbox list"
msgstr "Liste der Postfächer"
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:18
msgid "Minutes between mail checks"
msgstr "Minuten zwischen den Aktualisierungen"
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
msgid "Minutes to wait before closing the mail summary popup"
msgstr "Wartezeit bis zum Schließen der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
msgid "New mail command"
msgstr "Befehl bei neuer Nachricht"
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
+#, fuzzy
+msgid "Only display recent mail in mail summary popup"
+msgstr "Die Nachrichtenübersicht schließen"
+
+#: data/mail-notification.schemas.in.h:22
msgid "Run a command when all mail is read"
msgstr "Einen Befehl ausführen, wenn alle Nachrichten gelesen sind"
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:23
msgid "Run a command when new mail arrives"
msgstr "Einen Befehl ausführen, wenn eine neue Nachricht eintrifft"
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:24
msgid "Seconds between mail checks"
msgstr "Sekunden zwischen den Aktualisierungen"
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:25
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Wartezeit in Sekunden bis zum Schließen der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:26
+#, fuzzy
+msgid "Set a mail reader"
+msgstr "Wählen Sie eine Datei oder ein Verzeichnis"
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:28
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr ""
"Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Minutenteil)."
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr ""
"Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Sekundenteil)."
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+#, fuzzy
+msgid "The command to run to launch the mail reader."
+msgstr "Der Befehl der ausgeführt wird, wenn alle Nachrichten gelesen wurden"
+
+#: data/mail-notification.schemas.in.h:31
msgid "The command to run when all mail is read."
msgstr "Der Befehl der ausgeführt wird, wenn alle Nachrichten gelesen wurden"
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
msgid "The command to run when new mail arrives."
msgstr "Der Befehl der ausgeführt wird, wenn eine neue Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
msgid "The height of the mail summary dialog in pixels."
msgstr "Die Höhe der Nachrichtenübersicht in Pixel."
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr "Die Höhe des Einstellungsdialogs in Pixel."
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr "Die Liste der zu überwachenden Postfächer."
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
@@ -172,14 +202,14 @@ msgstr ""
"Die Liste vertrauensvoller SSL/TLS-Server (Host-Name:Port) ohne X509-"
"Zertifikat."
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
"Die Liste vertrauensvoller X509-Zertifikate, repräsentiert durch ihre MD5-"
"Fingerabdrücke."
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -187,7 +217,7 @@ msgstr ""
"Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
"der Nachrichtenübersicht."
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -195,7 +225,7 @@ msgstr ""
"Die Anzahl an Pixeln die zwischen dem oberen oder runteren Bildschirmrand "
"und der Nachrichtenübersicht."
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -203,62 +233,76 @@ msgstr ""
"Die Position der Nachrichtenübersicht. Der Wert muss »oben-links«, »oben-"
"rechts«, »unten-links« oder »unten-rechts« sein."
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
msgid "The width of the mail summary dialog in pixels."
msgstr "Die Breite der Nachrichtenübersicht in Pixel."
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr "Die Breite des Einstellungen-Dialogs in Pixel."
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr "Liste vertrauensvoller Server"
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr ""
"Legt fest, ob die E-Mail-Eingangsüberwachnung schon einmal gestartet wurde."
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr ""
"Legt fest, ob das Nachrichtensymbol bei Auftreten eines Fehlers blinkt."
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr ""
"Legt fest, ob die Nachrichtenübersicht angezeigt wird, wenn eine neue "
"Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+#, fuzzy
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+"Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr ""
"Legt fest, ob der Fehlerdialog der Sofortbenachrichtigung angezeigt wird."
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Legt fest, ob ein Befehl ausgeführt wird, wenn alle Nachrichten gelesen "
"wurden."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
msgid "Whether to run a command when new mail arrives or not."
msgstr ""
"Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+#, fuzzy
+msgid "Whether to set a mail reader or not."
+msgstr ""
+"Legt fest, ob ein Befehl ausgeführt wird, wenn alle Nachrichten gelesen "
+"wurden."
+
+#: data/mail-notification.schemas.in.h:53
msgid "Width of mail summary dialog"
msgstr "Breite der Nachrichtenübersicht"
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr "Breite des Einstellungen-Dialogs"
@@ -458,96 +502,96 @@ msgstr "Die Antwort »%s« ist in diesem Kontext nicht zugelassen"
msgid "unable to parse response \"%s\""
msgstr "Die Antwort »%s« konnte nicht analysiert werden"
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr "Es konnte nicht vom Server gelesen werden: %s"
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr "Es konnte nicht vom Server gelesen werden: EOF"
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "Die Daten konnten nicht per SASL dekodiert werden: %s"
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "Die Daten konnten nicht per SASL kodiert werden: %s"
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr "Es konnte nicht auf den Server geschrieben werden: %s"
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr "Es konnte nicht auf den Server geschrieben werden: EOF"
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr "Es konnte nicht mit Base64 kodiert werden: %s"
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "Die SASL-Bibliothek konnte nicht initializiert werden: %s"
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "Die lokale Adresse des Socket konnte nicht herausgefunden werden: %s"
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr ""
"Die entfernte Adresse des Socket konnte nicht herausgefunden werden: %s"
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr ""
"Warnung: Die SASL-Sicherheitseigenschaften konnten nicht gesetzt werden: %s"
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
"Die SASL-Authentifizierung konnte nicht gestartet werden: es wurde eine "
"unbekannte Anfrage von SASL gestellt"
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "Die SASL-Authentifizierung konnte nicht gestartet werden: %s"
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "Es konnte keine Verbindung mit SASL erzeugt werden: %s"
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
"Es wurde eine unbekannte Anfrage von SASL gestellt, SASL-Authentifizierung "
"wird abgebrochen"
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, SASL-Authentifizierung wird abgebrochen"
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "Die Server-seitige Base64-Eingabe konnte nicht dekodiert werden: %s"
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
@@ -555,7 +599,7 @@ msgstr ""
"Der Server hat während einer beginnenden SASL-Client-Antwort einen Fehler "
"gesendet"
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
@@ -563,32 +607,32 @@ msgstr ""
"Der Server hat kein SASL-Problem gesendet, während noch eine Client-seitige "
"SASL-Reaktion begonnen wurde"
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "Die SASL-Sicherheitsebene der Stärke %i ist jetzt aktiv"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "Der Wert SASL_MAXOUTBUF wurde nicht gefunden: %s"
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "Warnung: Der Wert SASL_SSF wurde nicht gefunden: %s"
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr "%s rekursiv zurück setzen"
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr "Synchronisiere mit der GConf-Datenbank"
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr "Abgeschlossen"
@@ -604,33 +648,33 @@ msgstr ""
"Ihr Gmail-Passwort (falls Sie nichts eingeben, werden Sie jedesmal wenn es "
"notwendig ist nach dem Passwort gefragt)"
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr "»libsoup« wurde nicht mit SSL/TLS-Unterstützung erstellt"
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, c-format
msgid "unable to parse URI \"%s\""
msgstr "Die Adresse »%s« konnte nicht analysiert werden"
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr "Daten konnten nicht übertragen werden: %s"
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr "Anmelden bei"
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr "Anmeldung fehlgeschlagen"
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr "Es wird nach ungelesenen Nachrichten gesucht"
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr "Die Gmail-Daten konnte nicht analysiert werden"
@@ -696,54 +740,54 @@ msgstr "Die Port-Nummer auf dem IMAP-Server"
msgid "The mailbox name"
msgstr "Der Postfachname"
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr ""
"Die Unterstützung für SSL/TLS wurde beim Erstellen des Programms nicht "
"eingebaut"
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr "Der Server hat seine Fähigkeiten nicht bekannt gegeben"
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
"Der Server gibt LOGINDISABLED zurück, LOGIN-Authentifizierung wird nicht "
"verwendet"
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr "Anmeldung fehlgeschlagen"
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
msgid "server did not send search results"
msgstr "Der Server hat keine Suchergebnisse gesendet"
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
msgid "server did not send all the messages we requested"
msgstr "Der Server hat nicht alle angeforderten Nachrichten gesendet"
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
msgid "unable to fetch message"
msgstr "Nachrichten konnten nicht abgerufen werden"
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr "Der Server hat seinen Status nicht bekannt gegeben"
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr "Unbekannter Server-Fehler"
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr "Der Server unterstütz kein band-internes SSL/TLS"
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -751,24 +795,28 @@ msgstr ""
"Sie haben eine Authentifizierung mit SASL ausgewählt, jedoch wurde die "
"Unterstützung für SASL beim Erstellen des Programms nicht eingebaut"
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "Unbekannte Authentifizierungsmethode »%s«"
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr "Es wird auf die Authentifizierung per IMAP LOGIN zurückgegriffen"
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr "Authentifizierung fehlgeschlagen"
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr ""
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr "_Aktualisieren"
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "Aus dem Benachrichtigungsfeld entfernen"
@@ -825,7 +873,7 @@ msgstr "Vollständig"
msgid "Whether the properties are completely filled or not"
msgstr "Legt fest, ob die Einstellungen vollständig ausgefüllt sind"
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr "Postfach"
@@ -851,35 +899,36 @@ msgid "The mailbox human-readable name"
msgstr "Der lesbare Postfachname"
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
+#, fuzzy
+msgid "Whether the mailbox has to be polled or not"
msgstr "Legt fest, ob das Postfach manuell überprüft werden soll"
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr "Legt fest, ob das Postfach neue Nachrichten enthält"
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr "Die Liste neuer und ungelesener MNMessage-Objekte"
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr "Der Postfachfehler, falls vorhanden"
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr "existiert nicht"
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr "unbekanntes Format"
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr "Die Sofortbenachrichtigung konnte für %s nicht aktiviert werden: %s"
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, fuzzy, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -898,7 +947,7 @@ msgstr[1] ""
"alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungsdialog "
"angepasst werden)."
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, fuzzy, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -917,7 +966,7 @@ msgstr[1] ""
"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
"angepasst werden)."
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, fuzzy, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -936,11 +985,11 @@ msgstr[1] ""
"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
"angepasst werden)."
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr "Bei der Überwachung ist ein Fehler aufgetreten"
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
@@ -949,26 +998,26 @@ msgstr ""
"Die E-Mail-Eingangsüberwachung konnte die Sofortbenachrichtigung für ein "
"oder mehrere Postfächer nicht aktivieren: %s"
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr "Legt fest, ob ein oder mehrere Postfächer befragt werden sollen"
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s wird nicht unterstützt: %s"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr "%s hat neue Nachrichten"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr "%s hat keine neuen Nachrichten"
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr "%s hat einen Fehler erzeugt: %s"
@@ -1089,47 +1138,47 @@ msgstr "Postfach konnte nicht neu geladen werden: %s"
msgid "unable to open mailbox: %s"
msgstr "Postfach konnte nicht geöffnet werden: %s"
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr "Nichtlesbare Nachricht"
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr "Von"
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr "Betreff"
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr "Gesendet"
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] "Vor %i Sekunde"
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
msgstr[0] "Vor %i Minute"
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
msgstr[0] "Vor %i Stunde"
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
msgstr[0] "Vor %i Tag"
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1178,15 +1227,15 @@ msgstr "_band-internes SSL/TLS"
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS über e_xtra Port"
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr "Der Name oder die IP-Adresse des POP3-Servers"
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr "Ihr Benutzername für diesen POP3-Server"
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
@@ -1194,7 +1243,7 @@ msgstr ""
"Ihr Passwort für diesen POP3-Server (falls Sie nichts eingeben, werden Sie "
"jedesmal wenn es notwendig ist nach dem Passwort gefragt)"
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr "Die Port-Nummer des POP3-Servers"
@@ -1202,11 +1251,11 @@ msgstr "Die Port-Nummer des POP3-Servers"
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "Ungültige Argumente für die Anmeldeverzögerung"
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
msgid "unknown error"
msgstr "Unbekannter Fehler"
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1215,82 +1264,66 @@ msgstr[0] ""
"gewartetAnmeldeverzögerung wird berücksichtigt, es wird für %i Sekunden "
"gewartet"
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr "Der Server unterstütz eine Authentifizierung per APOP nicht."
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr "Es wird auf Authentifizierung mit APOP zurück gegriffen."
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr ""
"Es wird auf Authentifizierung per Nutzername und Passwort zurück gegriffen."
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
msgid "top left"
msgstr "oben links"
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr "oben rechts"
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr "unten links"
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr "unten rechts"
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr "Kein Postfach ausgewählt."
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] "Ein Posfach ausgewählt."
msgstr[1] "%i Postfächer ausgewählt."
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr "Sie haben neue Nachrichten."
-#: src/mn-shell.gob:263
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] "Dieses Postfach hat neue Nachrichten:\n"
-msgstr[1] "Diese Postfächer haben neue Nachrichten:\n"
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
-msgstr "Sie haben keine neuen Nachrichten."
-
-#: src/mn-shell.gob:270
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] "Das folgende Postfach hat einen Fehler ausgegeben:\n"
-msgstr[1] "Die folgenden Postfächer haben einen Fehler ausgegeben:\n"
-
-#: src/mn-shell.gob:275
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] "Das folgende Postfach wird nicht unterstützt:\n"
-msgstr[1] "Die folgenden Postfächer werden nicht unterstützt:\n"
-
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
msgstr ""
-"Es ist ein Fehler beim Ausführen eines Befehls in der E-Mail-"
-"Eingangsüberwachung aufgetreten."
-#: src/mn-shell.gob:321
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "»%s« konnte nicht ausgeführt werden: %s."
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr ""
+
+#: src/mn-shell.gob:351
+#, fuzzy
+msgid "Unsupported Mailboxes"
+msgstr "Systempostfach"
+
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
+msgstr "Nachrichtenübersicht"
#: src/mn-soup.c:140
#, c-format
@@ -1392,11 +1425,22 @@ msgstr ""
msgid "unable to get current time: %s"
msgstr "Die aktuelle Zeit konnte nicht ermittelt werden: %s"
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "Ungültige Signalspezifikation »%s«"
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr ""
+"Es ist ein Fehler beim Ausführen eines Befehls in der E-Mail-"
+"Eingangsüberwachung aufgetreten."
+
+#: src/mn-util.c:946
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "»%s« konnte nicht ausgeführt werden: %s."
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr "*"
@@ -1418,60 +1462,74 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Befehle</span>"
#: ui/properties.glade.h:4
+#, fuzzy
+msgid "<span weight=\"bold\">Double-click Action</span>"
+msgstr "<span weight=\"bold\">Position</span>"
+
+#: ui/properties.glade.h:5
msgid "<span weight=\"bold\">General</span>"
msgstr "<span weight=\"bold\">Allgemein</span>"
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Postfächer</span>"
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Position</span>"
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
msgid "General"
msgstr "Allgemein"
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
msgid "Hori_zontal offset:"
msgstr "_Horizontaler Abstand:"
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
msgid "Mail Notification Properties"
msgstr "Einstellung der E-Mail-Eingangsüberwachung"
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
msgid "Mail Summary Popup"
msgstr "Aufklappende Nachrichtenübersicht"
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
msgid "Mailboxes"
msgstr "Postfächer"
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
+msgid "Only display _recent mail"
+msgstr ""
+
+#: ui/properties.glade.h:14
msgid "P_osition:"
msgstr "P_osition:"
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:15
msgid "The amount of time to wait before closing the mail summary popup"
msgstr "Die Wartedauer ehe die Nachrichtenübersicht geschlossen wurde"
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:16
msgid "The amount of time to wait between mail checks"
msgstr "Die Zeit die zwischen zwei Überprüfungen auf neue Nachrichten vergeht"
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
+#, fuzzy
+msgid "The command to run to launch the mail reader"
+msgstr "Der auszuführende Befehl wenn alle Nachrichten gelesen wurden"
+
+#: ui/properties.glade.h:18
msgid "The command to run when all mail is read"
msgstr "Der auszuführende Befehl wenn alle Nachrichten gelesen wurden"
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:19
msgid "The command to run when new mail arrives"
msgstr ""
"Geben Sie hier den Befehl ein, der ausgeführt wird sobald eine neue "
"Nachricht eintrifft."
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
@@ -1479,7 +1537,7 @@ msgstr ""
"Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
"der Nachrichtenübersicht."
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
@@ -1487,42 +1545,53 @@ msgstr ""
"Die Anzahl an Pixel zwischen dem oberen oder unteren Bildschirmrand und der "
"Nachrichtenübersicht."
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
msgid "When _all mail is read:"
msgstr "Wenn alle Nachricht _gelesen wurden:"
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr "Wenn neue Nachricht _eintrifft:"
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr ""
"Wenn diese Option gewählt ist, blinkt das Nachrichtensymbol bei Auftreten "
"eines Fehlers."
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
msgid "Whether to automatically close the mail summary popup or not"
msgstr "Legt fest, ob die Nachrichtenübersicht automatisch geschlossen wird"
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr ""
"Legt fest, ob die Nachrichtenübersicht aufklappt wenn eine neue Nachricht "
"eintrifft"
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+#, fuzzy
+msgid "Whether to hide previously displayed mail or not"
+msgstr "Legt fest, ob das Postfach neue Nachrichten enthält"
+
+#: ui/properties.glade.h:28
msgid "Whether to run a command when all mail is read or not"
msgstr ""
"Legt fest, ob ein Befehl ausgeführt wird wenn alle Nachrichten gelesen wurden"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr ""
"Wenn diese Option ausgewählt ist, können Sie einen Befehl angeben der "
"ausgeführt wird, sobald eine neue Nachricht eintrifft."
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+#, fuzzy
+msgid "Whether to set a mail reader or not"
+msgstr ""
+"Legt fest, ob ein Befehl ausgeführt wird wenn alle Nachrichten gelesen wurden"
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
@@ -1530,46 +1599,56 @@ msgstr ""
"Wenn diese Option ausgewählt ist, wird die E-Mail-Eingangsüberwachnung beim "
"Starten von GNOME ebenfalls gestartet."
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr "_Automatisch schließen nach:"
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr "_Bei Fehler blinken"
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr "_Nach neuen Nachrichten sehen alle:"
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+#, fuzzy
+msgid "_Display the mail summary dialog"
+msgstr "Die Nachrichtenübersicht anzeigen"
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr "_Aufklappende Nachrichtenübersicht aktivieren"
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:38
+#, fuzzy
+msgid "_Mail reader:"
+msgstr "_Nachrichtenübersicht"
+
+#: ui/properties.glade.h:39
msgid "_Start Mail Notification on GNOME login"
msgstr "_Laden beim Starten von GNOME"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr "_Vertikaler Abstand:"
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr "Minuten"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr "Pixel"
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr "Sekunden"
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr "Nachrichtenübersicht"
-
#: ui/summary-popup.glade.h:1
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr "<span size=\"larger\" weight=\"bold\">Nachrichtenübersicht</span>"
@@ -1622,3 +1701,21 @@ msgstr "Konfiguration über_springen"
#~ "über den Einstellungsdialog angepasst werden).Als Rücksicherung werden "
#~ "diese alle %i Minuten überprüft (Dieser Wert kann über den "
#~ "Einstellungsdialog angepasst werden)."
+
+#~ msgid "The following mailbox has new mail:\n"
+#~ msgid_plural "The following mailboxes have new mail:\n"
+#~ msgstr[0] "Dieses Postfach hat neue Nachrichten:\n"
+#~ msgstr[1] "Diese Postfächer haben neue Nachrichten:\n"
+
+#~ msgid "You have no new mail."
+#~ msgstr "Sie haben keine neuen Nachrichten."
+
+#~ msgid "The following mailbox reported an error:\n"
+#~ msgid_plural "The following mailboxes reported an error:\n"
+#~ msgstr[0] "Das folgende Postfach hat einen Fehler ausgegeben:\n"
+#~ msgstr[1] "Die folgenden Postfächer haben einen Fehler ausgegeben:\n"
+
+#~ msgid "The following mailbox is unsupported:\n"
+#~ msgid_plural "The following mailboxes are unsupported:\n"
+#~ msgstr[0] "Das folgende Postfach wird nicht unterstützt:\n"
+#~ msgstr[1] "Die folgenden Postfächer werden nicht unterstützt:\n"
diff --git a/po/fr.gmo b/po/fr.gmo
Binary files differ.
diff --git a/po/fr.po b/po/fr.po
@@ -8,10 +8,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: mail-notification 0.7.1\n"
+"Project-Id-Version: mail-notification 0.8.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
-"PO-Revision-Date: 2004-10-25 15:22+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
+"PO-Revision-Date: 2004-10-31 18:39+0100\n"
"Last-Translator: Jean-Yves Lefort <jylefort@brutele.be>\n"
"Language-Team: Jean-Yves Lefort <jylefort@brutele.be>\n"
"MIME-Version: 1.0\n"
@@ -34,7 +34,7 @@ msgstr "Configurer la Notification de Courrier"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr "Notification de Courrier"
@@ -65,74 +65,99 @@ msgstr ""
"immédiate"
#: data/mail-notification.schemas.in.h:6
+msgid "Double-click action"
+msgstr "Action du Double-click"
+
+#: data/mail-notification.schemas.in.h:7
msgid "Enable mail summary popup"
msgstr "Activer le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:7
+#: data/mail-notification.schemas.in.h:8
msgid "Fingerprints of trusted X509 certificates"
msgstr "Empreintes digitales des certificats X509 de confiance"
-#: data/mail-notification.schemas.in.h:8
+#: data/mail-notification.schemas.in.h:9
msgid "Has already been run"
msgstr "A déjà été exécuté"
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
msgid "Height of mail summary dialog"
msgstr "Hauteur de la boîte de dialogue contenant l'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
msgid "Height of properties dialog"
msgstr "Hauteur de la boîte de dialogue contenant les propriétés"
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
msgid "Mail read command"
msgstr "Commande de courrier lu"
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
+msgid "Mail reader command"
+msgstr "Commande de lecteur de courrier"
+
+#: data/mail-notification.schemas.in.h:14
msgid "Mail summary popup horizontal offset"
msgstr "Décalage horizontal du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:15
msgid "Mail summary popup position"
msgstr "Position du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:16
msgid "Mail summary popup vertical offset"
msgstr "Décalage vertical du popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:17
msgid "Mailbox list"
msgstr "Liste des boîtes aux lettres"
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:18
msgid "Minutes between mail checks"
msgstr "Minutes entre les vérifications de courrier"
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
msgid "Minutes to wait before closing the mail summary popup"
msgstr "Minutes à attendre avant de fermer le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
msgid "New mail command"
msgstr "Commande de nouveau message"
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
+msgid "Only display recent mail in mail summary popup"
+msgstr ""
+"Afficher uniquement le courrier récent dans le popup d'aperçu du courrier"
+
+#: data/mail-notification.schemas.in.h:22
msgid "Run a command when all mail is read"
msgstr "Exécuter une commande lorsque tout le courrier est lu"
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:23
msgid "Run a command when new mail arrives"
msgstr "Exécuter une commande lorsque du nouveau courrier arrive"
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:24
msgid "Seconds between mail checks"
msgstr "Secondes entre les vérifications de courrier"
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:25
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Secondes à attendre avant de fermer le popup d'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:26
+msgid "Set a mail reader"
+msgstr "Spécifier un lecteur de courrier"
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+"L'action à effectuer lorsque l'icône est double-clickée. Doit être \"display-"
+"mail-summary\" ou \"launch-mail-reader\"."
+
+#: data/mail-notification.schemas.in.h:28
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
@@ -140,7 +165,7 @@ msgstr ""
"La quantité de temps à attendre avant de fermer le popup d'aperçu du "
"courrier (partie minutes)."
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
@@ -148,28 +173,32 @@ msgstr ""
"La quantité de temps à attendre avant de fermer le popup d'aperçu du "
"courrier (partie secondes)."
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+msgid "The command to run to launch the mail reader."
+msgstr "La commande à exécuter pour démarrer le lecteur de courrier."
+
+#: data/mail-notification.schemas.in.h:31
msgid "The command to run when all mail is read."
msgstr "La commande à exécuter lorsque tout le courrier est lu"
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
msgid "The command to run when new mail arrives."
msgstr "La commande à exécuter lorsque du nouveau courrier arrive."
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
msgid "The height of the mail summary dialog in pixels."
msgstr ""
"La hauteur de la boîte de dialogue contenant l'aperçu du courrier en pixels."
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr "La hauteur de la boîte de dialogue contenant les propriétés en pixels."
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr "La liste des boîtes aux lettres à surveiller."
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
@@ -177,14 +206,14 @@ msgstr ""
"La liste des serveurs SSL/TLS (hôte:port) de confiance auxquels il manque un "
"certificat X509."
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
"La liste des certificats X509 de confiance, représentés par leur empreinte "
"digitale."
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -192,7 +221,7 @@ msgstr ""
"Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
"popup d'aperçu du courrier."
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -200,7 +229,7 @@ msgstr ""
"Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
"d'aperçu du courrier."
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -208,39 +237,46 @@ msgstr ""
"La position du popup d'aperçu du courrier. Doit etre \"top-left\", \"top-"
"right\", \"bottom-left\" or \"bottom-right\"."
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
msgid "The width of the mail summary dialog in pixels."
msgstr ""
"La largeur de la boîte de dialogue contenant l'aperçu du courrier en pixels."
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr "La largeur de la boîte de dialogue contenant les propriétés en pixels."
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr "Liste des serveurs de confiance"
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr "Si la Notification de Courrier a déjà été exécutée ou pas."
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas."
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas."
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr ""
"Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
"courrier arrive ou pas."
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+"Si le courrier précédemment affiché dans le popup d'aperçu du courrier doit "
+"être caché ou pas."
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
@@ -248,21 +284,25 @@ msgstr ""
"Si il faut empêcher la boîte de dialogue contenant l'erreur de notification "
"immédiate de s'afficher ou pas."
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Si une commande doit être exécutée lorsque tout le courrier est lu ou pas."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
msgid "Whether to run a command when new mail arrives or not."
msgstr ""
"Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+msgid "Whether to set a mail reader or not."
+msgstr "Si un lecteur de courrier est spécifié ou pas."
+
+#: data/mail-notification.schemas.in.h:53
msgid "Width of mail summary dialog"
msgstr "Largeur de la boîte de dialogue contenant l'aperçu du courrier"
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr "Largeur de la boîte de dialogue contenant les propriétés"
@@ -460,95 +500,95 @@ msgstr "la réponse \"%s\" n'est pas valable dans le contexte actuel"
msgid "unable to parse response \"%s\""
msgstr "impossible d'interpréter la réponse \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr "impossible de lire depuis le serveur: %s"
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr "impossible de lire depuis le serveur: EOF"
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "impossible de décoder les données en utilisant SASL: %s"
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "impossible d'encoder les données en utilisant SASL: %s"
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr "impossible d'écrire vers le serveur: %s"
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr "impossible d'écrire vers le serveur: EOF"
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr "impossible d'encoder en Base64: %s"
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "impossible d'initialiser la bibliothèque SASL: %s"
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "impossible d'obtenir l'adresse locale du socket: %s"
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "impossible d'obtenir l'adresse distante du socket: %s"
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr ""
"avertissement: impossible de spécifier les propriétés de sécurité SASL: %s"
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
"impossible de démarrer l'authentification SASL: SASL a demandé quelque chose "
"que nous ne connaissions pas"
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "impossible de démarrer l'authentification SASL: %s"
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "impossible de créer une connection SASL: %s"
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
"SASL a demandé quelque chose que nous ne connaissions pas, annulation de "
"l'authentification SASL"
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, annulation de l'authentification SASL"
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "impossible de décoder l'entrée Base64 du serveur: %s"
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
@@ -556,7 +596,7 @@ msgstr ""
"le serveur a envoyé un défi SASL, mais il y avait une réponse client SASL "
"initiale en attente"
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
@@ -564,33 +604,33 @@ msgstr ""
"le serveur n'a pas envoyé de défi SASL, mais il n'y avait pas de réponse "
"client SASL initiale en attente"
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr ""
"une couche de sécurité SASL de facteur de force %i est maintenant active"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "impossible d'obtenir la propriété SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "avertissement: impossible d'obtenir la propriété SASL_SSF: %s"
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr "en train de supprimer récursivement %s"
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr "en train de synchroniser la base de données GConf"
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr "terminé"
@@ -606,33 +646,33 @@ msgstr ""
"Votre mot de passe Gmail (si laissé vide, le mot de passe vous sera demandé "
"en temps utile)"
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr "libsoup n'a pas été compilé avec le support SSL/TLS"
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, c-format
msgid "unable to parse URI \"%s\""
msgstr "impossible d'interpréter l'URI \"%s\""
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr "impossible de transférer des données: %s"
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr "ouverture de session en cours"
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr "l'ouverture de session a échoué"
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr "recherche du courrier non lu"
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr "impossible d'interpréter les données Gmail"
@@ -698,52 +738,52 @@ msgstr "Le numéro de port du serveur IMAP"
msgid "The mailbox name"
msgstr "Le nom de la boîte aux lettres"
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr "le support SSL/TLS n'a pas été inclus lors de la compilation"
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr "le serveur n'a pas envoyé ses possibilités"
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
"le serveur a annoncé LOGINDISABLED, pas d'utilisation de l'authentification "
"LOGIN"
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr "impossible d'ouvrir la session"
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
msgid "server did not send search results"
msgstr "le serveur n'a pas envoyé les résultats de la recherche"
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
msgid "server did not send all the messages we requested"
msgstr "le serveur n'a pas envoyé tous les messages que nous avons demandé"
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
msgid "unable to fetch message"
msgstr "impossible d'obtenir le message"
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr "le serveur n'a pas envoyé de statut"
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr "erreur serveur inconnue"
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr "le serveur ne supporte pas le mode SSL/TLS interne"
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -751,24 +791,28 @@ msgstr ""
"un mécanisme d'authentification SASL a été sélectionné mais le support SASL "
"n'a pas été inclus lors de la compilation"
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "mécanisme d'authentification inconnu \"%s\""
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr "rétrogradation vers l'authentification IMAP LOGIN"
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr "l'authentification a échoué"
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr "_Exécuter le Lecteur de Courrier"
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr "_Mettre à Jour"
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "_Enlever de l'Aire de Notification"
@@ -825,7 +869,7 @@ msgstr "Complet"
msgid "Whether the properties are completely filled or not"
msgstr "Si les propriétés sont complètement remplies ou pas"
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr "Boîte aux lettres"
@@ -851,35 +895,35 @@ msgid "The mailbox human-readable name"
msgstr "Le nom, lisible par un humain, de la boîte aux lettres"
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
-msgstr "Si la boîte aux lettres doit être vérifiée manuellement ou pas"
+msgid "Whether the mailbox has to be polled or not"
+msgstr "Si la boîte aux lettres doit être vérifiée explicitement ou pas"
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr "Si la boîte aux lettres a du nouveau courrier ou pas"
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr "La liste des objets MNMessage neufs et non lus"
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr "L'erreur de la boîte aux lettres si il y en a une"
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr "n'existe pas"
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr "format inconnu"
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr "impossible d'activer la notification immédiate pour %s: %s"
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -894,7 +938,7 @@ msgstr[1] ""
"Comme solution de secours, elles seront vérifiées toutes les %i secondes (ce "
"délai est configurable depuis les Propriétés)."
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -909,7 +953,7 @@ msgstr[1] ""
"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
"délai est configurable depuis les Propriétés)."
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -924,11 +968,11 @@ msgstr[1] ""
"Comme solution de secours, elles seront vérifiées approximativement toutes "
"les %i minutes (ce délai est configurable depuis les Propriétés)."
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr "Une erreur de surveillance s'est produite"
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
@@ -937,27 +981,27 @@ msgstr ""
"La Notification de Courrier n'a pas été en mesure d'activer la notification "
"immédiate pour une ou plusieures boîtes aux lettres. %s"
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr ""
"Si une ou plusieurs boîtes aux lettres doivent être vérifiées explicitement"
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s n'est pas pris en charge: %s"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr "%s a du nouveau courrier"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr "%s n'a pas de nouveau courrier"
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr "%s a indiqué une erreur: %s"
@@ -1077,51 +1121,51 @@ msgstr "erreur lors de la lecture de la boîte aux lettres: %s"
msgid "unable to open mailbox: %s"
msgstr "impossible d'ouvrir la boîte aux lettres: %s"
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr "Message non lisible"
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr "De"
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr "Sujet"
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr "Envoyé"
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] "il y a %i seconde"
msgstr[1] "il y a %i secondes"
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
msgstr[0] "il y a %i minute"
msgstr[1] "il y a %i minutes"
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
msgstr[0] "il y a %i heure"
msgstr[1] "il y a %i heures"
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
msgstr[0] "il y a %i jour"
msgstr[1] "il y a %i jours"
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1170,15 +1214,15 @@ msgstr "SSL/TLS _interne"
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS sur port sépa_ré"
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr "Le nom d'hôte ou adresse IP du serveur POP3"
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr "Votre nom d'utilisateur sur le serveur POP3"
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
@@ -1186,7 +1230,7 @@ msgstr ""
"Votre mot de passe sur le serveur POP3 (si laissé vide, le mot de passe vous "
"sera demandé en temps utile)"
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr "Le numéro de port du serveur POP3"
@@ -1194,90 +1238,75 @@ msgstr "Le numéro de port du serveur POP3"
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "arguments invalides pour la possibilité LOGIN-DELAY"
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
msgid "unknown error"
msgstr "erreur inconnue"
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
msgstr[0] "attente de %i seconde afin d'obéir à LOGIN-DELAY"
msgstr[1] "attente de %i secondes afin d'obéir à LOGIN-DELAY"
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr "le serveur ne supporte pas l'authentification APOP"
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr "rétrogradation vers l'authentification APOP"
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr "rétrogradation vers l'authentification USER/PASS"
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
msgid "top left"
msgstr "en haut à gauche"
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr "en haut à droite"
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr "en bas à gauche"
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr "en bas à droite"
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr "Pas de boîte aux lettres sélectionnée."
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] "%i boîte aux lettres sélectionnée"
msgstr[1] "%i boîtes aux lettres sélectionnées"
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr "Vous avez du nouveau courrier."
-#: src/mn-shell.gob:263
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] "La boîte aux lettres suivante a du nouveau courrier:\n"
-msgstr[1] "Les boîtes aux lettres suivantes ont du nouveau courrier:\n"
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
-msgstr "Vous n'avez pas de nouveau courrier."
-
-#: src/mn-shell.gob:270
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] "La boîte aux lettres suivante a indiqué une erreur:\n"
-msgstr[1] "Les boîtes aux lettres suivantes ont indiqué une erreur:\n"
-
-#: src/mn-shell.gob:275
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] "La boîte aux lettres suivante n'est pas prise en charge:\n"
-msgstr[1] "Les boîtes aux lettres suivantes ne sont pas prises en charge:\n"
-
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
-msgstr "Une erreur de commande s'est produite dans la Notification de Courrier"
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
+msgstr "Boîtes aux Lettres Ayant du Nouveau Courrier"
-#: src/mn-shell.gob:321
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "Impossible d'exécuter \"%s\": %s"
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr "Erreurs"
+
+#: src/mn-shell.gob:351
+msgid "Unsupported Mailboxes"
+msgstr "Boîtes aux Lettres Non Supportées"
+
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
+msgstr "Aperçu du Courrier"
#: src/mn-soup.c:140
#, c-format
@@ -1378,11 +1407,20 @@ msgstr "Une erreur fatale s'est produite dans la Notification de Courrier"
msgid "unable to get current time: %s"
msgstr "impossible d'obtenir l'heure courante: %s"
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "spécification de signal \"%s\" invalide"
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr "Une erreur de commande s'est produite dans la Notification de Courrier"
+
+#: src/mn-util.c:946
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "Impossible d'exécuter \"%s\": %s"
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr "*"
@@ -1404,59 +1442,71 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Commandes</span>"
#: ui/properties.glade.h:4
+msgid "<span weight=\"bold\">Double-click Action</span>"
+msgstr "<span weight=\"bold\">Action du Double-Click</span>"
+
+#: ui/properties.glade.h:5
msgid "<span weight=\"bold\">General</span>"
msgstr "<span weight=\"bold\">Général</span>"
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Liste des Boîtes aux Lettres</span>"
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Position</span>"
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
msgid "General"
msgstr "Général"
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
msgid "Hori_zontal offset:"
msgstr "Décalage hori_zontal:"
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
msgid "Mail Notification Properties"
msgstr "Propriétés de la Notification de Courrier"
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
msgid "Mail Summary Popup"
msgstr "Popup d'Aperçu du Courrier"
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
msgid "Mailboxes"
msgstr "Boîtes aux Lettres"
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
+msgid "Only display _recent mail"
+msgstr "Afficher uniquement le courrier _récent"
+
+#: ui/properties.glade.h:14
msgid "P_osition:"
msgstr "P_osition:"
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:15
msgid "The amount of time to wait before closing the mail summary popup"
msgstr ""
"La quantité de temps à attendre avant de fermer le popup d'aperçu du courrier"
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:16
msgid "The amount of time to wait between mail checks"
msgstr "La quantité de temps à attendre entre les vérifications de courrier"
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
+msgid "The command to run to launch the mail reader"
+msgstr "La commande à exécuter pour démarrer le lecteur de courrier."
+
+#: ui/properties.glade.h:18
msgid "The command to run when all mail is read"
msgstr "La commande à exécuter lorsque tout le courrier est lu"
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:19
msgid "The command to run when new mail arrives"
msgstr "La commande à exécuter lorsque du nouveau courrier arrive"
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
@@ -1464,7 +1514,7 @@ msgstr ""
"Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
"popup d'aperçu du courrier"
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
@@ -1472,40 +1522,48 @@ msgstr ""
"Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
"d'aperçu du courrier"
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
msgid "When _all mail is read:"
msgstr "Quand _tout le courrier est lu:"
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr "Quand du _nouveau courrier arrive:"
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas"
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
msgid "Whether to automatically close the mail summary popup or not"
msgstr ""
"Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas"
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr ""
"Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
"courrier arrive ou pas"
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+msgid "Whether to hide previously displayed mail or not"
+msgstr "Si le courrier précédemment affiché doit être caché ou pas"
+
+#: ui/properties.glade.h:28
msgid "Whether to run a command when all mail is read or not"
msgstr ""
"Si une commande doit être exécutée lorsque tout le courrier est lu ou pas"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr ""
"Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas"
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+msgid "Whether to set a mail reader or not"
+msgstr "Si un lecteur de courrier est spécifié ou pas"
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
@@ -1513,47 +1571,55 @@ msgstr ""
"Si la Notification de Courrier doit être démarrée lorsque vous ouvrez votre "
"session GNOME ou pas"
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr "_Fermer automatiquement après:"
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr "_Clignoter lors d'erreurs"
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr "_Délai entre les vérifications de courrier:"
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+msgid "_Display the mail summary dialog"
+msgstr "_Afficher la boîte de dialogue contenant l'aperçu du courrier"
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr "_Activer le popup d'aperçu du courrier"
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr "_Exécuter le lecteur de courrier"
+
+#: ui/properties.glade.h:38
+msgid "_Mail reader:"
+msgstr "_Lecteur de courrier:"
+
+#: ui/properties.glade.h:39
msgid "_Start Mail Notification on GNOME login"
msgstr ""
"_Démarrer la Notification de Courrier lors de l'ouverture de session GNOME"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr "Décalage _vertical:"
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr "minutes"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr "pixels"
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr "secondes"
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr "Aperçu du Courrier"
-
#: ui/summary-popup.glade.h:1
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr "<span size=\"larger\" weight=\"bold\">Aperçu du Courrier</span>"
diff --git a/po/mail-notification.pot b/po/mail-notification.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -32,7 +32,7 @@ msgstr ""
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr ""
@@ -61,181 +61,216 @@ msgid "Do not show the immediate notification error dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:6
-msgid "Enable mail summary popup"
+msgid "Double-click action"
msgstr ""
#: data/mail-notification.schemas.in.h:7
-msgid "Fingerprints of trusted X509 certificates"
+msgid "Enable mail summary popup"
msgstr ""
#: data/mail-notification.schemas.in.h:8
-msgid "Has already been run"
+msgid "Fingerprints of trusted X509 certificates"
msgstr ""
#: data/mail-notification.schemas.in.h:9
-msgid "Height of mail summary dialog"
+msgid "Has already been run"
msgstr ""
#: data/mail-notification.schemas.in.h:10
-msgid "Height of properties dialog"
+msgid "Height of mail summary dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:11
-msgid "Mail read command"
+msgid "Height of properties dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup horizontal offset"
+msgid "Mail read command"
msgstr ""
#: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup position"
+msgid "Mail reader command"
msgstr ""
#: data/mail-notification.schemas.in.h:14
-msgid "Mail summary popup vertical offset"
+msgid "Mail summary popup horizontal offset"
msgstr ""
#: data/mail-notification.schemas.in.h:15
-msgid "Mailbox list"
+msgid "Mail summary popup position"
msgstr ""
#: data/mail-notification.schemas.in.h:16
-msgid "Minutes between mail checks"
+msgid "Mail summary popup vertical offset"
msgstr ""
#: data/mail-notification.schemas.in.h:17
-msgid "Minutes to wait before closing the mail summary popup"
+msgid "Mailbox list"
msgstr ""
#: data/mail-notification.schemas.in.h:18
-msgid "New mail command"
+msgid "Minutes between mail checks"
msgstr ""
#: data/mail-notification.schemas.in.h:19
-msgid "Run a command when all mail is read"
+msgid "Minutes to wait before closing the mail summary popup"
msgstr ""
#: data/mail-notification.schemas.in.h:20
-msgid "Run a command when new mail arrives"
+msgid "New mail command"
msgstr ""
#: data/mail-notification.schemas.in.h:21
-msgid "Seconds between mail checks"
+msgid "Only display recent mail in mail summary popup"
msgstr ""
#: data/mail-notification.schemas.in.h:22
-msgid "Seconds to wait before closing the mail summary popup"
+msgid "Run a command when all mail is read"
msgstr ""
#: data/mail-notification.schemas.in.h:23
+msgid "Run a command when new mail arrives"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:24
+msgid "Seconds between mail checks"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:25
+msgid "Seconds to wait before closing the mail summary popup"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:26
+msgid "Set a mail reader"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:28
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr ""
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr ""
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+msgid "The command to run to launch the mail reader."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:31
msgid "The command to run when all mail is read."
msgstr ""
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
msgid "The command to run when new mail arrives."
msgstr ""
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
msgid "The height of the mail summary dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr ""
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
msgstr ""
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
msgstr ""
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
msgstr ""
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
msgid "The width of the mail summary dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr ""
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
msgid "Whether to run a command when all mail is read or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
msgid "Whether to run a command when new mail arrives or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+msgid "Whether to set a mail reader or not."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:53
msgid "Width of mail summary dialog"
msgstr ""
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr ""
@@ -417,127 +452,127 @@ msgstr ""
msgid "unable to parse response \"%s\""
msgstr ""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr ""
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr ""
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr ""
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr ""
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr ""
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr ""
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr ""
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr ""
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr ""
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr ""
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr ""
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr ""
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr ""
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
msgstr ""
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
msgstr ""
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr ""
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr ""
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr ""
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr ""
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr ""
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr ""
@@ -551,33 +586,33 @@ msgid ""
"when needed)"
msgstr ""
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr ""
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, c-format
msgid "unable to parse URI \"%s\""
msgstr ""
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr ""
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr ""
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr ""
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr ""
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr ""
@@ -641,73 +676,77 @@ msgstr ""
msgid "The mailbox name"
msgstr ""
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr ""
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr ""
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
msgid "server did not send search results"
msgstr ""
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
msgid "server did not send all the messages we requested"
msgstr ""
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
msgid "unable to fetch message"
msgstr ""
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr ""
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr ""
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr ""
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr ""
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr ""
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr ""
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr ""
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr ""
@@ -764,7 +803,7 @@ msgstr ""
msgid "Whether the properties are completely filled or not"
msgstr ""
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr ""
@@ -790,35 +829,35 @@ msgid "The mailbox human-readable name"
msgstr ""
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
+msgid "Whether the mailbox has to be polled or not"
msgstr ""
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr ""
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr ""
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr ""
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr ""
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr ""
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr ""
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -829,7 +868,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -840,7 +879,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -851,37 +890,37 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr ""
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
"more mailboxes. %s"
msgstr ""
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr ""
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr ""
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr ""
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr ""
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr ""
@@ -995,51 +1034,51 @@ msgstr ""
msgid "unable to open mailbox: %s"
msgstr ""
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr ""
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr ""
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr ""
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr ""
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1088,21 +1127,21 @@ msgstr ""
msgid "SSL/TLS on sepa_rate port"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr ""
@@ -1110,89 +1149,74 @@ msgstr ""
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr ""
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
msgid "unknown error"
msgstr ""
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr ""
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr ""
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr ""
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
msgid "top left"
msgstr ""
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr ""
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr ""
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr ""
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr ""
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] ""
msgstr[1] ""
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr ""
-#: src/mn-shell.gob:263
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
msgstr ""
-#: src/mn-shell.gob:270
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:275
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] ""
-msgstr[1] ""
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr ""
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
+#: src/mn-shell.gob:351
+msgid "Unsupported Mailboxes"
msgstr ""
-#: src/mn-shell.gob:321
-#, c-format
-msgid "Unable to execute \"%s\": %s."
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
msgstr ""
#: src/mn-soup.c:140
@@ -1290,11 +1314,20 @@ msgstr ""
msgid "unable to get current time: %s"
msgstr ""
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr ""
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr ""
+
+#: src/mn-util.c:946
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr ""
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr ""
@@ -1316,143 +1349,171 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr ""
#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
+msgid "<span weight=\"bold\">Double-click Action</span>"
msgstr ""
#: ui/properties.glade.h:5
-msgid "<span weight=\"bold\">Mailbox List</span>"
+msgid "<span weight=\"bold\">General</span>"
msgstr ""
#: ui/properties.glade.h:6
-msgid "<span weight=\"bold\">Position</span>"
+msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr ""
#: ui/properties.glade.h:7
-msgid "General"
+msgid "<span weight=\"bold\">Position</span>"
msgstr ""
#: ui/properties.glade.h:8
-msgid "Hori_zontal offset:"
+msgid "General"
msgstr ""
#: ui/properties.glade.h:9
-msgid "Mail Notification Properties"
+msgid "Hori_zontal offset:"
msgstr ""
#: ui/properties.glade.h:10
-msgid "Mail Summary Popup"
+msgid "Mail Notification Properties"
msgstr ""
#: ui/properties.glade.h:11
-msgid "Mailboxes"
+msgid "Mail Summary Popup"
msgstr ""
#: ui/properties.glade.h:12
-msgid "P_osition:"
+msgid "Mailboxes"
msgstr ""
#: ui/properties.glade.h:13
-msgid "The amount of time to wait before closing the mail summary popup"
+msgid "Only display _recent mail"
msgstr ""
#: ui/properties.glade.h:14
-msgid "The amount of time to wait between mail checks"
+msgid "P_osition:"
msgstr ""
#: ui/properties.glade.h:15
-msgid "The command to run when all mail is read"
+msgid "The amount of time to wait before closing the mail summary popup"
msgstr ""
#: ui/properties.glade.h:16
-msgid "The command to run when new mail arrives"
+msgid "The amount of time to wait between mail checks"
msgstr ""
#: ui/properties.glade.h:17
+msgid "The command to run to launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:18
+msgid "The command to run when all mail is read"
+msgstr ""
+
+#: ui/properties.glade.h:19
+msgid "The command to run when new mail arrives"
+msgstr ""
+
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
msgstr ""
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
msgstr ""
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
msgid "When _all mail is read:"
msgstr ""
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr ""
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr ""
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
msgid "Whether to automatically close the mail summary popup or not"
msgstr ""
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr ""
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+msgid "Whether to hide previously displayed mail or not"
+msgstr ""
+
+#: ui/properties.glade.h:28
msgid "Whether to run a command when all mail is read or not"
msgstr ""
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr ""
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+msgid "Whether to set a mail reader or not"
+msgstr ""
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
msgstr ""
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr ""
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr ""
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr ""
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+msgid "_Display the mail summary dialog"
+msgstr ""
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr ""
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:38
+msgid "_Mail reader:"
+msgstr ""
+
+#: ui/properties.glade.h:39
msgid "_Start Mail Notification on GNOME login"
msgstr ""
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr ""
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr ""
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr ""
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr ""
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr ""
-
#: ui/summary-popup.glade.h:1
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr ""
diff --git a/po/pt.gmo b/po/pt.gmo
Binary files differ.
diff --git a/po/pt.po b/po/pt.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 0.7.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
"PO-Revision-Date: 2004-10-24 11:06+0200\n"
"Last-Translator: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
"Language-Team: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
@@ -34,7 +34,7 @@ msgstr "Configurar Notificação de Correio"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr "Notificação de Correio"
@@ -63,74 +63,100 @@ msgid "Do not show the immediate notification error dialog"
msgstr "Não mostrar o diálogo de erro de notificação imediata"
#: data/mail-notification.schemas.in.h:6
+#, fuzzy
+msgid "Double-click action"
+msgstr "Comando de duplo-clique"
+
+#: data/mail-notification.schemas.in.h:7
msgid "Enable mail summary popup"
msgstr "Activar popup de resumo de correio"
-#: data/mail-notification.schemas.in.h:7
+#: data/mail-notification.schemas.in.h:8
msgid "Fingerprints of trusted X509 certificates"
msgstr "Impressões digitais de certificados x509 confiados"
-#: data/mail-notification.schemas.in.h:8
+#: data/mail-notification.schemas.in.h:9
msgid "Has already been run"
msgstr "Já foi executado"
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
msgid "Height of mail summary dialog"
msgstr "Altura do diálogo de resumo de correio"
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
msgid "Height of properties dialog"
msgstr "Altura do diálogo de propriedades"
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
msgid "Mail read command"
msgstr "Comando de leitura de correio"
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
+#, fuzzy
+msgid "Mail reader command"
+msgstr "Comando de leitura de correio"
+
+#: data/mail-notification.schemas.in.h:14
msgid "Mail summary popup horizontal offset"
msgstr "Intervalo horizontal do popup de resumo de correio"
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:15
msgid "Mail summary popup position"
msgstr "Posição do popup de resumo de correio"
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:16
msgid "Mail summary popup vertical offset"
msgstr "Intervalo vertical do popup de resumo de correio"
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:17
msgid "Mailbox list"
msgstr "Lista de Caixas de Correio"
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:18
msgid "Minutes between mail checks"
msgstr "Minutos entre verificações de correio"
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
msgid "Minutes to wait before closing the mail summary popup"
msgstr "Minutos a esperar antes de fechar o popup de resumo de correio"
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
msgid "New mail command"
msgstr "Novo comando de correio"
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
+#, fuzzy
+msgid "Only display recent mail in mail summary popup"
+msgstr "Fechar o popup de resumo de correio"
+
+#: data/mail-notification.schemas.in.h:22
msgid "Run a command when all mail is read"
msgstr "Executar um comando quando todo o correio está lido"
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:23
msgid "Run a command when new mail arrives"
msgstr "Executar um comando quando chega novo correio"
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:24
msgid "Seconds between mail checks"
msgstr "Segundos entre verificações de correio"
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:25
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Segundos a esperar antes de fechar o popup de resumo de correio"
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:26
+#, fuzzy
+msgid "Set a mail reader"
+msgstr "Escolha um Ficheiro ou Pasta"
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:28
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
@@ -138,7 +164,7 @@ msgstr ""
"A quantidade de tempo a esperar antes de fechar o popup de resumo de correio "
"(parte dos minutos)."
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
@@ -146,27 +172,32 @@ msgstr ""
"A quantidade de tempo a esperar antes de fechar o popup de resumo de correio "
"(parte dos segundos)."
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+#, fuzzy
+msgid "The command to run to launch the mail reader."
+msgstr "O comando a executar quando todo o correio está lido."
+
+#: data/mail-notification.schemas.in.h:31
msgid "The command to run when all mail is read."
msgstr "O comando a executar quando todo o correio está lido."
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
msgid "The command to run when new mail arrives."
msgstr "O comando a executar quando chega novo correio."
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
msgid "The height of the mail summary dialog in pixels."
msgstr "A altura em pixeis do diálogo de resumo de correio."
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr "A altura em pixeis do diálogo de propriedades."
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr "A lista de caixas de correio a monitorizar."
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
@@ -174,14 +205,14 @@ msgstr ""
"A lista de servidores SSL/TLS confiados (hostname:port) se faltar um "
"certificado x509."
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
"A lista de certificados x509 confiados, representados pela sua fingerprint "
"MD5."
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -189,7 +220,7 @@ msgstr ""
"O número de pixeis a deixar entre o extremo esquerdo ou direito do ecran e o "
"popup de resumo de correio."
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -197,7 +228,7 @@ msgstr ""
"O número de pixeis a deixar entre o topo ou fundo do ecran e o popup de "
"resumo de correio."
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -205,58 +236,71 @@ msgstr ""
"A posição do popup de resumo de correio. Tem de ser \"top-left\", \"top-right"
"\", \"bottom-left\" ou \"bottom-right\"."
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
msgid "The width of the mail summary dialog in pixels."
msgstr "A largura em pixeis do diálogo de resumo de correio."
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr "A largura em pixeis do diálogo de propriedades."
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr "Lista de servidores confiados"
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr "Se a Notificação de Correio já foi executada ou não."
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr "Se o ícone de estado deve piscar em erros ou não."
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Se o popup de resumo de correio deve ser automaticamente fechado ou não."
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr ""
"Se o popup de resumo de correio deve ser mostrado quando chega correio ou "
"não."
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+#, fuzzy
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+"Se o popup de resumo de correio deve ser automaticamente fechado ou não."
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr ""
"Se se evita o diálogo de erro de notificação imediata de ser mostrado ou não."
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Se um comando deverá ser executado quando todo o correio é lido ou não."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
msgid "Whether to run a command when new mail arrives or not."
msgstr "Se um comando deverá ser executado quando chega novo correio."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+#, fuzzy
+msgid "Whether to set a mail reader or not."
+msgstr ""
+"Se um comando deverá ser executado quando todo o correio é lido ou não."
+
+#: data/mail-notification.schemas.in.h:53
msgid "Width of mail summary dialog"
msgstr "Largura do diálogo de resumo de correio"
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr "Largura do diálogo de propriedades"
@@ -452,91 +496,91 @@ msgstr "a resposta \"%s\" não é válida no contexto actual"
msgid "unable to parse response \"%s\""
msgstr "incapaz de processar resposta \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr "incapaz de ler do servidor: %s"
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr "incapaz de ler do servidor: EOF"
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "incapaz de descodificar dados usando SASL: %s"
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "incapaz de encodificar dados usando SASL: %s"
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr "incapaz de escrever para o servidor: %s"
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr "incapaz de escrever para o servidor: EOF"
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr "incapaz de encodificar em Base64: %s"
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "incapaz de inicializar a biblioteca SASL: %s"
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "incapaz de obter o endereço local do socket: %s"
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "incapaz de obter endereço remoto do socket: %s"
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr "aviso: incapaz de definir as propriedades de segurança SASL: %s"
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
"incapaz de iniciar a autenticação SASL: SASL perguntou algo que não sabíamos"
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "incapaz de iniciar autenticação SASL: %s"
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "incapaz de criar uma ligação SASL: %s"
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr "SASL perguntou algo que não sabíamos, abortando a autenticação SASL"
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, abortando a autenticação SASL"
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "incapaz de descodificar o input em Base64 do servidor: %s"
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
@@ -544,7 +588,7 @@ msgstr ""
"o servidor enviou um desafio SASL, mas havia uma resposta SASL inicial "
"pendente do cliente"
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
@@ -552,32 +596,32 @@ msgstr ""
"o servidor não enviou um desafio SASL, mas não havia uma resposta SASL "
"inicial pendente do cliente"
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "está agora activa uma camada de segurança SASL com factor de força %i"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "incapaz de obter a propriedade SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "aviso: incapaz de obter a propriedade SASL_SSF: %s"
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr "apagando recursivamente %s"
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr "sincronizando a base de dados GConf"
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr "completo"
@@ -593,33 +637,33 @@ msgstr ""
"A sua senha Gmail (se deixar em branco, a senha será pedida quando "
"necessária)"
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr "libsoup não foi compilada com suporte SSL/TLS"
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, c-format
msgid "unable to parse URI \"%s\""
msgstr "incapaz de processar URI \"%s\""
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr "incapaz de transferir dados: %s"
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr "ligando-se"
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr "login falhou"
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr "a procurar correio não lido"
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr "incapaz de processar dados Gmail"
@@ -685,50 +729,50 @@ msgstr "O número do porto do servidor IMAP"
msgid "The mailbox name"
msgstr "O nome da caixa de correio"
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr "suporte SSL/TLS não foi compilado"
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr "servidor não enviou habilidades"
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr "servidor anunciou LOGINDISABLED, não usando a autenticação LOGIN"
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr "incapaz de ligar"
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
msgid "server did not send search results"
msgstr "servidor não enviou resultados da procura"
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
msgid "server did not send all the messages we requested"
msgstr "servidor não enviou todas as mensagens pedidas"
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
msgid "unable to fetch message"
msgstr "incapaz de obter mensagem"
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr "servidor não enviou estado"
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr "erro de servidor desconhecido"
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr "servidor não suporta SSL/TLS in-band"
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -736,24 +780,28 @@ msgstr ""
"foi escolhido um mecanismo de autenticação SASL, mas o suporte SASL não foi "
"compilado"
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "mecanismo de autenticação desconhecido \"%s\""
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr "recorrendo à autenticação IMAP LOGIN"
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr "autenticação falhou"
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr ""
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr "_Actualizar"
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "_Remover da área de notificação"
@@ -810,7 +858,7 @@ msgstr "Completo"
msgid "Whether the properties are completely filled or not"
msgstr "Se as propriedades estão completamente preenchidas"
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr "Caixa de Correio"
@@ -836,35 +884,36 @@ msgid "The mailbox human-readable name"
msgstr "O nome legível da caixa de correio"
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
+#, fuzzy
+msgid "Whether the mailbox has to be polled or not"
msgstr "Se a caixa de correio tem de ser manualmente verificada"
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr "Se a caixa de correio tem novo correio"
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr "A lista de objectos MNMessage novos e não lidos"
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr "O erro da caixa de correio, se houver"
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr "não existe"
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr "formato desconhecido"
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr "incapaz de activar notificação imediata para %s: %s"
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -879,7 +928,7 @@ msgstr[1] ""
"Como medida de recurso, serão verificadas a cada %i segundos (este atraso é "
"configurável no Diálogo de Propriedades)."
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -894,7 +943,7 @@ msgstr[1] ""
"Como medida de recurso, serão verificadas a cada %i minutos (este atraso é "
"configurável no Diálogo de Propriedades)."
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -909,11 +958,11 @@ msgstr[1] ""
"Como medida de recurso, serão verificadas aproximadamente cada %i minutos "
"(este atraso é configurável no Diálogo de Propriedades)."
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr "Ocorreu um erro de monitorização"
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
@@ -922,26 +971,26 @@ msgstr ""
"A Notificação de Correio foi incapaz de activar notificação imediata para "
"uma ou mais caixas de correio. %s"
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr "Se uma ou mais caixas de correio têm de ser manualmente verificadas"
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s não é suportado: %s"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr "%s tem correio novo"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr "%s não tem correio novo"
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr "%s relatou um erro: %s"
@@ -1061,51 +1110,51 @@ msgstr "erro ao ler a caixa de correio: %s"
msgid "unable to open mailbox: %s"
msgstr "erro ao abrir a caixa de correio: %s"
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr "Mensagem ilegível"
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr "De"
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr "Assunto"
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr "Enviado"
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] "%i segundo atrás"
msgstr[1] "%i segundos atrás"
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
msgstr[0] "%i minuto atrás"
msgstr[1] "%i minutos atrás"
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
msgstr[0] "%i hora atrás"
msgstr[1] "%i horas atrás"
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
msgstr[0] "%i dia atrás"
msgstr[1] "%i dias atrás"
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1154,15 +1203,15 @@ msgstr "SSL/TLS _in-band"
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS num porto sepa_rado"
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr "O hostname ou endereço IP do servidor POP3"
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr "O seu nome de utilizador no servidor POP3"
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
@@ -1170,7 +1219,7 @@ msgstr ""
"A sua senha no servidor POP3 (se deixar em branco, a senha será pedida "
"quando necessária)"
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr "O número do porto do servidor POP3"
@@ -1178,90 +1227,76 @@ msgstr "O número do porto do servidor POP3"
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "argumentos inválidos para a habilidade LOGIN-DELAY"
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
msgid "unknown error"
msgstr "erro desconhecido"
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
msgstr[0] "honrando LOGIN-DELAY, dormindo por %i segundo"
msgstr[1] "honrando LOGIN-DELAY, dormindo por %i segundos"
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr "servidor não suporta autenticação APOP"
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr "recorrendo a autenticação APOP"
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr "recorrendo a autenticação USER/PASS"
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
msgid "top left"
msgstr "topo esquerdo"
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr "topo direito"
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr "fundo esquerdo"
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr "fundo direito"
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr "Nenhuma caixa de correio seleccionada."
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] "%i caixa de correio seleccionada."
msgstr[1] "%i caixas de correio seleccionadas."
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr "Tem novo correio."
-#: src/mn-shell.gob:263
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] "A seguinte caixa de correio tem novo correio:\n"
-msgstr[1] "As seguintes caixas de correio têm novo correio:\n"
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
-msgstr "Não tem correio novo."
-
-#: src/mn-shell.gob:270
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] "A seguinte caixa de correio relatou um erro:\n"
-msgstr[1] "As seguintes caixas de correios relataram um erro:\n"
-
-#: src/mn-shell.gob:275
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] "A seguinte caixa de correio não é suportada:\n"
-msgstr[1] "As seguintes caixas de correio não são suportadas:\n"
-
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
-msgstr "Ocorreu um erro de comando na Notificação de Correio"
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
+msgstr ""
-#: src/mn-shell.gob:321
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "incapaz de executar \"%s\": %s."
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr ""
+
+#: src/mn-shell.gob:351
+#, fuzzy
+msgid "Unsupported Mailboxes"
+msgstr "Caixa de Correio de Sistema"
+
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
+msgstr "Resumo de Correio"
#: src/mn-soup.c:140
#, c-format
@@ -1362,11 +1397,20 @@ msgstr "Ocorreu um erro fatal na Notificação de Correio"
msgid "unable to get current time: %s"
msgstr "incapaz de obter tempo actual: %s"
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "especificação de sinal inválida \"%s\""
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr "Ocorreu um erro de comando na Notificação de Correio"
+
+#: src/mn-util.c:946
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "incapaz de executar \"%s\": %s."
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr "*"
@@ -1388,59 +1432,73 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Comandos</span>"
#: ui/properties.glade.h:4
+#, fuzzy
+msgid "<span weight=\"bold\">Double-click Action</span>"
+msgstr "<span weight=\"bold\">Posição</span>"
+
+#: ui/properties.glade.h:5
msgid "<span weight=\"bold\">General</span>"
msgstr "<span weight=\"bold\">Geral</span>"
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Lista de Caixas de Correio</span>"
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Posição</span>"
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
msgid "General"
msgstr "Geral"
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
msgid "Hori_zontal offset:"
msgstr "Intervalo Hori_zontal:"
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
msgid "Mail Notification Properties"
msgstr "Propriedades de Notificação de Correio"
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
msgid "Mail Summary Popup"
msgstr "Popup de Resumo de Correio"
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
msgid "Mailboxes"
msgstr "Caixas de Correio"
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
+msgid "Only display _recent mail"
+msgstr ""
+
+#: ui/properties.glade.h:14
msgid "P_osition:"
msgstr "_Posição:"
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:15
msgid "The amount of time to wait before closing the mail summary popup"
msgstr ""
"A quantidade de tempo a esperar antes de fechar o popup de resumo de correio"
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:16
msgid "The amount of time to wait between mail checks"
msgstr "A quantidade de tempo a esperar entre verificações de correio"
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
+#, fuzzy
+msgid "The command to run to launch the mail reader"
+msgstr "O comando a executar quando todo o correio está lido"
+
+#: ui/properties.glade.h:18
msgid "The command to run when all mail is read"
msgstr "O comando a executar quando todo o correio está lido"
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:19
msgid "The command to run when new mail arrives"
msgstr "O comando a executar quando chega novo correio"
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
@@ -1448,7 +1506,7 @@ msgstr ""
"O número de pixeis a deixar entre o extremo esquerdo ou direito do ecran e o "
"popup de resumo de correio"
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
@@ -1456,37 +1514,47 @@ msgstr ""
"O número de pixeis a deixar entre o topo ou fundo do ecran e o popup de "
"resumo de correio"
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
msgid "When _all mail is read:"
msgstr "Quando _todo o correio está lido:"
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr "Quando chega _novo correio:"
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr "Se o ícone de estado deve piscar em erros ou não"
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
msgid "Whether to automatically close the mail summary popup or not"
msgstr ""
"Se o popup de resumo de correio deve ser automaticamente fechado ou não"
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr ""
"Se o popup de resumo de correio deve ser mostrado quando chega correio ou não"
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+#, fuzzy
+msgid "Whether to hide previously displayed mail or not"
+msgstr "Se a caixa de correio tem novo correio"
+
+#: ui/properties.glade.h:28
msgid "Whether to run a command when all mail is read or not"
msgstr "Se deve ser executado um comando quando todo o correio está lido"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr "Se deve ser executado um comando quando chega novo correio"
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+#, fuzzy
+msgid "Whether to set a mail reader or not"
+msgstr "Se deve ser executado um comando quando todo o correio está lido"
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
@@ -1494,46 +1562,56 @@ msgstr ""
"Se a Notificação de Correio deve ser iniciada quando faz se liga à sessão "
"GNOME ou não"
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr "Fechar _Automáticamente após:"
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr "_Piscar em erros"
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr "_Intervalo entre verificações de correio:"
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+#, fuzzy
+msgid "_Display the mail summary dialog"
+msgstr "Mostrar o diálogo de resumo de correio"
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr "_Activar popup de resumo de correio"
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:38
+#, fuzzy
+msgid "_Mail reader:"
+msgstr "_Resumo de Correio"
+
+#: ui/properties.glade.h:39
msgid "_Start Mail Notification on GNOME login"
msgstr "_Iniciar Notificação de Correio no login GNOME"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr "Intervalo _vertical:"
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr "minutos"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr "pixeis"
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr "segundos"
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr "Resumo de Correio"
-
#: ui/summary-popup.glade.h:1
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr "<span size=\"larger\" weight=\"bold\">Resumo de Correio</span>"
@@ -1575,8 +1653,23 @@ msgstr "_Configurar Notificação de Correio"
msgid "_Skip configuration"
msgstr "_Saltar configuração"
-#~ msgid "Double-clicked command"
-#~ msgstr "Comando de duplo-clique"
+#~ msgid "The following mailbox has new mail:\n"
+#~ msgid_plural "The following mailboxes have new mail:\n"
+#~ msgstr[0] "A seguinte caixa de correio tem novo correio:\n"
+#~ msgstr[1] "As seguintes caixas de correio têm novo correio:\n"
+
+#~ msgid "You have no new mail."
+#~ msgstr "Não tem correio novo."
+
+#~ msgid "The following mailbox reported an error:\n"
+#~ msgid_plural "The following mailboxes reported an error:\n"
+#~ msgstr[0] "A seguinte caixa de correio relatou um erro:\n"
+#~ msgstr[1] "As seguintes caixas de correios relataram um erro:\n"
+
+#~ msgid "The following mailbox is unsupported:\n"
+#~ msgid_plural "The following mailboxes are unsupported:\n"
+#~ msgstr[0] "A seguinte caixa de correio não é suportada:\n"
+#~ msgstr[1] "As seguintes caixas de correio não são suportadas:\n"
#~ msgid "Run a command when the icon is double-clicked"
#~ msgstr "Executar um comando quando fizer duplo-clique no ícone"
diff --git a/po/ru.gmo b/po/ru.gmo
Binary files differ.
diff --git a/po/ru.po b/po/ru.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 0.5.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
"PO-Revision-Date: 2004-07-21 21:58+0200\n"
"Last-Translator: Dan Korostelev <dan@ats.energo.ru>\n"
"Language-Team: Russian\n"
@@ -38,7 +38,7 @@ msgstr "Иконка входящих сообщений"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr "Иконка входящих сообщений"
@@ -68,197 +68,236 @@ msgid "Do not show the immediate notification error dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:6
-msgid "Enable mail summary popup"
+msgid "Double-click action"
msgstr ""
#: data/mail-notification.schemas.in.h:7
-msgid "Fingerprints of trusted X509 certificates"
+msgid "Enable mail summary popup"
msgstr ""
#: data/mail-notification.schemas.in.h:8
-msgid "Has already been run"
+msgid "Fingerprints of trusted X509 certificates"
msgstr ""
#: data/mail-notification.schemas.in.h:9
-msgid "Height of mail summary dialog"
+msgid "Has already been run"
msgstr ""
#: data/mail-notification.schemas.in.h:10
-msgid "Height of properties dialog"
+msgid "Height of mail summary dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:11
-msgid "Mail read command"
+msgid "Height of properties dialog"
msgstr ""
#: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup horizontal offset"
+msgid "Mail read command"
msgstr ""
#: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup position"
+msgid "Mail reader command"
msgstr ""
#: data/mail-notification.schemas.in.h:14
-msgid "Mail summary popup vertical offset"
+msgid "Mail summary popup horizontal offset"
msgstr ""
#: data/mail-notification.schemas.in.h:15
-msgid "Mailbox list"
+msgid "Mail summary popup position"
msgstr ""
#: data/mail-notification.schemas.in.h:16
-msgid "Minutes between mail checks"
+msgid "Mail summary popup vertical offset"
msgstr ""
#: data/mail-notification.schemas.in.h:17
-msgid "Minutes to wait before closing the mail summary popup"
+msgid "Mailbox list"
msgstr ""
#: data/mail-notification.schemas.in.h:18
-msgid "New mail command"
+msgid "Minutes between mail checks"
msgstr ""
#: data/mail-notification.schemas.in.h:19
+msgid "Minutes to wait before closing the mail summary popup"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:20
+msgid "New mail command"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:21
+msgid "Only display recent mail in mail summary popup"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:22
#, fuzzy
msgid "Run a command when all mail is read"
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:23
#, fuzzy
msgid "Run a command when new mail arrives"
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:24
msgid "Seconds between mail checks"
msgstr ""
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:25
msgid "Seconds to wait before closing the mail summary popup"
msgstr ""
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:26
+msgid "Set a mail reader"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:28
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr ""
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr ""
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+#, fuzzy
+msgid "The command to run to launch the mail reader."
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: data/mail-notification.schemas.in.h:31
#, fuzzy
msgid "The command to run when all mail is read."
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
#, fuzzy
msgid "The command to run when new mail arrives."
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
msgid "The height of the mail summary dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr ""
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr ""
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
msgstr ""
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
msgstr ""
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
msgstr ""
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
msgid "The width of the mail summary dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr ""
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr ""
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
#, fuzzy
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
#, fuzzy
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr ""
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
#, fuzzy
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
#, fuzzy
msgid "Whether to run a command when new mail arrives or not."
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+#, fuzzy
+msgid "Whether to set a mail reader or not."
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: data/mail-notification.schemas.in.h:53
msgid "Width of mail summary dialog"
msgstr ""
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr ""
@@ -440,127 +479,127 @@ msgstr ""
msgid "unable to parse response \"%s\""
msgstr ""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr ""
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr ""
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr ""
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr ""
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr ""
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr ""
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr ""
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr ""
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr ""
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr ""
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr ""
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr ""
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr ""
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr ""
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr ""
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr ""
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
msgstr ""
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
msgstr ""
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr ""
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr ""
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr ""
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr ""
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr ""
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr ""
@@ -574,33 +613,33 @@ msgid ""
"when needed)"
msgstr ""
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr ""
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, c-format
msgid "unable to parse URI \"%s\""
msgstr ""
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr ""
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr ""
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr ""
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr ""
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr ""
@@ -664,73 +703,77 @@ msgstr ""
msgid "The mailbox name"
msgstr ""
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr ""
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr ""
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
msgid "server did not send search results"
msgstr ""
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
msgid "server did not send all the messages we requested"
msgstr ""
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
msgid "unable to fetch message"
msgstr ""
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr ""
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr ""
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr ""
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
msgstr ""
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr ""
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr ""
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr ""
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr ""
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr ""
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr ""
@@ -787,7 +830,7 @@ msgstr ""
msgid "Whether the properties are completely filled or not"
msgstr ""
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr ""
@@ -813,35 +856,35 @@ msgid "The mailbox human-readable name"
msgstr ""
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
+msgid "Whether the mailbox has to be polled or not"
msgstr ""
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr ""
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr ""
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr ""
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr ""
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr ""
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr ""
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -852,7 +895,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -863,7 +906,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -874,37 +917,37 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr ""
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
"more mailboxes. %s"
msgstr ""
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr ""
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr ""
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr ""
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr ""
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr ""
@@ -1019,51 +1062,51 @@ msgstr ""
msgid "unable to open mailbox: %s"
msgstr ""
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr ""
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr ""
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr ""
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr ""
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1112,21 +1155,21 @@ msgstr ""
msgid "SSL/TLS on sepa_rate port"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
msgstr ""
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr ""
@@ -1134,89 +1177,74 @@ msgstr ""
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr ""
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
msgid "unknown error"
msgstr ""
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
msgstr[0] ""
msgstr[1] ""
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr ""
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr ""
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr ""
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
msgid "top left"
msgstr ""
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr ""
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr ""
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr ""
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr ""
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
msgstr[0] ""
msgstr[1] ""
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr ""
-#: src/mn-shell.gob:263
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
msgstr ""
-#: src/mn-shell.gob:270
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:275
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] ""
-msgstr[1] ""
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr ""
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
+#: src/mn-shell.gob:351
+msgid "Unsupported Mailboxes"
msgstr ""
-#: src/mn-shell.gob:321
-#, c-format
-msgid "Unable to execute \"%s\": %s."
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
msgstr ""
#: src/mn-soup.c:140
@@ -1314,11 +1342,20 @@ msgstr ""
msgid "unable to get current time: %s"
msgstr ""
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr ""
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr ""
+
+#: src/mn-util.c:946
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr ""
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr ""
@@ -1340,151 +1377,183 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr ""
#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
+msgid "<span weight=\"bold\">Double-click Action</span>"
msgstr ""
#: ui/properties.glade.h:5
-msgid "<span weight=\"bold\">Mailbox List</span>"
+msgid "<span weight=\"bold\">General</span>"
msgstr ""
#: ui/properties.glade.h:6
-msgid "<span weight=\"bold\">Position</span>"
+msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr ""
#: ui/properties.glade.h:7
-msgid "General"
+msgid "<span weight=\"bold\">Position</span>"
msgstr ""
#: ui/properties.glade.h:8
-msgid "Hori_zontal offset:"
+msgid "General"
msgstr ""
#: ui/properties.glade.h:9
+msgid "Hori_zontal offset:"
+msgstr ""
+
+#: ui/properties.glade.h:10
#, fuzzy
msgid "Mail Notification Properties"
msgstr "Иконка входящих сообщений"
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
msgid "Mail Summary Popup"
msgstr ""
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
msgid "Mailboxes"
msgstr ""
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
+msgid "Only display _recent mail"
+msgstr ""
+
+#: ui/properties.glade.h:14
msgid "P_osition:"
msgstr ""
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:15
msgid "The amount of time to wait before closing the mail summary popup"
msgstr ""
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:16
msgid "The amount of time to wait between mail checks"
msgstr ""
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
+#, fuzzy
+msgid "The command to run to launch the mail reader"
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: ui/properties.glade.h:18
#, fuzzy
msgid "The command to run when all mail is read"
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:19
msgid "The command to run when new mail arrives"
msgstr ""
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
msgstr ""
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
msgstr ""
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
msgid "When _all mail is read:"
msgstr ""
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr ""
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr ""
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
msgid "Whether to automatically close the mail summary popup or not"
msgstr ""
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
#, fuzzy
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+msgid "Whether to hide previously displayed mail or not"
+msgstr ""
+
+#: ui/properties.glade.h:28
#, fuzzy
msgid "Whether to run a command when all mail is read or not"
msgstr ""
"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr ""
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+#, fuzzy
+msgid "Whether to set a mail reader or not"
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
msgstr ""
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr ""
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr ""
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr ""
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+msgid "_Display the mail summary dialog"
+msgstr ""
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr ""
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:38
+msgid "_Mail reader:"
+msgstr ""
+
+#: ui/properties.glade.h:39
#, fuzzy
msgid "_Start Mail Notification on GNOME login"
msgstr "Иконка входящих сообщений"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr ""
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr ""
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr ""
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr ""
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr ""
-
#: ui/summary-popup.glade.h:1
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr ""
diff --git a/po/sr.gmo b/po/sr.gmo
Binary files differ.
diff --git a/po/sr.po b/po/sr.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 0.7.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
"PO-Revision-Date: 2004-10-18 20:04+0100\n"
"Last-Translator: Филип Милетић <filmil@gmail.com>\n"
"Language-Team: Serbian (sr) <gnu@prevod.org>\n"
@@ -35,7 +35,7 @@ msgstr "Подеси дојаву приспећа поште"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr "Дојава поште"
@@ -64,119 +64,150 @@ msgid "Do not show the immediate notification error dialog"
msgstr "Не показуј прозор са обавештењем о грешкама"
#: data/mail-notification.schemas.in.h:6
+#, fuzzy
+msgid "Double-click action"
+msgstr "Изврши на двоструки клик"
+
+#: data/mail-notification.schemas.in.h:7
msgid "Enable mail summary popup"
msgstr "Дозволи приказ сажетка порука"
-#: data/mail-notification.schemas.in.h:7
+#: data/mail-notification.schemas.in.h:8
msgid "Fingerprints of trusted X509 certificates"
msgstr "Отисци проверених X509 сертификата"
-#: data/mail-notification.schemas.in.h:8
+#: data/mail-notification.schemas.in.h:9
msgid "Has already been run"
msgstr "Већ је покренут"
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
msgid "Height of mail summary dialog"
msgstr "Висина прозора са сажетком порука"
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
msgid "Height of properties dialog"
msgstr "Висина прозора са поставкама"
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
msgid "Mail read command"
msgstr "Команда за читање поште"
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
+#, fuzzy
+msgid "Mail reader command"
+msgstr "Команда за читање поште"
+
+#: data/mail-notification.schemas.in.h:14
msgid "Mail summary popup horizontal offset"
msgstr "Померај хоризонталних тачака за прозор са сажетком порука"
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:15
msgid "Mail summary popup position"
msgstr "Број хоризонталних тачака за прозор са сажетком порука"
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:16
msgid "Mail summary popup vertical offset"
msgstr "Померај вертикалних тачака ѕа прозор са сажетком порука"
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:17
msgid "Mailbox list"
msgstr "Списак сандучића"
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:18
msgid "Minutes between mail checks"
msgstr "Минута између две провере"
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
msgid "Minutes to wait before closing the mail summary popup"
msgstr ""
"Број минута који треба да протекне пре затварања прозора са сажетком порука"
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
msgid "New mail command"
msgstr "Изврши када пошта стигне"
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
+#, fuzzy
+msgid "Only display recent mail in mail summary popup"
+msgstr "Затвори прозор са сажетком порука"
+
+#: data/mail-notification.schemas.in.h:22
msgid "Run a command when all mail is read"
msgstr "Покрени команду када је сва пошта прочитана"
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:23
msgid "Run a command when new mail arrives"
msgstr "Покрени команду када стигне нова пошта"
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:24
msgid "Seconds between mail checks"
msgstr "Секунди између две провере"
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:25
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Број секунди који треба да протекне пре затварања сажетка порука"
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:26
+#, fuzzy
+msgid "Set a mail reader"
+msgstr "Изаберите датотеку или директоријум"
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:28
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr "Пауза пре затварања прозора са сажетком порука (минути)."
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr "Пауза пре затварања прозора са сажетком порука (секунде)."
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+#, fuzzy
+msgid "The command to run to launch the mail reader."
+msgstr "Команда коју треба покренути када је сва пошта прочитана."
+
+#: data/mail-notification.schemas.in.h:31
msgid "The command to run when all mail is read."
msgstr "Команда коју треба покренути када је сва пошта прочитана."
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
msgid "The command to run when new mail arrives."
msgstr "Покрени ову команду када стигне нова пошта."
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
msgid "The height of the mail summary dialog in pixels."
msgstr "Висина прозора са сажетком порука изражена у тачкама."
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr "Висина прозора са поставкама изражена у тачкама."
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr "Списак сандучића који се прате."
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
"Списак проверених SSL/TLS сервера (рачунар:порт) који немају X509 сертификат."
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr "Списак проверених X509 сертификата, представљених MD5 отиском."
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -184,7 +215,7 @@ msgstr ""
"Број тачака које треба оставити између леве, одн. десне стране екрана и "
"прозора са сажетком порука."
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -192,7 +223,7 @@ msgstr ""
"Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
"сажетком порука."
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -200,55 +231,68 @@ msgstr ""
"Положај прозора са сажетком порука. Може бити: „горе-лево‟, „горе-десно‟, "
"„доле-лево‟ или „доле-десно‟."
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
msgid "The width of the mail summary dialog in pixels."
msgstr "Ширина прозора са сажетком порука изражена у тачкама."
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr "Ширина прозора са поставкама изражена у тачкама."
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr "Списак проверених сервера"
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr "Да ли је програм покретан пре или није."
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr "Да ли сличица треба да трепери ако дође до грешке или не."
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Да ли треба или не треба аутоматски затворити прозор са сажетком поште."
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr "Да ли треба приказати сажетак порука када стигне нова пошта."
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+#, fuzzy
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+"Да ли треба или не треба аутоматски затворити прозор са сажетком поште."
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr "Да ли треба или не треба спречити појаву прозора са описом грешака."
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Да ли треба или не треба покренути неку команду када је сва пошта прочитана."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
msgid "Whether to run a command when new mail arrives or not."
msgstr "Да ли треба покренути неку команду када стигне нова пошта."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+#, fuzzy
+msgid "Whether to set a mail reader or not."
+msgstr ""
+"Да ли треба или не треба покренути неку команду када је сва пошта прочитана."
+
+#: data/mail-notification.schemas.in.h:53
msgid "Width of mail summary dialog"
msgstr "Ширина прозора са сажетком порука"
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr "Ширина прозора са поставкама"
@@ -446,129 +490,129 @@ msgstr "одговор \"%s\" није исправан у тренутно ва
msgid "unable to parse response \"%s\""
msgstr "није могуће обрадити одговор \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr "Није могуће читање са сервера: %s"
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr "Није могуће читање са сервера: EOF"
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "Не могу се декодовати подаци путем SASL: %s"
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "није могуће кодирати податке уз помоћ SASL: %s"
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr "није могућ упис на сервер: %s"
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr "није могућ упис на сервер: EOF"
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr "није могуће кодирати Base64: %s"
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "не може се покренути SASL библиотека: %s"
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "не може да се добави локална адреса утичнице: %s"
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "не може да се добави удаљена адреса утичнице: %s"
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr "упозорење: није могуће поставити SASL сигурносне поставке %s"
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr "не може се покренути SASL пријава: SASL тражи податке које немамо"
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "не може се покренути SASL пријава: %s"
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "није могуће успоставити SASL везу: %s"
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr "SASL је тражио нама непознате податке, обустављам SASL пријаву"
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, обустављам SASL пријаву"
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "није могуће декодовати Base64 улаз са сервера: %s"
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
msgstr ""
"сервер је започео SASL разговор, али одговор од клијента стигао пре тога"
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
msgstr ""
"сервер није послао SASL разговор, али није било ни одговора од клијента."
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "SASL сигурносни слој нивоа снаге %i је успостављен"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "не могу да прочитам поставку SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "упозорење: не могу да прочитам поставку SASL_SSF: %s"
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr "рекурзивно поништавам %s"
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr "усклађујем GConf базу података"
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr "урађено"
@@ -584,33 +628,33 @@ msgstr ""
"Ваша лозинка на сервису Gmail (ако не упишете лозинку, програм ће Вас "
"замолити да је унесете када то буде потребно)"
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr "libsoup није изграђен са подршком за SSL/TLS"
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, c-format
msgid "unable to parse URI \"%s\""
msgstr "није могуће обрадити URI \"%s\""
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr "не могу да преузмем податке: %s"
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr "пријава у току"
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr "пријава није успела"
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr "тражим нову пошту"
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr "не могу да обрадим податке са сервиса Gmail"
@@ -676,50 +720,50 @@ msgstr "Број порта на IMAP серверу"
msgid "The mailbox name"
msgstr "Име сандучета"
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr "Подршка за SSL/TLS није уграђена"
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr "сервер није обавестио о својим могућностима"
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr "сервер је дојавио LOGINDISABLED, LOGIN пријавa неће бити коришћена"
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr "пријава није могућа"
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
msgid "server did not send search results"
msgstr "сервер није послао резултате претраге"
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
msgid "server did not send all the messages we requested"
msgstr "сервер није послао све тражене поруке"
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
msgid "unable to fetch message"
msgstr "није могуће добавити поруку"
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr "сервер није послао статус"
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr "непозната грешка на серверу"
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr "сервер не подржава заштиту путем SSL/TLS"
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -727,24 +771,28 @@ msgstr ""
"изабран је механизам за пријаву који користи SASL али подршка за SASL није "
"уграђена у програм"
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "непознат механизам за пријаву \"%s\""
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr "повратак на IMAP LOGIN пријаву"
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr "пријава није успела"
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr ""
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr "_Освежи"
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "_Уклони са обавештајне зоне"
@@ -801,7 +849,7 @@ msgstr "Готово"
msgid "Whether the properties are completely filled or not"
msgstr "Да ли су поставке сасвим попуњене или не"
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr "Сандуче"
@@ -827,35 +875,36 @@ msgid "The mailbox human-readable name"
msgstr "Име сандучета"
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
+#, fuzzy
+msgid "Whether the mailbox has to be polled or not"
msgstr "Да ли се ово сандуче ручно проверава или не"
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr "Да ли у сандучету стоји нова пошта или не"
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr "Списак нових и непрочитаних MNMessage објеката"
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr "Грешка у приступу сандучету, ако постоји"
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr "не постоји"
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr "непознат формат"
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr "Није могуће наместити непосредну дојаву нове поште за %s: %s"
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -873,7 +922,7 @@ msgstr[2] ""
"Пошто нема друге могућности, биће проверавани сваких %i секунди (ово кашњење "
"се може променити из прозора са поставкама)"
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -891,7 +940,7 @@ msgstr[2] ""
"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
"се може променити из прозора са поставкама)"
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -909,11 +958,11 @@ msgstr[2] ""
"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
"се може променити из прозора са поставкама)"
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr "Дошло је до грешке при мотрењу"
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
@@ -922,27 +971,27 @@ msgstr ""
"Није могуће наместити непосредну дојаву нове поште за један или више "
"сандучића. %s"
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr ""
"Показује да ли постоји бар једно сандуче које мора да се учестало проверава"
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s није подржан: %s"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr "Сандуче %s има нову пошту"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr "Сандуче %s нема нову пошту"
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr "%s је дојавио грешку: %s"
@@ -1068,23 +1117,23 @@ msgstr "грешка при читању сандучета: %s"
msgid "unable to open mailbox: %s"
msgstr "није могуће отворити сандуче: %s"
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr "Нечитљива порука"
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr "Од"
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr "Тема"
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr "Послато"
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
@@ -1092,7 +1141,7 @@ msgstr[0] "пре %i секунду"
msgstr[1] "пре %i секунде"
msgstr[2] "пре %i секунди"
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
@@ -1100,7 +1149,7 @@ msgstr[0] "пре %i минут"
msgstr[1] "пре %i минута"
msgstr[2] "пре %i минута"
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
@@ -1108,7 +1157,7 @@ msgstr[0] "пре %i сат"
msgstr[1] "пре %i сата"
msgstr[2] "пре %i сати"
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
@@ -1116,7 +1165,7 @@ msgstr[0] "пре %i дан"
msgstr[1] "пре %i дана"
msgstr[2] "пре %i дана"
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1166,15 +1215,15 @@ msgstr "_уграђени SSL/TLS"
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS на посебном порту"
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr "Име или IP број POP3 сервера"
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr "Ваше име на POP3 серверу"
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
@@ -1182,7 +1231,7 @@ msgstr ""
"Ваша лозинка на POP3 серверу (ако не упишете лозинку, програм ће Вас "
"замолити да је унесете када то буде потребно)"
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr "Број порта на POP3 серверу"
@@ -1190,11 +1239,11 @@ msgstr "Број порта на POP3 серверу"
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "параметри за могућност LOGIN-DELAY нису исправно постављени"
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
msgid "unknown error"
msgstr "непозната грешка"
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1202,39 +1251,39 @@ msgstr[0] "тражен је застој при пријави, паузира
msgstr[1] "тражен је застој при пријави, паузирам %i секундe"
msgstr[2] "тражен је застој при пријави, паузирам %i секунди"
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr "сервер не подржава пријаву коришћењем механизма APOP"
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr "прелазим на APOP пријаву"
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr "прелазим на пријаву помоћу имена и лозинке"
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
msgid "top left"
msgstr "горе-лево"
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr "горе-десно"
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr "доле-лево"
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr "доле-десно"
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr "Ниједно сандуче није изабрано."
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
@@ -1242,43 +1291,26 @@ msgstr[0] "Изабрано %i сандуче"
msgstr[1] "Изабрана %i сандучета"
msgstr[2] "Изабрано %i сандучета"
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr "Имате нову пошту."
-#: src/mn-shell.gob:263
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] "Сандуче са новом поштом:\n"
-msgstr[1] "Сандучићи са новом поштом:\n"
-msgstr[2] "Сандучићи са новом поштом:\n"
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
-msgstr "Нема поште."
-
-#: src/mn-shell.gob:270
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] "Ово сандуче има грешку:\n"
-msgstr[1] "Ови сандучићи имају грешку:\n"
-msgstr[2] "Ови сандучићи имају грешку:\n"
-
-#: src/mn-shell.gob:275
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] "Ово сандуче није подржано:\n"
-msgstr[1] "Ови сандучићи нису подржани:\n"
-msgstr[2] "Ови сандучићи нису подржани:\n"
-
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
-msgstr "Дошло је до грешке у командама"
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
+msgstr ""
-#: src/mn-shell.gob:321
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "Није могуће извршити %s: %s"
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr ""
+
+#: src/mn-shell.gob:351
+#, fuzzy
+msgid "Unsupported Mailboxes"
+msgstr "Локално сандуче"
+
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
+msgstr "Сажетак порука"
#: src/mn-soup.c:140
#, c-format
@@ -1377,11 +1409,20 @@ msgstr "Дошло је до кобне грешке у програму за д
msgid "unable to get current time: %s"
msgstr "није могуће добавити тренутно време: %s"
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "неважећа одредница за сигнал „%s‟"
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr "Дошло је до грешке у командама"
+
+#: src/mn-util.c:946
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "Није могуће извршити %s: %s"
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr "*"
@@ -1403,58 +1444,72 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Наредбе</span>"
#: ui/properties.glade.h:4
+#, fuzzy
+msgid "<span weight=\"bold\">Double-click Action</span>"
+msgstr "<span weight=\"bold\">Место</span>"
+
+#: ui/properties.glade.h:5
msgid "<span weight=\"bold\">General</span>"
msgstr "<span weight=\"bold\">Опште</span>"
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Сандучићи</span>"
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Место</span>"
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
msgid "General"
msgstr "Опште"
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
msgid "Hori_zontal offset:"
msgstr "Хори_зонтални помак:"
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
msgid "Mail Notification Properties"
msgstr "Поставке за дојаву"
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
msgid "Mail Summary Popup"
msgstr "Сажетак порука"
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
msgid "Mailboxes"
msgstr "Сандучићи"
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
+msgid "Only display _recent mail"
+msgstr ""
+
+#: ui/properties.glade.h:14
msgid "P_osition:"
msgstr "_Место:"
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:15
msgid "The amount of time to wait before closing the mail summary popup"
msgstr "Пауза пре затварања прозора са сажетком порука"
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:16
msgid "The amount of time to wait between mail checks"
msgstr "Пауза између две узастопне провере"
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
+#, fuzzy
+msgid "The command to run to launch the mail reader"
+msgstr "Наредба која се покреће када је сва пошта прочитана"
+
+#: ui/properties.glade.h:18
msgid "The command to run when all mail is read"
msgstr "Наредба која се покреће када је сва пошта прочитана"
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:19
msgid "The command to run when new mail arrives"
msgstr "Наредба која се покреће када стиже нова пошта"
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
@@ -1462,7 +1517,7 @@ msgstr ""
"Број тачака које треба оставити између леве, одн. десне стране екрана и "
"прозора са сажетком порука"
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
@@ -1470,82 +1525,102 @@ msgstr ""
"Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
"сажетком порука"
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
msgid "When _all mail is read:"
msgstr "Када је с_ва пошта прочитана:"
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr "Када _стигне нова пошта:"
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr "Да ли статусна сличица трепери при грешкама или не"
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
msgid "Whether to automatically close the mail summary popup or not"
msgstr ""
"Да ли треба или не треба аутоматски затворити прозор са сажетком порука"
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr ""
"Да ли треба или не треба приказивати сажетак порука када стигне нова пошта"
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+#, fuzzy
+msgid "Whether to hide previously displayed mail or not"
+msgstr "Да ли у сандучету стоји нова пошта или не"
+
+#: ui/properties.glade.h:28
msgid "Whether to run a command when all mail is read or not"
msgstr "Да ли се покреће или не покреће команда када је сва пошта прочитана"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr "Да ли се покреће команда када стигне пошта или не"
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+#, fuzzy
+msgid "Whether to set a mail reader or not"
+msgstr "Да ли се покреће или не покреће команда када је сва пошта прочитана"
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
msgstr "Да ли покренути дојаву поште када се пријавите на систем"
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr "_Аутоматски затвори после:"
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr "_Трепери при грешкама"
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr "_Пауза између провера:"
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+#, fuzzy
+msgid "_Display the mail summary dialog"
+msgstr "Прикажи прозор са сажетком порука"
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr "Дозволи приказ сажетка порука"
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:38
+#, fuzzy
+msgid "_Mail reader:"
+msgstr "_Сажетак порука"
+
+#: ui/properties.glade.h:39
msgid "_Start Mail Notification on GNOME login"
msgstr "Покрени _дојаву при пријави"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr "_Вертикални помак:"
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr "минута"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr "тачака"
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr "секунди"
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr "Сажетак порука"
-
#: ui/summary-popup.glade.h:1
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr "<span weight=\"bold\">Сажетак порука</span>"
@@ -1586,8 +1661,26 @@ msgstr "_Подеси дојаву поште"
msgid "_Skip configuration"
msgstr "П_рескочи подешавања"
-#~ msgid "Double-clicked command"
-#~ msgstr "Изврши на двоструки клик"
+#~ msgid "The following mailbox has new mail:\n"
+#~ msgid_plural "The following mailboxes have new mail:\n"
+#~ msgstr[0] "Сандуче са новом поштом:\n"
+#~ msgstr[1] "Сандучићи са новом поштом:\n"
+#~ msgstr[2] "Сандучићи са новом поштом:\n"
+
+#~ msgid "You have no new mail."
+#~ msgstr "Нема поште."
+
+#~ msgid "The following mailbox reported an error:\n"
+#~ msgid_plural "The following mailboxes reported an error:\n"
+#~ msgstr[0] "Ово сандуче има грешку:\n"
+#~ msgstr[1] "Ови сандучићи имају грешку:\n"
+#~ msgstr[2] "Ови сандучићи имају грешку:\n"
+
+#~ msgid "The following mailbox is unsupported:\n"
+#~ msgid_plural "The following mailboxes are unsupported:\n"
+#~ msgstr[0] "Ово сандуче није подржано:\n"
+#~ msgstr[1] "Ови сандучићи нису подржани:\n"
+#~ msgstr[2] "Ови сандучићи нису подржани:\n"
#~ msgid "Run a command when the icon is double-clicked"
#~ msgstr "Изврши команду при двоструком клику на икону"
diff --git a/po/sr@Latn.gmo b/po/sr@Latn.gmo
Binary files differ.
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mail-notification 0.7.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"POT-Creation-Date: 2004-10-31 18:42+0100\n"
"PO-Revision-Date: 2004-10-18 20:04+0100\n"
"Last-Translator: Filip Miletić <filmil@gmail.com>\n"
"Language-Team: Serbian (sr) <gnu@prevod.org>\n"
@@ -35,7 +35,7 @@ msgstr "Podesi dojavu prispeća pošte"
#: data/mail-notification-properties.desktop.in.h:2
#: data/mail-notification.desktop.in.h:2
#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:271
+#: src/mn-mail-icon.gob:194 src/mn-main.c:271
msgid "Mail Notification"
msgstr "Dojava pošte"
@@ -64,119 +64,150 @@ msgid "Do not show the immediate notification error dialog"
msgstr "Ne pokazuj prozor sa obaveštenjem o greškama"
#: data/mail-notification.schemas.in.h:6
+#, fuzzy
+msgid "Double-click action"
+msgstr "Izvrši na dvostruki klik"
+
+#: data/mail-notification.schemas.in.h:7
msgid "Enable mail summary popup"
msgstr "Dozvoli prikaz sažetka poruka"
-#: data/mail-notification.schemas.in.h:7
+#: data/mail-notification.schemas.in.h:8
msgid "Fingerprints of trusted X509 certificates"
msgstr "Otisci proverenih X509 sertifikata"
-#: data/mail-notification.schemas.in.h:8
+#: data/mail-notification.schemas.in.h:9
msgid "Has already been run"
msgstr "Već je pokrenut"
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
msgid "Height of mail summary dialog"
msgstr "Visina prozora sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
msgid "Height of properties dialog"
msgstr "Visina prozora sa postavkama"
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
msgid "Mail read command"
msgstr "Komanda za čitanje pošte"
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
+#, fuzzy
+msgid "Mail reader command"
+msgstr "Komanda za čitanje pošte"
+
+#: data/mail-notification.schemas.in.h:14
msgid "Mail summary popup horizontal offset"
msgstr "Pomeraj horizontalnih tačaka za prozor sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:15
msgid "Mail summary popup position"
msgstr "Broj horizontalnih tačaka za prozor sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:16
msgid "Mail summary popup vertical offset"
msgstr "Pomeraj vertikalnih tačaka ѕa prozor sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:17
msgid "Mailbox list"
msgstr "Spisak sandučića"
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:18
msgid "Minutes between mail checks"
msgstr "Minuta između dve provere"
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
msgid "Minutes to wait before closing the mail summary popup"
msgstr ""
"Broj minuta koji treba da protekne pre zatvaranja prozora sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
msgid "New mail command"
msgstr "Izvrši kada pošta stigne"
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
+#, fuzzy
+msgid "Only display recent mail in mail summary popup"
+msgstr "Zatvori prozor sa sažetkom poruka"
+
+#: data/mail-notification.schemas.in.h:22
msgid "Run a command when all mail is read"
msgstr "Pokreni komandu kada je sva pošta pročitana"
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:23
msgid "Run a command when new mail arrives"
msgstr "Pokreni komandu kada stigne nova pošta"
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:24
msgid "Seconds between mail checks"
msgstr "Sekundi između dve provere"
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:25
msgid "Seconds to wait before closing the mail summary popup"
msgstr "Broj sekundi koji treba da protekne pre zatvaranja sažetka poruka"
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:26
+#, fuzzy
+msgid "Set a mail reader"
+msgstr "Izaberite datoteku ili direktorijum"
+
+#: data/mail-notification.schemas.in.h:27
+msgid ""
+"The action to perform when the icon is double-clicked. Must be \"display-"
+"mail-summary\" or \"launch-mail-reader\"."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:28
msgid ""
"The amount of time to wait before closing the mail summary popup (minutes "
"part)."
msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (minuti)."
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:29
msgid ""
"The amount of time to wait before closing the mail summary popup (seconds "
"part)."
msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (sekunde)."
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:30
+#, fuzzy
+msgid "The command to run to launch the mail reader."
+msgstr "Komanda koju treba pokrenuti kada je sva pošta pročitana."
+
+#: data/mail-notification.schemas.in.h:31
msgid "The command to run when all mail is read."
msgstr "Komanda koju treba pokrenuti kada je sva pošta pročitana."
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:32
msgid "The command to run when new mail arrives."
msgstr "Pokreni ovu komandu kada stigne nova pošta."
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:33
msgid "The height of the mail summary dialog in pixels."
msgstr "Visina prozora sa sažetkom poruka izražena u tačkama."
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:34
msgid "The height of the properties dialog in pixels."
msgstr "Visina prozora sa postavkama izražena u tačkama."
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:35
msgid "The list of mailboxes to monitor."
msgstr "Spisak sandučića koji se prate."
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:36
msgid ""
"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
"certificate."
msgstr ""
"Spisak proverenih SSL/TLS servera (računar:port) koji nemaju X509 sertifikat."
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:37
msgid ""
"The list of trusted X509 certificates, represented by their MD5 fingerprint."
msgstr "Spisak proverenih X509 sertifikata, predstavljenih MD5 otiskom."
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:38
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup."
@@ -184,7 +215,7 @@ msgstr ""
"Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
"prozora sa sažetkom poruka."
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:39
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup."
@@ -192,7 +223,7 @@ msgstr ""
"Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
"sažetkom poruka."
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:40
msgid ""
"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
"\"bottom-left\" or \"bottom-right\"."
@@ -200,55 +231,68 @@ msgstr ""
"Položaj prozora sa sažetkom poruka. Može biti: „gore-levo‟, „gore-desno‟, "
"„dole-levo‟ ili „dole-desno‟."
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:41
msgid "The width of the mail summary dialog in pixels."
msgstr "Širina prozora sa sažetkom poruka izražena u tačkama."
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:42
msgid "The width of the properties dialog in pixels."
msgstr "Širina prozora sa postavkama izražena u tačkama."
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:43
msgid "Trusted servers list"
msgstr "Spisak proverenih servera"
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:44
msgid "Whether Mail Notification has already been run or not."
msgstr "Da li je program pokretan pre ili nije."
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:45
msgid "Whether the status icon should blink on errors or not."
msgstr "Da li sličica treba da treperi ako dođe do greške ili ne."
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:46
msgid "Whether to automatically close the mail summary popup or not."
msgstr ""
"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom pošte."
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:47
msgid "Whether to display the mail summary popup when new mail arrives or not."
msgstr "Da li treba prikazati sažetak poruka kada stigne nova pošta."
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:48
+#, fuzzy
+msgid ""
+"Whether to hide previously displayed mail in the mail summary popup or not."
+msgstr ""
+"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom pošte."
+
+#: data/mail-notification.schemas.in.h:49
msgid ""
"Whether to prevent the immediate notification error dialog from being "
"displayed or not."
msgstr "Da li treba ili ne treba sprečiti pojavu prozora sa opisom grešaka."
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:50
msgid "Whether to run a command when all mail is read or not."
msgstr ""
"Da li treba ili ne treba pokrenuti neku komandu kada je sva pošta pročitana."
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:51
msgid "Whether to run a command when new mail arrives or not."
msgstr "Da li treba pokrenuti neku komandu kada stigne nova pošta."
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:52
+#, fuzzy
+msgid "Whether to set a mail reader or not."
+msgstr ""
+"Da li treba ili ne treba pokrenuti neku komandu kada je sva pošta pročitana."
+
+#: data/mail-notification.schemas.in.h:53
msgid "Width of mail summary dialog"
msgstr "Širina prozora sa sažetkom poruka"
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:54
msgid "Width of properties dialog"
msgstr "Širina prozora sa postavkama"
@@ -446,129 +490,129 @@ msgstr "odgovor \"%s\" nije ispravan u trenutno važećem kontekstu"
msgid "unable to parse response \"%s\""
msgstr "nije moguće obraditi odgovor \"%s\""
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: src/mn-client-session.c:601 src/mn-client-session.c:608
#, c-format
msgid "unable to read from server: %s"
msgstr "Nije moguće čitanje sa servera: %s"
-#: src/mn-client-session.c:597
+#: src/mn-client-session.c:606
msgid "unable to read from server: EOF"
msgstr "Nije moguće čitanje sa servera: EOF"
-#: src/mn-client-session.c:609
+#: src/mn-client-session.c:618
#, c-format
msgid "unable to decode data using SASL: %s"
msgstr "Ne mogu se dekodovati podaci putem SASL: %s"
-#: src/mn-client-session.c:746
+#: src/mn-client-session.c:755
#, c-format
msgid "unable to encode data using SASL: %s"
msgstr "nije moguće kodirati podatke uz pomoć SASL: %s"
-#: src/mn-client-session.c:777 src/mn-client-session.c:784
+#: src/mn-client-session.c:786 src/mn-client-session.c:793
#, c-format
msgid "unable to write to server: %s"
msgstr "nije moguć upis na server: %s"
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:791
msgid "unable to write to server: EOF"
msgstr "nije moguć upis na server: EOF"
-#: src/mn-client-session.c:814
+#: src/mn-client-session.c:823
#, c-format
msgid "unable to encode Base64: %s"
msgstr "nije moguće kodirati Base64: %s"
-#: src/mn-client-session.c:917
+#: src/mn-client-session.c:927
#, c-format
msgid "unable to initialize the SASL library: %s"
msgstr "ne može se pokrenuti SASL biblioteka: %s"
-#: src/mn-client-session.c:926
+#: src/mn-client-session.c:936
#, c-format
msgid "unable to retrieve local address of socket: %s"
msgstr "ne može da se dobavi lokalna adresa utičnice: %s"
-#: src/mn-client-session.c:932
+#: src/mn-client-session.c:942
#, c-format
msgid "unable to retrieve remote address of socket: %s"
msgstr "ne može da se dobavi udaljena adresa utičnice: %s"
-#: src/mn-client-session.c:966
+#: src/mn-client-session.c:976
#, c-format
msgid "warning: unable to set SASL security properties: %s"
msgstr "upozorenje: nije moguće postaviti SASL sigurnosne postavke %s"
-#: src/mn-client-session.c:1005
+#: src/mn-client-session.c:1015
msgid ""
"unable to start SASL authentication: SASL asked for something we did not know"
msgstr "ne može se pokrenuti SASL prijava: SASL traži podatke koje nemamo"
-#: src/mn-client-session.c:1009
+#: src/mn-client-session.c:1019
#, c-format
msgid "unable to start SASL authentication: %s"
msgstr "ne može se pokrenuti SASL prijava: %s"
-#: src/mn-client-session.c:1013
+#: src/mn-client-session.c:1023
#, c-format
msgid "unable to create a SASL connection: %s"
msgstr "nije moguće uspostaviti SASL vezu: %s"
-#: src/mn-client-session.c:1063
+#: src/mn-client-session.c:1073
msgid "SASL asked for something we did not know, aborting SASL authentication"
msgstr "SASL je tražio nama nepoznate podatke, obustavljam SASL prijavu"
-#: src/mn-client-session.c:1067
+#: src/mn-client-session.c:1077
#, c-format
msgid "%s, aborting SASL authentication"
msgstr "%s, obustavljam SASL prijavu"
#. compliance error
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1082
#, c-format
msgid "unable to decode Base64 input from server: %s"
msgstr "nije moguće dekodovati Base64 ulaz sa servera: %s"
-#: src/mn-client-session.c:1075
+#: src/mn-client-session.c:1085
msgid ""
"the server sent a SASL challenge, but there was a pending initial SASL "
"client response"
msgstr ""
"server je započeo SASL razgovor, ali odgovor od klijenta stigao pre toga"
-#: src/mn-client-session.c:1089
+#: src/mn-client-session.c:1099
msgid ""
"the server did not send a SASL challenge, but there was no pending initial "
"SASL client response"
msgstr ""
"server nije poslao SASL razgovor, ali nije bilo ni odgovora od klijenta."
-#: src/mn-client-session.c:1112
+#: src/mn-client-session.c:1122
#, c-format
msgid "a SASL security layer of strength factor %i is now active"
msgstr "SASL sigurnosni sloj nivoa snage %i je uspostavljen"
#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1117
+#: src/mn-client-session.c:1127
#, c-format
msgid "unable to get SASL_MAXOUTBUF property: %s"
msgstr "ne mogu da pročitam postavku SASL_MAXOUTBUF: %s"
-#: src/mn-client-session.c:1123
+#: src/mn-client-session.c:1133
#, c-format
msgid "warning: unable to get SASL_SSF property: %s"
msgstr "upozorenje: ne mogu da pročitam postavku SASL_SSF: %s"
-#: src/mn-conf.c:123
+#: src/mn-conf.c:136
#, c-format
msgid "recursively unsetting %s"
msgstr "rekurzivno poništavam %s"
-#: src/mn-conf.c:127
+#: src/mn-conf.c:140
msgid "syncing the GConf database"
msgstr "usklađujem GConf bazu podataka"
-#: src/mn-conf.c:130
+#: src/mn-conf.c:143
msgid "completed"
msgstr "urađeno"
@@ -584,33 +628,33 @@ msgstr ""
"Vaša lozinka na servisu Gmail (ako ne upišete lozinku, program će Vas "
"zamoliti da je unesete kada to bude potrebno)"
-#: src/mn-gmail-mailbox.gob:63
+#: src/mn-gmail-mailbox.gob:81
msgid "libsoup has not been compiled with SSL/TLS support"
msgstr "libsoup nije izgrađen sa podrškom za SSL/TLS"
-#: src/mn-gmail-mailbox.gob:105
+#: src/mn-gmail-mailbox.gob:123
#, c-format
msgid "unable to parse URI \"%s\""
msgstr "nije moguće obraditi URI \"%s\""
-#: src/mn-gmail-mailbox.gob:159
+#: src/mn-gmail-mailbox.gob:177
#, c-format
msgid "unable to transfer data: %s"
msgstr "ne mogu da preuzmem podatke: %s"
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:298
msgid "logging in"
msgstr "prijava u toku"
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:376
msgid "login failed"
msgstr "prijava nije uspela"
-#: src/mn-gmail-mailbox.gob:433
+#: src/mn-gmail-mailbox.gob:451
msgid "searching for unread mail"
msgstr "tražim novu poštu"
-#: src/mn-gmail-mailbox.gob:529
+#: src/mn-gmail-mailbox.gob:490
msgid "unable to parse Gmail data"
msgstr "ne mogu da obradim podatke sa servisa Gmail"
@@ -676,50 +720,50 @@ msgstr "Broj porta na IMAP serveru"
msgid "The mailbox name"
msgstr "Ime sandučeta"
-#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
+#: src/mn-imap-mailbox.gob:164 src/mn-pop3-mailbox.gob:142
msgid "SSL/TLS support has not been compiled in"
msgstr "Podrška za SSL/TLS nije ugrađena"
-#: src/mn-imap-mailbox.gob:204
+#: src/mn-imap-mailbox.gob:253
msgid "server did not send capabilities"
msgstr "server nije obavestio o svojim mogućnostima"
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:374
msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
msgstr "server je dojavio LOGINDISABLED, LOGIN prijava neće biti korišćena"
-#: src/mn-imap-mailbox.gob:320
+#: src/mn-imap-mailbox.gob:375
msgid "unable to login"
msgstr "prijava nije moguća"
#. compliance error
-#: src/mn-imap-mailbox.gob:451
+#: src/mn-imap-mailbox.gob:516
msgid "server did not send search results"
msgstr "server nije poslao rezultate pretrage"
#. compliance error
-#: src/mn-imap-mailbox.gob:527
+#: src/mn-imap-mailbox.gob:596
msgid "server did not send all the messages we requested"
msgstr "server nije poslao sve tražene poruke"
-#: src/mn-imap-mailbox.gob:574
+#: src/mn-imap-mailbox.gob:645
msgid "unable to fetch message"
msgstr "nije moguće dobaviti poruku"
#. compliance error
-#: src/mn-imap-mailbox.gob:621
+#: src/mn-imap-mailbox.gob:763
msgid "server did not send status"
msgstr "server nije poslao status"
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
+#: src/mn-imap-mailbox.gob:1035 src/mn-pop3-mailbox.gob:922
msgid "unknown server error"
msgstr "nepoznata greška na serveru"
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
+#: src/mn-imap-mailbox.gob:1106 src/mn-pop3-mailbox.gob:226
msgid "server does not support in-band SSL/TLS"
msgstr "server ne podržava zaštitu putem SSL/TLS"
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
+#: src/mn-imap-mailbox.gob:1125 src/mn-pop3-mailbox.gob:841
msgid ""
"a SASL authentication mechanism was selected but SASL support has not been "
"compiled in"
@@ -727,24 +771,28 @@ msgstr ""
"izabran je mehanizam za prijavu koji koristi SASL ali podrška za SASL nije "
"ugrađena u program"
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
+#: src/mn-imap-mailbox.gob:1133 src/mn-pop3-mailbox.gob:853
#, c-format
msgid "unknown authentication mechanism \"%s\""
msgstr "nepoznat mehanizam za prijavu \"%s\""
-#: src/mn-imap-mailbox.gob:972
+#: src/mn-imap-mailbox.gob:1151
msgid "falling back to IMAP LOGIN authentication"
msgstr "povratak na IMAP LOGIN prijavu"
-#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
+#: src/mn-imap-mailbox.gob:1156 src/mn-pop3-mailbox.gob:888
msgid "authentication failed"
msgstr "prijava nije uspela"
-#: src/mn-mail-icon.gob:84 ui/summary-dialog.glade.h:2
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr ""
+
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
msgid "_Update"
msgstr "_Osveži"
-#: src/mn-mail-icon.gob:90
+#: src/mn-mail-icon.gob:99
msgid "R_emove From Notification Area"
msgstr "_Ukloni sa obaveštajne zone"
@@ -801,7 +849,7 @@ msgstr "Gotovo"
msgid "Whether the properties are completely filled or not"
msgstr "Da li su postavke sasvim popunjene ili ne"
-#: src/mn-mailbox-view.gob:263 src/mn-message-label.gob:74
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:58
msgid "Mailbox"
msgstr "Sanduče"
@@ -827,35 +875,36 @@ msgid "The mailbox human-readable name"
msgstr "Ime sandučeta"
#: src/mn-mailbox.gob:145
-msgid "Whether the mailbox has to be manually checked or not"
+#, fuzzy
+msgid "Whether the mailbox has to be polled or not"
msgstr "Da li se ovo sanduče ručno proverava ili ne"
-#: src/mn-mailbox.gob:150
+#: src/mn-mailbox.gob:151
msgid "Whether the mailbox has new mail or not"
msgstr "Da li u sandučetu stoji nova pošta ili ne"
-#: src/mn-mailbox.gob:155
+#: src/mn-mailbox.gob:156
msgid "The list of new and unread MNMessage objects"
msgstr "Spisak novih i nepročitanih MNMessage objekata"
-#: src/mn-mailbox.gob:209
+#: src/mn-mailbox.gob:210
msgid "The mailbox error, if any"
msgstr "Greška u pristupu sandučetu, ako postoji"
-#: src/mn-mailbox.gob:308
+#: src/mn-mailbox.gob:309
msgid "does not exist"
msgstr "ne postoji"
-#: src/mn-mailbox.gob:340
+#: src/mn-mailbox.gob:341
msgid "unknown format"
msgstr "nepoznat format"
-#: src/mn-mailbox.gob:406
+#: src/mn-mailbox.gob:407
#, c-format
msgid "unable to enable immediate notification for %s: %s"
msgstr "Nije moguće namestiti neposrednu dojavu nove pošte za %s: %s"
-#: src/mn-mailbox.gob:424
+#: src/mn-mailbox.gob:425
#, c-format
msgid ""
"As a fallback, they will be checked every %i second (this delay is "
@@ -873,7 +922,7 @@ msgstr[2] ""
"Pošto nema druge mogućnosti, biće proveravani svakih %i sekundi (ovo "
"kašnjenje se može promeniti iz prozora sa postavkama)"
-#: src/mn-mailbox.gob:435
+#: src/mn-mailbox.gob:436
#, c-format
msgid ""
"As a fallback, they will be checked every %i minute (this delay is "
@@ -891,7 +940,7 @@ msgstr[2] ""
"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo "
"kašnjenje se može promeniti iz prozora sa postavkama)"
-#: src/mn-mailbox.gob:446
+#: src/mn-mailbox.gob:447
#, c-format
msgid ""
"As a fallback, they will be checked approximately every %i minute (this "
@@ -909,11 +958,11 @@ msgstr[2] ""
"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo "
"kašnjenje se može promeniti iz prozora sa postavkama)"
-#: src/mn-mailbox.gob:462
+#: src/mn-mailbox.gob:463
msgid "A monitoring error has occurred"
msgstr "Došlo je do greške pri motrenju"
-#: src/mn-mailbox.gob:463
+#: src/mn-mailbox.gob:464
#, c-format
msgid ""
"Mail Notification was unable to enable immediate notification for one or "
@@ -922,27 +971,27 @@ msgstr ""
"Nije moguće namestiti neposrednu dojavu nove pošte za jedan ili više "
"sandučića. %s"
-#: src/mn-mailboxes.gob:143
+#: src/mn-mailboxes.gob:142
msgid "Whether one or more of the mailboxes has to be polled"
msgstr ""
"Pokazuje da li postoji bar jedno sanduče koje mora da se učestalo proverava"
-#: src/mn-mailboxes.gob:276
+#: src/mn-mailboxes.gob:272
#, c-format
msgid "%s is unsupported: %s"
msgstr "%s nije podržan: %s"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has new mail"
msgstr "Sanduče %s ima novu poštu"
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:304
#, c-format
msgid "%s has no new mail"
msgstr "Sanduče %s nema novu poštu"
-#: src/mn-mailboxes.gob:333
+#: src/mn-mailboxes.gob:330
#, c-format
msgid "%s reported an error: %s"
msgstr "%s je dojavio grešku: %s"
@@ -1068,23 +1117,23 @@ msgstr "greška pri čitanju sandučeta: %s"
msgid "unable to open mailbox: %s"
msgstr "nije moguće otvoriti sanduče: %s"
-#: src/mn-message-label.gob:77
+#: src/mn-message-box.gob:61
msgid "Unreadable message"
msgstr "Nečitljiva poruka"
-#: src/mn-message-label.gob:97
+#: src/mn-message-box.gob:66
msgid "From"
msgstr "Od"
-#: src/mn-message-label.gob:98
+#: src/mn-message-box.gob:67
msgid "Subject"
msgstr "Tema"
-#: src/mn-message-label.gob:102
+#: src/mn-message-box.gob:72
msgid "Sent"
msgstr "Poslato"
-#: src/mn-message-label.gob:151
+#: src/mn-message-box.gob:184
#, c-format
msgid "%i second ago"
msgid_plural "%i seconds ago"
@@ -1092,7 +1141,7 @@ msgstr[0] "pre %i sekundu"
msgstr[1] "pre %i sekunde"
msgstr[2] "pre %i sekundi"
-#: src/mn-message-label.gob:155
+#: src/mn-message-box.gob:188
#, c-format
msgid "%i minute ago"
msgid_plural "%i minutes ago"
@@ -1100,7 +1149,7 @@ msgstr[0] "pre %i minut"
msgstr[1] "pre %i minuta"
msgstr[2] "pre %i minuta"
-#: src/mn-message-label.gob:160
+#: src/mn-message-box.gob:193
#, c-format
msgid "%i hour ago"
msgid_plural "%i hours ago"
@@ -1108,7 +1157,7 @@ msgstr[0] "pre %i sat"
msgstr[1] "pre %i sata"
msgstr[2] "pre %i sati"
-#: src/mn-message-label.gob:165
+#: src/mn-message-box.gob:198
#, c-format
msgid "%i day ago"
msgid_plural "%i days ago"
@@ -1116,7 +1165,7 @@ msgstr[0] "pre %i dan"
msgstr[1] "pre %i dana"
msgstr[2] "pre %i dana"
-#: src/mn-message-label.gob:170
+#: src/mn-message-box.gob:203
#, c-format
msgid "%i week ago"
msgid_plural "%i weeks ago"
@@ -1166,15 +1215,15 @@ msgstr "_ugrađeni SSL/TLS"
msgid "SSL/TLS on sepa_rate port"
msgstr "SSL/TLS na posebnom portu"
-#: src/mn-pop3-mailbox-properties.gob:85
+#: src/mn-pop3-mailbox-properties.gob:86
msgid "The hostname or IP address of the POP3 server"
msgstr "Ime ili IP broj POP3 servera"
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:87
msgid "Your username on the POP3 server"
msgstr "Vaše ime na POP3 serveru"
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:88
msgid ""
"Your password on the POP3 server (if left blank, you will be prompted for "
"the password when needed)"
@@ -1182,7 +1231,7 @@ msgstr ""
"Vaša lozinka na POP3 serveru (ako ne upišete lozinku, program će Vas "
"zamoliti da je unesete kada to bude potrebno)"
-#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
+#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
msgid "The port number of the POP3 server"
msgstr "Broj porta na POP3 serveru"
@@ -1190,11 +1239,11 @@ msgstr "Broj porta na POP3 serveru"
msgid "invalid arguments for the LOGIN-DELAY capability"
msgstr "parametri za mogućnost LOGIN-DELAY nisu ispravno postavljeni"
-#: src/mn-pop3-mailbox.gob:549
+#: src/mn-pop3-mailbox.gob:556
msgid "unknown error"
msgstr "nepoznata greška"
-#: src/mn-pop3-mailbox.gob:681
+#: src/mn-pop3-mailbox.gob:690
#, c-format
msgid "honouring LOGIN-DELAY, sleeping for %i second"
msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1202,39 +1251,39 @@ msgstr[0] "tražen je zastoj pri prijavi, pauziram %i sekundu"
msgstr[1] "tražen je zastoj pri prijavi, pauziram %i sekunde"
msgstr[2] "tražen je zastoj pri prijavi, pauziram %i sekundi"
-#: src/mn-pop3-mailbox.gob:840
+#: src/mn-pop3-mailbox.gob:849
msgid "server does not support APOP authentication"
msgstr "server ne podržava prijavu korišćenjem mehanizma APOP"
-#: src/mn-pop3-mailbox.gob:868
+#: src/mn-pop3-mailbox.gob:877
msgid "falling back to APOP authentication"
msgstr "prelazim na APOP prijavu"
-#: src/mn-pop3-mailbox.gob:873
+#: src/mn-pop3-mailbox.gob:882
msgid "falling back to USER/PASS authentication"
msgstr "prelazim na prijavu pomoću imena i lozinke"
-#: src/mn-properties.c:170
+#: src/mn-properties.c:181
msgid "top left"
msgstr "gore-levo"
-#: src/mn-properties.c:171
+#: src/mn-properties.c:182
msgid "top right"
msgstr "gore-desno"
-#: src/mn-properties.c:172
+#: src/mn-properties.c:183
msgid "bottom left"
msgstr "dole-levo"
-#: src/mn-properties.c:173
+#: src/mn-properties.c:184
msgid "bottom right"
msgstr "dole-desno"
-#: src/mn-properties.c:251
+#: src/mn-properties.c:270
msgid "No mailbox selected."
msgstr "Nijedno sanduče nije izabrano."
-#: src/mn-properties.c:256
+#: src/mn-properties.c:275
#, c-format
msgid "%i mailbox selected."
msgid_plural "%i mailboxes selected."
@@ -1242,43 +1291,26 @@ msgstr[0] "Izabrano %i sanduče"
msgstr[1] "Izabrana %i sandučeta"
msgstr[2] "Izabrano %i sandučeta"
-#: src/mn-shell.gob:86
+#: src/mn-shell.gob:92
msgid "You have new mail."
msgstr "Imate novu poštu."
-#: src/mn-shell.gob:263
-msgid "The following mailbox has new mail:\n"
-msgid_plural "The following mailboxes have new mail:\n"
-msgstr[0] "Sanduče sa novom poštom:\n"
-msgstr[1] "Sandučići sa novom poštom:\n"
-msgstr[2] "Sandučići sa novom poštom:\n"
-
-#: src/mn-shell.gob:267
-msgid "You have no new mail."
-msgstr "Nema pošte."
-
-#: src/mn-shell.gob:270
-msgid "The following mailbox reported an error:\n"
-msgid_plural "The following mailboxes reported an error:\n"
-msgstr[0] "Ovo sanduče ima grešku:\n"
-msgstr[1] "Ovi sandučići imaju grešku:\n"
-msgstr[2] "Ovi sandučići imaju grešku:\n"
-
-#: src/mn-shell.gob:275
-msgid "The following mailbox is unsupported:\n"
-msgid_plural "The following mailboxes are unsupported:\n"
-msgstr[0] "Ovo sanduče nije podržano:\n"
-msgstr[1] "Ovi sandučići nisu podržani:\n"
-msgstr[2] "Ovi sandučići nisu podržani:\n"
-
-#: src/mn-shell.gob:320
-msgid "A command error has occurred in Mail Notification"
-msgstr "Došlo je do greške u komandama"
+#: src/mn-shell.gob:347
+msgid "Mailboxes Having New Mail"
+msgstr ""
-#: src/mn-shell.gob:321
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "Nije moguće izvršiti %s: %s"
+#: src/mn-shell.gob:349
+msgid "Errors"
+msgstr ""
+
+#: src/mn-shell.gob:351
+#, fuzzy
+msgid "Unsupported Mailboxes"
+msgstr "Lokalno sanduče"
+
+#: src/mn-shell.gob:364 ui/summary-dialog.glade.h:1
+msgid "Mail Summary"
+msgstr "Sažetak poruka"
#: src/mn-soup.c:140
#, c-format
@@ -1377,11 +1409,20 @@ msgstr "Došlo je do kobne greške u programu za dojavu pošte"
msgid "unable to get current time: %s"
msgstr "nije moguće dobaviti trenutno vreme: %s"
-#: src/mn-util.c:887
+#: src/mn-util.c:906
#, c-format
msgid "invalid signal specification \"%s\""
msgstr "nevažeća odrednica za signal „%s‟"
+#: src/mn-util.c:945
+msgid "A command error has occurred in Mail Notification"
+msgstr "Došlo je do greške u komandama"
+
+#: src/mn-util.c:946
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "Nije moguće izvršiti %s: %s"
+
#: ui/authentication.glade.h:1 ui/properties.glade.h:2
msgid "*"
msgstr "*"
@@ -1403,58 +1444,72 @@ msgid "<span weight=\"bold\">Commands</span>"
msgstr "<span weight=\"bold\">Naredbe</span>"
#: ui/properties.glade.h:4
+#, fuzzy
+msgid "<span weight=\"bold\">Double-click Action</span>"
+msgstr "<span weight=\"bold\">Mesto</span>"
+
+#: ui/properties.glade.h:5
msgid "<span weight=\"bold\">General</span>"
msgstr "<span weight=\"bold\">Opšte</span>"
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
msgid "<span weight=\"bold\">Mailbox List</span>"
msgstr "<span weight=\"bold\">Sandučići</span>"
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
msgid "<span weight=\"bold\">Position</span>"
msgstr "<span weight=\"bold\">Mesto</span>"
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
msgid "General"
msgstr "Opšte"
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
msgid "Hori_zontal offset:"
msgstr "Hori_zontalni pomak:"
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
msgid "Mail Notification Properties"
msgstr "Postavke za dojavu"
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
msgid "Mail Summary Popup"
msgstr "Sažetak poruka"
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
msgid "Mailboxes"
msgstr "Sandučići"
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
+msgid "Only display _recent mail"
+msgstr ""
+
+#: ui/properties.glade.h:14
msgid "P_osition:"
msgstr "_Mesto:"
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:15
msgid "The amount of time to wait before closing the mail summary popup"
msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka"
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:16
msgid "The amount of time to wait between mail checks"
msgstr "Pauza između dve uzastopne provere"
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
+#, fuzzy
+msgid "The command to run to launch the mail reader"
+msgstr "Naredba koja se pokreće kada je sva pošta pročitana"
+
+#: ui/properties.glade.h:18
msgid "The command to run when all mail is read"
msgstr "Naredba koja se pokreće kada je sva pošta pročitana"
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:19
msgid "The command to run when new mail arrives"
msgstr "Naredba koja se pokreće kada stiže nova pošta"
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:20
msgid ""
"The number of pixels to leave between the left or right side of the screen "
"and the mail summary popup"
@@ -1462,7 +1517,7 @@ msgstr ""
"Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
"prozora sa sažetkom poruka"
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:21
msgid ""
"The number of pixels to leave between the top or bottom side of the screen "
"and the mail summary popup"
@@ -1470,82 +1525,102 @@ msgstr ""
"Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
"sažetkom poruka"
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:22
msgid "When _all mail is read:"
msgstr "Kada je s_va pošta pročitana:"
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:23
msgid "When _new mail arrives:"
msgstr "Kada _stigne nova pošta:"
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:24
msgid "Whether the status icon should blink on errors or not"
msgstr "Da li statusna sličica treperi pri greškama ili ne"
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:25
msgid "Whether to automatically close the mail summary popup or not"
msgstr ""
"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom poruka"
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:26
msgid "Whether to display the mail summary popup when new mail arrives or not"
msgstr ""
"Da li treba ili ne treba prikazivati sažetak poruka kada stigne nova pošta"
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:27
+#, fuzzy
+msgid "Whether to hide previously displayed mail or not"
+msgstr "Da li u sandučetu stoji nova pošta ili ne"
+
+#: ui/properties.glade.h:28
msgid "Whether to run a command when all mail is read or not"
msgstr "Da li se pokreće ili ne pokreće komanda kada je sva pošta pročitana"
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:29
msgid "Whether to run a command when new mail arrives or not"
msgstr "Da li se pokreće komanda kada stigne pošta ili ne"
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:30
+#, fuzzy
+msgid "Whether to set a mail reader or not"
+msgstr "Da li se pokreće ili ne pokreće komanda kada je sva pošta pročitana"
+
+#: ui/properties.glade.h:31
msgid ""
"Whether to start Mail Notification when you log into your GNOME session or "
"not"
msgstr "Da li pokrenuti dojavu pošte kada se prijavite na sistem"
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:32
msgid "_Automatically close after:"
msgstr "_Automatski zatvori posle:"
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:33
msgid "_Blink on errors"
msgstr "_Treperi pri greškama"
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:34
msgid "_Delay between mail checks:"
msgstr "_Pauza između provera:"
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:35
+#, fuzzy
+msgid "_Display the mail summary dialog"
+msgstr "Prikaži prozor sa sažetkom poruka"
+
+#: ui/properties.glade.h:36
msgid "_Enable mail summary popup"
msgstr "Dozvoli prikaz sažetka poruka"
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:37
+msgid "_Launch the mail reader"
+msgstr ""
+
+#: ui/properties.glade.h:38
+#, fuzzy
+msgid "_Mail reader:"
+msgstr "_Sažetak poruka"
+
+#: ui/properties.glade.h:39
msgid "_Start Mail Notification on GNOME login"
msgstr "Pokreni _dojavu pri prijavi"
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:40
msgid "_Vertical offset:"
msgstr "_Vertikalni pomak:"
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:41
msgid "minutes"
msgstr "minuta"
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:42
msgid "pixels"
msgstr "tačaka"
-#: ui/properties.glade.h:35
+#: ui/properties.glade.h:43
msgid "seconds"
msgstr "sekundi"
-#: ui/summary-dialog.glade.h:1
-msgid "Mail Summary"
-msgstr "Sažetak poruka"
-
#: ui/summary-popup.glade.h:1
msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
msgstr "<span weight=\"bold\">Sažetak poruka</span>"
@@ -1586,8 +1661,26 @@ msgstr "_Podesi dojavu pošte"
msgid "_Skip configuration"
msgstr "P_reskoči podešavanja"
-#~ msgid "Double-clicked command"
-#~ msgstr "Izvrši na dvostruki klik"
+#~ msgid "The following mailbox has new mail:\n"
+#~ msgid_plural "The following mailboxes have new mail:\n"
+#~ msgstr[0] "Sanduče sa novom poštom:\n"
+#~ msgstr[1] "Sandučići sa novom poštom:\n"
+#~ msgstr[2] "Sandučići sa novom poštom:\n"
+
+#~ msgid "You have no new mail."
+#~ msgstr "Nema pošte."
+
+#~ msgid "The following mailbox reported an error:\n"
+#~ msgid_plural "The following mailboxes reported an error:\n"
+#~ msgstr[0] "Ovo sanduče ima grešku:\n"
+#~ msgstr[1] "Ovi sandučići imaju grešku:\n"
+#~ msgstr[2] "Ovi sandučići imaju grešku:\n"
+
+#~ msgid "The following mailbox is unsupported:\n"
+#~ msgid_plural "The following mailboxes are unsupported:\n"
+#~ msgstr[0] "Ovo sanduče nije podržano:\n"
+#~ msgstr[1] "Ovi sandučići nisu podržani:\n"
+#~ msgstr[2] "Ovi sandučići nisu podržani:\n"
#~ msgid "Run a command when the icon is double-clicked"
#~ msgstr "Izvrši komandu pri dvostrukom kliku na ikonu"
diff --git a/src/Makefile.am b/src/Makefile.am
@@ -148,11 +148,12 @@ gob_sources = \
mn-mailbox-view.gob \
mn-mailbox.gob \
mn-mailboxes.gob \
- mn-message-label.gob \
+ mn-message-box.gob \
mn-message.gob \
mn-pending-mailbox.gob \
mn-shell.gob \
mn-system-mailbox-properties.gob \
+ mn-tooltips.gob \
mn-unsupported-mailbox.gob \
mn-uri.gob
gob_built_sources = \
@@ -190,9 +191,9 @@ gob_built_sources = \
mn-mailboxes-private.h \
mn-mailboxes.c \
mn-mailboxes.h \
- mn-message-label-private.h \
- mn-message-label.c \
- mn-message-label.h \
+ mn-message-box-private.h \
+ mn-message-box.c \
+ mn-message-box.h \
mn-message-private.h \
mn-message.c \
mn-message.h \
@@ -205,6 +206,9 @@ gob_built_sources = \
mn-system-mailbox-properties-private.h \
mn-system-mailbox-properties.c \
mn-system-mailbox-properties.h \
+ mn-tooltips-private.h \
+ mn-tooltips.c \
+ mn-tooltips.h \
mn-unsupported-mailbox-private.h \
mn-unsupported-mailbox.c \
mn-unsupported-mailbox.h \
diff --git a/src/Makefile.in b/src/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -40,9 +40,9 @@ bin_PROGRAMS = mail-notification$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -61,14 +61,14 @@ am__mail_notification_SOURCES_DIST = MNAutomation.idl \
mn-gmime-stream-vfs.gob mn-about-dialog.gob \
mn-autodetect-mailbox-properties.gob mn-automation.gob \
mn-blinking-image.gob mn-mail-icon.gob mn-mailbox-view.gob \
- mn-mailbox.gob mn-mailboxes.gob mn-message-label.gob \
+ mn-mailbox.gob mn-mailboxes.gob mn-message-box.gob \
mn-message.gob mn-pending-mailbox.gob mn-shell.gob \
- mn-system-mailbox-properties.gob mn-unsupported-mailbox.gob \
- mn-uri.gob mn-mbox-mailbox-private.h mn-mbox-mailbox.c \
- mn-mbox-mailbox.h mn-mh-mailbox-private.h mn-mh-mailbox.c \
- mn-mh-mailbox.h mn-maildir-mailbox-private.h \
- mn-maildir-mailbox.c mn-maildir-mailbox.h \
- mn-pop3-mailbox-properties-private.h \
+ mn-system-mailbox-properties.gob mn-tooltips.gob \
+ mn-unsupported-mailbox.gob mn-uri.gob \
+ mn-mbox-mailbox-private.h mn-mbox-mailbox.c mn-mbox-mailbox.h \
+ mn-mh-mailbox-private.h mn-mh-mailbox.c mn-mh-mailbox.h \
+ mn-maildir-mailbox-private.h mn-maildir-mailbox.c \
+ mn-maildir-mailbox.h mn-pop3-mailbox-properties-private.h \
mn-pop3-mailbox-properties.c mn-pop3-mailbox-properties.h \
mn-pop3-mailbox-private.h mn-pop3-mailbox.c mn-pop3-mailbox.h \
mn-imap-mailbox-properties-private.h \
@@ -94,12 +94,13 @@ am__mail_notification_SOURCES_DIST = MNAutomation.idl \
mn-mail-icon.c mn-mail-icon.h mn-mailbox-view-private.h \
mn-mailbox-view.c mn-mailbox-view.h mn-mailbox-private.h \
mn-mailbox.c mn-mailbox.h mn-mailboxes-private.h \
- mn-mailboxes.c mn-mailboxes.h mn-message-label-private.h \
- mn-message-label.c mn-message-label.h mn-message-private.h \
+ mn-mailboxes.c mn-mailboxes.h mn-message-box-private.h \
+ mn-message-box.c mn-message-box.h mn-message-private.h \
mn-message.c mn-message.h mn-pending-mailbox-private.h \
mn-pending-mailbox.c mn-pending-mailbox.h mn-shell-private.h \
mn-shell.c mn-shell.h mn-system-mailbox-properties-private.h \
mn-system-mailbox-properties.c mn-system-mailbox-properties.h \
+ mn-tooltips-private.h mn-tooltips.c mn-tooltips.h \
mn-unsupported-mailbox-private.h mn-unsupported-mailbox.c \
mn-unsupported-mailbox.h mn-uri-private.h mn-uri.c mn-uri.h \
mn-sgml-ref.c mn-sgml-ref.h mn-soup.c mn-soup.h \
@@ -142,9 +143,9 @@ am__objects_13 = $(am__objects_3) $(am__objects_4) $(am__objects_5) \
mn-automation.$(OBJEXT) mn-blinking-image.$(OBJEXT) \
mn-mail-icon.$(OBJEXT) mn-mailbox-view.$(OBJEXT) \
mn-mailbox.$(OBJEXT) mn-mailboxes.$(OBJEXT) \
- mn-message-label.$(OBJEXT) mn-message.$(OBJEXT) \
+ mn-message-box.$(OBJEXT) mn-message.$(OBJEXT) \
mn-pending-mailbox.$(OBJEXT) mn-shell.$(OBJEXT) \
- mn-system-mailbox-properties.$(OBJEXT) \
+ mn-system-mailbox-properties.$(OBJEXT) mn-tooltips.$(OBJEXT) \
mn-unsupported-mailbox.$(OBJEXT) mn-uri.$(OBJEXT)
@WITH_GMAIL_TRUE@am__objects_14 = mn-sgml-ref.$(OBJEXT) \
@WITH_GMAIL_TRUE@ mn-soup.$(OBJEXT)
@@ -172,54 +173,6 @@ mail_notification_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/MNAutomation-common.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/MNAutomation-skels.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/MNAutomation-stubs.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/eggtrayicon.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-about-dialog.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-auth-combo-box.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-authenticated-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-autodetect-mailbox-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-automation.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-blinking-image.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-client-session.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-conf.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-gmail-mailbox-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-gmail-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-gmime-stream-vfs.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-imap-mailbox-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-imap-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mail-icon.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mailbox-properties-dialog.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mailbox-properties-util.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mailbox-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mailbox-view.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mailboxes.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-maildir-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-main.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mbox-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-md5.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-message-label.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-message-mime.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-message.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-mh-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-pending-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-pi-mailbox-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-pop3-mailbox-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-pop3-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-sasl.Po ./$(DEPDIR)/mn-sgml-ref.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-shell.Po ./$(DEPDIR)/mn-soup.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-ssl.Po ./$(DEPDIR)/mn-stock.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-summary-dialog.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-summary-popup.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-summary.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-sylpheed-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-system-mailbox-properties.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-unsupported-mailbox.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-uri.Po ./$(DEPDIR)/mn-util.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/mn-vfs.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
@@ -270,6 +223,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -307,6 +261,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -367,6 +322,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -518,11 +475,12 @@ gob_sources = \
mn-mailbox-view.gob \
mn-mailbox.gob \
mn-mailboxes.gob \
- mn-message-label.gob \
+ mn-message-box.gob \
mn-message.gob \
mn-pending-mailbox.gob \
mn-shell.gob \
mn-system-mailbox-properties.gob \
+ mn-tooltips.gob \
mn-unsupported-mailbox.gob \
mn-uri.gob
@@ -561,9 +519,9 @@ gob_built_sources = \
mn-mailboxes-private.h \
mn-mailboxes.c \
mn-mailboxes.h \
- mn-message-label-private.h \
- mn-message-label.c \
- mn-message-label.h \
+ mn-message-box-private.h \
+ mn-message-box.c \
+ mn-message-box.h \
mn-message-private.h \
mn-message.c \
mn-message.h \
@@ -576,6 +534,9 @@ gob_built_sources = \
mn-system-mailbox-properties-private.h \
mn-system-mailbox-properties.c \
mn-system-mailbox-properties.h \
+ mn-tooltips-private.h \
+ mn-tooltips.c \
+ mn-tooltips.h \
mn-unsupported-mailbox-private.h \
mn-unsupported-mailbox.c \
mn-unsupported-mailbox.h \
@@ -736,7 +697,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mbox-mailbox.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-md5.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message-label.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message-box.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message-mime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mh-mailbox.Po@am__quote@
@@ -756,6 +717,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-summary.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sylpheed-mailbox.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-system-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-tooltips.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-unsupported-mailbox.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-uri.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-util.Po@am__quote@
@@ -765,16 +727,14 @@ distclean-compile:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
uninstall-info-am:
@@ -882,13 +842,13 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
diff --git a/src/mn-about-dialog-private.h b/src/mn-about-dialog-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_ABOUT_DIALOG_PRIVATE_H__
#define __MN_ABOUT_DIALOG_PRIVATE_H__
diff --git a/src/mn-about-dialog.c b/src/mn-about-dialog.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-about-dialog.h b/src/mn-about-dialog.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-auth-combo-box-private.h b/src/mn-auth-combo-box-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_AUTH_COMBO_BOX_PRIVATE_H__
#define __MN_AUTH_COMBO_BOX_PRIVATE_H__
diff --git a/src/mn-auth-combo-box.c b/src/mn-auth-combo-box.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-auth-combo-box.h b/src/mn-auth-combo-box.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-authenticated-mailbox-private.h b/src/mn-authenticated-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
#define __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
diff --git a/src/mn-authenticated-mailbox.c b/src/mn-authenticated-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -132,9 +132,9 @@ mn_authenticated_mailbox_class_init (MNAuthenticatedMailboxClass * c G_GNUC_UNUS
{
#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
g_type_class_add_private(c,sizeof(MNAuthenticatedMailboxPrivate));
- MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
diff --git a/src/mn-authenticated-mailbox.h b/src/mn-authenticated-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-autodetect-mailbox-properties-private.h b/src/mn-autodetect-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_AUTODETECT_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_AUTODETECT_MAILBOX_PROPERTIES_PRIVATE_H__
diff --git a/src/mn-autodetect-mailbox-properties.c b/src/mn-autodetect-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -173,7 +173,7 @@ mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * o G_GNUC_
#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::init"
o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNAutodetectMailboxPropertiesPrivate);
#line 51 "mn-autodetect-mailbox-properties.gob"
- o->_priv->tooltips = mn_tooltips_new();
+ o->_priv->tooltips = mn_gtk_tooltips_new();
#line 178 "mn-autodetect-mailbox-properties.c"
}
#undef __GOB_FUNCTION__
@@ -326,9 +326,9 @@ ___1_mn_autodetect_mailbox_properties_constructor (GType type G_GNUC_UNUSED, gui
gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
gtk_entry_set_activates_default(GTK_ENTRY(selfp->location_entry), TRUE);
- mn_tooltips_set_tip(selfp->tooltips,
- selfp->location_entry,
- _("The URI of the mailbox"));
+ mn_gtk_tooltips_set_tip(selfp->tooltips,
+ selfp->location_entry,
+ _("The URI of the mailbox"));
gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
diff --git a/src/mn-autodetect-mailbox-properties.gob b/src/mn-autodetect-mailbox-properties.gob
@@ -48,7 +48,7 @@ class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Prope
g_value_set_boolean(VAL, *location != 0);
};
- private GtkTooltips *tooltips = {mn_tooltips_new()} unrefwith g_object_unref;
+ private GtkTooltips *tooltips = {mn_gtk_tooltips_new()} unrefwith g_object_unref;
private GtkWidget *location_entry;
override (G:Object) GObject *
@@ -76,9 +76,9 @@ class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Prope
gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
gtk_entry_set_activates_default(GTK_ENTRY(selfp->location_entry), TRUE);
- mn_tooltips_set_tip(selfp->tooltips,
- selfp->location_entry,
- _("The URI of the mailbox"));
+ mn_gtk_tooltips_set_tip(selfp->tooltips,
+ selfp->location_entry,
+ _("The URI of the mailbox"));
gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
diff --git a/src/mn-autodetect-mailbox-properties.h b/src/mn-autodetect-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-automation-private.h b/src/mn-automation-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_AUTOMATION_PRIVATE_H__
#define __MN_AUTOMATION_PRIVATE_H__
diff --git a/src/mn-automation.c b/src/mn-automation.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-automation.h b/src/mn-automation.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-blinking-image-private.h b/src/mn-blinking-image-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_BLINKING_IMAGE_PRIVATE_H__
#define __MN_BLINKING_IMAGE_PRIVATE_H__
diff --git a/src/mn-blinking-image.c b/src/mn-blinking-image.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-blinking-image.h b/src/mn-blinking-image.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-client-session.c b/src/mn-client-session.c
@@ -563,7 +563,10 @@ mn_client_session_prepare_input_buffer (MNClientSession *session)
g_return_if_fail(session != NULL);
if (session->bytes_to_remove)
- g_byte_array_remove_range(session->input_buffer, 0, session->bytes_to_remove);
+ {
+ g_byte_array_remove_range(session->input_buffer, 0, session->bytes_to_remove);
+ session->bytes_to_remove = 0;
+ }
}
static gboolean
@@ -576,6 +579,9 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
g_return_val_if_fail(session != NULL, FALSE);
+ if (session->callbacks->pre_read)
+ session->callbacks->pre_read(session, session->private);
+
#ifdef WITH_SSL
if (session->ssl)
bytes_read = SSL_read(session->ssl, buf, sizeof(buf));
@@ -585,6 +591,9 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
bytes_read = read(session->s, buf, sizeof(buf));
while (bytes_read < 0 && errno == EINTR);
+ if (session->callbacks->post_read)
+ session->callbacks->post_read(session, session->private);
+
if (bytes_read <= 0)
{
#ifdef WITH_SSL
@@ -898,7 +907,8 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
const char *service,
GSList *mechanisms,
const char *forced_mechanism,
- const char **used_mechanism)
+ const char **used_mechanism,
+ gboolean initial_response)
{
GError *err = NULL;
int result;
@@ -981,8 +991,8 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
result = sasl_client_start(session->sasl_conn,
mechanisms_string->str,
&interact,
- &session->sasl_initial_clientout,
- &session->sasl_initial_clientoutlen,
+ initial_response ? &session->sasl_initial_clientout : NULL,
+ initial_response ? &session->sasl_initial_clientoutlen : NULL,
used_mechanism);
if (result == SASL_INTERACT)
diff --git a/src/mn-client-session.h b/src/mn-client-session.h
@@ -63,6 +63,11 @@ typedef struct
MNClientSessionResponse *response,
int result,
MNClientSessionPrivate *private);
+
+ void (*pre_read) (MNClientSession *session,
+ MNClientSessionPrivate *private);
+ void (*post_read) (MNClientSession *session,
+ MNClientSessionPrivate *private);
} MNClientSessionCallbacks;
gboolean mn_client_session_run (MNClientSessionState *states,
@@ -93,7 +98,8 @@ gboolean mn_client_session_sasl_authentication_start (MNClientSession *session,
const char *service,
GSList *mechanisms,
const char *forced_mechanism,
- const char **used_mechanism);
+ const char **used_mechanism,
+ gboolean initial_response);
int mn_client_session_sasl_authentication_step (MNClientSession *session,
const char *input);
gboolean mn_client_session_sasl_authentication_done (MNClientSession *session);
diff --git a/src/mn-conf.c b/src/mn-conf.c
@@ -35,6 +35,9 @@
#define COMBO_BOX_KEY "mn-conf-combo-box-key"
#define COMBO_BOX_STRING_COLUMN "mn-conf-combo-box-string-column"
+#define RADIO_BUTTON_KEY "mn-conf-radio-button-key"
+#define RADIO_BUTTON_STRING "mn-conf-radio-button-string"
+
/*** types *******************************************************************/
typedef struct
@@ -56,6 +59,16 @@ static void mn_conf_link_combo_box_to_string_notify_cb (GConfClient *client,
GConfEntry *entry,
gpointer user_data);
+static void mn_conf_link_radio_button_to_string (GtkRadioButton *radio,
+ const char *key,
+ const char *str);
+static void mn_conf_link_radio_button_to_string_toggled_h (GtkToggleButton *toggle,
+ gpointer user_data);
+static void mn_conf_link_radio_button_to_string_notify_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data);
+
static gboolean mn_conf_link_window_h (GtkWidget *widget,
GdkEventConfigure *event,
gpointer user_data);
@@ -84,9 +97,6 @@ static void mn_conf_link_entry_notify_cb (GConfClient *client,
GConfEntry *entry,
gpointer user_data);
-static void mn_conf_link_weak_notify_cb (gpointer data,
- GObject *former_object);
-
static void mn_conf_startup_client_free (StartupClient *client);
static void mn_conf_startup_clients_free (GSList *list);
@@ -97,6 +107,9 @@ static void mn_conf_startup_list_write (GSList *list, const char *name);
static GSList *mn_conf_get_autostart_elem (GSList *list);
+static void mn_conf_notification_add_weak_notify_cb (gpointer data,
+ GObject *former_object);
+
/*** implementation **********************************************************/
void
@@ -157,7 +170,6 @@ mn_conf_link (GtkWidget *widget, ...)
const char *signal_name;
GCallback signal_handler;
GConfClientNotifyFunc notification_cb;
- unsigned int notification_id;
key = va_arg(args, const char *);
g_return_if_fail(key != NULL);
@@ -214,8 +226,7 @@ mn_conf_link (GtkWidget *widget, ...)
g_return_if_reached();
g_signal_connect_data(widget, signal_name, signal_handler, g_strdup(key), (GClosureNotify) g_free, 0);
- notification_id = eel_gconf_notification_add(key, notification_cb, widget);
- g_object_weak_ref(G_OBJECT(widget), mn_conf_link_weak_notify_cb, GUINT_TO_POINTER(notification_id));
+ mn_conf_notification_add(widget, key, notification_cb, widget);
widget = va_arg(args, GtkWidget *);
}
@@ -228,7 +239,6 @@ mn_conf_link_combo_box_to_string (GtkComboBox *combo,
const char *key)
{
char *value;
- unsigned int notification_id;
g_return_if_fail(GTK_IS_COMBO_BOX(combo));
g_return_if_fail(key != NULL);
@@ -241,8 +251,7 @@ mn_conf_link_combo_box_to_string (GtkComboBox *combo,
g_free(value);
g_signal_connect(combo, "changed", G_CALLBACK(mn_conf_link_combo_box_to_string_changed_h), NULL);
- notification_id = eel_gconf_notification_add(key, mn_conf_link_combo_box_to_string_notify_cb, combo);
- g_object_weak_ref(G_OBJECT(combo), mn_conf_link_weak_notify_cb, GUINT_TO_POINTER(notification_id));
+ mn_conf_notification_add(combo, key, mn_conf_link_combo_box_to_string_notify_cb, combo);
}
static void
@@ -316,6 +325,98 @@ mn_conf_link_combo_box_to_string_notify_cb (GConfClient *client,
GDK_THREADS_LEAVE();
}
+void
+mn_conf_link_radio_group_to_enum (GType enum_type,
+ const char *key,
+ ...)
+{
+ GEnumClass *enum_class;
+ GtkRadioButton *radio;
+ va_list args;
+
+ g_return_if_fail(key != NULL);
+
+ enum_class = g_type_class_ref(enum_type);
+ g_return_if_fail(enum_class != NULL);
+
+ va_start(args, key);
+
+ while ((radio = va_arg(args, GtkRadioButton *)))
+ {
+ int value;
+ GEnumValue *enum_value;
+
+ value = va_arg(args, int);
+
+ enum_value = g_enum_get_value(enum_class, value);
+ g_return_if_fail(enum_value != NULL);
+
+ mn_conf_link_radio_button_to_string(radio, key, enum_value->value_nick);
+ }
+
+ va_end(args);
+}
+
+static void
+mn_conf_link_radio_button_to_string (GtkRadioButton *radio,
+ const char *key,
+ const char *str)
+{
+ char *current_str;
+
+ g_return_if_fail(GTK_IS_RADIO_BUTTON(radio));
+ g_return_if_fail(key != NULL);
+ g_return_if_fail(str != NULL);
+
+ current_str = eel_gconf_get_string(key);
+ if (current_str)
+ {
+ if (! strcmp(current_str, str))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
+ g_free(current_str);
+ }
+
+ g_object_set_data_full(G_OBJECT(radio), RADIO_BUTTON_KEY, g_strdup(key), g_free);
+ g_object_set_data_full(G_OBJECT(radio), RADIO_BUTTON_STRING, g_strdup(str), g_free);
+
+ g_signal_connect(radio, "toggled", G_CALLBACK(mn_conf_link_radio_button_to_string_toggled_h), NULL);
+ mn_conf_notification_add(radio, key, mn_conf_link_radio_button_to_string_notify_cb, radio);
+}
+
+static void
+mn_conf_link_radio_button_to_string_toggled_h (GtkToggleButton *toggle,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)))
+ {
+ const char *key = g_object_get_data(G_OBJECT(toggle), RADIO_BUTTON_KEY);
+ const char *str = g_object_get_data(G_OBJECT(toggle), RADIO_BUTTON_STRING);
+
+ eel_gconf_set_string(key, str);
+ }
+}
+
+static void
+mn_conf_link_radio_button_to_string_notify_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+{
+ GtkRadioButton *radio = user_data;
+ GConfValue *value = gconf_entry_get_value(entry);
+ const char *str = gconf_value_get_string(value);
+
+ if (str)
+ {
+ GDK_THREADS_ENTER();
+
+ if (! strcmp(str, g_object_get_data(G_OBJECT(radio), RADIO_BUTTON_STRING)))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
+
+ GDK_THREADS_LEAVE();
+ }
+}
+
static gboolean
mn_conf_link_window_h (GtkWidget *widget,
GdkEventConfigure *event,
@@ -421,13 +522,6 @@ mn_conf_link_entry_notify_cb (GConfClient *client,
GDK_THREADS_LEAVE();
}
-static void
-mn_conf_link_weak_notify_cb (gpointer data, GObject *former_object)
-{
- unsigned int notification_id = GPOINTER_TO_UINT(data);
- eel_gconf_notification_remove(notification_id);
-}
-
/*
* The mn_conf_startup_* functions are based on code taken from
* startup-programs.c in gnome-session, written by Owen Taylor.
@@ -616,28 +710,49 @@ mn_conf_set_autostart (gboolean autostart)
mn_conf_startup_clients_free(clients);
}
-GEnumValue *
+int
mn_conf_get_enum_value (GType enum_type, const char *key)
{
GEnumClass *enum_class;
GEnumValue *enum_value = NULL;
+ char *nick;
- g_return_val_if_fail(key != NULL, NULL);
+ g_return_val_if_fail(key != NULL, 0);
enum_class = g_type_class_ref(enum_type);
- if (enum_class)
+ g_return_val_if_fail(enum_class != NULL, 0);
+
+ nick = eel_gconf_get_string(key);
+ if (nick)
{
- char *nick;
+ enum_value = g_enum_get_value_by_nick(enum_class, nick);
+ g_free(nick);
+ }
- nick = eel_gconf_get_string(key);
- if (nick)
- {
- enum_value = g_enum_get_value_by_nick(enum_class, nick);
- g_free(nick);
- }
+ g_type_class_unref(enum_class);
- g_type_class_unref(enum_class);
- }
+ return enum_value ? enum_value->value : 0;
+}
+
+void
+mn_conf_notification_add (gpointer object,
+ const char *key,
+ GConfClientNotifyFunc callback,
+ gpointer user_data)
+{
+ unsigned int notification_id;
+
+ g_return_if_fail(G_IS_OBJECT(object));
+ g_return_if_fail(key != NULL);
+ g_return_if_fail(callback != NULL);
+
+ notification_id = eel_gconf_notification_add(key, callback, user_data);
+ g_object_weak_ref(G_OBJECT(object), mn_conf_notification_add_weak_notify_cb, GUINT_TO_POINTER(notification_id));
+}
- return enum_value;
+static void
+mn_conf_notification_add_weak_notify_cb (gpointer data, GObject *former_object)
+{
+ unsigned int notification_id = GPOINTER_TO_UINT(data);
+ eel_gconf_notification_remove(notification_id);
}
diff --git a/src/mn-conf.h b/src/mn-conf.h
@@ -61,6 +61,12 @@
MN_CONF_COMMANDS_MAIL_READ_NAMESPACE "/enabled"
#define MN_CONF_COMMANDS_MAIL_READ_COMMAND \
MN_CONF_COMMANDS_MAIL_READ_NAMESPACE "/command"
+#define MN_CONF_COMMANDS_MAIL_READER_NAMESPACE \
+ MN_CONF_COMMANDS_NAMESPACE "/mail-reader"
+#define MN_CONF_COMMANDS_MAIL_READER_ENABLED \
+ MN_CONF_COMMANDS_MAIL_READER_NAMESPACE "/enabled"
+#define MN_CONF_COMMANDS_MAIL_READER_COMMAND \
+ MN_CONF_COMMANDS_MAIL_READER_NAMESPACE "/command"
#define MN_CONF_COMMANDS_CLICKED_NAMESPACE \
MN_CONF_COMMANDS_NAMESPACE "/clicked" /* obsolete */
#define MN_CONF_COMMANDS_CLICKED_ENABLED \
@@ -115,6 +121,10 @@
MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE "/horizontal"
#define MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET \
MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE "/vertical"
+#define MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT \
+ MN_CONF_MAIL_SUMMARY_POPUP_NAMESPACE "/only-recent"
+#define MN_CONF_DOUBLE_CLICK_ACTION \
+ MN_CONF_NAMESPACE "/double-click-action"
void mn_conf_init (void);
void mn_conf_unset_obsolete (void);
@@ -127,11 +137,19 @@ void mn_conf_link (GtkWidget *widget,
void mn_conf_link_combo_box_to_string (GtkComboBox *combo,
int string_column,
const char *key);
+void mn_conf_link_radio_group_to_enum (GType enum_type,
+ const char *key,
+ ...);
gboolean mn_conf_get_autostart (void);
void mn_conf_set_autostart (gboolean autostart);
-GEnumValue *mn_conf_get_enum_value (GType enum_type,
+int mn_conf_get_enum_value (GType enum_type,
const char *key);
+void mn_conf_notification_add (gpointer object,
+ const char *key,
+ GConfClientNotifyFunc callback,
+ gpointer user_data);
+
#endif /* _MN_CONF_H */
diff --git a/src/mn-gmail-mailbox-private.h b/src/mn-gmail-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_GMAIL_MAILBOX_PRIVATE_H__
#define __MN_GMAIL_MAILBOX_PRIVATE_H__
@@ -16,9 +16,9 @@ extern "C" {
#line 18 "mn-gmail-mailbox-private.h"
struct _MNGmailMailboxPrivate {
-#line 46 "mn-gmail-mailbox.gob"
+#line 64 "mn-gmail-mailbox.gob"
GHashTable * cookies;
-#line 47 "mn-gmail-mailbox.gob"
+#line 65 "mn-gmail-mailbox.gob"
gboolean logged_in;
#line 24 "mn-gmail-mailbox-private.h"
};
diff --git a/src/mn-gmail-mailbox-properties-private.h b/src/mn-gmail-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_GMAIL_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_GMAIL_MAILBOX_PROPERTIES_PRIVATE_H__
diff --git a/src/mn-gmail-mailbox-properties.c b/src/mn-gmail-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -167,7 +167,7 @@ mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * o G_GNUC_UNUSED)
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::init"
o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPropertiesPrivate);
#line 52 "mn-gmail-mailbox-properties.gob"
- o->_priv->tooltips = mn_tooltips_new();
+ o->_priv->tooltips = mn_gtk_tooltips_new();
#line 172 "mn-gmail-mailbox-properties.c"
}
#undef __GOB_FUNCTION__
@@ -318,10 +318,10 @@ ___1_mn_gmail_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_
gtk_size_group_add_widget(selfp->size_group, label1);
gtk_size_group_add_widget(selfp->size_group, label2);
- mn_tooltips_set_tips(selfp->tooltips,
- selfp->username_entry, _("Your Gmail username"),
- selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
- NULL);
+ mn_gtk_tooltips_set_tips(selfp->tooltips,
+ selfp->username_entry, _("Your Gmail username"),
+ selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
+ NULL);
mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
GTK_ENTRY(selfp->password_entry),
diff --git a/src/mn-gmail-mailbox-properties.gob b/src/mn-gmail-mailbox-properties.gob
@@ -49,7 +49,7 @@ class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties
private GtkWidget *username_entry;
private GtkWidget *password_entry;
- private GtkTooltips *tooltips = {mn_tooltips_new()} unrefwith g_object_unref;
+ private GtkTooltips *tooltips = {mn_gtk_tooltips_new()} unrefwith g_object_unref;
override (G:Object) GObject *
constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params)
@@ -73,10 +73,10 @@ class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties
gtk_size_group_add_widget(selfp->size_group, label1);
gtk_size_group_add_widget(selfp->size_group, label2);
- mn_tooltips_set_tips(selfp->tooltips,
- selfp->username_entry, _("Your Gmail username"),
- selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
- NULL);
+ mn_gtk_tooltips_set_tips(selfp->tooltips,
+ selfp->username_entry, _("Your Gmail username"),
+ selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
+ NULL);
mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
GTK_ENTRY(selfp->password_entry),
diff --git a/src/mn-gmail-mailbox-properties.h b/src/mn-gmail-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-gmail-mailbox.c b/src/mn-gmail-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -26,17 +26,35 @@
#include "config.h"
#include <stdio.h>
#include <string.h>
+#include <stdarg.h>
#include <time.h>
#ifdef TM_IN_SYS_TIME
#include <sys/time.h>
#endif
#include <glib/gi18n.h>
+#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-util.h"
#include "mn-stock.h"
#include "mn-sgml-ref.h"
-#line 40 "mn-gmail-mailbox.c"
+ typedef enum
+ {
+ JS_ARG_STRING,
+ JS_ARG_LIST
+ } JSArgType;
+
+ typedef struct
+ {
+ JSArgType type;
+ union
+ {
+ char *string;
+ GSList *list;
+ } value;
+ } JSArg;
+
+#line 58 "mn-gmail-mailbox.c"
/* self casting macros */
#define SELF(x) MN_GMAIL_MAILBOX(x)
#define SELF_CONST(x) MN_GMAIL_MAILBOX_CONST(x)
@@ -63,12 +81,19 @@ static void mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage *
static void mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
static void mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body) G_GNUC_UNUSED;
static void mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_get_token (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post) G_GNUC_UNUSED;
+static char * mn_gmail_mailbox_get_substring (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post) G_GNUC_UNUSED;
static gboolean mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err) G_GNUC_UNUSED;
static void mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
static char * mn_gmail_mailbox_build_cookie (MNGmailMailbox * self) G_GNUC_UNUSED;
static void mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
static gboolean mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_append_message (MNGmailMailbox * self, GSList ** messages, JSArg * arg) G_GNUC_UNUSED;
+static gboolean mn_gmail_mailbox_js_get_arg_list (char ** str, GSList ** list) G_GNUC_UNUSED;
+static gboolean mn_gmail_mailbox_js_arg_list_scan (GSList * list, ...) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_js_arg_list_free (GSList * list) G_GNUC_UNUSED;
+static JSArg * mn_gmail_mailbox_js_arg_new_string (const char * string) G_GNUC_UNUSED;
+static JSArg * mn_gmail_mailbox_js_arg_new_list (GSList * list) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_js_arg_free (JSArg * arg) G_GNUC_UNUSED;
static time_t mn_gmail_mailbox_parse_date (const char * date) G_GNUC_UNUSED;
/* pointer to the class of our parent */
@@ -82,12 +107,19 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
#define self_dump_request_cb mn_gmail_mailbox_dump_request_cb
#define self_dump_response mn_gmail_mailbox_dump_response
#define self_dump_response_cb mn_gmail_mailbox_dump_response_cb
-#define self_get_token mn_gmail_mailbox_get_token
+#define self_get_substring mn_gmail_mailbox_get_substring
#define self_login mn_gmail_mailbox_login
#define self_update_cookies mn_gmail_mailbox_update_cookies
#define self_build_cookie mn_gmail_mailbox_build_cookie
#define self_build_cookie_cb mn_gmail_mailbox_build_cookie_cb
#define self_check mn_gmail_mailbox_check
+#define self_append_message mn_gmail_mailbox_append_message
+#define self_js_get_arg_list mn_gmail_mailbox_js_get_arg_list
+#define self_js_arg_list_scan mn_gmail_mailbox_js_arg_list_scan
+#define self_js_arg_list_free mn_gmail_mailbox_js_arg_list_free
+#define self_js_arg_new_string mn_gmail_mailbox_js_arg_new_string
+#define self_js_arg_new_list mn_gmail_mailbox_js_arg_new_list
+#define self_js_arg_free mn_gmail_mailbox_js_arg_free
#define self_parse_date mn_gmail_mailbox_parse_date
GType
mn_gmail_mailbox_get_type (void)
@@ -140,9 +172,9 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 46 "mn-gmail-mailbox.gob"
+#line 64 "mn-gmail-mailbox.gob"
if(self->_priv->cookies) { g_hash_table_destroy ((gpointer) self->_priv->cookies); self->_priv->cookies = NULL; }
-#line 146 "mn-gmail-mailbox.c"
+#line 178 "mn-gmail-mailbox.c"
}
#undef __GOB_FUNCTION__
@@ -153,45 +185,45 @@ mn_gmail_mailbox_init (MNGmailMailbox * o G_GNUC_UNUSED)
o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPrivate);
}
#undef __GOB_FUNCTION__
-#line 49 "mn-gmail-mailbox.gob"
+#line 67 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_class_init (MNGmailMailboxClass * class G_GNUC_UNUSED)
-#line 160 "mn-gmail-mailbox.c"
+#line 192 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
-
- g_type_class_add_private(class,sizeof(MNGmailMailboxPrivate));
MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
+ g_type_class_add_private(class,sizeof(MNGmailMailboxPrivate));
+
parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
-#line 55 "mn-gmail-mailbox.gob"
+#line 73 "mn-gmail-mailbox.gob"
g_object_class->constructor = ___2_mn_gmail_mailbox_constructor;
-#line 68 "mn-gmail-mailbox.gob"
+#line 86 "mn-gmail-mailbox.gob"
mn_mailbox_class->impl_is = ___3_mn_gmail_mailbox_impl_is;
-#line 74 "mn-gmail-mailbox.gob"
+#line 92 "mn-gmail-mailbox.gob"
mn_authenticated_mailbox_class->impl_authenticated_check = ___4_mn_gmail_mailbox_impl_authenticated_check;
-#line 177 "mn-gmail-mailbox.c"
+#line 209 "mn-gmail-mailbox.c"
g_object_class->finalize = ___finalize;
{
-#line 50 "mn-gmail-mailbox.gob"
+#line 68 "mn-gmail-mailbox.gob"
MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_GMAIL;
MN_MAILBOX_CLASS(class)->format = "Gmail";
-#line 185 "mn-gmail-mailbox.c"
+#line 217 "mn-gmail-mailbox.c"
}
}
#undef __GOB_FUNCTION__
-#line 55 "mn-gmail-mailbox.gob"
+#line 73 "mn-gmail-mailbox.gob"
static GObject *
___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 195 "mn-gmail-mailbox.c"
+#line 227 "mn-gmail-mailbox.c"
#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
((G_OBJECT_CLASS(parent_class)->constructor)? \
(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -199,7 +231,7 @@ ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_p
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::constructor"
{
-#line 57 "mn-gmail-mailbox.gob"
+#line 75 "mn-gmail-mailbox.gob"
GObject *object;
@@ -210,51 +242,51 @@ ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_p
return object;
}}
-#line 214 "mn-gmail-mailbox.c"
+#line 246 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 68 "mn-gmail-mailbox.gob"
+#line 86 "mn-gmail-mailbox.gob"
static gboolean
___3_mn_gmail_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 221 "mn-gmail-mailbox.c"
+#line 253 "mn-gmail-mailbox.c"
#define PARENT_HANDLER(___dummy,___uri) \
((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
((gboolean )0))
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_is"
-#line 68 "mn-gmail-mailbox.gob"
+#line 86 "mn-gmail-mailbox.gob"
g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 68 "mn-gmail-mailbox.gob"
+#line 86 "mn-gmail-mailbox.gob"
g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 232 "mn-gmail-mailbox.c"
+#line 264 "mn-gmail-mailbox.c"
{
-#line 70 "mn-gmail-mailbox.gob"
+#line 88 "mn-gmail-mailbox.gob"
return MN_URI_IS_GMAIL(uri);
}}
-#line 238 "mn-gmail-mailbox.c"
+#line 270 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 74 "mn-gmail-mailbox.gob"
+#line 92 "mn-gmail-mailbox.gob"
static MNAuthenticatedMailboxResult
___4_mn_gmail_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox G_GNUC_UNUSED, GError ** err)
-#line 245 "mn-gmail-mailbox.c"
+#line 277 "mn-gmail-mailbox.c"
#define PARENT_HANDLER(___authenticated_mailbox,___err) \
((MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)? \
(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)(___authenticated_mailbox,___err): \
((MNAuthenticatedMailboxResult )0))
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_authenticated_check"
-#line 74 "mn-gmail-mailbox.gob"
+#line 92 "mn-gmail-mailbox.gob"
g_return_val_if_fail (authenticated_mailbox != NULL, (MNAuthenticatedMailboxResult )0);
-#line 74 "mn-gmail-mailbox.gob"
+#line 92 "mn-gmail-mailbox.gob"
g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (authenticated_mailbox), (MNAuthenticatedMailboxResult )0);
-#line 256 "mn-gmail-mailbox.c"
+#line 288 "mn-gmail-mailbox.c"
{
-#line 77 "mn-gmail-mailbox.gob"
+#line 95 "mn-gmail-mailbox.gob"
Self *self = SELF(authenticated_mailbox);
SoupSession *session;
@@ -275,21 +307,21 @@ ___4_mn_gmail_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authent
return result;
}}
-#line 279 "mn-gmail-mailbox.c"
+#line 311 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 98 "mn-gmail-mailbox.gob"
+#line 116 "mn-gmail-mailbox.gob"
static SoupUri *
mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err)
-#line 286 "mn-gmail-mailbox.c"
+#line 318 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::soup_uri_new"
-#line 98 "mn-gmail-mailbox.gob"
+#line 116 "mn-gmail-mailbox.gob"
g_return_val_if_fail (text_uri != NULL, (SoupUri * )0);
-#line 291 "mn-gmail-mailbox.c"
+#line 323 "mn-gmail-mailbox.c"
{
-#line 100 "mn-gmail-mailbox.gob"
+#line 118 "mn-gmail-mailbox.gob"
SoupUri *uri;
@@ -299,28 +331,28 @@ mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err)
return uri;
}}
-#line 303 "mn-gmail-mailbox.c"
+#line 335 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 110 "mn-gmail-mailbox.gob"
+#line 128 "mn-gmail-mailbox.gob"
static char *
mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char * text_uri, GError ** err)
-#line 309 "mn-gmail-mailbox.c"
+#line 341 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get"
-#line 110 "mn-gmail-mailbox.gob"
+#line 128 "mn-gmail-mailbox.gob"
g_return_val_if_fail (self != NULL, (char * )0);
-#line 110 "mn-gmail-mailbox.gob"
+#line 128 "mn-gmail-mailbox.gob"
g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 110 "mn-gmail-mailbox.gob"
+#line 128 "mn-gmail-mailbox.gob"
g_return_val_if_fail (session != NULL, (char * )0);
-#line 110 "mn-gmail-mailbox.gob"
+#line 128 "mn-gmail-mailbox.gob"
g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
-#line 110 "mn-gmail-mailbox.gob"
+#line 128 "mn-gmail-mailbox.gob"
g_return_val_if_fail (text_uri != NULL, (char * )0);
-#line 322 "mn-gmail-mailbox.c"
+#line 354 "mn-gmail-mailbox.c"
{
-#line 115 "mn-gmail-mailbox.gob"
+#line 133 "mn-gmail-mailbox.gob"
SoupUri *uri;
char *body;
@@ -334,28 +366,28 @@ mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char *
return body;
}}
-#line 338 "mn-gmail-mailbox.c"
+#line 370 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 129 "mn-gmail-mailbox.gob"
+#line 147 "mn-gmail-mailbox.gob"
static char *
mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, SoupUri * uri, GError ** err)
-#line 344 "mn-gmail-mailbox.c"
+#line 376 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_from_uri"
-#line 129 "mn-gmail-mailbox.gob"
+#line 147 "mn-gmail-mailbox.gob"
g_return_val_if_fail (self != NULL, (char * )0);
-#line 129 "mn-gmail-mailbox.gob"
+#line 147 "mn-gmail-mailbox.gob"
g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 129 "mn-gmail-mailbox.gob"
+#line 147 "mn-gmail-mailbox.gob"
g_return_val_if_fail (session != NULL, (char * )0);
-#line 129 "mn-gmail-mailbox.gob"
+#line 147 "mn-gmail-mailbox.gob"
g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
-#line 129 "mn-gmail-mailbox.gob"
+#line 147 "mn-gmail-mailbox.gob"
g_return_val_if_fail (uri != NULL, (char * )0);
-#line 357 "mn-gmail-mailbox.c"
+#line 389 "mn-gmail-mailbox.c"
{
-#line 134 "mn-gmail-mailbox.gob"
+#line 152 "mn-gmail-mailbox.gob"
SoupMessage *message;
char *cookie;
@@ -387,26 +419,26 @@ mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, Sou
return body;
}}
-#line 391 "mn-gmail-mailbox.c"
+#line 423 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 166 "mn-gmail-mailbox.gob"
+#line 184 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message)
-#line 397 "mn-gmail-mailbox.c"
+#line 429 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request"
-#line 166 "mn-gmail-mailbox.gob"
+#line 184 "mn-gmail-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 166 "mn-gmail-mailbox.gob"
+#line 184 "mn-gmail-mailbox.gob"
g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 166 "mn-gmail-mailbox.gob"
+#line 184 "mn-gmail-mailbox.gob"
g_return_if_fail (message != NULL);
-#line 166 "mn-gmail-mailbox.gob"
+#line 184 "mn-gmail-mailbox.gob"
g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 408 "mn-gmail-mailbox.c"
+#line 440 "mn-gmail-mailbox.c"
{
-#line 168 "mn-gmail-mailbox.gob"
+#line 186 "mn-gmail-mailbox.gob"
const SoupUri *suri;
char *uri;
@@ -418,24 +450,24 @@ mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message)
soup_message_foreach_header(message->request_headers, self_dump_request_cb, self);
}}
-#line 422 "mn-gmail-mailbox.c"
+#line 454 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 180 "mn-gmail-mailbox.gob"
+#line 198 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data)
-#line 428 "mn-gmail-mailbox.c"
+#line 460 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request_cb"
-#line 180 "mn-gmail-mailbox.gob"
+#line 198 "mn-gmail-mailbox.gob"
g_return_if_fail (key != NULL);
-#line 180 "mn-gmail-mailbox.gob"
+#line 198 "mn-gmail-mailbox.gob"
g_return_if_fail (value != NULL);
-#line 180 "mn-gmail-mailbox.gob"
+#line 198 "mn-gmail-mailbox.gob"
g_return_if_fail (user_data != NULL);
-#line 437 "mn-gmail-mailbox.c"
+#line 469 "mn-gmail-mailbox.c"
{
-#line 184 "mn-gmail-mailbox.gob"
+#line 202 "mn-gmail-mailbox.gob"
Self *self = user_data;
const char *header_name = key;
@@ -443,28 +475,28 @@ mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_da
mn_mailbox_notice(MN_MAILBOX(self), "> %s: %s", header_name, header_value);
}}
-#line 447 "mn-gmail-mailbox.c"
+#line 479 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 192 "mn-gmail-mailbox.gob"
+#line 210 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body)
-#line 453 "mn-gmail-mailbox.c"
+#line 485 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response"
-#line 192 "mn-gmail-mailbox.gob"
+#line 210 "mn-gmail-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 192 "mn-gmail-mailbox.gob"
+#line 210 "mn-gmail-mailbox.gob"
g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 192 "mn-gmail-mailbox.gob"
+#line 210 "mn-gmail-mailbox.gob"
g_return_if_fail (message != NULL);
-#line 192 "mn-gmail-mailbox.gob"
+#line 210 "mn-gmail-mailbox.gob"
g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 192 "mn-gmail-mailbox.gob"
+#line 210 "mn-gmail-mailbox.gob"
g_return_if_fail (body != NULL);
-#line 466 "mn-gmail-mailbox.c"
+#line 498 "mn-gmail-mailbox.c"
{
-#line 196 "mn-gmail-mailbox.gob"
+#line 214 "mn-gmail-mailbox.gob"
char **lines;
int i;
@@ -476,24 +508,24 @@ mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, co
mn_mailbox_notice(MN_MAILBOX(self), "< %s", lines[i]);
g_strfreev(lines);
}}
-#line 480 "mn-gmail-mailbox.c"
+#line 512 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 208 "mn-gmail-mailbox.gob"
+#line 226 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data)
-#line 486 "mn-gmail-mailbox.c"
+#line 518 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response_cb"
-#line 208 "mn-gmail-mailbox.gob"
+#line 226 "mn-gmail-mailbox.gob"
g_return_if_fail (key != NULL);
-#line 208 "mn-gmail-mailbox.gob"
+#line 226 "mn-gmail-mailbox.gob"
g_return_if_fail (value != NULL);
-#line 208 "mn-gmail-mailbox.gob"
+#line 226 "mn-gmail-mailbox.gob"
g_return_if_fail (user_data != NULL);
-#line 495 "mn-gmail-mailbox.c"
+#line 527 "mn-gmail-mailbox.c"
{
-#line 212 "mn-gmail-mailbox.gob"
+#line 230 "mn-gmail-mailbox.gob"
Self *self = user_data;
const char *header_name = key;
@@ -501,39 +533,39 @@ mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_d
mn_mailbox_notice(MN_MAILBOX(self), "< %s: %s", header_name, header_value);
}}
-#line 505 "mn-gmail-mailbox.c"
+#line 537 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
/**
- * mn_gmail_mailbox_get_token:
+ * mn_gmail_mailbox_get_substring:
* @str: the string to search
- * @pre: the start of the token
- * @post: the end of the token
+ * @pre: the start of the substring
+ * @post: the end of the substring
* @include_pre: whether to include @pre in the result or not
* @include_post: whether to include @post in the result or not
*
- * Gets the first token of @str included between @pre and @post.
+ * Gets the first substring of @str included between @pre and @post.
*
- * Return value: a newly allocated string containing the token or
- * %NULL if not found.
+ * Return value: a newly allocated string containing the substring
+ * or %NULL if not found.
**/
-#line 233 "mn-gmail-mailbox.gob"
+#line 251 "mn-gmail-mailbox.gob"
static char *
-mn_gmail_mailbox_get_token (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post)
-#line 524 "mn-gmail-mailbox.c"
+mn_gmail_mailbox_get_substring (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post)
+#line 556 "mn-gmail-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_token"
-#line 233 "mn-gmail-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_substring"
+#line 251 "mn-gmail-mailbox.gob"
g_return_val_if_fail (str != NULL, (char * )0);
-#line 233 "mn-gmail-mailbox.gob"
+#line 251 "mn-gmail-mailbox.gob"
g_return_val_if_fail (pre != NULL, (char * )0);
-#line 233 "mn-gmail-mailbox.gob"
+#line 251 "mn-gmail-mailbox.gob"
g_return_val_if_fail (post != NULL, (char * )0);
-#line 533 "mn-gmail-mailbox.c"
+#line 565 "mn-gmail-mailbox.c"
{
-#line 239 "mn-gmail-mailbox.gob"
+#line 257 "mn-gmail-mailbox.gob"
- char *token = NULL;
+ char *sub = NULL;
char *pre_loc;
pre_loc = strstr(str, pre);
@@ -549,34 +581,34 @@ mn_gmail_mailbox_get_token (const char * str, const char * pre, const char * pos
char *start = include_pre ? pre_loc : after_pre_loc;
char *end = include_post ? post_loc + strlen(post) : post_loc;
- token = g_strndup(start, end - start);
+ sub = g_strndup(start, end - start);
}
}
- return token;
+ return sub;
}}
-#line 559 "mn-gmail-mailbox.c"
+#line 591 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 263 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
static gboolean
mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err)
-#line 565 "mn-gmail-mailbox.c"
+#line 597 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login"
-#line 263 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 263 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
-#line 263 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
g_return_val_if_fail (session != NULL, (gboolean )0);
-#line 263 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
-#line 263 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
g_return_val_if_fail (authentication_failed != NULL, (gboolean )0);
-#line 578 "mn-gmail-mailbox.c"
+#line 610 "mn-gmail-mailbox.c"
{
-#line 268 "mn-gmail-mailbox.gob"
+#line 286 "mn-gmail-mailbox.gob"
char *text_uri;
char *escaped_username;
@@ -609,7 +641,7 @@ mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean *
if (! body)
return FALSE;
- next_location = self_get_token(body, "top.location = \"", "\"", FALSE, FALSE);
+ next_location = self_get_substring(body, "top.location = \"", "\"", FALSE, FALSE);
g_free(body);
if (! next_location)
@@ -651,7 +683,7 @@ mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean *
if (! body)
return FALSE;
- next_location = self_get_token(body, "location.replace(\"", "\")", FALSE, FALSE);
+ next_location = self_get_substring(body, "location.replace(\"", "\")", FALSE, FALSE);
g_free(body);
if (! next_location)
@@ -670,26 +702,26 @@ mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean *
g_set_error(err, 0, 0, _("login failed"));
return FALSE;
}}
-#line 674 "mn-gmail-mailbox.c"
+#line 706 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 362 "mn-gmail-mailbox.gob"
+#line 380 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
-#line 680 "mn-gmail-mailbox.c"
+#line 712 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::update_cookies"
-#line 362 "mn-gmail-mailbox.gob"
+#line 380 "mn-gmail-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 362 "mn-gmail-mailbox.gob"
+#line 380 "mn-gmail-mailbox.gob"
g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 362 "mn-gmail-mailbox.gob"
+#line 380 "mn-gmail-mailbox.gob"
g_return_if_fail (message != NULL);
-#line 362 "mn-gmail-mailbox.gob"
+#line 380 "mn-gmail-mailbox.gob"
g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 691 "mn-gmail-mailbox.c"
+#line 723 "mn-gmail-mailbox.c"
{
-#line 364 "mn-gmail-mailbox.gob"
+#line 382 "mn-gmail-mailbox.gob"
const GSList *set_cookie_headers;
const GSList *l;
@@ -718,22 +750,22 @@ mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
}
}
}}
-#line 722 "mn-gmail-mailbox.c"
+#line 754 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 393 "mn-gmail-mailbox.gob"
+#line 411 "mn-gmail-mailbox.gob"
static char *
mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
-#line 728 "mn-gmail-mailbox.c"
+#line 760 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie"
-#line 393 "mn-gmail-mailbox.gob"
+#line 411 "mn-gmail-mailbox.gob"
g_return_val_if_fail (self != NULL, (char * )0);
-#line 393 "mn-gmail-mailbox.gob"
+#line 411 "mn-gmail-mailbox.gob"
g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 735 "mn-gmail-mailbox.c"
+#line 767 "mn-gmail-mailbox.c"
{
-#line 395 "mn-gmail-mailbox.gob"
+#line 413 "mn-gmail-mailbox.gob"
GString *cookie;
char *str;
@@ -751,17 +783,17 @@ mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
return str;
}}
-#line 755 "mn-gmail-mailbox.c"
+#line 787 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 413 "mn-gmail-mailbox.gob"
+#line 431 "mn-gmail-mailbox.gob"
static void
mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data)
-#line 761 "mn-gmail-mailbox.c"
+#line 793 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie_cb"
{
-#line 415 "mn-gmail-mailbox.gob"
+#line 433 "mn-gmail-mailbox.gob"
GString *cookie = user_data;
@@ -770,29 +802,29 @@ mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_da
g_string_append_printf(cookie, "%s=%s", (const char *) key, (const char *) value);
}}
-#line 774 "mn-gmail-mailbox.c"
+#line 806 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 424 "mn-gmail-mailbox.gob"
+#line 442 "mn-gmail-mailbox.gob"
static gboolean
mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err)
-#line 780 "mn-gmail-mailbox.c"
+#line 812 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check"
-#line 424 "mn-gmail-mailbox.gob"
+#line 442 "mn-gmail-mailbox.gob"
g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 424 "mn-gmail-mailbox.gob"
+#line 442 "mn-gmail-mailbox.gob"
g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
-#line 424 "mn-gmail-mailbox.gob"
+#line 442 "mn-gmail-mailbox.gob"
g_return_val_if_fail (session != NULL, (gboolean )0);
-#line 424 "mn-gmail-mailbox.gob"
+#line 442 "mn-gmail-mailbox.gob"
g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
-#line 791 "mn-gmail-mailbox.c"
+#line 823 "mn-gmail-mailbox.c"
{
-#line 426 "mn-gmail-mailbox.gob"
+#line 444 "mn-gmail-mailbox.gob"
char *body;
- char *results;
+ char *work;
gboolean status = FALSE;
g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
@@ -803,86 +835,29 @@ mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError **
if (! body)
return FALSE;
- results = strstr(body, "Search results for: is:unread\",\"");
- if (results)
+ work = strstr(body, "Search results for: is:unread\",\"");
+ if (work)
{
GSList *messages = NULL;
- char *p = strstr(results + 32, ",1,");
- while (p)
+ work += 32;
+
+ while ((work = strstr(work, "D([")))
{
- char *inbox_marker;
- char *next_p;
+ GSList *arg_list;
- /*
- * FIXME: we should parse the list instead of using field
- * separator matching (this breaks if a separator is
- * present in a field value).
- */
+ work += 2;
+ if (self_js_get_arg_list(&work, &arg_list) && arg_list)
+ {
+ GSList *l;
- p += 3; /* skip ,1, */
- inbox_marker = strstr(p, ",[\"^i\"");
- next_p = strstr(p, ",1,");
+ MN_LIST_FOREACH(l, arg_list->next)
+ self_append_message(self, &messages, l->data);
- if (inbox_marker && (! next_p || inbox_marker < next_p)) /* msg from inbox */
- {
- char *date;
- char *sender_email;
- char *sender_name;
- char *subject;
-
- time_t sent_time = 0;
- char *from = NULL;
- char *expanded_subject = NULL;
-
- date = self_get_token(p, "\\<b\\>", "\\</b\\>", FALSE, FALSE);
- sender_email = self_get_token(p, "<span id=\\'_user_", "\\'", FALSE, FALSE);
- sender_name = self_get_token(p, "\\'\\>\\<b\\>", "\\</b\\>", FALSE, FALSE);
- subject = self_get_token(p, ";\",\"\\<b\\>", "\\</b\\>", FALSE, FALSE);
-
- if (date)
- {
- sent_time = self_parse_date(date);
- g_free(date);
- }
-
- if (sender_name && sender_email)
- {
- char *tmp;
-
- tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
- from = mn_sgml_ref_expand(tmp);
- g_free(tmp);
- }
- else if (sender_name)
- from = mn_sgml_ref_expand(sender_name);
- else if (sender_email)
- from = mn_sgml_ref_expand(sender_email);
-
- g_free(sender_email);
- g_free(sender_name);
-
- if (subject)
- {
- if (strcmp(subject, "(no subject)"))
- expanded_subject = mn_sgml_ref_expand(subject);
- g_free(subject);
- }
-
- messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self)->uri,
- NULL,
- sent_time,
- NULL,
- from,
- expanded_subject));
-
- g_free(from);
- g_free(expanded_subject);
+ self_js_arg_list_free(arg_list);
}
-
- p = next_p;
}
-
+
GDK_THREADS_ENTER();
mn_mailbox_set_has_new(MN_MAILBOX(self), messages != NULL);
mn_mailbox_set_messages(MN_MAILBOX(self), messages);
@@ -899,20 +874,380 @@ mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError **
return status;
}}
-#line 903 "mn-gmail-mailbox.c"
+#line 878 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 497 "mn-gmail-mailbox.gob"
+static void
+mn_gmail_mailbox_append_message (MNGmailMailbox * self, GSList ** messages, JSArg * arg)
+#line 884 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::append_message"
+#line 497 "mn-gmail-mailbox.gob"
+ g_return_if_fail (self != NULL);
+#line 497 "mn-gmail-mailbox.gob"
+ g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
+#line 497 "mn-gmail-mailbox.gob"
+ g_return_if_fail (messages != NULL);
+#line 497 "mn-gmail-mailbox.gob"
+ g_return_if_fail (arg != NULL);
+#line 895 "mn-gmail-mailbox.c"
+{
+#line 501 "mn-gmail-mailbox.gob"
+
+ char *date_field;
+ char *sender_field;
+ char *subject_field;
+ GSList *labels_list;
+ GSList *l;
+ gboolean in_inbox = FALSE;
+
+ char *date;
+ char *sender_email;
+ char *sender_name;
+ char *subject;
+
+ time_t sent_time = 0;
+ char *from = NULL;
+ char *expanded_subject = NULL;
+
+ if (arg->type != JS_ARG_LIST
+ || ! self_js_arg_list_scan(arg->value.list,
+ 3, JS_ARG_STRING, &date_field,
+ 4, JS_ARG_STRING, &sender_field,
+ 6, JS_ARG_STRING, &subject_field,
+ 8, JS_ARG_LIST, &labels_list,
+ -1))
+ return;
+
+ MN_LIST_FOREACH(l, labels_list)
+ {
+ JSArg *label = l->data;
+
+ if (label->type == JS_ARG_STRING && ! strcmp(label->value.string, "^i"))
+ {
+ in_inbox = TRUE;
+ break;
+ }
+ }
+
+ if (! in_inbox)
+ return;
+
+ date = self_get_substring(date_field, "<b>", "</b>", FALSE, FALSE);
+ sender_email = self_get_substring(sender_field, "<span id='_user_", "'", FALSE, FALSE);
+ sender_name = self_get_substring(sender_field, "'><b>", "</b>", FALSE, FALSE);
+ subject = self_get_substring(subject_field, "<b>", "</b>", FALSE, FALSE);
+
+ if (date)
+ {
+ sent_time = self_parse_date(date);
+ g_free(date);
+ }
+
+ if (sender_name && sender_email)
+ {
+ char *tmp;
+
+ tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
+ from = mn_sgml_ref_expand(tmp);
+ g_free(tmp);
+ }
+ else if (sender_name)
+ from = mn_sgml_ref_expand(sender_name);
+ else if (sender_email)
+ from = mn_sgml_ref_expand(sender_email);
+
+ g_free(sender_email);
+ g_free(sender_name);
+
+ if (subject)
+ {
+ if (strcmp(subject, "(no subject)"))
+ expanded_subject = mn_sgml_ref_expand(subject);
+ g_free(subject);
+ }
+
+ *messages = g_slist_append(*messages, mn_message_new(MN_MAILBOX(self)->uri,
+ NULL,
+ sent_time,
+ NULL,
+ from,
+ expanded_subject));
+
+ g_free(from);
+ g_free(expanded_subject);
+ }}
+#line 982 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 586 "mn-gmail-mailbox.gob"
+static gboolean
+mn_gmail_mailbox_js_get_arg_list (char ** str, GSList ** list)
+#line 988 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_get_arg_list"
+#line 586 "mn-gmail-mailbox.gob"
+ g_return_val_if_fail (str != NULL, (gboolean )0);
+#line 586 "mn-gmail-mailbox.gob"
+ g_return_val_if_fail (list != NULL, (gboolean )0);
+#line 995 "mn-gmail-mailbox.c"
+{
+#line 588 "mn-gmail-mailbox.gob"
+
+ GSList *our_list = NULL;
+ gboolean done = FALSE;
+ gboolean in_literal = FALSE; /* a string enclosed in double quotes */
+ gboolean quoted = FALSE; /* the next character is quoted with a backslash */
+ JSArg *arg = NULL;
+ GString *string;
+
+ g_return_val_if_fail(*str != NULL, FALSE);
+ g_return_val_if_fail(**str == '[', FALSE);
+
+ (*str)++; /* skip the initial open bracket */
+ string = g_string_new(NULL);
+
+ while (**str && ! done)
+ {
+ gboolean next = TRUE;
+
+ if (in_literal)
+ switch (**str)
+ {
+ case '\\':
+ quoted = TRUE;
+ break;
+
+ case '"':
+ if (! quoted)
+ {
+ in_literal = FALSE;
+ break;
+ }
+ /* else pass through */
+
+ default:
+ quoted = FALSE;
+ g_string_append_c(string, **str);
+ }
+ else
+ switch (**str)
+ {
+ case '[':
+ {
+ GSList *sub_list;
+
+ if (arg || ! self_js_get_arg_list(str, &sub_list))
+ goto end; /* parse error */
+
+ arg = self_js_arg_new_list(sub_list);
+ next = FALSE;
+ break;
+ }
+
+ case ']':
+ done = TRUE;
+ /* fall through */
+
+ case ',':
+ if (! arg)
+ arg = self_js_arg_new_string(string->str);
+
+ our_list = g_slist_append(our_list, arg);
+
+ g_string_truncate(string, 0);
+ arg = NULL;
+ break;
+
+ case '"':
+ in_literal = TRUE;
+ break;
+
+ default:
+ g_string_append_c(string, **str);
+ }
+
+ if (next)
+ (*str)++;
+ }
+
+ end:
+ if (arg)
+ self_js_arg_free(arg);
+ g_string_free(string, TRUE);
+
+ if (done)
+ {
+ *list = our_list;
+ return TRUE;
+ }
+ else
+ {
+ self_js_arg_list_free(our_list);
+ return FALSE;
+ }
+ }}
+#line 1092 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 683 "mn-gmail-mailbox.gob"
+static gboolean
+mn_gmail_mailbox_js_arg_list_scan (GSList * list, ...)
+#line 1098 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_list_scan"
+{
+#line 685 "mn-gmail-mailbox.gob"
+
+ va_list args;
+ int position;
+ gboolean status = TRUE;
+
+ va_start(args, list);
+
+ while ((position = va_arg(args, int)) != -1)
+ {
+ JSArgType type = va_arg(args, JSArgType);
+ JSArg *arg = g_slist_nth_data(list, position);
+
+ if (! arg)
+ {
+ status = FALSE;
+ break;
+ }
+
+ switch (type)
+ {
+ case JS_ARG_STRING:
+ {
+ char **str = va_arg(args, char **);
+ g_return_val_if_fail(str != NULL, FALSE);
+
+ *str = arg->value.string;
+ break;
+ }
+
+ case JS_ARG_LIST:
+ {
+ GSList **elem_list = va_arg(args, GSList **);
+ g_return_val_if_fail(elem_list != NULL, FALSE);
+
+ *elem_list = arg->value.list;
+ break;
+ }
+
+ default:
+ g_return_val_if_reached(FALSE);
+ }
+ }
+
+ va_end(args);
+
+ return status;
+ }}
+#line 1150 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 733 "mn-gmail-mailbox.gob"
+static void
+mn_gmail_mailbox_js_arg_list_free (GSList * list)
+#line 1156 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_list_free"
+{
+#line 735 "mn-gmail-mailbox.gob"
+
+ eel_g_slist_free_deep_custom(list, (GFunc) self_js_arg_free, NULL);
+ }}
+#line 1164 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 739 "mn-gmail-mailbox.gob"
+static JSArg *
+mn_gmail_mailbox_js_arg_new_string (const char * string)
+#line 1170 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_new_string"
+#line 739 "mn-gmail-mailbox.gob"
+ g_return_val_if_fail (string != NULL, (JSArg * )0);
+#line 1175 "mn-gmail-mailbox.c"
+{
+#line 741 "mn-gmail-mailbox.gob"
+
+ JSArg *arg;
+
+ arg = g_new(JSArg, 1);
+ arg->type = JS_ARG_STRING;
+ arg->value.string = g_strdup(string);
+
+ return arg;
+ }}
+#line 1187 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 751 "mn-gmail-mailbox.gob"
+static JSArg *
+mn_gmail_mailbox_js_arg_new_list (GSList * list)
+#line 1193 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_new_list"
+{
+#line 753 "mn-gmail-mailbox.gob"
+
+ JSArg *arg;
+
+ arg = g_new(JSArg, 1);
+ arg->type = JS_ARG_LIST;
+ arg->value.list = list;
+
+ return arg;
+ }}
+#line 1207 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 763 "mn-gmail-mailbox.gob"
+static void
+mn_gmail_mailbox_js_arg_free (JSArg * arg)
+#line 1213 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_free"
+#line 763 "mn-gmail-mailbox.gob"
+ g_return_if_fail (arg != NULL);
+#line 1218 "mn-gmail-mailbox.c"
+{
+#line 765 "mn-gmail-mailbox.gob"
+
+ switch (arg->type)
+ {
+ case JS_ARG_STRING:
+ g_free(arg->value.string);
+ break;
+
+ case JS_ARG_LIST:
+ self_js_arg_list_free(arg->value.list);
+ break;
+
+ default:
+ g_return_if_reached();
+ }
+
+ g_free(arg);
+ }}
+#line 1238 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
-#line 536 "mn-gmail-mailbox.gob"
+#line 783 "mn-gmail-mailbox.gob"
static time_t
mn_gmail_mailbox_parse_date (const char * date)
-#line 909 "mn-gmail-mailbox.c"
+#line 1244 "mn-gmail-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_date"
-#line 536 "mn-gmail-mailbox.gob"
+#line 783 "mn-gmail-mailbox.gob"
g_return_val_if_fail (date != NULL, (time_t )0);
-#line 914 "mn-gmail-mailbox.c"
+#line 1249 "mn-gmail-mailbox.c"
{
-#line 538 "mn-gmail-mailbox.gob"
+#line 785 "mn-gmail-mailbox.gob"
time_t t = 0;
#ifdef HAVE_TIMEGM
@@ -966,5 +1301,5 @@ mn_gmail_mailbox_parse_date (const char * date)
return t;
}}
-#line 970 "mn-gmail-mailbox.c"
+#line 1305 "mn-gmail-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-gmail-mailbox.gob b/src/mn-gmail-mailbox.gob
@@ -30,15 +30,33 @@ requires 2.0.10
#include "config.h"
#include <stdio.h>
#include <string.h>
+#include <stdarg.h>
#include <time.h>
#ifdef TM_IN_SYS_TIME
#include <sys/time.h>
#endif
#include <glib/gi18n.h>
+#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-util.h"
#include "mn-stock.h"
#include "mn-sgml-ref.h"
+
+ typedef enum
+ {
+ JS_ARG_STRING,
+ JS_ARG_LIST
+ } JSArgType;
+
+ typedef struct
+ {
+ JSArgType type;
+ union
+ {
+ char *string;
+ GSList *list;
+ } value;
+ } JSArg;
%}
class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
@@ -218,26 +236,26 @@ class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
}
/**
- * get_token:
+ * get_substring:
* @str: the string to search
- * @pre: the start of the token
- * @post: the end of the token
+ * @pre: the start of the substring
+ * @post: the end of the substring
* @include_pre: whether to include @pre in the result or not
* @include_post: whether to include @post in the result or not
*
- * Gets the first token of @str included between @pre and @post.
+ * Gets the first substring of @str included between @pre and @post.
*
- * Return value: a newly allocated string containing the token or
- * %NULL if not found.
+ * Return value: a newly allocated string containing the substring
+ * or %NULL if not found.
**/
private char *
- get_token (const char *str (check null),
- const char *pre (check null),
- const char *post (check null),
- gboolean include_pre,
- gboolean include_post)
+ get_substring (const char *str (check null),
+ const char *pre (check null),
+ const char *post (check null),
+ gboolean include_pre,
+ gboolean include_post)
{
- char *token = NULL;
+ char *sub = NULL;
char *pre_loc;
pre_loc = strstr(str, pre);
@@ -253,11 +271,11 @@ class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
char *start = include_pre ? pre_loc : after_pre_loc;
char *end = include_post ? post_loc + strlen(post) : post_loc;
- token = g_strndup(start, end - start);
+ sub = g_strndup(start, end - start);
}
}
- return token;
+ return sub;
}
private gboolean
@@ -297,7 +315,7 @@ class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
if (! body)
return FALSE;
- next_location = self_get_token(body, "top.location = \"", "\"", FALSE, FALSE);
+ next_location = self_get_substring(body, "top.location = \"", "\"", FALSE, FALSE);
g_free(body);
if (! next_location)
@@ -339,7 +357,7 @@ class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
if (! body)
return FALSE;
- next_location = self_get_token(body, "location.replace(\"", "\")", FALSE, FALSE);
+ next_location = self_get_substring(body, "location.replace(\"", "\")", FALSE, FALSE);
g_free(body);
if (! next_location)
@@ -425,7 +443,7 @@ class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
check (self, Soup:Session *session (check null type), GError **err)
{
char *body;
- char *results;
+ char *work;
gboolean status = FALSE;
g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
@@ -436,86 +454,29 @@ class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
if (! body)
return FALSE;
- results = strstr(body, "Search results for: is:unread\",\"");
- if (results)
+ work = strstr(body, "Search results for: is:unread\",\"");
+ if (work)
{
GSList *messages = NULL;
- char *p = strstr(results + 32, ",1,");
- while (p)
+ work += 32;
+
+ while ((work = strstr(work, "D([")))
{
- char *inbox_marker;
- char *next_p;
+ GSList *arg_list;
- /*
- * FIXME: we should parse the list instead of using field
- * separator matching (this breaks if a separator is
- * present in a field value).
- */
+ work += 2;
+ if (self_js_get_arg_list(&work, &arg_list) && arg_list)
+ {
+ GSList *l;
- p += 3; /* skip ,1, */
- inbox_marker = strstr(p, ",[\"^i\"");
- next_p = strstr(p, ",1,");
+ MN_LIST_FOREACH(l, arg_list->next)
+ self_append_message(self, &messages, l->data);
- if (inbox_marker && (! next_p || inbox_marker < next_p)) /* msg from inbox */
- {
- char *date;
- char *sender_email;
- char *sender_name;
- char *subject;
-
- time_t sent_time = 0;
- char *from = NULL;
- char *expanded_subject = NULL;
-
- date = self_get_token(p, "\\<b\\>", "\\</b\\>", FALSE, FALSE);
- sender_email = self_get_token(p, "<span id=\\'_user_", "\\'", FALSE, FALSE);
- sender_name = self_get_token(p, "\\'\\>\\<b\\>", "\\</b\\>", FALSE, FALSE);
- subject = self_get_token(p, ";\",\"\\<b\\>", "\\</b\\>", FALSE, FALSE);
-
- if (date)
- {
- sent_time = self_parse_date(date);
- g_free(date);
- }
-
- if (sender_name && sender_email)
- {
- char *tmp;
-
- tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
- from = mn_sgml_ref_expand(tmp);
- g_free(tmp);
- }
- else if (sender_name)
- from = mn_sgml_ref_expand(sender_name);
- else if (sender_email)
- from = mn_sgml_ref_expand(sender_email);
-
- g_free(sender_email);
- g_free(sender_name);
-
- if (subject)
- {
- if (strcmp(subject, "(no subject)"))
- expanded_subject = mn_sgml_ref_expand(subject);
- g_free(subject);
- }
-
- messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self)->uri,
- NULL,
- sent_time,
- NULL,
- from,
- expanded_subject));
-
- g_free(from);
- g_free(expanded_subject);
+ self_js_arg_list_free(arg_list);
}
-
- p = next_p;
}
-
+
GDK_THREADS_ENTER();
mn_mailbox_set_has_new(MN_MAILBOX(self), messages != NULL);
mn_mailbox_set_messages(MN_MAILBOX(self), messages);
@@ -532,6 +493,292 @@ class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
return status;
}
+
+ private void
+ append_message (self,
+ GSList **messages (check null),
+ JSArg *arg (check null))
+ {
+ char *date_field;
+ char *sender_field;
+ char *subject_field;
+ GSList *labels_list;
+ GSList *l;
+ gboolean in_inbox = FALSE;
+
+ char *date;
+ char *sender_email;
+ char *sender_name;
+ char *subject;
+
+ time_t sent_time = 0;
+ char *from = NULL;
+ char *expanded_subject = NULL;
+
+ if (arg->type != JS_ARG_LIST
+ || ! self_js_arg_list_scan(arg->value.list,
+ 3, JS_ARG_STRING, &date_field,
+ 4, JS_ARG_STRING, &sender_field,
+ 6, JS_ARG_STRING, &subject_field,
+ 8, JS_ARG_LIST, &labels_list,
+ -1))
+ return;
+
+ MN_LIST_FOREACH(l, labels_list)
+ {
+ JSArg *label = l->data;
+
+ if (label->type == JS_ARG_STRING && ! strcmp(label->value.string, "^i"))
+ {
+ in_inbox = TRUE;
+ break;
+ }
+ }
+
+ if (! in_inbox)
+ return;
+
+ date = self_get_substring(date_field, "<b>", "</b>", FALSE, FALSE);
+ sender_email = self_get_substring(sender_field, "<span id='_user_", "'", FALSE, FALSE);
+ sender_name = self_get_substring(sender_field, "'><b>", "</b>", FALSE, FALSE);
+ subject = self_get_substring(subject_field, "<b>", "</b>", FALSE, FALSE);
+
+ if (date)
+ {
+ sent_time = self_parse_date(date);
+ g_free(date);
+ }
+
+ if (sender_name && sender_email)
+ {
+ char *tmp;
+
+ tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
+ from = mn_sgml_ref_expand(tmp);
+ g_free(tmp);
+ }
+ else if (sender_name)
+ from = mn_sgml_ref_expand(sender_name);
+ else if (sender_email)
+ from = mn_sgml_ref_expand(sender_email);
+
+ g_free(sender_email);
+ g_free(sender_name);
+
+ if (subject)
+ {
+ if (strcmp(subject, "(no subject)"))
+ expanded_subject = mn_sgml_ref_expand(subject);
+ g_free(subject);
+ }
+
+ *messages = g_slist_append(*messages, mn_message_new(MN_MAILBOX(self)->uri,
+ NULL,
+ sent_time,
+ NULL,
+ from,
+ expanded_subject));
+
+ g_free(from);
+ g_free(expanded_subject);
+ }
+
+ private gboolean
+ js_get_arg_list (char **str (check null), GSList **list (check null))
+ {
+ GSList *our_list = NULL;
+ gboolean done = FALSE;
+ gboolean in_literal = FALSE; /* a string enclosed in double quotes */
+ gboolean quoted = FALSE; /* the next character is quoted with a backslash */
+ JSArg *arg = NULL;
+ GString *string;
+
+ g_return_val_if_fail(*str != NULL, FALSE);
+ g_return_val_if_fail(**str == '[', FALSE);
+
+ (*str)++; /* skip the initial open bracket */
+ string = g_string_new(NULL);
+
+ while (**str && ! done)
+ {
+ gboolean next = TRUE;
+
+ if (in_literal)
+ switch (**str)
+ {
+ case '\\':
+ quoted = TRUE;
+ break;
+
+ case '"':
+ if (! quoted)
+ {
+ in_literal = FALSE;
+ break;
+ }
+ /* else pass through */
+
+ default:
+ quoted = FALSE;
+ g_string_append_c(string, **str);
+ }
+ else
+ switch (**str)
+ {
+ case '[':
+ {
+ GSList *sub_list;
+
+ if (arg || ! self_js_get_arg_list(str, &sub_list))
+ goto end; /* parse error */
+
+ arg = self_js_arg_new_list(sub_list);
+ next = FALSE;
+ break;
+ }
+
+ case ']':
+ done = TRUE;
+ /* fall through */
+
+ case ',':
+ if (! arg)
+ arg = self_js_arg_new_string(string->str);
+
+ our_list = g_slist_append(our_list, arg);
+
+ g_string_truncate(string, 0);
+ arg = NULL;
+ break;
+
+ case '"':
+ in_literal = TRUE;
+ break;
+
+ default:
+ g_string_append_c(string, **str);
+ }
+
+ if (next)
+ (*str)++;
+ }
+
+ end:
+ if (arg)
+ self_js_arg_free(arg);
+ g_string_free(string, TRUE);
+
+ if (done)
+ {
+ *list = our_list;
+ return TRUE;
+ }
+ else
+ {
+ self_js_arg_list_free(our_list);
+ return FALSE;
+ }
+ }
+
+ private gboolean
+ js_arg_list_scan (GSList *list, ...)
+ {
+ va_list args;
+ int position;
+ gboolean status = TRUE;
+
+ va_start(args, list);
+
+ while ((position = va_arg(args, int)) != -1)
+ {
+ JSArgType type = va_arg(args, JSArgType);
+ JSArg *arg = g_slist_nth_data(list, position);
+
+ if (! arg)
+ {
+ status = FALSE;
+ break;
+ }
+
+ switch (type)
+ {
+ case JS_ARG_STRING:
+ {
+ char **str = va_arg(args, char **);
+ g_return_val_if_fail(str != NULL, FALSE);
+
+ *str = arg->value.string;
+ break;
+ }
+
+ case JS_ARG_LIST:
+ {
+ GSList **elem_list = va_arg(args, GSList **);
+ g_return_val_if_fail(elem_list != NULL, FALSE);
+
+ *elem_list = arg->value.list;
+ break;
+ }
+
+ default:
+ g_return_val_if_reached(FALSE);
+ }
+ }
+
+ va_end(args);
+
+ return status;
+ }
+
+ private void
+ js_arg_list_free (GSList *list)
+ {
+ eel_g_slist_free_deep_custom(list, (GFunc) self_js_arg_free, NULL);
+ }
+
+ private JSArg *
+ js_arg_new_string (const char *string (check null))
+ {
+ JSArg *arg;
+
+ arg = g_new(JSArg, 1);
+ arg->type = JS_ARG_STRING;
+ arg->value.string = g_strdup(string);
+
+ return arg;
+ }
+
+ private JSArg *
+ js_arg_new_list (GSList *list)
+ {
+ JSArg *arg;
+
+ arg = g_new(JSArg, 1);
+ arg->type = JS_ARG_LIST;
+ arg->value.list = list;
+
+ return arg;
+ }
+
+ private void
+ js_arg_free (JSArg *arg (check null))
+ {
+ switch (arg->type)
+ {
+ case JS_ARG_STRING:
+ g_free(arg->value.string);
+ break;
+
+ case JS_ARG_LIST:
+ self_js_arg_list_free(arg->value.list);
+ break;
+
+ default:
+ g_return_if_reached();
+ }
+
+ g_free(arg);
+ }
private time_t
parse_date (const char *date (check null))
diff --git a/src/mn-gmail-mailbox.h b/src/mn-gmail-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-gmime-stream-vfs-private.h b/src/mn-gmime-stream-vfs-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_GMIME_STREAM_VFS_PRIVATE_H__
#define __MN_GMIME_STREAM_VFS_PRIVATE_H__
diff --git a/src/mn-gmime-stream-vfs.c b/src/mn-gmime-stream-vfs.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -159,9 +159,9 @@ mn_gmime_stream_vfs_class_init (MNGMimeStreamVFSClass * c G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+ GMimeStreamClass *gmime_stream_class = (GMimeStreamClass *)c;
g_type_class_add_private(c,sizeof(MNGMimeStreamVFSPrivate));
- GMimeStreamClass *gmime_stream_class = (GMimeStreamClass *)c;
parent_class = g_type_class_ref (GMIME_TYPE_STREAM);
diff --git a/src/mn-gmime-stream-vfs.h b/src/mn-gmime-stream-vfs.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-imap-mailbox-private.h b/src/mn-imap-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_IMAP_MAILBOX_PRIVATE_H__
#define __MN_IMAP_MAILBOX_PRIVATE_H__
@@ -10,6 +10,21 @@ extern "C" {
#endif /* __cplusplus */
+#line 32 "mn-imap-mailbox.gob"
+
+#include "mn-client-session.h"
+
+#line 18 "mn-imap-mailbox-private.h"
+struct _MNIMAPMailboxPrivate {
+#line 143 "mn-imap-mailbox.gob"
+ int removed;
+#line 145 "mn-imap-mailbox.gob"
+ MNClientSessionPrivate * idle_session;
+#line 146 "mn-imap-mailbox.gob"
+ GMutex * idle_session_mutex;
+#line 26 "mn-imap-mailbox-private.h"
+};
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/src/mn-imap-mailbox-properties-private.h b/src/mn-imap-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_IMAP_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_IMAP_MAILBOX_PROPERTIES_PRIVATE_H__
diff --git a/src/mn-imap-mailbox-properties.c b/src/mn-imap-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -298,14 +298,14 @@ ___2_mn_imap_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
- mn_tooltips_set_tips(pi->tooltips,
- pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
- pi->username_entry, _("Your username on the IMAP server"),
- pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the IMAP server"),
- pi->port_spin[1], _("The port number of the IMAP server"),
- selfp->mailbox_entry, _("The mailbox name"),
- NULL);
+ mn_gtk_tooltips_set_tips(pi->tooltips,
+ pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
+ pi->username_entry, _("Your username on the IMAP server"),
+ pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
+ pi->port_spin[0], _("The port number of the IMAP server"),
+ pi->port_spin[1], _("The port number of the IMAP server"),
+ selfp->mailbox_entry, _("The mailbox name"),
+ NULL);
g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
diff --git a/src/mn-imap-mailbox-properties.gob b/src/mn-imap-mailbox-properties.gob
@@ -119,14 +119,14 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
- mn_tooltips_set_tips(pi->tooltips,
- pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
- pi->username_entry, _("Your username on the IMAP server"),
- pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the IMAP server"),
- pi->port_spin[1], _("The port number of the IMAP server"),
- selfp->mailbox_entry, _("The mailbox name"),
- NULL);
+ mn_gtk_tooltips_set_tips(pi->tooltips,
+ pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
+ pi->username_entry, _("Your username on the IMAP server"),
+ pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
+ pi->port_spin[0], _("The port number of the IMAP server"),
+ pi->port_spin[1], _("The port number of the IMAP server"),
+ selfp->mailbox_entry, _("The mailbox name"),
+ NULL);
g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
diff --git a/src/mn-imap-mailbox-properties.h b/src/mn-imap-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-imap-mailbox.c b/src/mn-imap-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -21,7 +21,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 27 "mn-imap-mailbox.gob"
+#line 36 "mn-imap-mailbox.gob"
#include "config.h"
#include <stdio.h>
@@ -33,7 +33,6 @@
#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-util.h"
-#include "mn-client-session.h"
#ifdef WITH_MIME
#include "mn-message-mime.h"
#endif
@@ -45,6 +44,8 @@
#define IS_BAD(response) IS(response, "BAD")
#define IS_BYE(response) IS(response, "BYE")
+#define REMOVED(self) (g_atomic_int_get(&(self)->_priv->removed))
+
enum
{
STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
@@ -56,13 +57,14 @@
STATE_AUTHENTICATE,
#endif
STATE_LOGIN,
-#ifdef WITH_MIME
STATE_EXAMINE,
STATE_SEARCH,
+#ifdef WITH_MIME
STATE_FETCH,
#else /* WITH_MIME */
STATE_STATUS,
#endif
+ STATE_IDLE,
STATE_LOGOUT
};
@@ -73,31 +75,46 @@
RESULT_DEFAULT_HANDLER = -3 /* invoke the default response handler */
};
+ typedef enum
+ {
+ IDLE_STATE_NORMAL,
+ IDLE_STATE_IDLING,
+ IDLE_STATE_WAS_IDLING
+ } IdleState;
+
struct _MNClientSessionPrivate
{
MNMailbox *mailbox;
MNIMAPMailbox *self;
MNClientSession *session;
+
int numeric_tag;
char tag[5];
+
char **capabilities;
GSList *auth_mechanisms;
gboolean authentication_failed;
-#ifdef WITH_MIME
+
gboolean search_received;
GSList *fetch_numbers;
char *fetch_set;
+
+#ifdef WITH_MIME
GSList *received_numbers;
GSList *messages;
#else /* WITH_MIME */
gboolean status_received;
#endif
+
#ifdef WITH_SSL
gboolean starttls_completed;
#endif
#ifdef WITH_SASL
const char *sasl_mechanism;
#endif
+
+ IdleState idle_state;
+ gboolean could_idle; /* could idle at least once */
};
struct _MNClientSessionResponse
@@ -109,7 +126,7 @@
char *arguments;
};
-#line 113 "mn-imap-mailbox.c"
+#line 130 "mn-imap-mailbox.c"
/* self casting macros */
#define SELF(x) MN_IMAP_MAILBOX(x)
#define SELF_CONST(x) MN_IMAP_MAILBOX_CONST(x)
@@ -128,6 +145,7 @@ static void mn_imap_mailbox_init (MNIMAPMailbox * o) G_GNUC_UNUSED;
static void mn_imap_mailbox_class_init (MNIMAPMailboxClass * class) G_GNUC_UNUSED;
static GObject * ___2_mn_imap_mailbox_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
static gboolean ___3_mn_imap_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
+static void ___4_mn_imap_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
@@ -143,15 +161,19 @@ static int mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientS
static int mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_imap_mailbox_enter_idle_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_status_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static MNAuthenticatedMailboxResult ___17_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox, GError ** err) G_GNUC_UNUSED;
+static MNAuthenticatedMailboxResult ___1a_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox, GError ** err) G_GNUC_UNUSED;
static void mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static MNClientSessionResponse * mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static void mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static int mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
static void mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
static int mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...) G_GNUC_UNUSED;
static void mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities) G_GNUC_UNUSED;
@@ -181,6 +203,8 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
#define self_handle_search_cb mn_imap_mailbox_handle_search_cb
#define self_enter_fetch_cb mn_imap_mailbox_enter_fetch_cb
#define self_handle_fetch_cb mn_imap_mailbox_handle_fetch_cb
+#define self_enter_idle_cb mn_imap_mailbox_enter_idle_cb
+#define self_handle_idle_cb mn_imap_mailbox_handle_idle_cb
#define self_enter_status_cb mn_imap_mailbox_enter_status_cb
#define self_handle_status_cb mn_imap_mailbox_handle_status_cb
#define self_enter_logout_cb mn_imap_mailbox_enter_logout_cb
@@ -189,6 +213,8 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
#define self_response_new_cb mn_imap_mailbox_response_new_cb
#define self_response_free_cb mn_imap_mailbox_response_free_cb
#define self_custom_handler_cb mn_imap_mailbox_custom_handler_cb
+#define self_pre_read_cb mn_imap_mailbox_pre_read_cb
+#define self_post_read_cb mn_imap_mailbox_post_read_cb
#define self_session_set_error_from_arguments mn_imap_mailbox_session_set_error_from_arguments
#define self_session_write mn_imap_mailbox_session_write
#define self_session_parse_capabilities mn_imap_mailbox_session_parse_capabilities
@@ -240,47 +266,71 @@ GET_NEW_VARG (const char *first, ...)
return ret;
}
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::finalize"
+ MNIMAPMailbox *self G_GNUC_UNUSED = MN_IMAP_MAILBOX (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+ if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 146 "mn-imap-mailbox.gob"
+ if(self->_priv->idle_session_mutex) { g_mutex_free ((gpointer) self->_priv->idle_session_mutex); self->_priv->idle_session_mutex = NULL; }
+#line 281 "mn-imap-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
static void
mn_imap_mailbox_init (MNIMAPMailbox * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNIMAPMailboxPrivate);
+#line 146 "mn-imap-mailbox.gob"
+ o->_priv->idle_session_mutex = g_mutex_new();
+#line 292 "mn-imap-mailbox.c"
}
#undef __GOB_FUNCTION__
-#line 117 "mn-imap-mailbox.gob"
+#line 148 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_class_init (MNIMAPMailboxClass * class G_GNUC_UNUSED)
-#line 253 "mn-imap-mailbox.c"
+#line 298 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::class_init"
- GObjectClass *g_object_class = (GObjectClass *)class;
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
+ g_type_class_add_private(class,sizeof(MNIMAPMailboxPrivate));
+
parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
-#line 122 "mn-imap-mailbox.gob"
+#line 153 "mn-imap-mailbox.gob"
g_object_class->constructor = ___2_mn_imap_mailbox_constructor;
-#line 139 "mn-imap-mailbox.gob"
+#line 170 "mn-imap-mailbox.gob"
mn_mailbox_class->impl_is = ___3_mn_imap_mailbox_impl_is;
-#line 681 "mn-imap-mailbox.gob"
- mn_authenticated_mailbox_class->impl_authenticated_check = ___17_mn_imap_mailbox_impl_authenticated_check;
-#line 268 "mn-imap-mailbox.c"
+#line 176 "mn-imap-mailbox.gob"
+ mn_mailbox_class->removed = ___4_mn_imap_mailbox_removed;
+#line 823 "mn-imap-mailbox.gob"
+ mn_authenticated_mailbox_class->impl_authenticated_check = ___1a_mn_imap_mailbox_impl_authenticated_check;
+#line 317 "mn-imap-mailbox.c"
+ g_object_class->finalize = ___finalize;
{
-#line 118 "mn-imap-mailbox.gob"
+#line 149 "mn-imap-mailbox.gob"
MN_MAILBOX_CLASS(class)->format = "IMAP";
-#line 274 "mn-imap-mailbox.c"
+#line 324 "mn-imap-mailbox.c"
}
}
#undef __GOB_FUNCTION__
-#line 122 "mn-imap-mailbox.gob"
+#line 153 "mn-imap-mailbox.gob"
static GObject *
___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 284 "mn-imap-mailbox.c"
+#line 334 "mn-imap-mailbox.c"
#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
((G_OBJECT_CLASS(parent_class)->constructor)? \
(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -288,7 +338,7 @@ ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_pr
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::constructor"
{
-#line 124 "mn-imap-mailbox.gob"
+#line 155 "mn-imap-mailbox.gob"
GObject *object;
MNMailbox *mailbox;
@@ -303,49 +353,84 @@ ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_pr
return object;
}}
-#line 307 "mn-imap-mailbox.c"
+#line 357 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 139 "mn-imap-mailbox.gob"
+#line 170 "mn-imap-mailbox.gob"
static gboolean
___3_mn_imap_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 314 "mn-imap-mailbox.c"
+#line 364 "mn-imap-mailbox.c"
#define PARENT_HANDLER(___dummy,___uri) \
((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
((gboolean )0))
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_is"
-#line 139 "mn-imap-mailbox.gob"
+#line 170 "mn-imap-mailbox.gob"
g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 139 "mn-imap-mailbox.gob"
+#line 170 "mn-imap-mailbox.gob"
g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 325 "mn-imap-mailbox.c"
+#line 375 "mn-imap-mailbox.c"
{
-#line 141 "mn-imap-mailbox.gob"
+#line 172 "mn-imap-mailbox.gob"
return MN_URI_IS_IMAP(uri);
}}
-#line 331 "mn-imap-mailbox.c"
+#line 381 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 176 "mn-imap-mailbox.gob"
+static void
+___4_mn_imap_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 388 "mn-imap-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+ { if(MN_MAILBOX_CLASS(parent_class)->removed) \
+ (* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::removed"
+#line 176 "mn-imap-mailbox.gob"
+ g_return_if_fail (mailbox != NULL);
+#line 176 "mn-imap-mailbox.gob"
+ g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 398 "mn-imap-mailbox.c"
+{
+#line 178 "mn-imap-mailbox.gob"
+
+ Self *self = SELF(mailbox);
+
+ g_atomic_int_inc(&selfp->removed);
+
+ g_mutex_lock(selfp->idle_session_mutex);
+ if (selfp->idle_session)
+ {
+ mn_client_session_write(selfp->idle_session->session, "DONE");
+ selfp->idle_session->idle_state = IDLE_STATE_WAS_IDLING;
+ }
+ g_mutex_unlock(selfp->idle_session_mutex);
+
+ PARENT_HANDLER(mailbox);
+ }}
+#line 416 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 145 "mn-imap-mailbox.gob"
+#line 194 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 338 "mn-imap-mailbox.c"
+#line 423 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_greeting_cb"
-#line 145 "mn-imap-mailbox.gob"
+#line 194 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 145 "mn-imap-mailbox.gob"
+#line 194 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 145 "mn-imap-mailbox.gob"
+#line 194 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 347 "mn-imap-mailbox.c"
+#line 432 "mn-imap-mailbox.c"
{
-#line 149 "mn-imap-mailbox.gob"
+#line 198 "mn-imap-mailbox.gob"
priv->session = session;
@@ -372,22 +457,22 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
else
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}}
-#line 376 "mn-imap-mailbox.c"
+#line 461 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 176 "mn-imap-mailbox.gob"
+#line 225 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 382 "mn-imap-mailbox.c"
+#line 467 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_capability_cb"
-#line 176 "mn-imap-mailbox.gob"
+#line 225 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 176 "mn-imap-mailbox.gob"
+#line 225 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 389 "mn-imap-mailbox.c"
+#line 474 "mn-imap-mailbox.c"
{
-#line 179 "mn-imap-mailbox.gob"
+#line 228 "mn-imap-mailbox.gob"
g_strfreev(priv->capabilities);
priv->capabilities = NULL;
@@ -397,24 +482,24 @@ mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionP
return self_session_write(priv, "CAPABILITY");
}}
-#line 401 "mn-imap-mailbox.c"
+#line 486 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 189 "mn-imap-mailbox.gob"
+#line 238 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 407 "mn-imap-mailbox.c"
+#line 492 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_capability_cb"
-#line 189 "mn-imap-mailbox.gob"
+#line 238 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 189 "mn-imap-mailbox.gob"
+#line 238 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 189 "mn-imap-mailbox.gob"
+#line 238 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 416 "mn-imap-mailbox.c"
+#line 501 "mn-imap-mailbox.c"
{
-#line 193 "mn-imap-mailbox.gob"
+#line 242 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -442,22 +527,22 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
return RESULT_DEFAULT_HANDLER;
}}
-#line 446 "mn-imap-mailbox.c"
+#line 531 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 221 "mn-imap-mailbox.gob"
+#line 270 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 452 "mn-imap-mailbox.c"
+#line 537 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_starttls_cb"
-#line 221 "mn-imap-mailbox.gob"
+#line 270 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 221 "mn-imap-mailbox.gob"
+#line 270 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 459 "mn-imap-mailbox.c"
+#line 544 "mn-imap-mailbox.c"
{
-#line 224 "mn-imap-mailbox.gob"
+#line 273 "mn-imap-mailbox.gob"
#ifdef WITH_SSL
return self_session_write(priv, "STARTTLS");
@@ -465,24 +550,24 @@ mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPri
g_return_val_if_reached(0);
#endif /* WITH_SSL */
}}
-#line 469 "mn-imap-mailbox.c"
+#line 554 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 232 "mn-imap-mailbox.gob"
+#line 281 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 475 "mn-imap-mailbox.c"
+#line 560 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_starttls_cb"
-#line 232 "mn-imap-mailbox.gob"
+#line 281 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 232 "mn-imap-mailbox.gob"
+#line 281 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 232 "mn-imap-mailbox.gob"
+#line 281 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 484 "mn-imap-mailbox.c"
+#line 569 "mn-imap-mailbox.c"
{
-#line 236 "mn-imap-mailbox.gob"
+#line 285 "mn-imap-mailbox.gob"
#ifdef WITH_SSL
if (response->continuation)
@@ -510,29 +595,35 @@ mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionRe
g_return_val_if_reached(0);
#endif /* WITH_SSL */
}}
-#line 514 "mn-imap-mailbox.c"
+#line 599 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 264 "mn-imap-mailbox.gob"
+#line 313 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 520 "mn-imap-mailbox.c"
+#line 605 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_authenticate_cb"
-#line 264 "mn-imap-mailbox.gob"
+#line 313 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 264 "mn-imap-mailbox.gob"
+#line 313 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 527 "mn-imap-mailbox.c"
+#line 612 "mn-imap-mailbox.c"
{
-#line 267 "mn-imap-mailbox.gob"
+#line 316 "mn-imap-mailbox.gob"
#ifdef WITH_SASL
+ /*
+ * RFC 3501 6.2.2 specifies that the IMAP protocol does not
+ * support the "initial response" feature of SASL, so we set the
+ * initial_response argument to FALSE.
+ */
if (mn_client_session_sasl_authentication_start(priv->session,
"imap",
priv->auth_mechanisms,
priv->mailbox->uri->authmech,
- &priv->sasl_mechanism))
+ &priv->sasl_mechanism,
+ FALSE))
return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
else
return self_session_authenticate_fallback(priv);
@@ -540,24 +631,24 @@ mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessio
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 544 "mn-imap-mailbox.c"
+#line 635 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 282 "mn-imap-mailbox.gob"
+#line 337 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 550 "mn-imap-mailbox.c"
+#line 641 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_authenticate_cb"
-#line 282 "mn-imap-mailbox.gob"
+#line 337 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 282 "mn-imap-mailbox.gob"
+#line 337 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 282 "mn-imap-mailbox.gob"
+#line 337 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 559 "mn-imap-mailbox.c"
+#line 650 "mn-imap-mailbox.c"
{
-#line 286 "mn-imap-mailbox.gob"
+#line 341 "mn-imap-mailbox.gob"
#ifdef WITH_SASL
if (response->tag)
@@ -584,22 +675,22 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 588 "mn-imap-mailbox.c"
+#line 679 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 313 "mn-imap-mailbox.gob"
+#line 368 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 594 "mn-imap-mailbox.c"
+#line 685 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_login_cb"
-#line 313 "mn-imap-mailbox.gob"
+#line 368 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 313 "mn-imap-mailbox.gob"
+#line 368 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 601 "mn-imap-mailbox.c"
+#line 692 "mn-imap-mailbox.c"
{
-#line 316 "mn-imap-mailbox.gob"
+#line 371 "mn-imap-mailbox.gob"
if (self_session_has_capability(priv, "LOGINDISABLED"))
{
@@ -622,24 +713,24 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
return result;
}
}}
-#line 626 "mn-imap-mailbox.c"
+#line 717 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 339 "mn-imap-mailbox.gob"
+#line 394 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 632 "mn-imap-mailbox.c"
+#line 723 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_login_cb"
-#line 339 "mn-imap-mailbox.gob"
+#line 394 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 339 "mn-imap-mailbox.gob"
+#line 394 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 339 "mn-imap-mailbox.gob"
+#line 394 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 641 "mn-imap-mailbox.c"
+#line 732 "mn-imap-mailbox.c"
{
-#line 343 "mn-imap-mailbox.gob"
+#line 398 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -661,24 +752,23 @@ mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionRespo
return RESULT_DEFAULT_HANDLER;
}}
-#line 665 "mn-imap-mailbox.c"
+#line 756 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 365 "mn-imap-mailbox.gob"
+#line 420 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_examine_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 671 "mn-imap-mailbox.c"
+#line 762 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_examine_cb"
-#line 365 "mn-imap-mailbox.gob"
+#line 420 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 365 "mn-imap-mailbox.gob"
+#line 420 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 678 "mn-imap-mailbox.c"
+#line 769 "mn-imap-mailbox.c"
{
-#line 368 "mn-imap-mailbox.gob"
+#line 423 "mn-imap-mailbox.gob"
-#ifdef WITH_MIME
char *quoted_mailbox;
int result;
@@ -687,30 +777,26 @@ mn_imap_mailbox_enter_examine_cb (MNClientSession * session, MNClientSessionPriv
g_free(quoted_mailbox);
return result;
-#else /* WITH_MIME */
- g_return_val_if_reached(0);
-#endif
}}
-#line 695 "mn-imap-mailbox.c"
+#line 782 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 383 "mn-imap-mailbox.gob"
+#line 434 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 701 "mn-imap-mailbox.c"
+#line 788 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_examine_cb"
-#line 383 "mn-imap-mailbox.gob"
+#line 434 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 383 "mn-imap-mailbox.gob"
+#line 434 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 383 "mn-imap-mailbox.gob"
+#line 434 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 710 "mn-imap-mailbox.c"
+#line 797 "mn-imap-mailbox.c"
{
-#line 387 "mn-imap-mailbox.gob"
+#line 438 "mn-imap-mailbox.gob"
-#ifdef WITH_MIME
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (response->tag)
@@ -727,53 +813,53 @@ mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionRes
}
return RESULT_DEFAULT_HANDLER;
-#else /* WITH_MIME */
- g_return_val_if_reached(0);
-#endif
}}
-#line 735 "mn-imap-mailbox.c"
+#line 818 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 410 "mn-imap-mailbox.gob"
+#line 457 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 741 "mn-imap-mailbox.c"
+#line 824 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_search_cb"
-#line 410 "mn-imap-mailbox.gob"
+#line 457 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 410 "mn-imap-mailbox.gob"
+#line 457 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 748 "mn-imap-mailbox.c"
+#line 831 "mn-imap-mailbox.c"
{
-#line 413 "mn-imap-mailbox.gob"
+#line 460 "mn-imap-mailbox.gob"
-#ifdef WITH_MIME
+ priv->search_received = FALSE;
+
+ g_slist_free(priv->fetch_numbers);
+ priv->fetch_numbers = NULL;
+
+ g_free(priv->fetch_set);
+ priv->fetch_set = NULL;
+
return self_session_write(priv, "SEARCH UNSEEN");
-#else
- g_return_val_if_reached(0);
-#endif
}}
-#line 758 "mn-imap-mailbox.c"
+#line 845 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 421 "mn-imap-mailbox.gob"
+#line 472 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 764 "mn-imap-mailbox.c"
+#line 851 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_search_cb"
-#line 421 "mn-imap-mailbox.gob"
+#line 472 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 421 "mn-imap-mailbox.gob"
+#line 472 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 421 "mn-imap-mailbox.gob"
+#line 472 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 773 "mn-imap-mailbox.c"
+#line 860 "mn-imap-mailbox.c"
{
-#line 425 "mn-imap-mailbox.gob"
+#line 476 "mn-imap-mailbox.gob"
-#ifdef WITH_MIME
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (response->tag)
@@ -785,16 +871,31 @@ mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResp
if (priv->search_received)
{
if (priv->fetch_set)
- return STATE_FETCH;
+ {
+#ifdef WITH_MIME
+ return STATE_FETCH;
+#else
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_has_new(priv->mailbox, TRUE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return STATE_IDLE;
+#endif /* WITH_MIME */
+ }
else
{
GDK_THREADS_ENTER();
mn_mailbox_set_has_new(priv->mailbox, FALSE);
+#ifdef WITH_MIME
mn_mailbox_set_messages(priv->mailbox, NULL);
+#endif
gdk_flush();
GDK_THREADS_LEAVE();
- return STATE_LOGOUT;
+ return self_session_has_capability(priv, "IDLE")
+ ? STATE_IDLE
+ : STATE_LOGOUT;
}
}
else /* compliance error */
@@ -838,52 +939,56 @@ mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResp
}
return RESULT_DEFAULT_HANDLER;
-#else /* WITH_MIME */
- g_return_val_if_reached(0);
-#endif
}}
-#line 846 "mn-imap-mailbox.c"
+#line 944 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 496 "mn-imap-mailbox.gob"
+#line 558 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 852 "mn-imap-mailbox.c"
+#line 950 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_fetch_cb"
-#line 496 "mn-imap-mailbox.gob"
+#line 558 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 496 "mn-imap-mailbox.gob"
+#line 558 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 859 "mn-imap-mailbox.c"
+#line 957 "mn-imap-mailbox.c"
{
-#line 499 "mn-imap-mailbox.gob"
+#line 561 "mn-imap-mailbox.gob"
#ifdef WITH_MIME
g_return_val_if_fail(priv->fetch_set != NULL, 0);
+
+ g_slist_free(priv->received_numbers);
+ priv->received_numbers = NULL;
+
+ mn_g_object_slist_free(priv->messages);
+ priv->messages = NULL;
+
return self_session_write(priv, "FETCH %s BODY[HEADER]", priv->fetch_set);
#else /* WITH_MIME */
g_return_val_if_reached(0);
#endif
}}
-#line 870 "mn-imap-mailbox.c"
+#line 975 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 508 "mn-imap-mailbox.gob"
+#line 577 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 876 "mn-imap-mailbox.c"
+#line 981 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_fetch_cb"
-#line 508 "mn-imap-mailbox.gob"
+#line 577 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 508 "mn-imap-mailbox.gob"
+#line 577 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 508 "mn-imap-mailbox.gob"
+#line 577 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 885 "mn-imap-mailbox.c"
+#line 990 "mn-imap-mailbox.c"
{
-#line 512 "mn-imap-mailbox.gob"
+#line 581 "mn-imap-mailbox.gob"
#ifdef WITH_MIME
if (response->continuation)
@@ -907,7 +1012,9 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
gdk_flush();
GDK_THREADS_LEAVE();
- return STATE_LOGOUT;
+ return self_session_has_capability(priv, "IDLE")
+ ? STATE_IDLE
+ : STATE_LOGOUT;
}
else if (IS_NO(response) || IS_BAD(response))
return RESULT_ERROR_LOGOUT;
@@ -957,22 +1064,118 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
g_return_val_if_reached(0);
#endif
}}
-#line 961 "mn-imap-mailbox.c"
+#line 1068 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 657 "mn-imap-mailbox.gob"
+static int
+mn_imap_mailbox_enter_idle_cb (MNClientSession * session, MNClientSessionPrivate * priv)
+#line 1074 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_idle_cb"
+#line 657 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (session != NULL, (int )0);
+#line 657 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (priv != NULL, (int )0);
+#line 1081 "mn-imap-mailbox.c"
+{
+#line 660 "mn-imap-mailbox.gob"
+
+ priv->idle_state = IDLE_STATE_NORMAL;
+ return REMOVED(priv->self) ? STATE_LOGOUT : self_session_write(priv, "IDLE");
+ }}
+#line 1088 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 586 "mn-imap-mailbox.gob"
+#line 665 "mn-imap-mailbox.gob"
+static int
+mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
+#line 1094 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_idle_cb"
+#line 665 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (session != NULL, (int )0);
+#line 665 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (response != NULL, (int )0);
+#line 665 "mn-imap-mailbox.gob"
+ g_return_val_if_fail (priv != NULL, (int )0);
+#line 1103 "mn-imap-mailbox.c"
+{
+#line 669 "mn-imap-mailbox.gob"
+
+ if (priv->idle_state == IDLE_STATE_IDLING)
+ {
+ if (response->continuation || response->tag)
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+
+ priv->idle_state = IDLE_STATE_WAS_IDLING;
+
+ if (IS_BYE(response))
+ return MN_CLIENT_SESSION_RESULT_END; /* we'll reconnect */
+ else
+ /* any other response wakes us up */
+ return mn_client_session_write(session, "DONE");
+ }
+ else
+ {
+ if (response->continuation)
+ {
+ if (priv->idle_state == IDLE_STATE_WAS_IDLING)
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ else
+ {
+ /* we're now in the idle loop */
+ priv->idle_state = IDLE_STATE_IDLING;
+ priv->could_idle = TRUE;
+
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_must_poll(priv->mailbox, FALSE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return MN_CLIENT_SESSION_RESULT_CONTINUE;
+ }
+ }
+ else if (response->tag)
+ {
+ if (HAS_CURRENT_TAG(response, priv))
+ {
+ if (IS_OK(response))
+ return REMOVED(priv->self) ? STATE_LOGOUT : STATE_SEARCH;
+ else if (IS_NO(response) || IS_BAD(response))
+ /*
+ * The server advertised IDLE but does not actually
+ * support it.
+ *
+ * Although strictly speaking this can be considered
+ * a compliance fault, we'll be tolerant and just
+ * logout without setting an error.
+ */
+ return STATE_LOGOUT;
+ else
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ }
+ }
+ }
+
+ return RESULT_DEFAULT_HANDLER;
+ }}
+#line 1164 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 728 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_status_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 967 "mn-imap-mailbox.c"
+#line 1170 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_status_cb"
-#line 586 "mn-imap-mailbox.gob"
+#line 728 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 586 "mn-imap-mailbox.gob"
+#line 728 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 974 "mn-imap-mailbox.c"
+#line 1177 "mn-imap-mailbox.c"
{
-#line 589 "mn-imap-mailbox.gob"
+#line 731 "mn-imap-mailbox.gob"
#ifndef WITH_MIME
char *quoted_mailbox;
@@ -987,24 +1190,24 @@ mn_imap_mailbox_enter_status_cb (MNClientSession * session, MNClientSessionPriva
g_return_val_if_reached(0);
#endif
}}
-#line 991 "mn-imap-mailbox.c"
+#line 1194 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 604 "mn-imap-mailbox.gob"
+#line 746 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 997 "mn-imap-mailbox.c"
+#line 1200 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_status_cb"
-#line 604 "mn-imap-mailbox.gob"
+#line 746 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 604 "mn-imap-mailbox.gob"
+#line 746 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 604 "mn-imap-mailbox.gob"
+#line 746 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1006 "mn-imap-mailbox.c"
+#line 1209 "mn-imap-mailbox.c"
{
-#line 608 "mn-imap-mailbox.gob"
+#line 750 "mn-imap-mailbox.gob"
#ifndef WITH_MIME
if (response->continuation)
@@ -1050,43 +1253,43 @@ mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResp
g_return_val_if_reached(0);
#endif
}}
-#line 1054 "mn-imap-mailbox.c"
+#line 1257 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 654 "mn-imap-mailbox.gob"
+#line 796 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1060 "mn-imap-mailbox.c"
+#line 1263 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_logout_cb"
-#line 654 "mn-imap-mailbox.gob"
+#line 796 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 654 "mn-imap-mailbox.gob"
+#line 796 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1067 "mn-imap-mailbox.c"
+#line 1270 "mn-imap-mailbox.c"
{
-#line 657 "mn-imap-mailbox.gob"
+#line 799 "mn-imap-mailbox.gob"
return self_session_write(priv, "LOGOUT");
}}
-#line 1073 "mn-imap-mailbox.c"
+#line 1276 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 661 "mn-imap-mailbox.gob"
+#line 803 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1079 "mn-imap-mailbox.c"
+#line 1282 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_logout_cb"
-#line 661 "mn-imap-mailbox.gob"
+#line 803 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 661 "mn-imap-mailbox.gob"
+#line 803 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 661 "mn-imap-mailbox.gob"
+#line 803 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1088 "mn-imap-mailbox.c"
+#line 1291 "mn-imap-mailbox.c"
{
-#line 665 "mn-imap-mailbox.gob"
+#line 807 "mn-imap-mailbox.gob"
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -1102,26 +1305,26 @@ mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResp
else
return MN_CLIENT_SESSION_RESULT_CONTINUE;
}}
-#line 1106 "mn-imap-mailbox.c"
+#line 1309 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 681 "mn-imap-mailbox.gob"
+#line 823 "mn-imap-mailbox.gob"
static MNAuthenticatedMailboxResult
-___17_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox G_GNUC_UNUSED, GError ** err)
-#line 1112 "mn-imap-mailbox.c"
+___1a_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox G_GNUC_UNUSED, GError ** err)
+#line 1315 "mn-imap-mailbox.c"
#define PARENT_HANDLER(___authenticated_mailbox,___err) \
((MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)? \
(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)(___authenticated_mailbox,___err): \
((MNAuthenticatedMailboxResult )0))
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_authenticated_check"
-#line 681 "mn-imap-mailbox.gob"
+#line 823 "mn-imap-mailbox.gob"
g_return_val_if_fail (authenticated_mailbox != NULL, (MNAuthenticatedMailboxResult )0);
-#line 681 "mn-imap-mailbox.gob"
+#line 823 "mn-imap-mailbox.gob"
g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (authenticated_mailbox), (MNAuthenticatedMailboxResult )0);
-#line 1123 "mn-imap-mailbox.c"
+#line 1326 "mn-imap-mailbox.c"
{
-#line 684 "mn-imap-mailbox.gob"
+#line 826 "mn-imap-mailbox.gob"
MNMailbox *mailbox = MN_MAILBOX(authenticated_mailbox);
Self *self = SELF(authenticated_mailbox);
@@ -1135,13 +1338,14 @@ ___17_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authent
{ STATE_AUTHENTICATE, self_enter_authenticate_cb, self_handle_authenticate_cb },
#endif
{ STATE_LOGIN, self_enter_login_cb, self_handle_login_cb },
-#ifdef WITH_MIME
{ STATE_EXAMINE, self_enter_examine_cb, self_handle_examine_cb },
{ STATE_SEARCH, self_enter_search_cb, self_handle_search_cb },
+#ifdef WITH_MIME
{ STATE_FETCH, self_enter_fetch_cb, self_handle_fetch_cb },
-#else /* WITH_MIME */
+#else
{ STATE_STATUS, self_enter_status_cb, self_handle_status_cb },
#endif
+ { STATE_IDLE, self_enter_idle_cb, self_handle_idle_cb },
{ STATE_LOGOUT, self_enter_logout_cb, self_handle_logout_cb },
MN_CLIENT_SESSION_STATES_END
@@ -1150,36 +1354,48 @@ ___17_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authent
self_notice_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb
+ self_custom_handler_cb,
+ self_pre_read_cb,
+ self_post_read_cb
};
MNClientSessionPrivate priv;
gboolean status;
- memset(&priv, 0, sizeof(priv));
- priv.mailbox = mailbox;
- priv.self = self;
+ do
+ {
+ memset(&priv, 0, sizeof(priv));
+ priv.mailbox = mailbox;
+ priv.self = self;
- status = mn_client_session_run(states,
- &callbacks,
+ status = mn_client_session_run(states,
+ &callbacks,
#ifdef WITH_SSL
- MN_URI_IS_SSL(mailbox->uri),
+ MN_URI_IS_SSL(mailbox->uri),
#endif
- mailbox->uri->hostname,
- mailbox->uri->port,
- mailbox->uri->username,
- MN_AUTHENTICATED_MAILBOX(self)->password,
- &priv,
- err);
+ mailbox->uri->hostname,
+ mailbox->uri->port,
+ mailbox->uri->username,
+ MN_AUTHENTICATED_MAILBOX(self)->password,
+ &priv,
+ err);
- g_strfreev(priv.capabilities);
- eel_g_slist_free_deep(priv.auth_mechanisms);
+ g_strfreev(priv.capabilities);
+ eel_g_slist_free_deep(priv.auth_mechanisms);
+
+ g_slist_free(priv.fetch_numbers);
+ g_free(priv.fetch_set);
#ifdef WITH_MIME
- g_slist_free(priv.fetch_numbers);
- g_free(priv.fetch_set);
- g_slist_free(priv.received_numbers);
- mn_g_object_slist_free(priv.messages);
+ g_slist_free(priv.received_numbers);
+ mn_g_object_slist_free(priv.messages);
#endif
+ }
+ while (status && priv.could_idle && ! REMOVED(self));
+
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_must_poll(mailbox, TRUE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
return status
? MN_AUTHENTICATED_MAILBOX_OK
@@ -1187,46 +1403,46 @@ ___17_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authent
? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION
: MN_AUTHENTICATED_MAILBOX_ERROR_OTHER);
}}
-#line 1191 "mn-imap-mailbox.c"
+#line 1407 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 750 "mn-imap-mailbox.gob"
+#line 905 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1198 "mn-imap-mailbox.c"
+#line 1414 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::notice_cb"
-#line 750 "mn-imap-mailbox.gob"
+#line 905 "mn-imap-mailbox.gob"
g_return_if_fail (session != NULL);
-#line 750 "mn-imap-mailbox.gob"
+#line 905 "mn-imap-mailbox.gob"
g_return_if_fail (str != NULL);
-#line 750 "mn-imap-mailbox.gob"
+#line 905 "mn-imap-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 1207 "mn-imap-mailbox.c"
+#line 1423 "mn-imap-mailbox.c"
{
-#line 754 "mn-imap-mailbox.gob"
+#line 909 "mn-imap-mailbox.gob"
mn_mailbox_notice(priv->mailbox, "%s", str);
}}
-#line 1213 "mn-imap-mailbox.c"
+#line 1429 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 758 "mn-imap-mailbox.gob"
+#line 913 "mn-imap-mailbox.gob"
static MNClientSessionResponse *
mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1219 "mn-imap-mailbox.c"
+#line 1435 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_new_cb"
-#line 758 "mn-imap-mailbox.gob"
+#line 913 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 758 "mn-imap-mailbox.gob"
+#line 913 "mn-imap-mailbox.gob"
g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 758 "mn-imap-mailbox.gob"
+#line 913 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1228 "mn-imap-mailbox.c"
+#line 1444 "mn-imap-mailbox.c"
{
-#line 762 "mn-imap-mailbox.gob"
+#line 917 "mn-imap-mailbox.gob"
MNClientSessionResponse *response = NULL;
@@ -1273,24 +1489,24 @@ mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input,
return response;
}}
-#line 1277 "mn-imap-mailbox.c"
+#line 1493 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 809 "mn-imap-mailbox.gob"
+#line 964 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1283 "mn-imap-mailbox.c"
+#line 1499 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_free_cb"
-#line 809 "mn-imap-mailbox.gob"
+#line 964 "mn-imap-mailbox.gob"
g_return_if_fail (session != NULL);
-#line 809 "mn-imap-mailbox.gob"
+#line 964 "mn-imap-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 809 "mn-imap-mailbox.gob"
+#line 964 "mn-imap-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 1292 "mn-imap-mailbox.c"
+#line 1508 "mn-imap-mailbox.c"
{
-#line 813 "mn-imap-mailbox.gob"
+#line 968 "mn-imap-mailbox.gob"
g_free(response->continuation);
g_free(response->tag);
@@ -1299,24 +1515,24 @@ mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResp
g_free(response->arguments);
g_free(response);
}}
-#line 1303 "mn-imap-mailbox.c"
+#line 1519 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 822 "mn-imap-mailbox.gob"
+#line 977 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1309 "mn-imap-mailbox.c"
+#line 1525 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::custom_handler_cb"
-#line 822 "mn-imap-mailbox.gob"
+#line 977 "mn-imap-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 822 "mn-imap-mailbox.gob"
+#line 977 "mn-imap-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 822 "mn-imap-mailbox.gob"
+#line 977 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1318 "mn-imap-mailbox.c"
+#line 1534 "mn-imap-mailbox.c"
{
-#line 827 "mn-imap-mailbox.gob"
+#line 982 "mn-imap-mailbox.gob"
switch (result)
{
@@ -1338,44 +1554,92 @@ mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionRes
g_return_val_if_reached(0);
}
}}
-#line 1342 "mn-imap-mailbox.c"
+#line 1558 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 849 "mn-imap-mailbox.gob"
+#line 1004 "mn-imap-mailbox.gob"
+static void
+mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate * priv)
+#line 1564 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::pre_read_cb"
+#line 1004 "mn-imap-mailbox.gob"
+ g_return_if_fail (session != NULL);
+#line 1004 "mn-imap-mailbox.gob"
+ g_return_if_fail (priv != NULL);
+#line 1571 "mn-imap-mailbox.c"
+{
+#line 1007 "mn-imap-mailbox.gob"
+
+ if (priv->idle_state == IDLE_STATE_IDLING)
+ {
+ g_mutex_lock(priv->self->_priv->idle_session_mutex);
+ priv->self->_priv->idle_session = priv;
+ g_mutex_unlock(priv->self->_priv->idle_session_mutex);
+ }
+ }}
+#line 1582 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1016 "mn-imap-mailbox.gob"
+static void
+mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate * priv)
+#line 1588 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::post_read_cb"
+#line 1016 "mn-imap-mailbox.gob"
+ g_return_if_fail (session != NULL);
+#line 1016 "mn-imap-mailbox.gob"
+ g_return_if_fail (priv != NULL);
+#line 1595 "mn-imap-mailbox.c"
+{
+#line 1019 "mn-imap-mailbox.gob"
+
+ if (priv->idle_state == IDLE_STATE_IDLING)
+ {
+ g_mutex_lock(priv->self->_priv->idle_session_mutex);
+ priv->self->_priv->idle_session = NULL;
+ g_mutex_unlock(priv->self->_priv->idle_session_mutex);
+ }
+ }}
+#line 1606 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1028 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1348 "mn-imap-mailbox.c"
+#line 1612 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_set_error_from_arguments"
-#line 849 "mn-imap-mailbox.gob"
+#line 1028 "mn-imap-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 849 "mn-imap-mailbox.gob"
+#line 1028 "mn-imap-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 1355 "mn-imap-mailbox.c"
+#line 1619 "mn-imap-mailbox.c"
{
-#line 852 "mn-imap-mailbox.gob"
+#line 1031 "mn-imap-mailbox.gob"
if (response->arguments)
mn_client_session_error(priv->session, "\"%s\"", response->arguments);
else
mn_client_session_error(priv->session, _("unknown server error"));
}}
-#line 1364 "mn-imap-mailbox.c"
+#line 1628 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 859 "mn-imap-mailbox.gob"
+#line 1038 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...)
-#line 1370 "mn-imap-mailbox.c"
+#line 1634 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_write"
-#line 859 "mn-imap-mailbox.gob"
+#line 1038 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 859 "mn-imap-mailbox.gob"
+#line 1038 "mn-imap-mailbox.gob"
g_return_val_if_fail (format != NULL, (int )0);
-#line 1377 "mn-imap-mailbox.c"
+#line 1641 "mn-imap-mailbox.c"
{
-#line 863 "mn-imap-mailbox.gob"
+#line 1042 "mn-imap-mailbox.gob"
va_list args;
char *command;
@@ -1394,20 +1658,20 @@ mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * forma
return result;
}}
-#line 1398 "mn-imap-mailbox.c"
+#line 1662 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 882 "mn-imap-mailbox.gob"
+#line 1061 "mn-imap-mailbox.gob"
static void
mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities)
-#line 1404 "mn-imap-mailbox.c"
+#line 1668 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_parse_capabilities"
-#line 882 "mn-imap-mailbox.gob"
+#line 1061 "mn-imap-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 1409 "mn-imap-mailbox.c"
+#line 1673 "mn-imap-mailbox.c"
{
-#line 885 "mn-imap-mailbox.gob"
+#line 1064 "mn-imap-mailbox.gob"
if (capabilities)
{
@@ -1422,22 +1686,22 @@ mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const
else
priv->capabilities = g_new0(char *, 1);
}}
-#line 1426 "mn-imap-mailbox.c"
+#line 1690 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 900 "mn-imap-mailbox.gob"
+#line 1079 "mn-imap-mailbox.gob"
static gboolean
mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const char * capability)
-#line 1432 "mn-imap-mailbox.c"
+#line 1696 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_has_capability"
-#line 900 "mn-imap-mailbox.gob"
+#line 1079 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (gboolean )0);
-#line 900 "mn-imap-mailbox.gob"
+#line 1079 "mn-imap-mailbox.gob"
g_return_val_if_fail (capability != NULL, (gboolean )0);
-#line 1439 "mn-imap-mailbox.c"
+#line 1703 "mn-imap-mailbox.c"
{
-#line 903 "mn-imap-mailbox.gob"
+#line 1082 "mn-imap-mailbox.gob"
int i;
@@ -1449,20 +1713,20 @@ mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const cha
return FALSE;
}}
-#line 1453 "mn-imap-mailbox.c"
+#line 1717 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 915 "mn-imap-mailbox.gob"
+#line 1094 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
-#line 1459 "mn-imap-mailbox.c"
+#line 1723 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_after_capability"
-#line 915 "mn-imap-mailbox.gob"
+#line 1094 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1464 "mn-imap-mailbox.c"
+#line 1728 "mn-imap-mailbox.c"
{
-#line 917 "mn-imap-mailbox.gob"
+#line 1096 "mn-imap-mailbox.gob"
#ifdef WITH_SSL
if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
@@ -1481,20 +1745,20 @@ mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
#endif /* WITH_SSL */
return self_session_authenticate(priv);
}}
-#line 1485 "mn-imap-mailbox.c"
+#line 1749 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 936 "mn-imap-mailbox.gob"
+#line 1115 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1491 "mn-imap-mailbox.c"
+#line 1755 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate"
-#line 936 "mn-imap-mailbox.gob"
+#line 1115 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1496 "mn-imap-mailbox.c"
+#line 1760 "mn-imap-mailbox.c"
{
-#line 938 "mn-imap-mailbox.gob"
+#line 1117 "mn-imap-mailbox.gob"
if (priv->mailbox->uri->authmech)
{
@@ -1523,20 +1787,20 @@ mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
return STATE_LOGIN;
}
}}
-#line 1527 "mn-imap-mailbox.c"
+#line 1791 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 967 "mn-imap-mailbox.gob"
+#line 1146 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv)
-#line 1533 "mn-imap-mailbox.c"
+#line 1797 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate_fallback"
-#line 967 "mn-imap-mailbox.gob"
+#line 1146 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1538 "mn-imap-mailbox.c"
+#line 1802 "mn-imap-mailbox.c"
{
-#line 969 "mn-imap-mailbox.gob"
+#line 1148 "mn-imap-mailbox.gob"
if (! priv->mailbox->uri->authmech)
{
@@ -1547,28 +1811,30 @@ mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv)
priv->authentication_failed = TRUE;
return mn_client_session_error(priv->session, _("authentication failed"));
}}
-#line 1551 "mn-imap-mailbox.c"
+#line 1815 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
-#line 980 "mn-imap-mailbox.gob"
+#line 1159 "mn-imap-mailbox.gob"
static int
mn_imap_mailbox_session_check_mail (MNClientSessionPrivate * priv)
-#line 1557 "mn-imap-mailbox.c"
+#line 1821 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_check_mail"
-#line 980 "mn-imap-mailbox.gob"
+#line 1159 "mn-imap-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1562 "mn-imap-mailbox.c"
+#line 1826 "mn-imap-mailbox.c"
{
-#line 982 "mn-imap-mailbox.gob"
+#line 1161 "mn-imap-mailbox.gob"
#ifdef WITH_MIME
return STATE_EXAMINE;
#else
- return STATE_STATUS;
-#endif
+ return self_session_has_capability(priv, "IDLE")
+ ? STATE_EXAMINE
+ : STATE_STATUS;
+#endif /* WITH_MIME */
}}
-#line 1572 "mn-imap-mailbox.c"
+#line 1838 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
/**
@@ -1579,17 +1845,17 @@ mn_imap_mailbox_session_check_mail (MNClientSessionPrivate * priv)
*
* Return value: the quoted string.
**/
-#line 998 "mn-imap-mailbox.gob"
+#line 1179 "mn-imap-mailbox.gob"
static char *
mn_imap_mailbox_quote (const char * str)
-#line 1586 "mn-imap-mailbox.c"
+#line 1852 "mn-imap-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::quote"
-#line 998 "mn-imap-mailbox.gob"
+#line 1179 "mn-imap-mailbox.gob"
g_return_val_if_fail (str != NULL, (char * )0);
-#line 1591 "mn-imap-mailbox.c"
+#line 1857 "mn-imap-mailbox.c"
{
-#line 1000 "mn-imap-mailbox.gob"
+#line 1181 "mn-imap-mailbox.gob"
GString *quoted;
int i;
@@ -1604,5 +1870,5 @@ mn_imap_mailbox_quote (const char * str)
return g_string_free(quoted, FALSE);
}}
-#line 1608 "mn-imap-mailbox.c"
+#line 1874 "mn-imap-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-imap-mailbox.gob b/src/mn-imap-mailbox.gob
@@ -1,6 +1,10 @@
/*
* mn-imap-mailbox.gob - IMAP 4rev1 support for Mail Notification
- * Complies with RFC 3501
+ *
+ * Compliance:
+ *
+ * - RFC 3501
+ * - RFC 2177
*
* Copyright (c) 2004 Jean-Yves Lefort <jylefort@brutele.be>
*
@@ -24,6 +28,11 @@ requires 2.0.10
%headertop{
#include "mn-authenticated-mailbox.h"
%}
+
+%privateheader{
+#include "mn-client-session.h"
+%}
+
%{
#include "config.h"
#include <stdio.h>
@@ -35,7 +44,6 @@ requires 2.0.10
#include <eel/eel.h>
#include "mn-mailbox-private.h"
#include "mn-util.h"
-#include "mn-client-session.h"
#ifdef WITH_MIME
#include "mn-message-mime.h"
#endif
@@ -47,6 +55,8 @@ requires 2.0.10
#define IS_BAD(response) IS(response, "BAD")
#define IS_BYE(response) IS(response, "BYE")
+#define REMOVED(self) (g_atomic_int_get(&(self)->_priv->removed))
+
enum
{
STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
@@ -58,13 +68,14 @@ requires 2.0.10
STATE_AUTHENTICATE,
#endif
STATE_LOGIN,
-#ifdef WITH_MIME
STATE_EXAMINE,
STATE_SEARCH,
+#ifdef WITH_MIME
STATE_FETCH,
#else /* WITH_MIME */
STATE_STATUS,
#endif
+ STATE_IDLE,
STATE_LOGOUT
};
@@ -75,31 +86,46 @@ requires 2.0.10
RESULT_DEFAULT_HANDLER = -3 /* invoke the default response handler */
};
+ typedef enum
+ {
+ IDLE_STATE_NORMAL,
+ IDLE_STATE_IDLING,
+ IDLE_STATE_WAS_IDLING
+ } IdleState;
+
struct _MNClientSessionPrivate
{
MNMailbox *mailbox;
MNIMAPMailbox *self;
MNClientSession *session;
+
int numeric_tag;
char tag[5];
+
char **capabilities;
GSList *auth_mechanisms;
gboolean authentication_failed;
-#ifdef WITH_MIME
+
gboolean search_received;
GSList *fetch_numbers;
char *fetch_set;
+
+#ifdef WITH_MIME
GSList *received_numbers;
GSList *messages;
#else /* WITH_MIME */
gboolean status_received;
#endif
+
#ifdef WITH_SSL
gboolean starttls_completed;
#endif
#ifdef WITH_SASL
const char *sasl_mechanism;
#endif
+
+ IdleState idle_state;
+ gboolean could_idle; /* could idle at least once */
};
struct _MNClientSessionResponse
@@ -114,6 +140,11 @@ requires 2.0.10
class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
{
+ private int removed; /* boolean, access with g_atomic_int_ API */
+
+ private MNClientSessionPrivate *idle_session;
+ private GMutex *idle_session_mutex = {g_mutex_new()} destroywith g_mutex_free;
+
class_init (class)
{
MN_MAILBOX_CLASS(class)->format = "IMAP";
@@ -142,6 +173,24 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
return MN_URI_IS_IMAP(uri);
}
+ override (MN:Mailbox) void
+ removed (MN:Mailbox *mailbox (check null type))
+ {
+ Self *self = SELF(mailbox);
+
+ g_atomic_int_inc(&selfp->removed);
+
+ g_mutex_lock(selfp->idle_session_mutex);
+ if (selfp->idle_session)
+ {
+ mn_client_session_write(selfp->idle_session->session, "DONE");
+ selfp->idle_session->idle_state = IDLE_STATE_WAS_IDLING;
+ }
+ g_mutex_unlock(selfp->idle_session_mutex);
+
+ PARENT_HANDLER(mailbox);
+ }
+
private int
handle_greeting_cb (MNClientSession *session (check null),
MNClientSessionResponse *response (check null),
@@ -266,11 +315,17 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
MNClientSessionPrivate *priv (check null))
{
#ifdef WITH_SASL
+ /*
+ * RFC 3501 6.2.2 specifies that the IMAP protocol does not
+ * support the "initial response" feature of SASL, so we set the
+ * initial_response argument to FALSE.
+ */
if (mn_client_session_sasl_authentication_start(priv->session,
"imap",
priv->auth_mechanisms,
priv->mailbox->uri->authmech,
- &priv->sasl_mechanism))
+ &priv->sasl_mechanism,
+ FALSE))
return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
else
return self_session_authenticate_fallback(priv);
@@ -366,7 +421,6 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
enter_examine_cb (MNClientSession *session (check null),
MNClientSessionPrivate *priv (check null))
{
-#ifdef WITH_MIME
char *quoted_mailbox;
int result;
@@ -375,9 +429,6 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
g_free(quoted_mailbox);
return result;
-#else /* WITH_MIME */
- g_return_val_if_reached(0);
-#endif
}
private int
@@ -385,7 +436,6 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
MNClientSessionResponse *response (check null),
MNClientSessionPrivate *priv (check null))
{
-#ifdef WITH_MIME
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (response->tag)
@@ -402,20 +452,21 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
return RESULT_DEFAULT_HANDLER;
-#else /* WITH_MIME */
- g_return_val_if_reached(0);
-#endif
}
private int
enter_search_cb (MNClientSession *session (check null),
MNClientSessionPrivate *priv (check null))
{
-#ifdef WITH_MIME
+ priv->search_received = FALSE;
+
+ g_slist_free(priv->fetch_numbers);
+ priv->fetch_numbers = NULL;
+
+ g_free(priv->fetch_set);
+ priv->fetch_set = NULL;
+
return self_session_write(priv, "SEARCH UNSEEN");
-#else
- g_return_val_if_reached(0);
-#endif
}
private int
@@ -423,7 +474,6 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
MNClientSessionResponse *response (check null),
MNClientSessionPrivate *priv (check null))
{
-#ifdef WITH_MIME
if (response->continuation)
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
else if (response->tag)
@@ -435,16 +485,31 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
if (priv->search_received)
{
if (priv->fetch_set)
- return STATE_FETCH;
+ {
+#ifdef WITH_MIME
+ return STATE_FETCH;
+#else
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_has_new(priv->mailbox, TRUE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return STATE_IDLE;
+#endif /* WITH_MIME */
+ }
else
{
GDK_THREADS_ENTER();
mn_mailbox_set_has_new(priv->mailbox, FALSE);
+#ifdef WITH_MIME
mn_mailbox_set_messages(priv->mailbox, NULL);
+#endif
gdk_flush();
GDK_THREADS_LEAVE();
- return STATE_LOGOUT;
+ return self_session_has_capability(priv, "IDLE")
+ ? STATE_IDLE
+ : STATE_LOGOUT;
}
}
else /* compliance error */
@@ -488,9 +553,6 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
return RESULT_DEFAULT_HANDLER;
-#else /* WITH_MIME */
- g_return_val_if_reached(0);
-#endif
}
private int
@@ -499,6 +561,13 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
{
#ifdef WITH_MIME
g_return_val_if_fail(priv->fetch_set != NULL, 0);
+
+ g_slist_free(priv->received_numbers);
+ priv->received_numbers = NULL;
+
+ mn_g_object_slist_free(priv->messages);
+ priv->messages = NULL;
+
return self_session_write(priv, "FETCH %s BODY[HEADER]", priv->fetch_set);
#else /* WITH_MIME */
g_return_val_if_reached(0);
@@ -532,7 +601,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
gdk_flush();
GDK_THREADS_LEAVE();
- return STATE_LOGOUT;
+ return self_session_has_capability(priv, "IDLE")
+ ? STATE_IDLE
+ : STATE_LOGOUT;
}
else if (IS_NO(response) || IS_BAD(response))
return RESULT_ERROR_LOGOUT;
@@ -584,6 +655,77 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private int
+ enter_idle_cb (MNClientSession *session (check null),
+ MNClientSessionPrivate *priv (check null))
+ {
+ priv->idle_state = IDLE_STATE_NORMAL;
+ return REMOVED(priv->self) ? STATE_LOGOUT : self_session_write(priv, "IDLE");
+ }
+
+ private int
+ handle_idle_cb (MNClientSession *session (check null),
+ MNClientSessionResponse *response (check null),
+ MNClientSessionPrivate *priv (check null))
+ {
+ if (priv->idle_state == IDLE_STATE_IDLING)
+ {
+ if (response->continuation || response->tag)
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+
+ priv->idle_state = IDLE_STATE_WAS_IDLING;
+
+ if (IS_BYE(response))
+ return MN_CLIENT_SESSION_RESULT_END; /* we'll reconnect */
+ else
+ /* any other response wakes us up */
+ return mn_client_session_write(session, "DONE");
+ }
+ else
+ {
+ if (response->continuation)
+ {
+ if (priv->idle_state == IDLE_STATE_WAS_IDLING)
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ else
+ {
+ /* we're now in the idle loop */
+ priv->idle_state = IDLE_STATE_IDLING;
+ priv->could_idle = TRUE;
+
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_must_poll(priv->mailbox, FALSE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
+
+ return MN_CLIENT_SESSION_RESULT_CONTINUE;
+ }
+ }
+ else if (response->tag)
+ {
+ if (HAS_CURRENT_TAG(response, priv))
+ {
+ if (IS_OK(response))
+ return REMOVED(priv->self) ? STATE_LOGOUT : STATE_SEARCH;
+ else if (IS_NO(response) || IS_BAD(response))
+ /*
+ * The server advertised IDLE but does not actually
+ * support it.
+ *
+ * Although strictly speaking this can be considered
+ * a compliance fault, we'll be tolerant and just
+ * logout without setting an error.
+ */
+ return STATE_LOGOUT;
+ else
+ return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+ }
+ }
+ }
+
+ return RESULT_DEFAULT_HANDLER;
+ }
+
+ private int
enter_status_cb (MNClientSession *session (check null),
MNClientSessionPrivate *priv (check null))
{
@@ -694,13 +836,14 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
{ STATE_AUTHENTICATE, self_enter_authenticate_cb, self_handle_authenticate_cb },
#endif
{ STATE_LOGIN, self_enter_login_cb, self_handle_login_cb },
-#ifdef WITH_MIME
{ STATE_EXAMINE, self_enter_examine_cb, self_handle_examine_cb },
{ STATE_SEARCH, self_enter_search_cb, self_handle_search_cb },
+#ifdef WITH_MIME
{ STATE_FETCH, self_enter_fetch_cb, self_handle_fetch_cb },
-#else /* WITH_MIME */
+#else
{ STATE_STATUS, self_enter_status_cb, self_handle_status_cb },
#endif
+ { STATE_IDLE, self_enter_idle_cb, self_handle_idle_cb },
{ STATE_LOGOUT, self_enter_logout_cb, self_handle_logout_cb },
MN_CLIENT_SESSION_STATES_END
@@ -709,36 +852,48 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
self_notice_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb
+ self_custom_handler_cb,
+ self_pre_read_cb,
+ self_post_read_cb
};
MNClientSessionPrivate priv;
gboolean status;
- memset(&priv, 0, sizeof(priv));
- priv.mailbox = mailbox;
- priv.self = self;
+ do
+ {
+ memset(&priv, 0, sizeof(priv));
+ priv.mailbox = mailbox;
+ priv.self = self;
- status = mn_client_session_run(states,
- &callbacks,
+ status = mn_client_session_run(states,
+ &callbacks,
#ifdef WITH_SSL
- MN_URI_IS_SSL(mailbox->uri),
+ MN_URI_IS_SSL(mailbox->uri),
#endif
- mailbox->uri->hostname,
- mailbox->uri->port,
- mailbox->uri->username,
- MN_AUTHENTICATED_MAILBOX(self)->password,
- &priv,
- err);
+ mailbox->uri->hostname,
+ mailbox->uri->port,
+ mailbox->uri->username,
+ MN_AUTHENTICATED_MAILBOX(self)->password,
+ &priv,
+ err);
- g_strfreev(priv.capabilities);
- eel_g_slist_free_deep(priv.auth_mechanisms);
+ g_strfreev(priv.capabilities);
+ eel_g_slist_free_deep(priv.auth_mechanisms);
+
+ g_slist_free(priv.fetch_numbers);
+ g_free(priv.fetch_set);
#ifdef WITH_MIME
- g_slist_free(priv.fetch_numbers);
- g_free(priv.fetch_set);
- g_slist_free(priv.received_numbers);
- mn_g_object_slist_free(priv.messages);
+ g_slist_free(priv.received_numbers);
+ mn_g_object_slist_free(priv.messages);
#endif
+ }
+ while (status && priv.could_idle && ! REMOVED(self));
+
+ GDK_THREADS_ENTER();
+ mn_mailbox_set_must_poll(mailbox, TRUE);
+ gdk_flush();
+ GDK_THREADS_LEAVE();
return status
? MN_AUTHENTICATED_MAILBOX_OK
@@ -847,6 +1002,30 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
}
private void
+ pre_read_cb (MNClientSession *session (check null),
+ MNClientSessionPrivate *priv (check null))
+ {
+ if (priv->idle_state == IDLE_STATE_IDLING)
+ {
+ g_mutex_lock(priv->self->_priv->idle_session_mutex);
+ priv->self->_priv->idle_session = priv;
+ g_mutex_unlock(priv->self->_priv->idle_session_mutex);
+ }
+ }
+
+ private void
+ post_read_cb (MNClientSession *session (check null),
+ MNClientSessionPrivate *priv (check null))
+ {
+ if (priv->idle_state == IDLE_STATE_IDLING)
+ {
+ g_mutex_lock(priv->self->_priv->idle_session_mutex);
+ priv->self->_priv->idle_session = NULL;
+ g_mutex_unlock(priv->self->_priv->idle_session_mutex);
+ }
+ }
+
+ private void
session_set_error_from_arguments (MNClientSessionPrivate *priv (check null),
MNClientSessionResponse *response (check null))
{
@@ -983,8 +1162,10 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
#ifdef WITH_MIME
return STATE_EXAMINE;
#else
- return STATE_STATUS;
-#endif
+ return self_session_has_capability(priv, "IDLE")
+ ? STATE_EXAMINE
+ : STATE_STATUS;
+#endif /* WITH_MIME */
}
/**
diff --git a/src/mn-imap-mailbox.h b/src/mn-imap-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -25,6 +25,9 @@ extern "C" {
#define MN_IMAP_MAILBOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_imap_mailbox_get_type(), MNIMAPMailboxClass)
+/* Private structure type */
+typedef struct _MNIMAPMailboxPrivate MNIMAPMailboxPrivate;
+
/*
* Main object structure
*/
@@ -34,6 +37,8 @@ typedef struct _MNIMAPMailbox MNIMAPMailbox;
#endif
struct _MNIMAPMailbox {
MNAuthenticatedMailbox __parent__;
+ /*< private >*/
+ MNIMAPMailboxPrivate *_priv;
};
/*
diff --git a/src/mn-mail-icon-private.h b/src/mn-mail-icon-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MAIL_ICON_PRIVATE_H__
#define __MN_MAIL_ICON_PRIVATE_H__
@@ -9,10 +9,20 @@
extern "C" {
#endif /* __cplusplus */
+
+#line 27 "mn-mail-icon.gob"
+
+#include "mn-tooltips.h"
+
+#line 18 "mn-mail-icon-private.h"
struct _MNMailIconPrivate {
-#line 39 "mn-mail-icon.gob"
+#line 41 "mn-mail-icon.gob"
+ MNTooltips * tooltips;
+#line 42 "mn-mail-icon.gob"
+ GtkWidget * event_box;
+#line 45 "mn-mail-icon.gob"
GtkWidget * menu;
-#line 16 "mn-mail-icon-private.h"
+#line 26 "mn-mail-icon-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-mail-icon.c b/src/mn-mail-icon.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -23,7 +23,7 @@
#define ___GOB_UNLIKELY(expr) (expr)
#endif /* G_LIKELY */
-#line 26 "mn-mail-icon.gob"
+#line 31 "mn-mail-icon.gob"
#include "config.h"
#include <gdk/gdkkeysyms.h>
@@ -48,6 +48,7 @@ typedef MNMailIconClass SelfClass;
/* here are local prototypes */
static void mn_mail_icon_activate (MNMailIcon * self) G_GNUC_UNUSED;
static void mn_mail_icon_activate_summary (MNMailIcon * self) G_GNUC_UNUSED;
+static void mn_mail_icon_activate_mail_reader (MNMailIcon * self) G_GNUC_UNUSED;
static void mn_mail_icon_activate_update (MNMailIcon * self) G_GNUC_UNUSED;
static void mn_mail_icon_activate_properties (MNMailIcon * self) G_GNUC_UNUSED;
static void mn_mail_icon_activate_help (MNMailIcon * self) G_GNUC_UNUSED;
@@ -55,6 +56,7 @@ static void mn_mail_icon_activate_about (MNMailIcon * self) G_GNUC_UNUSED;
static void mn_mail_icon_activate_remove (MNMailIcon * self) G_GNUC_UNUSED;
static void mn_mail_icon_class_init (MNMailIconClass * class) G_GNUC_UNUSED;
static void mn_mail_icon_init (MNMailIcon * self) G_GNUC_UNUSED;
+static gboolean mn_mail_icon_show_help_h (GtkWidget * widget, GtkWidgetHelpType help_type, gpointer user_data) G_GNUC_UNUSED;
static gboolean mn_mail_icon_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data) G_GNUC_UNUSED;
static gboolean mn_mail_icon_button_release_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data) G_GNUC_UNUSED;
static gboolean mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_data) G_GNUC_UNUSED;
@@ -68,6 +70,9 @@ static gboolean mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_dat
#define self_connect__activate_summary(object,func,data) mn_mail_icon_connect__activate_summary((object),(func),(data))
#define self_connect_after__activate_summary(object,func,data) mn_mail_icon_connect_after__activate_summary((object),(func),(data))
#define self_connect_data__activate_summary(object,func,data,destroy_data,flags) mn_mail_icon_connect_data__activate_summary((object),(func),(data),(destroy_data),(flags))
+#define self_connect__activate_mail_reader(object,func,data) mn_mail_icon_connect__activate_mail_reader((object),(func),(data))
+#define self_connect_after__activate_mail_reader(object,func,data) mn_mail_icon_connect_after__activate_mail_reader((object),(func),(data))
+#define self_connect_data__activate_mail_reader(object,func,data,destroy_data,flags) mn_mail_icon_connect_data__activate_mail_reader((object),(func),(data),(destroy_data),(flags))
#define self_connect__activate_update(object,func,data) mn_mail_icon_connect__activate_update((object),(func),(data))
#define self_connect_after__activate_update(object,func,data) mn_mail_icon_connect_after__activate_update((object),(func),(data))
#define self_connect_data__activate_update(object,func,data,destroy_data,flags) mn_mail_icon_connect_data__activate_update((object),(func),(data),(destroy_data),(flags))
@@ -87,6 +92,7 @@ static gboolean mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_dat
enum {
ACTIVATE_SIGNAL,
ACTIVATE_SUMMARY_SIGNAL,
+ ACTIVATE_MAIL_READER_SIGNAL,
ACTIVATE_UPDATE_SIGNAL,
ACTIVATE_PROPERTIES_SIGNAL,
ACTIVATE_HELP_SIGNAL,
@@ -103,14 +109,17 @@ static EggTrayIconClass *parent_class = NULL;
/* Short form macros */
#define self_activate mn_mail_icon_activate
#define self_activate_summary mn_mail_icon_activate_summary
+#define self_activate_mail_reader mn_mail_icon_activate_mail_reader
#define self_activate_update mn_mail_icon_activate_update
#define self_activate_properties mn_mail_icon_activate_properties
#define self_activate_help mn_mail_icon_activate_help
#define self_activate_about mn_mail_icon_activate_about
#define self_activate_remove mn_mail_icon_activate_remove
+#define self_show_help_h mn_mail_icon_show_help_h
#define self_button_press_event_h mn_mail_icon_button_press_event_h
#define self_button_release_event_h mn_mail_icon_button_release_event_h
#define self_popup_menu_h mn_mail_icon_popup_menu_h
+#define self_set_tip_widget mn_mail_icon_set_tip_widget
#define self_new mn_mail_icon_new
GType
mn_mail_icon_get_type (void)
@@ -162,9 +171,9 @@ ___dispose (GObject *obj_self)
MNMailIcon *self G_GNUC_UNUSED = MN_MAIL_ICON (obj_self);
if (G_OBJECT_CLASS (parent_class)->dispose) \
(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 36 "mn-mail-icon.gob"
- if(self->tooltips) { g_object_unref ((gpointer) self->tooltips); self->tooltips = NULL; }
-#line 168 "mn-mail-icon.c"
+#line 41 "mn-mail-icon.gob"
+ if(self->_priv->tooltips) { g_object_unref ((gpointer) self->_priv->tooltips); self->_priv->tooltips = NULL; }
+#line 177 "mn-mail-icon.c"
}
#undef __GOB_FUNCTION__
@@ -177,16 +186,16 @@ ___finalize(GObject *obj_self)
gpointer priv G_GNUC_UNUSED = self->_priv;
if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 39 "mn-mail-icon.gob"
+#line 45 "mn-mail-icon.gob"
if(self->_priv->menu) { gtk_widget_destroy ((gpointer) self->_priv->menu); self->_priv->menu = NULL; }
-#line 183 "mn-mail-icon.c"
+#line 192 "mn-mail-icon.c"
}
#undef __GOB_FUNCTION__
-#line 57 "mn-mail-icon.gob"
+#line 66 "mn-mail-icon.gob"
static void
mn_mail_icon_class_init (MNMailIconClass * class G_GNUC_UNUSED)
-#line 190 "mn-mail-icon.c"
+#line 199 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
@@ -211,6 +220,14 @@ mn_mail_icon_class_init (MNMailIconClass * class G_GNUC_UNUSED)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ object_signals[ACTIVATE_MAIL_READER_SIGNAL] =
+ g_signal_new ("activate_mail_reader",
+ G_TYPE_FROM_CLASS (g_object_class),
+ (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
+ G_STRUCT_OFFSET (MNMailIconClass, activate_mail_reader),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
object_signals[ACTIVATE_UPDATE_SIGNAL] =
g_signal_new ("activate_update",
G_TYPE_FROM_CLASS (g_object_class),
@@ -254,6 +271,7 @@ mn_mail_icon_class_init (MNMailIconClass * class G_GNUC_UNUSED)
class->activate = NULL;
class->activate_summary = NULL;
+ class->activate_mail_reader = NULL;
class->activate_update = NULL;
class->activate_properties = NULL;
class->activate_help = NULL;
@@ -262,7 +280,7 @@ mn_mail_icon_class_init (MNMailIconClass * class G_GNUC_UNUSED)
g_object_class->dispose = ___dispose;
g_object_class->finalize = ___finalize;
{
-#line 58 "mn-mail-icon.gob"
+#line 67 "mn-mail-icon.gob"
GtkBindingSet *binding_set;
@@ -276,31 +294,30 @@ mn_mail_icon_class_init (MNMailIconClass * class G_GNUC_UNUSED)
gtk_binding_entry_add_signal(binding_set, GDK_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
gtk_binding_entry_add_signal(binding_set, GDK_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
-#line 280 "mn-mail-icon.c"
+#line 298 "mn-mail-icon.c"
}
}
#undef __GOB_FUNCTION__
-#line 72 "mn-mail-icon.gob"
+#line 81 "mn-mail-icon.gob"
static void
mn_mail_icon_init (MNMailIcon * self G_GNUC_UNUSED)
-#line 287 "mn-mail-icon.c"
+#line 305 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::init"
self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailIconPrivate);
-#line 36 "mn-mail-icon.gob"
- self->tooltips = mn_tooltips_new();
-#line 293 "mn-mail-icon.c"
-#line 37 "mn-mail-icon.gob"
+#line 41 "mn-mail-icon.gob"
+ self->_priv->tooltips = mn_tooltips_new();
+#line 311 "mn-mail-icon.c"
+#line 43 "mn-mail-icon.gob"
self->image = mn_blinking_image_new_from_stock(MN_STOCK_MAIL, GTK_ICON_SIZE_LARGE_TOOLBAR);
-#line 296 "mn-mail-icon.c"
-#line 39 "mn-mail-icon.gob"
+#line 314 "mn-mail-icon.c"
+#line 45 "mn-mail-icon.gob"
self->_priv->menu = gtk_menu_new();
-#line 299 "mn-mail-icon.c"
+#line 317 "mn-mail-icon.c"
{
-#line 73 "mn-mail-icon.gob"
+#line 82 "mn-mail-icon.gob"
GtkMenuShell *shell;
- GtkWidget *event_box;
GtkWidget *summary_item;
GtkWidget *properties_item;
GtkWidget *help_item;
@@ -309,6 +326,7 @@ mn_mail_icon_init (MNMailIcon * self G_GNUC_UNUSED)
shell = GTK_MENU_SHELL(selfp->menu);
summary_item = mn_menu_shell_append(shell, MN_STOCK_MAIL_SUMMARY, NULL);
+ self->mail_reader_item = mn_menu_shell_append(shell, GTK_STOCK_EXECUTE, _("_Launch Mail Reader"));
self->update_item = mn_menu_shell_append(shell, GTK_STOCK_REFRESH, _("_Update"));
mn_menu_shell_append(shell, NULL, NULL);
properties_item = mn_menu_shell_append(shell, GTK_STOCK_PROPERTIES, NULL);
@@ -318,37 +336,39 @@ mn_mail_icon_init (MNMailIcon * self G_GNUC_UNUSED)
remove_item = mn_menu_shell_append(shell, GTK_STOCK_REMOVE, _("R_emove From Notification Area"));
g_signal_connect_swapped(summary_item, "activate", G_CALLBACK(self_activate_summary), self);
+ g_signal_connect_swapped(self->mail_reader_item, "activate", G_CALLBACK(self_activate_mail_reader), self);
g_signal_connect_swapped(self->update_item, "activate", G_CALLBACK(self_activate_update), self);
g_signal_connect_swapped(properties_item, "activate", G_CALLBACK(self_activate_properties), self);
g_signal_connect_swapped(help_item, "activate", G_CALLBACK(self_activate_help), self);
g_signal_connect_swapped(about_item, "activate", G_CALLBACK(self_activate_about), self);
g_signal_connect_swapped(remove_item, "activate", G_CALLBACK(self_activate_remove), self);
- event_box = gtk_event_box_new();
- GTK_WIDGET_SET_FLAGS(event_box, GTK_CAN_FOCUS);
- mn_setup_dnd(event_box);
+ selfp->event_box = gtk_event_box_new();
+ GTK_WIDGET_SET_FLAGS(selfp->event_box, GTK_CAN_FOCUS);
+ mn_setup_dnd(selfp->event_box);
- gtk_container_add(GTK_CONTAINER(event_box), self->image);
- gtk_container_add(GTK_CONTAINER(self), event_box);
+ gtk_container_add(GTK_CONTAINER(selfp->event_box), self->image);
+ gtk_container_add(GTK_CONTAINER(self), selfp->event_box);
- g_object_connect(event_box,
+ g_object_connect(selfp->event_box,
+ "signal::show-help", self_show_help_h, self,
"signal::button-press-event", self_button_press_event_h, self,
"signal::button-release-event", self_button_release_event_h, self,
"signal::popup-menu", self_popup_menu_h, self,
NULL);
gtk_widget_show(self->image);
- gtk_widget_show(event_box);
+ gtk_widget_show(selfp->event_box);
-#line 344 "mn-mail-icon.c"
+#line 364 "mn-mail-icon.c"
}
}
#undef __GOB_FUNCTION__
-#line 42 "mn-mail-icon.gob"
+#line 49 "mn-mail-icon.gob"
static void
mn_mail_icon_activate (MNMailIcon * self)
-#line 352 "mn-mail-icon.c"
+#line 372 "mn-mail-icon.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -356,11 +376,11 @@ mn_mail_icon_activate (MNMailIcon * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 42 "mn-mail-icon.gob"
+#line 49 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 42 "mn-mail-icon.gob"
+#line 49 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 364 "mn-mail-icon.c"
+#line 384 "mn-mail-icon.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -374,10 +394,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 44 "mn-mail-icon.gob"
+#line 51 "mn-mail-icon.gob"
static void
mn_mail_icon_activate_summary (MNMailIcon * self)
-#line 381 "mn-mail-icon.c"
+#line 401 "mn-mail-icon.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -385,11 +405,11 @@ mn_mail_icon_activate_summary (MNMailIcon * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 44 "mn-mail-icon.gob"
+#line 51 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 44 "mn-mail-icon.gob"
+#line 51 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 393 "mn-mail-icon.c"
+#line 413 "mn-mail-icon.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -403,10 +423,39 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 46 "mn-mail-icon.gob"
+#line 53 "mn-mail-icon.gob"
+static void
+mn_mail_icon_activate_mail_reader (MNMailIcon * self)
+#line 430 "mn-mail-icon.c"
+{
+ GValue ___param_values[1];
+ GValue ___return_val;
+
+memset (&___return_val, 0, sizeof (___return_val));
+memset (&___param_values, 0, sizeof (___param_values));
+
+#line 53 "mn-mail-icon.gob"
+ g_return_if_fail (self != NULL);
+#line 53 "mn-mail-icon.gob"
+ g_return_if_fail (MN_IS_MAIL_ICON (self));
+#line 442 "mn-mail-icon.c"
+
+ ___param_values[0].g_type = 0;
+ g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
+ g_value_set_instance (&___param_values[0], (gpointer) self);
+
+ g_signal_emitv (___param_values,
+ object_signals[ACTIVATE_MAIL_READER_SIGNAL],
+ 0 /* detail */,
+ &___return_val);
+
+ g_value_unset (&___param_values[0]);
+}
+
+#line 55 "mn-mail-icon.gob"
static void
mn_mail_icon_activate_update (MNMailIcon * self)
-#line 410 "mn-mail-icon.c"
+#line 459 "mn-mail-icon.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -414,11 +463,11 @@ mn_mail_icon_activate_update (MNMailIcon * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 46 "mn-mail-icon.gob"
+#line 55 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 46 "mn-mail-icon.gob"
+#line 55 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 422 "mn-mail-icon.c"
+#line 471 "mn-mail-icon.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -432,10 +481,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 48 "mn-mail-icon.gob"
+#line 57 "mn-mail-icon.gob"
static void
mn_mail_icon_activate_properties (MNMailIcon * self)
-#line 439 "mn-mail-icon.c"
+#line 488 "mn-mail-icon.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -443,11 +492,11 @@ mn_mail_icon_activate_properties (MNMailIcon * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 48 "mn-mail-icon.gob"
+#line 57 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 48 "mn-mail-icon.gob"
+#line 57 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 451 "mn-mail-icon.c"
+#line 500 "mn-mail-icon.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -461,10 +510,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 50 "mn-mail-icon.gob"
+#line 59 "mn-mail-icon.gob"
static void
mn_mail_icon_activate_help (MNMailIcon * self)
-#line 468 "mn-mail-icon.c"
+#line 517 "mn-mail-icon.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -472,11 +521,11 @@ mn_mail_icon_activate_help (MNMailIcon * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 50 "mn-mail-icon.gob"
+#line 59 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 50 "mn-mail-icon.gob"
+#line 59 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 480 "mn-mail-icon.c"
+#line 529 "mn-mail-icon.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -490,10 +539,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 52 "mn-mail-icon.gob"
+#line 61 "mn-mail-icon.gob"
static void
mn_mail_icon_activate_about (MNMailIcon * self)
-#line 497 "mn-mail-icon.c"
+#line 546 "mn-mail-icon.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -501,11 +550,11 @@ mn_mail_icon_activate_about (MNMailIcon * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 52 "mn-mail-icon.gob"
+#line 61 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 52 "mn-mail-icon.gob"
+#line 61 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 509 "mn-mail-icon.c"
+#line 558 "mn-mail-icon.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -519,10 +568,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 54 "mn-mail-icon.gob"
+#line 63 "mn-mail-icon.gob"
static void
mn_mail_icon_activate_remove (MNMailIcon * self)
-#line 526 "mn-mail-icon.c"
+#line 575 "mn-mail-icon.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -530,11 +579,11 @@ mn_mail_icon_activate_remove (MNMailIcon * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 54 "mn-mail-icon.gob"
+#line 63 "mn-mail-icon.gob"
g_return_if_fail (self != NULL);
-#line 54 "mn-mail-icon.gob"
+#line 63 "mn-mail-icon.gob"
g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 538 "mn-mail-icon.c"
+#line 587 "mn-mail-icon.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -550,23 +599,48 @@ memset (&___param_values, 0, sizeof (___param_values));
-#line 116 "mn-mail-icon.gob"
+#line 127 "mn-mail-icon.gob"
+static gboolean
+mn_mail_icon_show_help_h (GtkWidget * widget, GtkWidgetHelpType help_type, gpointer user_data)
+#line 606 "mn-mail-icon.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Icon::show_help_h"
+#line 127 "mn-mail-icon.gob"
+ g_return_val_if_fail (widget != NULL, (gboolean )0);
+#line 127 "mn-mail-icon.gob"
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
+#line 613 "mn-mail-icon.c"
+{
+#line 131 "mn-mail-icon.gob"
+
+ if (help_type == GTK_WIDGET_HELP_TOOLTIP)
+ {
+ mn_tooltips_toggle_keyboard_mode(widget);
+ return TRUE;
+ }
+ else
+ return FALSE;
+ }}
+#line 625 "mn-mail-icon.c"
+#undef __GOB_FUNCTION__
+
+#line 141 "mn-mail-icon.gob"
static gboolean
mn_mail_icon_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 557 "mn-mail-icon.c"
+#line 631 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::button_press_event_h"
-#line 116 "mn-mail-icon.gob"
+#line 141 "mn-mail-icon.gob"
g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 116 "mn-mail-icon.gob"
+#line 141 "mn-mail-icon.gob"
g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 116 "mn-mail-icon.gob"
+#line 141 "mn-mail-icon.gob"
g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 116 "mn-mail-icon.gob"
+#line 141 "mn-mail-icon.gob"
g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 568 "mn-mail-icon.c"
+#line 642 "mn-mail-icon.c"
{
-#line 120 "mn-mail-icon.gob"
+#line 145 "mn-mail-icon.gob"
Self *self = user_data;
@@ -580,26 +654,26 @@ mn_mail_icon_button_press_event_h (GtkWidget * widget, GdkEventButton * event, g
return FALSE; /* propagate event */
}}
-#line 584 "mn-mail-icon.c"
+#line 658 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
-#line 134 "mn-mail-icon.gob"
+#line 159 "mn-mail-icon.gob"
static gboolean
mn_mail_icon_button_release_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 590 "mn-mail-icon.c"
+#line 664 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::button_release_event_h"
-#line 134 "mn-mail-icon.gob"
+#line 159 "mn-mail-icon.gob"
g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 134 "mn-mail-icon.gob"
+#line 159 "mn-mail-icon.gob"
g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 134 "mn-mail-icon.gob"
+#line 159 "mn-mail-icon.gob"
g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 134 "mn-mail-icon.gob"
+#line 159 "mn-mail-icon.gob"
g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 601 "mn-mail-icon.c"
+#line 675 "mn-mail-icon.c"
{
-#line 138 "mn-mail-icon.gob"
+#line 163 "mn-mail-icon.gob"
Self *self = user_data;
@@ -611,43 +685,62 @@ mn_mail_icon_button_release_event_h (GtkWidget * widget, GdkEventButton * event,
return FALSE; /* propagate event */
}}
-#line 615 "mn-mail-icon.c"
+#line 689 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
-#line 150 "mn-mail-icon.gob"
+#line 175 "mn-mail-icon.gob"
static gboolean
mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_data)
-#line 621 "mn-mail-icon.c"
+#line 695 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::popup_menu_h"
-#line 150 "mn-mail-icon.gob"
+#line 175 "mn-mail-icon.gob"
g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 150 "mn-mail-icon.gob"
+#line 175 "mn-mail-icon.gob"
g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 150 "mn-mail-icon.gob"
+#line 175 "mn-mail-icon.gob"
g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 630 "mn-mail-icon.c"
+#line 704 "mn-mail-icon.c"
{
-#line 153 "mn-mail-icon.gob"
+#line 178 "mn-mail-icon.gob"
Self *self = user_data;
gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time());
return TRUE; /* a menu was activated */
}}
-#line 639 "mn-mail-icon.c"
+#line 713 "mn-mail-icon.c"
+#undef __GOB_FUNCTION__
+
+#line 185 "mn-mail-icon.gob"
+void
+mn_mail_icon_set_tip_widget (MNMailIcon * self, GtkWidget * tip_widget)
+#line 719 "mn-mail-icon.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Icon::set_tip_widget"
+#line 185 "mn-mail-icon.gob"
+ g_return_if_fail (self != NULL);
+#line 185 "mn-mail-icon.gob"
+ g_return_if_fail (MN_IS_MAIL_ICON (self));
+#line 726 "mn-mail-icon.c"
+{
+#line 187 "mn-mail-icon.gob"
+
+ mn_tooltips_set_tip_widget(selfp->tooltips, selfp->event_box, tip_widget);
+ }}
+#line 732 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
-#line 160 "mn-mail-icon.gob"
+#line 191 "mn-mail-icon.gob"
GtkWidget *
mn_mail_icon_new (void)
-#line 645 "mn-mail-icon.c"
+#line 738 "mn-mail-icon.c"
{
#define __GOB_FUNCTION__ "MN:Mail:Icon::new"
{
-#line 162 "mn-mail-icon.gob"
+#line 193 "mn-mail-icon.gob"
return GTK_WIDGET(GET_NEW_VARG("title", _("Mail Notification"), NULL));
}}
-#line 653 "mn-mail-icon.c"
+#line 746 "mn-mail-icon.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-mail-icon.gob b/src/mn-mail-icon.gob
@@ -23,6 +23,11 @@ requires 2.0.10
#include "eggtrayicon.h"
#include "mn-blinking-image.h"
%}
+
+%privateheader{
+#include "mn-tooltips.h"
+%}
+
%{
#include "config.h"
#include <gdk/gdkkeysyms.h>
@@ -33,10 +38,12 @@ requires 2.0.10
class MN:Mail:Icon from Egg:Tray:Icon
{
- public GtkTooltips *tooltips = {mn_tooltips_new()} unrefwith g_object_unref;
+ private MNTooltips *tooltips = {mn_tooltips_new()} unrefwith g_object_unref;
+ private GtkWidget *event_box;
public GtkWidget *image = {mn_blinking_image_new_from_stock(MN_STOCK_MAIL, GTK_ICON_SIZE_LARGE_TOOLBAR)};
private GtkWidget *menu = {gtk_menu_new()} destroywith gtk_widget_destroy;
+ public GtkWidget *mail_reader_item;
public GtkWidget *update_item;
signal (ACTION) private NONE (NONE)
@@ -44,6 +51,8 @@ class MN:Mail:Icon from Egg:Tray:Icon
signal (ACTION) private NONE (NONE)
void activate_summary (self);
signal (ACTION) private NONE (NONE)
+ void activate_mail_reader (self);
+ signal (ACTION) private NONE (NONE)
void activate_update (self);
signal (ACTION) private NONE (NONE)
void activate_properties (self);
@@ -72,7 +81,6 @@ class MN:Mail:Icon from Egg:Tray:Icon
init (self)
{
GtkMenuShell *shell;
- GtkWidget *event_box;
GtkWidget *summary_item;
GtkWidget *properties_item;
GtkWidget *help_item;
@@ -81,6 +89,7 @@ class MN:Mail:Icon from Egg:Tray:Icon
shell = GTK_MENU_SHELL(selfp->menu);
summary_item = mn_menu_shell_append(shell, MN_STOCK_MAIL_SUMMARY, NULL);
+ self->mail_reader_item = mn_menu_shell_append(shell, GTK_STOCK_EXECUTE, _("_Launch Mail Reader"));
self->update_item = mn_menu_shell_append(shell, GTK_STOCK_REFRESH, _("_Update"));
mn_menu_shell_append(shell, NULL, NULL);
properties_item = mn_menu_shell_append(shell, GTK_STOCK_PROPERTIES, NULL);
@@ -90,30 +99,46 @@ class MN:Mail:Icon from Egg:Tray:Icon
remove_item = mn_menu_shell_append(shell, GTK_STOCK_REMOVE, _("R_emove From Notification Area"));
g_signal_connect_swapped(summary_item, "activate", G_CALLBACK(self_activate_summary), self);
+ g_signal_connect_swapped(self->mail_reader_item, "activate", G_CALLBACK(self_activate_mail_reader), self);
g_signal_connect_swapped(self->update_item, "activate", G_CALLBACK(self_activate_update), self);
g_signal_connect_swapped(properties_item, "activate", G_CALLBACK(self_activate_properties), self);
g_signal_connect_swapped(help_item, "activate", G_CALLBACK(self_activate_help), self);
g_signal_connect_swapped(about_item, "activate", G_CALLBACK(self_activate_about), self);
g_signal_connect_swapped(remove_item, "activate", G_CALLBACK(self_activate_remove), self);
- event_box = gtk_event_box_new();
- GTK_WIDGET_SET_FLAGS(event_box, GTK_CAN_FOCUS);
- mn_setup_dnd(event_box);
+ selfp->event_box = gtk_event_box_new();
+ GTK_WIDGET_SET_FLAGS(selfp->event_box, GTK_CAN_FOCUS);
+ mn_setup_dnd(selfp->event_box);
- gtk_container_add(GTK_CONTAINER(event_box), self->image);
- gtk_container_add(GTK_CONTAINER(self), event_box);
+ gtk_container_add(GTK_CONTAINER(selfp->event_box), self->image);
+ gtk_container_add(GTK_CONTAINER(self), selfp->event_box);
- g_object_connect(event_box,
+ g_object_connect(selfp->event_box,
+ "signal::show-help", self_show_help_h, self,
"signal::button-press-event", self_button_press_event_h, self,
"signal::button-release-event", self_button_release_event_h, self,
"signal::popup-menu", self_popup_menu_h, self,
NULL);
gtk_widget_show(self->image);
- gtk_widget_show(event_box);
+ gtk_widget_show(selfp->event_box);
}
private gboolean
+ show_help_h (Gtk:Widget *widget (check null type),
+ GtkWidgetHelpType help_type,
+ gpointer user_data)
+ {
+ if (help_type == GTK_WIDGET_HELP_TOOLTIP)
+ {
+ mn_tooltips_toggle_keyboard_mode(widget);
+ return TRUE;
+ }
+ else
+ return FALSE;
+ }
+
+ private gboolean
button_press_event_h (Gtk:Widget *widget (check null type),
GdkEventButton *event (check null),
gpointer user_data (check null))
@@ -156,6 +181,12 @@ class MN:Mail:Icon from Egg:Tray:Icon
gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time());
return TRUE; /* a menu was activated */
}
+
+ public void
+ set_tip_widget (self, Gtk:Widget *tip_widget)
+ {
+ mn_tooltips_set_tip_widget(selfp->tooltips, selfp->event_box, tip_widget);
+ }
public GtkWidget *
new (void)
diff --git a/src/mn-mail-icon.h b/src/mn-mail-icon.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -40,8 +40,8 @@ typedef struct _MNMailIcon MNMailIcon;
struct _MNMailIcon {
EggTrayIcon __parent__;
/*< public >*/
- GtkTooltips * tooltips;
GtkWidget * image;
+ GtkWidget * mail_reader_item;
GtkWidget * update_item;
/*< private >*/
MNMailIconPrivate *_priv;
@@ -55,6 +55,7 @@ struct _MNMailIconClass {
EggTrayIconClass __parent__;
/*signal*/void (* activate) (MNMailIcon * self);
/*signal*/void (* activate_summary) (MNMailIcon * self);
+ /*signal*/void (* activate_mail_reader) (MNMailIcon * self);
/*signal*/void (* activate_update) (MNMailIcon * self);
/*signal*/void (* activate_properties) (MNMailIcon * self);
/*signal*/void (* activate_help) (MNMailIcon * self);
@@ -67,6 +68,8 @@ struct _MNMailIconClass {
* Public methods
*/
GType mn_mail_icon_get_type (void);
+void mn_mail_icon_set_tip_widget (MNMailIcon * self,
+ GtkWidget * tip_widget);
GtkWidget * mn_mail_icon_new (void);
/*
@@ -79,6 +82,9 @@ GtkWidget * mn_mail_icon_new (void);
#define mn_mail_icon_connect__activate_summary(object,func,data) g_signal_connect(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_summary",(GCallback) __extension__ ({void (* ___activate_summary) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_summary; }), (data))
#define mn_mail_icon_connect_after__activate_summary(object,func,data) g_signal_connect_after(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_summary",(GCallback) __extension__ ({void (* ___activate_summary) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_summary; }), (data))
#define mn_mail_icon_connect_data__activate_summary(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_summary",(GCallback) __extension__ ({void (* ___activate_summary) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_summary; }), (data), (destroy_data), (GConnectFlags)(flags))
+#define mn_mail_icon_connect__activate_mail_reader(object,func,data) g_signal_connect(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_mail_reader",(GCallback) __extension__ ({void (* ___activate_mail_reader) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_mail_reader; }), (data))
+#define mn_mail_icon_connect_after__activate_mail_reader(object,func,data) g_signal_connect_after(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_mail_reader",(GCallback) __extension__ ({void (* ___activate_mail_reader) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_mail_reader; }), (data))
+#define mn_mail_icon_connect_data__activate_mail_reader(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_mail_reader",(GCallback) __extension__ ({void (* ___activate_mail_reader) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_mail_reader; }), (data), (destroy_data), (GConnectFlags)(flags))
#define mn_mail_icon_connect__activate_update(object,func,data) g_signal_connect(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_update",(GCallback) __extension__ ({void (* ___activate_update) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_update; }), (data))
#define mn_mail_icon_connect_after__activate_update(object,func,data) g_signal_connect_after(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_update",(GCallback) __extension__ ({void (* ___activate_update) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_update; }), (data))
#define mn_mail_icon_connect_data__activate_update(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAIL_ICON(__extension__ ({MNMailIcon *___object = (object); ___object; })),"activate_update",(GCallback) __extension__ ({void (* ___activate_update) (MNMailIcon * ___fake___self, gpointer ___data ) = (func); ___activate_update; }), (data), (destroy_data), (GConnectFlags)(flags))
@@ -101,6 +107,9 @@ GtkWidget * mn_mail_icon_new (void);
#define mn_mail_icon_connect__activate_summary(object,func,data) g_signal_connect(MN_MAIL_ICON(object),"activate_summary",(GCallback)(func),(data))
#define mn_mail_icon_connect_after__activate_summary(object,func,data) g_signal_connect_after(MN_MAIL_ICON(object),"activate_summary",(GCallback)(func),(data))
#define mn_mail_icon_connect_data__activate_summary(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAIL_ICON(object),"activate_summary",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
+#define mn_mail_icon_connect__activate_mail_reader(object,func,data) g_signal_connect(MN_MAIL_ICON(object),"activate_mail_reader",(GCallback)(func),(data))
+#define mn_mail_icon_connect_after__activate_mail_reader(object,func,data) g_signal_connect_after(MN_MAIL_ICON(object),"activate_mail_reader",(GCallback)(func),(data))
+#define mn_mail_icon_connect_data__activate_mail_reader(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAIL_ICON(object),"activate_mail_reader",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
#define mn_mail_icon_connect__activate_update(object,func,data) g_signal_connect(MN_MAIL_ICON(object),"activate_update",(GCallback)(func),(data))
#define mn_mail_icon_connect_after__activate_update(object,func,data) g_signal_connect_after(MN_MAIL_ICON(object),"activate_update",(GCallback)(func),(data))
#define mn_mail_icon_connect_data__activate_update(object,func,data,destroy_data,flags) g_signal_connect_data(MN_MAIL_ICON(object),"activate_update",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
diff --git a/src/mn-mailbox-private.h b/src/mn-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MAILBOX_PRIVATE_H__
#define __MN_MAILBOX_PRIVATE_H__
@@ -29,22 +29,22 @@ struct _MNMailboxPrivate {
#line 140 "mn-mailbox.gob"
char * name;
#line 144 "mn-mailbox.gob"
- gboolean automatic;
-#line 149 "mn-mailbox.gob"
+ gboolean must_poll;
+#line 150 "mn-mailbox.gob"
gboolean has_new;
-#line 154 "mn-mailbox.gob"
+#line 155 "mn-mailbox.gob"
GSList * messages;
-#line 208 "mn-mailbox.gob"
+#line 209 "mn-mailbox.gob"
char * error;
-#line 228 "mn-mailbox.gob"
- GnomeVFSMonitorHandle * monitor_handle;
#line 229 "mn-mailbox.gob"
- char * monitor_uri;
+ GnomeVFSMonitorHandle * monitor_handle;
#line 230 "mn-mailbox.gob"
+ char * monitor_uri;
+#line 231 "mn-mailbox.gob"
MNMailboxMonitorEventType monitor_events;
-#line 232 "mn-mailbox.gob"
+#line 233 "mn-mailbox.gob"
gboolean checking;
-#line 363 "mn-mailbox.gob"
+#line 364 "mn-mailbox.gob"
char * init_error;
#line 50 "mn-mailbox-private.h"
};
diff --git a/src/mn-mailbox-view-private.h b/src/mn-mailbox-view-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MAILBOX_VIEW_PRIVATE_H__
#define __MN_MAILBOX_VIEW_PRIVATE_H__
diff --git a/src/mn-mailbox-view.c b/src/mn-mailbox-view.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-mailbox-view.h b/src/mn-mailbox-view.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-mailbox.c b/src/mn-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -141,7 +141,7 @@ enum {
PROP_0,
PROP_URI,
PROP_NAME,
- PROP_AUTOMATIC,
+ PROP_MUST_POLL,
PROP_HAS_NEW,
PROP_MESSAGES,
PROP_ERROR
@@ -155,8 +155,8 @@ static GObjectClass *parent_class = NULL;
/* Short form macros */
#define self_removed mn_mailbox_removed
#define self_get_name mn_mailbox_get_name
-#define self_get_automatic mn_mailbox_get_automatic
-#define self_set_automatic mn_mailbox_set_automatic
+#define self_get_must_poll mn_mailbox_get_must_poll
+#define self_set_must_poll mn_mailbox_set_must_poll
#define self_get_has_new mn_mailbox_get_has_new
#define self_set_has_new mn_mailbox_set_has_new
#define self_get_messages mn_mailbox_get_messages
@@ -238,22 +238,22 @@ ___finalize(GObject *obj_self)
#define __GOB_FUNCTION__ "MN:Mailbox::finalize"
MNMailbox *self G_GNUC_UNUSED = MN_MAILBOX (obj_self);
gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 234 "mn-mailbox.gob"
+#line 235 "mn-mailbox.gob"
___c_mn_mailbox_finalize(obj_self);
#line 244 "mn-mailbox.c"
#line 140 "mn-mailbox.gob"
if(self->_priv->name) { g_free ((gpointer) self->_priv->name); self->_priv->name = NULL; }
#line 247 "mn-mailbox.c"
-#line 154 "mn-mailbox.gob"
+#line 155 "mn-mailbox.gob"
if(self->_priv->messages) { mn_g_object_slist_free ((gpointer) self->_priv->messages); self->_priv->messages = NULL; }
#line 250 "mn-mailbox.c"
-#line 208 "mn-mailbox.gob"
+#line 209 "mn-mailbox.gob"
if(self->_priv->error) { g_free ((gpointer) self->_priv->error); self->_priv->error = NULL; }
#line 253 "mn-mailbox.c"
-#line 229 "mn-mailbox.gob"
+#line 230 "mn-mailbox.gob"
if(self->_priv->monitor_uri) { g_free ((gpointer) self->_priv->monitor_uri); self->_priv->monitor_uri = NULL; }
#line 256 "mn-mailbox.c"
-#line 363 "mn-mailbox.gob"
+#line 364 "mn-mailbox.gob"
if(self->_priv->init_error) { g_free ((gpointer) self->_priv->init_error); self->_priv->init_error = NULL; }
#line 259 "mn-mailbox.c"
}
@@ -267,6 +267,9 @@ mn_mailbox_init (MNMailbox * o G_GNUC_UNUSED)
#line 52 "mn-mailbox.gob"
o->uri = NULL;
#line 270 "mn-mailbox.c"
+#line 142 "mn-mailbox.gob"
+ o->_priv->must_poll = TRUE;
+#line 273 "mn-mailbox.c"
}
#undef __GOB_FUNCTION__
static void
@@ -297,14 +300,14 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
G_TYPE_NONE, 1,
G_TYPE_BOOLEAN);
if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailbox.gob line 205: Type mismatch of \"messages_changed\" signal signature");
+ g_error("mn-mailbox.gob line 206: Type mismatch of \"messages_changed\" signal signature");
}
c->removed = NULL;
c->messages_changed = NULL;
-#line 234 "mn-mailbox.gob"
+#line 235 "mn-mailbox.gob"
g_object_class->finalize = ___finalize;
-#line 308 "mn-mailbox.c"
+#line 311 "mn-mailbox.c"
c->impl_is = NULL;
c->impl_check = NULL;
g_object_class->dispose = ___dispose;
@@ -332,13 +335,13 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
PROP_NAME,
param_spec);
param_spec = g_param_spec_boolean
- ("automatic" /* name */,
+ ("must_poll" /* name */,
NULL /* nick */,
- _("Whether the mailbox has to be manually checked or not") /* blurb */,
- FALSE /* default_value */,
+ _("Whether the mailbox has to be polled or not") /* blurb */,
+ TRUE /* default_value */,
(GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (g_object_class,
- PROP_AUTOMATIC,
+ PROP_MUST_POLL,
param_spec);
param_spec = g_param_spec_boolean
("has_new" /* name */,
@@ -390,33 +393,33 @@ ___object_set_property (GObject *object,
self->uri = MN_URI(g_value_dup_object(VAL));
selfp->name = g_strdup(self->uri->human_readable);
-#line 394 "mn-mailbox.c"
+#line 397 "mn-mailbox.c"
}
break;
case PROP_NAME:
{
#line 141 "mn-mailbox.gob"
{ char *old = self->_priv->name; self->_priv->name = g_value_dup_string (VAL); g_free (old); }
-#line 401 "mn-mailbox.c"
+#line 404 "mn-mailbox.c"
}
break;
- case PROP_AUTOMATIC:
+ case PROP_MUST_POLL:
{
#line 145 "mn-mailbox.gob"
-self->_priv->automatic = g_value_get_boolean (VAL);
-#line 408 "mn-mailbox.c"
+self->_priv->must_poll = g_value_get_boolean (VAL);
+#line 411 "mn-mailbox.c"
}
break;
case PROP_HAS_NEW:
{
-#line 150 "mn-mailbox.gob"
+#line 151 "mn-mailbox.gob"
self->_priv->has_new = g_value_get_boolean (VAL);
-#line 415 "mn-mailbox.c"
+#line 418 "mn-mailbox.c"
}
break;
case PROP_MESSAGES:
{
-#line 158 "mn-mailbox.gob"
+#line 159 "mn-mailbox.gob"
GSList *messages;
GSList *l;
@@ -446,14 +449,14 @@ self->_priv->has_new = g_value_get_boolean (VAL);
if (changed)
self_messages_changed(self, has_new);
-#line 450 "mn-mailbox.c"
+#line 453 "mn-mailbox.c"
}
break;
case PROP_ERROR:
{
-#line 209 "mn-mailbox.gob"
+#line 210 "mn-mailbox.gob"
{ char *old = self->_priv->error; self->_priv->error = g_value_dup_string (VAL); g_free (old); }
-#line 457 "mn-mailbox.c"
+#line 460 "mn-mailbox.c"
}
break;
default:
@@ -484,37 +487,37 @@ ___object_get_property (GObject *object,
{
#line 141 "mn-mailbox.gob"
g_value_set_string (VAL, self->_priv->name);
-#line 488 "mn-mailbox.c"
+#line 491 "mn-mailbox.c"
}
break;
- case PROP_AUTOMATIC:
+ case PROP_MUST_POLL:
{
#line 145 "mn-mailbox.gob"
-g_value_set_boolean (VAL, self->_priv->automatic);
-#line 495 "mn-mailbox.c"
+g_value_set_boolean (VAL, self->_priv->must_poll);
+#line 498 "mn-mailbox.c"
}
break;
case PROP_HAS_NEW:
{
-#line 150 "mn-mailbox.gob"
+#line 151 "mn-mailbox.gob"
g_value_set_boolean (VAL, self->_priv->has_new);
-#line 502 "mn-mailbox.c"
+#line 505 "mn-mailbox.c"
}
break;
case PROP_MESSAGES:
{
-#line 188 "mn-mailbox.gob"
+#line 189 "mn-mailbox.gob"
g_value_set_pointer(VAL, selfp->messages);
-#line 511 "mn-mailbox.c"
+#line 514 "mn-mailbox.c"
}
break;
case PROP_ERROR:
{
-#line 209 "mn-mailbox.gob"
+#line 210 "mn-mailbox.gob"
g_value_set_string (VAL, self->_priv->error);
-#line 518 "mn-mailbox.c"
+#line 521 "mn-mailbox.c"
}
break;
default:
@@ -541,7 +544,7 @@ g_value_set_string (VAL, self->_priv->error);
#line 126 "mn-mailbox.gob"
void
mn_mailbox_removed (MNMailbox * self)
-#line 545 "mn-mailbox.c"
+#line 548 "mn-mailbox.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -553,7 +556,7 @@ memset (&___param_values, 0, sizeof (___param_values));
g_return_if_fail (self != NULL);
#line 126 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 557 "mn-mailbox.c"
+#line 560 "mn-mailbox.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -570,102 +573,102 @@ memset (&___param_values, 0, sizeof (___param_values));
#line 142 "mn-mailbox.gob"
const char *
mn_mailbox_get_name (MNMailbox * self)
-#line 574 "mn-mailbox.c"
+#line 577 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::get_name"
#line 142 "mn-mailbox.gob"
g_return_val_if_fail (self != NULL, (const char * )0);
#line 142 "mn-mailbox.gob"
g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 581 "mn-mailbox.c"
+#line 584 "mn-mailbox.c"
{
#line 142 "mn-mailbox.gob"
return selfp->name; }}
-#line 585 "mn-mailbox.c"
+#line 588 "mn-mailbox.c"
#undef __GOB_FUNCTION__
#line 145 "mn-mailbox.gob"
gboolean
-mn_mailbox_get_automatic (MNMailbox * self)
-#line 591 "mn-mailbox.c"
+mn_mailbox_get_must_poll (MNMailbox * self)
+#line 594 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::get_automatic"
+#define __GOB_FUNCTION__ "MN:Mailbox::get_must_poll"
{
#line 145 "mn-mailbox.gob"
- gboolean val; g_object_get (G_OBJECT (self), "automatic", &val, NULL); return val;
+ gboolean val; g_object_get (G_OBJECT (self), "must_poll", &val, NULL); return val;
}}
-#line 598 "mn-mailbox.c"
+#line 601 "mn-mailbox.c"
#undef __GOB_FUNCTION__
#line 145 "mn-mailbox.gob"
void
-mn_mailbox_set_automatic (MNMailbox * self, gboolean val)
-#line 604 "mn-mailbox.c"
+mn_mailbox_set_must_poll (MNMailbox * self, gboolean val)
+#line 607 "mn-mailbox.c"
{
-#define __GOB_FUNCTION__ "MN:Mailbox::set_automatic"
+#define __GOB_FUNCTION__ "MN:Mailbox::set_must_poll"
{
#line 145 "mn-mailbox.gob"
- g_object_set (G_OBJECT (self), "automatic", val, NULL);
+ g_object_set (G_OBJECT (self), "must_poll", val, NULL);
}}
-#line 611 "mn-mailbox.c"
+#line 614 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 150 "mn-mailbox.gob"
+#line 151 "mn-mailbox.gob"
gboolean
mn_mailbox_get_has_new (MNMailbox * self)
-#line 617 "mn-mailbox.c"
+#line 620 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::get_has_new"
{
-#line 150 "mn-mailbox.gob"
+#line 151 "mn-mailbox.gob"
gboolean val; g_object_get (G_OBJECT (self), "has_new", &val, NULL); return val;
}}
-#line 624 "mn-mailbox.c"
+#line 627 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 150 "mn-mailbox.gob"
+#line 151 "mn-mailbox.gob"
void
mn_mailbox_set_has_new (MNMailbox * self, gboolean val)
-#line 630 "mn-mailbox.c"
+#line 633 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::set_has_new"
{
-#line 150 "mn-mailbox.gob"
+#line 151 "mn-mailbox.gob"
g_object_set (G_OBJECT (self), "has_new", val, NULL);
}}
-#line 637 "mn-mailbox.c"
+#line 640 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 188 "mn-mailbox.gob"
+#line 189 "mn-mailbox.gob"
gpointer
mn_mailbox_get_messages (MNMailbox * self)
-#line 643 "mn-mailbox.c"
+#line 646 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::get_messages"
{
-#line 155 "mn-mailbox.gob"
+#line 156 "mn-mailbox.gob"
gpointer val; g_object_get (G_OBJECT (self), "messages", &val, NULL); return val;
}}
-#line 650 "mn-mailbox.c"
+#line 653 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 158 "mn-mailbox.gob"
+#line 159 "mn-mailbox.gob"
void
mn_mailbox_set_messages (MNMailbox * self, gpointer val)
-#line 656 "mn-mailbox.c"
+#line 659 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::set_messages"
{
-#line 155 "mn-mailbox.gob"
+#line 156 "mn-mailbox.gob"
g_object_set (G_OBJECT (self), "messages", val, NULL);
}}
-#line 663 "mn-mailbox.c"
+#line 666 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 205 "mn-mailbox.gob"
+#line 206 "mn-mailbox.gob"
static void
mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
-#line 669 "mn-mailbox.c"
+#line 672 "mn-mailbox.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -673,11 +676,11 @@ mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 205 "mn-mailbox.gob"
+#line 206 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 205 "mn-mailbox.gob"
+#line 206 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 681 "mn-mailbox.c"
+#line 684 "mn-mailbox.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -696,19 +699,19 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[1]);
}
-#line 210 "mn-mailbox.gob"
+#line 211 "mn-mailbox.gob"
void
mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
-#line 703 "mn-mailbox.c"
+#line 706 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::set_error"
-#line 210 "mn-mailbox.gob"
+#line 211 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 210 "mn-mailbox.gob"
+#line 211 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 710 "mn-mailbox.c"
+#line 713 "mn-mailbox.c"
{
-#line 212 "mn-mailbox.gob"
+#line 213 "mn-mailbox.gob"
va_list args;
char *error = NULL;
@@ -723,42 +726,42 @@ mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
g_object_set(G_OBJECT(self), MN_MAILBOX_PROP_ERROR(error), NULL);
g_free(error);
}}
-#line 727 "mn-mailbox.c"
+#line 730 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 226 "mn-mailbox.gob"
+#line 227 "mn-mailbox.gob"
const char *
mn_mailbox_get_error (MNMailbox * self)
-#line 733 "mn-mailbox.c"
+#line 736 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::get_error"
-#line 226 "mn-mailbox.gob"
+#line 227 "mn-mailbox.gob"
g_return_val_if_fail (self != NULL, (const char * )0);
-#line 226 "mn-mailbox.gob"
+#line 227 "mn-mailbox.gob"
g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 740 "mn-mailbox.c"
+#line 743 "mn-mailbox.c"
{
-#line 226 "mn-mailbox.gob"
+#line 227 "mn-mailbox.gob"
return selfp->error; }}
-#line 744 "mn-mailbox.c"
+#line 747 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 234 "mn-mailbox.gob"
+#line 235 "mn-mailbox.gob"
static void
___c_mn_mailbox_finalize (GObject * object G_GNUC_UNUSED)
-#line 750 "mn-mailbox.c"
+#line 753 "mn-mailbox.c"
#define PARENT_HANDLER(___object) \
{ if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Mailbox::finalize"
-#line 234 "mn-mailbox.gob"
+#line 235 "mn-mailbox.gob"
g_return_if_fail (object != NULL);
-#line 234 "mn-mailbox.gob"
+#line 235 "mn-mailbox.gob"
g_return_if_fail (G_IS_OBJECT (object));
-#line 760 "mn-mailbox.c"
+#line 763 "mn-mailbox.c"
{
-#line 236 "mn-mailbox.gob"
+#line 237 "mn-mailbox.gob"
Self *self = SELF(object);
@@ -767,18 +770,18 @@ ___c_mn_mailbox_finalize (GObject * object G_GNUC_UNUSED)
PARENT_HANDLER(object);
}}
-#line 771 "mn-mailbox.c"
+#line 774 "mn-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 245 "mn-mailbox.gob"
+#line 246 "mn-mailbox.gob"
void
mn_mailbox_init_types (void)
-#line 778 "mn-mailbox.c"
+#line 781 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::init_types"
{
-#line 247 "mn-mailbox.gob"
+#line 248 "mn-mailbox.gob"
int i = 0;
@@ -805,7 +808,7 @@ mn_mailbox_init_types (void)
#endif
mn_mailbox_types[i] = 0;
}}
-#line 809 "mn-mailbox.c"
+#line 812 "mn-mailbox.c"
#undef __GOB_FUNCTION__
/**
@@ -818,21 +821,21 @@ mn_mailbox_init_types (void)
* Creates a new #MNMailbox asynchronously. The newly created
* #MNMailbox will be passed to @callback.
**/
-#line 284 "mn-mailbox.gob"
+#line 285 "mn-mailbox.gob"
void
mn_mailbox_new_async (MNURI * uri, gpointer callback, gpointer user_data)
-#line 825 "mn-mailbox.c"
+#line 828 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::new_async"
-#line 284 "mn-mailbox.gob"
+#line 285 "mn-mailbox.gob"
g_return_if_fail (uri != NULL);
-#line 284 "mn-mailbox.gob"
+#line 285 "mn-mailbox.gob"
g_return_if_fail (MN_IS_URI (uri));
-#line 284 "mn-mailbox.gob"
+#line 285 "mn-mailbox.gob"
g_return_if_fail (callback != NULL);
-#line 834 "mn-mailbox.c"
+#line 837 "mn-mailbox.c"
{
-#line 288 "mn-mailbox.gob"
+#line 289 "mn-mailbox.gob"
NewInfo *info;
@@ -843,17 +846,17 @@ mn_mailbox_new_async (MNURI * uri, gpointer callback, gpointer user_data)
mn_thread_create(self_new_async_thread, info);
}}
-#line 847 "mn-mailbox.c"
+#line 850 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 299 "mn-mailbox.gob"
+#line 300 "mn-mailbox.gob"
static gpointer
mn_mailbox_new_async_thread (gpointer data)
-#line 853 "mn-mailbox.c"
+#line 856 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::new_async_thread"
{
-#line 301 "mn-mailbox.gob"
+#line 302 "mn-mailbox.gob"
NewInfo *info = data;
Self *mailbox = NULL;
@@ -915,24 +918,24 @@ mn_mailbox_new_async_thread (gpointer data)
return NULL;
}}
-#line 919 "mn-mailbox.c"
+#line 922 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 364 "mn-mailbox.gob"
+#line 365 "mn-mailbox.gob"
void
mn_mailbox_set_init_error (MNMailbox * self, const char * format, ...)
-#line 925 "mn-mailbox.c"
+#line 928 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::set_init_error"
-#line 364 "mn-mailbox.gob"
+#line 365 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 364 "mn-mailbox.gob"
+#line 365 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 364 "mn-mailbox.gob"
+#line 365 "mn-mailbox.gob"
g_return_if_fail (format != NULL);
-#line 934 "mn-mailbox.c"
+#line 937 "mn-mailbox.c"
{
-#line 366 "mn-mailbox.gob"
+#line 367 "mn-mailbox.gob"
va_list args;
@@ -942,24 +945,24 @@ mn_mailbox_set_init_error (MNMailbox * self, const char * format, ...)
selfp->init_error = g_strdup_vprintf(format, args);
va_end(args);
}}
-#line 946 "mn-mailbox.c"
+#line 949 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 376 "mn-mailbox.gob"
+#line 377 "mn-mailbox.gob"
void
mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType monitor_type, MNMailboxMonitorEventType events)
-#line 952 "mn-mailbox.c"
+#line 955 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::monitor"
-#line 376 "mn-mailbox.gob"
+#line 377 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 376 "mn-mailbox.gob"
+#line 377 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 376 "mn-mailbox.gob"
+#line 377 "mn-mailbox.gob"
g_return_if_fail (uri != NULL);
-#line 961 "mn-mailbox.c"
+#line 964 "mn-mailbox.c"
{
-#line 381 "mn-mailbox.gob"
+#line 382 "mn-mailbox.gob"
GnomeVFSResult result;
@@ -981,7 +984,7 @@ mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType moni
{
selfp->monitor_uri = g_strdup(uri);
selfp->monitor_events = events;
- self_set_automatic(self, TRUE);
+ self_set_must_poll(self, FALSE);
}
else
{
@@ -1049,20 +1052,20 @@ mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType moni
}
}
}}
-#line 1053 "mn-mailbox.c"
+#line 1056 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 471 "mn-mailbox.gob"
+#line 472 "mn-mailbox.gob"
static void
mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
-#line 1059 "mn-mailbox.c"
+#line 1062 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::monitor_cb"
-#line 471 "mn-mailbox.gob"
+#line 472 "mn-mailbox.gob"
g_return_if_fail (user_data != NULL);
-#line 1064 "mn-mailbox.c"
+#line 1067 "mn-mailbox.c"
{
-#line 477 "mn-mailbox.gob"
+#line 478 "mn-mailbox.gob"
Self *self = user_data;
@@ -1071,20 +1074,20 @@ mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri,
self_check(self);
GDK_THREADS_LEAVE();
}}
-#line 1075 "mn-mailbox.c"
+#line 1078 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 486 "mn-mailbox.gob"
+#line 487 "mn-mailbox.gob"
static gboolean
mn_mailbox_impl_is (MNMailbox * self, MNURI * uri)
-#line 1081 "mn-mailbox.c"
+#line 1084 "mn-mailbox.c"
{
MNMailboxClass *klass;
-#line 486 "mn-mailbox.gob"
+#line 487 "mn-mailbox.gob"
g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 486 "mn-mailbox.gob"
+#line 487 "mn-mailbox.gob"
g_return_val_if_fail (MN_IS_MAILBOX (self), (gboolean )0);
-#line 1088 "mn-mailbox.c"
+#line 1091 "mn-mailbox.c"
klass = MN_MAILBOX_GET_CLASS(self);
if(klass->impl_is)
@@ -1093,36 +1096,36 @@ mn_mailbox_impl_is (MNMailbox * self, MNURI * uri)
return (gboolean )(0);
}
-#line 488 "mn-mailbox.gob"
+#line 489 "mn-mailbox.gob"
static void
mn_mailbox_impl_check (MNMailbox * self)
-#line 1100 "mn-mailbox.c"
+#line 1103 "mn-mailbox.c"
{
MNMailboxClass *klass;
-#line 488 "mn-mailbox.gob"
+#line 489 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 488 "mn-mailbox.gob"
+#line 489 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1107 "mn-mailbox.c"
+#line 1110 "mn-mailbox.c"
klass = MN_MAILBOX_GET_CLASS(self);
if(klass->impl_check)
(*klass->impl_check)(self);
}
-#line 491 "mn-mailbox.gob"
+#line 492 "mn-mailbox.gob"
void
mn_mailbox_check (MNMailbox * self)
-#line 1117 "mn-mailbox.c"
+#line 1120 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::check"
-#line 491 "mn-mailbox.gob"
+#line 492 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 491 "mn-mailbox.gob"
+#line 492 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1124 "mn-mailbox.c"
+#line 1127 "mn-mailbox.c"
{
-#line 493 "mn-mailbox.gob"
+#line 494 "mn-mailbox.gob"
g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
@@ -1135,46 +1138,46 @@ mn_mailbox_check (MNMailbox * self)
mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_check, self);
}
}}
-#line 1139 "mn-mailbox.c"
+#line 1142 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 506 "mn-mailbox.gob"
+#line 507 "mn-mailbox.gob"
void
mn_mailbox_end_check (MNMailbox * self)
-#line 1145 "mn-mailbox.c"
+#line 1148 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::end_check"
-#line 506 "mn-mailbox.gob"
+#line 507 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 506 "mn-mailbox.gob"
+#line 507 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1152 "mn-mailbox.c"
+#line 1155 "mn-mailbox.c"
{
-#line 508 "mn-mailbox.gob"
+#line 509 "mn-mailbox.gob"
g_return_if_fail(selfp->checking == TRUE);
selfp->checking = FALSE;
g_object_unref(self);
}}
-#line 1161 "mn-mailbox.c"
+#line 1164 "mn-mailbox.c"
#undef __GOB_FUNCTION__
-#line 515 "mn-mailbox.gob"
+#line 516 "mn-mailbox.gob"
void
mn_mailbox_notice (MNMailbox * self, const char * format, ...)
-#line 1167 "mn-mailbox.c"
+#line 1170 "mn-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:Mailbox::notice"
-#line 515 "mn-mailbox.gob"
+#line 516 "mn-mailbox.gob"
g_return_if_fail (self != NULL);
-#line 515 "mn-mailbox.gob"
+#line 516 "mn-mailbox.gob"
g_return_if_fail (MN_IS_MAILBOX (self));
-#line 515 "mn-mailbox.gob"
+#line 516 "mn-mailbox.gob"
g_return_if_fail (format != NULL);
-#line 1176 "mn-mailbox.c"
+#line 1179 "mn-mailbox.c"
{
-#line 517 "mn-mailbox.gob"
+#line 518 "mn-mailbox.gob"
va_list args;
char *notice;
@@ -1186,5 +1189,5 @@ mn_mailbox_notice (MNMailbox * self, const char * format, ...)
mn_info("%s: %s", self->uri->text, notice);
g_free(notice);
}}
-#line 1190 "mn-mailbox.c"
+#line 1193 "mn-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox.gob b/src/mn-mailbox.gob
@@ -46,7 +46,7 @@ requires 2.0.10
#define MN_MAILBOX_CAN_CHECK(self) \
(MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
#define MN_MAILBOX_MUST_POLL(self) \
- (MN_MAILBOX_CAN_CHECK((self)) && ! mn_mailbox_get_automatic((self)))
+ (MN_MAILBOX_CAN_CHECK((self)) && mn_mailbox_get_must_poll((self)))
%}
%{
@@ -141,8 +141,9 @@ class MN:Mailbox from G:Object
property STRING name (blurb = _("The mailbox human-readable name"), link);
public const char *get_name (self) { return selfp->name; }
- private gboolean automatic;
- property BOOLEAN automatic (blurb = _("Whether the mailbox has to be manually checked or not"),
+ private gboolean must_poll = TRUE;
+ property BOOLEAN must_poll (blurb = _("Whether the mailbox has to be polled or not"),
+ default_value = TRUE,
link,
export);
@@ -399,7 +400,7 @@ class MN:Mailbox from G:Object
{
selfp->monitor_uri = g_strdup(uri);
selfp->monitor_events = events;
- self_set_automatic(self, TRUE);
+ self_set_must_poll(self, FALSE);
}
else
{
diff --git a/src/mn-mailbox.h b/src/mn-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -24,7 +24,7 @@ extern "C" {
#define MN_MAILBOX_CAN_CHECK(self) \
(MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
#define MN_MAILBOX_MUST_POLL(self) \
- (MN_MAILBOX_CAN_CHECK((self)) && ! mn_mailbox_get_automatic((self)))
+ (MN_MAILBOX_CAN_CHECK((self)) && mn_mailbox_get_must_poll((self)))
/*
@@ -77,8 +77,8 @@ struct _MNMailboxClass {
GType mn_mailbox_get_type (void);
void mn_mailbox_removed (MNMailbox * self);
const char * mn_mailbox_get_name (MNMailbox * self);
-gboolean mn_mailbox_get_automatic (MNMailbox * self);
-void mn_mailbox_set_automatic (MNMailbox * self,
+gboolean mn_mailbox_get_must_poll (MNMailbox * self);
+void mn_mailbox_set_must_poll (MNMailbox * self,
gboolean val);
gboolean mn_mailbox_get_has_new (MNMailbox * self);
void mn_mailbox_set_has_new (MNMailbox * self,
@@ -120,8 +120,8 @@ void mn_mailbox_check (MNMailbox * self);
#define MN_MAILBOX_PROP_URI(arg) "uri", __extension__ ({GObject *z = (arg); z;})
#define MN_MAILBOX_PROP_NAME(arg) "name", __extension__ ({gchar *z = (arg); z;})
#define MN_MAILBOX_GET_PROP_NAME(arg) "name", __extension__ ({gchar **z = (arg); z;})
-#define MN_MAILBOX_PROP_AUTOMATIC(arg) "automatic", __extension__ ({gboolean z = (arg); z;})
-#define MN_MAILBOX_GET_PROP_AUTOMATIC(arg) "automatic", __extension__ ({gboolean *z = (arg); z;})
+#define MN_MAILBOX_PROP_MUST_POLL(arg) "must_poll", __extension__ ({gboolean z = (arg); z;})
+#define MN_MAILBOX_GET_PROP_MUST_POLL(arg) "must_poll", __extension__ ({gboolean *z = (arg); z;})
#define MN_MAILBOX_PROP_HAS_NEW(arg) "has_new", __extension__ ({gboolean z = (arg); z;})
#define MN_MAILBOX_GET_PROP_HAS_NEW(arg) "has_new", __extension__ ({gboolean *z = (arg); z;})
#define MN_MAILBOX_PROP_MESSAGES(arg) "messages", __extension__ ({gpointer z = (arg); z;})
@@ -132,8 +132,8 @@ void mn_mailbox_check (MNMailbox * self);
#define MN_MAILBOX_PROP_URI(arg) "uri",(GObject *)(arg)
#define MN_MAILBOX_PROP_NAME(arg) "name",(gchar *)(arg)
#define MN_MAILBOX_GET_PROP_NAME(arg) "name",(gchar **)(arg)
-#define MN_MAILBOX_PROP_AUTOMATIC(arg) "automatic",(gboolean )(arg)
-#define MN_MAILBOX_GET_PROP_AUTOMATIC(arg) "automatic",(gboolean *)(arg)
+#define MN_MAILBOX_PROP_MUST_POLL(arg) "must_poll",(gboolean )(arg)
+#define MN_MAILBOX_GET_PROP_MUST_POLL(arg) "must_poll",(gboolean *)(arg)
#define MN_MAILBOX_PROP_HAS_NEW(arg) "has_new",(gboolean )(arg)
#define MN_MAILBOX_GET_PROP_HAS_NEW(arg) "has_new",(gboolean *)(arg)
#define MN_MAILBOX_PROP_MESSAGES(arg) "messages",(gpointer )(arg)
diff --git a/src/mn-mailboxes-private.h b/src/mn-mailboxes-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MAILBOXES_PRIVATE_H__
#define __MN_MAILBOXES_PRIVATE_H__
@@ -14,11 +14,7 @@ struct _MNMailboxesPrivate {
GSList * list;
#line 37 "mn-mailboxes.gob"
unsigned int timeout_id;
-#line 38 "mn-mailboxes.gob"
- unsigned int delay_notification_id;
-#line 39 "mn-mailboxes.gob"
- unsigned int mailboxes_notification_id;
-#line 22 "mn-mailboxes-private.h"
+#line 18 "mn-mailboxes-private.h"
};
#ifdef __cplusplus
diff --git a/src/mn-mailboxes.c b/src/mn-mailboxes.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -68,6 +68,7 @@ static void mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data) G_GNUC
static void mn_mailboxes_notify_has_new_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailboxes_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
static void mn_mailboxes_install_timeout (MNMailboxes * self) G_GNUC_UNUSED;
static gboolean mn_mailboxes_timeout_cb (gpointer data) G_GNUC_UNUSED;
static int mn_mailboxes_find_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
@@ -199,6 +200,7 @@ static GObjectClass *parent_class = NULL;
#define self_notify_has_new_h mn_mailboxes_notify_has_new_h
#define self_messages_changed_h mn_mailboxes_messages_changed_h
#define self_notify_error_h mn_mailboxes_notify_error_h
+#define self_notify_must_poll_h mn_mailboxes_notify_must_poll_h
#define self_install_timeout mn_mailboxes_install_timeout
#define self_timeout_cb mn_mailboxes_timeout_cb
#define self_check mn_mailboxes_check
@@ -260,12 +262,12 @@ ___finalize(GObject *obj_self)
#define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
MNMailboxes *self G_GNUC_UNUSED = MN_MAILBOXES (obj_self);
gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 169 "mn-mailboxes.gob"
+#line 168 "mn-mailboxes.gob"
___a_mn_mailboxes_finalize(obj_self);
-#line 266 "mn-mailboxes.c"
+#line 268 "mn-mailboxes.c"
#line 36 "mn-mailboxes.gob"
if(self->_priv->list) { mn_g_object_slist_free ((gpointer) self->_priv->list); self->_priv->list = NULL; }
-#line 269 "mn-mailboxes.c"
+#line 271 "mn-mailboxes.c"
}
#undef __GOB_FUNCTION__
@@ -289,7 +291,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
G_TYPE_NONE, 1,
G_TYPE_OBJECT);
if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 48: Type mismatch of \"mailbox_added\" signal signature");
+ g_error("mn-mailboxes.gob line 46: Type mismatch of \"mailbox_added\" signal signature");
}
object_signals[MAILBOX_CHANGED_SIGNAL] =
g_signal_new ("mailbox_changed",
@@ -301,7 +303,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
G_TYPE_NONE, 1,
G_TYPE_OBJECT);
if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 58: Type mismatch of \"mailbox_changed\" signal signature");
+ g_error("mn-mailboxes.gob line 56: Type mismatch of \"mailbox_changed\" signal signature");
}
object_signals[MAILBOX_REMOVED_SIGNAL] =
g_signal_new ("mailbox_removed",
@@ -313,7 +315,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
G_TYPE_NONE, 1,
G_TYPE_OBJECT);
if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 69: Type mismatch of \"mailbox_removed\" signal signature");
+ g_error("mn-mailboxes.gob line 67: Type mismatch of \"mailbox_removed\" signal signature");
}
object_signals[LIST_CHANGED_SIGNAL] =
g_signal_new ("list_changed",
@@ -341,7 +343,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
G_TYPE_NONE, 1,
G_TYPE_BOOLEAN);
if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
- g_error("mn-mailboxes.gob line 128: Type mismatch of \"messages_changed\" signal signature");
+ g_error("mn-mailboxes.gob line 127: Type mismatch of \"messages_changed\" signal signature");
}
object_signals[ERROR_CHANGED_SIGNAL] =
g_signal_new ("error_changed",
@@ -354,17 +356,17 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
c->mailbox_added = NULL;
c->mailbox_changed = NULL;
-#line 69 "mn-mailboxes.gob"
+#line 67 "mn-mailboxes.gob"
c->mailbox_removed = ___real_mn_mailboxes_mailbox_removed;
-#line 96 "mn-mailboxes.gob"
+#line 95 "mn-mailboxes.gob"
c->list_changed = ___real_mn_mailboxes_list_changed;
-#line 362 "mn-mailboxes.c"
+#line 364 "mn-mailboxes.c"
c->has_new_changed = NULL;
c->messages_changed = NULL;
c->error_changed = NULL;
-#line 169 "mn-mailboxes.gob"
+#line 168 "mn-mailboxes.gob"
g_object_class->finalize = ___finalize;
-#line 368 "mn-mailboxes.c"
+#line 370 "mn-mailboxes.c"
g_object_class->get_property = ___object_get_property;
{
GParamSpec *param_spec;
@@ -381,23 +383,23 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
}
}
#undef __GOB_FUNCTION__
-#line 160 "mn-mailboxes.gob"
+#line 159 "mn-mailboxes.gob"
static void
mn_mailboxes_init (MNMailboxes * self G_GNUC_UNUSED)
-#line 388 "mn-mailboxes.c"
+#line 390 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::init"
self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailboxesPrivate);
{
-#line 161 "mn-mailboxes.gob"
+#line 160 "mn-mailboxes.gob"
self_update_from_conf(self);
self_install_timeout(self);
- selfp->delay_notification_id = eel_gconf_notification_add(MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
- selfp->mailboxes_notification_id = eel_gconf_notification_add(MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
+ mn_conf_notification_add(self, MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
+ mn_conf_notification_add(self, MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
-#line 401 "mn-mailboxes.c"
+#line 403 "mn-mailboxes.c"
}
}
#undef __GOB_FUNCTION__
@@ -416,7 +418,7 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_MUST_POLL:
{
-#line 146 "mn-mailboxes.gob"
+#line 145 "mn-mailboxes.gob"
gboolean must_poll = FALSE;
GSList *l;
@@ -430,7 +432,7 @@ ___object_get_property (GObject *object,
g_value_set_boolean(VAL, must_poll);
-#line 434 "mn-mailboxes.c"
+#line 436 "mn-mailboxes.c"
}
break;
default:
@@ -446,10 +448,10 @@ ___object_get_property (GObject *object,
#undef __GOB_FUNCTION__
-#line 48 "mn-mailboxes.gob"
+#line 46 "mn-mailboxes.gob"
static void
mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox)
-#line 453 "mn-mailboxes.c"
+#line 455 "mn-mailboxes.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -457,15 +459,15 @@ mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 48 "mn-mailboxes.gob"
+#line 46 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 48 "mn-mailboxes.gob"
+#line 46 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 48 "mn-mailboxes.gob"
+#line 46 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 48 "mn-mailboxes.gob"
+#line 46 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 469 "mn-mailboxes.c"
+#line 471 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -484,10 +486,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[1]);
}
-#line 58 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
static void
mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox)
-#line 491 "mn-mailboxes.c"
+#line 493 "mn-mailboxes.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -495,15 +497,15 @@ mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 58 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 58 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 58 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 58 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 507 "mn-mailboxes.c"
+#line 509 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -522,10 +524,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[1]);
}
-#line 69 "mn-mailboxes.gob"
+#line 67 "mn-mailboxes.gob"
static void
mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox)
-#line 529 "mn-mailboxes.c"
+#line 531 "mn-mailboxes.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -533,15 +535,15 @@ mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 69 "mn-mailboxes.gob"
+#line 67 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 69 "mn-mailboxes.gob"
+#line 67 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 69 "mn-mailboxes.gob"
+#line 67 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 69 "mn-mailboxes.gob"
+#line 67 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 545 "mn-mailboxes.c"
+#line 547 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -559,20 +561,21 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
g_value_unset (&___param_values[1]);
}
-#line 69 "mn-mailboxes.gob"
+#line 67 "mn-mailboxes.gob"
static void
___real_mn_mailboxes_mailbox_removed (MNMailboxes * self G_GNUC_UNUSED, MNMailbox * mailbox)
-#line 566 "mn-mailboxes.c"
+#line 568 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_removed"
{
-#line 71 "mn-mailboxes.gob"
+#line 69 "mn-mailboxes.gob"
/* disconnect signals */
g_object_disconnect(mailbox,
"any_signal", self_notify_has_new_h, self,
"any_signal", self_messages_changed_h, self,
"any_signal", self_notify_error_h, self,
+ "any_signal", self_notify_must_poll_h, self,
NULL);
/* emit the "removed" signal on the mailbox */
@@ -583,13 +586,13 @@ ___real_mn_mailboxes_mailbox_removed (MNMailboxes * self G_GNUC_UNUSED, MNMailbo
self_messages_changed(self, FALSE);
self_error_changed(self);
}}
-#line 587 "mn-mailboxes.c"
+#line 590 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 96 "mn-mailboxes.gob"
+#line 95 "mn-mailboxes.gob"
static void
mn_mailboxes_list_changed (MNMailboxes * self)
-#line 593 "mn-mailboxes.c"
+#line 596 "mn-mailboxes.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -597,11 +600,11 @@ mn_mailboxes_list_changed (MNMailboxes * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 96 "mn-mailboxes.gob"
+#line 95 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 96 "mn-mailboxes.gob"
+#line 95 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 605 "mn-mailboxes.c"
+#line 608 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -614,25 +617,25 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 96 "mn-mailboxes.gob"
+#line 95 "mn-mailboxes.gob"
static void
___real_mn_mailboxes_list_changed (MNMailboxes * self G_GNUC_UNUSED)
-#line 621 "mn-mailboxes.c"
+#line 624 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::list_changed"
{
-#line 98 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
/* must-poll has possibly changed */
g_object_notify(G_OBJECT(self), "must-poll");
}}
-#line 630 "mn-mailboxes.c"
+#line 633 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 112 "mn-mailboxes.gob"
+#line 111 "mn-mailboxes.gob"
static void
mn_mailboxes_has_new_changed (MNMailboxes * self)
-#line 636 "mn-mailboxes.c"
+#line 639 "mn-mailboxes.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -640,11 +643,11 @@ mn_mailboxes_has_new_changed (MNMailboxes * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 112 "mn-mailboxes.gob"
+#line 111 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 112 "mn-mailboxes.gob"
+#line 111 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 648 "mn-mailboxes.c"
+#line 651 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -658,10 +661,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 128 "mn-mailboxes.gob"
+#line 127 "mn-mailboxes.gob"
static void
mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
-#line 665 "mn-mailboxes.c"
+#line 668 "mn-mailboxes.c"
{
GValue ___param_values[2];
GValue ___return_val;
@@ -669,11 +672,11 @@ mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 128 "mn-mailboxes.gob"
+#line 127 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 128 "mn-mailboxes.gob"
+#line 127 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 677 "mn-mailboxes.c"
+#line 680 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -692,10 +695,10 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[1]);
}
-#line 140 "mn-mailboxes.gob"
+#line 139 "mn-mailboxes.gob"
static void
mn_mailboxes_error_changed (MNMailboxes * self)
-#line 699 "mn-mailboxes.c"
+#line 702 "mn-mailboxes.c"
{
GValue ___param_values[1];
GValue ___return_val;
@@ -703,11 +706,11 @@ mn_mailboxes_error_changed (MNMailboxes * self)
memset (&___return_val, 0, sizeof (___return_val));
memset (&___param_values, 0, sizeof (___param_values));
-#line 140 "mn-mailboxes.gob"
+#line 139 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 140 "mn-mailboxes.gob"
+#line 139 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 711 "mn-mailboxes.c"
+#line 714 "mn-mailboxes.c"
___param_values[0].g_type = 0;
g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -721,62 +724,59 @@ memset (&___param_values, 0, sizeof (___param_values));
g_value_unset (&___param_values[0]);
}
-#line 146 "mn-mailboxes.gob"
+#line 145 "mn-mailboxes.gob"
gboolean
mn_mailboxes_get_must_poll (MNMailboxes * self)
-#line 728 "mn-mailboxes.c"
+#line 731 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::get_must_poll"
{
-#line 143 "mn-mailboxes.gob"
+#line 142 "mn-mailboxes.gob"
gboolean val; g_object_get (G_OBJECT (self), "must_poll", &val, NULL); return val;
}}
-#line 735 "mn-mailboxes.c"
+#line 738 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 169 "mn-mailboxes.gob"
+#line 168 "mn-mailboxes.gob"
static void
___a_mn_mailboxes_finalize (GObject * object G_GNUC_UNUSED)
-#line 742 "mn-mailboxes.c"
+#line 745 "mn-mailboxes.c"
#define PARENT_HANDLER(___object) \
{ if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
-#line 169 "mn-mailboxes.gob"
+#line 168 "mn-mailboxes.gob"
g_return_if_fail (object != NULL);
-#line 169 "mn-mailboxes.gob"
+#line 168 "mn-mailboxes.gob"
g_return_if_fail (G_IS_OBJECT (object));
-#line 752 "mn-mailboxes.c"
+#line 755 "mn-mailboxes.c"
{
-#line 171 "mn-mailboxes.gob"
+#line 170 "mn-mailboxes.gob"
Self *self = SELF(object);
if (selfp->timeout_id)
g_source_remove(selfp->timeout_id);
- eel_gconf_notification_remove(selfp->delay_notification_id);
- eel_gconf_notification_remove(selfp->mailboxes_notification_id);
-
PARENT_HANDLER(object);
}}
#line 766 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 183 "mn-mailboxes.gob"
+#line 179 "mn-mailboxes.gob"
static void
mn_mailboxes_notify_delay_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
#line 773 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::notify_delay_cb"
-#line 183 "mn-mailboxes.gob"
+#line 179 "mn-mailboxes.gob"
g_return_if_fail (user_data != NULL);
#line 778 "mn-mailboxes.c"
{
-#line 188 "mn-mailboxes.gob"
+#line 184 "mn-mailboxes.gob"
Self *self = user_data;
@@ -787,17 +787,17 @@ mn_mailboxes_notify_delay_cb (GConfClient * client, guint cnxn_id, GConfEntry *
#line 788 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 196 "mn-mailboxes.gob"
+#line 192 "mn-mailboxes.gob"
static void
mn_mailboxes_notify_mailboxes_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
#line 794 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::notify_mailboxes_cb"
-#line 196 "mn-mailboxes.gob"
+#line 192 "mn-mailboxes.gob"
g_return_if_fail (user_data != NULL);
#line 799 "mn-mailboxes.c"
{
-#line 201 "mn-mailboxes.gob"
+#line 197 "mn-mailboxes.gob"
Self *self = user_data;
@@ -808,19 +808,19 @@ mn_mailboxes_notify_mailboxes_cb (GConfClient * client, guint cnxn_id, GConfEntr
#line 809 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 209 "mn-mailboxes.gob"
+#line 205 "mn-mailboxes.gob"
static void
mn_mailboxes_update_from_conf (MNMailboxes * self)
#line 815 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::update_from_conf"
-#line 209 "mn-mailboxes.gob"
+#line 205 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 209 "mn-mailboxes.gob"
+#line 205 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
#line 822 "mn-mailboxes.c"
{
-#line 211 "mn-mailboxes.gob"
+#line 207 "mn-mailboxes.gob"
GSList *gconf_mailboxes;
GSList *l;
@@ -877,21 +877,21 @@ mn_mailboxes_update_from_conf (MNMailboxes * self)
#line 878 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 265 "mn-mailboxes.gob"
+#line 261 "mn-mailboxes.gob"
static void
mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data)
#line 884 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::new_cb"
-#line 265 "mn-mailboxes.gob"
+#line 261 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 265 "mn-mailboxes.gob"
+#line 261 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 265 "mn-mailboxes.gob"
+#line 261 "mn-mailboxes.gob"
g_return_if_fail (user_data != NULL);
#line 893 "mn-mailboxes.c"
{
-#line 268 "mn-mailboxes.gob"
+#line 264 "mn-mailboxes.gob"
Self *self = user_data;
GSList *elem;
@@ -906,6 +906,7 @@ mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data)
"signal::notify::has-new", self_notify_has_new_h, self,
"signal::messages-changed", self_messages_changed_h, self,
"signal::notify::error", self_notify_error_h, self,
+ "signal::notify::must-poll", self_notify_must_poll_h, self,
NULL);
if (MN_MAILBOX_CAN_CHECK(mailbox))
@@ -920,26 +921,26 @@ mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data)
else
g_object_unref(mailbox);
}}
-#line 924 "mn-mailboxes.c"
+#line 925 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 297 "mn-mailboxes.gob"
+#line 294 "mn-mailboxes.gob"
static void
mn_mailboxes_notify_has_new_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 930 "mn-mailboxes.c"
+#line 931 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::notify_has_new_h"
-#line 297 "mn-mailboxes.gob"
+#line 294 "mn-mailboxes.gob"
g_return_if_fail (object != NULL);
-#line 297 "mn-mailboxes.gob"
+#line 294 "mn-mailboxes.gob"
g_return_if_fail (G_IS_OBJECT (object));
-#line 297 "mn-mailboxes.gob"
+#line 294 "mn-mailboxes.gob"
g_return_if_fail (pspec != NULL);
-#line 297 "mn-mailboxes.gob"
+#line 294 "mn-mailboxes.gob"
g_return_if_fail (user_data != NULL);
-#line 941 "mn-mailboxes.c"
+#line 942 "mn-mailboxes.c"
{
-#line 301 "mn-mailboxes.gob"
+#line 298 "mn-mailboxes.gob"
Self *self = user_data;
MNMailbox *mailbox = MN_MAILBOX(object);
@@ -950,49 +951,49 @@ mn_mailboxes_notify_has_new_h (GObject * object, GParamSpec * pspec, gpointer us
self_has_new_changed(self);
}}
-#line 954 "mn-mailboxes.c"
+#line 955 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 312 "mn-mailboxes.gob"
+#line 309 "mn-mailboxes.gob"
static void
mn_mailboxes_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data)
-#line 960 "mn-mailboxes.c"
+#line 961 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::messages_changed_h"
-#line 312 "mn-mailboxes.gob"
+#line 309 "mn-mailboxes.gob"
g_return_if_fail (mailbox != NULL);
-#line 312 "mn-mailboxes.gob"
+#line 309 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 312 "mn-mailboxes.gob"
+#line 309 "mn-mailboxes.gob"
g_return_if_fail (user_data != NULL);
-#line 969 "mn-mailboxes.c"
+#line 970 "mn-mailboxes.c"
{
-#line 316 "mn-mailboxes.gob"
+#line 313 "mn-mailboxes.gob"
Self *self = user_data;
self_messages_changed(self, has_new);
}}
-#line 977 "mn-mailboxes.c"
+#line 978 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 322 "mn-mailboxes.gob"
+#line 319 "mn-mailboxes.gob"
static void
mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 983 "mn-mailboxes.c"
+#line 984 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::notify_error_h"
-#line 322 "mn-mailboxes.gob"
+#line 319 "mn-mailboxes.gob"
g_return_if_fail (object != NULL);
-#line 322 "mn-mailboxes.gob"
+#line 319 "mn-mailboxes.gob"
g_return_if_fail (G_IS_OBJECT (object));
-#line 322 "mn-mailboxes.gob"
+#line 319 "mn-mailboxes.gob"
g_return_if_fail (pspec != NULL);
-#line 322 "mn-mailboxes.gob"
+#line 319 "mn-mailboxes.gob"
g_return_if_fail (user_data != NULL);
-#line 994 "mn-mailboxes.c"
+#line 995 "mn-mailboxes.c"
{
-#line 326 "mn-mailboxes.gob"
+#line 323 "mn-mailboxes.gob"
Self *self = user_data;
MNMailbox *mailbox = MN_MAILBOX(object);
@@ -1004,22 +1005,48 @@ mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user
self_error_changed(self);
}}
-#line 1008 "mn-mailboxes.c"
+#line 1009 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 335 "mn-mailboxes.gob"
+static void
+mn_mailboxes_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 1015 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::notify_must_poll_h"
+#line 335 "mn-mailboxes.gob"
+ g_return_if_fail (object != NULL);
+#line 335 "mn-mailboxes.gob"
+ g_return_if_fail (G_IS_OBJECT (object));
+#line 335 "mn-mailboxes.gob"
+ g_return_if_fail (pspec != NULL);
+#line 335 "mn-mailboxes.gob"
+ g_return_if_fail (user_data != NULL);
+#line 1026 "mn-mailboxes.c"
+{
+#line 339 "mn-mailboxes.gob"
+
+ Self *self = user_data;
+
+ /* must-poll has possibly changed */
+ g_object_notify(G_OBJECT(self), "must-poll");
+ }}
+#line 1035 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 338 "mn-mailboxes.gob"
+#line 346 "mn-mailboxes.gob"
static void
mn_mailboxes_install_timeout (MNMailboxes * self)
-#line 1014 "mn-mailboxes.c"
+#line 1041 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::install_timeout"
-#line 338 "mn-mailboxes.gob"
+#line 346 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 338 "mn-mailboxes.gob"
+#line 346 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 1021 "mn-mailboxes.c"
+#line 1048 "mn-mailboxes.c"
{
-#line 340 "mn-mailboxes.gob"
+#line 348 "mn-mailboxes.gob"
int minutes;
int seconds;
@@ -1038,20 +1065,20 @@ mn_mailboxes_install_timeout (MNMailboxes * self)
self_timeout_cb,
self);
}}
-#line 1042 "mn-mailboxes.c"
+#line 1069 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 359 "mn-mailboxes.gob"
+#line 367 "mn-mailboxes.gob"
static gboolean
mn_mailboxes_timeout_cb (gpointer data)
-#line 1048 "mn-mailboxes.c"
+#line 1075 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::timeout_cb"
-#line 359 "mn-mailboxes.gob"
+#line 367 "mn-mailboxes.gob"
g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 1053 "mn-mailboxes.c"
+#line 1080 "mn-mailboxes.c"
{
-#line 361 "mn-mailboxes.gob"
+#line 369 "mn-mailboxes.gob"
Self *self = data;
@@ -1061,22 +1088,22 @@ mn_mailboxes_timeout_cb (gpointer data)
return TRUE; /* continue */
}}
-#line 1065 "mn-mailboxes.c"
+#line 1092 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 371 "mn-mailboxes.gob"
+#line 379 "mn-mailboxes.gob"
void
mn_mailboxes_check (MNMailboxes * self)
-#line 1071 "mn-mailboxes.c"
+#line 1098 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::check"
-#line 371 "mn-mailboxes.gob"
+#line 379 "mn-mailboxes.gob"
g_return_if_fail (self != NULL);
-#line 371 "mn-mailboxes.gob"
+#line 379 "mn-mailboxes.gob"
g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 1078 "mn-mailboxes.c"
+#line 1105 "mn-mailboxes.c"
{
-#line 373 "mn-mailboxes.gob"
+#line 381 "mn-mailboxes.gob"
GSList *l;
@@ -1088,41 +1115,41 @@ mn_mailboxes_check (MNMailboxes * self)
mn_mailbox_check(mailbox);
}
}}
-#line 1092 "mn-mailboxes.c"
+#line 1119 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 385 "mn-mailboxes.gob"
+#line 393 "mn-mailboxes.gob"
GSList *
mn_mailboxes_get (MNMailboxes * self)
-#line 1098 "mn-mailboxes.c"
+#line 1125 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::get"
-#line 385 "mn-mailboxes.gob"
+#line 393 "mn-mailboxes.gob"
g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 385 "mn-mailboxes.gob"
+#line 393 "mn-mailboxes.gob"
g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1105 "mn-mailboxes.c"
+#line 1132 "mn-mailboxes.c"
{
-#line 387 "mn-mailboxes.gob"
+#line 395 "mn-mailboxes.gob"
return selfp->list;
}}
-#line 1111 "mn-mailboxes.c"
+#line 1138 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 391 "mn-mailboxes.gob"
+#line 399 "mn-mailboxes.gob"
GSList *
mn_mailboxes_get_messages (MNMailboxes * self)
-#line 1117 "mn-mailboxes.c"
+#line 1144 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::get_messages"
-#line 391 "mn-mailboxes.gob"
+#line 399 "mn-mailboxes.gob"
g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 391 "mn-mailboxes.gob"
+#line 399 "mn-mailboxes.gob"
g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1124 "mn-mailboxes.c"
+#line 1151 "mn-mailboxes.c"
{
-#line 393 "mn-mailboxes.gob"
+#line 401 "mn-mailboxes.gob"
GSList *messages = NULL;
GSList *l;
@@ -1138,24 +1165,24 @@ mn_mailboxes_get_messages (MNMailboxes * self)
return messages;
}}
-#line 1142 "mn-mailboxes.c"
+#line 1169 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 409 "mn-mailboxes.gob"
+#line 417 "mn-mailboxes.gob"
GSList *
mn_mailboxes_find (MNMailboxes * self, const char * text_uri)
-#line 1148 "mn-mailboxes.c"
+#line 1175 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::find"
-#line 409 "mn-mailboxes.gob"
+#line 417 "mn-mailboxes.gob"
g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 409 "mn-mailboxes.gob"
+#line 417 "mn-mailboxes.gob"
g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 409 "mn-mailboxes.gob"
+#line 417 "mn-mailboxes.gob"
g_return_val_if_fail (text_uri != NULL, (GSList * )0);
-#line 1157 "mn-mailboxes.c"
+#line 1184 "mn-mailboxes.c"
{
-#line 411 "mn-mailboxes.gob"
+#line 419 "mn-mailboxes.gob"
MNURI *uri;
GSList *elem;
@@ -1166,60 +1193,60 @@ mn_mailboxes_find (MNMailboxes * self, const char * text_uri)
return elem;
}}
-#line 1170 "mn-mailboxes.c"
+#line 1197 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 422 "mn-mailboxes.gob"
+#line 430 "mn-mailboxes.gob"
GSList *
mn_mailboxes_find_uri (MNMailboxes * self, MNURI * uri)
-#line 1176 "mn-mailboxes.c"
+#line 1203 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::find_uri"
-#line 422 "mn-mailboxes.gob"
+#line 430 "mn-mailboxes.gob"
g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 422 "mn-mailboxes.gob"
+#line 430 "mn-mailboxes.gob"
g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 422 "mn-mailboxes.gob"
+#line 430 "mn-mailboxes.gob"
g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 422 "mn-mailboxes.gob"
+#line 430 "mn-mailboxes.gob"
g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1187 "mn-mailboxes.c"
+#line 1214 "mn-mailboxes.c"
{
-#line 424 "mn-mailboxes.gob"
+#line 432 "mn-mailboxes.gob"
return g_slist_find_custom(selfp->list, uri, self_find_compare_func);
}}
-#line 1193 "mn-mailboxes.c"
+#line 1220 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 428 "mn-mailboxes.gob"
+#line 436 "mn-mailboxes.gob"
static int
mn_mailboxes_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1199 "mn-mailboxes.c"
+#line 1226 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::find_compare_func"
{
-#line 430 "mn-mailboxes.gob"
+#line 438 "mn-mailboxes.gob"
MNMailbox *mailbox = (MNMailbox *) a;
MNURI *uri = (MNURI *) b;
return strcmp(mailbox->uri->text, uri->text);
}}
-#line 1210 "mn-mailboxes.c"
+#line 1237 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 437 "mn-mailboxes.gob"
+#line 445 "mn-mailboxes.gob"
GSList *
mn_mailboxes_conf_find (GSList * gconf_mailboxes, const char * text_uri)
-#line 1216 "mn-mailboxes.c"
+#line 1243 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::conf_find"
-#line 437 "mn-mailboxes.gob"
+#line 445 "mn-mailboxes.gob"
g_return_val_if_fail (text_uri != NULL, (GSList * )0);
-#line 1221 "mn-mailboxes.c"
+#line 1248 "mn-mailboxes.c"
{
-#line 439 "mn-mailboxes.gob"
+#line 447 "mn-mailboxes.gob"
MNURI *uri;
GSList *elem;
@@ -1230,36 +1257,36 @@ mn_mailboxes_conf_find (GSList * gconf_mailboxes, const char * text_uri)
return elem;
}}
-#line 1234 "mn-mailboxes.c"
+#line 1261 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 450 "mn-mailboxes.gob"
+#line 458 "mn-mailboxes.gob"
GSList *
mn_mailboxes_conf_find_uri (GSList * gconf_mailboxes, MNURI * uri)
-#line 1240 "mn-mailboxes.c"
+#line 1267 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_uri"
-#line 450 "mn-mailboxes.gob"
+#line 458 "mn-mailboxes.gob"
g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 450 "mn-mailboxes.gob"
+#line 458 "mn-mailboxes.gob"
g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1247 "mn-mailboxes.c"
+#line 1274 "mn-mailboxes.c"
{
-#line 452 "mn-mailboxes.gob"
+#line 460 "mn-mailboxes.gob"
return g_slist_find_custom(gconf_mailboxes, uri, self_conf_find_compare_func);
}}
-#line 1253 "mn-mailboxes.c"
+#line 1280 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 456 "mn-mailboxes.gob"
+#line 464 "mn-mailboxes.gob"
static int
mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1259 "mn-mailboxes.c"
+#line 1286 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_compare_func"
{
-#line 458 "mn-mailboxes.gob"
+#line 466 "mn-mailboxes.gob"
MNURI *uri_a;
MNURI *uri_b = (MNURI *) b;
@@ -1271,19 +1298,19 @@ mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b)
return cmp;
}}
-#line 1275 "mn-mailboxes.c"
+#line 1302 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
-#line 470 "mn-mailboxes.gob"
+#line 478 "mn-mailboxes.gob"
MNMailboxes *
mn_mailboxes_new (void)
-#line 1281 "mn-mailboxes.c"
+#line 1308 "mn-mailboxes.c"
{
#define __GOB_FUNCTION__ "MN:Mailboxes::new"
{
-#line 472 "mn-mailboxes.gob"
+#line 480 "mn-mailboxes.gob"
- return MN_MAILBOXES(GET_NEW);
+ return GET_NEW;
}}
-#line 1289 "mn-mailboxes.c"
+#line 1316 "mn-mailboxes.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-mailboxes.gob b/src/mn-mailboxes.gob
@@ -35,8 +35,6 @@ class MN:Mailboxes from G:Object
{
private GSList *list destroywith mn_g_object_slist_free;
private unsigned int timeout_id;
- private unsigned int delay_notification_id;
- private unsigned int mailboxes_notification_id;
/**
* mailbox-added:
@@ -74,6 +72,7 @@ class MN:Mailboxes from G:Object
"any_signal", self_notify_has_new_h, self,
"any_signal", self_messages_changed_h, self,
"any_signal", self_notify_error_h, self,
+ "any_signal", self_notify_must_poll_h, self,
NULL);
/* emit the "removed" signal on the mailbox */
@@ -162,8 +161,8 @@ class MN:Mailboxes from G:Object
self_update_from_conf(self);
self_install_timeout(self);
- selfp->delay_notification_id = eel_gconf_notification_add(MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
- selfp->mailboxes_notification_id = eel_gconf_notification_add(MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
+ mn_conf_notification_add(self, MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
+ mn_conf_notification_add(self, MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
}
override (G:Object) void
@@ -174,9 +173,6 @@ class MN:Mailboxes from G:Object
if (selfp->timeout_id)
g_source_remove(selfp->timeout_id);
- eel_gconf_notification_remove(selfp->delay_notification_id);
- eel_gconf_notification_remove(selfp->mailboxes_notification_id);
-
PARENT_HANDLER(object);
}
@@ -279,6 +275,7 @@ class MN:Mailboxes from G:Object
"signal::notify::has-new", self_notify_has_new_h, self,
"signal::messages-changed", self_messages_changed_h, self,
"signal::notify::error", self_notify_error_h, self,
+ "signal::notify::must-poll", self_notify_must_poll_h, self,
NULL);
if (MN_MAILBOX_CAN_CHECK(mailbox))
@@ -336,6 +333,17 @@ class MN:Mailboxes from G:Object
}
private void
+ notify_must_poll_h (G:Object *object (check null type),
+ GParamSpec *pspec (check null),
+ gpointer user_data (check null))
+ {
+ Self *self = user_data;
+
+ /* must-poll has possibly changed */
+ g_object_notify(G_OBJECT(self), "must-poll");
+ }
+
+ private void
install_timeout (self)
{
int minutes;
@@ -470,6 +478,6 @@ class MN:Mailboxes from G:Object
public MNMailboxes *
new (void)
{
- return MN_MAILBOXES(GET_NEW);
+ return GET_NEW;
}
}
diff --git a/src/mn-mailboxes.h b/src/mn-mailboxes.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-maildir-mailbox-private.h b/src/mn-maildir-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MAILDIR_MAILBOX_PRIVATE_H__
#define __MN_MAILDIR_MAILBOX_PRIVATE_H__
diff --git a/src/mn-maildir-mailbox.c b/src/mn-maildir-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-maildir-mailbox.h b/src/mn-maildir-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-mbox-mailbox-private.h b/src/mn-mbox-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MBOX_MAILBOX_PRIVATE_H__
#define __MN_MBOX_MAILBOX_PRIVATE_H__
diff --git a/src/mn-mbox-mailbox.c b/src/mn-mbox-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -127,9 +127,9 @@ mn_mbox_mailbox_class_init (MNmboxMailboxClass * class G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:mbox:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+ MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
g_type_class_add_private(class,sizeof(MNmboxMailboxPrivate));
- MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
@@ -269,7 +269,7 @@ ___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
Self *self = SELF(mailbox);
gboolean check = TRUE;
- if (! mn_mailbox_get_automatic(mailbox))
+ if (mn_mailbox_get_must_poll(mailbox))
{
GnomeVFSFileInfo *file_info;
@@ -277,12 +277,12 @@ ___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
file_info = gnome_vfs_file_info_new();
if (gnome_vfs_get_file_info_uri(mailbox->uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK)
- {
- if (file_info->mtime == selfp->last_mtime)
- check = FALSE;
- else
- selfp->last_mtime = file_info->mtime;
- }
+ {
+ if (file_info->mtime == selfp->last_mtime)
+ check = FALSE;
+ else
+ selfp->last_mtime = file_info->mtime;
+ }
gnome_vfs_file_info_unref(file_info);
}
diff --git a/src/mn-mbox-mailbox.gob b/src/mn-mbox-mailbox.gob
@@ -118,7 +118,7 @@ class MN:mbox:Mailbox from MN:Mailbox
Self *self = SELF(mailbox);
gboolean check = TRUE;
- if (! mn_mailbox_get_automatic(mailbox))
+ if (mn_mailbox_get_must_poll(mailbox))
{
GnomeVFSFileInfo *file_info;
@@ -126,12 +126,12 @@ class MN:mbox:Mailbox from MN:Mailbox
file_info = gnome_vfs_file_info_new();
if (gnome_vfs_get_file_info_uri(mailbox->uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK)
- {
- if (file_info->mtime == selfp->last_mtime)
- check = FALSE;
- else
- selfp->last_mtime = file_info->mtime;
- }
+ {
+ if (file_info->mtime == selfp->last_mtime)
+ check = FALSE;
+ else
+ selfp->last_mtime = file_info->mtime;
+ }
gnome_vfs_file_info_unref(file_info);
}
diff --git a/src/mn-mbox-mailbox.h b/src/mn-mbox-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-message-box-private.h b/src/mn-message-box-private.h
@@ -0,0 +1,30 @@
+/* Generated by GOB (v2.0.11) (do not edit directly) */
+
+#ifndef __MN_MESSAGE_BOX_PRIVATE_H__
+#define __MN_MESSAGE_BOX_PRIVATE_H__
+
+#include "mn-message-box.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNMessageBoxPrivate {
+#line 33 "mn-message-box.gob"
+ GtkWidget * sent_label;
+#line 34 "mn-message-box.gob"
+ unsigned int update_timeout_id;
+#line 36 "mn-message-box.gob"
+ GtkSizeGroup * size_group;
+#line 41 "mn-message-box.gob"
+ MNMessage * message;
+#line 46 "mn-message-box.gob"
+ gboolean selectable;
+#line 24 "mn-message-box-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-message-box.c b/src/mn-message-box.c
@@ -0,0 +1,555 @@
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 11
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-message-box.h"
+
+#include "mn-message-box-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-message-box.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-util.h"
+
+#line 33 "mn-message-box.c"
+/* self casting macros */
+#define SELF(x) MN_MESSAGE_BOX(x)
+#define SELF_CONST(x) MN_MESSAGE_BOX_CONST(x)
+#define IS_SELF(x) MN_IS_MESSAGE_BOX(x)
+#define TYPE_SELF MN_TYPE_MESSAGE_BOX
+#define SELF_CLASS(x) MN_MESSAGE_BOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MESSAGE_BOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMessageBox Self;
+typedef MNMessageBoxClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_message_box_init (MNMessageBox * o) G_GNUC_UNUSED;
+static void mn_message_box_class_init (MNMessageBoxClass * c) G_GNUC_UNUSED;
+static GObject * ___1_mn_message_box_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___2_mn_message_box_finalize (GObject * object) G_GNUC_UNUSED;
+static gboolean mn_message_box_update_cb (gpointer data) G_GNUC_UNUSED;
+static void mn_message_box_append_row (MNMessageBox * self, const char * name, const char * value, GtkWidget ** value_label) G_GNUC_UNUSED;
+static char * mn_message_box_get_ago (MNMessageBox * self) G_GNUC_UNUSED;
+static char * mn_message_box_format_delay (time_t delay) G_GNUC_UNUSED;
+
+enum {
+ PROP_0,
+ PROP_SIZE_GROUP,
+ PROP_MESSAGE,
+ PROP_SELECTABLE
+};
+
+/* pointer to the class of our parent */
+static GtkVBoxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_update_cb mn_message_box_update_cb
+#define self_append_row mn_message_box_append_row
+#define self_get_ago mn_message_box_get_ago
+#define self_format_delay mn_message_box_format_delay
+#define self_new mn_message_box_new
+GType
+mn_message_box_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNMessageBoxClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_message_box_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNMessageBox),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_message_box_init,
+ NULL
+ };
+
+ type = g_type_register_static (GTK_TYPE_VBOX, "MNMessageBox", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMessageBox *)g_object_new(mn_message_box_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMessageBox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMessageBox *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNMessageBox *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNMessageBox *)g_object_new_valist (mn_message_box_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::dispose"
+ MNMessageBox *self G_GNUC_UNUSED = MN_MESSAGE_BOX (obj_self);
+ if (G_OBJECT_CLASS (parent_class)->dispose) \
+ (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
+#line 36 "mn-message-box.gob"
+ if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
+#line 127 "mn-message-box.c"
+#line 41 "mn-message-box.gob"
+ if(self->_priv->message) { g_object_unref ((gpointer) self->_priv->message); self->_priv->message = NULL; }
+#line 130 "mn-message-box.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::finalize"
+ MNMessageBox *self G_GNUC_UNUSED = MN_MESSAGE_BOX (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 81 "mn-message-box.gob"
+ ___2_mn_message_box_finalize(obj_self);
+#line 143 "mn-message-box.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_message_box_init (MNMessageBox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNMessageBoxPrivate);
+}
+#undef __GOB_FUNCTION__
+static void
+mn_message_box_class_init (MNMessageBoxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+ g_type_class_add_private(c,sizeof(MNMessageBoxPrivate));
+
+ parent_class = g_type_class_ref (GTK_TYPE_VBOX);
+
+#line 49 "mn-message-box.gob"
+ g_object_class->constructor = ___1_mn_message_box_constructor;
+#line 81 "mn-message-box.gob"
+ g_object_class->finalize = ___finalize;
+#line 168 "mn-message-box.c"
+ g_object_class->dispose = ___dispose;
+ g_object_class->get_property = ___object_get_property;
+ g_object_class->set_property = ___object_set_property;
+ {
+ GParamSpec *param_spec;
+
+ param_spec = g_param_spec_object
+ ("size_group" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ GTK_TYPE_SIZE_GROUP /* object_type */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (g_object_class,
+ PROP_SIZE_GROUP,
+ param_spec);
+ param_spec = g_param_spec_object
+ ("message" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ MN_TYPE_MESSAGE /* object_type */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (g_object_class,
+ PROP_MESSAGE,
+ param_spec);
+ param_spec = g_param_spec_boolean
+ ("selectable" /* name */,
+ NULL /* nick */,
+ NULL /* blurb */,
+ FALSE /* default_value */,
+ (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (g_object_class,
+ PROP_SELECTABLE,
+ param_spec);
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+ guint property_id,
+ const GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Message:Box::set_property"
+{
+ MNMessageBox *self G_GNUC_UNUSED;
+
+ self = MN_MESSAGE_BOX (object);
+
+ switch (property_id) {
+ case PROP_SIZE_GROUP:
+ {
+#line 37 "mn-message-box.gob"
+{ GObject *___old = (GObject *)self->_priv->size_group; self->_priv->size_group = (GtkSizeGroup *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
+#line 222 "mn-message-box.c"
+ }
+ break;
+ case PROP_MESSAGE:
+ {
+#line 42 "mn-message-box.gob"
+{ GObject *___old = (GObject *)self->_priv->message; self->_priv->message = (MNMessage *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
+#line 229 "mn-message-box.c"
+ }
+ break;
+ case PROP_SELECTABLE:
+ {
+#line 47 "mn-message-box.gob"
+self->_priv->selectable = g_value_get_boolean (VAL);
+#line 236 "mn-message-box.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+ guint property_id,
+ GValue *VAL G_GNUC_UNUSED,
+ GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Message:Box::get_property"
+{
+ MNMessageBox *self G_GNUC_UNUSED;
+
+ self = MN_MESSAGE_BOX (object);
+
+ switch (property_id) {
+ case PROP_SIZE_GROUP:
+ {
+#line 37 "mn-message-box.gob"
+g_value_set_object (VAL, (gpointer)self->_priv->size_group);
+#line 267 "mn-message-box.c"
+ }
+ break;
+ case PROP_MESSAGE:
+ {
+#line 42 "mn-message-box.gob"
+g_value_set_object (VAL, (gpointer)self->_priv->message);
+#line 274 "mn-message-box.c"
+ }
+ break;
+ case PROP_SELECTABLE:
+ {
+#line 47 "mn-message-box.gob"
+g_value_set_boolean (VAL, self->_priv->selectable);
+#line 281 "mn-message-box.c"
+ }
+ break;
+ default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+# undef G_STRLOC
+# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 49 "mn-message-box.gob"
+static GObject *
+___1_mn_message_box_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
+#line 301 "mn-message-box.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+ ((G_OBJECT_CLASS(parent_class)->constructor)? \
+ (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+ ((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::constructor"
+{
+#line 51 "mn-message-box.gob"
+
+ GObject *object;
+ Self *self;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+
+ self_append_row(self, _("Mailbox"), selfp->message->mailbox_uri->human_readable, NULL);
+
+ if (selfp->message->error)
+ self_append_row(self, _("Unreadable message"), selfp->message->error, NULL);
+ else
+ {
+ char *ago;
+
+ self_append_row(self, _("From"), selfp->message->from, NULL);
+ self_append_row(self, _("Subject"), selfp->message->subject, NULL);
+
+ ago = self_get_ago(self);
+ if (ago)
+ {
+ self_append_row(self, _("Sent"), ago, &selfp->sent_label);
+ g_free(ago);
+ selfp->update_timeout_id = g_timeout_add(500, self_update_cb, self);
+ }
+ }
+
+ return object;
+ }}
+#line 339 "mn-message-box.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 81 "mn-message-box.gob"
+static void
+___2_mn_message_box_finalize (GObject * object G_GNUC_UNUSED)
+#line 346 "mn-message-box.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::finalize"
+#line 81 "mn-message-box.gob"
+ g_return_if_fail (object != NULL);
+#line 81 "mn-message-box.gob"
+ g_return_if_fail (G_IS_OBJECT (object));
+#line 356 "mn-message-box.c"
+{
+#line 83 "mn-message-box.gob"
+
+ Self *self = SELF(object);
+
+ if (selfp->update_timeout_id)
+ g_source_remove(selfp->update_timeout_id);
+
+ PARENT_HANDLER(object);
+ }}
+#line 367 "mn-message-box.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 92 "mn-message-box.gob"
+static gboolean
+mn_message_box_update_cb (gpointer data)
+#line 374 "mn-message-box.c"
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::update_cb"
+#line 92 "mn-message-box.gob"
+ g_return_val_if_fail (data != NULL, (gboolean )0);
+#line 379 "mn-message-box.c"
+{
+#line 94 "mn-message-box.gob"
+
+ Self *self = data;
+ char *ago;
+
+ ago = self_get_ago(self);
+
+ GDK_THREADS_ENTER();
+ gtk_label_set_text(GTK_LABEL(selfp->sent_label), ago);
+ GDK_THREADS_LEAVE();
+
+ g_free(ago);
+
+ return TRUE; /* continue */
+ }}
+#line 396 "mn-message-box.c"
+#undef __GOB_FUNCTION__
+
+#line 109 "mn-message-box.gob"
+static void
+mn_message_box_append_row (MNMessageBox * self, const char * name, const char * value, GtkWidget ** value_label)
+#line 402 "mn-message-box.c"
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::append_row"
+#line 109 "mn-message-box.gob"
+ g_return_if_fail (self != NULL);
+#line 109 "mn-message-box.gob"
+ g_return_if_fail (MN_IS_MESSAGE_BOX (self));
+#line 109 "mn-message-box.gob"
+ g_return_if_fail (name != NULL);
+#line 411 "mn-message-box.c"
+{
+#line 114 "mn-message-box.gob"
+
+ GtkWidget *hbox;
+ GtkWidget *label;
+ char *markup;
+
+ hbox = gtk_hbox_new(FALSE, 0);
+
+ /* name */
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s:</span>", name);
+ label = gtk_label_new(markup);
+ g_free(markup);
+
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+ gtk_label_set_selectable(GTK_LABEL(label), selfp->selectable);
+
+ gtk_size_group_add_widget(selfp->size_group, label);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ /* separator */
+
+ label = gtk_label_new(" ");
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ /* value */
+
+ label = gtk_label_new(value);
+
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_label_set_selectable(GTK_LABEL(label), selfp->selectable);
+
+ gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
+
+ if (value_label)
+ *value_label = label;
+
+ gtk_box_pack_start(GTK_BOX(self), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+ }}
+#line 454 "mn-message-box.c"
+#undef __GOB_FUNCTION__
+
+#line 155 "mn-message-box.gob"
+static char *
+mn_message_box_get_ago (MNMessageBox * self)
+#line 460 "mn-message-box.c"
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::get_ago"
+#line 155 "mn-message-box.gob"
+ g_return_val_if_fail (self != NULL, (char * )0);
+#line 155 "mn-message-box.gob"
+ g_return_val_if_fail (MN_IS_MESSAGE_BOX (self), (char * )0);
+#line 467 "mn-message-box.c"
+{
+#line 157 "mn-message-box.gob"
+
+ char *ago = NULL;
+
+ if (selfp->message->sent_time)
+ {
+ time_t now;
+
+ now = mn_time();
+ if (now > 0)
+ {
+ time_t diff;
+
+ diff = now - selfp->message->sent_time;
+ if (diff >= 0)
+ ago = self_format_delay(diff);
+ }
+ }
+
+ return ago;
+ }}
+#line 490 "mn-message-box.c"
+#undef __GOB_FUNCTION__
+
+#line 178 "mn-message-box.gob"
+static char *
+mn_message_box_format_delay (time_t delay)
+#line 496 "mn-message-box.c"
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::format_delay"
+{
+#line 180 "mn-message-box.gob"
+
+ char *str;
+
+ if (delay < 60)
+ str = g_strdup_printf(ngettext("%i second ago", "%i seconds ago", delay), delay);
+ else if (delay < 60 * 60)
+ {
+ int minutes = delay / 60;
+ str = g_strdup_printf(ngettext("%i minute ago", "%i minutes ago", minutes), minutes);
+ }
+ else if (delay < 60 * 60 * 24)
+ {
+ int hours = delay / (60 * 60);
+ str = g_strdup_printf(ngettext("%i hour ago", "%i hours ago", hours), hours);
+ }
+ else if (delay < 60 * 60 * 24 * 7)
+ {
+ int days = delay / (60 * 60 * 24);
+ str = g_strdup_printf(ngettext("%i day ago", "%i days ago", days), days);
+ }
+ else
+ {
+ int weeks = delay / (60 * 60 * 24 * 7);
+ str = g_strdup_printf(ngettext("%i week ago", "%i weeks ago", weeks), weeks);
+ }
+
+ return str;
+ }}
+#line 529 "mn-message-box.c"
+#undef __GOB_FUNCTION__
+
+#line 209 "mn-message-box.gob"
+GtkWidget *
+mn_message_box_new (GtkSizeGroup * size_group, MNMessage * message, gboolean selectable)
+#line 535 "mn-message-box.c"
+{
+#define __GOB_FUNCTION__ "MN:Message:Box::new"
+#line 209 "mn-message-box.gob"
+ g_return_val_if_fail (size_group != NULL, (GtkWidget * )0);
+#line 209 "mn-message-box.gob"
+ g_return_val_if_fail (GTK_IS_SIZE_GROUP (size_group), (GtkWidget * )0);
+#line 209 "mn-message-box.gob"
+ g_return_val_if_fail (message != NULL, (GtkWidget * )0);
+#line 209 "mn-message-box.gob"
+ g_return_val_if_fail (MN_IS_MESSAGE (message), (GtkWidget * )0);
+#line 546 "mn-message-box.c"
+{
+#line 213 "mn-message-box.gob"
+
+ return GTK_WIDGET(GET_NEW_VARG(MN_MESSAGE_BOX_PROP_SIZE_GROUP(G_OBJECT(size_group)),
+ MN_MESSAGE_BOX_PROP_MESSAGE(G_OBJECT(message)),
+ MN_MESSAGE_BOX_PROP_SELECTABLE(selectable),
+ NULL));
+ }}
+#line 555 "mn-message-box.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-message-box.gob b/src/mn-message-box.gob
@@ -0,0 +1,219 @@
+/*
+ * Copyright (c) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.10
+
+%headertop{
+#include <gtk/gtk.h>
+#include "mn-message.h"
+%}
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-util.h"
+%}
+
+class MN:Message:Box from Gtk:VBox
+{
+ private GtkWidget *sent_label;
+ private unsigned int update_timeout_id;
+
+ private GtkSizeGroup *size_group unrefwith g_object_unref;
+ property OBJECT size_group (object_type = Gtk:Size:Group,
+ flags = CONSTRUCT_ONLY,
+ link);
+
+ private MNMessage *message unrefwith g_object_unref;
+ property OBJECT message (object_type = MN:Message,
+ flags = CONSTRUCT_ONLY,
+ link);
+
+ private gboolean selectable;
+ property BOOLEAN selectable (flags = CONSTRUCT_ONLY, link);
+
+ override (G:Object) GObject *
+ constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params)
+ {
+ GObject *object;
+ Self *self;
+
+ object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+ self = SELF(object);
+
+ self_append_row(self, _("Mailbox"), selfp->message->mailbox_uri->human_readable, NULL);
+
+ if (selfp->message->error)
+ self_append_row(self, _("Unreadable message"), selfp->message->error, NULL);
+ else
+ {
+ char *ago;
+
+ self_append_row(self, _("From"), selfp->message->from, NULL);
+ self_append_row(self, _("Subject"), selfp->message->subject, NULL);
+
+ ago = self_get_ago(self);
+ if (ago)
+ {
+ self_append_row(self, _("Sent"), ago, &selfp->sent_label);
+ g_free(ago);
+ selfp->update_timeout_id = g_timeout_add(500, self_update_cb, self);
+ }
+ }
+
+ return object;
+ }
+
+ override (G:Object) void
+ finalize (G:Object *object (check null type))
+ {
+ Self *self = SELF(object);
+
+ if (selfp->update_timeout_id)
+ g_source_remove(selfp->update_timeout_id);
+
+ PARENT_HANDLER(object);
+ }
+
+ private gboolean
+ update_cb (gpointer data (check null))
+ {
+ Self *self = data;
+ char *ago;
+
+ ago = self_get_ago(self);
+
+ GDK_THREADS_ENTER();
+ gtk_label_set_text(GTK_LABEL(selfp->sent_label), ago);
+ GDK_THREADS_LEAVE();
+
+ g_free(ago);
+
+ return TRUE; /* continue */
+ }
+
+ private void
+ append_row (self,
+ const char *name (check null),
+ const char *value,
+ GtkWidget **value_label)
+ {
+ GtkWidget *hbox;
+ GtkWidget *label;
+ char *markup;
+
+ hbox = gtk_hbox_new(FALSE, 0);
+
+ /* name */
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s:</span>", name);
+ label = gtk_label_new(markup);
+ g_free(markup);
+
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+ gtk_label_set_selectable(GTK_LABEL(label), selfp->selectable);
+
+ gtk_size_group_add_widget(selfp->size_group, label);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ /* separator */
+
+ label = gtk_label_new(" ");
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ /* value */
+
+ label = gtk_label_new(value);
+
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_label_set_selectable(GTK_LABEL(label), selfp->selectable);
+
+ gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
+
+ if (value_label)
+ *value_label = label;
+
+ gtk_box_pack_start(GTK_BOX(self), hbox, FALSE, FALSE, 0);
+ gtk_widget_show_all(hbox);
+ }
+
+ private char *
+ get_ago (self)
+ {
+ char *ago = NULL;
+
+ if (selfp->message->sent_time)
+ {
+ time_t now;
+
+ now = mn_time();
+ if (now > 0)
+ {
+ time_t diff;
+
+ diff = now - selfp->message->sent_time;
+ if (diff >= 0)
+ ago = self_format_delay(diff);
+ }
+ }
+
+ return ago;
+ }
+
+ private char *
+ format_delay (time_t delay)
+ {
+ char *str;
+
+ if (delay < 60)
+ str = g_strdup_printf(ngettext("%i second ago", "%i seconds ago", delay), delay);
+ else if (delay < 60 * 60)
+ {
+ int minutes = delay / 60;
+ str = g_strdup_printf(ngettext("%i minute ago", "%i minutes ago", minutes), minutes);
+ }
+ else if (delay < 60 * 60 * 24)
+ {
+ int hours = delay / (60 * 60);
+ str = g_strdup_printf(ngettext("%i hour ago", "%i hours ago", hours), hours);
+ }
+ else if (delay < 60 * 60 * 24 * 7)
+ {
+ int days = delay / (60 * 60 * 24);
+ str = g_strdup_printf(ngettext("%i day ago", "%i days ago", days), days);
+ }
+ else
+ {
+ int weeks = delay / (60 * 60 * 24 * 7);
+ str = g_strdup_printf(ngettext("%i week ago", "%i weeks ago", weeks), weeks);
+ }
+
+ return str;
+ }
+
+ public GtkWidget *
+ new (Gtk:Size:Group *size_group (check null type),
+ MN:Message *message (check null type),
+ gboolean selectable)
+ {
+ return GTK_WIDGET(GET_NEW_VARG(MN_MESSAGE_BOX_PROP_SIZE_GROUP(G_OBJECT(size_group)),
+ MN_MESSAGE_BOX_PROP_MESSAGE(G_OBJECT(message)),
+ MN_MESSAGE_BOX_PROP_SELECTABLE(selectable),
+ NULL));
+ }
+}
diff --git a/src/mn-message-box.h b/src/mn-message-box.h
@@ -0,0 +1,86 @@
+/* Generated by GOB (v2.0.11) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+#include "mn-message.h"
+
+#ifndef __MN_MESSAGE_BOX_H__
+#define __MN_MESSAGE_BOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MESSAGE_BOX (mn_message_box_get_type())
+#define MN_MESSAGE_BOX(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_message_box_get_type(), MNMessageBox)
+#define MN_MESSAGE_BOX_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_message_box_get_type(), MNMessageBox const)
+#define MN_MESSAGE_BOX_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_message_box_get_type(), MNMessageBoxClass)
+#define MN_IS_MESSAGE_BOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_message_box_get_type ())
+
+#define MN_MESSAGE_BOX_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_message_box_get_type(), MNMessageBoxClass)
+
+/* Private structure type */
+typedef struct _MNMessageBoxPrivate MNMessageBoxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MESSAGE_BOX__
+#define __TYPEDEF_MN_MESSAGE_BOX__
+typedef struct _MNMessageBox MNMessageBox;
+#endif
+struct _MNMessageBox {
+ GtkVBox __parent__;
+ /*< private >*/
+ MNMessageBoxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMessageBoxClass MNMessageBoxClass;
+struct _MNMessageBoxClass {
+ GtkVBoxClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_message_box_get_type (void);
+GtkWidget * mn_message_box_new (GtkSizeGroup * size_group,
+ MNMessage * message,
+ gboolean selectable);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_MESSAGE_BOX_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject *z = (arg); z;})
+#define MN_MESSAGE_BOX_GET_PROP_SIZE_GROUP(arg) "size_group", __extension__ ({GObject **z = (arg); z;})
+#define MN_MESSAGE_BOX_PROP_MESSAGE(arg) "message", __extension__ ({GObject *z = (arg); z;})
+#define MN_MESSAGE_BOX_GET_PROP_MESSAGE(arg) "message", __extension__ ({GObject **z = (arg); z;})
+#define MN_MESSAGE_BOX_PROP_SELECTABLE(arg) "selectable", __extension__ ({gboolean z = (arg); z;})
+#define MN_MESSAGE_BOX_GET_PROP_SELECTABLE(arg) "selectable", __extension__ ({gboolean *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_MESSAGE_BOX_PROP_SIZE_GROUP(arg) "size_group",(GObject *)(arg)
+#define MN_MESSAGE_BOX_GET_PROP_SIZE_GROUP(arg) "size_group",(GObject **)(arg)
+#define MN_MESSAGE_BOX_PROP_MESSAGE(arg) "message",(GObject *)(arg)
+#define MN_MESSAGE_BOX_GET_PROP_MESSAGE(arg) "message",(GObject **)(arg)
+#define MN_MESSAGE_BOX_PROP_SELECTABLE(arg) "selectable",(gboolean )(arg)
+#define MN_MESSAGE_BOX_GET_PROP_SELECTABLE(arg) "selectable",(gboolean *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-message-label-private.h b/src/mn-message-label-private.h
@@ -1,24 +0,0 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
-
-#ifndef __MN_MESSAGE_LABEL_PRIVATE_H__
-#define __MN_MESSAGE_LABEL_PRIVATE_H__
-
-#include "mn-message-label.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-struct _MNMessageLabelPrivate {
-#line 33 "mn-message-label.gob"
- unsigned int update_timeout_id;
-#line 35 "mn-message-label.gob"
- MNMessage * message;
-#line 18 "mn-message-label-private.h"
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-message-label.c b/src/mn-message-label.c
@@ -1,473 +0,0 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
- (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-message-label.h"
-
-#include "mn-message-label-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 25 "mn-message-label.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-util.h"
-
-#line 33 "mn-message-label.c"
-/* self casting macros */
-#define SELF(x) MN_MESSAGE_LABEL(x)
-#define SELF_CONST(x) MN_MESSAGE_LABEL_CONST(x)
-#define IS_SELF(x) MN_IS_MESSAGE_LABEL(x)
-#define TYPE_SELF MN_TYPE_MESSAGE_LABEL
-#define SELF_CLASS(x) MN_MESSAGE_LABEL_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_MESSAGE_LABEL_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNMessageLabel Self;
-typedef MNMessageLabelClass SelfClass;
-
-/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
-static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_message_label_init (MNMessageLabel * o) G_GNUC_UNUSED;
-static void mn_message_label_class_init (MNMessageLabelClass * c) G_GNUC_UNUSED;
-static GObject * ___1_mn_message_label_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static void ___2_mn_message_label_finalize (GObject * object) G_GNUC_UNUSED;
-static void mn_message_label_update (MNMessageLabel * self) G_GNUC_UNUSED;
-static gboolean mn_message_label_update_cb (gpointer data) G_GNUC_UNUSED;
-static void mn_message_label_append_row (GString * string, const char * label, const char * value, gboolean newline) G_GNUC_UNUSED;
-static char * mn_message_label_format_delay (time_t delay) G_GNUC_UNUSED;
-
-enum {
- PROP_0,
- PROP_MESSAGE
-};
-
-/* pointer to the class of our parent */
-static GtkLabelClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_update mn_message_label_update
-#define self_update_cb mn_message_label_update_cb
-#define self_append_row mn_message_label_append_row
-#define self_format_delay mn_message_label_format_delay
-#define self_new mn_message_label_new
-GType
-mn_message_label_get_type (void)
-{
- static GType type = 0;
-
- if ___GOB_UNLIKELY(type == 0) {
- static const GTypeInfo info = {
- sizeof (MNMessageLabelClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) mn_message_label_class_init,
- (GClassFinalizeFunc) NULL,
- NULL /* class_data */,
- sizeof (MNMessageLabel),
- 0 /* n_preallocs */,
- (GInstanceInitFunc) mn_message_label_init,
- NULL
- };
-
- type = g_type_register_static (GTK_TYPE_LABEL, "MNMessageLabel", &info, (GTypeFlags)0);
- }
-
- return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNMessageLabel *)g_object_new(mn_message_label_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNMessageLabel * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNMessageLabel *
-GET_NEW_VARG (const char *first, ...)
-{
- MNMessageLabel *ret;
- va_list ap;
- va_start (ap, first);
- ret = (MNMessageLabel *)g_object_new_valist (mn_message_label_get_type (), first, ap);
- va_end (ap);
- return ret;
-}
-
-
-static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::dispose"
- MNMessageLabel *self G_GNUC_UNUSED = MN_MESSAGE_LABEL (obj_self);
- if (G_OBJECT_CLASS (parent_class)->dispose) \
- (* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 35 "mn-message-label.gob"
- if(self->_priv->message) { g_object_unref ((gpointer) self->_priv->message); self->_priv->message = NULL; }
-#line 125 "mn-message-label.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::finalize"
- MNMessageLabel *self G_GNUC_UNUSED = MN_MESSAGE_LABEL (obj_self);
- gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 56 "mn-message-label.gob"
- ___2_mn_message_label_finalize(obj_self);
-#line 138 "mn-message-label.c"
-}
-#undef __GOB_FUNCTION__
-
-static void
-mn_message_label_init (MNMessageLabel * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::init"
- o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNMessageLabelPrivate);
-}
-#undef __GOB_FUNCTION__
-static void
-mn_message_label_class_init (MNMessageLabelClass * c G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::class_init"
- GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
-
- g_type_class_add_private(c,sizeof(MNMessageLabelPrivate));
-
- parent_class = g_type_class_ref (GTK_TYPE_LABEL);
-
-#line 40 "mn-message-label.gob"
- g_object_class->constructor = ___1_mn_message_label_constructor;
-#line 56 "mn-message-label.gob"
- g_object_class->finalize = ___finalize;
-#line 163 "mn-message-label.c"
- g_object_class->dispose = ___dispose;
- g_object_class->get_property = ___object_get_property;
- g_object_class->set_property = ___object_set_property;
- {
- GParamSpec *param_spec;
-
- param_spec = g_param_spec_object
- ("message" /* name */,
- NULL /* nick */,
- NULL /* blurb */,
- MN_TYPE_MESSAGE /* object_type */,
- (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
- g_object_class_install_property (g_object_class,
- PROP_MESSAGE,
- param_spec);
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
- guint property_id,
- const GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Message:Label::set_property"
-{
- MNMessageLabel *self G_GNUC_UNUSED;
-
- self = MN_MESSAGE_LABEL (object);
-
- switch (property_id) {
- case PROP_MESSAGE:
- {
-#line 36 "mn-message-label.gob"
-{ GObject *___old = (GObject *)self->_priv->message; self->_priv->message = (MNMessage *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 199 "mn-message-label.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_get_property (GObject *object,
- guint property_id,
- GValue *VAL G_GNUC_UNUSED,
- GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Message:Label::get_property"
-{
- MNMessageLabel *self G_GNUC_UNUSED;
-
- self = MN_MESSAGE_LABEL (object);
-
- switch (property_id) {
- case PROP_MESSAGE:
- {
-#line 36 "mn-message-label.gob"
-g_value_set_object (VAL, (gpointer)self->_priv->message);
-#line 230 "mn-message-label.c"
- }
- break;
- default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-# undef G_STRLOC
-# define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 40 "mn-message-label.gob"
-static GObject *
-___1_mn_message_label_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 250 "mn-message-label.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
- ((G_OBJECT_CLASS(parent_class)->constructor)? \
- (* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
- ((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::constructor"
-{
-#line 42 "mn-message-label.gob"
-
- GObject *object;
- Self *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
-
- self_update(self);
- if (selfp->message->sent_time)
- selfp->update_timeout_id = g_timeout_add(500, self_update_cb, self);
-
- return object;
- }}
-#line 272 "mn-message-label.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 56 "mn-message-label.gob"
-static void
-___2_mn_message_label_finalize (GObject * object G_GNUC_UNUSED)
-#line 279 "mn-message-label.c"
-#define PARENT_HANDLER(___object) \
- { if(G_OBJECT_CLASS(parent_class)->finalize) \
- (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::finalize"
-#line 56 "mn-message-label.gob"
- g_return_if_fail (object != NULL);
-#line 56 "mn-message-label.gob"
- g_return_if_fail (G_IS_OBJECT (object));
-#line 289 "mn-message-label.c"
-{
-#line 58 "mn-message-label.gob"
-
- Self *self = SELF(object);
-
- if (selfp->update_timeout_id)
- g_source_remove(selfp->update_timeout_id);
-
- PARENT_HANDLER(object);
- }}
-#line 300 "mn-message-label.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 67 "mn-message-label.gob"
-static void
-mn_message_label_update (MNMessageLabel * self)
-#line 307 "mn-message-label.c"
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::update"
-#line 67 "mn-message-label.gob"
- g_return_if_fail (self != NULL);
-#line 67 "mn-message-label.gob"
- g_return_if_fail (MN_IS_MESSAGE_LABEL (self));
-#line 314 "mn-message-label.c"
-{
-#line 69 "mn-message-label.gob"
-
- GString *string;
- const char *current_label;
-
- string = g_string_new(NULL);
- self_append_row(string, _("Mailbox"), selfp->message->mailbox_uri->human_readable, TRUE);
-
- if (selfp->message->error)
- self_append_row(string, _("Unreadable message"), selfp->message->error, FALSE);
- else
- {
- char *ago = NULL;
-
- if (selfp->message->sent_time)
- {
- time_t now;
-
- now = mn_time();
- if (now > 0)
- {
- time_t diff;
-
- diff = now - selfp->message->sent_time;
- if (diff >= 0)
- ago = self_format_delay(diff);
- }
- }
-
- self_append_row(string, _("From"), selfp->message->from, TRUE);
- self_append_row(string, _("Subject"), selfp->message->subject, ago != NULL);
-
- if (ago)
- {
- self_append_row(string, _("Sent"), ago, FALSE);
- g_free(ago);
- }
- }
-
- current_label = gtk_label_get_label(GTK_LABEL(self));
- if (strcmp(current_label, string->str))
- gtk_label_set_markup(GTK_LABEL(self), string->str);
- g_string_free(string, TRUE);
- }}
-#line 360 "mn-message-label.c"
-#undef __GOB_FUNCTION__
-
-#line 113 "mn-message-label.gob"
-static gboolean
-mn_message_label_update_cb (gpointer data)
-#line 366 "mn-message-label.c"
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::update_cb"
-#line 113 "mn-message-label.gob"
- g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 371 "mn-message-label.c"
-{
-#line 115 "mn-message-label.gob"
-
- Self *self = data;
-
- GDK_THREADS_ENTER();
- self_update(self);
- GDK_THREADS_LEAVE();
-
- return TRUE; /* continue */
- }}
-#line 383 "mn-message-label.c"
-#undef __GOB_FUNCTION__
-
-#line 125 "mn-message-label.gob"
-static void
-mn_message_label_append_row (GString * string, const char * label, const char * value, gboolean newline)
-#line 389 "mn-message-label.c"
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::append_row"
-#line 125 "mn-message-label.gob"
- g_return_if_fail (string != NULL);
-#line 125 "mn-message-label.gob"
- g_return_if_fail (label != NULL);
-#line 125 "mn-message-label.gob"
- g_return_if_fail (value != NULL);
-#line 398 "mn-message-label.c"
-{
-#line 130 "mn-message-label.gob"
-
- char *markup;
-
- markup = g_markup_printf_escaped("<span weight=\"bold\">%s:</span> ", label);
- g_string_append(string, markup);
- g_free(markup);
-
- markup = g_markup_escape_text(value, -1);
- g_string_append(string, markup);
- g_free(markup);
-
- if (newline)
- g_string_append_c(string, '\n');
- }}
-#line 415 "mn-message-label.c"
-#undef __GOB_FUNCTION__
-
-#line 145 "mn-message-label.gob"
-static char *
-mn_message_label_format_delay (time_t delay)
-#line 421 "mn-message-label.c"
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::format_delay"
-{
-#line 147 "mn-message-label.gob"
-
- char *str;
-
- if (delay < 60)
- str = g_strdup_printf(ngettext("%i second ago", "%i seconds ago", delay), delay);
- else if (delay < 60 * 60)
- {
- int minutes = delay / 60;
- str = g_strdup_printf(ngettext("%i minute ago", "%i minutes ago", minutes), minutes);
- }
- else if (delay < 60 * 60 * 24)
- {
- int hours = delay / (60 * 60);
- str = g_strdup_printf(ngettext("%i hour ago", "%i hours ago", hours), hours);
- }
- else if (delay < 60 * 60 * 24 * 7)
- {
- int days = delay / (60 * 60 * 24);
- str = g_strdup_printf(ngettext("%i day ago", "%i days ago", days), days);
- }
- else
- {
- int weeks = delay / (60 * 60 * 24 * 7);
- str = g_strdup_printf(ngettext("%i week ago", "%i weeks ago", weeks), weeks);
- }
-
- return str;
- }}
-#line 454 "mn-message-label.c"
-#undef __GOB_FUNCTION__
-
-#line 176 "mn-message-label.gob"
-GtkWidget *
-mn_message_label_new (MNMessage * message)
-#line 460 "mn-message-label.c"
-{
-#define __GOB_FUNCTION__ "MN:Message:Label::new"
-#line 176 "mn-message-label.gob"
- g_return_val_if_fail (message != NULL, (GtkWidget * )0);
-#line 176 "mn-message-label.gob"
- g_return_val_if_fail (MN_IS_MESSAGE (message), (GtkWidget * )0);
-#line 467 "mn-message-label.c"
-{
-#line 178 "mn-message-label.gob"
-
- return GTK_WIDGET(GET_NEW_VARG(MN_MESSAGE_LABEL_PROP_MESSAGE(G_OBJECT(message)), NULL));
- }}
-#line 473 "mn-message-label.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-message-label.gob b/src/mn-message-label.gob
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * 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 2 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include <gtk/gtk.h>
-#include "mn-message.h"
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-util.h"
-%}
-
-class MN:Message:Label from Gtk:Label
-{
- private unsigned int update_timeout_id;
-
- private MNMessage *message unrefwith g_object_unref;
- property OBJECT message (object_type = MN:Message,
- flags = CONSTRUCT_ONLY,
- link);
-
- override (G:Object) GObject *
- constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params)
- {
- GObject *object;
- Self *self;
-
- object = PARENT_HANDLER(type, n_construct_properties, construct_params);
- self = SELF(object);
-
- self_update(self);
- if (selfp->message->sent_time)
- selfp->update_timeout_id = g_timeout_add(500, self_update_cb, self);
-
- return object;
- }
-
- override (G:Object) void
- finalize (G:Object *object (check null type))
- {
- Self *self = SELF(object);
-
- if (selfp->update_timeout_id)
- g_source_remove(selfp->update_timeout_id);
-
- PARENT_HANDLER(object);
- }
-
- private void
- update (self)
- {
- GString *string;
- const char *current_label;
-
- string = g_string_new(NULL);
- self_append_row(string, _("Mailbox"), selfp->message->mailbox_uri->human_readable, TRUE);
-
- if (selfp->message->error)
- self_append_row(string, _("Unreadable message"), selfp->message->error, FALSE);
- else
- {
- char *ago = NULL;
-
- if (selfp->message->sent_time)
- {
- time_t now;
-
- now = mn_time();
- if (now > 0)
- {
- time_t diff;
-
- diff = now - selfp->message->sent_time;
- if (diff >= 0)
- ago = self_format_delay(diff);
- }
- }
-
- self_append_row(string, _("From"), selfp->message->from, TRUE);
- self_append_row(string, _("Subject"), selfp->message->subject, ago != NULL);
-
- if (ago)
- {
- self_append_row(string, _("Sent"), ago, FALSE);
- g_free(ago);
- }
- }
-
- current_label = gtk_label_get_label(GTK_LABEL(self));
- if (strcmp(current_label, string->str))
- gtk_label_set_markup(GTK_LABEL(self), string->str);
- g_string_free(string, TRUE);
- }
-
- private gboolean
- update_cb (gpointer data (check null))
- {
- Self *self = data;
-
- GDK_THREADS_ENTER();
- self_update(self);
- GDK_THREADS_LEAVE();
-
- return TRUE; /* continue */
- }
-
- private void
- append_row (GString *string (check null),
- const char *label (check null),
- const char *value (check null),
- gboolean newline)
- {
- char *markup;
-
- markup = g_markup_printf_escaped("<span weight=\"bold\">%s:</span> ", label);
- g_string_append(string, markup);
- g_free(markup);
-
- markup = g_markup_escape_text(value, -1);
- g_string_append(string, markup);
- g_free(markup);
-
- if (newline)
- g_string_append_c(string, '\n');
- }
-
- private char *
- format_delay (time_t delay)
- {
- char *str;
-
- if (delay < 60)
- str = g_strdup_printf(ngettext("%i second ago", "%i seconds ago", delay), delay);
- else if (delay < 60 * 60)
- {
- int minutes = delay / 60;
- str = g_strdup_printf(ngettext("%i minute ago", "%i minutes ago", minutes), minutes);
- }
- else if (delay < 60 * 60 * 24)
- {
- int hours = delay / (60 * 60);
- str = g_strdup_printf(ngettext("%i hour ago", "%i hours ago", hours), hours);
- }
- else if (delay < 60 * 60 * 24 * 7)
- {
- int days = delay / (60 * 60 * 24);
- str = g_strdup_printf(ngettext("%i day ago", "%i days ago", days), days);
- }
- else
- {
- int weeks = delay / (60 * 60 * 24 * 7);
- str = g_strdup_printf(ngettext("%i week ago", "%i weeks ago", weeks), weeks);
- }
-
- return str;
- }
-
- public GtkWidget *
- new (MN:Message *message (check null type))
- {
- return GTK_WIDGET(GET_NEW_VARG(MN_MESSAGE_LABEL_PROP_MESSAGE(G_OBJECT(message)), NULL));
- }
-}
diff --git a/src/mn-message-label.h b/src/mn-message-label.h
@@ -1,76 +0,0 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include <gtk/gtk.h>
-#include "mn-message.h"
-
-#ifndef __MN_MESSAGE_LABEL_H__
-#define __MN_MESSAGE_LABEL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_MESSAGE_LABEL (mn_message_label_get_type())
-#define MN_MESSAGE_LABEL(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_message_label_get_type(), MNMessageLabel)
-#define MN_MESSAGE_LABEL_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_message_label_get_type(), MNMessageLabel const)
-#define MN_MESSAGE_LABEL_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_message_label_get_type(), MNMessageLabelClass)
-#define MN_IS_MESSAGE_LABEL(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_message_label_get_type ())
-
-#define MN_MESSAGE_LABEL_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_message_label_get_type(), MNMessageLabelClass)
-
-/* Private structure type */
-typedef struct _MNMessageLabelPrivate MNMessageLabelPrivate;
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_MESSAGE_LABEL__
-#define __TYPEDEF_MN_MESSAGE_LABEL__
-typedef struct _MNMessageLabel MNMessageLabel;
-#endif
-struct _MNMessageLabel {
- GtkLabel __parent__;
- /*< private >*/
- MNMessageLabelPrivate *_priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNMessageLabelClass MNMessageLabelClass;
-struct _MNMessageLabelClass {
- GtkLabelClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType mn_message_label_get_type (void);
-GtkWidget * mn_message_label_new (MNMessage * message);
-
-/*
- * Argument wrapping macros
- */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_MESSAGE_LABEL_PROP_MESSAGE(arg) "message", __extension__ ({GObject *z = (arg); z;})
-#define MN_MESSAGE_LABEL_GET_PROP_MESSAGE(arg) "message", __extension__ ({GObject **z = (arg); z;})
-#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_MESSAGE_LABEL_PROP_MESSAGE(arg) "message",(GObject *)(arg)
-#define MN_MESSAGE_LABEL_GET_PROP_MESSAGE(arg) "message",(GObject **)(arg)
-#endif /* __GNUC__ && !__STRICT_ANSI__ */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-message-private.h b/src/mn-message-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MESSAGE_PRIVATE_H__
#define __MN_MESSAGE_PRIVATE_H__
diff --git a/src/mn-message.c b/src/mn-message.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -395,7 +395,7 @@ ___1_mn_message_constructor (GType type G_GNUC_UNUSED, guint n_construct_propert
/*
* An ID should (not mandatory):
*
- * - be unique in a single mailbox
+ * - be unique, application-wise
* - persist across checks if the message does not change
*/
diff --git a/src/mn-message.gob b/src/mn-message.gob
@@ -73,7 +73,7 @@ class MN:Message from G:Object
/*
* An ID should (not mandatory):
*
- * - be unique in a single mailbox
+ * - be unique, application-wise
* - persist across checks if the message does not change
*/
diff --git a/src/mn-message.h b/src/mn-message.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-mh-mailbox-private.h b/src/mn-mh-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_MH_MAILBOX_PRIVATE_H__
#define __MN_MH_MAILBOX_PRIVATE_H__
diff --git a/src/mn-mh-mailbox.c b/src/mn-mh-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-mh-mailbox.h b/src/mn-mh-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-pending-mailbox-private.h b/src/mn-pending-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_PENDING_MAILBOX_PRIVATE_H__
#define __MN_PENDING_MAILBOX_PRIVATE_H__
diff --git a/src/mn-pending-mailbox.c b/src/mn-pending-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-pending-mailbox.h b/src/mn-pending-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-pi-mailbox-properties-private.h b/src/mn-pi-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_PI_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_PI_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -10,6 +10,8 @@ extern "C" {
#endif /* __cplusplus */
void mn_pi_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data);
+void mn_pi_mailbox_properties_set_contents (MNPIMailboxProperties * self, gboolean ssl, gboolean inband_ssl, const char * username, const char * password, const char * authmech, const char * hostname, int port);
+void mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, gboolean * ssl, gboolean * inband_ssl, const char ** username, const char ** password, char ** authmech, const char ** hostname, int * port);
#ifdef __cplusplus
}
diff --git a/src/mn-pi-mailbox-properties.c b/src/mn-pi-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -151,7 +151,7 @@ mn_pi_mailbox_properties_init (MNPIMailboxProperties * o G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::init"
#line 50 "mn-pi-mailbox-properties.gob"
- o->tooltips = mn_tooltips_new();
+ o->tooltips = mn_gtk_tooltips_new();
#line 156 "mn-pi-mailbox-properties.c"
}
#undef __GOB_FUNCTION__
diff --git a/src/mn-pi-mailbox-properties.gob b/src/mn-pi-mailbox-properties.gob
@@ -47,7 +47,7 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
protected GtkWidget *hostname_entry;
protected GtkWidget *username_entry;
protected GtkWidget *password_entry;
- protected GtkTooltips *tooltips = {mn_tooltips_new()} unrefwith g_object_unref;
+ protected GtkTooltips *tooltips = {mn_gtk_tooltips_new()} unrefwith g_object_unref;
protected GtkWidget *details_vbox;
protected GtkSizeGroup *details_size_group;
protected GtkWidget *conn_radio[3];
@@ -198,7 +198,7 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
g_object_notify(G_OBJECT(self), "complete");
}
- public void
+ protected void
set_contents (self,
gboolean ssl,
gboolean inband_ssl,
@@ -216,7 +216,7 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[ssl ? 2 : (inband_ssl ? 1 : 0)]), port);
}
- public void
+ protected void
get_contents (self,
gboolean *ssl,
gboolean *inband_ssl,
diff --git a/src/mn-pi-mailbox-properties.h b/src/mn-pi-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
@@ -62,22 +62,6 @@ struct _MNPIMailboxPropertiesClass {
* Public methods
*/
GType mn_pi_mailbox_properties_get_type (void);
-void mn_pi_mailbox_properties_set_contents (MNPIMailboxProperties * self,
- gboolean ssl,
- gboolean inband_ssl,
- const char * username,
- const char * password,
- const char * authmech,
- const char * hostname,
- int port);
-void mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self,
- gboolean * ssl,
- gboolean * inband_ssl,
- const char ** username,
- const char ** password,
- char ** authmech,
- const char ** hostname,
- int * port);
/*
* Argument wrapping macros
diff --git a/src/mn-pop3-mailbox-private.h b/src/mn-pop3-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_POP3_MAILBOX_PRIVATE_H__
#define __MN_POP3_MAILBOX_PRIVATE_H__
diff --git a/src/mn-pop3-mailbox-properties-private.h b/src/mn-pop3-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_POP3_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_POP3_MAILBOX_PROPERTIES_PRIVATE_H__
diff --git a/src/mn-pop3-mailbox-properties.c b/src/mn-pop3-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -31,8 +31,9 @@
#include "mn-mailbox-properties-util.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
+#include "mn-pi-mailbox-properties-private.h"
-#line 36 "mn-pop3-mailbox-properties.c"
+#line 37 "mn-pop3-mailbox-properties.c"
/* self casting macros */
#define SELF(x) MN_POP3_MAILBOX_PROPERTIES(x)
#define SELF_CONST(x) MN_POP3_MAILBOX_PROPERTIES_CONST(x)
@@ -70,11 +71,11 @@ static MNPIMailboxPropertiesClass *parent_class = NULL;
static void
___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
{
-#line 95 "mn-pop3-mailbox-properties.gob"
+#line 96 "mn-pop3-mailbox-properties.gob"
iface->set_uri = self_set_uri;
-#line 115 "mn-pop3-mailbox-properties.gob"
+#line 116 "mn-pop3-mailbox-properties.gob"
iface->get_uri = self_get_uri;
-#line 78 "mn-pop3-mailbox-properties.c"
+#line 79 "mn-pop3-mailbox-properties.c"
}
GType
@@ -134,19 +135,19 @@ mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * o G_GNUC_UNUSED)
#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::init"
}
#undef __GOB_FUNCTION__
-#line 61 "mn-pop3-mailbox-properties.gob"
+#line 62 "mn-pop3-mailbox-properties.gob"
static void
mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GNUC_UNUSED)
-#line 141 "mn-pop3-mailbox-properties.c"
+#line 142 "mn-pop3-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX_PROPERTIES);
-#line 70 "mn-pop3-mailbox-properties.gob"
+#line 71 "mn-pop3-mailbox-properties.gob"
g_object_class->constructor = ___2_mn_pop3_mailbox_properties_constructor;
-#line 150 "mn-pop3-mailbox-properties.c"
+#line 151 "mn-pop3-mailbox-properties.c"
g_object_class->get_property = ___object_get_property;
{
g_object_class_override_property (g_object_class,
@@ -154,7 +155,7 @@ mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GN
"complete");
}
{
-#line 62 "mn-pop3-mailbox-properties.gob"
+#line 63 "mn-pop3-mailbox-properties.gob"
MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
@@ -162,7 +163,7 @@ mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GN
pi_class->default_port[0] = mn_uri_get_default_port("pop");
pi_class->default_port[1] = mn_uri_get_default_port("pops");
-#line 166 "mn-pop3-mailbox-properties.c"
+#line 167 "mn-pop3-mailbox-properties.c"
}
}
#undef __GOB_FUNCTION__
@@ -181,7 +182,7 @@ ___object_get_property (GObject *object,
switch (property_id) {
case PROP_COMPLETE:
{
-#line 37 "mn-pop3-mailbox-properties.gob"
+#line 38 "mn-pop3-mailbox-properties.gob"
MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
gboolean complete;
@@ -205,7 +206,7 @@ ___object_get_property (GObject *object,
g_value_set_boolean(VAL, complete);
-#line 209 "mn-pop3-mailbox-properties.c"
+#line 210 "mn-pop3-mailbox-properties.c"
}
break;
default:
@@ -222,10 +223,10 @@ ___object_get_property (GObject *object,
-#line 70 "mn-pop3-mailbox-properties.gob"
+#line 71 "mn-pop3-mailbox-properties.gob"
static GObject *
___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 229 "mn-pop3-mailbox-properties.c"
+#line 230 "mn-pop3-mailbox-properties.c"
#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
((G_OBJECT_CLASS(parent_class)->constructor)? \
(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -233,7 +234,7 @@ ___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::constructor"
{
-#line 72 "mn-pop3-mailbox-properties.gob"
+#line 73 "mn-pop3-mailbox-properties.gob"
GObject *object;
Self *self;
@@ -246,37 +247,37 @@ ___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
- mn_tooltips_set_tips(pi->tooltips,
- pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
- pi->username_entry, _("Your username on the POP3 server"),
- pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the POP3 server"),
- pi->port_spin[1], _("The port number of the POP3 server"),
- NULL);
+ mn_gtk_tooltips_set_tips(pi->tooltips,
+ pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
+ pi->username_entry, _("Your username on the POP3 server"),
+ pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
+ pi->port_spin[0], _("The port number of the POP3 server"),
+ pi->port_spin[1], _("The port number of the POP3 server"),
+ NULL);
return object;
}}
-#line 260 "mn-pop3-mailbox-properties.c"
+#line 261 "mn-pop3-mailbox-properties.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 95 "mn-pop3-mailbox-properties.gob"
+#line 96 "mn-pop3-mailbox-properties.gob"
static gboolean
mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri)
-#line 267 "mn-pop3-mailbox-properties.c"
+#line 268 "mn-pop3-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::set_uri"
-#line 95 "mn-pop3-mailbox-properties.gob"
+#line 96 "mn-pop3-mailbox-properties.gob"
g_return_val_if_fail (properties != NULL, (gboolean )0);
-#line 95 "mn-pop3-mailbox-properties.gob"
+#line 96 "mn-pop3-mailbox-properties.gob"
g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (gboolean )0);
-#line 95 "mn-pop3-mailbox-properties.gob"
+#line 96 "mn-pop3-mailbox-properties.gob"
g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 95 "mn-pop3-mailbox-properties.gob"
+#line 96 "mn-pop3-mailbox-properties.gob"
g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 278 "mn-pop3-mailbox-properties.c"
+#line 279 "mn-pop3-mailbox-properties.c"
{
-#line 98 "mn-pop3-mailbox-properties.gob"
+#line 99 "mn-pop3-mailbox-properties.gob"
if (MN_URI_IS_POP(uri))
{
@@ -293,22 +294,22 @@ mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * ur
else
return FALSE;
}}
-#line 297 "mn-pop3-mailbox-properties.c"
+#line 298 "mn-pop3-mailbox-properties.c"
#undef __GOB_FUNCTION__
-#line 115 "mn-pop3-mailbox-properties.gob"
+#line 116 "mn-pop3-mailbox-properties.gob"
static MNURI *
mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties)
-#line 303 "mn-pop3-mailbox-properties.c"
+#line 304 "mn-pop3-mailbox-properties.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::get_uri"
-#line 115 "mn-pop3-mailbox-properties.gob"
+#line 116 "mn-pop3-mailbox-properties.gob"
g_return_val_if_fail (properties != NULL, (MNURI * )0);
-#line 115 "mn-pop3-mailbox-properties.gob"
+#line 116 "mn-pop3-mailbox-properties.gob"
g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (MNURI * )0);
-#line 310 "mn-pop3-mailbox-properties.c"
+#line 311 "mn-pop3-mailbox-properties.c"
{
-#line 117 "mn-pop3-mailbox-properties.gob"
+#line 118 "mn-pop3-mailbox-properties.gob"
gboolean ssl;
gboolean inband_ssl;
@@ -333,5 +334,5 @@ mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties)
return uri;
}}
-#line 337 "mn-pop3-mailbox-properties.c"
+#line 338 "mn-pop3-mailbox-properties.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox-properties.gob b/src/mn-pop3-mailbox-properties.gob
@@ -28,6 +28,7 @@ requires 2.0.10
#include "mn-mailbox-properties-util.h"
#include "mn-auth-combo-box.h"
#include "mn-util.h"
+#include "mn-pi-mailbox-properties-private.h"
%}
class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mailbox:Properties)
@@ -81,13 +82,13 @@ class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
- mn_tooltips_set_tips(pi->tooltips,
- pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
- pi->username_entry, _("Your username on the POP3 server"),
- pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
- pi->port_spin[0], _("The port number of the POP3 server"),
- pi->port_spin[1], _("The port number of the POP3 server"),
- NULL);
+ mn_gtk_tooltips_set_tips(pi->tooltips,
+ pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
+ pi->username_entry, _("Your username on the POP3 server"),
+ pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
+ pi->port_spin[0], _("The port number of the POP3 server"),
+ pi->port_spin[1], _("The port number of the POP3 server"),
+ NULL);
return object;
}
diff --git a/src/mn-pop3-mailbox-properties.h b/src/mn-pop3-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-pop3-mailbox.c b/src/mn-pop3-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -267,18 +267,18 @@ mn_pop3_mailbox_class_init (MNPOP3MailboxClass * class G_GNUC_UNUSED)
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::class_init"
GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
-
- g_type_class_add_private(class,sizeof(MNPOP3MailboxPrivate));
MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
+ g_type_class_add_private(class,sizeof(MNPOP3MailboxPrivate));
+
parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
#line 131 "mn-pop3-mailbox.gob"
g_object_class->constructor = ___2_mn_pop3_mailbox_constructor;
#line 148 "mn-pop3-mailbox.gob"
mn_mailbox_class->impl_is = ___3_mn_pop3_mailbox_impl_is;
-#line 631 "mn-pop3-mailbox.gob"
+#line 638 "mn-pop3-mailbox.gob"
mn_authenticated_mailbox_class->impl_authenticated_check = ___19_mn_pop3_mailbox_impl_authenticated_check;
#line 284 "mn-pop3-mailbox.c"
g_object_class->finalize = ___finalize;
@@ -593,32 +593,39 @@ mn_pop3_mailbox_enter_auth_cb (MNClientSession * session, MNClientSessionPrivate
"pop",
priv->auth_mechanisms,
priv->mailbox->uri->authmech,
- &priv->sasl_mechanism))
+ &priv->sasl_mechanism,
+ /* [1] */ TRUE))
return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
else
return self_session_authenticate_fallback(priv, FALSE);
+
+ /*
+ * [1] http://www.ietf.org/internet-drafts/draft-siemborski-rfc1734bis-03.txt
+ * section 4 specifies that POP3 supports the initial client
+ * response feature of SASL.
+ */
#else
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 605 "mn-pop3-mailbox.c"
+#line 612 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 335 "mn-pop3-mailbox.gob"
+#line 342 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 611 "mn-pop3-mailbox.c"
+#line 618 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_auth_cb"
-#line 335 "mn-pop3-mailbox.gob"
+#line 342 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 335 "mn-pop3-mailbox.gob"
+#line 342 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 335 "mn-pop3-mailbox.gob"
+#line 342 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 620 "mn-pop3-mailbox.c"
+#line 627 "mn-pop3-mailbox.c"
{
-#line 339 "mn-pop3-mailbox.gob"
+#line 346 "mn-pop3-mailbox.gob"
#ifdef WITH_SASL
switch (response->type)
@@ -641,22 +648,22 @@ mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionRespon
g_return_val_if_reached(0);
#endif /* WITH_SASL */
}}
-#line 645 "mn-pop3-mailbox.c"
+#line 652 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 362 "mn-pop3-mailbox.gob"
+#line 369 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 651 "mn-pop3-mailbox.c"
+#line 658 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_apop_cb"
-#line 362 "mn-pop3-mailbox.gob"
+#line 369 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 362 "mn-pop3-mailbox.gob"
+#line 369 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 658 "mn-pop3-mailbox.c"
+#line 665 "mn-pop3-mailbox.c"
{
-#line 365 "mn-pop3-mailbox.gob"
+#line 372 "mn-pop3-mailbox.gob"
MNMD5Context context;
char buf[33];
@@ -670,24 +677,24 @@ mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate
return mn_client_session_write(session, "APOP %s %s", priv->mailbox->uri->username, buf);
}}
-#line 674 "mn-pop3-mailbox.c"
+#line 681 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 379 "mn-pop3-mailbox.gob"
+#line 386 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 680 "mn-pop3-mailbox.c"
+#line 687 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_apop_cb"
-#line 379 "mn-pop3-mailbox.gob"
+#line 386 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 379 "mn-pop3-mailbox.gob"
+#line 386 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 379 "mn-pop3-mailbox.gob"
+#line 386 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 689 "mn-pop3-mailbox.c"
+#line 696 "mn-pop3-mailbox.c"
{
-#line 383 "mn-pop3-mailbox.gob"
+#line 390 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -701,43 +708,43 @@ mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 705 "mn-pop3-mailbox.c"
+#line 712 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 397 "mn-pop3-mailbox.gob"
+#line 404 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_user_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 711 "mn-pop3-mailbox.c"
+#line 718 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_user_cb"
-#line 397 "mn-pop3-mailbox.gob"
+#line 404 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 397 "mn-pop3-mailbox.gob"
+#line 404 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 718 "mn-pop3-mailbox.c"
+#line 725 "mn-pop3-mailbox.c"
{
-#line 400 "mn-pop3-mailbox.gob"
+#line 407 "mn-pop3-mailbox.gob"
return mn_client_session_write(session, "USER %s", priv->mailbox->uri->username);
}}
-#line 724 "mn-pop3-mailbox.c"
+#line 731 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 404 "mn-pop3-mailbox.gob"
+#line 411 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_user_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 730 "mn-pop3-mailbox.c"
+#line 737 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_user_cb"
-#line 404 "mn-pop3-mailbox.gob"
+#line 411 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 404 "mn-pop3-mailbox.gob"
+#line 411 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 404 "mn-pop3-mailbox.gob"
+#line 411 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 739 "mn-pop3-mailbox.c"
+#line 746 "mn-pop3-mailbox.c"
{
-#line 408 "mn-pop3-mailbox.gob"
+#line 415 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -752,43 +759,43 @@ mn_pop3_mailbox_handle_user_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 756 "mn-pop3-mailbox.c"
+#line 763 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 423 "mn-pop3-mailbox.gob"
+#line 430 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_pass_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 762 "mn-pop3-mailbox.c"
+#line 769 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_pass_cb"
-#line 423 "mn-pop3-mailbox.gob"
+#line 430 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 423 "mn-pop3-mailbox.gob"
+#line 430 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 769 "mn-pop3-mailbox.c"
+#line 776 "mn-pop3-mailbox.c"
{
-#line 426 "mn-pop3-mailbox.gob"
+#line 433 "mn-pop3-mailbox.gob"
return mn_client_session_write(session, "PASS %s", MN_AUTHENTICATED_MAILBOX(priv->self)->password);
}}
-#line 775 "mn-pop3-mailbox.c"
+#line 782 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 430 "mn-pop3-mailbox.gob"
+#line 437 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 781 "mn-pop3-mailbox.c"
+#line 788 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_pass_cb"
-#line 430 "mn-pop3-mailbox.gob"
+#line 437 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 430 "mn-pop3-mailbox.gob"
+#line 437 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 430 "mn-pop3-mailbox.gob"
+#line 437 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 790 "mn-pop3-mailbox.c"
+#line 797 "mn-pop3-mailbox.c"
{
-#line 434 "mn-pop3-mailbox.gob"
+#line 441 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -803,22 +810,22 @@ mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionRespon
return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 807 "mn-pop3-mailbox.c"
+#line 814 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 449 "mn-pop3-mailbox.gob"
+#line 456 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 813 "mn-pop3-mailbox.c"
+#line 820 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_list_cb"
-#line 449 "mn-pop3-mailbox.gob"
+#line 456 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 449 "mn-pop3-mailbox.gob"
+#line 456 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 820 "mn-pop3-mailbox.c"
+#line 827 "mn-pop3-mailbox.c"
{
-#line 452 "mn-pop3-mailbox.gob"
+#line 459 "mn-pop3-mailbox.gob"
#ifdef WITH_MIME
return mn_client_session_write(session, "LIST");
@@ -826,24 +833,24 @@ mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate
g_return_val_if_reached(0);
#endif
}}
-#line 830 "mn-pop3-mailbox.c"
+#line 837 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 460 "mn-pop3-mailbox.gob"
+#line 467 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 836 "mn-pop3-mailbox.c"
+#line 843 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_cb"
-#line 460 "mn-pop3-mailbox.gob"
+#line 467 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 460 "mn-pop3-mailbox.gob"
+#line 467 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 460 "mn-pop3-mailbox.gob"
+#line 467 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 845 "mn-pop3-mailbox.c"
+#line 852 "mn-pop3-mailbox.c"
{
-#line 464 "mn-pop3-mailbox.gob"
+#line 471 "mn-pop3-mailbox.gob"
#ifdef WITH_MIME
self_handle_list_response(priv, response);
@@ -879,22 +886,22 @@ mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionRespon
g_return_val_if_reached(0);
#endif
}}
-#line 883 "mn-pop3-mailbox.c"
+#line 890 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 500 "mn-pop3-mailbox.gob"
+#line 507 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 889 "mn-pop3-mailbox.c"
+#line 896 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_retr_cb"
-#line 500 "mn-pop3-mailbox.gob"
+#line 507 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 500 "mn-pop3-mailbox.gob"
+#line 507 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 896 "mn-pop3-mailbox.c"
+#line 903 "mn-pop3-mailbox.c"
{
-#line 503 "mn-pop3-mailbox.gob"
+#line 510 "mn-pop3-mailbox.gob"
#ifdef WITH_MIME
if (priv->current_message_number)
@@ -913,24 +920,24 @@ mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate
g_return_val_if_reached(0);
#endif
}}
-#line 917 "mn-pop3-mailbox.c"
+#line 924 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 522 "mn-pop3-mailbox.gob"
+#line 529 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 923 "mn-pop3-mailbox.c"
+#line 930 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_retr_cb"
-#line 522 "mn-pop3-mailbox.gob"
+#line 529 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 522 "mn-pop3-mailbox.gob"
+#line 529 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 522 "mn-pop3-mailbox.gob"
+#line 529 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 932 "mn-pop3-mailbox.c"
+#line 939 "mn-pop3-mailbox.c"
{
-#line 526 "mn-pop3-mailbox.gob"
+#line 533 "mn-pop3-mailbox.gob"
#ifdef WITH_MIME
self_handle_list_response(priv, response);
@@ -969,22 +976,22 @@ mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionRespon
g_return_val_if_reached(0);
#endif
}}
-#line 973 "mn-pop3-mailbox.c"
+#line 980 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 565 "mn-pop3-mailbox.gob"
+#line 572 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_stat_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 979 "mn-pop3-mailbox.c"
+#line 986 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_stat_cb"
-#line 565 "mn-pop3-mailbox.gob"
+#line 572 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 565 "mn-pop3-mailbox.gob"
+#line 572 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 986 "mn-pop3-mailbox.c"
+#line 993 "mn-pop3-mailbox.c"
{
-#line 568 "mn-pop3-mailbox.gob"
+#line 575 "mn-pop3-mailbox.gob"
#ifndef WITH_MIME
return mn_client_session_write(session, "STAT");
@@ -992,24 +999,24 @@ mn_pop3_mailbox_enter_stat_cb (MNClientSession * session, MNClientSessionPrivate
g_return_val_if_reached(0);
#endif
}}
-#line 996 "mn-pop3-mailbox.c"
+#line 1003 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 576 "mn-pop3-mailbox.gob"
+#line 583 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_stat_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1002 "mn-pop3-mailbox.c"
+#line 1009 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_stat_cb"
-#line 576 "mn-pop3-mailbox.gob"
+#line 583 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 576 "mn-pop3-mailbox.gob"
+#line 583 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 576 "mn-pop3-mailbox.gob"
+#line 583 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1011 "mn-pop3-mailbox.c"
+#line 1018 "mn-pop3-mailbox.c"
{
-#line 580 "mn-pop3-mailbox.gob"
+#line 587 "mn-pop3-mailbox.gob"
#ifndef WITH_MIME
switch (response->type)
@@ -1040,43 +1047,43 @@ mn_pop3_mailbox_handle_stat_cb (MNClientSession * session, MNClientSessionRespon
g_return_val_if_reached(0);
#endif
}}
-#line 1044 "mn-pop3-mailbox.c"
+#line 1051 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 611 "mn-pop3-mailbox.gob"
+#line 618 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_enter_quit_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1050 "mn-pop3-mailbox.c"
+#line 1057 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_quit_cb"
-#line 611 "mn-pop3-mailbox.gob"
+#line 618 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 611 "mn-pop3-mailbox.gob"
+#line 618 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1057 "mn-pop3-mailbox.c"
+#line 1064 "mn-pop3-mailbox.c"
{
-#line 614 "mn-pop3-mailbox.gob"
+#line 621 "mn-pop3-mailbox.gob"
return mn_client_session_write(session, "QUIT");
}}
-#line 1063 "mn-pop3-mailbox.c"
+#line 1070 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 618 "mn-pop3-mailbox.gob"
+#line 625 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1069 "mn-pop3-mailbox.c"
+#line 1076 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_quit_cb"
-#line 618 "mn-pop3-mailbox.gob"
+#line 625 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 618 "mn-pop3-mailbox.gob"
+#line 625 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 618 "mn-pop3-mailbox.gob"
+#line 625 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1078 "mn-pop3-mailbox.c"
+#line 1085 "mn-pop3-mailbox.c"
{
-#line 622 "mn-pop3-mailbox.gob"
+#line 629 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -1085,26 +1092,26 @@ mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionRespon
default: return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
}
}}
-#line 1089 "mn-pop3-mailbox.c"
+#line 1096 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 631 "mn-pop3-mailbox.gob"
+#line 638 "mn-pop3-mailbox.gob"
static MNAuthenticatedMailboxResult
___19_mn_pop3_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox G_GNUC_UNUSED, GError ** err)
-#line 1095 "mn-pop3-mailbox.c"
+#line 1102 "mn-pop3-mailbox.c"
#define PARENT_HANDLER(___authenticated_mailbox,___err) \
((MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)? \
(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)(___authenticated_mailbox,___err): \
((MNAuthenticatedMailboxResult )0))
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_authenticated_check"
-#line 631 "mn-pop3-mailbox.gob"
+#line 638 "mn-pop3-mailbox.gob"
g_return_val_if_fail (authenticated_mailbox != NULL, (MNAuthenticatedMailboxResult )0);
-#line 631 "mn-pop3-mailbox.gob"
+#line 638 "mn-pop3-mailbox.gob"
g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (authenticated_mailbox), (MNAuthenticatedMailboxResult )0);
-#line 1106 "mn-pop3-mailbox.c"
+#line 1113 "mn-pop3-mailbox.c"
{
-#line 634 "mn-pop3-mailbox.gob"
+#line 641 "mn-pop3-mailbox.gob"
MNMailbox *mailbox = MN_MAILBOX(authenticated_mailbox);
Self *self = SELF(authenticated_mailbox);
@@ -1134,7 +1141,9 @@ ___19_mn_pop3_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authent
self_notice_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb
+ self_custom_handler_cb,
+ NULL, /* pre_read */
+ NULL /* post_read */
};
MNClientSessionPrivate priv;
gboolean status;
@@ -1191,46 +1200,46 @@ ___19_mn_pop3_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authent
? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION
: MN_AUTHENTICATED_MAILBOX_ERROR_OTHER);
}}
-#line 1195 "mn-pop3-mailbox.c"
+#line 1204 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 721 "mn-pop3-mailbox.gob"
+#line 730 "mn-pop3-mailbox.gob"
static void
mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1202 "mn-pop3-mailbox.c"
+#line 1211 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::notice_cb"
-#line 721 "mn-pop3-mailbox.gob"
+#line 730 "mn-pop3-mailbox.gob"
g_return_if_fail (session != NULL);
-#line 721 "mn-pop3-mailbox.gob"
+#line 730 "mn-pop3-mailbox.gob"
g_return_if_fail (str != NULL);
-#line 721 "mn-pop3-mailbox.gob"
+#line 730 "mn-pop3-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 1211 "mn-pop3-mailbox.c"
+#line 1220 "mn-pop3-mailbox.c"
{
-#line 725 "mn-pop3-mailbox.gob"
+#line 734 "mn-pop3-mailbox.gob"
mn_mailbox_notice(priv->mailbox, "%s", str);
}}
-#line 1217 "mn-pop3-mailbox.c"
+#line 1226 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 729 "mn-pop3-mailbox.gob"
+#line 738 "mn-pop3-mailbox.gob"
static MNClientSessionResponse *
mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1223 "mn-pop3-mailbox.c"
+#line 1232 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_new_cb"
-#line 729 "mn-pop3-mailbox.gob"
+#line 738 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 729 "mn-pop3-mailbox.gob"
+#line 738 "mn-pop3-mailbox.gob"
g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 729 "mn-pop3-mailbox.gob"
+#line 738 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1232 "mn-pop3-mailbox.c"
+#line 1241 "mn-pop3-mailbox.c"
{
-#line 733 "mn-pop3-mailbox.gob"
+#line 742 "mn-pop3-mailbox.gob"
MNClientSessionResponse *response = NULL;
@@ -1289,46 +1298,46 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input,
return response;
}}
-#line 1293 "mn-pop3-mailbox.c"
+#line 1302 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
static void
mn_pop3_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1299 "mn-pop3-mailbox.c"
+#line 1308 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_free_cb"
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
g_return_if_fail (session != NULL);
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 1308 "mn-pop3-mailbox.c"
+#line 1317 "mn-pop3-mailbox.c"
{
-#line 796 "mn-pop3-mailbox.gob"
+#line 805 "mn-pop3-mailbox.gob"
g_free(response->arguments);
g_free(response);
}}
-#line 1315 "mn-pop3-mailbox.c"
+#line 1324 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 801 "mn-pop3-mailbox.gob"
+#line 810 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1321 "mn-pop3-mailbox.c"
+#line 1330 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::custom_handler_cb"
-#line 801 "mn-pop3-mailbox.gob"
+#line 810 "mn-pop3-mailbox.gob"
g_return_val_if_fail (session != NULL, (int )0);
-#line 801 "mn-pop3-mailbox.gob"
+#line 810 "mn-pop3-mailbox.gob"
g_return_val_if_fail (response != NULL, (int )0);
-#line 801 "mn-pop3-mailbox.gob"
+#line 810 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1330 "mn-pop3-mailbox.c"
+#line 1339 "mn-pop3-mailbox.c"
{
-#line 806 "mn-pop3-mailbox.gob"
+#line 815 "mn-pop3-mailbox.gob"
switch (result)
{
@@ -1344,20 +1353,20 @@ mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionRes
g_return_val_if_reached(0);
}
}}
-#line 1348 "mn-pop3-mailbox.c"
+#line 1357 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 822 "mn-pop3-mailbox.gob"
+#line 831 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1354 "mn-pop3-mailbox.c"
+#line 1363 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate"
-#line 822 "mn-pop3-mailbox.gob"
+#line 831 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1359 "mn-pop3-mailbox.c"
+#line 1368 "mn-pop3-mailbox.c"
{
-#line 824 "mn-pop3-mailbox.gob"
+#line 833 "mn-pop3-mailbox.gob"
if (priv->mailbox->uri->authmech)
{
@@ -1393,20 +1402,20 @@ mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
return STATE_USER;
}
}}
-#line 1397 "mn-pop3-mailbox.c"
+#line 1406 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 860 "mn-pop3-mailbox.gob"
+#line 869 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_apop)
-#line 1403 "mn-pop3-mailbox.c"
+#line 1412 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate_fallback"
-#line 860 "mn-pop3-mailbox.gob"
+#line 869 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1408 "mn-pop3-mailbox.c"
+#line 1417 "mn-pop3-mailbox.c"
{
-#line 863 "mn-pop3-mailbox.gob"
+#line 872 "mn-pop3-mailbox.gob"
if (! priv->mailbox->uri->authmech)
{
@@ -1425,20 +1434,20 @@ mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
priv->authentication_failed = TRUE;
return mn_client_session_error(priv->session, _("authentication failed"));
}}
-#line 1429 "mn-pop3-mailbox.c"
+#line 1438 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 882 "mn-pop3-mailbox.gob"
+#line 891 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
-#line 1435 "mn-pop3-mailbox.c"
+#line 1444 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticated"
-#line 882 "mn-pop3-mailbox.gob"
+#line 891 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1440 "mn-pop3-mailbox.c"
+#line 1449 "mn-pop3-mailbox.c"
{
-#line 884 "mn-pop3-mailbox.gob"
+#line 893 "mn-pop3-mailbox.gob"
priv->authenticated = TRUE;
if (priv->self->_priv->login_delay)
@@ -1450,20 +1459,20 @@ mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
}
return priv->login_delay_user ? STATE_CAPA : self_session_check_mail(priv);
}}
-#line 1454 "mn-pop3-mailbox.c"
+#line 1463 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 896 "mn-pop3-mailbox.gob"
+#line 905 "mn-pop3-mailbox.gob"
static int
mn_pop3_mailbox_session_check_mail (MNClientSessionPrivate * priv)
-#line 1460 "mn-pop3-mailbox.c"
+#line 1469 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_check_mail"
-#line 896 "mn-pop3-mailbox.gob"
+#line 905 "mn-pop3-mailbox.gob"
g_return_val_if_fail (priv != NULL, (int )0);
-#line 1465 "mn-pop3-mailbox.c"
+#line 1474 "mn-pop3-mailbox.c"
{
-#line 898 "mn-pop3-mailbox.gob"
+#line 907 "mn-pop3-mailbox.gob"
#ifdef WITH_MIME
return STATE_LIST;
@@ -1471,44 +1480,44 @@ mn_pop3_mailbox_session_check_mail (MNClientSessionPrivate * priv)
return STATE_STAT;
#endif
}}
-#line 1475 "mn-pop3-mailbox.c"
+#line 1484 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 906 "mn-pop3-mailbox.gob"
+#line 915 "mn-pop3-mailbox.gob"
static void
mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1481 "mn-pop3-mailbox.c"
+#line 1490 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_set_error_from_arguments"
-#line 906 "mn-pop3-mailbox.gob"
+#line 915 "mn-pop3-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 906 "mn-pop3-mailbox.gob"
+#line 915 "mn-pop3-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 1488 "mn-pop3-mailbox.c"
+#line 1497 "mn-pop3-mailbox.c"
{
-#line 909 "mn-pop3-mailbox.gob"
+#line 918 "mn-pop3-mailbox.gob"
if (response->arguments)
mn_client_session_error(priv->session, "\"%s\"", response->arguments);
else
mn_client_session_error(priv->session, _("unknown server error"));
}}
-#line 1497 "mn-pop3-mailbox.c"
+#line 1506 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
-#line 916 "mn-pop3-mailbox.gob"
+#line 925 "mn-pop3-mailbox.gob"
static void
mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1503 "mn-pop3-mailbox.c"
+#line 1512 "mn-pop3-mailbox.c"
{
#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_response"
-#line 916 "mn-pop3-mailbox.gob"
+#line 925 "mn-pop3-mailbox.gob"
g_return_if_fail (priv != NULL);
-#line 916 "mn-pop3-mailbox.gob"
+#line 925 "mn-pop3-mailbox.gob"
g_return_if_fail (response != NULL);
-#line 1510 "mn-pop3-mailbox.c"
+#line 1519 "mn-pop3-mailbox.c"
{
-#line 919 "mn-pop3-mailbox.gob"
+#line 928 "mn-pop3-mailbox.gob"
switch (response->type)
{
@@ -1524,5 +1533,5 @@ mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSes
break;
}
}}
-#line 1528 "mn-pop3-mailbox.c"
+#line 1537 "mn-pop3-mailbox.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox.gob b/src/mn-pop3-mailbox.gob
@@ -323,10 +323,17 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
"pop",
priv->auth_mechanisms,
priv->mailbox->uri->authmech,
- &priv->sasl_mechanism))
+ &priv->sasl_mechanism,
+ /* [1] */ TRUE))
return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
else
return self_session_authenticate_fallback(priv, FALSE);
+
+ /*
+ * [1] http://www.ietf.org/internet-drafts/draft-siemborski-rfc1734bis-03.txt
+ * section 4 specifies that POP3 supports the initial client
+ * response feature of SASL.
+ */
#else
g_return_val_if_reached(0);
#endif /* WITH_SASL */
@@ -660,7 +667,9 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
self_notice_cb,
self_response_new_cb,
self_response_free_cb,
- self_custom_handler_cb
+ self_custom_handler_cb,
+ NULL, /* pre_read */
+ NULL /* post_read */
};
MNClientSessionPrivate priv;
gboolean status;
diff --git a/src/mn-pop3-mailbox.h b/src/mn-pop3-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-properties.c b/src/mn-properties.c
@@ -36,10 +36,14 @@ typedef struct
/* general tab */
GtkWidget *autostart_check;
GtkWidget *blink_check;
+ GtkWidget *command_mail_reader_check;
+ GtkWidget *command_mail_reader_entry;
GtkWidget *command_new_mail_check;
GtkWidget *command_new_mail_entry;
GtkWidget *command_mail_read_check;
GtkWidget *command_mail_read_entry;
+ GtkWidget *action_summary_radio;
+ GtkWidget *action_mail_reader_radio;
/* mailboxes tab */
GtkWidget *delay_label;
@@ -58,6 +62,7 @@ typedef struct
GtkWidget *summary_minutes_label;
GtkWidget *summary_seconds_spin;
GtkWidget *summary_seconds_label;
+ GtkWidget *summary_only_recent_check;
GtkWidget *summary_position_label;
GtkWidget *summary_position_combo;
GtkWidget *summary_horizontal_offset_label;
@@ -113,10 +118,14 @@ mn_properties_display (void)
"notebook", &properties.notebook,
"autostart_check", &properties.autostart_check,
"blink_check", &properties.blink_check,
+ "command_mail_reader_check", &properties.command_mail_reader_check,
+ "command_mail_reader_entry", &properties.command_mail_reader_entry,
"command_new_mail_check", &properties.command_new_mail_check,
"command_new_mail_entry", &properties.command_new_mail_entry,
"command_mail_read_check", &properties.command_mail_read_check,
"command_mail_read_entry", &properties.command_mail_read_entry,
+ "action_summary_radio", &properties.action_summary_radio,
+ "action_mail_reader_radio", &properties.action_mail_reader_radio,
"delay_label", &properties.delay_label,
"minutes_spin", &properties.minutes_spin,
"seconds_spin", &properties.seconds_spin,
@@ -130,6 +139,7 @@ mn_properties_display (void)
"summary_minutes_label", &properties.summary_minutes_label,
"summary_seconds_spin", &properties.summary_seconds_spin,
"summary_seconds_label", &properties.summary_seconds_label,
+ "summary_only_recent_check", &properties.summary_only_recent_check,
"summary_position_label", &properties.summary_position_label,
"summary_position_combo", &properties.summary_position_combo,
"summary_horizontal_offset_label", &properties.summary_horizontal_offset_label,
@@ -152,6 +162,7 @@ mn_properties_display (void)
mn_setup_dnd(properties.scrolled);
size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+ gtk_size_group_add_widget(size_group, properties.command_mail_reader_check);
gtk_size_group_add_widget(size_group, properties.command_new_mail_check);
gtk_size_group_add_widget(size_group, properties.command_mail_read_check);
g_object_unref(size_group);
@@ -183,6 +194,8 @@ mn_properties_display (void)
mn_conf_link(properties.dialog, MN_CONF_PROPERTIES_DIALOG,
properties.blink_check, MN_CONF_BLINK_ON_ERRORS,
+ properties.command_mail_reader_check, MN_CONF_COMMANDS_MAIL_READER_ENABLED,
+ properties.command_mail_reader_entry, MN_CONF_COMMANDS_MAIL_READER_COMMAND,
properties.command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED,
properties.command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND,
properties.command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED,
@@ -193,9 +206,15 @@ mn_properties_display (void)
properties.summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE,
properties.summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
properties.summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+ properties.summary_only_recent_check, MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT,
properties.summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
properties.summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
NULL);
+ mn_conf_link_radio_group_to_enum(MN_TYPE_ACTION,
+ MN_CONF_DOUBLE_CLICK_ACTION,
+ properties.action_summary_radio, MN_ACTION_DISPLAY_MAIL_SUMMARY,
+ properties.action_mail_reader_radio, MN_ACTION_LAUNCH_MAIL_READER,
+ NULL);
mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(properties.summary_position_combo),
POSITION_COLUMN_NICK,
MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
@@ -264,20 +283,28 @@ mn_properties_update_selected_label (void)
static void
mn_properties_update_sensitivity (void)
{
+ gboolean command_mail_reader_enabled;
gboolean command_new_mail_enabled;
gboolean command_mail_read_enabled;
+ char *mail_reader;
gboolean must_poll;
GtkTreeSelection *selection;
gboolean has_selection;
gboolean summary_enabled = FALSE;
gboolean summary_autoclose_enabled = FALSE;
+ command_mail_reader_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(properties.command_mail_reader_check));
command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(properties.command_new_mail_check));
command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(properties.command_mail_read_check));
+ gtk_widget_set_sensitive(properties.command_mail_reader_entry, command_mail_reader_enabled);
gtk_widget_set_sensitive(properties.command_new_mail_entry, command_new_mail_enabled);
gtk_widget_set_sensitive(properties.command_mail_read_entry, command_mail_read_enabled);
+ mail_reader = eel_gconf_get_string(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ gtk_widget_set_sensitive(properties.action_mail_reader_radio, command_mail_reader_enabled && mail_reader);
+ g_free(mail_reader);
+
must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
gtk_widget_set_sensitive(properties.minutes_spin, must_poll);
gtk_widget_set_sensitive(properties.seconds_spin, must_poll);
@@ -296,6 +323,7 @@ mn_properties_update_sensitivity (void)
gtk_widget_set_sensitive(properties.summary_minutes_label, summary_enabled && summary_autoclose_enabled);
gtk_widget_set_sensitive(properties.summary_seconds_spin, summary_enabled && summary_autoclose_enabled);
gtk_widget_set_sensitive(properties.summary_seconds_label, summary_enabled && summary_autoclose_enabled);
+ gtk_widget_set_sensitive(properties.summary_only_recent_check, summary_enabled);
gtk_widget_set_sensitive(properties.summary_position_label, summary_enabled);
gtk_widget_set_sensitive(properties.summary_position_combo, summary_enabled);
gtk_widget_set_sensitive(properties.summary_horizontal_offset_label, summary_enabled);
@@ -330,6 +358,13 @@ mn_properties_toggled_h (GtkToggleButton *togglebutton, gpointer user_data)
}
void
+mn_properties_mail_reader_entry_changed_h (GtkEditable *editable,
+ gpointer user_data)
+{
+ mn_properties_update_sensitivity();
+}
+
+void
mn_properties_add_clicked_h (GtkButton *button, gpointer user_data)
{
mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(properties.list));
diff --git a/src/mn-shell-private.h b/src/mn-shell-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_SHELL_PRIVATE_H__
#define __MN_SHELL_PRIVATE_H__
@@ -16,11 +16,11 @@ extern "C" {
#line 18 "mn-shell-private.h"
struct _MNShellPrivate {
-#line 47 "mn-shell.gob"
- MNMailIcon * icon;
#line 48 "mn-shell.gob"
- GtkWidget * about;
+ MNMailIcon * icon;
#line 49 "mn-shell.gob"
+ GtkWidget * about;
+#line 50 "mn-shell.gob"
int n_new;
#line 26 "mn-shell-private.h"
};
diff --git a/src/mn-shell.c b/src/mn-shell.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
@@ -35,12 +35,13 @@
#include "mn-mailboxes.h"
#include "mn-unsupported-mailbox.h"
#include "mn-about-dialog.h"
+#include "mn-summary.h"
#include "mn-summary-popup.h"
#include "mn-summary-dialog.h"
MNShell *mn_shell = NULL;
-#line 44 "mn-shell.c"
+#line 45 "mn-shell.c"
/* self casting macros */
#define SELF(x) MN_SHELL(x)
#define SELF_CONST(x) MN_SHELL_CONST(x)
@@ -61,8 +62,10 @@ static void ___2_mn_shell_finalize (GObject * object) G_GNUC_UNUSED;
static void mn_shell_mailboxes_messages_changed_h (MNMailboxes * mailboxes, gboolean has_new, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_init_icon (MNShell * self) G_GNUC_UNUSED;
static void mn_shell_notify_blink_on_errors_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_shell_notify_mail_reader_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_summary_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
+static void mn_shell_icon_activate_mail_reader_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_icon_activate_help_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
@@ -71,7 +74,9 @@ static void mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_da
static void mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data) G_GNUC_UNUSED;
static void mn_shell_update_sensitivity (MNShell * self) G_GNUC_UNUSED;
static void mn_shell_update_icon (MNShell * self) G_GNUC_UNUSED;
-static void mn_shell_execute_command (const char * conf_key) G_GNUC_UNUSED;
+static void mn_shell_update_tooltip (MNShell * self) G_GNUC_UNUSED;
+static GtkWidget * mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title) G_GNUC_UNUSED;
+static void mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const char * text) G_GNUC_UNUSED;
/* pointer to the class of our parent */
static GObjectClass *parent_class = NULL;
@@ -80,8 +85,10 @@ static GObjectClass *parent_class = NULL;
#define self_mailboxes_messages_changed_h mn_shell_mailboxes_messages_changed_h
#define self_init_icon mn_shell_init_icon
#define self_notify_blink_on_errors_cb mn_shell_notify_blink_on_errors_cb
+#define self_notify_mail_reader_cb mn_shell_notify_mail_reader_cb
#define self_icon_activate_h mn_shell_icon_activate_h
#define self_icon_activate_summary_h mn_shell_icon_activate_summary_h
+#define self_icon_activate_mail_reader_h mn_shell_icon_activate_mail_reader_h
#define self_icon_activate_update_h mn_shell_icon_activate_update_h
#define self_icon_activate_properties_h mn_shell_icon_activate_properties_h
#define self_icon_activate_help_h mn_shell_icon_activate_help_h
@@ -90,7 +97,9 @@ static GObjectClass *parent_class = NULL;
#define self_icon_destroy_h mn_shell_icon_destroy_h
#define self_update_sensitivity mn_shell_update_sensitivity
#define self_update_icon mn_shell_update_icon
-#define self_execute_command mn_shell_execute_command
+#define self_update_tooltip mn_shell_update_tooltip
+#define self_tooltip_section_new mn_shell_tooltip_section_new
+#define self_tooltip_text_section_new mn_shell_tooltip_text_section_new
#define self_new mn_shell_new
#define self_display_about mn_shell_display_about
#define self_run_welcome mn_shell_run_welcome
@@ -145,9 +154,9 @@ ___dispose (GObject *obj_self)
MNShell *self G_GNUC_UNUSED = MN_SHELL (obj_self);
if (G_OBJECT_CLASS (parent_class)->dispose) \
(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 46 "mn-shell.gob"
+#line 47 "mn-shell.gob"
if(self->mailboxes) { g_object_unref ((gpointer) self->mailboxes); self->mailboxes = NULL; }
-#line 151 "mn-shell.c"
+#line 160 "mn-shell.c"
}
#undef __GOB_FUNCTION__
@@ -158,9 +167,9 @@ ___finalize(GObject *obj_self)
#define __GOB_FUNCTION__ "MN:Shell::finalize"
MNShell *self G_GNUC_UNUSED = MN_SHELL (obj_self);
gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 72 "mn-shell.gob"
+#line 78 "mn-shell.gob"
___2_mn_shell_finalize(obj_self);
-#line 164 "mn-shell.c"
+#line 173 "mn-shell.c"
}
#undef __GOB_FUNCTION__
@@ -174,113 +183,119 @@ mn_shell_class_init (MNShellClass * c G_GNUC_UNUSED)
parent_class = g_type_class_ref (G_TYPE_OBJECT);
-#line 72 "mn-shell.gob"
+#line 78 "mn-shell.gob"
g_object_class->finalize = ___finalize;
-#line 180 "mn-shell.c"
+#line 189 "mn-shell.c"
g_object_class->dispose = ___dispose;
}
#undef __GOB_FUNCTION__
-#line 51 "mn-shell.gob"
+#line 52 "mn-shell.gob"
static void
mn_shell_init (MNShell * self G_GNUC_UNUSED)
-#line 187 "mn-shell.c"
+#line 196 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::init"
self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNShellPrivate);
-#line 46 "mn-shell.gob"
+#line 47 "mn-shell.gob"
self->mailboxes = mn_mailboxes_new();
-#line 193 "mn-shell.c"
+#line 202 "mn-shell.c"
{
-#line 52 "mn-shell.gob"
+#line 53 "mn-shell.gob"
g_return_if_fail(mn_shell == NULL);
mn_shell = self;
eel_add_weak_pointer(&mn_shell);
self_init_icon(self);
+
eel_gconf_notification_add(MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self);
+ eel_gconf_notification_add(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self);
g_object_connect(self->mailboxes,
"signal::messages-changed", self_mailboxes_messages_changed_h, self,
"swapped-signal::notify::must-poll", self_update_sensitivity, self,
+ "swapped-signal::list-changed", self_update_tooltip, self,
"swapped-signal::list-changed", self_update_icon, self,
+ "swapped-signal::has-new-changed", self_update_tooltip, self,
"swapped-signal::has-new-changed", self_update_icon, self,
- "swapped-signal::messages-changed", self_update_icon, self,
+ "swapped-signal::error-changed", self_update_tooltip, self,
"swapped-signal::error-changed", self_update_icon, self,
+ "swapped-signal::messages-changed", self_update_tooltip, self,
NULL);
mn_summary_popup_init();
-#line 215 "mn-shell.c"
+#line 229 "mn-shell.c"
}
}
#undef __GOB_FUNCTION__
-#line 72 "mn-shell.gob"
+#line 78 "mn-shell.gob"
static void
___2_mn_shell_finalize (GObject * object G_GNUC_UNUSED)
-#line 225 "mn-shell.c"
+#line 239 "mn-shell.c"
#define PARENT_HANDLER(___object) \
{ if(G_OBJECT_CLASS(parent_class)->finalize) \
(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
{
#define __GOB_FUNCTION__ "MN:Shell::finalize"
{
-#line 74 "mn-shell.gob"
+#line 80 "mn-shell.gob"
gtk_main_quit();
PARENT_HANDLER(object);
}}
-#line 237 "mn-shell.c"
+#line 251 "mn-shell.c"
#undef __GOB_FUNCTION__
#undef PARENT_HANDLER
-#line 79 "mn-shell.gob"
+#line 85 "mn-shell.gob"
static void
mn_shell_mailboxes_messages_changed_h (MNMailboxes * mailboxes, gboolean has_new, gpointer user_data)
-#line 244 "mn-shell.c"
+#line 258 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::mailboxes_messages_changed_h"
-#line 79 "mn-shell.gob"
+#line 85 "mn-shell.gob"
g_return_if_fail (mailboxes != NULL);
-#line 79 "mn-shell.gob"
+#line 85 "mn-shell.gob"
g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 79 "mn-shell.gob"
+#line 85 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 253 "mn-shell.c"
+#line 267 "mn-shell.c"
{
-#line 83 "mn-shell.gob"
+#line 89 "mn-shell.gob"
if (has_new)
{
gnome_triggers_do(_("You have new mail."), NULL, "mail-notification", "new-mail", NULL);
if (eel_gconf_get_boolean(MN_CONF_COMMANDS_NEW_MAIL_ENABLED))
- self_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
+ mn_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
}
}}
-#line 264 "mn-shell.c"
+#line 278 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 92 "mn-shell.gob"
+#line 98 "mn-shell.gob"
static void
mn_shell_init_icon (MNShell * self)
-#line 270 "mn-shell.c"
+#line 284 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::init_icon"
-#line 92 "mn-shell.gob"
+#line 98 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 92 "mn-shell.gob"
+#line 98 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 277 "mn-shell.c"
+#line 291 "mn-shell.c"
{
-#line 94 "mn-shell.gob"
+#line 100 "mn-shell.gob"
selfp->icon = MN_MAIL_ICON(mn_mail_icon_new());
g_object_connect(selfp->icon,
"signal::activate", self_icon_activate_h, self,
+ "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
"signal::activate-summary", self_icon_activate_summary_h, self,
"signal::activate-update", self_icon_activate_update_h, self,
"signal::activate-properties", self_icon_activate_properties_h, self,
@@ -293,20 +308,20 @@ mn_shell_init_icon (MNShell * self)
self_update_sensitivity(self);
self_update_icon(self);
}}
-#line 297 "mn-shell.c"
+#line 312 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 112 "mn-shell.gob"
+#line 119 "mn-shell.gob"
static void
mn_shell_notify_blink_on_errors_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 303 "mn-shell.c"
+#line 318 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::notify_blink_on_errors_cb"
-#line 112 "mn-shell.gob"
+#line 119 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 308 "mn-shell.c"
+#line 323 "mn-shell.c"
{
-#line 117 "mn-shell.gob"
+#line 124 "mn-shell.gob"
Self *self = user_data;
@@ -314,228 +329,349 @@ mn_shell_notify_blink_on_errors_cb (GConfClient * client, guint cnxn_id, GConfEn
self_update_icon(self);
GDK_THREADS_LEAVE();
}}
-#line 318 "mn-shell.c"
+#line 333 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 125 "mn-shell.gob"
+#line 132 "mn-shell.gob"
+static void
+mn_shell_notify_mail_reader_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 339 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::notify_mail_reader_cb"
+#line 132 "mn-shell.gob"
+ g_return_if_fail (user_data != NULL);
+#line 344 "mn-shell.c"
+{
+#line 137 "mn-shell.gob"
+
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+ self_update_sensitivity(self);
+ GDK_THREADS_LEAVE();
+ }}
+#line 354 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 145 "mn-shell.gob"
static void
mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
-#line 324 "mn-shell.c"
+#line 360 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_h"
-#line 125 "mn-shell.gob"
+#line 145 "mn-shell.gob"
g_return_if_fail (icon != NULL);
-#line 125 "mn-shell.gob"
+#line 145 "mn-shell.gob"
g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 125 "mn-shell.gob"
+#line 145 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 333 "mn-shell.c"
+#line 369 "mn-shell.c"
{
-#line 128 "mn-shell.gob"
+#line 148 "mn-shell.gob"
- mn_summary_dialog_display();
+ MNAction action;
+
+ action = mn_conf_get_enum_value(MN_TYPE_ACTION, MN_CONF_DOUBLE_CLICK_ACTION);
+
+ switch (action)
+ {
+ case MN_ACTION_DISPLAY_MAIL_SUMMARY:
+ mn_summary_dialog_display();
+ break;
+
+ case MN_ACTION_LAUNCH_MAIL_READER:
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ break;
+
+ default:
+ g_return_if_reached();
+ }
}}
-#line 339 "mn-shell.c"
+#line 392 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 132 "mn-shell.gob"
+#line 169 "mn-shell.gob"
static void
mn_shell_icon_activate_summary_h (MNMailIcon * icon, gpointer user_data)
-#line 345 "mn-shell.c"
+#line 398 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_summary_h"
-#line 132 "mn-shell.gob"
+#line 169 "mn-shell.gob"
g_return_if_fail (icon != NULL);
-#line 132 "mn-shell.gob"
+#line 169 "mn-shell.gob"
g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 132 "mn-shell.gob"
+#line 169 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 354 "mn-shell.c"
+#line 407 "mn-shell.c"
{
-#line 135 "mn-shell.gob"
+#line 172 "mn-shell.gob"
mn_summary_dialog_display();
}}
-#line 360 "mn-shell.c"
+#line 413 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 139 "mn-shell.gob"
+#line 176 "mn-shell.gob"
+static void
+mn_shell_icon_activate_mail_reader_h (MNMailIcon * icon, gpointer user_data)
+#line 419 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::icon_activate_mail_reader_h"
+#line 176 "mn-shell.gob"
+ g_return_if_fail (icon != NULL);
+#line 176 "mn-shell.gob"
+ g_return_if_fail (MN_IS_MAIL_ICON (icon));
+#line 176 "mn-shell.gob"
+ g_return_if_fail (user_data != NULL);
+#line 428 "mn-shell.c"
+{
+#line 179 "mn-shell.gob"
+
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ }}
+#line 435 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 184 "mn-shell.gob"
static void
mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data)
-#line 366 "mn-shell.c"
+#line 441 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_update_h"
-#line 139 "mn-shell.gob"
+#line 184 "mn-shell.gob"
g_return_if_fail (icon != NULL);
-#line 139 "mn-shell.gob"
+#line 184 "mn-shell.gob"
g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 139 "mn-shell.gob"
+#line 184 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 375 "mn-shell.c"
+#line 450 "mn-shell.c"
{
-#line 142 "mn-shell.gob"
+#line 187 "mn-shell.gob"
Self *self = user_data;
mn_mailboxes_check(self->mailboxes);
}}
-#line 382 "mn-shell.c"
+#line 457 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 147 "mn-shell.gob"
+#line 192 "mn-shell.gob"
static void
mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data)
-#line 388 "mn-shell.c"
+#line 463 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_properties_h"
-#line 147 "mn-shell.gob"
+#line 192 "mn-shell.gob"
g_return_if_fail (icon != NULL);
-#line 147 "mn-shell.gob"
+#line 192 "mn-shell.gob"
g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 147 "mn-shell.gob"
+#line 192 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 397 "mn-shell.c"
+#line 472 "mn-shell.c"
{
-#line 150 "mn-shell.gob"
+#line 195 "mn-shell.gob"
mn_properties_display();
}}
-#line 403 "mn-shell.c"
+#line 478 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 154 "mn-shell.gob"
+#line 199 "mn-shell.gob"
static void
mn_shell_icon_activate_help_h (MNMailIcon * icon, gpointer user_data)
-#line 409 "mn-shell.c"
+#line 484 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_help_h"
-#line 154 "mn-shell.gob"
+#line 199 "mn-shell.gob"
g_return_if_fail (icon != NULL);
-#line 154 "mn-shell.gob"
+#line 199 "mn-shell.gob"
g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 154 "mn-shell.gob"
+#line 199 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 418 "mn-shell.c"
+#line 493 "mn-shell.c"
{
-#line 157 "mn-shell.gob"
+#line 202 "mn-shell.gob"
mn_display_help(NULL, NULL);
}}
-#line 424 "mn-shell.c"
+#line 499 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 161 "mn-shell.gob"
+#line 206 "mn-shell.gob"
static void
mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data)
-#line 430 "mn-shell.c"
+#line 505 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_about_h"
-#line 161 "mn-shell.gob"
+#line 206 "mn-shell.gob"
g_return_if_fail (icon != NULL);
-#line 161 "mn-shell.gob"
+#line 206 "mn-shell.gob"
g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 161 "mn-shell.gob"
+#line 206 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 439 "mn-shell.c"
+#line 514 "mn-shell.c"
{
-#line 164 "mn-shell.gob"
+#line 209 "mn-shell.gob"
Self *self = user_data;
self_display_about(self);
}}
-#line 446 "mn-shell.c"
+#line 521 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 169 "mn-shell.gob"
+#line 214 "mn-shell.gob"
static void
mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_data)
-#line 452 "mn-shell.c"
+#line 527 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_activate_remove_h"
-#line 169 "mn-shell.gob"
+#line 214 "mn-shell.gob"
g_return_if_fail (icon != NULL);
-#line 169 "mn-shell.gob"
+#line 214 "mn-shell.gob"
g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 169 "mn-shell.gob"
+#line 214 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 461 "mn-shell.c"
+#line 536 "mn-shell.c"
{
-#line 172 "mn-shell.gob"
+#line 217 "mn-shell.gob"
Self *self = user_data;
g_object_unref(self);
}}
-#line 468 "mn-shell.c"
+#line 543 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 177 "mn-shell.gob"
+#line 222 "mn-shell.gob"
static void
mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
-#line 474 "mn-shell.c"
+#line 549 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
-#line 177 "mn-shell.gob"
+#line 222 "mn-shell.gob"
g_return_if_fail (object != NULL);
-#line 177 "mn-shell.gob"
+#line 222 "mn-shell.gob"
g_return_if_fail (GTK_IS_OBJECT (object));
-#line 177 "mn-shell.gob"
+#line 222 "mn-shell.gob"
g_return_if_fail (user_data != NULL);
-#line 483 "mn-shell.c"
+#line 558 "mn-shell.c"
{
-#line 180 "mn-shell.gob"
+#line 225 "mn-shell.gob"
Self *self = user_data;
/* The Notification Area applet has been terminated. Recreate the icon. */
self_init_icon(self);
}}
-#line 492 "mn-shell.c"
+#line 567 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 187 "mn-shell.gob"
+#line 232 "mn-shell.gob"
static void
mn_shell_update_sensitivity (MNShell * self)
-#line 498 "mn-shell.c"
+#line 573 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::update_sensitivity"
-#line 187 "mn-shell.gob"
+#line 232 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 187 "mn-shell.gob"
+#line 232 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 505 "mn-shell.c"
+#line 580 "mn-shell.c"
{
-#line 189 "mn-shell.gob"
+#line 234 "mn-shell.gob"
+ gboolean mail_reader_sensitive = FALSE;
+
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ {
+ char *mail_reader;
+
+ mail_reader = eel_gconf_get_string(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ if (mail_reader)
+ {
+ mail_reader_sensitive = TRUE;
+ g_free(mail_reader);
+ }
+ }
+
+ gtk_widget_set_sensitive(selfp->icon->mail_reader_item, mail_reader_sensitive);
gtk_widget_set_sensitive(selfp->icon->update_item, mn_mailboxes_get_must_poll(self->mailboxes));
}}
-#line 511 "mn-shell.c"
+#line 601 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 193 "mn-shell.gob"
+#line 253 "mn-shell.gob"
static void
mn_shell_update_icon (MNShell * self)
-#line 517 "mn-shell.c"
+#line 607 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::update_icon"
-#line 193 "mn-shell.gob"
+#line 253 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 193 "mn-shell.gob"
+#line 253 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 524 "mn-shell.c"
+#line 614 "mn-shell.c"
{
-#line 195 "mn-shell.gob"
+#line 255 "mn-shell.gob"
GSList *mailboxes;
- gboolean show = FALSE;
+ GSList *l;
+ int n_new = 0;
gboolean blink = FALSE;
- GString *tooltip = NULL;
+
+ mailboxes = mn_mailboxes_get(self->mailboxes);
+ MN_LIST_FOREACH(l, mailboxes)
+ {
+ MNMailbox *mailbox = l->data;
+
+ if (mn_mailbox_get_has_new(mailbox))
+ n_new++;
+ if (! blink && (mn_mailbox_get_error(mailbox) || MN_IS_UNSUPPORTED_MAILBOX(mailbox)))
+ blink = TRUE;
+ }
+
+ if (blink && ! eel_gconf_get_boolean(MN_CONF_BLINK_ON_ERRORS))
+ blink = FALSE;
+
+ if (selfp->n_new > 0 && n_new == 0 && eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READ_ENABLED))
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READ_COMMAND);
+ selfp->n_new = n_new;
+
+ if (n_new > 0 || blink)
+ {
+ mn_blinking_image_set_blinking(MN_BLINKING_IMAGE(selfp->icon->image), blink);
+ gtk_widget_show(GTK_WIDGET(selfp->icon));
+ }
+ else
+ gtk_widget_hide(GTK_WIDGET(selfp->icon));
+ }}
+#line 649 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 288 "mn-shell.gob"
+static void
+mn_shell_update_tooltip (MNShell * self)
+#line 655 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::update_tooltip"
+#line 288 "mn-shell.gob"
+ g_return_if_fail (self != NULL);
+#line 288 "mn-shell.gob"
+ g_return_if_fail (MN_IS_SHELL (self));
+#line 662 "mn-shell.c"
+{
+#line 290 "mn-shell.gob"
+
+ GtkWidget *vbox;
+ GSList *mailboxes;
+ GSList *messages;
+
+ vbox = gtk_vbox_new(FALSE, 18);
mailboxes = mn_mailboxes_get(self->mailboxes);
if (mailboxes)
{
GSList *l;
- int n_new = 0;
- int n_error = 0;
- int n_unsupported = 0;
GString *new_string;
GString *error_string;
GString *unsupported_string;
@@ -557,12 +693,10 @@ mn_shell_update_icon (MNShell * self)
{
int n_messages;
- n_new++;
-
if (*new_string->str)
g_string_append_c(new_string, '\n');
- g_string_append_printf(new_string, " %s", name);
-
+ g_string_append(new_string, name);
+
n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
if (n_messages > 0)
g_string_append_printf(new_string, " (%i)", n_messages);
@@ -570,133 +704,155 @@ mn_shell_update_icon (MNShell * self)
if (error)
{
- n_error++;
if (*error_string->str)
g_string_append_c(error_string, '\n');
- g_string_append_printf(error_string, " %s (%s)", name, error);
+ g_string_append_printf(error_string, "%s: %s", name, error);
}
if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
{
- n_unsupported++;
if (*unsupported_string->str)
g_string_append_c(unsupported_string, '\n');
- g_string_append_printf(unsupported_string, " %s (%s)", name, mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
+ g_string_append_printf(unsupported_string, "%s: %s", name, mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
}
}
- if (n_new > 0)
- show = TRUE;
- if ((n_error > 0 || n_unsupported > 0) && eel_gconf_get_boolean(MN_CONF_BLINK_ON_ERRORS))
- blink = TRUE;
-
- if (n_new > 0)
- g_string_prepend(new_string, ngettext("The following mailbox has new mail:\n",
- "The following mailboxes have new mail:\n",
- n_new));
- else
- g_string_prepend(new_string, _("You have no new mail."));
-
- if (n_error > 0)
- g_string_prepend(error_string, ngettext("The following mailbox reported an error:\n",
- "The following mailboxes reported an error:\n",
- n_error));
-
- if (n_unsupported > 0)
- g_string_prepend(unsupported_string, ngettext("The following mailbox is unsupported:\n",
- "The following mailboxes are unsupported:\n",
- n_unsupported));
-
- tooltip = g_string_new(new_string->str);
- if (n_error > 0)
- g_string_append_printf(tooltip, "\n\n%s", error_string->str);
- if (n_unsupported > 0)
- g_string_append_printf(tooltip, "\n\n%s", unsupported_string->str);
-
+ if (*new_string->str)
+ self_tooltip_text_section_new(GTK_VBOX(vbox), _("Mailboxes Having New Mail"), new_string->str);
+ if (*error_string->str)
+ self_tooltip_text_section_new(GTK_VBOX(vbox), _("Errors"), error_string->str);
+ if (*unsupported_string->str)
+ self_tooltip_text_section_new(GTK_VBOX(vbox), _("Unsupported Mailboxes"), unsupported_string->str);
+
g_string_free(new_string, TRUE);
g_string_free(error_string, TRUE);
g_string_free(unsupported_string, TRUE);
-
- if (selfp->n_new > 0 && n_new == 0 && eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READ_ENABLED))
- self_execute_command(MN_CONF_COMMANDS_MAIL_READ_COMMAND);
-
- selfp->n_new = n_new;
}
-
- if (show || blink)
+
+ messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
+ if (messages)
{
- mn_tooltips_set_tip(selfp->icon->tooltips, GTK_WIDGET(selfp->icon), tooltip->str);
- mn_blinking_image_set_blinking(MN_BLINKING_IMAGE(selfp->icon->image), blink);
- gtk_widget_show(GTK_WIDGET(selfp->icon));
+ GtkWidget *hbox;
+ GtkWidget *messages_vbox;
+
+ hbox = self_tooltip_section_new(GTK_VBOX(vbox), _("Mail Summary"));
+
+ messages_vbox = gtk_vbox_new(FALSE, 0);
+ mn_summary_update(GTK_VBOX(messages_vbox), messages, FALSE);
+ mn_g_object_slist_free(messages);
+
+ gtk_box_pack_start(GTK_BOX(hbox), messages_vbox, TRUE, TRUE, 0);
}
- else
- gtk_widget_hide(GTK_WIDGET(selfp->icon));
- if (tooltip)
- g_string_free(tooltip, TRUE);
+ gtk_widget_show_all(vbox);
+ mn_mail_icon_set_tip_widget(selfp->icon, vbox);
}}
-#line 639 "mn-shell.c"
+#line 751 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 308 "mn-shell.gob"
-static void
-mn_shell_execute_command (const char * conf_key)
-#line 645 "mn-shell.c"
-{
-#define __GOB_FUNCTION__ "MN:Shell::execute_command"
-#line 308 "mn-shell.gob"
- g_return_if_fail (conf_key != NULL);
-#line 650 "mn-shell.c"
-{
-#line 310 "mn-shell.gob"
+#line 377 "mn-shell.gob"
+static GtkWidget *
+mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title)
+#line 757 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::tooltip_section_new"
+#line 377 "mn-shell.gob"
+ g_return_val_if_fail (vbox != NULL, (GtkWidget * )0);
+#line 377 "mn-shell.gob"
+ g_return_val_if_fail (GTK_IS_VBOX (vbox), (GtkWidget * )0);
+#line 377 "mn-shell.gob"
+ g_return_val_if_fail (title != NULL, (GtkWidget * )0);
+#line 766 "mn-shell.c"
+{
+#line 380 "mn-shell.gob"
- char *command;
+ GtkWidget *child_vbox;
+ char *markup;
+ GtkWidget *label;
+ GtkWidget *hbox;
- command = eel_gconf_get_string(conf_key);
- if (command)
- {
- if (gnome_execute_shell(NULL, command) < 0)
- mn_error_dialog(NULL,
- NULL,
- NULL,
- _("A command error has occurred in Mail Notification"),
- _("Unable to execute \"%s\": %s."),
- command,
- g_strerror(errno));
+ child_vbox = gtk_vbox_new(FALSE, 6);
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>", title);
+ label = gtk_label_new(markup);
+ g_free(markup);
+
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+
+ gtk_box_pack_start(GTK_BOX(child_vbox), label, FALSE, FALSE, 0);
+
+ hbox = gtk_hbox_new(FALSE, 0);
+
+ label = gtk_label_new(" ");
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ gtk_box_pack_start(GTK_BOX(child_vbox), hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), child_vbox, TRUE, TRUE, 0);
+
+ return hbox;
+ }}
+#line 796 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 408 "mn-shell.gob"
+static void
+mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const char * text)
+#line 802 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::tooltip_text_section_new"
+#line 408 "mn-shell.gob"
+ g_return_if_fail (vbox != NULL);
+#line 408 "mn-shell.gob"
+ g_return_if_fail (GTK_IS_VBOX (vbox));
+#line 408 "mn-shell.gob"
+ g_return_if_fail (title != NULL);
+#line 408 "mn-shell.gob"
+ g_return_if_fail (text != NULL);
+#line 813 "mn-shell.c"
+{
+#line 412 "mn-shell.gob"
- g_free(command);
- }
+ GtkWidget *hbox;
+ GtkWidget *label;
+
+ hbox = self_tooltip_section_new(GTK_VBOX(vbox), title);
+
+ label = gtk_label_new(text);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
}}
-#line 671 "mn-shell.c"
+#line 827 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 329 "mn-shell.gob"
+#line 424 "mn-shell.gob"
MNShell *
mn_shell_new (void)
-#line 677 "mn-shell.c"
+#line 833 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::new"
{
-#line 331 "mn-shell.gob"
+#line 426 "mn-shell.gob"
- return MN_SHELL(GET_NEW);
+ return GET_NEW;
}}
-#line 685 "mn-shell.c"
+#line 841 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 335 "mn-shell.gob"
+#line 430 "mn-shell.gob"
void
mn_shell_display_about (MNShell * self)
-#line 691 "mn-shell.c"
+#line 847 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::display_about"
-#line 335 "mn-shell.gob"
+#line 430 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 335 "mn-shell.gob"
+#line 430 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 698 "mn-shell.c"
+#line 854 "mn-shell.c"
{
-#line 337 "mn-shell.gob"
+#line 432 "mn-shell.gob"
if (selfp->about)
{
@@ -708,22 +864,22 @@ mn_shell_display_about (MNShell * self)
eel_add_weak_pointer(&selfp->about);
gtk_widget_show(GTK_WIDGET(selfp->about));
}}
-#line 712 "mn-shell.c"
+#line 868 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 349 "mn-shell.gob"
+#line 444 "mn-shell.gob"
void
mn_shell_run_welcome (MNShell * self)
-#line 718 "mn-shell.c"
+#line 874 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::run_welcome"
-#line 349 "mn-shell.gob"
+#line 444 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 349 "mn-shell.gob"
+#line 444 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 725 "mn-shell.c"
+#line 881 "mn-shell.c"
{
-#line 351 "mn-shell.gob"
+#line 446 "mn-shell.gob"
GtkWidget *dialog;
int response;
@@ -737,24 +893,24 @@ mn_shell_run_welcome (MNShell * self)
if (response == GTK_RESPONSE_OK)
mn_properties_display();
}}
-#line 741 "mn-shell.c"
+#line 897 "mn-shell.c"
#undef __GOB_FUNCTION__
-#line 365 "mn-shell.gob"
+#line 460 "mn-shell.gob"
void
mn_shell_report (MNShell * self, char ** report)
-#line 747 "mn-shell.c"
+#line 903 "mn-shell.c"
{
#define __GOB_FUNCTION__ "MN:Shell::report"
-#line 365 "mn-shell.gob"
+#line 460 "mn-shell.gob"
g_return_if_fail (self != NULL);
-#line 365 "mn-shell.gob"
+#line 460 "mn-shell.gob"
g_return_if_fail (MN_IS_SHELL (self));
-#line 365 "mn-shell.gob"
+#line 460 "mn-shell.gob"
g_return_if_fail (report != NULL);
-#line 756 "mn-shell.c"
+#line 912 "mn-shell.c"
{
-#line 367 "mn-shell.gob"
+#line 462 "mn-shell.gob"
GString *string;
GSList *l;
@@ -780,5 +936,5 @@ mn_shell_report (MNShell * self, char ** report)
*report = string->str;
g_string_free(string, FALSE);
}}
-#line 784 "mn-shell.c"
+#line 940 "mn-shell.c"
#undef __GOB_FUNCTION__
diff --git a/src/mn-shell.gob b/src/mn-shell.gob
@@ -35,6 +35,7 @@ requires 2.0.10
#include "mn-mailboxes.h"
#include "mn-unsupported-mailbox.h"
#include "mn-about-dialog.h"
+#include "mn-summary.h"
#include "mn-summary-popup.h"
#include "mn-summary-dialog.h"
@@ -55,15 +56,20 @@ class MN:Shell from G:Object
eel_add_weak_pointer(&mn_shell);
self_init_icon(self);
+
eel_gconf_notification_add(MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self);
+ eel_gconf_notification_add(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self);
g_object_connect(self->mailboxes,
"signal::messages-changed", self_mailboxes_messages_changed_h, self,
"swapped-signal::notify::must-poll", self_update_sensitivity, self,
+ "swapped-signal::list-changed", self_update_tooltip, self,
"swapped-signal::list-changed", self_update_icon, self,
+ "swapped-signal::has-new-changed", self_update_tooltip, self,
"swapped-signal::has-new-changed", self_update_icon, self,
- "swapped-signal::messages-changed", self_update_icon, self,
+ "swapped-signal::error-changed", self_update_tooltip, self,
"swapped-signal::error-changed", self_update_icon, self,
+ "swapped-signal::messages-changed", self_update_tooltip, self,
NULL);
mn_summary_popup_init();
@@ -85,7 +91,7 @@ class MN:Shell from G:Object
{
gnome_triggers_do(_("You have new mail."), NULL, "mail-notification", "new-mail", NULL);
if (eel_gconf_get_boolean(MN_CONF_COMMANDS_NEW_MAIL_ENABLED))
- self_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
+ mn_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
}
}
@@ -96,6 +102,7 @@ class MN:Shell from G:Object
g_object_connect(selfp->icon,
"signal::activate", self_icon_activate_h, self,
+ "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
"signal::activate-summary", self_icon_activate_summary_h, self,
"signal::activate-update", self_icon_activate_update_h, self,
"signal::activate-properties", self_icon_activate_properties_h, self,
@@ -123,10 +130,40 @@ class MN:Shell from G:Object
}
private void
+ notify_mail_reader_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data (check null))
+ {
+ Self *self = user_data;
+
+ GDK_THREADS_ENTER();
+ self_update_sensitivity(self);
+ GDK_THREADS_LEAVE();
+ }
+
+ private void
icon_activate_h (MN:Mail:Icon *icon (check null type),
gpointer user_data (check null))
{
- mn_summary_dialog_display();
+ MNAction action;
+
+ action = mn_conf_get_enum_value(MN_TYPE_ACTION, MN_CONF_DOUBLE_CLICK_ACTION);
+
+ switch (action)
+ {
+ case MN_ACTION_DISPLAY_MAIL_SUMMARY:
+ mn_summary_dialog_display();
+ break;
+
+ case MN_ACTION_LAUNCH_MAIL_READER:
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ break;
+
+ default:
+ g_return_if_reached();
+ }
}
private void
@@ -137,6 +174,14 @@ class MN:Shell from G:Object
}
private void
+ icon_activate_mail_reader_h (MN:Mail:Icon *icon (check null type),
+ gpointer user_data (check null))
+ {
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ }
+
+ private void
icon_activate_update_h (MN:Mail:Icon *icon (check null type),
gpointer user_data (check null))
{
@@ -187,6 +232,21 @@ class MN:Shell from G:Object
private void
update_sensitivity (self)
{
+ gboolean mail_reader_sensitive = FALSE;
+
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ {
+ char *mail_reader;
+
+ mail_reader = eel_gconf_get_string(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ if (mail_reader)
+ {
+ mail_reader_sensitive = TRUE;
+ g_free(mail_reader);
+ }
+ }
+
+ gtk_widget_set_sensitive(selfp->icon->mail_reader_item, mail_reader_sensitive);
gtk_widget_set_sensitive(selfp->icon->update_item, mn_mailboxes_get_must_poll(self->mailboxes));
}
@@ -194,17 +254,50 @@ class MN:Shell from G:Object
update_icon (self)
{
GSList *mailboxes;
- gboolean show = FALSE;
+ GSList *l;
+ int n_new = 0;
gboolean blink = FALSE;
- GString *tooltip = NULL;
+
+ mailboxes = mn_mailboxes_get(self->mailboxes);
+ MN_LIST_FOREACH(l, mailboxes)
+ {
+ MNMailbox *mailbox = l->data;
+
+ if (mn_mailbox_get_has_new(mailbox))
+ n_new++;
+ if (! blink && (mn_mailbox_get_error(mailbox) || MN_IS_UNSUPPORTED_MAILBOX(mailbox)))
+ blink = TRUE;
+ }
+
+ if (blink && ! eel_gconf_get_boolean(MN_CONF_BLINK_ON_ERRORS))
+ blink = FALSE;
+
+ if (selfp->n_new > 0 && n_new == 0 && eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READ_ENABLED))
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READ_COMMAND);
+ selfp->n_new = n_new;
+
+ if (n_new > 0 || blink)
+ {
+ mn_blinking_image_set_blinking(MN_BLINKING_IMAGE(selfp->icon->image), blink);
+ gtk_widget_show(GTK_WIDGET(selfp->icon));
+ }
+ else
+ gtk_widget_hide(GTK_WIDGET(selfp->icon));
+ }
+
+ private void
+ update_tooltip (self)
+ {
+ GtkWidget *vbox;
+ GSList *mailboxes;
+ GSList *messages;
+
+ vbox = gtk_vbox_new(FALSE, 18);
mailboxes = mn_mailboxes_get(self->mailboxes);
if (mailboxes)
{
GSList *l;
- int n_new = 0;
- int n_error = 0;
- int n_unsupported = 0;
GString *new_string;
GString *error_string;
GString *unsupported_string;
@@ -226,12 +319,10 @@ class MN:Shell from G:Object
{
int n_messages;
- n_new++;
-
if (*new_string->str)
g_string_append_c(new_string, '\n');
- g_string_append_printf(new_string, " %s", name);
-
+ g_string_append(new_string, name);
+
n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
if (n_messages > 0)
g_string_append_printf(new_string, " (%i)", n_messages);
@@ -239,97 +330,101 @@ class MN:Shell from G:Object
if (error)
{
- n_error++;
if (*error_string->str)
g_string_append_c(error_string, '\n');
- g_string_append_printf(error_string, " %s (%s)", name, error);
+ g_string_append_printf(error_string, "%s: %s", name, error);
}
if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
{
- n_unsupported++;
if (*unsupported_string->str)
g_string_append_c(unsupported_string, '\n');
- g_string_append_printf(unsupported_string, " %s (%s)", name, mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
+ g_string_append_printf(unsupported_string, "%s: %s", name, mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
}
}
- if (n_new > 0)
- show = TRUE;
- if ((n_error > 0 || n_unsupported > 0) && eel_gconf_get_boolean(MN_CONF_BLINK_ON_ERRORS))
- blink = TRUE;
-
- if (n_new > 0)
- g_string_prepend(new_string, ngettext("The following mailbox has new mail:\n",
- "The following mailboxes have new mail:\n",
- n_new));
- else
- g_string_prepend(new_string, _("You have no new mail."));
-
- if (n_error > 0)
- g_string_prepend(error_string, ngettext("The following mailbox reported an error:\n",
- "The following mailboxes reported an error:\n",
- n_error));
-
- if (n_unsupported > 0)
- g_string_prepend(unsupported_string, ngettext("The following mailbox is unsupported:\n",
- "The following mailboxes are unsupported:\n",
- n_unsupported));
-
- tooltip = g_string_new(new_string->str);
- if (n_error > 0)
- g_string_append_printf(tooltip, "\n\n%s", error_string->str);
- if (n_unsupported > 0)
- g_string_append_printf(tooltip, "\n\n%s", unsupported_string->str);
-
+ if (*new_string->str)
+ self_tooltip_text_section_new(GTK_VBOX(vbox), _("Mailboxes Having New Mail"), new_string->str);
+ if (*error_string->str)
+ self_tooltip_text_section_new(GTK_VBOX(vbox), _("Errors"), error_string->str);
+ if (*unsupported_string->str)
+ self_tooltip_text_section_new(GTK_VBOX(vbox), _("Unsupported Mailboxes"), unsupported_string->str);
+
g_string_free(new_string, TRUE);
g_string_free(error_string, TRUE);
g_string_free(unsupported_string, TRUE);
-
- if (selfp->n_new > 0 && n_new == 0 && eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READ_ENABLED))
- self_execute_command(MN_CONF_COMMANDS_MAIL_READ_COMMAND);
-
- selfp->n_new = n_new;
}
-
- if (show || blink)
+
+ messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
+ if (messages)
{
- mn_tooltips_set_tip(selfp->icon->tooltips, GTK_WIDGET(selfp->icon), tooltip->str);
- mn_blinking_image_set_blinking(MN_BLINKING_IMAGE(selfp->icon->image), blink);
- gtk_widget_show(GTK_WIDGET(selfp->icon));
+ GtkWidget *hbox;
+ GtkWidget *messages_vbox;
+
+ hbox = self_tooltip_section_new(GTK_VBOX(vbox), _("Mail Summary"));
+
+ messages_vbox = gtk_vbox_new(FALSE, 0);
+ mn_summary_update(GTK_VBOX(messages_vbox), messages, FALSE);
+ mn_g_object_slist_free(messages);
+
+ gtk_box_pack_start(GTK_BOX(hbox), messages_vbox, TRUE, TRUE, 0);
}
- else
- gtk_widget_hide(GTK_WIDGET(selfp->icon));
- if (tooltip)
- g_string_free(tooltip, TRUE);
+ gtk_widget_show_all(vbox);
+ mn_mail_icon_set_tip_widget(selfp->icon, vbox);
}
+
+ private GtkWidget *
+ tooltip_section_new (Gtk:VBox *vbox (check null type),
+ const char *title (check null))
+ {
+ GtkWidget *child_vbox;
+ char *markup;
+ GtkWidget *label;
+ GtkWidget *hbox;
+
+ child_vbox = gtk_vbox_new(FALSE, 6);
+
+ markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>", title);
+ label = gtk_label_new(markup);
+ g_free(markup);
+
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+ gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+
+ gtk_box_pack_start(GTK_BOX(child_vbox), label, FALSE, FALSE, 0);
+ hbox = gtk_hbox_new(FALSE, 0);
+
+ label = gtk_label_new(" ");
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+
+ gtk_box_pack_start(GTK_BOX(child_vbox), hbox, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), child_vbox, TRUE, TRUE, 0);
+
+ return hbox;
+ }
+
private void
- execute_command (const char *conf_key (check null))
+ tooltip_text_section_new (Gtk:VBox *vbox (check null type),
+ const char *title (check null),
+ const char *text (check null))
{
- char *command;
+ GtkWidget *hbox;
+ GtkWidget *label;
- command = eel_gconf_get_string(conf_key);
- if (command)
- {
- if (gnome_execute_shell(NULL, command) < 0)
- mn_error_dialog(NULL,
- NULL,
- NULL,
- _("A command error has occurred in Mail Notification"),
- _("Unable to execute \"%s\": %s."),
- command,
- g_strerror(errno));
-
- g_free(command);
- }
+ hbox = self_tooltip_section_new(GTK_VBOX(vbox), title);
+
+ label = gtk_label_new(text);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+ gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
}
public MNShell *
new (void)
{
- return MN_SHELL(GET_NEW);
+ return GET_NEW;
}
public void
diff --git a/src/mn-shell.h b/src/mn-shell.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-summary-dialog.c b/src/mn-summary-dialog.c
@@ -32,6 +32,7 @@ typedef struct
GtkWidget *dialog;
GtkWidget *vbox;
+ GtkWidget *mail_reader_button;
GtkWidget *update_button;
} SummaryDialog;
@@ -41,6 +42,11 @@ static SummaryDialog summary = { NULL };
/*** functions ***************************************************************/
+static void mn_summary_dialog_notify_mail_reader_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data);
+
static void mn_summary_dialog_update (void);
static void mn_summary_dialog_update_sensitivity (void);
@@ -63,6 +69,7 @@ mn_summary_dialog_display (void)
mn_create_interface("summary-dialog",
"dialog", &summary.dialog,
"vbox", &summary.vbox,
+ "mail_reader_button", &summary.mail_reader_button,
"update_button", &summary.update_button,
NULL);
@@ -73,6 +80,10 @@ mn_summary_dialog_display (void)
mn_summary_dialog_update();
mn_summary_dialog_update_sensitivity();
+ mn_conf_notification_add(summary.dialog,
+ MN_CONF_COMMANDS_MAIL_READER_NAMESPACE,
+ mn_summary_dialog_notify_mail_reader_cb,
+ NULL);
mn_g_object_connect(summary.dialog,
mn_shell->mailboxes,
"signal::notify::must-poll", mn_summary_dialog_update_sensitivity, NULL,
@@ -82,6 +93,17 @@ mn_summary_dialog_display (void)
gtk_widget_show(summary.dialog);
}
+static void
+mn_summary_dialog_notify_mail_reader_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer user_data)
+{
+ GDK_THREADS_ENTER();
+ mn_summary_dialog_update_sensitivity();
+ GDK_THREADS_LEAVE();
+}
+
gboolean
mn_summary_dialog_is_displayed (void)
{
@@ -101,6 +123,21 @@ mn_summary_dialog_update (void)
static void
mn_summary_dialog_update_sensitivity (void)
{
+ gboolean mail_reader_sensitive = FALSE;
+
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ {
+ char *mail_reader;
+
+ mail_reader = eel_gconf_get_string(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ if (mail_reader)
+ {
+ mail_reader_sensitive = TRUE;
+ g_free(mail_reader);
+ }
+ }
+
+ gtk_widget_set_sensitive(summary.mail_reader_button, mail_reader_sensitive);
gtk_widget_set_sensitive(summary.update_button, mn_mailboxes_get_must_poll(mn_shell->mailboxes));
}
@@ -117,7 +154,12 @@ mn_summary_dialog_response_h (GtkDialog *dialog,
mn_display_help(GTK_WINDOW(dialog), "mail-summary");
break;
- case 1: /* update */
+ case 1: /* launch mail reader */
+ if (eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READER_ENABLED))
+ mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+ break;
+
+ case 2: /* update */
mn_mailboxes_check(mn_shell->mailboxes);
break;
diff --git a/src/mn-summary-popup.c b/src/mn-summary-popup.c
@@ -32,11 +32,13 @@
typedef struct
{
gboolean enabled;
-
GtkWidget *popup;
GtkWidget *image;
GtkWidget *vbox;
unsigned int timeout_id;
+
+ GSList *displayed_messages;
+ GSList *previous_messages;
} SummaryPopup;
/*** variables ***************************************************************/
@@ -205,10 +207,39 @@ mn_summary_popup_update (gboolean has_new)
if (! mn_summary_dialog_is_displayed() && (displayed || has_new))
{
- GSList *messages;
+ GSList *l;
+
+ mn_g_object_slist_free(popup.displayed_messages);
+ popup.displayed_messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
- messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
- if (messages)
+ loop1:
+ MN_LIST_FOREACH(l, popup.previous_messages)
+ {
+ MNMessage *message = l->data;
+
+ if (! mn_message_slist_find_by_id(popup.displayed_messages, message))
+ {
+ popup.previous_messages = mn_g_object_slist_delete_link(popup.previous_messages, l);
+ goto loop1;
+ }
+ }
+
+ if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT))
+ {
+ loop2:
+ MN_LIST_FOREACH(l, popup.displayed_messages)
+ {
+ MNMessage *message = l->data;
+
+ if (mn_message_slist_find_by_id(popup.previous_messages, message))
+ {
+ popup.displayed_messages = mn_g_object_slist_delete_link(popup.displayed_messages, l);
+ goto loop2;
+ }
+ }
+ }
+
+ if (popup.displayed_messages)
{
mn_create_interface("summary-popup",
"popup", &popup.popup,
@@ -247,9 +278,7 @@ mn_summary_popup_update (gboolean has_new)
gtk_image_set_from_stock(GTK_IMAGE(popup.image), MN_STOCK_MAIL_SUMMARY, -1);
- mn_summary_update(GTK_VBOX(popup.vbox), messages, FALSE);
- mn_g_object_slist_free(messages);
-
+ mn_summary_update(GTK_VBOX(popup.vbox), popup.displayed_messages, FALSE);
mn_summary_popup_set_geometry();
gtk_widget_show(popup.popup);
@@ -267,15 +296,12 @@ mn_summary_popup_update (gboolean has_new)
static void
mn_summary_popup_set_geometry (void)
{
- GEnumValue *enum_value;
MNPosition position;
char *geometry;
g_return_if_fail(popup.popup != NULL);
- enum_value = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
- position = enum_value ? enum_value->value : MN_POSITION_TOP_LEFT;
-
+ position = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
geometry = g_strdup_printf("%c%i%c%i",
(position == MN_POSITION_TOP_RIGHT || position == MN_POSITION_BOTTOM_RIGHT) ? '-' : '+',
eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET),
@@ -292,6 +318,9 @@ mn_summary_popup_destroy (void)
{
mn_summary_popup_remove_timeout();
gtk_widget_destroy(popup.popup);
+
+ popup.previous_messages = g_slist_concat(popup.previous_messages, popup.displayed_messages);
+ popup.displayed_messages = NULL;
}
}
@@ -326,8 +355,7 @@ static gboolean
mn_summary_popup_timeout_cb (gpointer data)
{
GDK_THREADS_ENTER();
- if (popup.popup)
- gtk_widget_destroy(popup.popup);
+ mn_summary_popup_destroy();
GDK_THREADS_LEAVE();
return FALSE; /* remove timeout */
diff --git a/src/mn-summary.c b/src/mn-summary.c
@@ -18,35 +18,39 @@
#include <gtk/gtk.h>
#include "mn-util.h"
-#include "mn-message-label.h"
+#include "mn-message-box.h"
void
mn_summary_update (GtkVBox *vbox, GSList *messages, gboolean selectable)
{
+ GtkSizeGroup *size_group;
GSList *l;
g_return_if_fail(GTK_IS_VBOX(vbox));
gtk_container_foreach(GTK_CONTAINER(vbox), (GtkCallback) gtk_widget_destroy, NULL);
+ size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+
MN_LIST_FOREACH(l, messages)
{
MNMessage *message = l->data;
- GtkWidget *label;
+ GtkWidget *message_box;
- label = mn_message_label_new(message);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
- if (selectable)
- gtk_label_set_selectable(GTK_LABEL(label), TRUE);
+ message_box = mn_message_box_new(size_group, message, selectable);
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(vbox), message_box, FALSE, FALSE, 0);
+ gtk_widget_show(message_box);
if (l->next)
{ /* spacing between messages */
+ GtkWidget *label;
+
label = gtk_label_new(NULL);
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
gtk_widget_show(label);
}
}
+
+ g_object_unref(size_group);
}
diff --git a/src/mn-sylpheed-mailbox-private.h b/src/mn-sylpheed-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_SYLPHEED_MAILBOX_PRIVATE_H__
#define __MN_SYLPHEED_MAILBOX_PRIVATE_H__
diff --git a/src/mn-sylpheed-mailbox.c b/src/mn-sylpheed-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:21 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-sylpheed-mailbox.h b/src/mn-sylpheed-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-system-mailbox-properties-private.h b/src/mn-system-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_SYSTEM_MAILBOX_PROPERTIES_PRIVATE_H__
#define __MN_SYSTEM_MAILBOX_PROPERTIES_PRIVATE_H__
diff --git a/src/mn-system-mailbox-properties.c b/src/mn-system-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-system-mailbox-properties.h b/src/mn-system-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-tooltips-private.h b/src/mn-tooltips-private.h
@@ -0,0 +1,43 @@
+/* Generated by GOB (v2.0.11) (do not edit directly) */
+
+#ifndef __MN_TOOLTIPS_PRIVATE_H__
+#define __MN_TOOLTIPS_PRIVATE_H__
+
+#include "mn-tooltips.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 29 "mn-tooltips.gob"
+
+ typedef struct
+ {
+ MNTooltips *self;
+ GtkWidget *widget;
+ GtkWidget *tip_widget;
+ } TooltipsData;
+
+#line 23 "mn-tooltips-private.h"
+struct _MNTooltipsPrivate {
+#line 74 "mn-tooltips.gob"
+ GtkWidget * window;
+#line 75 "mn-tooltips.gob"
+ TooltipsData * active_data;
+#line 76 "mn-tooltips.gob"
+ GSList * data_list;
+#line 78 "mn-tooltips.gob"
+ gboolean use_sticky_delay;
+#line 79 "mn-tooltips.gob"
+ GTimeVal last_popdown;
+#line 80 "mn-tooltips.gob"
+ unsigned int timeout_id;
+#line 37 "mn-tooltips-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-tooltips.c b/src/mn-tooltips.c
@@ -0,0 +1,1079 @@
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:22 2004
+ (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 11
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-tooltips.h"
+
+#include "mn-tooltips-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 38 "mn-tooltips.gob"
+
+#include "mn-util.h"
+#include <eel/eel.h>
+
+#define TOOLTIPS_DATA "mn-tooltips-data"
+#define TOOLTIPS_INFO "mn-tooltips-info"
+#define TOOLTIPS_KEYBOARD_MODE "gtk-tooltips-keyboard-mode" /* compatible with GtkTooltips */
+
+#define DELAY 500 /* Default delay in ms */
+#define STICKY_DELAY 0 /* Delay before popping up next tip
+ * if we're sticky
+ */
+#define STICKY_REVERT_DELAY 1000 /* Delay before sticky tooltips revert
+ * to normal
+ */
+
+ /* The private flags that are used in the private_flags member of GtkWidget.
+ */
+ typedef enum
+ {
+ PRIVATE_GTK_LEAVE_PENDING = 1 << 4
+ } GtkPrivateFlags;
+
+ /* Macros for extracting a widgets private_flags from GtkWidget.
+ */
+#define GTK_PRIVATE_FLAGS(wid) (GTK_WIDGET (wid)->private_flags)
+
+ /* Macros for setting and clearing private widget flags.
+ * we use a preprocessor string concatenation here for a clear
+ * flags/private_flags distinction at the cost of single flag operations.
+ */
+#define GTK_PRIVATE_SET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
+
+#line 61 "mn-tooltips.c"
+/* self casting macros */
+#define SELF(x) MN_TOOLTIPS(x)
+#define SELF_CONST(x) MN_TOOLTIPS_CONST(x)
+#define IS_SELF(x) MN_IS_TOOLTIPS(x)
+#define TYPE_SELF MN_TYPE_TOOLTIPS
+#define SELF_CLASS(x) MN_TOOLTIPS_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_TOOLTIPS_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNTooltips Self;
+typedef MNTooltipsClass SelfClass;
+
+/* here are local prototypes */
+static void mn_tooltips_init (MNTooltips * o) G_GNUC_UNUSED;
+static void mn_tooltips_class_init (MNTooltipsClass * c) G_GNUC_UNUSED;
+static void ___1_mn_tooltips_finalize (GObject * object) G_GNUC_UNUSED;
+static void mn_tooltips_destroy_data (TooltipsData * data) G_GNUC_UNUSED;
+static void mn_tooltips_display_closed_h (GdkDisplay * display, gboolean is_error, gpointer user_data) G_GNUC_UNUSED;
+static void mn_tooltips_disconnect_display_closed (MNTooltips * self) G_GNUC_UNUSED;
+static void mn_tooltips_unset_window (MNTooltips * self) G_GNUC_UNUSED;
+static void mn_tooltips_update_screen (MNTooltips * self, gboolean new_window) G_GNUC_UNUSED;
+static void mn_tooltips_force_window (MNTooltips * self) G_GNUC_UNUSED;
+static TooltipsData * mn_tooltips_get_data (GtkWidget * widget) G_GNUC_UNUSED;
+static gboolean mn_tooltips_paint_window (MNTooltips * self) G_GNUC_UNUSED;
+static void mn_tooltips_draw_tips (MNTooltips * self) G_GNUC_UNUSED;
+static gboolean mn_tooltips_timeout_cb (gpointer data) G_GNUC_UNUSED;
+static void mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_tooltips_show_tip (GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_tooltips_hide_tip (GtkWidget * widget) G_GNUC_UNUSED;
+static gboolean mn_tooltips_recently_shown (MNTooltips * self) G_GNUC_UNUSED;
+static gboolean mn_tooltips_get_keyboard_mode (GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_tooltips_start_keyboard_mode (GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_tooltips_stop_keyboard_mode (GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_tooltips_start_delay (MNTooltips * self, GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_tooltips_event_after_h (GtkWidget * widget, GdkEvent * event, gpointer user_data) G_GNUC_UNUSED;
+static void mn_tooltips_widget_unmap (GtkWidget * widget, gpointer user_data) G_GNUC_UNUSED;
+static void mn_tooltips_widget_remove (GtkWidget * widget, gpointer user_data) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static GObjectClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_destroy_data mn_tooltips_destroy_data
+#define self_display_closed_h mn_tooltips_display_closed_h
+#define self_disconnect_display_closed mn_tooltips_disconnect_display_closed
+#define self_unset_window mn_tooltips_unset_window
+#define self_update_screen mn_tooltips_update_screen
+#define self_force_window mn_tooltips_force_window
+#define self_get_data mn_tooltips_get_data
+#define self_set_tip_widget mn_tooltips_set_tip_widget
+#define self_paint_window mn_tooltips_paint_window
+#define self_draw_tips mn_tooltips_draw_tips
+#define self_timeout_cb mn_tooltips_timeout_cb
+#define self_set_active_widget mn_tooltips_set_active_widget
+#define self_show_tip mn_tooltips_show_tip
+#define self_hide_tip mn_tooltips_hide_tip
+#define self_recently_shown mn_tooltips_recently_shown
+#define self_get_keyboard_mode mn_tooltips_get_keyboard_mode
+#define self_start_keyboard_mode mn_tooltips_start_keyboard_mode
+#define self_stop_keyboard_mode mn_tooltips_stop_keyboard_mode
+#define self_start_delay mn_tooltips_start_delay
+#define self_event_after_h mn_tooltips_event_after_h
+#define self_widget_unmap mn_tooltips_widget_unmap
+#define self_widget_remove mn_tooltips_widget_remove
+#define self_toggle_keyboard_mode mn_tooltips_toggle_keyboard_mode
+#define self_new mn_tooltips_new
+GType
+mn_tooltips_get_type (void)
+{
+ static GType type = 0;
+
+ if ___GOB_UNLIKELY(type == 0) {
+ static const GTypeInfo info = {
+ sizeof (MNTooltipsClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) mn_tooltips_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL /* class_data */,
+ sizeof (MNTooltips),
+ 0 /* n_preallocs */,
+ (GInstanceInitFunc) mn_tooltips_init,
+ NULL
+ };
+
+ type = g_type_register_static (G_TYPE_OBJECT, "MNTooltips", &info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNTooltips *)g_object_new(mn_tooltips_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNTooltips * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNTooltips *
+GET_NEW_VARG (const char *first, ...)
+{
+ MNTooltips *ret;
+ va_list ap;
+ va_start (ap, first);
+ ret = (MNTooltips *)g_object_new_valist (mn_tooltips_get_type (), first, ap);
+ va_end (ap);
+ return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::finalize"
+ MNTooltips *self G_GNUC_UNUSED = MN_TOOLTIPS (obj_self);
+ gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 82 "mn-tooltips.gob"
+ ___1_mn_tooltips_finalize(obj_self);
+#line 180 "mn-tooltips.c"
+}
+#undef __GOB_FUNCTION__
+
+static void
+mn_tooltips_init (MNTooltips * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::init"
+ o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNTooltipsPrivate);
+}
+#undef __GOB_FUNCTION__
+static void
+mn_tooltips_class_init (MNTooltipsClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::class_init"
+ GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+ g_type_class_add_private(c,sizeof(MNTooltipsPrivate));
+
+ parent_class = g_type_class_ref (G_TYPE_OBJECT);
+
+#line 82 "mn-tooltips.gob"
+ g_object_class->finalize = ___finalize;
+#line 203 "mn-tooltips.c"
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 82 "mn-tooltips.gob"
+static void
+___1_mn_tooltips_finalize (GObject * object G_GNUC_UNUSED)
+#line 212 "mn-tooltips.c"
+#define PARENT_HANDLER(___object) \
+ { if(G_OBJECT_CLASS(parent_class)->finalize) \
+ (* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::finalize"
+#line 82 "mn-tooltips.gob"
+ g_return_if_fail (object != NULL);
+#line 82 "mn-tooltips.gob"
+ g_return_if_fail (G_IS_OBJECT (object));
+#line 222 "mn-tooltips.c"
+{
+#line 84 "mn-tooltips.gob"
+
+ Self *self = SELF(object);
+ GSList *l;
+
+ if (selfp->timeout_id)
+ g_source_remove(selfp->timeout_id);
+
+ MN_LIST_FOREACH(l, selfp->data_list)
+ {
+ TooltipsData *data = l->data;
+ self_widget_remove(data->widget, data);
+ }
+
+ self_unset_window(self);
+
+ PARENT_HANDLER(object);
+ }}
+#line 242 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 102 "mn-tooltips.gob"
+static void
+mn_tooltips_destroy_data (TooltipsData * data)
+#line 249 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::destroy_data"
+{
+#line 104 "mn-tooltips.gob"
+
+ g_object_disconnect(data->widget,
+ "any-signal", self_event_after_h, data,
+ "any-signal", self_widget_unmap, data,
+ "any-signal", self_widget_remove, data,
+ NULL);
+
+ g_object_set_data(G_OBJECT(data->widget), TOOLTIPS_DATA, NULL);
+ g_object_unref(data->widget);
+ g_object_unref(data->tip_widget);
+ g_free(data);
+ }}
+#line 266 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 117 "mn-tooltips.gob"
+static void
+mn_tooltips_display_closed_h (GdkDisplay * display, gboolean is_error, gpointer user_data)
+#line 272 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::display_closed_h"
+#line 117 "mn-tooltips.gob"
+ g_return_if_fail (display != NULL);
+#line 117 "mn-tooltips.gob"
+ g_return_if_fail (GDK_IS_DISPLAY (display));
+#line 279 "mn-tooltips.c"
+{
+#line 121 "mn-tooltips.gob"
+
+ Self *self = SELF(user_data);
+ self_unset_window(self);
+ }}
+#line 286 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 126 "mn-tooltips.gob"
+static void
+mn_tooltips_disconnect_display_closed (MNTooltips * self)
+#line 292 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::disconnect_display_closed"
+#line 126 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 126 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 299 "mn-tooltips.c"
+{
+#line 128 "mn-tooltips.gob"
+
+ g_signal_handlers_disconnect_by_func(gtk_widget_get_display(selfp->window),
+ self_display_closed_h,
+ self);
+ }}
+#line 307 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 134 "mn-tooltips.gob"
+static void
+mn_tooltips_unset_window (MNTooltips * self)
+#line 313 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::unset_window"
+#line 134 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 134 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 320 "mn-tooltips.c"
+{
+#line 136 "mn-tooltips.gob"
+
+ if (selfp->window)
+ {
+ self_disconnect_display_closed(self);
+ gtk_widget_destroy(selfp->window);
+ }
+ }}
+#line 330 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 144 "mn-tooltips.gob"
+static void
+mn_tooltips_update_screen (MNTooltips * self, gboolean new_window)
+#line 336 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::update_screen"
+#line 144 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 144 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 343 "mn-tooltips.c"
+{
+#line 146 "mn-tooltips.gob"
+
+ gboolean screen_changed = FALSE;
+
+ if (selfp->active_data && selfp->active_data->widget)
+ {
+ GdkScreen *screen = gtk_widget_get_screen(selfp->active_data->widget);
+
+ screen_changed = (screen != gtk_widget_get_screen(selfp->window));
+
+ if (screen_changed)
+ {
+ if (! new_window)
+ self_disconnect_display_closed(self);
+
+ gtk_window_set_screen(GTK_WINDOW(selfp->window), screen);
+ }
+ }
+
+ if (screen_changed || new_window)
+ g_signal_connect(gtk_widget_get_display(selfp->window),
+ "closed",
+ G_CALLBACK(self_display_closed_h),
+ self);
+ }}
+#line 370 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 171 "mn-tooltips.gob"
+static void
+mn_tooltips_force_window (MNTooltips * self)
+#line 376 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::force_window"
+#line 171 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 171 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 383 "mn-tooltips.c"
+{
+#line 173 "mn-tooltips.gob"
+
+ if (! selfp->window)
+ {
+ selfp->window = gtk_window_new(GTK_WINDOW_POPUP);
+ self_update_screen(self, TRUE);
+ gtk_widget_set_app_paintable(selfp->window, TRUE);
+ gtk_window_set_resizable(GTK_WINDOW(selfp->window), FALSE);
+ gtk_widget_set_name(selfp->window, "gtk-tooltips");
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->window), 12);
+
+ g_signal_connect_swapped(selfp->window,
+ "expose-event",
+ G_CALLBACK(self_paint_window),
+ self);
+
+ eel_add_weak_pointer(&selfp->window);
+ }
+ }}
+#line 404 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 192 "mn-tooltips.gob"
+static TooltipsData *
+mn_tooltips_get_data (GtkWidget * widget)
+#line 410 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::get_data"
+#line 192 "mn-tooltips.gob"
+ g_return_val_if_fail (widget != NULL, (TooltipsData * )0);
+#line 192 "mn-tooltips.gob"
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), (TooltipsData * )0);
+#line 417 "mn-tooltips.c"
+{
+#line 194 "mn-tooltips.gob"
+
+ return g_object_get_data(G_OBJECT(widget), TOOLTIPS_DATA);
+ }}
+#line 423 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 198 "mn-tooltips.gob"
+void
+mn_tooltips_set_tip_widget (MNTooltips * self, GtkWidget * widget, GtkWidget * tip_widget)
+#line 429 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::set_tip_widget"
+#line 198 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 198 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 198 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 198 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 440 "mn-tooltips.c"
+{
+#line 202 "mn-tooltips.gob"
+
+ TooltipsData *data;
+
+ data = self_get_data(widget);
+
+ if (! tip_widget)
+ {
+ if (data)
+ self_widget_remove(data->widget, data);
+ return;
+ }
+
+ if (selfp->active_data
+ && selfp->active_data->widget == widget
+ && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
+ {
+ if (data->tip_widget)
+ g_object_unref(data->tip_widget);
+
+ data->tip_widget = tip_widget;
+
+ if (data->tip_widget)
+ {
+ g_object_ref(data->tip_widget);
+ gtk_object_sink(GTK_OBJECT(data->tip_widget));
+ }
+
+ self_draw_tips(self);
+ }
+ else
+ {
+ g_object_ref(widget);
+
+ if (data)
+ self_widget_remove(data->widget, data);
+
+ data = g_new0(TooltipsData, 1);
+ data->self = self;
+ data->widget = widget;
+ data->tip_widget = tip_widget;
+
+ if (data->tip_widget)
+ {
+ g_object_ref(data->tip_widget);
+ gtk_object_sink(GTK_OBJECT(data->tip_widget));
+ }
+
+ selfp->data_list = g_slist_append(selfp->data_list, data);
+ g_signal_connect_after(widget, "event-after", G_CALLBACK(self_event_after_h), data);
+
+ g_object_set_data(G_OBJECT(widget), TOOLTIPS_DATA, data);
+
+ g_object_connect(widget,
+ "signal::unmap", self_widget_unmap, data,
+ "signal::unrealize", self_widget_unmap, data,
+ "signal::destroy", self_widget_remove, data,
+ NULL);
+ }
+ }}
+#line 502 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 262 "mn-tooltips.gob"
+static gboolean
+mn_tooltips_paint_window (MNTooltips * self)
+#line 508 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::paint_window"
+#line 262 "mn-tooltips.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 262 "mn-tooltips.gob"
+ g_return_val_if_fail (MN_IS_TOOLTIPS (self), (gboolean )0);
+#line 515 "mn-tooltips.c"
+{
+#line 264 "mn-tooltips.gob"
+
+ GtkRequisition req;
+
+ gtk_widget_size_request(selfp->window, &req);
+ gtk_paint_flat_box(selfp->window->style,
+ selfp->window->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_OUT,
+ NULL,
+ selfp->window,
+ "tooltip",
+ 0,
+ 0,
+ req.width,
+ req.height);
+
+ return FALSE;
+ }}
+#line 536 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 283 "mn-tooltips.gob"
+static void
+mn_tooltips_draw_tips (MNTooltips * self)
+#line 542 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::draw_tips"
+#line 283 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 283 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 549 "mn-tooltips.c"
+{
+#line 285 "mn-tooltips.gob"
+
+ GtkRequisition requisition;
+ GtkWidget *widget;
+ gint x, y, w, h;
+ TooltipsData *data;
+ GtkWidget *child;
+ gboolean keyboard_mode;
+ GdkScreen *screen;
+ GdkScreen *pointer_screen;
+ gint monitor_num, px, py;
+ GdkRectangle monitor;
+
+ if (! selfp->window)
+ self_force_window(self);
+ else if (GTK_WIDGET_VISIBLE(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+
+ gtk_widget_ensure_style(selfp->window);
+
+ widget = selfp->active_data->widget;
+ g_object_set_data(G_OBJECT(selfp->window), TOOLTIPS_INFO, self);
+
+ keyboard_mode = self_get_keyboard_mode(widget);
+
+ self_update_screen(self, FALSE);
+
+ screen = gtk_widget_get_screen(widget);
+
+ data = selfp->active_data;
+
+ child = GTK_BIN(selfp->window)->child;
+ if (child)
+ gtk_container_remove(GTK_CONTAINER(selfp->window), child);
+
+ if (data->tip_widget)
+ {
+ gtk_container_add(GTK_CONTAINER(selfp->window), data->tip_widget);
+ gtk_widget_show(data->tip_widget);
+ }
+
+ gtk_widget_size_request(selfp->window, &requisition);
+ w = requisition.width;
+ h = requisition.height;
+
+ gdk_window_get_origin(widget->window, &x, &y);
+ if (GTK_WIDGET_NO_WINDOW(widget))
+ {
+ x += widget->allocation.x;
+ y += widget->allocation.y;
+ }
+
+ x += widget->allocation.width / 2;
+
+ if (! keyboard_mode)
+ gdk_window_get_pointer(gdk_screen_get_root_window(screen), &x, NULL, NULL);
+
+ x -= (w / 2 + 4);
+
+ gdk_display_get_pointer(gdk_screen_get_display(screen), &pointer_screen, &px, &py, NULL);
+ if (pointer_screen != screen)
+ {
+ px = x;
+ py = y;
+ }
+ monitor_num = gdk_screen_get_monitor_at_point(screen, px, py);
+ gdk_screen_get_monitor_geometry(screen, monitor_num, &monitor);
+
+ if ((x + w) > monitor.x + monitor.width)
+ x -= (x + w) - (monitor.x + monitor.width);
+ else if (x < monitor.x)
+ x = monitor.x;
+
+ if ((y + h + widget->allocation.height + 4) > monitor.y + monitor.height
+ && (y - 4) > monitor.y)
+ y = y - h - 4;
+ else
+ y = y + widget->allocation.height + 4;
+
+ gtk_window_move(GTK_WINDOW(selfp->window), x, y);
+ gtk_widget_show(selfp->window);
+ }}
+#line 633 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 367 "mn-tooltips.gob"
+static gboolean
+mn_tooltips_timeout_cb (gpointer data)
+#line 639 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::timeout_cb"
+{
+#line 369 "mn-tooltips.gob"
+
+ Self *self = SELF(data);
+
+ GDK_THREADS_ENTER ();
+
+ if (selfp->active_data != NULL && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
+ self_draw_tips(self);
+
+ GDK_THREADS_LEAVE ();
+
+ return FALSE; /* remove timeout */
+ }}
+#line 656 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 382 "mn-tooltips.gob"
+static void
+mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget)
+#line 662 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::set_active_widget"
+#line 382 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 382 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 669 "mn-tooltips.c"
+{
+#line 384 "mn-tooltips.gob"
+
+ if (selfp->window)
+ {
+ if (GTK_WIDGET_VISIBLE(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+ gtk_widget_hide(selfp->window);
+ }
+ if (selfp->timeout_id)
+ {
+ g_source_remove(selfp->timeout_id);
+ selfp->timeout_id = 0;
+ }
+
+ selfp->active_data = NULL;
+
+ if (widget)
+ {
+ GSList *l;
+
+ MN_LIST_FOREACH(l, selfp->data_list)
+ {
+ TooltipsData *data = l->data;
+
+ if (data->widget == widget && GTK_WIDGET_DRAWABLE(widget))
+ {
+ selfp->active_data = data;
+ break;
+ }
+ }
+ }
+ else
+ selfp->use_sticky_delay = FALSE;
+ }}
+#line 705 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 418 "mn-tooltips.gob"
+static void
+mn_tooltips_show_tip (GtkWidget * widget)
+#line 711 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::show_tip"
+#line 418 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 418 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 718 "mn-tooltips.c"
+{
+#line 420 "mn-tooltips.gob"
+
+ TooltipsData *data;
+
+ data = self_get_data(widget);
+
+ if (data &&
+ (! data->self->_priv->active_data ||
+ data->self->_priv->active_data->widget != widget))
+ {
+ self_set_active_widget(data->self, widget);
+ self_draw_tips(data->self);
+ }
+ }}
+#line 734 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 434 "mn-tooltips.gob"
+static void
+mn_tooltips_hide_tip (GtkWidget * widget)
+#line 740 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::hide_tip"
+#line 434 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 434 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 747 "mn-tooltips.c"
+{
+#line 436 "mn-tooltips.gob"
+
+ TooltipsData *data;
+
+ data = self_get_data(widget);
+
+ if (data &&
+ (data->self->_priv->active_data &&
+ data->self->_priv->active_data->widget == widget))
+ self_set_active_widget(data->self, NULL);
+ }}
+#line 760 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 447 "mn-tooltips.gob"
+static gboolean
+mn_tooltips_recently_shown (MNTooltips * self)
+#line 766 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::recently_shown"
+#line 447 "mn-tooltips.gob"
+ g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 447 "mn-tooltips.gob"
+ g_return_val_if_fail (MN_IS_TOOLTIPS (self), (gboolean )0);
+#line 773 "mn-tooltips.c"
+{
+#line 449 "mn-tooltips.gob"
+
+ GTimeVal now;
+ glong msec;
+
+ g_get_current_time (&now);
+ msec = (now.tv_sec - selfp->last_popdown.tv_sec) * 1000 +
+ (now.tv_usec - selfp->last_popdown.tv_usec) / 1000;
+ return (msec < STICKY_REVERT_DELAY);
+ }}
+#line 785 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 459 "mn-tooltips.gob"
+static gboolean
+mn_tooltips_get_keyboard_mode (GtkWidget * widget)
+#line 791 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::get_keyboard_mode"
+#line 459 "mn-tooltips.gob"
+ g_return_val_if_fail (widget != NULL, (gboolean )0);
+#line 459 "mn-tooltips.gob"
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
+#line 798 "mn-tooltips.c"
+{
+#line 461 "mn-tooltips.gob"
+
+ GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
+
+ if (GTK_IS_WINDOW(toplevel))
+ return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE));
+ else
+ return FALSE;
+ }}
+#line 809 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 470 "mn-tooltips.gob"
+static void
+mn_tooltips_start_keyboard_mode (GtkWidget * widget)
+#line 815 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::start_keyboard_mode"
+#line 470 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 470 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 822 "mn-tooltips.c"
+{
+#line 472 "mn-tooltips.gob"
+
+ GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+ GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
+
+ g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(TRUE));
+
+ if (focus)
+ self_show_tip(focus);
+ }
+ }}
+#line 838 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 486 "mn-tooltips.gob"
+static void
+mn_tooltips_stop_keyboard_mode (GtkWidget * widget)
+#line 844 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::stop_keyboard_mode"
+#line 486 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 486 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 851 "mn-tooltips.c"
+{
+#line 488 "mn-tooltips.gob"
+
+ GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+ GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
+
+ if (focus)
+ self_hide_tip(focus);
+
+ g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(FALSE));
+ }
+ }}
+#line 867 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 502 "mn-tooltips.gob"
+static void
+mn_tooltips_start_delay (MNTooltips * self, GtkWidget * widget)
+#line 873 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::start_delay"
+#line 502 "mn-tooltips.gob"
+ g_return_if_fail (self != NULL);
+#line 502 "mn-tooltips.gob"
+ g_return_if_fail (MN_IS_TOOLTIPS (self));
+#line 880 "mn-tooltips.c"
+{
+#line 504 "mn-tooltips.gob"
+
+ TooltipsData *old_data;
+
+ old_data = selfp->active_data;
+ if (! old_data || old_data->widget != widget)
+ {
+ self_set_active_widget(self, widget);
+ selfp->timeout_id = g_timeout_add((selfp->use_sticky_delay && self_recently_shown(self)) ? STICKY_DELAY : DELAY,
+ self_timeout_cb,
+ self);
+ }
+ }}
+#line 895 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 517 "mn-tooltips.gob"
+static void
+mn_tooltips_event_after_h (GtkWidget * widget, GdkEvent * event, gpointer user_data)
+#line 901 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::event_after_h"
+#line 517 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 517 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 517 "mn-tooltips.gob"
+ g_return_if_fail (event != NULL);
+#line 910 "mn-tooltips.c"
+{
+#line 521 "mn-tooltips.gob"
+
+ Self *self;
+ TooltipsData *old_data;
+ GtkWidget *event_widget;
+ gboolean keyboard_mode = self_get_keyboard_mode(widget);
+
+ if ((event->type == GDK_LEAVE_NOTIFY || event->type == GDK_ENTER_NOTIFY) &&
+ event->crossing.detail == GDK_NOTIFY_INFERIOR)
+ return;
+
+ old_data = self_get_data(widget);
+ self = old_data->self;
+
+ if (keyboard_mode)
+ {
+ switch (event->type)
+ {
+ case GDK_FOCUS_CHANGE:
+ if (event->focus_change.in)
+ self_show_tip(widget);
+ else
+ self_hide_tip(widget);
+ break;
+
+ default:
+ break;
+ }
+ }
+ else
+ {
+ if (event->type != GDK_KEY_PRESS && event->type != GDK_KEY_RELEASE)
+ {
+ event_widget = gtk_get_event_widget(event);
+ if (event_widget != widget)
+ return;
+ }
+
+ switch (event->type)
+ {
+ case GDK_EXPOSE:
+ /* do nothing */
+ break;
+
+ case GDK_ENTER_NOTIFY:
+ if (! (GTK_IS_MENU_ITEM(widget) && GTK_MENU_ITEM(widget)->submenu))
+ self_start_delay(self, widget);
+ break;
+
+ case GDK_LEAVE_NOTIFY:
+ self_set_active_widget(self, NULL);
+ selfp->use_sticky_delay = selfp->window && GTK_WIDGET_VISIBLE(selfp->window);
+ break;
+
+ case GDK_MOTION_NOTIFY:
+ /* Handle menu items specially ... pend popup for each motion
+ * on other widgets, we ignore motion.
+ */
+ if (GTK_IS_MENU_ITEM(widget) && ! GTK_MENU_ITEM(widget)->submenu)
+ {
+ /* Completely evil hack to make sure we get the LEAVE_NOTIFY
+ */
+ GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
+ self_set_active_widget(self, NULL);
+ self_start_delay(self, widget);
+ break;
+ }
+ break; /* ignore */
+
+ case GDK_BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ case GDK_KEY_PRESS:
+ case GDK_KEY_RELEASE:
+ case GDK_PROXIMITY_IN:
+ case GDK_SCROLL:
+ self_set_active_widget(self, NULL);
+ break;
+
+ default:
+ break;
+ }
+ }
+ }}
+#line 995 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 604 "mn-tooltips.gob"
+static void
+mn_tooltips_widget_unmap (GtkWidget * widget, gpointer user_data)
+#line 1001 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::widget_unmap"
+#line 604 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 604 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 1008 "mn-tooltips.c"
+{
+#line 606 "mn-tooltips.gob"
+
+ TooltipsData *data = user_data;
+ Self *self = data->self;
+
+ if (selfp->active_data &&
+ (selfp->active_data->widget == widget))
+ self_set_active_widget(self, NULL);
+ }}
+#line 1019 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 615 "mn-tooltips.gob"
+static void
+mn_tooltips_widget_remove (GtkWidget * widget, gpointer user_data)
+#line 1025 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::widget_remove"
+#line 615 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 615 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 1032 "mn-tooltips.c"
+{
+#line 617 "mn-tooltips.gob"
+
+ TooltipsData *data = user_data;
+ Self *self = data->self;
+
+ self_widget_unmap(widget, user_data);
+ selfp->data_list = g_slist_remove(selfp->data_list, data);
+ self_destroy_data(data);
+ }}
+#line 1043 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 626 "mn-tooltips.gob"
+void
+mn_tooltips_toggle_keyboard_mode (GtkWidget * widget)
+#line 1049 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::toggle_keyboard_mode"
+#line 626 "mn-tooltips.gob"
+ g_return_if_fail (widget != NULL);
+#line 626 "mn-tooltips.gob"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 1056 "mn-tooltips.c"
+{
+#line 628 "mn-tooltips.gob"
+
+ if (self_get_keyboard_mode(widget))
+ self_stop_keyboard_mode(widget);
+ else
+ self_start_keyboard_mode(widget);
+ }}
+#line 1065 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
+
+#line 635 "mn-tooltips.gob"
+MNTooltips *
+mn_tooltips_new (void)
+#line 1071 "mn-tooltips.c"
+{
+#define __GOB_FUNCTION__ "MN:Tooltips::new"
+{
+#line 637 "mn-tooltips.gob"
+
+ return GET_NEW;
+ }}
+#line 1079 "mn-tooltips.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-tooltips.gob b/src/mn-tooltips.gob
@@ -0,0 +1,640 @@
+/*
+ * MNTooltips - a tooltips implementation allowing to use an arbitrary
+ * widget as tooltip (heavily based on GtkTooltips)
+ *
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ * Copyright (c) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.10
+
+%headertop{
+#include <gtk/gtk.h>
+%}
+
+%privateheader{
+ typedef struct
+ {
+ MNTooltips *self;
+ GtkWidget *widget;
+ GtkWidget *tip_widget;
+ } TooltipsData;
+%}
+
+%{
+#include "mn-util.h"
+#include <eel/eel.h>
+
+#define TOOLTIPS_DATA "mn-tooltips-data"
+#define TOOLTIPS_INFO "mn-tooltips-info"
+#define TOOLTIPS_KEYBOARD_MODE "gtk-tooltips-keyboard-mode" /* compatible with GtkTooltips */
+
+#define DELAY 500 /* Default delay in ms */
+#define STICKY_DELAY 0 /* Delay before popping up next tip
+ * if we're sticky
+ */
+#define STICKY_REVERT_DELAY 1000 /* Delay before sticky tooltips revert
+ * to normal
+ */
+
+ /* The private flags that are used in the private_flags member of GtkWidget.
+ */
+ typedef enum
+ {
+ PRIVATE_GTK_LEAVE_PENDING = 1 << 4
+ } GtkPrivateFlags;
+
+ /* Macros for extracting a widgets private_flags from GtkWidget.
+ */
+#define GTK_PRIVATE_FLAGS(wid) (GTK_WIDGET (wid)->private_flags)
+
+ /* Macros for setting and clearing private widget flags.
+ * we use a preprocessor string concatenation here for a clear
+ * flags/private_flags distinction at the cost of single flag operations.
+ */
+#define GTK_PRIVATE_SET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
+%}
+
+class MN:Tooltips from G:Object
+{
+ private GtkWidget *window;
+ private TooltipsData *active_data;
+ private GSList *data_list;
+
+ private gboolean use_sticky_delay;
+ private GTimeVal last_popdown;
+ private unsigned int timeout_id;
+
+ override (G:Object) void
+ finalize (G:Object *object (check null type))
+ {
+ Self *self = SELF(object);
+ GSList *l;
+
+ if (selfp->timeout_id)
+ g_source_remove(selfp->timeout_id);
+
+ MN_LIST_FOREACH(l, selfp->data_list)
+ {
+ TooltipsData *data = l->data;
+ self_widget_remove(data->widget, data);
+ }
+
+ self_unset_window(self);
+
+ PARENT_HANDLER(object);
+ }
+
+ private void
+ destroy_data (TooltipsData *data)
+ {
+ g_object_disconnect(data->widget,
+ "any-signal", self_event_after_h, data,
+ "any-signal", self_widget_unmap, data,
+ "any-signal", self_widget_remove, data,
+ NULL);
+
+ g_object_set_data(G_OBJECT(data->widget), TOOLTIPS_DATA, NULL);
+ g_object_unref(data->widget);
+ g_object_unref(data->tip_widget);
+ g_free(data);
+ }
+
+ private void
+ display_closed_h (Gdk:Display *display (check null type),
+ gboolean is_error,
+ gpointer user_data)
+ {
+ Self *self = SELF(user_data);
+ self_unset_window(self);
+ }
+
+ private void
+ disconnect_display_closed (self)
+ {
+ g_signal_handlers_disconnect_by_func(gtk_widget_get_display(selfp->window),
+ self_display_closed_h,
+ self);
+ }
+
+ private void
+ unset_window (self)
+ {
+ if (selfp->window)
+ {
+ self_disconnect_display_closed(self);
+ gtk_widget_destroy(selfp->window);
+ }
+ }
+
+ private void
+ update_screen (self, gboolean new_window)
+ {
+ gboolean screen_changed = FALSE;
+
+ if (selfp->active_data && selfp->active_data->widget)
+ {
+ GdkScreen *screen = gtk_widget_get_screen(selfp->active_data->widget);
+
+ screen_changed = (screen != gtk_widget_get_screen(selfp->window));
+
+ if (screen_changed)
+ {
+ if (! new_window)
+ self_disconnect_display_closed(self);
+
+ gtk_window_set_screen(GTK_WINDOW(selfp->window), screen);
+ }
+ }
+
+ if (screen_changed || new_window)
+ g_signal_connect(gtk_widget_get_display(selfp->window),
+ "closed",
+ G_CALLBACK(self_display_closed_h),
+ self);
+ }
+
+ private void
+ force_window (self)
+ {
+ if (! selfp->window)
+ {
+ selfp->window = gtk_window_new(GTK_WINDOW_POPUP);
+ self_update_screen(self, TRUE);
+ gtk_widget_set_app_paintable(selfp->window, TRUE);
+ gtk_window_set_resizable(GTK_WINDOW(selfp->window), FALSE);
+ gtk_widget_set_name(selfp->window, "gtk-tooltips");
+ gtk_container_set_border_width(GTK_CONTAINER(selfp->window), 12);
+
+ g_signal_connect_swapped(selfp->window,
+ "expose-event",
+ G_CALLBACK(self_paint_window),
+ self);
+
+ eel_add_weak_pointer(&selfp->window);
+ }
+ }
+
+ private TooltipsData *
+ get_data (Gtk:Widget *widget (check null type))
+ {
+ return g_object_get_data(G_OBJECT(widget), TOOLTIPS_DATA);
+ }
+
+ public void
+ set_tip_widget (self,
+ Gtk:Widget *widget (check null type),
+ Gtk:Widget *tip_widget)
+ {
+ TooltipsData *data;
+
+ data = self_get_data(widget);
+
+ if (! tip_widget)
+ {
+ if (data)
+ self_widget_remove(data->widget, data);
+ return;
+ }
+
+ if (selfp->active_data
+ && selfp->active_data->widget == widget
+ && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
+ {
+ if (data->tip_widget)
+ g_object_unref(data->tip_widget);
+
+ data->tip_widget = tip_widget;
+
+ if (data->tip_widget)
+ {
+ g_object_ref(data->tip_widget);
+ gtk_object_sink(GTK_OBJECT(data->tip_widget));
+ }
+
+ self_draw_tips(self);
+ }
+ else
+ {
+ g_object_ref(widget);
+
+ if (data)
+ self_widget_remove(data->widget, data);
+
+ data = g_new0(TooltipsData, 1);
+ data->self = self;
+ data->widget = widget;
+ data->tip_widget = tip_widget;
+
+ if (data->tip_widget)
+ {
+ g_object_ref(data->tip_widget);
+ gtk_object_sink(GTK_OBJECT(data->tip_widget));
+ }
+
+ selfp->data_list = g_slist_append(selfp->data_list, data);
+ g_signal_connect_after(widget, "event-after", G_CALLBACK(self_event_after_h), data);
+
+ g_object_set_data(G_OBJECT(widget), TOOLTIPS_DATA, data);
+
+ g_object_connect(widget,
+ "signal::unmap", self_widget_unmap, data,
+ "signal::unrealize", self_widget_unmap, data,
+ "signal::destroy", self_widget_remove, data,
+ NULL);
+ }
+ }
+
+ private gboolean
+ paint_window (self)
+ {
+ GtkRequisition req;
+
+ gtk_widget_size_request(selfp->window, &req);
+ gtk_paint_flat_box(selfp->window->style,
+ selfp->window->window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_OUT,
+ NULL,
+ selfp->window,
+ "tooltip",
+ 0,
+ 0,
+ req.width,
+ req.height);
+
+ return FALSE;
+ }
+
+ private void
+ draw_tips (self)
+ {
+ GtkRequisition requisition;
+ GtkWidget *widget;
+ gint x, y, w, h;
+ TooltipsData *data;
+ GtkWidget *child;
+ gboolean keyboard_mode;
+ GdkScreen *screen;
+ GdkScreen *pointer_screen;
+ gint monitor_num, px, py;
+ GdkRectangle monitor;
+
+ if (! selfp->window)
+ self_force_window(self);
+ else if (GTK_WIDGET_VISIBLE(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+
+ gtk_widget_ensure_style(selfp->window);
+
+ widget = selfp->active_data->widget;
+ g_object_set_data(G_OBJECT(selfp->window), TOOLTIPS_INFO, self);
+
+ keyboard_mode = self_get_keyboard_mode(widget);
+
+ self_update_screen(self, FALSE);
+
+ screen = gtk_widget_get_screen(widget);
+
+ data = selfp->active_data;
+
+ child = GTK_BIN(selfp->window)->child;
+ if (child)
+ gtk_container_remove(GTK_CONTAINER(selfp->window), child);
+
+ if (data->tip_widget)
+ {
+ gtk_container_add(GTK_CONTAINER(selfp->window), data->tip_widget);
+ gtk_widget_show(data->tip_widget);
+ }
+
+ gtk_widget_size_request(selfp->window, &requisition);
+ w = requisition.width;
+ h = requisition.height;
+
+ gdk_window_get_origin(widget->window, &x, &y);
+ if (GTK_WIDGET_NO_WINDOW(widget))
+ {
+ x += widget->allocation.x;
+ y += widget->allocation.y;
+ }
+
+ x += widget->allocation.width / 2;
+
+ if (! keyboard_mode)
+ gdk_window_get_pointer(gdk_screen_get_root_window(screen), &x, NULL, NULL);
+
+ x -= (w / 2 + 4);
+
+ gdk_display_get_pointer(gdk_screen_get_display(screen), &pointer_screen, &px, &py, NULL);
+ if (pointer_screen != screen)
+ {
+ px = x;
+ py = y;
+ }
+ monitor_num = gdk_screen_get_monitor_at_point(screen, px, py);
+ gdk_screen_get_monitor_geometry(screen, monitor_num, &monitor);
+
+ if ((x + w) > monitor.x + monitor.width)
+ x -= (x + w) - (monitor.x + monitor.width);
+ else if (x < monitor.x)
+ x = monitor.x;
+
+ if ((y + h + widget->allocation.height + 4) > monitor.y + monitor.height
+ && (y - 4) > monitor.y)
+ y = y - h - 4;
+ else
+ y = y + widget->allocation.height + 4;
+
+ gtk_window_move(GTK_WINDOW(selfp->window), x, y);
+ gtk_widget_show(selfp->window);
+ }
+
+ private gboolean
+ timeout_cb (gpointer data)
+ {
+ Self *self = SELF(data);
+
+ GDK_THREADS_ENTER ();
+
+ if (selfp->active_data != NULL && GTK_WIDGET_DRAWABLE(selfp->active_data->widget))
+ self_draw_tips(self);
+
+ GDK_THREADS_LEAVE ();
+
+ return FALSE; /* remove timeout */
+ }
+
+ private void
+ set_active_widget (self, Gtk:Widget *widget)
+ {
+ if (selfp->window)
+ {
+ if (GTK_WIDGET_VISIBLE(selfp->window))
+ g_get_current_time(&selfp->last_popdown);
+ gtk_widget_hide(selfp->window);
+ }
+ if (selfp->timeout_id)
+ {
+ g_source_remove(selfp->timeout_id);
+ selfp->timeout_id = 0;
+ }
+
+ selfp->active_data = NULL;
+
+ if (widget)
+ {
+ GSList *l;
+
+ MN_LIST_FOREACH(l, selfp->data_list)
+ {
+ TooltipsData *data = l->data;
+
+ if (data->widget == widget && GTK_WIDGET_DRAWABLE(widget))
+ {
+ selfp->active_data = data;
+ break;
+ }
+ }
+ }
+ else
+ selfp->use_sticky_delay = FALSE;
+ }
+
+ private void
+ show_tip (Gtk:Widget *widget (check null type))
+ {
+ TooltipsData *data;
+
+ data = self_get_data(widget);
+
+ if (data &&
+ (! data->self->_priv->active_data ||
+ data->self->_priv->active_data->widget != widget))
+ {
+ self_set_active_widget(data->self, widget);
+ self_draw_tips(data->self);
+ }
+ }
+
+ private void
+ hide_tip (Gtk:Widget *widget (check null type))
+ {
+ TooltipsData *data;
+
+ data = self_get_data(widget);
+
+ if (data &&
+ (data->self->_priv->active_data &&
+ data->self->_priv->active_data->widget == widget))
+ self_set_active_widget(data->self, NULL);
+ }
+
+ private gboolean
+ recently_shown (self)
+ {
+ GTimeVal now;
+ glong msec;
+
+ g_get_current_time (&now);
+ msec = (now.tv_sec - selfp->last_popdown.tv_sec) * 1000 +
+ (now.tv_usec - selfp->last_popdown.tv_usec) / 1000;
+ return (msec < STICKY_REVERT_DELAY);
+ }
+
+ private gboolean
+ get_keyboard_mode (Gtk:Widget *widget (check null type))
+ {
+ GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
+
+ if (GTK_IS_WINDOW(toplevel))
+ return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE));
+ else
+ return FALSE;
+ }
+
+ private void
+ start_keyboard_mode (Gtk:Widget *widget (check null type))
+ {
+ GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+ GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
+
+ g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(TRUE));
+
+ if (focus)
+ self_show_tip(focus);
+ }
+ }
+
+ private void
+ stop_keyboard_mode (Gtk:Widget *widget (check null type))
+ {
+ GtkWidget *toplevel = gtk_widget_get_toplevel(widget);
+
+ if (GTK_IS_WINDOW(toplevel))
+ {
+ GtkWidget *focus = GTK_WINDOW(toplevel)->focus_widget;
+
+ if (focus)
+ self_hide_tip(focus);
+
+ g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(FALSE));
+ }
+ }
+
+ private void
+ start_delay (self, Gtk:Widget *widget)
+ {
+ TooltipsData *old_data;
+
+ old_data = selfp->active_data;
+ if (! old_data || old_data->widget != widget)
+ {
+ self_set_active_widget(self, widget);
+ selfp->timeout_id = g_timeout_add((selfp->use_sticky_delay && self_recently_shown(self)) ? STICKY_DELAY : DELAY,
+ self_timeout_cb,
+ self);
+ }
+ }
+
+ private void
+ event_after_h (Gtk:Widget *widget (check null type),
+ GdkEvent *event (check null),
+ gpointer user_data)
+ {
+ Self *self;
+ TooltipsData *old_data;
+ GtkWidget *event_widget;
+ gboolean keyboard_mode = self_get_keyboard_mode(widget);
+
+ if ((event->type == GDK_LEAVE_NOTIFY || event->type == GDK_ENTER_NOTIFY) &&
+ event->crossing.detail == GDK_NOTIFY_INFERIOR)
+ return;
+
+ old_data = self_get_data(widget);
+ self = old_data->self;
+
+ if (keyboard_mode)
+ {
+ switch (event->type)
+ {
+ case GDK_FOCUS_CHANGE:
+ if (event->focus_change.in)
+ self_show_tip(widget);
+ else
+ self_hide_tip(widget);
+ break;
+
+ default:
+ break;
+ }
+ }
+ else
+ {
+ if (event->type != GDK_KEY_PRESS && event->type != GDK_KEY_RELEASE)
+ {
+ event_widget = gtk_get_event_widget(event);
+ if (event_widget != widget)
+ return;
+ }
+
+ switch (event->type)
+ {
+ case GDK_EXPOSE:
+ /* do nothing */
+ break;
+
+ case GDK_ENTER_NOTIFY:
+ if (! (GTK_IS_MENU_ITEM(widget) && GTK_MENU_ITEM(widget)->submenu))
+ self_start_delay(self, widget);
+ break;
+
+ case GDK_LEAVE_NOTIFY:
+ self_set_active_widget(self, NULL);
+ selfp->use_sticky_delay = selfp->window && GTK_WIDGET_VISIBLE(selfp->window);
+ break;
+
+ case GDK_MOTION_NOTIFY:
+ /* Handle menu items specially ... pend popup for each motion
+ * on other widgets, we ignore motion.
+ */
+ if (GTK_IS_MENU_ITEM(widget) && ! GTK_MENU_ITEM(widget)->submenu)
+ {
+ /* Completely evil hack to make sure we get the LEAVE_NOTIFY
+ */
+ GTK_PRIVATE_SET_FLAG(widget, GTK_LEAVE_PENDING);
+ self_set_active_widget(self, NULL);
+ self_start_delay(self, widget);
+ break;
+ }
+ break; /* ignore */
+
+ case GDK_BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ case GDK_KEY_PRESS:
+ case GDK_KEY_RELEASE:
+ case GDK_PROXIMITY_IN:
+ case GDK_SCROLL:
+ self_set_active_widget(self, NULL);
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+ private void
+ widget_unmap (Gtk:Widget *widget (check null type), gpointer user_data)
+ {
+ TooltipsData *data = user_data;
+ Self *self = data->self;
+
+ if (selfp->active_data &&
+ (selfp->active_data->widget == widget))
+ self_set_active_widget(self, NULL);
+ }
+
+ private void
+ widget_remove (Gtk:Widget *widget (check null type), gpointer user_data)
+ {
+ TooltipsData *data = user_data;
+ Self *self = data->self;
+
+ self_widget_unmap(widget, user_data);
+ selfp->data_list = g_slist_remove(selfp->data_list, data);
+ self_destroy_data(data);
+ }
+
+ public void
+ toggle_keyboard_mode (Gtk:Widget *widget (check null type))
+ {
+ if (self_get_keyboard_mode(widget))
+ self_stop_keyboard_mode(widget);
+ else
+ self_start_keyboard_mode(widget);
+ }
+
+ public MNTooltips *
+ new (void)
+ {
+ return GET_NEW;
+ }
+}
diff --git a/src/mn-tooltips.h b/src/mn-tooltips.h
@@ -0,0 +1,67 @@
+/* Generated by GOB (v2.0.11) (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+
+#ifndef __MN_TOOLTIPS_H__
+#define __MN_TOOLTIPS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_TOOLTIPS (mn_tooltips_get_type())
+#define MN_TOOLTIPS(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_tooltips_get_type(), MNTooltips)
+#define MN_TOOLTIPS_CONST(obj) G_TYPE_CHECK_INSTANCE_CAST((obj), mn_tooltips_get_type(), MNTooltips const)
+#define MN_TOOLTIPS_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), mn_tooltips_get_type(), MNTooltipsClass)
+#define MN_IS_TOOLTIPS(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_tooltips_get_type ())
+
+#define MN_TOOLTIPS_GET_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), mn_tooltips_get_type(), MNTooltipsClass)
+
+/* Private structure type */
+typedef struct _MNTooltipsPrivate MNTooltipsPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_TOOLTIPS__
+#define __TYPEDEF_MN_TOOLTIPS__
+typedef struct _MNTooltips MNTooltips;
+#endif
+struct _MNTooltips {
+ GObject __parent__;
+ /*< private >*/
+ MNTooltipsPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNTooltipsClass MNTooltipsClass;
+struct _MNTooltipsClass {
+ GObjectClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType mn_tooltips_get_type (void);
+void mn_tooltips_set_tip_widget (MNTooltips * self,
+ GtkWidget * widget,
+ GtkWidget * tip_widget);
+void mn_tooltips_toggle_keyboard_mode (GtkWidget * widget);
+MNTooltips * mn_tooltips_new (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-unsupported-mailbox-private.h b/src/mn-unsupported-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_UNSUPPORTED_MAILBOX_PRIVATE_H__
#define __MN_UNSUPPORTED_MAILBOX_PRIVATE_H__
diff --git a/src/mn-unsupported-mailbox.c b/src/mn-unsupported-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:35 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:23 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-unsupported-mailbox.h b/src/mn-unsupported-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-uri-private.h b/src/mn-uri-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#ifndef __MN_URI_PRIVATE_H__
#define __MN_URI_PRIVATE_H__
diff --git a/src/mn-uri.c b/src/mn-uri.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:35 2004
+/* Generated by GOB (v2.0.11) on Sun Oct 31 18:41:23 2004
(do not edit directly) */
/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
#define GOB_VERSION_MAJOR 2
#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 10
+#define GOB_VERSION_PATCHLEVEL 11
#define selfp (self->_priv)
diff --git a/src/mn-uri.h b/src/mn-uri.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) (do not edit directly) */
+/* Generated by GOB (v2.0.11) (do not edit directly) */
#include <glib.h>
#include <glib-object.h>
diff --git a/src/mn-util.c b/src/mn-util.c
@@ -531,7 +531,7 @@ mn_thread_create (GThreadFunc func, gpointer data)
}
/**
- * mn_tooltips_new:
+ * mn_gtk_tooltips_new:
*
* Creates and sinks a #GtkTooltips object.
*
@@ -539,7 +539,7 @@ mn_thread_create (GThreadFunc func, gpointer data)
* reference count of 1).
**/
GtkTooltips *
-mn_tooltips_new (void)
+mn_gtk_tooltips_new (void)
{
GtkTooltips *tooltips;
@@ -551,21 +551,21 @@ mn_tooltips_new (void)
}
/**
- * mn_tooltips_set_tips:
+ * mn_gtk_tooltips_set_tips:
* @tooltips: a #GtkTooltips object
* @...: a %NULL-terminated list of widget-tip pairs
*
* Sets the tooltips of several widgets at once.
*
* <example>
- * mn_tooltips_set_tips(tooltips,
- * button, "Click here to proceed",
- * entry, "Your username",
- * NULL);
+ * mn_gtk_tooltips_set_tips(tooltips,
+ * button, "Click here to proceed",
+ * entry, "Your username",
+ * NULL);
* </example>
**/
void
-mn_tooltips_set_tips (GtkTooltips *tooltips, ...)
+mn_gtk_tooltips_set_tips (GtkTooltips *tooltips, ...)
{
va_list args;
GtkWidget *widget;
@@ -582,7 +582,7 @@ mn_tooltips_set_tips (GtkTooltips *tooltips, ...)
tip = va_arg(args, const char *);
g_return_if_fail(tip != NULL);
- mn_tooltips_set_tip(tooltips, widget, tip);
+ mn_gtk_tooltips_set_tip(tooltips, widget, tip);
}
va_end(args);
}
@@ -828,6 +828,25 @@ mn_position_get_type (void)
return type;
}
+GType
+mn_action_get_type (void)
+{
+ static GType type = 0;
+
+ if (type == 0)
+ {
+ static const GEnumValue values[] = {
+ { MN_ACTION_DISPLAY_MAIL_SUMMARY, "MN_ACTION_DISPLAY_MAIL_SUMMARY", "display-mail-summary" },
+ { MN_ACTION_LAUNCH_MAIL_READER, "MN_ACTION_LAUNCH_MAIL_READER", "launch-mail-reader" },
+ { 0, NULL, NULL }
+ };
+
+ type = g_enum_register_static("MNAction", values);
+ }
+
+ return type;
+}
+
/**
* mn_g_object_connect:
* @object: the object to associate the handlers with
@@ -908,3 +927,25 @@ mn_g_object_connect_weak_notify_cb (gpointer data, GObject *former_object)
}
g_free(handler);
}
+
+void
+mn_execute_command (const char *conf_key)
+{
+ char *command;
+
+ g_return_if_fail(conf_key != NULL);
+
+ command = eel_gconf_get_string(conf_key);
+ if (command)
+ {
+ if (gnome_execute_shell(NULL, command) < 0)
+ mn_error_dialog(NULL,
+ NULL,
+ NULL,
+ _("A command error has occurred in Mail Notification"),
+ _("Unable to execute \"%s\": %s."),
+ command,
+ g_strerror(errno));
+ g_free(command);
+ }
+}
diff --git a/src/mn-util.h b/src/mn-util.h
@@ -76,11 +76,11 @@ void mn_display_help (GtkWindow *parent,
void mn_thread_create (GThreadFunc func,
gpointer data);
-GtkTooltips *mn_tooltips_new (void);
-void mn_tooltips_set_tips (GtkTooltips *tooltips,
+GtkTooltips *mn_gtk_tooltips_new (void);
+void mn_gtk_tooltips_set_tips (GtkTooltips *tooltips,
...);
-#define mn_tooltips_set_tip(tooltips, widget, tip) \
+#define mn_gtk_tooltips_set_tip(tooltips, widget, tip) \
gtk_tooltips_set_tip((tooltips), (widget), (tip), NULL)
GtkWidget *mn_menu_shell_append (GtkMenuShell *shell,
@@ -113,11 +113,22 @@ typedef enum
GType mn_position_get_type (void);
#define MN_TYPE_POSITION (mn_position_get_type())
+typedef enum
+{
+ MN_ACTION_DISPLAY_MAIL_SUMMARY,
+ MN_ACTION_LAUNCH_MAIL_READER
+} MNAction;
+
+GType mn_action_get_type (void);
+#define MN_TYPE_ACTION (mn_action_get_type())
+
gpointer mn_g_object_connect (gpointer object,
gpointer instance,
const char *signal_spec,
...);
+void mn_execute_command (const char *conf_key);
+
#define MN_STRING_TO_POINTER(str) ((*str) ? (str) : NULL)
#define MN_POINTER_TO_STRING(ptr) ((ptr) ? (ptr) : "")
diff --git a/tests/Makefile.in b/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -43,9 +43,9 @@ noinst_PROGRAMS = test-uri$(EXEEXT) \
subdir = tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -70,11 +70,6 @@ test_vfs_read_line_smallblock_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/mn-uri.Po ./$(DEPDIR)/test-uri.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Po
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
@@ -128,6 +123,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -165,6 +161,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -225,6 +222,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -346,96 +345,84 @@ distclean-compile:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
mn-uri.o: $(top_srcdir)/src/mn-uri.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-uri.o -MD -MP -MF "$(DEPDIR)/mn-uri.Tpo" -c -o mn-uri.o `test -f '$(top_srcdir)/src/mn-uri.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-uri.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mn-uri.Tpo" "$(DEPDIR)/mn-uri.Po"; else rm -f "$(DEPDIR)/mn-uri.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-uri.c' object='mn-uri.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/mn-uri.Po' tmpdepfile='$(DEPDIR)/mn-uri.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-uri.o `test -f '$(top_srcdir)/src/mn-uri.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-uri.c
mn-uri.obj: $(top_srcdir)/src/mn-uri.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-uri.obj -MD -MP -MF "$(DEPDIR)/mn-uri.Tpo" -c -o mn-uri.obj `if test -f '$(top_srcdir)/src/mn-uri.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-uri.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-uri.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mn-uri.Tpo" "$(DEPDIR)/mn-uri.Po"; else rm -f "$(DEPDIR)/mn-uri.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-uri.c' object='mn-uri.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/mn-uri.Po' tmpdepfile='$(DEPDIR)/mn-uri.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-uri.obj `if test -f '$(top_srcdir)/src/mn-uri.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-uri.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-uri.c'; fi`
test_vfs_read_line_largeblock-mn-vfs.o: $(top_srcdir)/src/mn-vfs.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_largeblock-mn-vfs.o -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo" -c -o test_vfs_read_line_largeblock-mn-vfs.o `test -f '$(top_srcdir)/src/mn-vfs.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-vfs.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo" "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-vfs.c' object='test_vfs_read_line_largeblock-mn-vfs.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_largeblock-mn-vfs.o `test -f '$(top_srcdir)/src/mn-vfs.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-vfs.c
test_vfs_read_line_largeblock-mn-vfs.obj: $(top_srcdir)/src/mn-vfs.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_largeblock-mn-vfs.obj -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo" -c -o test_vfs_read_line_largeblock-mn-vfs.obj `if test -f '$(top_srcdir)/src/mn-vfs.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-vfs.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo" "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-vfs.c' object='test_vfs_read_line_largeblock-mn-vfs.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_largeblock-mn-vfs.obj `if test -f '$(top_srcdir)/src/mn-vfs.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-vfs.c'; fi`
test_vfs_read_line_largeblock-test-vfs-read-line.o: test-vfs-read-line.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_largeblock-test-vfs-read-line.o -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Tpo" -c -o test_vfs_read_line_largeblock-test-vfs-read-line.o `test -f 'test-vfs-read-line.c' || echo '$(srcdir)/'`test-vfs-read-line.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Tpo" "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-vfs-read-line.c' object='test_vfs_read_line_largeblock-test-vfs-read-line.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_largeblock-test-vfs-read-line.o `test -f 'test-vfs-read-line.c' || echo '$(srcdir)/'`test-vfs-read-line.c
test_vfs_read_line_largeblock-test-vfs-read-line.obj: test-vfs-read-line.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_largeblock-test-vfs-read-line.obj -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Tpo" -c -o test_vfs_read_line_largeblock-test-vfs-read-line.obj `if test -f 'test-vfs-read-line.c'; then $(CYGPATH_W) 'test-vfs-read-line.c'; else $(CYGPATH_W) '$(srcdir)/test-vfs-read-line.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Tpo" "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-vfs-read-line.c' object='test_vfs_read_line_largeblock-test-vfs-read-line.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_largeblock-test-vfs-read-line.obj `if test -f 'test-vfs-read-line.c'; then $(CYGPATH_W) 'test-vfs-read-line.c'; else $(CYGPATH_W) '$(srcdir)/test-vfs-read-line.c'; fi`
test_vfs_read_line_smallblock-mn-vfs.o: $(top_srcdir)/src/mn-vfs.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_smallblock-mn-vfs.o -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Tpo" -c -o test_vfs_read_line_smallblock-mn-vfs.o `test -f '$(top_srcdir)/src/mn-vfs.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-vfs.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Tpo" "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-vfs.c' object='test_vfs_read_line_smallblock-mn-vfs.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_smallblock-mn-vfs.o `test -f '$(top_srcdir)/src/mn-vfs.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-vfs.c
test_vfs_read_line_smallblock-mn-vfs.obj: $(top_srcdir)/src/mn-vfs.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_smallblock-mn-vfs.obj -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Tpo" -c -o test_vfs_read_line_smallblock-mn-vfs.obj `if test -f '$(top_srcdir)/src/mn-vfs.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-vfs.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Tpo" "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/src/mn-vfs.c' object='test_vfs_read_line_smallblock-mn-vfs.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_smallblock-mn-vfs.obj `if test -f '$(top_srcdir)/src/mn-vfs.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-vfs.c'; fi`
test_vfs_read_line_smallblock-test-vfs-read-line.o: test-vfs-read-line.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_smallblock-test-vfs-read-line.o -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Tpo" -c -o test_vfs_read_line_smallblock-test-vfs-read-line.o `test -f 'test-vfs-read-line.c' || echo '$(srcdir)/'`test-vfs-read-line.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Tpo" "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-vfs-read-line.c' object='test_vfs_read_line_smallblock-test-vfs-read-line.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_smallblock-test-vfs-read-line.o `test -f 'test-vfs-read-line.c' || echo '$(srcdir)/'`test-vfs-read-line.c
test_vfs_read_line_smallblock-test-vfs-read-line.obj: test-vfs-read-line.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_smallblock-test-vfs-read-line.obj -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Tpo" -c -o test_vfs_read_line_smallblock-test-vfs-read-line.obj `if test -f 'test-vfs-read-line.c'; then $(CYGPATH_W) 'test-vfs-read-line.c'; else $(CYGPATH_W) '$(srcdir)/test-vfs-read-line.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Tpo" "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Po"; else rm -f "$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-vfs-read-line.c' object='test_vfs_read_line_smallblock-test-vfs-read-line.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.Po' tmpdepfile='$(DEPDIR)/test_vfs_read_line_smallblock-test-vfs-read-line.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_smallblock-test-vfs-read-line.obj `if test -f 'test-vfs-read-line.c'; then $(CYGPATH_W) 'test-vfs-read-line.c'; else $(CYGPATH_W) '$(srcdir)/test-vfs-read-line.c'; fi`
uninstall-info-am:
@@ -538,7 +525,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
diff --git a/ui/Makefile.in b/ui/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -38,9 +38,9 @@ subdir = ui
DIST_COMMON = $(am__dist_ui_DATA_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
- $(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -51,6 +51,12 @@ DIST_SOURCES =
am__dist_ui_DATA_DIST = authentication.glade mailbox-properties.glade \
properties.glade summary-dialog.glade summary-popup.glade \
welcome.glade
+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 = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(uidir)"
dist_uiDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_ui_DATA)
@@ -95,6 +101,7 @@ GNOME_LIBS = @GNOME_LIBS@
GOB2 = @GOB2@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
+ICONV = @ICONV@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -132,6 +139,7 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -192,6 +200,8 @@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
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_alias = @build_alias@
datadir = @datadir@
@@ -271,7 +281,7 @@ install-dist_uiDATA: $(dist_ui_DATA)
test -z "$(uidir)" || $(mkdir_p) "$(DESTDIR)$(uidir)"
@list='$(dist_ui_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " $(dist_uiDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(uidir)/$$f'"; \
$(dist_uiDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(uidir)/$$f"; \
done
@@ -279,7 +289,7 @@ install-dist_uiDATA: $(dist_ui_DATA)
uninstall-dist_uiDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_ui_DATA)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
+ f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(uidir)/$$f'"; \
rm -f "$(DESTDIR)$(uidir)/$$f"; \
done
@@ -343,7 +353,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
diff --git a/ui/properties.glade b/ui/properties.glade
@@ -267,6 +267,61 @@
<property name="spacing">6</property>
<child>
+ <widget class="GtkHBox" id="hbox33">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="command_mail_reader_check">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Whether to set a mail reader or not</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Mail reader:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="mn_properties_toggled_h" last_modification_time="Fri, 29 Oct 2004 16:42:45 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="command_mail_reader_entry">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">The command to run to launch the mail reader</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ <signal name="changed" handler="mn_properties_mail_reader_entry_changed_h" after="yes" last_modification_time="Fri, 29 Oct 2004 16:48:44 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
<widget class="GtkHBox" id="hbox29">
<property name="visible">True</property>
<property name="homogeneous">False</property>
@@ -394,6 +449,127 @@
<property name="fill">False</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox26">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label40">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Double-click Action</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox31">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label41">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox27">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="action_summary_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Display the mail summary dialog</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="mn_properties_toggled_h" last_modification_time="Tue, 26 Oct 2004 11:27:38 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="action_mail_reader_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Launch the mail reader</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">action_summary_radio</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="tab_expand">False</property>
@@ -1052,6 +1228,26 @@
<property name="fill">True</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkCheckButton" id="summary_only_recent_check">
+ <property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Whether to hide previously displayed mail or not</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Only display _recent mail</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
diff --git a/ui/summary-dialog.glade b/ui/summary-dialog.glade
@@ -46,7 +46,7 @@
</child>
<child>
- <widget class="GtkButton" id="update_button">
+ <widget class="GtkButton" id="mail_reader_button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
@@ -55,7 +55,78 @@
<property name="response_id">1</property>
<child>
- <widget class="GtkAlignment" id="alignment1">
+ <widget class="GtkAlignment" id="alignment3">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image3">
+ <property name="visible">True</property>
+ <property name="stock">gtk-execute</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Launch Mail Reader</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="update_button">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">2</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@@ -67,13 +138,13 @@
<property name="right_padding">0</property>
<child>
- <widget class="GtkHBox" id="hbox1">
+ <widget class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="image1">
+ <widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-refresh</property>
<property name="icon_size">4</property>
@@ -90,7 +161,7 @@
</child>
<child>
- <widget class="GtkLabel" id="label1">
+ <widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">_Update</property>
<property name="use_underline">True</property>
@@ -117,7 +188,7 @@
</child>
<child>
- <widget class="GtkButton" id="button4">
+ <widget class="GtkButton" id="button5">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>