Imported Upstream version 0.9 upstream/0.9
authorPatrick Ohly <patrick.ohly@intel.com>
Fri, 28 Jun 2013 11:35:58 +0000 (11:35 +0000)
committerPatrick Ohly <patrick.ohly@intel.com>
Fri, 28 Jun 2013 11:35:58 +0000 (11:35 +0000)
51 files changed:
ChangeLog
Makefile-gen.am
Makefile.am
Makefile.in
NEWS
configure
configure-pre.in
configure.in
po/es.po
po/fi.po
po/fr.po
po/ko.po
po/pl.po
po/pt_BR.po
po/sv.po
po/zh_CN.po
po/zh_TW.po
src/DBusSyncClient.cpp
src/Makefile.in
src/backends/addressbook/Makefile.in
src/backends/evolution/Makefile.in
src/backends/file/Makefile.in
src/backends/sqlite/Makefile.in
src/client-test-app.cpp
src/core/EvolutionSyncClient.cpp
src/core/EvolutionSyncSource.cpp
src/core/EvolutionSyncSource.h
src/core/Makefile.in
src/core/SyncEvolutionXML.c
src/dbus/Makefile.in
src/dbus/interfaces/Makefile.in
src/dbus/syncevo-dbus.c
src/gtk-ui/Makefile.am
src/gtk-ui/Makefile.in
src/gtk-ui/sync-ui.c
src/gtk-ui/sync-ui.rc
src/gtk-ui/sync.desktop.in
src/gtk-ui/ui.glade
src/syncclient_sample_config.xml
src/syncevo-dbus-server.cpp
src/synthesis/ChangeLog
src/synthesis/src/sysync/engineinterface.cpp
src/synthesis/src/sysync/stdlogicds.cpp
src/synthesis/src/sysync/synccommand.cpp
src/synthesis/src/sysync/sysync_utils.cpp
src/synthesis/src/sysync/vtimezone.cpp
src/synthesis/src/sysync/vtimezone.h
test/ClientTest.cpp
test/ClientTest.h
test/Makefile.in
test/client-test-main.cpp

index 16defe3..91daa92 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,321 @@
 # Generated by configure.  Do no edit.
 
+2009-08-12  Patrick Ohly  <patrick.ohly@gmx.de>
+
+       * Makefile-gen.am:
+
+       build: pick right name when copying rpm
+
+2009-08-12  Patrick Ohly  <patrick.ohly@gmx.de>
+
+
+       Merge commit 'origin/moblin-transifex'
+
+2009-08-12  Patrick Ohly  <patrick.ohly@gmx.de>
+
+       * NEWS:
+       * configure-pre.in:
+
+       updated NEWS for 0.9 and bumped version to 0.9
+
+2009-08-12  Patrick Ohly  <patrick.ohly@gmx.de>
+
+       * NEWS:
+
+       NEWS: list GUI fixes 0.9 beta 3 -> final
+
+2009-08-12  Jussi Kukkonen  <jku@linux.intel.com>
+
+       * src/gtk-ui/ui.glade:
+
+       dbus client: minor layout fix for fatal error situation
+
+2009-08-11  Jussi Kukkonen  <jku@linux.intel.com>
+
+       * src/dbus/syncevo-dbus.c:
+
+       dbus client lib: fix error functions
+
+2009-08-11  Jussi Kukkonen  <jku@linux.intel.com>
+
+       * src/syncevo-dbus-server.cpp:
+
+       dbus server: copy template configuration in a sane way
+
+2009-08-11  Jussi Kukkonen  <jku@linux.intel.com>
+
+       * src/gtk-ui/sync-ui.rc:
+
+       remove workaround for invisible tooltips
+
+2009-08-03  Jussi Kukkonen  <jku@linux.intel.com>
+
+       * src/gtk-ui/sync.desktop.in:
+
+       add StartupNotify to desktop file
+
+2009-08-11  Patrick Ohly  <patrick.ohly@gmx.de>
+
+       * configure-pre.in:
+
+       version bumped to 0.8.1+0.9+beta3+20090811
+
+2009-08-11  Patrick Ohly  <patrick.ohly@gmx.de>
+
+       * NEWS:
+       * test/README.scheduleworld:
+
+       NEWS + README.scheduleworld: updated for 0.9
+
+2009-08-07  Patrick Ohly  <patrick.ohly@gmx.de>
+
+       * Makefile-gen.am:
+
+       autotools: must include m4-repo in search path (Bugzilla #5061)
+
+2009-08-11  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * Makefile-gen.am:
+
+       build: fixed RPM creation
+
+2009-08-05  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * NEWS:
+
+       NEWS: remember to write about https
+
+2009-08-05  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * test/README.scheduleworld:
+
+       README.scheduleworld: removed section on delete/update conflicts
+
+2009-08-08  auke  <auke-jan.h.kok@intel.com>
+
+       * po/nl.po:
+
+       Updates to Dutch (Flemish) (nl) translation
+
+2009-08-04  Chen Congwu  <congwu.chen@intel.com>
+
+       * src/client-test-app.cpp:
+       * test/ClientTest.cpp:
+       * test/ClientTest.h:
+
+       Testing: use server default configuration when init test configs.
+
+2009-08-05  auke  <auke-jan.h.kok@intel.com>
+
+       * po/nl.po:
+
+       Dutch
+
+2009-08-05  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/syncevo-dbus-server.cpp:
+
+       compiler error: constness and strstr (Bugzilla #5061)
+
+2009-07-31  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/sv.po:
+
+       Updates to Swedish (sv) translation
+
+2009-07-31  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * test/README.scheduleworld:
+
+       README.scheduleworld: updated remark about client delete/server
+       update conflict (Bugzilla #4369)
+
+2009-07-30  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/fr.po:
+
+       Updates to French (fr) translation
+
+2009-07-30  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/zh_TW.po:
+
+       Updates to Chinese (Taiwan) (zh_TW) translation
+
+2009-07-30  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/es.po:
+
+       Updates to Spanish (Castilian) (es) translation
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * configure-pre.in:
+
+       bumped version to 0.8.1+0.9+beta3+20090730
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/DBusSyncClient.cpp:
+       * src/core/EvolutionSyncClient.cpp:
+       * src/core/EvolutionSyncSource.cpp:
+       * src/core/EvolutionSyncSource.h:
+       * test/ClientTest.cpp:
+       * test/ClientTest.h:
+
+       sync statistics: count items deleted during refresh-from-server
+       (Bugzilla #3314)
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/syncevo-dbus-server.cpp:
+
+       D-Bus server: added dbus_g_thread_init()
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/syncevo-dbus-server.cpp:
+
+       D-Bus server: avoid potential crash in type handling (Bugzilla
+       #4921)
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/dbus/syncevo-dbus.c:
+
+       GTK-UI: crash due to use-after-free in error case (Bugzilla
+       #4919)
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/gtk-ui/Makefile.am:
+
+       GTK-UI Makefile: use libsyncevo-dbus.la instead of -lsyncevo-dbus
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+
+       Merge commit 'origin/moblin-transifex'
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * test/client-test-main.cpp:
+
+       Testing: keep synccompare error output (____compare.log) around
+
+2009-07-24  Chen Congwu  <congwu.chen@intel.com>
+
+       * test/ClientTest.cpp:
+       * test/client-test-main.cpp:
+
+       Testing: let synccompare error output go to corresponding case
+       log file.
+
+2009-07-29  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/syncclient_sample_config.xml:
+
+       calendar support: sanitize incoming EXDATEs (Bugzilla #4457)
+
+2009-07-29  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/pl.po:
+
+       Updates to Polish (pl) translation
+
+2009-07-28  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/gtk-ui/sync-ui.c:
+
+       GTK GUI: the 'your SyncML server account name' string was still
+       shown in once case (Bugzilla #4273)
+
+2009-07-28  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/core/EvolutionSyncClient.cpp:
+
+       logging: enable time stamping for all log entries
+
+2009-07-28  ZhuYanhai  <zhu.yanhai@gmail.com>
+
+       * po/zh_CN.po:
+
+       Updates to Chinese (China) (zh_CN) translation
+
+2009-07-28  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/fi.po:
+
+       Updates to Finnish (fi) translation
+
+2009-07-27  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/sv.po:
+
+       Updates to Swedish (sv) translation
+
+2009-07-27  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/pt_BR.po:
+
+       Updates to Brazilian Portuguese (pt_BR) translation
+
+2009-07-27  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * configure-pre.in:
+
+       bumped version to 0.8.1+0.9+beta3+20090727
+
+2009-07-27  Patrick Ohly  <patrick.ohly@intel.com>
+
+
+       Merge commit 'origin/moblin-transifex'
+
+2009-07-27  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * Makefile-gen.am:
+
+       packaging: don't include development files in binary packages
+       (Bugzilla #4754)
+
+2009-07-27  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * configure-pre.in:
+       * src/gtk-ui/Makefile.am:
+
+       build: --enable-gui=all (Bugzilla #4753)
+
+2009-07-27  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * test/README.scheduleworld:
+
+       testing: document known issues with ScheduleWorld (#4369)
+
+2009-07-26  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/fi.po:
+
+       Updates to Finnish (fi) translation
+
+2009-07-25  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * test/ClientTest.cpp:
+       * test/ClientTest.h:
+
+       testing: added testSlowSyncSemantic
+
+2009-07-25  tomasgalicia  <tomas.galicia@intel.com>
+
+       * po/es.po:
+
+       Updates to Spanish (Castilian) (es) translation
+
+2009-07-24  GLSJPN_Yukari  <yukarix.yamashita@intel.com>
+
+       * po/ko.po:
+
+       Updates to Korean (ko) translation
+
 2009-07-24  Patrick Ohly  <patrick.ohly@intel.com>
 
 
index cb576e3..ae68d2b 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-ACLOCAL_AMFLAGS = -I m4
+ACLOCAL_AMFLAGS = -I m4 -I m4-repo
 
 SUBDIRS = src po test
 
@@ -20,6 +20,8 @@ CLEANFILES =
 
 TEST_README_FILES = $(wildcard $(srcdir)/test/README.*)
 
+DEV_FILE_PATTERN = $(1)/usr/etc $(1)/usr/include $(1)/usr/lib/*.so $(1)/usr/lib/*.a $(1)/usr/lib/*.la $(1)/usr/lib/*/*.la $(1)/usr/lib/pkgconfig
+
 # binary distribution as .tar.gz
 if COND_DBUS
 # when building with D-Bus, we have no choice: the service has to go into /usr
@@ -29,7 +31,7 @@ distbin : README NEWS COPYING $(TEST_README_FILES) INSTALL-tar-gz all
        @ [ "$(prefix)" == "/usr" ] || (echo "please reconfigure with --prefix=/usr"; exit 1 )
        rm -rf $(distdir)
        $(MAKE) DESTDIR=`pwd`/$(distdir) install
-       rm -rf $(distdir)/usr/etc
+       rm -rf $(call DEV_FILE_PATTERN, $(distdir))
        mkdir -p $(distdir)/usr/share/doc/syncevolution
        cp $(srcdir)/INSTALL-tar-gz $(distdir)/INSTALL
        cp $(srcdir)/README $(srcdir)/NEWS $(srcdir)/COPYING $(TEST_README_FILES) $(distdir)/usr/share/doc/syncevolution
@@ -42,6 +44,7 @@ distbin : README NEWS COPYING all
        @ [ "$(BINSUFFIX)" ] || (echo "please invoke with e.g. 'make distbin BINSUFFIX=debian-3.1'"; exit 1 ) 
        rm -rf $(distdir)
        $(MAKE) prefix=`pwd`/$(distdir) install
+       rm -rf $(call DEV_FILE_PATTERN, $(distdir))
        cp $(srcdir)/README $(srcdir)/NEWS $(srcdir)/COPYING $(TEST_README_FILES) $(distdir)
        tar zcf $(distdir)-$(BINSUFFIX).tar.gz $(distdir)
        rm -rf $(distdir)
@@ -113,13 +116,13 @@ deb rpm : dist/$(distdir) dist/debian/control doc-pak description-pak
                --pkgaltsource='http://www.estamos.de/projects/SyncML/' \
                --pkggroup='gnome' \
                --docdir=":$$docdir" cp -r `pwd`/$</usr/* /usr
+       if [ $@ == "rpm" ]; then cp /usr/src/rpm/RPMS/*/${PKGNAME}-${VERSION}-2.*.rpm .; fi
 
 .PHONY: dist/$(distdir) clean_dist
 dist/$(distdir): all
        rm -rf $@
        $(MAKE) install DESTDIR=`pwd`/$@
-       rm -rf $@/usr/etc $@/usr/include
-       find $@ -name *.la -o -name *.so -delete
+       rm -rf $(call DEV_FILE_PATTERN, $@)
 clean-local: clean_dist
 clean_dist:
        rm -rf dist doc-pak description-pak
index fd60827..44975e4 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-ACLOCAL_AMFLAGS = -I m4
+ACLOCAL_AMFLAGS = -I m4 -I m4-repo
 
 SUBDIRS = src po test
 
@@ -20,6 +20,8 @@ CLEANFILES =
 
 TEST_README_FILES = $(wildcard $(srcdir)/test/README.*)
 
+DEV_FILE_PATTERN = $(1)/usr/etc $(1)/usr/include $(1)/usr/lib/*.so $(1)/usr/lib/*.a $(1)/usr/lib/*.la $(1)/usr/lib/*/*.la $(1)/usr/lib/pkgconfig
+
 # binary distribution as .tar.gz
 if COND_DBUS
 # when building with D-Bus, we have no choice: the service has to go into /usr
@@ -29,7 +31,7 @@ distbin : README NEWS COPYING $(TEST_README_FILES) INSTALL-tar-gz all
        @ [ "$(prefix)" == "/usr" ] || (echo "please reconfigure with --prefix=/usr"; exit 1 )
        rm -rf $(distdir)
        $(MAKE) DESTDIR=`pwd`/$(distdir) install
-       rm -rf $(distdir)/usr/etc
+       rm -rf $(call DEV_FILE_PATTERN, $(distdir))
        mkdir -p $(distdir)/usr/share/doc/syncevolution
        cp $(srcdir)/INSTALL-tar-gz $(distdir)/INSTALL
        cp $(srcdir)/README $(srcdir)/NEWS $(srcdir)/COPYING $(TEST_README_FILES) $(distdir)/usr/share/doc/syncevolution
@@ -42,6 +44,7 @@ distbin : README NEWS COPYING all
        @ [ "$(BINSUFFIX)" ] || (echo "please invoke with e.g. 'make distbin BINSUFFIX=debian-3.1'"; exit 1 ) 
        rm -rf $(distdir)
        $(MAKE) prefix=`pwd`/$(distdir) install
+       rm -rf $(call DEV_FILE_PATTERN, $(distdir))
        cp $(srcdir)/README $(srcdir)/NEWS $(srcdir)/COPYING $(TEST_README_FILES) $(distdir)
        tar zcf $(distdir)-$(BINSUFFIX).tar.gz $(distdir)
        rm -rf $(distdir)
@@ -113,13 +116,13 @@ deb rpm : dist/$(distdir) dist/debian/control doc-pak description-pak
                --pkgaltsource='http://www.estamos.de/projects/SyncML/' \
                --pkggroup='gnome' \
                --docdir=":$$docdir" cp -r `pwd`/$</usr/* /usr
+       if [ $@ == "rpm" ]; then cp /usr/src/rpm/RPMS/*/${PKGNAME}-${VERSION}-2.*.rpm .; fi
 
 .PHONY: dist/$(distdir) clean_dist
 dist/$(distdir): all
        rm -rf $@
        $(MAKE) install DESTDIR=`pwd`/$@
-       rm -rf $@/usr/etc $@/usr/include
-       find $@ -name *.la -o -name *.so -delete
+       rm -rf $(call DEV_FILE_PATTERN, $@)
 clean-local: clean_dist
 clean_dist:
        rm -rf dist doc-pak description-pak
index fe75c91..9eb0cdd 100644 (file)
@@ -135,7 +135,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -257,7 +259,7 @@ sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-ACLOCAL_AMFLAGS = -I m4
+ACLOCAL_AMFLAGS = -I m4 -I m4-repo
 SUBDIRS = src po test
 EXTRA_DIST = \
        HACKING \
@@ -273,6 +275,7 @@ EXTRA_DIST = \
 MAINTAINERCLEANFILES = Makefile.in config.h.in config.guess config.sub configure depcomp install-sh ltmain.sh missing mkinstalldirs 
 CLEANFILES = 
 TEST_README_FILES = $(wildcard $(srcdir)/test/README.*)
+DEV_FILE_PATTERN = $(1)/usr/etc $(1)/usr/include $(1)/usr/lib/*.so $(1)/usr/lib/*.a $(1)/usr/lib/*.la $(1)/usr/lib/*/*.la $(1)/usr/lib/pkgconfig
 IPHONE_FILENAME = syncevolution-$(VERSION)-iphone.zip
 TYPE_deb = -D
 TYPE_rpm = -R
@@ -758,7 +761,7 @@ uninstall-am:
 @COND_DBUS_TRUE@       @ [ "$(prefix)" == "/usr" ] || (echo "please reconfigure with --prefix=/usr"; exit 1 )
 @COND_DBUS_TRUE@       rm -rf $(distdir)
 @COND_DBUS_TRUE@       $(MAKE) DESTDIR=`pwd`/$(distdir) install
-@COND_DBUS_TRUE@       rm -rf $(distdir)/usr/etc
+@COND_DBUS_TRUE@       rm -rf $(call DEV_FILE_PATTERN, $(distdir))
 @COND_DBUS_TRUE@       mkdir -p $(distdir)/usr/share/doc/syncevolution
 @COND_DBUS_TRUE@       cp $(srcdir)/INSTALL-tar-gz $(distdir)/INSTALL
 @COND_DBUS_TRUE@       cp $(srcdir)/README $(srcdir)/NEWS $(srcdir)/COPYING $(TEST_README_FILES) $(distdir)/usr/share/doc/syncevolution
@@ -770,6 +773,7 @@ uninstall-am:
 @COND_DBUS_FALSE@      @ [ "$(BINSUFFIX)" ] || (echo "please invoke with e.g. 'make distbin BINSUFFIX=debian-3.1'"; exit 1 ) 
 @COND_DBUS_FALSE@      rm -rf $(distdir)
 @COND_DBUS_FALSE@      $(MAKE) prefix=`pwd`/$(distdir) install
+@COND_DBUS_FALSE@      rm -rf $(call DEV_FILE_PATTERN, $(distdir))
 @COND_DBUS_FALSE@      cp $(srcdir)/README $(srcdir)/NEWS $(srcdir)/COPYING $(TEST_README_FILES) $(distdir)
 @COND_DBUS_FALSE@      tar zcf $(distdir)-$(BINSUFFIX).tar.gz $(distdir)
 @COND_DBUS_FALSE@      rm -rf $(distdir)
@@ -820,13 +824,13 @@ deb rpm : dist/$(distdir) dist/debian/control doc-pak description-pak
                --pkgaltsource='http://www.estamos.de/projects/SyncML/' \
                --pkggroup='gnome' \
                --docdir=":$$docdir" cp -r `pwd`/$</usr/* /usr
+       if [ $@ == "rpm" ]; then cp /usr/src/rpm/RPMS/*/${PKGNAME}-${VERSION}-2.*.rpm .; fi
 
 .PHONY: dist/$(distdir) clean_dist
 dist/$(distdir): all
        rm -rf $@
        $(MAKE) install DESTDIR=`pwd`/$@
-       rm -rf $@/usr/etc $@/usr/include
-       find $@ -name *.la -o -name *.so -delete
+       rm -rf $(call DEV_FILE_PATTERN, $@)
 clean-local: clean_dist
 clean_dist:
        rm -rf dist doc-pak description-pak
diff --git a/NEWS b/NEWS
index 3c75d1d..701eeaf 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,219 @@
+SyncEvolution 0.8.1 -> 0.9, 12.08.2009
+--------------------------------------
+Synthesis SyncML Engine version: see src/synthesis/ChangeLog
+
+This is a major new release, with first steps towards further improvements.
+From this release on, the Synthesis SyncML engine will be the
+underlying SyncML and data conversion engine.
+
+A native GTK GUI is now included. The "sync-ui" program depends on a
+backend D-Bus service ("synevo-dbus-server") and several auxiliary
+files. Therefore, it only runs without hacks after installation in 
+/usr (possible with .deb, .rpm and binary .tar.gz archives, and
+with "sudo make install", after compiling from source). The
+normal command line tool still works without being installed.
+
+In this release, the data handling model was changed from "all items
+are sent verbatim to the SyncML server" to "parse and convert". The
+argument for the former approach was that the SyncML server should be
+the only entity in the system which does data conversion. The previous
+releases already had to deviate from this approach to accommodate for
+minor client/server incompatibilities and for vCard 2.1 support, so the
+new approach just takes it one step further.
+
+The main reason for going to full semantic conversion is vCalendar 1.0
+support. Support by servers for iCalendar 2.0, the only format
+supported by 0.8.1, is often still incomplete or even non-existent. By
+doing the conversion on the client side, SyncEvolution is now able to
+synchronize events and tasks with a wider variety of servers.
+
+It is still true that properties not supported by a server cannot
+be synchronized to other devices, so using a server with full
+iCalendar 2.0 support is recommended. But in contrast to 0.8.1,
+information that can be stored only locally is no longer lost when
+receiving an incomplete update from the SyncML server, thanks to
+intelligent merging, provided by the Synthesis engine. This depends on
+an accurate description of the server's capabilities, which might not
+be provided by all of them. This still needs to be tested in more detail.
+
+Interoperability with servers tested extensively in this release.
+The following servers are now supported:
+
+* ScheduleWorld. There is very complete support for Evolution data. The
+  only known issues are around resuming from an interrupted sync.
+
+* Google contact sync.
+
+  Google follows the vCard 2.1 specification, and thus does not support
+  some of the vCard 3.0 additions, nor some of the common extensions. As
+  a result, several properties are not synchronized (nickname, birthday,
+  spouse/manager, URLs, ...). Only one top-level organization seems to
+  be supported. For details, see README.google.
+
+  Regarding Google's SyncML support, refresh-from-client and
+  one-way-from-client sync modes are not supported. Deleting contacts
+  moves them out of the main address without deleting them permanently. When
+  adding such a contact again, the server discards the data sent by the
+  client and recreates the contact with the data that it remembered.
+
+  Because SSL certificate checking for Google works only with libsoup
+  if the platform has a patched libsoup
+  (http://bugzilla.gnome.org/show_bug.cgi?id=589323) or libsoup >=
+  2.28, certificate checking remains turned off by default for
+  Google. If your platform has a suitable libsoup (like Moblin 2.0),
+  then enable checking with:
+
+  syncevolution --configure \
+                --sync-property SSLVerifyServer=true \
+                --sync-property SSLVerifyHost=true \
+                google
+
+* Funambol, with calendar and task support. Funambol supports iCalendar 2.0
+  in the current server, so this is enabled in the configuration template.
+  Not all iCalendar 2.0 features are supported by the server,
+  most notably support for meetings (drops attendees), meeting
+  invitations (drops UID), detached recurrences
+  (drops RECURRENCE-ID). See README.funambol for details.
+
+  Interoperability with the Funambol server was improved by adding
+  support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY,
+  #2418). Lost ACTION property has a work around (#2422).
+
+  To enable that support in an existing configuration so that it
+  exchanges items in the more suitable iCalendar 2.0 format, use:
+
+  syncevolution --configure --source-type sync=two-way \
+                funambol calendar todo
+  syncevolution --configure --source-type type='calendar:text/calendar!' \
+                funambol calendar
+  syncevolution --configure --source-type type='todo:text/calendar!' \
+                funambol todo
+
+  Without the exclamation mark, format auto-negotiation would pick the
+  less capable vCalendar 1.0 format because that is marked as preferred
+  by the server.
+
+
+*** WARNING ***: After switching from a previous release to the
+current one, or vice versa, do a "syncevolution --sync
+refresh-from-server" or "--sync refresh-from-client" (depending on
+which side has the authoritative copy of the data) once, to get client
+and server into a consistent state. Not doing so can result in
+applying the same changes to the server multiple times, and thus
+duplicates.
+
+Other changes in detail:
+
+* vCalendar 1.0 is now supported.
+
+* Both libcurl and libsoup can be selected at compile time as HTTP(S)
+  transport mechanism.
+
+* SF #2101015: Expect: 100-continue header results in 417 Error with proxy.
+  Should no longer occur with the HTTP transports in this release.
+
+* SF #1874805: Syncing with Funambol results in loosing all-day property.
+  This now works thanks to the Synthesis data conversion rules.
+
+* SF #2586600: Synchronisation with mobical.net fails in 0.8.1.
+  Works now, but there are some known issues (Bugzilla #3009)
+  and therefore mobical.net is not officially supported yet.
+
+* SF #2542968: Separator for categories should not be escaped.
+  Done correctly by the Synthesis vcard conversion.
+
+* bug fix: Evolution notes with only a summary and no description were
+  not sent correctly to the server. Instead of sending the summary,
+  an empty text was sent. 
+
+* CTRL-C no longer kills SyncEvolution right away. Instead it
+  asks the server to suspend the session. If that takes too
+  long, then pressing CTRL-C twice quickly will abort the sync
+  without waiting for the server (Warning, this may lead to a
+  slow sync in the next session).
+
+* WBXML is enabled by default now, except for Funambol (#2415).
+  Using WBXML reduces message sizes and increases parsing
+  performance.
+
+* New configuration templates can be added to
+  /etc/default/applications/syncevolution. These templates may contain
+  icons, which are used by the GUI (no icons shipped right now).
+
+* Information about previous synchronization sessions is now stored in a
+  machine-readable format and can be accessed using the new
+  --print-sessions options. The output of this information is more
+  complete and more nicely formatted.
+
+* --status now shows not only data changes since the last sync, but also
+  item changes (see README for the difference between the two).
+
+* The new --restore option allows restoring local data to the state as
+  it was before or after a sync. For this to work, "logdir" must be set
+  (done by default for new configurations). The format of database dumps
+  was changed to implement this feature. Instead of in a flat file,
+  items are now saved as individual files in a directory. To get the
+  previous format back (for example, to import as one .vcf or .ics file
+  manually) concatenate these files.
+
+* With –-remove, one can remove configurations. It leaves data files and
+  the local databases untouched.
+
+
+Known issues:
+
+* The GUI includes the number of locally deleted items during a
+  refresh-from-server sync in the number of "received changes"
+  (#5185), which is a bit misleading. This is a result of #3314,
+  which introduced changes not "received" from the server.
+
+* When a network error occurs and the client
+  never notices that the connection to the server was lost, 
+  it will hang forever, waiting for the server's reply (#3427).
+
+* The file backend now works only for data formats understood
+  by SyncEvolution and the Synthesis engine. Items are parsed
+  when exchanging them among the backend, engine, and server,
+  in contrast to 0.8.1, where item content was not touched
+  locally (#5046).
+
+* The ZYB.com server sends conflicting sync anchors, so
+  most syncs don't work as expected (#2424).
+
+
+SyncEvolution 0.9 beta 3 hotfix -> 0.9 final, 12.08.2009
+--------------------------------------------------------
+
+Because SSL certificate checking for Google only works with libsoup if
+the platform has a patched libsoup
+(http://bugzilla.gnome.org/show_bug.cgi?id=589323) or libsoup >= 2.28,
+certificate checking remains turned off by default for Google. If your
+platform has a suitable libsoup (like Moblin 2.0), then enable
+checking with:
+
+  syncevolution --configure \
+                --sync-property SSLVerifyServer=true \
+                --sync-property SSLVerifyHost=true \
+                google
+
+Only minor changes:
+* updated translations
+* refresh-from-server syncs now report how many items were
+  deleted locally at the start of the sync (Bugzilla #3314).
+  The GUI includes the number of locally deleted items during a
+  refresh-from-server sync in the number of "received changes",
+  which is a bit misleading (#5185).
+* fixed build issue on Fedora 11/g++ 4.4 (Bugzilla #5061)
+* some build and test improvements
+* proper fix for D-Bus error functions (#4919)
+* improve sync-ui startup time by avoiding an unnecessary
+  copying of the sync config into itself (#5021)
+* adapted tooltip style (used for SyncML server links) to new
+  Moblin theme, they weren't visible earlier (#5017)
+* notify zone selector in Moblin 2.0 about sync-ui startup (#4752)
+* sync-ui: minor layout change for fatal error situation
+
+
 SyncEvolution 0.9 beta 3 -> 0.9 beta 3 hotfix, 23.07.2009
 ---------------------------------------------------------
 
@@ -166,7 +382,7 @@ minor client/server incompatibilities and for vCard 2.1 support.
 
 The main reason for going to full semantic conversion is vCalendar 1.0
 support. Support by servers for iCalendar 2.0, the only format
-supported by 0.8.1, is often still incomplete or even non-existant. By
+supported by 0.8.1, is often still incomplete or even non-existent. By
 doing the conversion on the client side, SyncEvolution is now able to
 synchronize events and tasks with a wider variety of servers.
 
index 18a51eb..ac4517c 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for syncevolution 0.8.1+0.9+beta3+20090723.
+# Generated by GNU Autoconf 2.61 for syncevolution 0.9.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -726,8 +726,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='syncevolution'
 PACKAGE_TARNAME='syncevolution'
-PACKAGE_VERSION='0.8.1+0.9+beta3+20090723'
-PACKAGE_STRING='syncevolution 0.8.1+0.9+beta3+20090723'
+PACKAGE_VERSION='0.9'
+PACKAGE_STRING='syncevolution 0.9'
 PACKAGE_BUGREPORT=''
 
 # Factoring default headers for most tests.
@@ -919,6 +919,8 @@ POSUB
 MKINSTALLDIRS
 SYNCEVOLUTION_LOCALEDIR
 GETTEXT_PACKAGE
+GUI_PROGRAMS
+GUI_DESKTOP_FILES
 CXX
 CXXFLAGS
 ac_ct_CXX
@@ -1521,7 +1523,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 syncevolution 0.8.1+0.9+beta3+20090723 to adapt to many kinds of systems.
+\`configure' configures syncevolution 0.9 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1591,7 +1593,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of syncevolution 0.8.1+0.9+beta3+20090723:";;
+     short | recursive ) echo "Configuration of syncevolution 0.9:";;
    esac
   cat <<\_ACEOF
 
@@ -1619,9 +1621,10 @@ Optional Features:
   --enable-libcurl        enable libcurl as transport layer
   --enable-libsoup        enable libsoup as transport layer
   --enable-gui=gui type   enables building the GTK+ UI that uses the
-                          SyncEvolution DBus API. Options: gtk, moblin. "gtk"
-                          is the default for --enable-gui without type. No GUI
-                          is built when --enable-gui is not used. --enable-gui
+                          SyncEvolution DBus API. Options: gtk, moblin, all
+                          (builds sync-ui-gtk and sync-ui-moblin) "gtk" is the
+                          default for --enable-gui without type. No GUI is
+                          built when --enable-gui is not used. --enable-gui
                           implies --enable-dbus.
   --enable-dbus-service   enables building the dbus service executable and the
                           wrapper library for it
@@ -1802,7 +1805,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-syncevolution configure 0.8.1+0.9+beta3+20090723
+syncevolution configure 0.9
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1816,7 +1819,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by syncevolution $as_me 0.8.1+0.9+beta3+20090723, which was
+It was created by syncevolution $as_me 0.9, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2506,7 +2509,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='syncevolution'
- VERSION='0.8.1+0.9+beta3+20090723'
+ VERSION='0.9'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5256,6 +5259,8 @@ if test "${enable_gui+set}" = set; then
                     enable_gui=moblin
                 elif test "$enableval" = "no" ; then
                     enable_gui=no
+                elif test "$enableval" = "all" ; then
+                    enable_gui=all
                 else
                     { { echo "$as_me:$LINENO: error: Unknown gui type: '$enableval'" >&5
 echo "$as_me: error: Unknown gui type: '$enableval'" >&2;}
@@ -5600,6 +5605,17 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+# decide which sync-ui(s) we are building:
+# sync-ui (in either GTK or Moblin mode) or both (in separate binaries)
+case $enable_gui in
+     all) GUI_PROGRAMS='sync-ui-gtk${EXEEXT} sync-ui-moblin${EXEEXT}'; GUI_DESKTOP_FILES="sync-gtk.desktop sync-moblin.desktop";;
+     gtk|moblin) GUI_PROGRAMS='sync-ui${EXEEXT}'; GUI_DESKTOP_FILES="sync.desktop";;
+     no) GUI_PROGRAMS=; GUI_DESKTOP_FILES=;;
+     *) { { echo "$as_me:$LINENO: error: Unknown enable_gui type: '$enable_gui'" >&5
+echo "$as_me: error: Unknown enable_gui type: '$enable_gui'" >&2;}
+   { (exit 1); exit 1; }; }
+esac
+
 if test $enable_gui != "no"; then
     gui_modules="glib-2.0 dbus-glib-1 >= 0.60 gtk+-2.0 libglade-2.0 gconf-2.0 gio-2.0 gnome-keyring-1"
 
@@ -8046,6 +8062,8 @@ fi
 
 
 
+
+
 # Boost headers: boost/foreach.hpp is needed (1.33/Debian Etch
 # doesn't have it, 1.34/Ubuntu 8.10 Hardy does). 1.35 is available
 # as Debian Etch backport.
@@ -11240,7 +11258,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 11243 "configure"' > conftest.$ac_ext
+  echo '#line 11261 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -13345,11 +13363,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13348: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13366: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13352: \$? = $ac_status" >&5
+   echo "$as_me:13370: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13635,11 +13653,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13638: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13656: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13642: \$? = $ac_status" >&5
+   echo "$as_me:13660: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13739,11 +13757,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13742: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13760: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13746: \$? = $ac_status" >&5
+   echo "$as_me:13764: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16116,7 +16134,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 16119 "configure"
+#line 16137 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16216,7 +16234,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 16219 "configure"
+#line 16237 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18617,11 +18635,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18620: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18638: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:18624: \$? = $ac_status" >&5
+   echo "$as_me:18642: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -18721,11 +18739,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18724: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18742: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:18728: \$? = $ac_status" >&5
+   echo "$as_me:18746: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -20319,11 +20337,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:20322: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:20340: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:20326: \$? = $ac_status" >&5
+   echo "$as_me:20344: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -20423,11 +20441,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:20426: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:20444: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:20430: \$? = $ac_status" >&5
+   echo "$as_me:20448: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -22643,11 +22661,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:22646: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:22664: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:22650: \$? = $ac_status" >&5
+   echo "$as_me:22668: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -22933,11 +22951,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:22936: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:22954: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:22940: \$? = $ac_status" >&5
+   echo "$as_me:22958: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -23037,11 +23055,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:23040: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:23058: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:23044: \$? = $ac_status" >&5
+   echo "$as_me:23062: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -26435,7 +26453,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by syncevolution $as_me 0.8.1+0.9+beta3+20090723, which was
+This file was extended by syncevolution $as_me 0.9, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26488,7 +26506,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-syncevolution config.status 0.8.1+0.9+beta3+20090723
+syncevolution config.status 0.9
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -26876,6 +26894,8 @@ POSUB!$POSUB$ac_delim
 MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim
 SYNCEVOLUTION_LOCALEDIR!$SYNCEVOLUTION_LOCALEDIR$ac_delim
 GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim
+GUI_PROGRAMS!$GUI_PROGRAMS$ac_delim
+GUI_DESKTOP_FILES!$GUI_DESKTOP_FILES$ac_delim
 CXX!$CXX$ac_delim
 CXXFLAGS!$CXXFLAGS$ac_delim
 ac_ct_CXX!$ac_ct_CXX$ac_delim
@@ -26915,8 +26935,6 @@ build!$build$ac_delim
 build_cpu!$build_cpu$ac_delim
 build_vendor!$build_vendor$ac_delim
 build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -26958,6 +26976,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+host!$host$ac_delim
+host_cpu!$host_cpu$ac_delim
 host_vendor!$host_vendor$ac_delim
 host_os!$host_os$ac_delim
 SED!$SED$ac_delim
@@ -26980,7 +27000,7 @@ LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 20; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
index 09164ad..d0ecf89 100644 (file)
@@ -1,7 +1,7 @@
 dnl -*- mode: Autoconf; -*-
 dnl Invoke autogen.sh to produce a configure script.
 
-AC_INIT([syncevolution], [0.8.1+0.9+beta3+20090723])
+AC_INIT([syncevolution], [0.9])
 AM_INIT_AUTOMAKE([tar-ustar])
 AC_CONFIG_MACRO_DIR([m4])
 define([SYNTHESISSRC_REPO], [])
@@ -209,7 +209,7 @@ AC_PATH_PROG(XSLT, xsltproc)
 AC_ARG_ENABLE(gui,
               AS_HELP_STRING([--enable-gui[=gui type]],
                              [enables building the GTK+ UI that uses the SyncEvolution DBus API.
-                              Options: gtk, moblin.
+                              Options: gtk, moblin, all (builds sync-ui-gtk and sync-ui-moblin)
                               "gtk" is the default for --enable-gui without type. No GUI is
                               built when --enable-gui is not used.
                               --enable-gui implies --enable-dbus.]),
@@ -221,6 +221,8 @@ AC_ARG_ENABLE(gui,
                     enable_gui=moblin
                 elif test "$enableval" = "no" ; then
                     enable_gui=no
+                elif test "$enableval" = "all" ; then
+                    enable_gui=all
                 else
                     AC_ERROR([Unknown gui type: '$enableval'])
                 fi
@@ -270,6 +272,15 @@ DBUS_SERVICES_DIR="${datadir}/dbus-1/services"
 AC_SUBST(DBUS_SERVICES_DIR)
 AC_DEFINE_UNQUOTED(DBUS_SERVICES_DIR, "$DBUS_SERVICES_DIR", [Location of D-Bus services directory])
 
+# decide which sync-ui(s) we are building:
+# sync-ui (in either GTK or Moblin mode) or both (in separate binaries)
+case $enable_gui in
+     all) GUI_PROGRAMS='sync-ui-gtk${EXEEXT} sync-ui-moblin${EXEEXT}'; GUI_DESKTOP_FILES="sync-gtk.desktop sync-moblin.desktop";;
+     gtk|moblin) GUI_PROGRAMS='sync-ui${EXEEXT}'; GUI_DESKTOP_FILES="sync.desktop";;
+     no) GUI_PROGRAMS=; GUI_DESKTOP_FILES=;;
+     *) AC_ERROR([Unknown enable_gui type: '$enable_gui'])
+esac
+
 if test $enable_gui != "no"; then
     gui_modules="glib-2.0 dbus-glib-1 >= 0.60 gtk+-2.0 libglade-2.0 gconf-2.0 gio-2.0 gnome-keyring-1"
 
@@ -296,6 +307,8 @@ AC_SUBST(SYNCEVOLUTION_LOCALEDIR)
 AC_SUBST(GETTEXT_PACKAGE)
 AC_SUBST(GUI_CFLAGS)
 AC_SUBST(GUI_LIBS)
+AC_SUBST(GUI_PROGRAMS)
+AC_SUBST(GUI_DESKTOP_FILES)
 
 
 # Boost headers: boost/foreach.hpp is needed (1.33/Debian Etch
index 594e374..257a6bb 100644 (file)
@@ -1,7 +1,7 @@
 dnl -*- mode: Autoconf; -*-
 dnl Invoke autogen.sh to produce a configure script.
 
-AC_INIT([syncevolution], [0.8.1+0.9+beta3+20090723])
+AC_INIT([syncevolution], [0.9])
 AM_INIT_AUTOMAKE([tar-ustar])
 AC_CONFIG_MACRO_DIR([m4])
 define([SYNTHESISSRC_REPO], [])
@@ -209,7 +209,7 @@ AC_PATH_PROG(XSLT, xsltproc)
 AC_ARG_ENABLE(gui,
               AS_HELP_STRING([--enable-gui[=gui type]],
                              [enables building the GTK+ UI that uses the SyncEvolution DBus API.
-                              Options: gtk, moblin.
+                              Options: gtk, moblin, all (builds sync-ui-gtk and sync-ui-moblin)
                               "gtk" is the default for --enable-gui without type. No GUI is
                               built when --enable-gui is not used.
                               --enable-gui implies --enable-dbus.]),
@@ -221,6 +221,8 @@ AC_ARG_ENABLE(gui,
                     enable_gui=moblin
                 elif test "$enableval" = "no" ; then
                     enable_gui=no
+                elif test "$enableval" = "all" ; then
+                    enable_gui=all
                 else
                     AC_ERROR([Unknown gui type: '$enableval'])
                 fi
@@ -270,6 +272,15 @@ DBUS_SERVICES_DIR="${datadir}/dbus-1/services"
 AC_SUBST(DBUS_SERVICES_DIR)
 AC_DEFINE_UNQUOTED(DBUS_SERVICES_DIR, "$DBUS_SERVICES_DIR", [Location of D-Bus services directory])
 
+# decide which sync-ui(s) we are building:
+# sync-ui (in either GTK or Moblin mode) or both (in separate binaries)
+case $enable_gui in
+     all) GUI_PROGRAMS='sync-ui-gtk${EXEEXT} sync-ui-moblin${EXEEXT}'; GUI_DESKTOP_FILES="sync-gtk.desktop sync-moblin.desktop";;
+     gtk|moblin) GUI_PROGRAMS='sync-ui${EXEEXT}'; GUI_DESKTOP_FILES="sync.desktop";;
+     no) GUI_PROGRAMS=; GUI_DESKTOP_FILES=;;
+     *) AC_ERROR([Unknown enable_gui type: '$enable_gui'])
+esac
+
 if test $enable_gui != "no"; then
     gui_modules="glib-2.0 dbus-glib-1 >= 0.60 gtk+-2.0 libglade-2.0 gconf-2.0 gio-2.0 gnome-keyring-1"
 
@@ -296,6 +307,8 @@ AC_SUBST(SYNCEVOLUTION_LOCALEDIR)
 AC_SUBST(GETTEXT_PACKAGE)
 AC_SUBST(GUI_CFLAGS)
 AC_SUBST(GUI_LIBS)
+AC_SUBST(GUI_PROGRAMS)
+AC_SUBST(GUI_DESKTOP_FILES)
 
 
 # Boost headers: boost/foreach.hpp is needed (1.33/Debian Etch
index e80bcd0..df72093 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,11 +1,10 @@
-#: ../src/gtk-ui/sync-ui.c:763
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-22 09:19+0000\n"
+"POT-Creation-Date: 2009-07-29 09:20+0000\n"
 "PO-Revision-Date: \n"
-"Last-Translator: Tomás Galicia <tomas.galicia@intel.com>\n"
+"Last-Translator: Gonzalo Velasquez <gonzalox.e.velasquez@intel.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -35,8 +34,7 @@ msgstr "Nota"
 # Error while saving the current service into the configuration system GConf
 #: ../src/gtk-ui/sync-ui.c:319
 msgid "Failed to save current service in GConf configuration system"
-msgstr ""
-"Error al guardar el servicio actual en el systema de configuración GConf"
+msgstr "Error al guardar el servicio actual en el systema de configuración GConf"
 
 # Error while saving the configuration of the service in SyncEvolution
 #: ../src/gtk-ui/sync-ui.c:330
@@ -46,8 +44,7 @@ msgstr "Error al guardar la configuración del servicio en SyncEvolution"
 # Error while saving the current service into the configuration system GConf
 #: ../src/gtk-ui/sync-ui.c:415
 msgid "Failed to get service configuration from SyncEvolution"
-msgstr ""
-"Error al guardar el servicio actual en el systema de configuración GConf"
+msgstr "Error al guardar el servicio actual en el systema de configuración GConf"
 
 # Error while deleting the configuration of the service from SyncEvolution
 #: ../src/gtk-ui/sync-ui.c:478
@@ -61,8 +58,7 @@ msgstr "El servicio debe llamarse de alguna manera y tener una URL"
 #. sync is no longer in progress for some reason
 #: ../src/gtk-ui/sync-ui.c:674
 msgid "Failed to cancel: sync was no longer in progress"
-msgstr ""
-"Error durante la cancelación: ya no estaba efectuándose la sincronización"
+msgstr "Error durante la cancelación: ya no estaba efectuándose la sincronización"
 
 # Error during the cancellation of the synchronization
 #: ../src/gtk-ui/sync-ui.c:678
@@ -81,21 +77,13 @@ msgstr "Estamos intentando cancelar la sincronización"
 
 #: ../src/gtk-ui/sync-ui.c:703
 #, c-format
-msgid ""
-"Do you want to delete all local data and replace it with data from %s? This "
-"is not usually advised."
-msgstr ""
-"¿Quieres borrar todos los datos locales y sustituirlos por los datos de %s? "
-"Normalmente, no es recomendable."
+msgid "Do you want to delete all local data and replace it with data from %s? This is not usually advised."
+msgstr "¿Quieres borrar todos los datos locales y sustituirlos por los datos de %s? Normalmente, no es recomendable."
 
 #: ../src/gtk-ui/sync-ui.c:708
 #, c-format
-msgid ""
-"Do you want to delete all data in %s and replace it with your local data? "
-"This is not usually advised."
-msgstr ""
-"¿Quieres borrar todos los datos de %s y sustituirlos por los datos locales? "
-"Normalmente, no es recomendable."
+msgid "Do you want to delete all data in %s and replace it with your local data? This is not usually advised."
+msgstr "¿Quieres borrar todos los datos de %s y sustituirlos por los datos locales? Normalmente, no es recomendable."
 
 #: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
@@ -108,9 +96,7 @@ msgstr "Sí, borrar y reemplazar"
 # Synchronization won't take place because it has not been set with what it will be compared to
 #: ../src/gtk-ui/sync-ui.c:748
 msgid "No sources are enabled, not syncing"
-msgstr ""
-"No se hará la sincronización porque no se ha establecido con qué se va a "
-"hacer la comparación"
+msgstr "No se hará la sincronización porque no se ha establecido con qué se va a hacer la comparación"
 
 # A synchronization is already being processed
 #: ../src/gtk-ui/sync-ui.c:765
@@ -123,7 +109,7 @@ msgstr "Error al iniciar la sincronización"
 
 #: ../src/gtk-ui/sync-ui.c:772
 msgid "Starting sync"
-msgstr "Se está iniciando la sincronización"
+msgstr "Iniciando..."
 
 # Last synchronization happened a few seconds ago
 #: ../src/gtk-ui/sync-ui.c:797
@@ -165,16 +151,17 @@ msgstr "La última sincronización tuvo lugar hace %ld días"
 
 #: ../src/gtk-ui/sync-ui.c:900
 msgid "Sync again"
-msgstr "Sincronizar otra vez"
+msgstr "¡Sincronízate!"
 
-#: ../src/gtk-ui/sync-ui.c:902 ../src/gtk-ui/ui.glade.h:29
+#: ../src/gtk-ui/sync-ui.c:902
+#: ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
-msgstr "Sincronizar ahora"
+msgstr "¡Sincronízate!"
 
 # Synchronization is taking place
 #: ../src/gtk-ui/sync-ui.c:911
 msgid "Syncing"
-msgstr "Se está efectuando la sincronización"
+msgstr "Sincronizando..."
 
 #: ../src/gtk-ui/sync-ui.c:917
 msgid "Cancel sync"
@@ -252,7 +239,8 @@ msgid "%s URI"
 msgstr "URI de %s"
 
 # Open the website
-#: ../src/gtk-ui/sync-ui.c:1675 ../src/gtk-ui/ui.glade.h:17
+#: ../src/gtk-ui/sync-ui.c:1675
+#: ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "Abrir el sitio web"
 
@@ -264,9 +252,7 @@ msgstr "Configurar y usar"
 # Error while obtaining the list of services configured manually from SyncEvolution
 #: ../src/gtk-ui/sync-ui.c:1725
 msgid "Failed to get list of manually setup services from SyncEvolution"
-msgstr ""
-"Error al obtener de SyncEvolution la lista de servicios establecidos "
-"manualmente"
+msgstr "Error al obtener de SyncEvolution la lista de servicios establecidos manualmente"
 
 #: ../src/gtk-ui/sync-ui.c:1766
 msgid "Failed to get list of supported services from SyncEvolution"
@@ -383,22 +369,23 @@ msgstr "Error: %d"
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "El servicio de sincronización D-Bus se cerró inesperadamente"
 
-#: ../src/gtk-ui/sync-ui.c:1988 ../src/gtk-ui/sync-ui.c:2039
+#: ../src/gtk-ui/sync-ui.c:1988
+#: ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
-msgstr "Falló la sincronización"
+msgstr "No funcionó"
 
 #: ../src/gtk-ui/sync-ui.c:2031
 msgid "Sync complete"
-msgstr "Ha terminado la sincronización"
+msgstr "¡Sincronizado!"
 
 #: ../src/gtk-ui/sync-ui.c:2036
 msgid "Sync canceled"
-msgstr "Se ha cancelado la sincronización"
+msgstr "Cancelada"
 
 #. NOTE extra1 can be error here
 #: ../src/gtk-ui/sync-ui.c:2054
 msgid "Ending sync"
-msgstr "Se está terminando la sincronización"
+msgstr "Terminando..."
 
 #. TRANSLATORS: placeholder is a source name (e.g. 'Calendar') in a progress text
 #: ../src/gtk-ui/sync-ui.c:2078
@@ -446,7 +433,7 @@ msgstr "<big>Servicios compatibles</big>"
 
 #: ../src/gtk-ui/ui.glade.h:7
 msgid "Add new service"
-msgstr "Agregar un nuevo servicio"
+msgstr "Agregar servicio"
 
 #: ../src/gtk-ui/ui.glade.h:8
 msgid "Back to sync"
@@ -457,7 +444,7 @@ msgid ""
 "Change sync\n"
 "service"
 msgstr ""
-"Cambiar servicio\n"
+"Cambiar el servicio\n"
 "de sincronización"
 
 #: ../src/gtk-ui/ui.glade.h:11
@@ -479,13 +466,11 @@ msgstr "Editar la configuración del servicio"
 
 #: ../src/gtk-ui/ui.glade.h:15
 msgid ""
-"If you don't see your service above but know that your sync provider uses "
-"SyncML\n"
+"If you don't see your service above but know that your sync provider uses SyncML\n"
 "you can setup a service manually."
 msgstr ""
-"If you don't see your service above but know that your sync provider uses "
-"SyncML\n"
-"you can setup a service manually."
+"Si no puedes ver tú servicio de sincronización arriba, pero sabes que tú proveedor emplea SyncML\n"
+"puedes configurar el servicio manualmente."
 
 #: ../src/gtk-ui/ui.glade.h:18
 msgid "Merge local and remote data (recommended)"
@@ -515,7 +500,7 @@ msgstr "Nombre del servicio"
 # Configuration of the synchronization service
 #: ../src/gtk-ui/ui.glade.h:24
 msgid "Setup sync service"
-msgstr "Configuración del servicio de sincronización"
+msgstr "Ajustes del servicio de sincronización"
 
 # Synchronization needs an Internet connection.
 #: ../src/gtk-ui/ui.glade.h:25
@@ -530,26 +515,22 @@ msgstr ""
 msgid "Stop using this service"
 msgstr "Dejar de usar este servicio"
 
-#: ../src/gtk-ui/ui.glade.h:28 ../src/gtk-ui/sync.desktop.in.h:1
+#: ../src/gtk-ui/ui.glade.h:28
+#: ../src/gtk-ui/sync.desktop.in.h:1
 msgid "Sync"
 msgstr "Sincronizar"
 
 #: ../src/gtk-ui/ui.glade.h:30
-msgid ""
-"Synchronization is not available (D-Bus service does not answer), sorry."
-msgstr ""
-"Lo sentimos, pero la sincronización no está disponible (el servicio D-Bus no "
-"responde)."
+msgid "Synchronization is not available (D-Bus service does not answer), sorry."
+msgstr "Lo sentimos, pero la sincronización no está disponible (el servicio D-Bus no responde)."
 
 #: ../src/gtk-ui/ui.glade.h:31
 msgid ""
-"To sync you'll need a network connection and an account with a sync "
-"service.\n"
+"To sync you'll need a network connection and an account with a sync service.\n"
 "We support the following services: "
 msgstr ""
-"Para ejecutar la sincronización hacen falta una conexión de red y una "
-"cuenta\n"
-"en un servicio de syncronización. Son compatibles los siguientes servicios:"
+"Para ejecutar la sincronización hacen falta una conexión de red y una cuenta\n"
+"en un servicio de sincronización. Son compatibles los siguientes servicios:"
 
 #: ../src/gtk-ui/ui.glade.h:33
 msgid "Username"
@@ -570,3 +551,4 @@ msgstr "Al día"
 
 #~ msgid "Bring your data with you"
 #~ msgstr "Llévate tus datos"
+
index 4b80ca5..6ad7e8c 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -2,9 +2,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-15 09:18+0000\n"
+"POT-Creation-Date: 2009-07-27 09:20+0000\n"
 "PO-Revision-Date: \n"
-"Last-Translator: Omar Antila <omarx.s.antila@intel.com>\n"
+"Last-Translator: GLS <tomas.galicia@intel.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -45,327 +45,327 @@ msgstr "Palvelun määritysten saanti SyncEvolutionista epäonnistui"
 msgid "Failed to remove service configuration from SyncEvolution"
 msgstr "Palvelun määritysten poistaminen SyncEvolutionista epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:597
-msgid "Service must have a name"
-msgstr "Palvelulla pitää olla nimi"
+#: ../src/gtk-ui/sync-ui.c:598
+msgid "Service must have a name and server URL"
+msgstr "Palvelulla pitää olla nimi ja palvelimen URL"
 
 #. sync is no longer in progress for some reason
-#: ../src/gtk-ui/sync-ui.c:662
+#: ../src/gtk-ui/sync-ui.c:674
 msgid "Failed to cancel: sync was no longer in progress"
 msgstr "Peruminen epäonnistui: synkkaus ei ole enää käynnissä"
 
-#: ../src/gtk-ui/sync-ui.c:666
+#: ../src/gtk-ui/sync-ui.c:678
 msgid "Failed to cancel sync"
 msgstr "Synkkauksen peruminen epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:670
+#: ../src/gtk-ui/sync-ui.c:682
 msgid "Canceling sync"
 msgstr "Synkkaus perutaan"
 
-#: ../src/gtk-ui/sync-ui.c:684
+#: ../src/gtk-ui/sync-ui.c:696
 msgid "Trying to cancel sync"
 msgstr "Yritetään perua synkkaus"
 
-#: ../src/gtk-ui/sync-ui.c:691
+#: ../src/gtk-ui/sync-ui.c:703
 #, c-format
 msgid "Do you want to delete all local data and replace it with data from %s? This is not usually advised."
 msgstr "Haluatko poistaa kaikki paikalliset tiedot ja korvata ne tiedoilla kohteesta %s? Tämä ei ole yleensä suositeltavaa."
 
-#: ../src/gtk-ui/sync-ui.c:696
+#: ../src/gtk-ui/sync-ui.c:708
 #, c-format
 msgid "Do you want to delete all data in %s and replace it with your local data? This is not usually advised."
 msgstr "Haluatko poistaa kaikki tiedot kohteessa %s ja korvata ne paikallisilla tiedoillasi? Tämä ei ole yleensä suositeltavaa."
 
-#: ../src/gtk-ui/sync-ui.c:713
+#: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
 msgstr "Ei, peru synkkaus"
 
-#: ../src/gtk-ui/sync-ui.c:714
+#: ../src/gtk-ui/sync-ui.c:726
 msgid "Yes, delete and replace"
 msgstr "Kyllä, poista ja korvaa"
 
-#: ../src/gtk-ui/sync-ui.c:736
+#: ../src/gtk-ui/sync-ui.c:748
 msgid "No sources are enabled, not syncing"
 msgstr "Mitään kohteita ei ole otettu käyttöön. Synkkaus ei käynnissä."
 
-#: ../src/gtk-ui/sync-ui.c:753
+#: ../src/gtk-ui/sync-ui.c:765
 msgid "A sync is already in progress"
 msgstr "Synkkaus on jo meneillään"
 
-#: ../src/gtk-ui/sync-ui.c:755
+#: ../src/gtk-ui/sync-ui.c:767
 msgid "Failed to start sync"
 msgstr "Synkkauksen aloitus epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:760
+#: ../src/gtk-ui/sync-ui.c:772
 msgid "Starting sync"
 msgstr "Aloitetaan synkkaus"
 
-#: ../src/gtk-ui/sync-ui.c:785
+#: ../src/gtk-ui/sync-ui.c:797
 msgid "Last synced just seconds ago"
 msgstr "Synkattu viimeksi vain muutama sekunti sitten"
 
-#: ../src/gtk-ui/sync-ui.c:788
+#: ../src/gtk-ui/sync-ui.c:800
 msgid "Last synced a minute ago"
 msgstr "Synkattu viimeksi minuutti sitten"
 
-#: ../src/gtk-ui/sync-ui.c:791
+#: ../src/gtk-ui/sync-ui.c:803
 #, c-format
 msgid "Last synced %ld minutes ago"
 msgstr "Synkattu viimeksi %ld minuuttia sitten"
 
-#: ../src/gtk-ui/sync-ui.c:794
+#: ../src/gtk-ui/sync-ui.c:806
 msgid "Last synced an hour ago"
 msgstr "Synkattu viimeksi tunti sitten"
 
-#: ../src/gtk-ui/sync-ui.c:797
+#: ../src/gtk-ui/sync-ui.c:809
 #, c-format
 msgid "Last synced %ld hours ago"
 msgstr "Synkattu viimeksi %ld tuntia sitten"
 
 # last synced yesterday
-#: ../src/gtk-ui/sync-ui.c:800
+#: ../src/gtk-ui/sync-ui.c:812
 msgid "Last synced a day ago"
 msgstr "Synkattu viimeksi eilen"
 
-#: ../src/gtk-ui/sync-ui.c:803
+#: ../src/gtk-ui/sync-ui.c:815
 #, c-format
 msgid "Last synced %ld days ago"
 msgstr "Synkattu viimeksi %ld päivää sitten"
 
 # using taas instead of uudelleen to fix a truncation
-#: ../src/gtk-ui/sync-ui.c:888
+#: ../src/gtk-ui/sync-ui.c:900
 msgid "Sync again"
 msgstr "Synkkaa taas"
 
-#: ../src/gtk-ui/sync-ui.c:890
+#: ../src/gtk-ui/sync-ui.c:902
 #: ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
 msgstr "Synkkaa nyt"
 
-#: ../src/gtk-ui/sync-ui.c:899
+#: ../src/gtk-ui/sync-ui.c:911
 msgid "Syncing"
 msgstr "Synkkaus käynnissä"
 
-#: ../src/gtk-ui/sync-ui.c:905
+#: ../src/gtk-ui/sync-ui.c:917
 msgid "Cancel sync"
 msgstr "Peru synkkaus"
 
 #. TRANSLATORS: placeholder is a source name, shown with checkboxes in main window
-#: ../src/gtk-ui/sync-ui.c:1249
+#: ../src/gtk-ui/sync-ui.c:1261
 #, c-format
 msgid "%s (not supported by this service)"
 msgstr "%s (tämä palvelu ei tue tätä)"
 
-#: ../src/gtk-ui/sync-ui.c:1282
+#: ../src/gtk-ui/sync-ui.c:1294
 #, c-format
 msgid "There was one remote rejection."
 msgid_plural "There were %d remote rejections."
 msgstr[0] "Tapahtui yksi etähylkäys"
 msgstr[1] "Tapahtui %d etähylkäystä"
 
-#: ../src/gtk-ui/sync-ui.c:1287
+#: ../src/gtk-ui/sync-ui.c:1299
 #, c-format
 msgid "There was one local rejection."
 msgid_plural "There were %d local rejections."
 msgstr[0] "Tapahtui yksi paikallinen hylkäys"
 msgstr[1] "Tapahtui %d paikallista hylkäystä"
 
-#: ../src/gtk-ui/sync-ui.c:1292
+#: ../src/gtk-ui/sync-ui.c:1304
 #, c-format
 msgid "There were %d local rejections and %d remote rejections."
 msgstr "Tapahtui %d paikallista hylkäystä ja %d etähylkäystä"
 
-#: ../src/gtk-ui/sync-ui.c:1297
+#: ../src/gtk-ui/sync-ui.c:1309
 #, c-format
 msgid "Last time: No changes."
 msgstr "Viime kerta: ei muutoksia"
 
-#: ../src/gtk-ui/sync-ui.c:1299
+#: ../src/gtk-ui/sync-ui.c:1311
 #, c-format
 msgid "Last time: Sent one change."
 msgid_plural "Last time: Sent %d changes."
 msgstr[0] "Viime kerralla: yksi muutos lähetetty."
 msgstr[1] "Viime kerralla: %d muutosta lähetetty."
 
-#: ../src/gtk-ui/sync-ui.c:1304
+#: ../src/gtk-ui/sync-ui.c:1316
 #, c-format
 msgid "Last time: Received one change."
 msgid_plural "Last time: Received %d changes."
 msgstr[0] "Viime kerralla: yksi muutos vastaanotettu."
 msgstr[1] "Viime kerralla: %d muutosta vastaanotettu"
 
-#: ../src/gtk-ui/sync-ui.c:1309
+#: ../src/gtk-ui/sync-ui.c:1321
 #, c-format
 msgid "Last time: Received %d changes and sent %d changes."
 msgstr "Viime kerralla: Vastaanotettu %d muutosta ja lähetetty %d muutosta."
 
-#: ../src/gtk-ui/sync-ui.c:1401
+#: ../src/gtk-ui/sync-ui.c:1413
 msgid "Failed to get server configuration from SyncEvolution"
 msgstr "Serverin asetusten saanti SyncEvolutionista epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:1467
+#: ../src/gtk-ui/sync-ui.c:1479
 msgid "New service"
 msgstr "Uusi palvelu"
 
-#: ../src/gtk-ui/sync-ui.c:1508
+#: ../src/gtk-ui/sync-ui.c:1520
 msgid "Server URL"
 msgstr "Serverin URL"
 
 # URI for target %s
 #. TRANSLATORS: placeholder is a source name in settings window
-#: ../src/gtk-ui/sync-ui.c:1528
+#: ../src/gtk-ui/sync-ui.c:1540
 #, c-format
 msgid "%s URI"
 msgstr "Kohteen '%s' URI"
 
-#: ../src/gtk-ui/sync-ui.c:1659
+#: ../src/gtk-ui/sync-ui.c:1675
 #: ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "Siirry sivustoon"
 
-#: ../src/gtk-ui/sync-ui.c:1663
+#: ../src/gtk-ui/sync-ui.c:1679
 msgid "Setup and use"
 msgstr "Määritä ja käytä"
 
-#: ../src/gtk-ui/sync-ui.c:1709
+#: ../src/gtk-ui/sync-ui.c:1725
 msgid "Failed to get list of manually setup services from SyncEvolution"
 msgstr "Manuaalisesti määritettyjen palveluiden listan saaminen SyncEvolutionista epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:1750
+#: ../src/gtk-ui/sync-ui.c:1766
 msgid "Failed to get list of supported services from SyncEvolution"
 msgstr "Tuettujen palveluiden listan saaminen SyncEvolutionista epäonnistui"
 
 #. TODO: this is a hack... SyncEnd should be a signal of it's own,
 #. not just hacked on top of the syncevolution error codes
-#: ../src/gtk-ui/sync-ui.c:1911
+#: ../src/gtk-ui/sync-ui.c:1927
 msgid "Service configuration not found"
 msgstr "Palvelun määritystietoja ei löydy"
 
-#: ../src/gtk-ui/sync-ui.c:1917
+#: ../src/gtk-ui/sync-ui.c:1933
 msgid "Not authorized"
 msgstr "Ei käyttöoikeutta"
 
-#: ../src/gtk-ui/sync-ui.c:1919
+#: ../src/gtk-ui/sync-ui.c:1935
 msgid "Forbidden"
 msgstr "Kielletty"
 
-#: ../src/gtk-ui/sync-ui.c:1921
+#: ../src/gtk-ui/sync-ui.c:1937
 msgid "Not found"
 msgstr "Ei löydy"
 
-#: ../src/gtk-ui/sync-ui.c:1923
+#: ../src/gtk-ui/sync-ui.c:1939
 msgid "Fatal database error"
 msgstr "Vakava tietokantavirhe"
 
-#: ../src/gtk-ui/sync-ui.c:1925
+#: ../src/gtk-ui/sync-ui.c:1941
 msgid "Database error"
 msgstr "Tietokantavirhe"
 
-#: ../src/gtk-ui/sync-ui.c:1927
+#: ../src/gtk-ui/sync-ui.c:1943
 msgid "No space left"
 msgstr "Tila lopussa"
 
 #. TODO identify problem item somehow ?
-#: ../src/gtk-ui/sync-ui.c:1930
+#: ../src/gtk-ui/sync-ui.c:1946
 msgid "Failed to process SyncML"
 msgstr "SyncML:n käsittely epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:1932
+#: ../src/gtk-ui/sync-ui.c:1948
 msgid "Server authorization failed"
 msgstr "Serverin varmennus epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:1934
+#: ../src/gtk-ui/sync-ui.c:1950
 msgid "Failed to parse configuration file"
 msgstr "Asetustiedoston jäsennys epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:1936
+#: ../src/gtk-ui/sync-ui.c:1952
 msgid "Failed to read configuration file"
 msgstr "Asetustiedoston lukeminen epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:1938
+#: ../src/gtk-ui/sync-ui.c:1954
 msgid "No configuration found"
 msgstr "Asetuksia ei löydy"
 
-#: ../src/gtk-ui/sync-ui.c:1940
+#: ../src/gtk-ui/sync-ui.c:1956
 msgid "No configuration file found"
 msgstr "Asetustiedostoa ei löytynyt"
 
 # using erroneous instead of bad
-#: ../src/gtk-ui/sync-ui.c:1942
+#: ../src/gtk-ui/sync-ui.c:1958
 msgid "Server sent bad content"
 msgstr "Serveri lähetti virheellistä sisältöä"
 
-#: ../src/gtk-ui/sync-ui.c:1944
+#: ../src/gtk-ui/sync-ui.c:1960
 msgid "Transport failure (no connection?)"
 msgstr "Siirtyminen epäonnistui (ei yhteyttä?)"
 
-#: ../src/gtk-ui/sync-ui.c:1946
+#: ../src/gtk-ui/sync-ui.c:1962
 msgid "Connection timed out"
 msgstr "Yhteys aikakatkaistu"
 
-#: ../src/gtk-ui/sync-ui.c:1948
+#: ../src/gtk-ui/sync-ui.c:1964
 msgid "Connection certificate has expired"
 msgstr "Yhteyden varmenne on vanhentunut"
 
-#: ../src/gtk-ui/sync-ui.c:1950
+#: ../src/gtk-ui/sync-ui.c:1966
 msgid "Connection certificate is invalid"
 msgstr "Yhteyden varmenne on virheellinen"
 
-#: ../src/gtk-ui/sync-ui.c:1953
+#: ../src/gtk-ui/sync-ui.c:1969
 msgid "Connection failed"
 msgstr "Yhteys epäonnistui"
 
-#: ../src/gtk-ui/sync-ui.c:1955
+#: ../src/gtk-ui/sync-ui.c:1971
 msgid "URL is bad"
 msgstr "URL on virheellinen"
 
-#: ../src/gtk-ui/sync-ui.c:1957
+#: ../src/gtk-ui/sync-ui.c:1973
 msgid "Server not found"
 msgstr "Serveriä ei löydy"
 
-#: ../src/gtk-ui/sync-ui.c:1959
+#: ../src/gtk-ui/sync-ui.c:1975
 #, c-format
 msgid "Error %d"
 msgstr "Virhe: %d"
 
 # ...service ended unexpectedly
-#: ../src/gtk-ui/sync-ui.c:1969
+#: ../src/gtk-ui/sync-ui.c:1985
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "Sync D-Bus -palvelu loppui odottamattomasti"
 
 # changed to "sync error" in order to fix a truncation in the UI.
-#: ../src/gtk-ui/sync-ui.c:1972
-#: ../src/gtk-ui/sync-ui.c:2023
+#: ../src/gtk-ui/sync-ui.c:1988
+#: ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
 msgstr "Synkkausvirhe"
 
-#: ../src/gtk-ui/sync-ui.c:2015
+#: ../src/gtk-ui/sync-ui.c:2031
 msgid "Sync complete"
 msgstr "Synkkaus valmis"
 
-#: ../src/gtk-ui/sync-ui.c:2020
+#: ../src/gtk-ui/sync-ui.c:2036
 msgid "Sync canceled"
 msgstr "Synkkaus peruttu"
 
 #. NOTE extra1 can be error here
-#: ../src/gtk-ui/sync-ui.c:2038
+#: ../src/gtk-ui/sync-ui.c:2054
 msgid "Ending sync"
 msgstr "Lopetetaan synkkaus"
 
 #. TRANSLATORS: placeholder is a source name (e.g. 'Calendar') in a progress text
-#: ../src/gtk-ui/sync-ui.c:2062
+#: ../src/gtk-ui/sync-ui.c:2078
 #, c-format
 msgid "Preparing '%s'"
 msgstr "Valmistellaan: %s"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2074
+#: ../src/gtk-ui/sync-ui.c:2090
 #, c-format
 msgid "Sending '%s'"
 msgstr "Lähetetään: %s"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2086
+#: ../src/gtk-ui/sync-ui.c:2102
 #, c-format
 msgid "Receiving '%s'"
 msgstr "Vastaanotetaan: %s"
@@ -478,7 +478,7 @@ msgid "Stop using this service"
 msgstr "Lopeta tämän palvelun käyttö"
 
 #: ../src/gtk-ui/ui.glade.h:28
-#: ../src/gtk-ui/sync.desktop.in.h:2
+#: ../src/gtk-ui/sync.desktop.in.h:1
 msgid "Sync"
 msgstr "Synkkaus"
 
@@ -506,7 +506,10 @@ msgstr ""
 "Synkkauspalvelua ei ole vielä määritetty. Synkkauspalvelu\n"
 "mahdollistaa ultrakannettavasi ja verkkopalvelusi tietojen synkkauksen."
 
-#: ../src/gtk-ui/sync.desktop.in.h:1
-msgid "Bring your data with you"
-msgstr "Ota tietosi mukaan"
+#: ../src/gtk-ui/sync.desktop.in.h:2
+msgid "Up to date"
+msgstr "Ajantasalla"
+
+#~ msgid "Bring your data with you"
+#~ msgstr "Ota tietosi mukaan"
 
index 056d33b..d87c0a3 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,9 +2,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-22 09:19+0000\n"
+"POT-Creation-Date: 2009-07-29 09:20+0000\n"
 "PO-Revision-Date: \n"
-"Last-Translator: Loïc Dufresne de Virel <loic.dufresne.de.virel@intel.com>\n"
+"Last-Translator: glsfra_Sophie <sophiex.marchese@intel.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -135,10 +135,11 @@ msgstr "Dernière synchro il y a %ld jours"
 msgid "Sync again"
 msgstr "Synchroniser de nouveau"
 
+# QA FRA : I erased the "now" in the French translation because it caused a truncation
 #: ../src/gtk-ui/sync-ui.c:902
 #: ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
-msgstr "Synchroniser maintenant"
+msgstr "Synchroniser"
 
 #: ../src/gtk-ui/sync-ui.c:911
 msgid "Syncing"
@@ -387,7 +388,7 @@ msgstr "<big>Configuration manuelle</big>"
 
 #: ../src/gtk-ui/ui.glade.h:6
 msgid "<big>Supported services</big>"
-msgstr "<big>Sservices pris en charge</big>"
+msgstr "<big>Services pris en charge</big>"
 
 # "New" for lack of space
 #: ../src/gtk-ui/ui.glade.h:7
index f1bf4b6..681f39c 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -2,16 +2,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-15 09:18+0000\n"
+"POT-Creation-Date: 2009-07-22 09:19+0000\n"
 "PO-Revision-Date: \n"
-"Last-Translator: GLSKOR_SunKim <sunx.kim@intel.com>\n"
+"Last-Translator: GLSKOR_Sook <hyang-sookx.sohn@intel.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n!=1; \n"
 "X-Poedit-Language: Korean\n"
 "X-Poedit-SourceCharset: utf-8\n"
-"Plural-Forms: nplurals=2; plural=n!=1;\n"
 
 #: ../src/gtk-ui/sync-ui.c:258
 msgid "Addressbook"
@@ -45,321 +45,321 @@ msgstr "SyncEvolution으로 부터 구성 서비스를 불러오기를 실패했
 msgid "Failed to remove service configuration from SyncEvolution"
 msgstr "SyncEvolution으로 부터 구성 시스템을 제거하는데 실패했습니다."
 
-#: ../src/gtk-ui/sync-ui.c:597
-msgid "Service must have a name"
-msgstr "서비스는 반듯이 이름이 있어야 합니다."
+#: ../src/gtk-ui/sync-ui.c:598
+msgid "Service must have a name and server URL"
+msgstr "서비스는 반듯이 이름 및 서버 URL이 있어야 합니다."
 
 #. sync is no longer in progress for some reason
-#: ../src/gtk-ui/sync-ui.c:662
+#: ../src/gtk-ui/sync-ui.c:674
 msgid "Failed to cancel: sync was no longer in progress"
 msgstr "취소 실패: 동기화는 더이상 진행되지 않습니다."
 
-#: ../src/gtk-ui/sync-ui.c:666
+#: ../src/gtk-ui/sync-ui.c:678
 msgid "Failed to cancel sync"
 msgstr "동기화 취소 실패"
 
-#: ../src/gtk-ui/sync-ui.c:670
+#: ../src/gtk-ui/sync-ui.c:682
 msgid "Canceling sync"
 msgstr "동기화 취소 중 "
 
-#: ../src/gtk-ui/sync-ui.c:684
+#: ../src/gtk-ui/sync-ui.c:696
 msgid "Trying to cancel sync"
 msgstr "동기화 취소 시도"
 
-#: ../src/gtk-ui/sync-ui.c:691
+#: ../src/gtk-ui/sync-ui.c:703
 #, c-format
 msgid "Do you want to delete all local data and replace it with data from %s? This is not usually advised."
 msgstr "모든 로컬 데이터을 삭제하고 %s로 부터의 데이터로 바꾸시겠습니까? 항상 권하지는 않습니다"
 
-#: ../src/gtk-ui/sync-ui.c:696
+#: ../src/gtk-ui/sync-ui.c:708
 #, c-format
 msgid "Do you want to delete all data in %s and replace it with your local data? This is not usually advised."
 msgstr "%s에 있는 모든 데이터를 삭네하고 당신의 로컬 데이터로 바꾸시겠습니까? 항상 권하지는 않습니다."
 
-#: ../src/gtk-ui/sync-ui.c:713
+#: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
 msgstr "주소록"
 
-#: ../src/gtk-ui/sync-ui.c:714
+#: ../src/gtk-ui/sync-ui.c:726
 msgid "Yes, delete and replace"
 msgstr "예, 삭제하시고 변경하십시오"
 
-#: ../src/gtk-ui/sync-ui.c:736
+#: ../src/gtk-ui/sync-ui.c:748
 msgid "No sources are enabled, not syncing"
 msgstr "사용 가능한 소스가 없습니다. 동기화 되지 않았습니다."
 
-#: ../src/gtk-ui/sync-ui.c:753
+#: ../src/gtk-ui/sync-ui.c:765
 msgid "A sync is already in progress"
 msgstr "동기화가 이미 진행중 입니다."
 
-#: ../src/gtk-ui/sync-ui.c:755
+#: ../src/gtk-ui/sync-ui.c:767
 msgid "Failed to start sync"
 msgstr "동기화를 시작하는데 실패했습니다."
 
-#: ../src/gtk-ui/sync-ui.c:760
+#: ../src/gtk-ui/sync-ui.c:772
 msgid "Starting sync"
 msgstr "동기화 시작 "
 
-#: ../src/gtk-ui/sync-ui.c:785
+#: ../src/gtk-ui/sync-ui.c:797
 msgid "Last synced just seconds ago"
 msgstr "일 초전 마지막 동기화"
 
-#: ../src/gtk-ui/sync-ui.c:788
+#: ../src/gtk-ui/sync-ui.c:800
 msgid "Last synced a minute ago"
 msgstr "일 분전 마지막 동기화"
 
-#: ../src/gtk-ui/sync-ui.c:791
+#: ../src/gtk-ui/sync-ui.c:803
 #, c-format
 msgid "Last synced %ld minutes ago"
 msgstr "%ld 분전 마지막 동기화"
 
-#: ../src/gtk-ui/sync-ui.c:794
+#: ../src/gtk-ui/sync-ui.c:806
 msgid "Last synced an hour ago"
 msgstr "한 시간전 마지막 동기화"
 
-#: ../src/gtk-ui/sync-ui.c:797
+#: ../src/gtk-ui/sync-ui.c:809
 #, c-format
 msgid "Last synced %ld hours ago"
 msgstr "%ld 시간전 마지막 동기화"
 
-#: ../src/gtk-ui/sync-ui.c:800
+#: ../src/gtk-ui/sync-ui.c:812
 msgid "Last synced a day ago"
 msgstr "하루전 마지막 동기화"
 
-#: ../src/gtk-ui/sync-ui.c:803
+#: ../src/gtk-ui/sync-ui.c:815
 #, c-format
 msgid "Last synced %ld days ago"
 msgstr "%ld 일 전 마지막 동기화"
 
-#: ../src/gtk-ui/sync-ui.c:888
+#: ../src/gtk-ui/sync-ui.c:900
 msgid "Sync again"
 msgstr "다시 동기화 시도"
 
-#: ../src/gtk-ui/sync-ui.c:890
+#: ../src/gtk-ui/sync-ui.c:902
 #: ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
 msgstr "지금 동기화 시도"
 
-#: ../src/gtk-ui/sync-ui.c:899
+#: ../src/gtk-ui/sync-ui.c:911
 msgid "Syncing"
 msgstr "동기화 시도중"
 
-#: ../src/gtk-ui/sync-ui.c:905
+#: ../src/gtk-ui/sync-ui.c:917
 msgid "Cancel sync"
 msgstr "동기화 취소"
 
 #. TRANSLATORS: placeholder is a source name, shown with checkboxes in main window
-#: ../src/gtk-ui/sync-ui.c:1249
+#: ../src/gtk-ui/sync-ui.c:1261
 #, c-format
 msgid "%s (not supported by this service)"
 msgstr "%s (이 서비스에 의해 지원되지 않습니다)"
 
-#: ../src/gtk-ui/sync-ui.c:1282
+#: ../src/gtk-ui/sync-ui.c:1294
 #, c-format
 msgid "There was one remote rejection."
 msgid_plural "There were %d remote rejections."
 msgstr[0] "한건의 원격 거부가 있었습니다."
 msgstr[1] "%d건의 원격 거부가 있었습니다"
 
-#: ../src/gtk-ui/sync-ui.c:1287
+#: ../src/gtk-ui/sync-ui.c:1299
 #, c-format
 msgid "There was one local rejection."
 msgid_plural "There were %d local rejections."
 msgstr[0] "한건의 로컬 거부가 있었습니다."
 msgstr[1] "%d건의 로컬 거부가 있었습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1292
+#: ../src/gtk-ui/sync-ui.c:1304
 #, c-format
 msgid "There were %d local rejections and %d remote rejections."
 msgstr "%d 로컬 거부와 %d 원격 거부가 있었습니다. "
 
-#: ../src/gtk-ui/sync-ui.c:1297
+#: ../src/gtk-ui/sync-ui.c:1309
 #, c-format
 msgid "Last time: No changes."
 msgstr "지난 시간: 변동 사항 없음."
 
-#: ../src/gtk-ui/sync-ui.c:1299
+#: ../src/gtk-ui/sync-ui.c:1311
 #, c-format
 msgid "Last time: Sent one change."
 msgid_plural "Last time: Sent %d changes."
 msgstr[0] "지난 시간: 한건의 변경 사항을 보냈습니다."
 msgstr[1] "지난 시간: %d 건의 변경 사항을 보냈습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1304
+#: ../src/gtk-ui/sync-ui.c:1316
 #, c-format
 msgid "Last time: Received one change."
 msgid_plural "Last time: Received %d changes."
 msgstr[0] "지난 시간: 한건의 변경 사항을 받았습니다."
 msgstr[1] "지난 시간: %d건의 변경 사항을 받았습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1309
+#: ../src/gtk-ui/sync-ui.c:1321
 #, c-format
 msgid "Last time: Received %d changes and sent %d changes."
 msgstr "지난 시간: %d 변동 사항 접수 및 %d 변동 사항 보냄."
 
-#: ../src/gtk-ui/sync-ui.c:1401
+#: ../src/gtk-ui/sync-ui.c:1413
 msgid "Failed to get server configuration from SyncEvolution"
 msgstr "SyncEvolution으로 부터 서버 구성 기능을 불러오기를 실패했습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1467
+#: ../src/gtk-ui/sync-ui.c:1479
 msgid "New service"
 msgstr "새로운 서비스"
 
-#: ../src/gtk-ui/sync-ui.c:1508
+#: ../src/gtk-ui/sync-ui.c:1520
 msgid "Server URL"
 msgstr "서버 URL"
 
 #. TRANSLATORS: placeholder is a source name in settings window
-#: ../src/gtk-ui/sync-ui.c:1528
+#: ../src/gtk-ui/sync-ui.c:1540
 #, c-format
 msgid "%s URI"
 msgstr "%s URI"
 
-#: ../src/gtk-ui/sync-ui.c:1659
+#: ../src/gtk-ui/sync-ui.c:1675
 #: ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "웹사이트 시작"
 
-#: ../src/gtk-ui/sync-ui.c:1663
+#: ../src/gtk-ui/sync-ui.c:1679
 msgid "Setup and use"
 msgstr "설치 대체 사용"
 
-#: ../src/gtk-ui/sync-ui.c:1709
+#: ../src/gtk-ui/sync-ui.c:1725
 msgid "Failed to get list of manually setup services from SyncEvolution"
 msgstr "SyncEvolution으로 부터 수동 설치 서비스 목록을 불러오기를 실패했습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1750
+#: ../src/gtk-ui/sync-ui.c:1766
 msgid "Failed to get list of supported services from SyncEvolution"
 msgstr "SyncEvolution으로 부터 지원 서비스 목록을 불러오기를 실패했습니다."
 
 #. TODO: this is a hack... SyncEnd should be a signal of it's own,
 #. not just hacked on top of the syncevolution error codes
-#: ../src/gtk-ui/sync-ui.c:1911
+#: ../src/gtk-ui/sync-ui.c:1927
 msgid "Service configuration not found"
 msgstr "서비스 구성 요소를 찾을 수 없습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1917
+#: ../src/gtk-ui/sync-ui.c:1933
 msgid "Not authorized"
 msgstr "권한이 없습니다"
 
-#: ../src/gtk-ui/sync-ui.c:1919
+#: ../src/gtk-ui/sync-ui.c:1935
 msgid "Forbidden"
 msgstr "금지"
 
-#: ../src/gtk-ui/sync-ui.c:1921
+#: ../src/gtk-ui/sync-ui.c:1937
 msgid "Not found"
 msgstr "찾을 수 없음"
 
-#: ../src/gtk-ui/sync-ui.c:1923
+#: ../src/gtk-ui/sync-ui.c:1939
 msgid "Fatal database error"
 msgstr "심각한 데이터베이스 오류"
 
-#: ../src/gtk-ui/sync-ui.c:1925
+#: ../src/gtk-ui/sync-ui.c:1941
 msgid "Database error"
 msgstr "데이터베이스 오류"
 
-#: ../src/gtk-ui/sync-ui.c:1927
+#: ../src/gtk-ui/sync-ui.c:1943
 msgid "No space left"
 msgstr "남은 공간이 없음"
 
 #. TODO identify problem item somehow ?
-#: ../src/gtk-ui/sync-ui.c:1930
+#: ../src/gtk-ui/sync-ui.c:1946
 msgid "Failed to process SyncML"
 msgstr "SyncML 프로세스 실패"
 
-#: ../src/gtk-ui/sync-ui.c:1932
+#: ../src/gtk-ui/sync-ui.c:1948
 msgid "Server authorization failed"
 msgstr "서버 권한 부여 실패"
 
-#: ../src/gtk-ui/sync-ui.c:1934
+#: ../src/gtk-ui/sync-ui.c:1950
 msgid "Failed to parse configuration file"
 msgstr "구성 파일 구문 분석 실패"
 
-#: ../src/gtk-ui/sync-ui.c:1936
+#: ../src/gtk-ui/sync-ui.c:1952
 msgid "Failed to read configuration file"
 msgstr "구성요소 파일 읽기 실패"
 
-#: ../src/gtk-ui/sync-ui.c:1938
+#: ../src/gtk-ui/sync-ui.c:1954
 msgid "No configuration found"
 msgstr "구성요소를 찾을수 없습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1940
+#: ../src/gtk-ui/sync-ui.c:1956
 msgid "No configuration file found"
 msgstr "구성요소 파일을 찾지 못했습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1942
+#: ../src/gtk-ui/sync-ui.c:1958
 msgid "Server sent bad content"
 msgstr "서버가 안좋은 컨텐츠를 보냈습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1944
+#: ../src/gtk-ui/sync-ui.c:1960
 msgid "Transport failure (no connection?)"
 msgstr "전송 실패(연결 없음?)"
 
-#: ../src/gtk-ui/sync-ui.c:1946
+#: ../src/gtk-ui/sync-ui.c:1962
 msgid "Connection timed out"
 msgstr "연결 시간 초과"
 
-#: ../src/gtk-ui/sync-ui.c:1948
+#: ../src/gtk-ui/sync-ui.c:1964
 msgid "Connection certificate has expired"
 msgstr "연결 인증이 만료되었습니다. "
 
-#: ../src/gtk-ui/sync-ui.c:1950
+#: ../src/gtk-ui/sync-ui.c:1966
 msgid "Connection certificate is invalid"
 msgstr "연결 인증이 유효하지 않습니다."
 
-#: ../src/gtk-ui/sync-ui.c:1953
+#: ../src/gtk-ui/sync-ui.c:1969
 msgid "Connection failed"
 msgstr "연결 실패"
 
-#: ../src/gtk-ui/sync-ui.c:1955
+#: ../src/gtk-ui/sync-ui.c:1971
 msgid "URL is bad"
 msgstr "잘못된 URL 입니다."
 
-#: ../src/gtk-ui/sync-ui.c:1957
+#: ../src/gtk-ui/sync-ui.c:1973
 msgid "Server not found"
 msgstr "서버를 찾을 수 없음."
 
-#: ../src/gtk-ui/sync-ui.c:1959
+#: ../src/gtk-ui/sync-ui.c:1975
 #, c-format
 msgid "Error %d"
 msgstr "오류 %d"
 
-#: ../src/gtk-ui/sync-ui.c:1969
+#: ../src/gtk-ui/sync-ui.c:1985
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "갑자기 동기화 D 버스 서비스 종료 "
 
-#: ../src/gtk-ui/sync-ui.c:1972
-#: ../src/gtk-ui/sync-ui.c:2023
+#: ../src/gtk-ui/sync-ui.c:1988
+#: ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
 msgstr "동기화 실패"
 
-#: ../src/gtk-ui/sync-ui.c:2015
+#: ../src/gtk-ui/sync-ui.c:2031
 msgid "Sync complete"
 msgstr "동기화 완료"
 
-#: ../src/gtk-ui/sync-ui.c:2020
+#: ../src/gtk-ui/sync-ui.c:2036
 msgid "Sync canceled"
 msgstr "동기화 취소"
 
 #. NOTE extra1 can be error here
-#: ../src/gtk-ui/sync-ui.c:2038
+#: ../src/gtk-ui/sync-ui.c:2054
 msgid "Ending sync"
 msgstr "동기화 종료"
 
 #. TRANSLATORS: placeholder is a source name (e.g. 'Calendar') in a progress text
-#: ../src/gtk-ui/sync-ui.c:2062
+#: ../src/gtk-ui/sync-ui.c:2078
 #, c-format
 msgid "Preparing '%s'"
 msgstr " '%s' 준비하는 중"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2074
+#: ../src/gtk-ui/sync-ui.c:2090
 #, c-format
 msgid "Sending '%s'"
 msgstr "'%s' 보내는 중"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2086
+#: ../src/gtk-ui/sync-ui.c:2102
 #, c-format
 msgid "Receiving '%s'"
 msgstr "'%s' 받는중"
@@ -469,7 +469,7 @@ msgid "Stop using this service"
 msgstr "이 서비스의 사용을 중단 하십시오."
 
 #: ../src/gtk-ui/ui.glade.h:28
-#: ../src/gtk-ui/sync.desktop.in.h:2
+#: ../src/gtk-ui/sync.desktop.in.h:1
 msgid "Sync"
 msgstr "동기화"
 
@@ -497,7 +497,10 @@ msgstr ""
 "당신은 동기화 서비스를 아직 설치하지 않았습니다. 동기화 서비스는\n"
 "당신의 넷북과 웹 서비스 사이의 데이터를 동기화 시켜줍니다.  "
 
-#: ../src/gtk-ui/sync.desktop.in.h:1
+#: ../src/gtk-ui/sync.desktop.in.h:2
+msgid "Up to date"
+msgstr "최신의"
+
 msgid "Bring your data with you"
 msgstr "귀하의 데이타를 가져오십시오."
 
index 48935bf..0726200 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -3,20 +3,18 @@
 # This file is distributed under the same license as the syncevolution package.
 # Andrzej Zaborowski <andrew.zaborowski@intel.com>, 2009.
 #
-#: ../src/gtk-ui/sync-ui.c:763
 msgid ""
 msgstr ""
 "Project-Id-Version: Moblin\n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-22 09:19+0000\n"
+"POT-Creation-Date: 2009-07-29 03:16+0000\n"
 "PO-Revision-Date: \n"
-"Last-Translator: Andrzej Zaborowski <andrew.zaborowski@intel.com>\n"
+"Last-Translator: GLSJPN_Yukari <yukarix.yamashita@intel.com>\n"
 "Language-Team: Moblin\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Poedit-Language: Polish\n"
 "X-Poedit-SourceCharset: utf-8\n"
 "X-Poedit-Bookmarks: -1,37,-1,-1,-1,-1,-1,-1,-1,-1\n"
@@ -85,21 +83,13 @@ msgstr "Trwa próba anulowania synchronizacji"
 
 #: ../src/gtk-ui/sync-ui.c:703
 #, c-format
-msgid ""
-"Do you want to delete all local data and replace it with data from %s? This "
-"is not usually advised."
-msgstr ""
-"Czy chcesz usunąć wszystkie lokalne dane i zastąpić je danymi z %s? Nie jest "
-"to zwykle zalecane."
+msgid "Do you want to delete all local data and replace it with data from %s? This is not usually advised."
+msgstr "Czy chcesz usunąć wszystkie lokalne dane i zastąpić je danymi z %s? Nie jest to zwykle zalecane."
 
 #: ../src/gtk-ui/sync-ui.c:708
 #, c-format
-msgid ""
-"Do you want to delete all data in %s and replace it with your local data? "
-"This is not usually advised."
-msgstr ""
-"Czy chcesz usunąć wszystkie dane w %s i zastąpić je danymi lokalnymi? Nie "
-"jest to zwykle zalecane."
+msgid "Do you want to delete all data in %s and replace it with your local data? This is not usually advised."
+msgstr "Czy chcesz usunąć wszystkie dane w %s i zastąpić je danymi lokalnymi? Nie jest to zwykle zalecane."
 
 #: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
@@ -112,9 +102,7 @@ msgstr "Tak, usuń i zastąp"
 # Synchronization won't take place because it has not been set with what it will be compared to
 #: ../src/gtk-ui/sync-ui.c:748
 msgid "No sources are enabled, not syncing"
-msgstr ""
-"Synchronizacja nie może zostać wykonana ponieważ nie podano źródła do "
-"porównania"
+msgstr "Synchronizacja nie może zostać wykonana ponieważ nie podano źródła do porównania"
 
 # A synchronization is already being processed
 #: ../src/gtk-ui/sync-ui.c:765
@@ -143,7 +131,7 @@ msgstr "Ostatnio synchronizowano minutę temu"
 #: ../src/gtk-ui/sync-ui.c:803
 #, c-format
 msgid "Last synced %ld minutes ago"
-msgstr "Ostatnio synchronizowano przed %ld minutami"
+msgstr "Ostatnio synchronizowano %ld minut temu"
 
 # Last synchronization happened one hour ago
 #: ../src/gtk-ui/sync-ui.c:806
@@ -154,7 +142,7 @@ msgstr "Ostatnio synchronizowano godzinę temu"
 #: ../src/gtk-ui/sync-ui.c:809
 #, c-format
 msgid "Last synced %ld hours ago"
-msgstr "Ostatnio synchronizowano przed %ld godzinami"
+msgstr "Ostatnio synchronizowano %ld godzin temu"
 
 # Last synchronization happened one day ago
 #: ../src/gtk-ui/sync-ui.c:812
@@ -171,7 +159,8 @@ msgstr "Ostatnio synchronizowano %ld dni temu"
 msgid "Sync again"
 msgstr "Synchronizuj jeszcze raz"
 
-#: ../src/gtk-ui/sync-ui.c:902 ../src/gtk-ui/ui.glade.h:29
+#: ../src/gtk-ui/sync-ui.c:902
+#: ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
 msgstr "Synchronizuj teraz"
 
@@ -210,8 +199,7 @@ msgstr[2] "Odrzucono %d elementów"
 #: ../src/gtk-ui/sync-ui.c:1304
 #, c-format
 msgid "There were %d local rejections and %d remote rejections."
-msgstr ""
-"Odrzucono %d elementów podczas gdy druga strona odrzuciła %d elementów."
+msgstr "Odrzucono %d elementów podczas gdy druga strona odrzuciła %d elementów."
 
 #: ../src/gtk-ui/sync-ui.c:1309
 #, c-format
@@ -261,7 +249,8 @@ msgid "%s URI"
 msgstr "URI %s"
 
 # Open the website
-#: ../src/gtk-ui/sync-ui.c:1675 ../src/gtk-ui/ui.glade.h:17
+#: ../src/gtk-ui/sync-ui.c:1675
+#: ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "Otworzyć stronę www"
 
@@ -390,9 +379,10 @@ msgstr "Błąd %d"
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "Usługa D-Bus synchronizacji zakończyła nieoczekiwanie"
 
-#: ../src/gtk-ui/sync-ui.c:1988 ../src/gtk-ui/sync-ui.c:2039
+#: ../src/gtk-ui/sync-ui.c:1988
+#: ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
-msgstr "Synchronizacja nie powiodła się"
+msgstr "Nie powiodło się"
 
 #: ../src/gtk-ui/sync-ui.c:2031
 msgid "Sync complete"
@@ -486,12 +476,10 @@ msgstr "Edycja ustawień usługi"
 
 #: ../src/gtk-ui/ui.glade.h:15
 msgid ""
-"If you don't see your service above but know that your sync provider uses "
-"SyncML\n"
+"If you don't see your service above but know that your sync provider uses SyncML\n"
 "you can setup a service manually."
 msgstr ""
-"Jeśli Twoja usługa nie jest widoczna powyżej a wiesz że dostawca używa "
-"SyncML\n"
+"Jeśli Twoja usługa nie jest widoczna powyżej a wiesz że dostawca używa SyncML\n"
 "możesz ustawić usługę ręcznie."
 
 #: ../src/gtk-ui/ui.glade.h:18
@@ -537,23 +525,21 @@ msgstr ""
 msgid "Stop using this service"
 msgstr "Zaprzestań używania usługi"
 
-#: ../src/gtk-ui/ui.glade.h:28 ../src/gtk-ui/sync.desktop.in.h:1
+#: ../src/gtk-ui/ui.glade.h:28
+#: ../src/gtk-ui/sync.desktop.in.h:1
 msgid "Sync"
 msgstr "Synchronizuj"
 
 #: ../src/gtk-ui/ui.glade.h:30
-msgid ""
-"Synchronization is not available (D-Bus service does not answer), sorry."
+msgid "Synchronization is not available (D-Bus service does not answer), sorry."
 msgstr "Niestety synchronizacja jest niedostępna (usługa D-Bus nie odpowiada)."
 
 #: ../src/gtk-ui/ui.glade.h:31
 msgid ""
-"To sync you'll need a network connection and an account with a sync "
-"service.\n"
+"To sync you'll need a network connection and an account with a sync service.\n"
 "We support the following services: "
 msgstr ""
-"Aby móc synchronizować potrzebne są połączenie z siecią oraz konto dla "
-"usługi\n"
+"Aby móc synchronizować potrzebne są połączenie z siecią oraz konto dla usługi\n"
 "synchronizacji. Następujące usługi są kompatybilne:"
 
 #: ../src/gtk-ui/ui.glade.h:33
@@ -572,3 +558,4 @@ msgstr ""
 #: ../src/gtk-ui/sync.desktop.in.h:2
 msgid "Up to date"
 msgstr "Aktualny"
+
index bf703c7..53d7dc9 100644 (file)
@@ -2,9 +2,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-20 09:19+0000\n"
+"POT-Creation-Date: 2009-07-27 09:20+0000\n"
 "PO-Revision-Date: \n"
-"Last-Translator: GLSPTB_Gabor <gaborx.k.becht@intel.com>\n"
+"Last-Translator: williane <williane.tenca@ptiglobal.net>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -45,321 +45,321 @@ msgstr "Falha ao buscar a configuração de serviço do SyncEvolution"
 msgid "Failed to remove service configuration from SyncEvolution"
 msgstr "Falha ao remover a configuração de serviço do SyncEvolution"
 
-#: ../src/gtk-ui/sync-ui.c:597
-msgid "Service must have a name"
-msgstr "Serviço tem que ter um nome"
+#: ../src/gtk-ui/sync-ui.c:598
+msgid "Service must have a name and server URL"
+msgstr "Serviço tem que ter um nome e um URL de servidor"
 
 #. sync is no longer in progress for some reason
-#: ../src/gtk-ui/sync-ui.c:673
+#: ../src/gtk-ui/sync-ui.c:674
 msgid "Failed to cancel: sync was no longer in progress"
 msgstr "Falhou ao cancelar: sincronização não estava em andamento"
 
-#: ../src/gtk-ui/sync-ui.c:677
+#: ../src/gtk-ui/sync-ui.c:678
 msgid "Failed to cancel sync"
 msgstr "Falha ao cancelar sincronização"
 
-#: ../src/gtk-ui/sync-ui.c:681
+#: ../src/gtk-ui/sync-ui.c:682
 msgid "Canceling sync"
 msgstr "Cancelando sincronização"
 
-#: ../src/gtk-ui/sync-ui.c:695
+#: ../src/gtk-ui/sync-ui.c:696
 msgid "Trying to cancel sync"
 msgstr "Tentando cancelar sincronização"
 
-#: ../src/gtk-ui/sync-ui.c:702
+#: ../src/gtk-ui/sync-ui.c:703
 #, c-format
 msgid "Do you want to delete all local data and replace it with data from %s? This is not usually advised."
 msgstr "Você quer excluir todos os dados locais e substituir por dados de: %s? Isso não é aconselhável."
 
-#: ../src/gtk-ui/sync-ui.c:707
+#: ../src/gtk-ui/sync-ui.c:708
 #, c-format
 msgid "Do you want to delete all data in %s and replace it with your local data? This is not usually advised."
 msgstr "Você quer excluir todos os dados em: %s e substituir por seus dados locais? Isso não é aconselhável."
 
-#: ../src/gtk-ui/sync-ui.c:724
+#: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
 msgstr "Não, cancele a sincronização"
 
-#: ../src/gtk-ui/sync-ui.c:725
+#: ../src/gtk-ui/sync-ui.c:726
 msgid "Yes, delete and replace"
 msgstr "Sim, excluir e substituir"
 
-#: ../src/gtk-ui/sync-ui.c:747
+#: ../src/gtk-ui/sync-ui.c:748
 msgid "No sources are enabled, not syncing"
 msgstr "Nenhuma fonte habilitada, não sincronizando."
 
-#: ../src/gtk-ui/sync-ui.c:764
+#: ../src/gtk-ui/sync-ui.c:765
 msgid "A sync is already in progress"
 msgstr "Sincronização já em andamento"
 
-#: ../src/gtk-ui/sync-ui.c:766
+#: ../src/gtk-ui/sync-ui.c:767
 msgid "Failed to start sync"
 msgstr "Falha no início da sincronização"
 
-#: ../src/gtk-ui/sync-ui.c:771
+#: ../src/gtk-ui/sync-ui.c:772
 msgid "Starting sync"
 msgstr "Iniciando sincronização"
 
-#: ../src/gtk-ui/sync-ui.c:796
+#: ../src/gtk-ui/sync-ui.c:797
 msgid "Last synced just seconds ago"
 msgstr "Ultima sincronização há segundos atrás"
 
-#: ../src/gtk-ui/sync-ui.c:799
+#: ../src/gtk-ui/sync-ui.c:800
 msgid "Last synced a minute ago"
 msgstr "Ultima sincronização há um minuto atrás"
 
-#: ../src/gtk-ui/sync-ui.c:802
+#: ../src/gtk-ui/sync-ui.c:803
 #, c-format
 msgid "Last synced %ld minutes ago"
 msgstr "Ultima sincronização há: %ld minutos atrás"
 
-#: ../src/gtk-ui/sync-ui.c:805
+#: ../src/gtk-ui/sync-ui.c:806
 msgid "Last synced an hour ago"
 msgstr "Ultima sincronização há uma hora atrás"
 
-#: ../src/gtk-ui/sync-ui.c:808
+#: ../src/gtk-ui/sync-ui.c:809
 #, c-format
 msgid "Last synced %ld hours ago"
 msgstr "Ultima sincronização há: %ld horas atrás"
 
-#: ../src/gtk-ui/sync-ui.c:811
+#: ../src/gtk-ui/sync-ui.c:812
 msgid "Last synced a day ago"
 msgstr "Ultima sincronização há um dia atrás"
 
-#: ../src/gtk-ui/sync-ui.c:814
+#: ../src/gtk-ui/sync-ui.c:815
 #, c-format
 msgid "Last synced %ld days ago"
 msgstr "Ultima sincronização há: %ld dias atrás"
 
-#: ../src/gtk-ui/sync-ui.c:899
+#: ../src/gtk-ui/sync-ui.c:900
 msgid "Sync again"
 msgstr "Sincronize de novo"
 
-#: ../src/gtk-ui/sync-ui.c:901
+#: ../src/gtk-ui/sync-ui.c:902
 #: ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
 msgstr "Sincronize agora"
 
-#: ../src/gtk-ui/sync-ui.c:910
+#: ../src/gtk-ui/sync-ui.c:911
 msgid "Syncing"
 msgstr "Sincronizando"
 
-#: ../src/gtk-ui/sync-ui.c:916
+#: ../src/gtk-ui/sync-ui.c:917
 msgid "Cancel sync"
 msgstr "Cancelar sincronização"
 
 #. TRANSLATORS: placeholder is a source name, shown with checkboxes in main window
-#: ../src/gtk-ui/sync-ui.c:1260
+#: ../src/gtk-ui/sync-ui.c:1261
 #, c-format
 msgid "%s (not supported by this service)"
 msgstr "%s: (não suportado por este serviço)"
 
-#: ../src/gtk-ui/sync-ui.c:1293
+#: ../src/gtk-ui/sync-ui.c:1294
 #, c-format
 msgid "There was one remote rejection."
 msgid_plural "There were %d remote rejections."
 msgstr[0] "Houve uma rejeição remota."
 msgstr[1] "Houve %d rejeições remotas."
 
-#: ../src/gtk-ui/sync-ui.c:1298
+#: ../src/gtk-ui/sync-ui.c:1299
 #, c-format
 msgid "There was one local rejection."
 msgid_plural "There were %d local rejections."
 msgstr[0] "Houve uma rejeição local."
 msgstr[1] "Houve %d rejeições locais."
 
-#: ../src/gtk-ui/sync-ui.c:1303
+#: ../src/gtk-ui/sync-ui.c:1304
 #, c-format
 msgid "There were %d local rejections and %d remote rejections."
 msgstr "Houve %d rejeições locais e %d rejeições remotas."
 
-#: ../src/gtk-ui/sync-ui.c:1308
+#: ../src/gtk-ui/sync-ui.c:1309
 #, c-format
 msgid "Last time: No changes."
 msgstr "Ultima vez: sem mudanças."
 
-#: ../src/gtk-ui/sync-ui.c:1310
+#: ../src/gtk-ui/sync-ui.c:1311
 #, c-format
 msgid "Last time: Sent one change."
 msgid_plural "Last time: Sent %d changes."
 msgstr[0] "Ultima vez: Enviou uma mudança."
 msgstr[1] "Ultima vez: Enviou %d mudanças."
 
-#: ../src/gtk-ui/sync-ui.c:1315
+#: ../src/gtk-ui/sync-ui.c:1316
 #, c-format
 msgid "Last time: Received one change."
 msgid_plural "Last time: Received %d changes."
 msgstr[0] "Ultima vez: Recebeu uma mudança."
 msgstr[1] "Ultima vez: Recebeu %d mudanças."
 
-#: ../src/gtk-ui/sync-ui.c:1320
+#: ../src/gtk-ui/sync-ui.c:1321
 #, c-format
 msgid "Last time: Received %d changes and sent %d changes."
 msgstr "Ultima vez: Recebidos %d mudanças e enviados %d mudanças."
 
-#: ../src/gtk-ui/sync-ui.c:1412
+#: ../src/gtk-ui/sync-ui.c:1413
 msgid "Failed to get server configuration from SyncEvolution"
 msgstr "Não conseguiu a configuração do servidor do SyncEvolution"
 
-#: ../src/gtk-ui/sync-ui.c:1478
+#: ../src/gtk-ui/sync-ui.c:1479
 msgid "New service"
 msgstr "Serviço novo"
 
-#: ../src/gtk-ui/sync-ui.c:1519
+#: ../src/gtk-ui/sync-ui.c:1520
 msgid "Server URL"
 msgstr "URL de servidor"
 
 #. TRANSLATORS: placeholder is a source name in settings window
-#: ../src/gtk-ui/sync-ui.c:1539
+#: ../src/gtk-ui/sync-ui.c:1540
 #, c-format
 msgid "%s URI"
 msgstr "URI: %s"
 
-#: ../src/gtk-ui/sync-ui.c:1674
+#: ../src/gtk-ui/sync-ui.c:1675
 #: ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "Iniciar o site na web"
 
-#: ../src/gtk-ui/sync-ui.c:1678
+#: ../src/gtk-ui/sync-ui.c:1679
 msgid "Setup and use"
 msgstr "Configure e use"
 
-#: ../src/gtk-ui/sync-ui.c:1724
+#: ../src/gtk-ui/sync-ui.c:1725
 msgid "Failed to get list of manually setup services from SyncEvolution"
 msgstr "Não conseguiu a lista de serviços configurados manualmente do SyncEvolution"
 
-#: ../src/gtk-ui/sync-ui.c:1765
+#: ../src/gtk-ui/sync-ui.c:1766
 msgid "Failed to get list of supported services from SyncEvolution"
 msgstr "Não conseguiu a lista de serviços suportados do SyncEvolution"
 
 #. TODO: this is a hack... SyncEnd should be a signal of it's own,
 #. not just hacked on top of the syncevolution error codes
-#: ../src/gtk-ui/sync-ui.c:1926
+#: ../src/gtk-ui/sync-ui.c:1927
 msgid "Service configuration not found"
 msgstr "Configuração de serviço não localizado"
 
-#: ../src/gtk-ui/sync-ui.c:1932
+#: ../src/gtk-ui/sync-ui.c:1933
 msgid "Not authorized"
 msgstr "Não autorizado"
 
-#: ../src/gtk-ui/sync-ui.c:1934
+#: ../src/gtk-ui/sync-ui.c:1935
 msgid "Forbidden"
 msgstr "Proibído"
 
-#: ../src/gtk-ui/sync-ui.c:1936
+#: ../src/gtk-ui/sync-ui.c:1937
 msgid "Not found"
 msgstr "Não localizado"
 
-#: ../src/gtk-ui/sync-ui.c:1938
+#: ../src/gtk-ui/sync-ui.c:1939
 msgid "Fatal database error"
 msgstr "Erro fatal no banco de dados"
 
-#: ../src/gtk-ui/sync-ui.c:1940
+#: ../src/gtk-ui/sync-ui.c:1941
 msgid "Database error"
 msgstr "Erro de banco de dados"
 
-#: ../src/gtk-ui/sync-ui.c:1942
+#: ../src/gtk-ui/sync-ui.c:1943
 msgid "No space left"
 msgstr "Não há mais espaço"
 
 #. TODO identify problem item somehow ?
-#: ../src/gtk-ui/sync-ui.c:1945
+#: ../src/gtk-ui/sync-ui.c:1946
 msgid "Failed to process SyncML"
 msgstr "Falhou o processo de SyncML"
 
-#: ../src/gtk-ui/sync-ui.c:1947
+#: ../src/gtk-ui/sync-ui.c:1948
 msgid "Server authorization failed"
 msgstr "Autorização do servidor falhou"
 
-#: ../src/gtk-ui/sync-ui.c:1949
+#: ../src/gtk-ui/sync-ui.c:1950
 msgid "Failed to parse configuration file"
 msgstr "Falha na triagem do arquivo de configuração"
 
-#: ../src/gtk-ui/sync-ui.c:1951
+#: ../src/gtk-ui/sync-ui.c:1952
 msgid "Failed to read configuration file"
 msgstr "Falha na leitura do arquivo de configuração"
 
-#: ../src/gtk-ui/sync-ui.c:1953
+#: ../src/gtk-ui/sync-ui.c:1954
 msgid "No configuration found"
 msgstr "Nenhuma configuração encontrada"
 
-#: ../src/gtk-ui/sync-ui.c:1955
+#: ../src/gtk-ui/sync-ui.c:1956
 msgid "No configuration file found"
 msgstr "Nenhum arquivo de configuração encontrado"
 
-#: ../src/gtk-ui/sync-ui.c:1957
+#: ../src/gtk-ui/sync-ui.c:1958
 msgid "Server sent bad content"
 msgstr "Servidor enviou conteúdo ruim"
 
-#: ../src/gtk-ui/sync-ui.c:1959
+#: ../src/gtk-ui/sync-ui.c:1960
 msgid "Transport failure (no connection?)"
 msgstr "Falha de transporte (sem conexão?)"
 
-#: ../src/gtk-ui/sync-ui.c:1961
+#: ../src/gtk-ui/sync-ui.c:1962
 msgid "Connection timed out"
 msgstr "Conexão expirou"
 
-#: ../src/gtk-ui/sync-ui.c:1963
+#: ../src/gtk-ui/sync-ui.c:1964
 msgid "Connection certificate has expired"
 msgstr "Certificado de conexão vencido"
 
-#: ../src/gtk-ui/sync-ui.c:1965
+#: ../src/gtk-ui/sync-ui.c:1966
 msgid "Connection certificate is invalid"
 msgstr "Certificado de conexão inválido"
 
-#: ../src/gtk-ui/sync-ui.c:1968
+#: ../src/gtk-ui/sync-ui.c:1969
 msgid "Connection failed"
 msgstr "Conexão falhou"
 
-#: ../src/gtk-ui/sync-ui.c:1970
+#: ../src/gtk-ui/sync-ui.c:1971
 msgid "URL is bad"
 msgstr "URL está ruim"
 
-#: ../src/gtk-ui/sync-ui.c:1972
+#: ../src/gtk-ui/sync-ui.c:1973
 msgid "Server not found"
 msgstr "Servidor não localizado"
 
-#: ../src/gtk-ui/sync-ui.c:1974
+#: ../src/gtk-ui/sync-ui.c:1975
 #, c-format
 msgid "Error %d"
 msgstr "Erro: %d"
 
-#: ../src/gtk-ui/sync-ui.c:1984
+#: ../src/gtk-ui/sync-ui.c:1985
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "Saída inesperada do serviço Sync D-Bus"
 
-#: ../src/gtk-ui/sync-ui.c:1987
-#: ../src/gtk-ui/sync-ui.c:2038
+#: ../src/gtk-ui/sync-ui.c:1988
+#: ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
 msgstr "Sinc. falhou"
 
-#: ../src/gtk-ui/sync-ui.c:2030
+#: ../src/gtk-ui/sync-ui.c:2031
 msgid "Sync complete"
 msgstr "Sinc. completado"
 
-#: ../src/gtk-ui/sync-ui.c:2035
+#: ../src/gtk-ui/sync-ui.c:2036
 msgid "Sync canceled"
 msgstr "Sinc. cancelado"
 
 #. NOTE extra1 can be error here
-#: ../src/gtk-ui/sync-ui.c:2053
+#: ../src/gtk-ui/sync-ui.c:2054
 msgid "Ending sync"
 msgstr "Terminando sinc."
 
 #. TRANSLATORS: placeholder is a source name (e.g. 'Calendar') in a progress text
-#: ../src/gtk-ui/sync-ui.c:2077
+#: ../src/gtk-ui/sync-ui.c:2078
 #, c-format
 msgid "Preparing '%s'"
 msgstr "Preparando: '%s'"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2089
+#: ../src/gtk-ui/sync-ui.c:2090
 #, c-format
 msgid "Sending '%s'"
 msgstr "Enviando: '%s"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2101
+#: ../src/gtk-ui/sync-ui.c:2102
 #, c-format
 msgid "Receiving '%s'"
 msgstr "Recebendo: '%s'"
index 44e9f3a..acd6cfd 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-20 09:19+0000\n"
+"POT-Creation-Date: 2009-07-29 09:20+0000\n"
 "PO-Revision-Date: \n"
 "Last-Translator: GLSSVE_GMartinson <gmartinson@gmail.com>\n"
 "Language-Team: \n"
@@ -23,7 +23,7 @@ msgstr "Kalender"
 
 #: ../src/gtk-ui/sync-ui.c:262
 msgid "Todo"
-msgstr "Attgöra"
+msgstr "Att göra"
 
 #: ../src/gtk-ui/sync-ui.c:264
 msgid "Memo"
@@ -45,321 +45,321 @@ msgstr "Misslyckades med att hämta tjänstkonfiguration från SyncEvolution"
 msgid "Failed to remove service configuration from SyncEvolution"
 msgstr "Misslyckades att radera tjänstekonfigurationen från SyncEvolution"
 
-#: ../src/gtk-ui/sync-ui.c:597
-msgid "Service must have a name"
-msgstr "Du måste ange ett namn på tjänsten."
+#: ../src/gtk-ui/sync-ui.c:598
+msgid "Service must have a name and server URL"
+msgstr "Du måste ange ett namn på tjänsten och URL till servern"
 
 #. sync is no longer in progress for some reason
-#: ../src/gtk-ui/sync-ui.c:673
+#: ../src/gtk-ui/sync-ui.c:674
 msgid "Failed to cancel: sync was no longer in progress"
 msgstr "Misslyckades att avbryta: synkronisationen var inte igång"
 
-#: ../src/gtk-ui/sync-ui.c:677
+#: ../src/gtk-ui/sync-ui.c:678
 msgid "Failed to cancel sync"
 msgstr "Misslyckades med att avbryta synkronisering"
 
-#: ../src/gtk-ui/sync-ui.c:681
+#: ../src/gtk-ui/sync-ui.c:682
 msgid "Canceling sync"
 msgstr "Avbryter synkronisering"
 
-#: ../src/gtk-ui/sync-ui.c:695
+#: ../src/gtk-ui/sync-ui.c:696
 msgid "Trying to cancel sync"
 msgstr "Försöker att avbryta synkronisering"
 
-#: ../src/gtk-ui/sync-ui.c:702
+#: ../src/gtk-ui/sync-ui.c:703
 #, c-format
 msgid "Do you want to delete all local data and replace it with data from %s? This is not usually advised."
 msgstr "Vill du radera all lokal data och ersätta den med data från %s? Detta rekommenderas ej vanligtvis."
 
-#: ../src/gtk-ui/sync-ui.c:707
+#: ../src/gtk-ui/sync-ui.c:708
 #, c-format
 msgid "Do you want to delete all data in %s and replace it with your local data? This is not usually advised."
 msgstr "Vill du radera all data på %s och ersätta den med lokal data? Detta rekommenderas vanligtvis inte."
 
-#: ../src/gtk-ui/sync-ui.c:724
+#: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
 msgstr "Nej, avbryt synkronisering "
 
-#: ../src/gtk-ui/sync-ui.c:725
+#: ../src/gtk-ui/sync-ui.c:726
 msgid "Yes, delete and replace"
 msgstr "Ja, radera och ersätt filer"
 
-#: ../src/gtk-ui/sync-ui.c:747
+#: ../src/gtk-ui/sync-ui.c:748
 msgid "No sources are enabled, not syncing"
 msgstr "Inga datakällor är anslutna, synkroniserar inte"
 
-#: ../src/gtk-ui/sync-ui.c:764
+#: ../src/gtk-ui/sync-ui.c:765
 msgid "A sync is already in progress"
 msgstr "En synkronisering pågår redan"
 
-#: ../src/gtk-ui/sync-ui.c:766
+#: ../src/gtk-ui/sync-ui.c:767
 msgid "Failed to start sync"
 msgstr "Misslyckades med att starta synkronisering"
 
-#: ../src/gtk-ui/sync-ui.c:771
+#: ../src/gtk-ui/sync-ui.c:772
 msgid "Starting sync"
 msgstr "Startar synkronisering"
 
-#: ../src/gtk-ui/sync-ui.c:796
+#: ../src/gtk-ui/sync-ui.c:797
 msgid "Last synced just seconds ago"
 msgstr "Senast synkroniserad endast för några sekunder sedan"
 
-#: ../src/gtk-ui/sync-ui.c:799
+#: ../src/gtk-ui/sync-ui.c:800
 msgid "Last synced a minute ago"
 msgstr "Senaste synkronisering för en minut sedan"
 
-#: ../src/gtk-ui/sync-ui.c:802
+#: ../src/gtk-ui/sync-ui.c:803
 #, c-format
 msgid "Last synced %ld minutes ago"
 msgstr "Senaste synk %ld minuter sedan"
 
-#: ../src/gtk-ui/sync-ui.c:805
+#: ../src/gtk-ui/sync-ui.c:806
 msgid "Last synced an hour ago"
 msgstr "Senaste synkronisering för en timme sedan"
 
-#: ../src/gtk-ui/sync-ui.c:808
+#: ../src/gtk-ui/sync-ui.c:809
 #, c-format
 msgid "Last synced %ld hours ago"
 msgstr "Senaste synk %ld timmar sedan"
 
-#: ../src/gtk-ui/sync-ui.c:811
+#: ../src/gtk-ui/sync-ui.c:812
 msgid "Last synced a day ago"
 msgstr "Senast synkroniserad igår"
 
-#: ../src/gtk-ui/sync-ui.c:814
+#: ../src/gtk-ui/sync-ui.c:815
 #, c-format
 msgid "Last synced %ld days ago"
 msgstr "Senaste synk %ld dagar sedan"
 
-#: ../src/gtk-ui/sync-ui.c:899
+#: ../src/gtk-ui/sync-ui.c:900
 msgid "Sync again"
 msgstr "Synkronisera igen"
 
-#: ../src/gtk-ui/sync-ui.c:901
+#: ../src/gtk-ui/sync-ui.c:902
 #: ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
 msgstr "Synkronisera nu"
 
-#: ../src/gtk-ui/sync-ui.c:910
+#: ../src/gtk-ui/sync-ui.c:911
 msgid "Syncing"
 msgstr "Synkroniserar "
 
-#: ../src/gtk-ui/sync-ui.c:916
+#: ../src/gtk-ui/sync-ui.c:917
 msgid "Cancel sync"
 msgstr "Avbryt synkronisering"
 
 #. TRANSLATORS: placeholder is a source name, shown with checkboxes in main window
-#: ../src/gtk-ui/sync-ui.c:1260
+#: ../src/gtk-ui/sync-ui.c:1261
 #, c-format
 msgid "%s (not supported by this service)"
 msgstr "%s (stöds inte av denna tjänst)"
 
-#: ../src/gtk-ui/sync-ui.c:1293
+#: ../src/gtk-ui/sync-ui.c:1294
 #, c-format
 msgid "There was one remote rejection."
 msgid_plural "There were %d remote rejections."
 msgstr[0] "Det finns en fjärr refusering"
 msgstr[1] "Det finns %d fjärr refuseringar"
 
-#: ../src/gtk-ui/sync-ui.c:1298
+#: ../src/gtk-ui/sync-ui.c:1299
 #, c-format
 msgid "There was one local rejection."
 msgid_plural "There were %d local rejections."
 msgstr[0] "Det finns en lokal refusering"
 msgstr[1] "Det finns %d lokala refuseringar"
 
-#: ../src/gtk-ui/sync-ui.c:1303
+#: ../src/gtk-ui/sync-ui.c:1304
 #, c-format
 msgid "There were %d local rejections and %d remote rejections."
 msgstr "Det finns %d lokala refuseringar och %d fjärr refuseringar"
 
-#: ../src/gtk-ui/sync-ui.c:1308
+#: ../src/gtk-ui/sync-ui.c:1309
 #, c-format
 msgid "Last time: No changes."
 msgstr "Senast: Inga ändringar."
 
-#: ../src/gtk-ui/sync-ui.c:1310
+#: ../src/gtk-ui/sync-ui.c:1311
 #, c-format
 msgid "Last time: Sent one change."
 msgid_plural "Last time: Sent %d changes."
 msgstr[0] "Senast: Skickade en ändring"
 msgstr[1] "Senast: Skickade %d ändringar"
 
-#: ../src/gtk-ui/sync-ui.c:1315
+#: ../src/gtk-ui/sync-ui.c:1316
 #, c-format
 msgid "Last time: Received one change."
 msgid_plural "Last time: Received %d changes."
 msgstr[0] "Senast: Mottog en ändring"
 msgstr[1] "Senast: Mottog %d ändringar"
 
-#: ../src/gtk-ui/sync-ui.c:1320
+#: ../src/gtk-ui/sync-ui.c:1321
 #, c-format
 msgid "Last time: Received %d changes and sent %d changes."
 msgstr "Senast: Mottog %d ändringar och skickade %d ändringar"
 
-#: ../src/gtk-ui/sync-ui.c:1412
+#: ../src/gtk-ui/sync-ui.c:1413
 msgid "Failed to get server configuration from SyncEvolution"
 msgstr "Misslyckades med att hämta serverkonfiguration från SyncEvolution"
 
-#: ../src/gtk-ui/sync-ui.c:1478
+#: ../src/gtk-ui/sync-ui.c:1479
 msgid "New service"
 msgstr "Ny tjänst"
 
-#: ../src/gtk-ui/sync-ui.c:1519
+#: ../src/gtk-ui/sync-ui.c:1520
 msgid "Server URL"
 msgstr "URL server"
 
 #. TRANSLATORS: placeholder is a source name in settings window
-#: ../src/gtk-ui/sync-ui.c:1539
+#: ../src/gtk-ui/sync-ui.c:1540
 #, c-format
 msgid "%s URI"
 msgstr "%s URI"
 
-#: ../src/gtk-ui/sync-ui.c:1674
+#: ../src/gtk-ui/sync-ui.c:1675
 #: ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "Öppna webbplatsen "
 
-#: ../src/gtk-ui/sync-ui.c:1678
+#: ../src/gtk-ui/sync-ui.c:1679
 msgid "Setup and use"
 msgstr "Inställningar"
 
-#: ../src/gtk-ui/sync-ui.c:1724
+#: ../src/gtk-ui/sync-ui.c:1725
 msgid "Failed to get list of manually setup services from SyncEvolution"
 msgstr "Misslyckades att få en lista av manuella inställningstjänster från SyncEvolution"
 
-#: ../src/gtk-ui/sync-ui.c:1765
+#: ../src/gtk-ui/sync-ui.c:1766
 msgid "Failed to get list of supported services from SyncEvolution"
 msgstr "Misslyckades att få en lista med tjänster som stöds från SyncEvolution"
 
 #. TODO: this is a hack... SyncEnd should be a signal of it's own,
 #. not just hacked on top of the syncevolution error codes
-#: ../src/gtk-ui/sync-ui.c:1926
+#: ../src/gtk-ui/sync-ui.c:1927
 msgid "Service configuration not found"
 msgstr "Konfigurationsfilen hittades inte"
 
-#: ../src/gtk-ui/sync-ui.c:1932
+#: ../src/gtk-ui/sync-ui.c:1933
 msgid "Not authorized"
 msgstr "Inte tillåten"
 
-#: ../src/gtk-ui/sync-ui.c:1934
+#: ../src/gtk-ui/sync-ui.c:1935
 msgid "Forbidden"
 msgstr "Förbjuden"
 
-#: ../src/gtk-ui/sync-ui.c:1936
+#: ../src/gtk-ui/sync-ui.c:1937
 msgid "Not found"
 msgstr "Hittades inte"
 
-#: ../src/gtk-ui/sync-ui.c:1938
+#: ../src/gtk-ui/sync-ui.c:1939
 msgid "Fatal database error"
 msgstr "Ödesdigert fel: databasfel"
 
-#: ../src/gtk-ui/sync-ui.c:1940
+#: ../src/gtk-ui/sync-ui.c:1941
 msgid "Database error"
 msgstr "Databasfel"
 
-#: ../src/gtk-ui/sync-ui.c:1942
+#: ../src/gtk-ui/sync-ui.c:1943
 msgid "No space left"
 msgstr "inte tillräckligt med diskutrymme"
 
 #. TODO identify problem item somehow ?
-#: ../src/gtk-ui/sync-ui.c:1945
+#: ../src/gtk-ui/sync-ui.c:1946
 msgid "Failed to process SyncML"
 msgstr "Misslyckades att hantera SyncML"
 
-#: ../src/gtk-ui/sync-ui.c:1947
+#: ../src/gtk-ui/sync-ui.c:1948
 msgid "Server authorization failed"
 msgstr "Misslyckades att ansluta till server"
 
-#: ../src/gtk-ui/sync-ui.c:1949
+#: ../src/gtk-ui/sync-ui.c:1950
 msgid "Failed to parse configuration file"
 msgstr "Misslyckades med att analysera konfigurationsfilen "
 
-#: ../src/gtk-ui/sync-ui.c:1951
+#: ../src/gtk-ui/sync-ui.c:1952
 msgid "Failed to read configuration file"
 msgstr "Misslyckades med att öppna konfigurationsfilen"
 
-#: ../src/gtk-ui/sync-ui.c:1953
+#: ../src/gtk-ui/sync-ui.c:1954
 msgid "No configuration found"
 msgstr "Konfiurationen hittades inte"
 
-#: ../src/gtk-ui/sync-ui.c:1955
+#: ../src/gtk-ui/sync-ui.c:1956
 msgid "No configuration file found"
 msgstr "Konfigurationsfilen hittades inte"
 
-#: ../src/gtk-ui/sync-ui.c:1957
+#: ../src/gtk-ui/sync-ui.c:1958
 msgid "Server sent bad content"
 msgstr "Server skickade felaktigt innehåll"
 
-#: ../src/gtk-ui/sync-ui.c:1959
+#: ../src/gtk-ui/sync-ui.c:1960
 msgid "Transport failure (no connection?)"
 msgstr "Överföringsfel (ingen anslutning)?"
 
-#: ../src/gtk-ui/sync-ui.c:1961
+#: ../src/gtk-ui/sync-ui.c:1962
 msgid "Connection timed out"
 msgstr "Anslutningstiden överskreds"
 
-#: ../src/gtk-ui/sync-ui.c:1963
+#: ../src/gtk-ui/sync-ui.c:1964
 msgid "Connection certificate has expired"
 msgstr "Utfärdat certifikat har gått ut"
 
-#: ../src/gtk-ui/sync-ui.c:1965
+#: ../src/gtk-ui/sync-ui.c:1966
 msgid "Connection certificate is invalid"
 msgstr "Anslutningscertifikatet är ogiltig."
 
-#: ../src/gtk-ui/sync-ui.c:1968
+#: ../src/gtk-ui/sync-ui.c:1969
 msgid "Connection failed"
 msgstr "Anslutningen misslyckades"
 
-#: ../src/gtk-ui/sync-ui.c:1970
+#: ../src/gtk-ui/sync-ui.c:1971
 msgid "URL is bad"
 msgstr "Felaktig URL"
 
-#: ../src/gtk-ui/sync-ui.c:1972
+#: ../src/gtk-ui/sync-ui.c:1973
 msgid "Server not found"
 msgstr "Server kunde inte hittas"
 
-#: ../src/gtk-ui/sync-ui.c:1974
+#: ../src/gtk-ui/sync-ui.c:1975
 #, c-format
 msgid "Error %d"
 msgstr "Fel %d"
 
-#: ../src/gtk-ui/sync-ui.c:1984
+#: ../src/gtk-ui/sync-ui.c:1985
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "Synktjänsten D-Bus avslutades"
 
-#: ../src/gtk-ui/sync-ui.c:1987
-#: ../src/gtk-ui/sync-ui.c:2038
+#: ../src/gtk-ui/sync-ui.c:1988
+#: ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
-msgstr "Synkronisering misslyckades"
+msgstr "Synk misslyckades"
 
-#: ../src/gtk-ui/sync-ui.c:2030
+#: ../src/gtk-ui/sync-ui.c:2031
 msgid "Sync complete"
-msgstr "Synkronisering färdig"
+msgstr "Synk färdig"
 
-#: ../src/gtk-ui/sync-ui.c:2035
+#: ../src/gtk-ui/sync-ui.c:2036
 msgid "Sync canceled"
-msgstr "Synkronisering avbruten"
+msgstr "Synk avbruten"
 
 #. NOTE extra1 can be error here
-#: ../src/gtk-ui/sync-ui.c:2053
+#: ../src/gtk-ui/sync-ui.c:2054
 msgid "Ending sync"
-msgstr "Avslutar synkronisering"
+msgstr "Avslutar synk"
 
 #. TRANSLATORS: placeholder is a source name (e.g. 'Calendar') in a progress text
-#: ../src/gtk-ui/sync-ui.c:2077
+#: ../src/gtk-ui/sync-ui.c:2078
 #, c-format
 msgid "Preparing '%s'"
 msgstr "Förbereder '%s'"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2089
+#: ../src/gtk-ui/sync-ui.c:2090
 #, c-format
 msgid "Sending '%s'"
 msgstr "Skickas till '%s'"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2101
+#: ../src/gtk-ui/sync-ui.c:2102
 #, c-format
 msgid "Receiving '%s'"
 msgstr "Tas emot från '%s'"
index 1f1650d..0cda7b1 100644 (file)
@@ -3,13 +3,13 @@
 # This file is distributed under the same license as the PACKAGE package.
 # Zhu Yanhai <yanhai.zhu@intel.com>, 2009.
 #
-#: ../src/gtk-ui/sync-ui.c:762
+#: ../src/gtk-ui/sync-ui.c:763
 msgid ""
 msgstr ""
 "Project-Id-Version: syncevolution\n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-20 09:19+0000\n"
-"PO-Revision-Date: 2009-06-08 11:44+0800\n"
+"POT-Creation-Date: 2009-07-27 09:20+0000\n"
+"PO-Revision-Date: 2009-07-28 11:44+0800\n"
 "Last-Translator: Zhu Yanhai <yanhai.zhu@intel.com>\n"
 "Language-Team: zh_CN <yanhai.zhu@intel.com\n"
 "MIME-Version: 1.0\n"
@@ -49,35 +49,35 @@ msgstr "试图从SyncEvolution中取得服务配置信息时失败"
 msgid "Failed to remove service configuration from SyncEvolution"
 msgstr "试图从SyncEvolution中删除服务配置信息时失败"
 
-#: ../src/gtk-ui/sync-ui.c:597
-msgid "Service must have a name"
-msgstr "需要给服务命名"
+#: ../src/gtk-ui/sync-ui.c:598
+msgid "Service must have a name and server URL"
+msgstr "需要给服务指定一个名字和服务器地址"
 
 #. sync is no longer in progress for some reason
-#: ../src/gtk-ui/sync-ui.c:673
+#: ../src/gtk-ui/sync-ui.c:674
 msgid "Failed to cancel: sync was no longer in progress"
 msgstr "不能取消: 同步已经停止"
 
-#: ../src/gtk-ui/sync-ui.c:677
+#: ../src/gtk-ui/sync-ui.c:678
 msgid "Failed to cancel sync"
 msgstr "取消同步失败"
 
-#: ../src/gtk-ui/sync-ui.c:681
+#: ../src/gtk-ui/sync-ui.c:682
 msgid "Canceling sync"
 msgstr "正在取消同步"
 
-#: ../src/gtk-ui/sync-ui.c:695
+#: ../src/gtk-ui/sync-ui.c:696
 msgid "Trying to cancel sync"
 msgstr "尝试取消同步"
 
-#: ../src/gtk-ui/sync-ui.c:702
+#: ../src/gtk-ui/sync-ui.c:703
 #, c-format
 msgid ""
 "Do you want to delete all local data and replace it with data from %s? This "
 "is not usually advised."
 msgstr "您想删除所有本地数据并用来自%s的数据替代它们吗?通常我们不建议您这样做."
 
-#: ../src/gtk-ui/sync-ui.c:707
+#: ../src/gtk-ui/sync-ui.c:708
 #, c-format
 msgid ""
 "Do you want to delete all data in %s and replace it with your local data? "
@@ -85,287 +85,287 @@ msgid ""
 msgstr ""
 "您想删除%s中的所有数据并用您的本地数据来替代它们吗?通常我们不建议您这样做"
 
-#: ../src/gtk-ui/sync-ui.c:724
+#: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
 msgstr "不,取消同步"
 
-#: ../src/gtk-ui/sync-ui.c:725
+#: ../src/gtk-ui/sync-ui.c:726
 msgid "Yes, delete and replace"
 msgstr "是的,删除然后替代"
 
-#: ../src/gtk-ui/sync-ui.c:747
+#: ../src/gtk-ui/sync-ui.c:748
 msgid "No sources are enabled, not syncing"
 msgstr "没有可用数据来源,同步未进行"
 
-#: ../src/gtk-ui/sync-ui.c:764
+#: ../src/gtk-ui/sync-ui.c:765
 msgid "A sync is already in progress"
 msgstr "同步操作已在进行中"
 
-#: ../src/gtk-ui/sync-ui.c:766
+#: ../src/gtk-ui/sync-ui.c:767
 msgid "Failed to start sync"
 msgstr "不能开始同步"
 
-#: ../src/gtk-ui/sync-ui.c:771
+#: ../src/gtk-ui/sync-ui.c:772
 msgid "Starting sync"
 msgstr "正在开始同步"
 
-#: ../src/gtk-ui/sync-ui.c:796
+#: ../src/gtk-ui/sync-ui.c:797
 msgid "Last synced just seconds ago"
 msgstr "最近一次同步操作已于几秒前执行"
 
-#: ../src/gtk-ui/sync-ui.c:799
+#: ../src/gtk-ui/sync-ui.c:800
 msgid "Last synced a minute ago"
 msgstr "最近一次同步操作于一分钟前执行"
 
-#: ../src/gtk-ui/sync-ui.c:802
+#: ../src/gtk-ui/sync-ui.c:803
 #, c-format
 msgid "Last synced %ld minutes ago"
 msgstr "最近一次同步操作于%ld分钟前执行"
 
-#: ../src/gtk-ui/sync-ui.c:805
+#: ../src/gtk-ui/sync-ui.c:806
 msgid "Last synced an hour ago"
 msgstr "最近一次同步操作于一小时前执行"
 
-#: ../src/gtk-ui/sync-ui.c:808
+#: ../src/gtk-ui/sync-ui.c:809
 #, c-format
 msgid "Last synced %ld hours ago"
 msgstr "最近一次同步操作于%ld小时前执行"
 
-#: ../src/gtk-ui/sync-ui.c:811
+#: ../src/gtk-ui/sync-ui.c:812
 msgid "Last synced a day ago"
 msgstr "最近一次同步操作于一天前进行"
 
-#: ../src/gtk-ui/sync-ui.c:814
+#: ../src/gtk-ui/sync-ui.c:815
 #, c-format
 msgid "Last synced %ld days ago"
 msgstr "最近一次同步操作于%ld天前进行"
 
-#: ../src/gtk-ui/sync-ui.c:899
+#: ../src/gtk-ui/sync-ui.c:900
 msgid "Sync again"
 msgstr "再次同步"
 
-#: ../src/gtk-ui/sync-ui.c:901 ../src/gtk-ui/ui.glade.h:29
+#: ../src/gtk-ui/sync-ui.c:902 ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
 msgstr "现在同步"
 
-#: ../src/gtk-ui/sync-ui.c:910
+#: ../src/gtk-ui/sync-ui.c:911
 msgid "Syncing"
 msgstr "正在同步"
 
-#: ../src/gtk-ui/sync-ui.c:916
+#: ../src/gtk-ui/sync-ui.c:917
 msgid "Cancel sync"
 msgstr "取消同步"
 
 #. TRANSLATORS: placeholder is a source name, shown with checkboxes in main window
-#: ../src/gtk-ui/sync-ui.c:1260
+#: ../src/gtk-ui/sync-ui.c:1261
 #, c-format
 msgid "%s (not supported by this service)"
 msgstr "%s (不被当前服务所支持)"
 
-#: ../src/gtk-ui/sync-ui.c:1293
+#: ../src/gtk-ui/sync-ui.c:1294
 #, c-format
 msgid "There was one remote rejection."
 msgid_plural "There were %d remote rejections."
 msgstr[0] "出现了一个远端拒绝"
 msgstr[1] "出现了%d个远端拒绝"
 
-#: ../src/gtk-ui/sync-ui.c:1298
+#: ../src/gtk-ui/sync-ui.c:1299
 #, c-format
 msgid "There was one local rejection."
 msgid_plural "There were %d local rejections."
 msgstr[0] "出现了一个本地拒绝"
 msgstr[1] "出现了%d个本地拒绝"
 
-#: ../src/gtk-ui/sync-ui.c:1303
+#: ../src/gtk-ui/sync-ui.c:1304
 #, c-format
 msgid "There were %d local rejections and %d remote rejections."
 msgstr "一共出现了%d个本地拒绝和%d个远端拒绝"
 
-#: ../src/gtk-ui/sync-ui.c:1308
+#: ../src/gtk-ui/sync-ui.c:1309
 #, c-format
 msgid "Last time: No changes."
 msgstr "最近一次: 没有更改"
 
-#: ../src/gtk-ui/sync-ui.c:1310
+#: ../src/gtk-ui/sync-ui.c:1311
 #, c-format
 msgid "Last time: Sent one change."
 msgid_plural "Last time: Sent %d changes."
 msgstr[0] "最近一次: 发送了一个更改"
 msgstr[1] "最近一次: 发现了%d个更改"
 
-#: ../src/gtk-ui/sync-ui.c:1315
+#: ../src/gtk-ui/sync-ui.c:1316
 #, c-format
 msgid "Last time: Received one change."
 msgid_plural "Last time: Received %d changes."
 msgstr[0] "最近一次: 收到了一个更改"
 msgstr[1] "最近一次: 收到了%d个更改"
 
-#: ../src/gtk-ui/sync-ui.c:1320
+#: ../src/gtk-ui/sync-ui.c:1321
 #, c-format
 msgid "Last time: Received %d changes and sent %d changes."
 msgstr "最近一次: 收到了%d个更改并发送了%d个更改"
 
-#: ../src/gtk-ui/sync-ui.c:1412
+#: ../src/gtk-ui/sync-ui.c:1413
 msgid "Failed to get server configuration from SyncEvolution"
 msgstr "未能从SyncEvolution处取得服务器配置信息"
 
-#: ../src/gtk-ui/sync-ui.c:1478
+#: ../src/gtk-ui/sync-ui.c:1479
 msgid "New service"
 msgstr "新服务"
 
-#: ../src/gtk-ui/sync-ui.c:1519
+#: ../src/gtk-ui/sync-ui.c:1520
 msgid "Server URL"
 msgstr "服务器的URL"
 
 #. TRANSLATORS: placeholder is a source name in settings window
-#: ../src/gtk-ui/sync-ui.c:1539
+#: ../src/gtk-ui/sync-ui.c:1540
 #, c-format
 msgid "%s URI"
 msgstr "%s URI"
 
-#: ../src/gtk-ui/sync-ui.c:1674 ../src/gtk-ui/ui.glade.h:17
+#: ../src/gtk-ui/sync-ui.c:1675 ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "打开站点"
 
-#: ../src/gtk-ui/sync-ui.c:1678
+#: ../src/gtk-ui/sync-ui.c:1679
 msgid "Setup and use"
 msgstr "配置并使用"
 
-#: ../src/gtk-ui/sync-ui.c:1724
+#: ../src/gtk-ui/sync-ui.c:1725
 msgid "Failed to get list of manually setup services from SyncEvolution"
 msgstr "未能从SyncEvolution取得手动设置服务列表"
 
-#: ../src/gtk-ui/sync-ui.c:1765
+#: ../src/gtk-ui/sync-ui.c:1766
 msgid "Failed to get list of supported services from SyncEvolution"
 msgstr "未能从SyncEvolution得到支持的服务列表"
 
 #. TODO: this is a hack... SyncEnd should be a signal of it's own,
 #. not just hacked on top of the syncevolution error codes
-#: ../src/gtk-ui/sync-ui.c:1926
+#: ../src/gtk-ui/sync-ui.c:1927
 msgid "Service configuration not found"
 msgstr "服务配置没找到"
 
-#: ../src/gtk-ui/sync-ui.c:1932
+#: ../src/gtk-ui/sync-ui.c:1933
 msgid "Not authorized"
 msgstr "未认证"
 
-#: ../src/gtk-ui/sync-ui.c:1934
+#: ../src/gtk-ui/sync-ui.c:1935
 msgid "Forbidden"
 msgstr "被禁止"
 
-#: ../src/gtk-ui/sync-ui.c:1936
+#: ../src/gtk-ui/sync-ui.c:1937
 msgid "Not found"
 msgstr "没找到"
 
-#: ../src/gtk-ui/sync-ui.c:1938
+#: ../src/gtk-ui/sync-ui.c:1939
 msgid "Fatal database error"
 msgstr "严重的数据库错误"
 
-#: ../src/gtk-ui/sync-ui.c:1940
+#: ../src/gtk-ui/sync-ui.c:1941
 msgid "Database error"
 msgstr "数据库错误"
 
-#: ../src/gtk-ui/sync-ui.c:1942
+#: ../src/gtk-ui/sync-ui.c:1943
 msgid "No space left"
 msgstr "没有剩余空间"
 
 #. TODO identify problem item somehow ?
-#: ../src/gtk-ui/sync-ui.c:1945
+#: ../src/gtk-ui/sync-ui.c:1946
 msgid "Failed to process SyncML"
 msgstr "处理SyncML失败"
 
-#: ../src/gtk-ui/sync-ui.c:1947
+#: ../src/gtk-ui/sync-ui.c:1948
 msgid "Server authorization failed"
 msgstr "服务器认证失败"
 
-#: ../src/gtk-ui/sync-ui.c:1949
+#: ../src/gtk-ui/sync-ui.c:1950
 msgid "Failed to parse configuration file"
 msgstr "解析配置文件出错"
 
-#: ../src/gtk-ui/sync-ui.c:1951
+#: ../src/gtk-ui/sync-ui.c:1952
 msgid "Failed to read configuration file"
 msgstr "读配置文件时出错"
 
-#: ../src/gtk-ui/sync-ui.c:1953
+#: ../src/gtk-ui/sync-ui.c:1954
 msgid "No configuration found"
 msgstr "未找到配置"
 
-#: ../src/gtk-ui/sync-ui.c:1955
+#: ../src/gtk-ui/sync-ui.c:1956
 msgid "No configuration file found"
 msgstr "未找到配置文件"
 
-#: ../src/gtk-ui/sync-ui.c:1957
+#: ../src/gtk-ui/sync-ui.c:1958
 msgid "Server sent bad content"
 msgstr "服务器发送的内容错误"
 
-#: ../src/gtk-ui/sync-ui.c:1959
+#: ../src/gtk-ui/sync-ui.c:1960
 msgid "Transport failure (no connection?)"
 msgstr "传输错误(没建立连接?)"
 
-#: ../src/gtk-ui/sync-ui.c:1961
+#: ../src/gtk-ui/sync-ui.c:1962
 msgid "Connection timed out"
 msgstr "连接超时"
 
-#: ../src/gtk-ui/sync-ui.c:1963
+#: ../src/gtk-ui/sync-ui.c:1964
 msgid "Connection certificate has expired"
 msgstr "该连接的认证已过期"
 
-#: ../src/gtk-ui/sync-ui.c:1965
+#: ../src/gtk-ui/sync-ui.c:1966
 msgid "Connection certificate is invalid"
 msgstr "连接认证不合法"
 
-#: ../src/gtk-ui/sync-ui.c:1968
+#: ../src/gtk-ui/sync-ui.c:1969
 msgid "Connection failed"
 msgstr "连接失败"
 
-#: ../src/gtk-ui/sync-ui.c:1970
+#: ../src/gtk-ui/sync-ui.c:1971
 msgid "URL is bad"
 msgstr "URL有误"
 
-#: ../src/gtk-ui/sync-ui.c:1972
+#: ../src/gtk-ui/sync-ui.c:1973
 msgid "Server not found"
 msgstr "没找到服务器"
 
-#: ../src/gtk-ui/sync-ui.c:1974
+#: ../src/gtk-ui/sync-ui.c:1975
 #, c-format
 msgid "Error %d"
 msgstr "错误 %d"
 
-#: ../src/gtk-ui/sync-ui.c:1984
+#: ../src/gtk-ui/sync-ui.c:1985
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "Sync的D-Bus服务异常退出"
 
-#: ../src/gtk-ui/sync-ui.c:1987 ../src/gtk-ui/sync-ui.c:2038
+#: ../src/gtk-ui/sync-ui.c:1988 ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
 msgstr "同步失败"
 
-#: ../src/gtk-ui/sync-ui.c:2030
+#: ../src/gtk-ui/sync-ui.c:2031
 msgid "Sync complete"
 msgstr "同步完成"
 
-#: ../src/gtk-ui/sync-ui.c:2035
+#: ../src/gtk-ui/sync-ui.c:2036
 msgid "Sync canceled"
 msgstr "同步被取消"
 
 #. NOTE extra1 can be error here
-#: ../src/gtk-ui/sync-ui.c:2053
+#: ../src/gtk-ui/sync-ui.c:2054
 msgid "Ending sync"
 msgstr "结束同步"
 
 #. TRANSLATORS: placeholder is a source name (e.g. 'Calendar') in a progress text
-#: ../src/gtk-ui/sync-ui.c:2077
+#: ../src/gtk-ui/sync-ui.c:2078
 #, c-format
 msgid "Preparing '%s'"
 msgstr "正在准备 '%s'"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2089
+#: ../src/gtk-ui/sync-ui.c:2090
 #, c-format
 msgid "Sending '%s'"
 msgstr "正在发送 '%s'"
 
 #. TRANSLATORS: placeholder is a source name in a progress text
-#: ../src/gtk-ui/sync-ui.c:2101
+#: ../src/gtk-ui/sync-ui.c:2102
 #, c-format
 msgid "Receiving '%s'"
 msgstr "正在接收 '%s'"
index efb51b2..4e1846b 100644 (file)
@@ -1,8 +1,9 @@
+#: ../src/gtk-ui/sync-ui.c:763
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://moblin.org/projects/syncevolution\n"
-"POT-Creation-Date: 2009-07-22 09:19+0000\n"
+"POT-Creation-Date: 2009-07-29 09:20+0000\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Glscht_Wen <wen.hsinx.moh@intel.com>\n"
 "Language-Team: \n"
@@ -68,13 +69,18 @@ msgstr "正在嘗試取消同步"
 
 #: ../src/gtk-ui/sync-ui.c:703
 #, c-format
-msgid "Do you want to delete all local data and replace it with data from %s? This is not usually advised."
+msgid ""
+"Do you want to delete all local data and replace it with data from %s? This "
+"is not usually advised."
 msgstr "你要刪除所有本機資料,並以在%s上的資料取代?我們通常不建議這麼做。"
 
 #: ../src/gtk-ui/sync-ui.c:708
 #, c-format
-msgid "Do you want to delete all data in %s and replace it with your local data? This is not usually advised."
-msgstr "你要刪除所有在%s上的資料,並以在本機上的資料取代?我們通常不建議這麼做。"
+msgid ""
+"Do you want to delete all data in %s and replace it with your local data? "
+"This is not usually advised."
+msgstr ""
+"你要刪除所有在%s上的資料,並以在本機上的資料取代?我們通常不建議這麼做。"
 
 #: ../src/gtk-ui/sync-ui.c:725
 msgid "No, cancel sync"
@@ -135,8 +141,7 @@ msgstr "最後一次同步是在%ld天以前"
 msgid "Sync again"
 msgstr "再次同步"
 
-#: ../src/gtk-ui/sync-ui.c:902
-#: ../src/gtk-ui/ui.glade.h:29
+#: ../src/gtk-ui/sync-ui.c:902 ../src/gtk-ui/ui.glade.h:29
 msgid "Sync now"
 msgstr "現在同步"
 
@@ -215,8 +220,7 @@ msgstr "伺服器 URL"
 msgid "%s URI"
 msgstr "%s URI"
 
-#: ../src/gtk-ui/sync-ui.c:1675
-#: ../src/gtk-ui/ui.glade.h:17
+#: ../src/gtk-ui/sync-ui.c:1675 ../src/gtk-ui/ui.glade.h:17
 msgid "Launch website"
 msgstr "開啟網站"
 
@@ -328,8 +332,7 @@ msgstr "錯誤 %d"
 msgid "Sync D-Bus service exited unexpectedly"
 msgstr "同步 D-Bus 服務在沒有預料的情況下離開"
 
-#: ../src/gtk-ui/sync-ui.c:1988
-#: ../src/gtk-ui/sync-ui.c:2039
+#: ../src/gtk-ui/sync-ui.c:1988 ../src/gtk-ui/sync-ui.c:2039
 msgid "Sync Failed"
 msgstr "同步失敗"
 
@@ -420,7 +423,8 @@ msgstr "編輯服務設定"
 
 #: ../src/gtk-ui/ui.glade.h:15
 msgid ""
-"If you don't see your service above but know that your sync provider uses SyncML\n"
+"If you don't see your service above but know that your sync provider uses "
+"SyncML\n"
 "you can setup a service manually."
 msgstr ""
 "如果你在上面沒有看到你的服務,但是你知道你的同步提供者使用 SyncML,\n"
@@ -466,18 +470,19 @@ msgstr ""
 msgid "Stop using this service"
 msgstr "停止使用此服務"
 
-#: ../src/gtk-ui/ui.glade.h:28
-#: ../src/gtk-ui/sync.desktop.in.h:1
+#: ../src/gtk-ui/ui.glade.h:28 ../src/gtk-ui/sync.desktop.in.h:1
 msgid "Sync"
 msgstr "同步"
 
 #: ../src/gtk-ui/ui.glade.h:30
-msgid "Synchronization is not available (D-Bus service does not answer), sorry."
+msgid ""
+"Synchronization is not available (D-Bus service does not answer), sorry."
 msgstr "非常抱歉,因為 D-Bus 服務沒有回應,所以不提供同步化。"
 
 #: ../src/gtk-ui/ui.glade.h:31
 msgid ""
-"To sync you'll need a network connection and an account with a sync service.\n"
+"To sync you'll need a network connection and an account with a sync "
+"service.\n"
 "We support the following services: "
 msgstr ""
 "要同步,你必須有網路連線和同步服務帳戶。\n"
@@ -491,7 +496,9 @@ msgstr "使用者名稱"
 msgid ""
 "You haven't set up a sync service yet. Sync services let you \n"
 "synchronize your data between your netbook and a web service."
-msgstr "你尚未設定一個同步服務。同步服務讓你在你的隨身型易網機和網路服務之間同步進行數據。"
+msgstr ""
+"你尚未設定一個同步服務。同步服務讓你在你的隨身型易網機和網路服務之間同步進行"
+"數據。"
 
 #: ../src/gtk-ui/sync.desktop.in.h:2
 msgid "Up to date"
@@ -499,4 +506,3 @@ msgstr "最新"
 
 #~ msgid "Bring your data with you"
 #~ msgstr "請帶攜你的數據"
-
index 65687a6..aa5d471 100644 (file)
@@ -89,7 +89,17 @@ void DBusSyncClient::displaySourceProgress(sysync::TProgressEventEnum type,
                                            EvolutionSyncSource &source,
                                            int32_t extra1, int32_t extra2, int32_t extra3)
 {
-       m_progress (g_strdup (source.getName()), type, extra1, extra2, extra3, m_userdata);
+       m_progress (g_strdup (source.getName()), type, extra1, extra2,
+                    // Synthesis engine doesn't count locally
+                    // deleted items during
+                    // refresh-from-server. That's a matter of
+                    // taste. In SyncEvolution we'd like these
+                    // items to show up, so add it here.
+                    (type == sysync::PEV_DSSTATS_L &&
+                     source.getFinalSyncMode() == SYNC_REFRESH_FROM_SERVER) ? 
+                    source.getNumDeleted() :
+                    extra3,
+                    m_userdata);
        EvolutionSyncClient::displaySourceProgress(type, source, extra1, extra2, extra3);
 }
 
index 163213a..17a2d22 100644 (file)
@@ -290,7 +290,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index 8d281f4..80ebc4a 100644 (file)
@@ -152,7 +152,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index f0f7b40..85d6c61 100644 (file)
@@ -174,7 +174,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index f8b934a..322a740 100644 (file)
@@ -150,7 +150,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index 9d247c4..31e459c 100644 (file)
@@ -151,7 +151,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index ef7d15d..00e94d1 100644 (file)
@@ -256,9 +256,16 @@ public:
         LoggerBase::instance().setLevel(Logger::DEBUG);
         std::string root = std::string("evolution/") + server + "_" + id;
         EvolutionSyncConfig config(string(server) + "_" + id);
+        boost::shared_ptr<EvolutionSyncConfig> from = boost::shared_ptr<EvolutionSyncConfig> ();
+
         if (!config.exists()) {
             // no configuration yet
             config.setDefaults();
+            from = EvolutionSyncConfig::createServerTemplate(server);
+            if(from) {
+                set<string> filter;
+                config.copy(*from, &filter);
+            }
             config.setDevID(id == "1" ? "sc-api-nat" : "sc-pim-ppc");
         }
         BOOST_FOREACH(const RegisterSyncSourceTest *test, m_configs) {
@@ -273,6 +280,10 @@ public:
                 sc = config.getSyncSourceConfig(testconfig.sourceName);
                 CPPUNIT_ASSERT(sc);
                 sc->setURI(testconfig.uri);
+                if(from && testconfig.sourceNameServerTemplate){
+                    boost::shared_ptr<EvolutionSyncSourceConfig> scServerTemplate = from->getSyncSourceConfig(testconfig.sourceNameServerTemplate);
+                    sc->setURI(scServerTemplate->getURI());
+                }
                 sc->setSourceType(testconfig.type);
             }
 
index 0a5e911..ec78fa1 100644 (file)
@@ -926,6 +926,13 @@ void EvolutionSyncClient::displaySourceProgress(sysync::TProgressEventEnum type,
         source.setItemStat(EvolutionSyncSource::ITEM_LOCAL,
                            EvolutionSyncSource::ITEM_REMOVED,
                            EvolutionSyncSource::ITEM_TOTAL,
+                           // Synthesis engine doesn't count locally
+                           // deleted items during
+                           // refresh-from-server. That's a matter of
+                           // taste. In SyncEvolution we'd like these
+                           // items to show up, so add it here.
+                           source.getFinalSyncMode() == SYNC_REFRESH_FROM_SERVER ? 
+                           source.getNumDeleted() :
                            extra3);
         break;
     case sysync::PEV_DSSTATS_R:
@@ -1251,7 +1258,7 @@ void EvolutionSyncClient::getConfigXML(string &xml, string &configname)
             "    <logformat>html</logformat>\n"
             "    <folding>auto</folding>\n"
             "    <timestamp>yes</timestamp>\n"
-            "    <timestampall>no</timestampall>\n"
+            "    <timestampall>yes</timestampall>\n"
             "    <timedsessionlognames>no</timedsessionlognames>\n"
             "    <subthreadmode>suppress</subthreadmode>\n"
             "    <logsessionstoglobal>yes</logsessionstoglobal>\n"
index 1384bba..ef01ef4 100644 (file)
@@ -505,7 +505,11 @@ SyncMLStatus EvolutionSyncSource::updateItem(SyncItem& item) throw()
 
 SyncMLStatus EvolutionSyncSource::deleteItem(SyncItem& item) throw()
 {
-    return processItem("delete", &EvolutionSyncSource::deleteItemThrow, item, false);
+    SyncMLStatus status = processItem("delete", &EvolutionSyncSource::deleteItemThrow, item, false);
+    if (status == STATUS_OK) {
+        incrementNumDeleted();
+    }
+    return status;
 }
 
 SyncMLStatus EvolutionSyncSource::removeAllItems() throw()
@@ -518,6 +522,7 @@ SyncMLStatus EvolutionSyncSource::removeAllItems() throw()
             item.setKey(key.c_str());
             logItem(item, "delete all items");
             deleteItemThrow(item);
+            incrementNumDeleted();
             m_isModified = true;
         }
     } catch (...) {
index ed4c9bb..32b96d8 100644 (file)
@@ -352,6 +352,7 @@ class EvolutionSyncSource : public EvolutionSyncSourceConfig, public LoggerBase,
         m_deletedItems( *this, "deleted", SyncItem::DELETED ),
         m_isModified( false ),
         m_modTimeStamp(0),
+        m_numDeleted(0),
         m_hasFailed( false )
         {
         }
@@ -722,6 +723,10 @@ class EvolutionSyncSource : public EvolutionSyncSourceConfig, public LoggerBase,
                           va_list args);
     /**@}*/
 
+    long getNumDeleted() { return m_numDeleted; }
+    void setNumDeleted(long num) { m_numDeleted = num; }
+    void incrementNumDeleted() { m_numDeleted++; }
+
   protected:
 #ifdef HAVE_EDS
     /**
@@ -856,6 +861,15 @@ class EvolutionSyncSource : public EvolutionSyncSourceConfig, public LoggerBase,
     /** time stamp of latest database modification, for sleepSinceModification() */
     time_t m_modTimeStamp;
 
+    /**
+     * Counter for items deleted in the source. Has to be incremented
+     * by RemoveAllItems() and DeleteItem(). This counter is used to
+     * update the Synthesis engine counter in those cases where the
+     * engine does not (refresh from server) or cannot
+     * (RemoveAllItems()) count the removals itself.
+     */
+    long m_numDeleted;
+
     /** keeps track of failure state */
     bool m_hasFailed;
 
index a48b6af..252ff0e 100644 (file)
@@ -177,7 +177,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index 284b7ba..bf9dccb 100644 (file)
@@ -67,6 +67,27 @@ const char *SyncEvolutionXML =
 "          DTSTART = CONVERTTOUSERZONE(DTSTART);\n"
 "          MAKEALLDAY(DTSTART,DTEND,i);\n"
 "        }\n"
+"\n"
+"        // Make sure that all EXDATE times are in the same timezone as the start\n"
+"        // time. Some servers send them as UTC, which is all fine and well, but\n"
+"        // only if the timezone definition doesn't change. Also, libical does not\n"
+"        // handle such UTC EXDATEs, so let's convert it while the UTC and\n"
+"        // time zone definition (hopefully) are in sync.\n"
+"        if (TIMEZONE(DTSTART) != \"UTC\" && !ISFLOATING(DTSTART)) {\n"
+"          i = 0;\n"
+"          timestamp exdate;\n"
+"          while (i<SIZE(EXDATES)) {\n"
+"            exdate = EXDATES[i];\n"
+"            if (!ISDATEONLY(exdate) &&\n"
+"                (TIMEZONE(exdate) == \"UTC\" || ISFLOATING(exdate))) {\n"
+"              // \"unfloat\" floating time stamps: not sure whether that occcurs\n"
+"              // in practice, but it looks as wrong as UTC EXDATEs\n"
+"              EXDATES[i] = CONVERTTOZONE(exdate,DTSTART,TRUE);\n"
+"            }\n"
+"            i=i+1;\n"
+"          }\n"
+"        }\n"
+"\n"
 "        // - shape attendees (and make sure ATTENDEES[] is assigned even for empty email addresses)\n"
 "        i=0;\n"
 "        while(i<SIZE(ATTENDEES) || i<SIZE(ATTENDEE_CNS)) {\n"
index a9e77d9..29a2495 100644 (file)
@@ -178,7 +178,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index 4ae9f23..9197a92 100644 (file)
@@ -109,7 +109,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index 55b549b..ca47b4c 100644 (file)
@@ -342,7 +342,7 @@ abort_sync_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 abort_sync_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -354,6 +354,8 @@ abort_sync_async_error (SyncevoAsyncData *data)
                                               error,
                                               data->userdata);
        g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void 
@@ -420,7 +422,7 @@ get_servers_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 get_servers_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -433,6 +435,8 @@ get_servers_async_error (SyncevoAsyncData *data)
                                                error,
                                                data->userdata);
        g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void 
@@ -496,7 +500,7 @@ get_templates_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 get_templates_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -509,6 +513,8 @@ get_templates_async_error (SyncevoAsyncData *data)
                                                  error,
                                                  data->userdata);
        g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void syncevo_service_get_templates_async (SyncevoService *service,
@@ -573,7 +579,7 @@ get_template_config_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 get_template_config_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -586,6 +592,8 @@ get_template_config_async_error (SyncevoAsyncData *data)
                                                       error,
                                                       data->userdata);
        g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void 
@@ -653,7 +661,7 @@ get_server_config_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 get_server_config_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -665,7 +673,8 @@ get_server_config_async_error (SyncevoAsyncData *data)
                                                     NULL,
                                                     error,
                                                     data->userdata);
-       g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void 
@@ -732,7 +741,7 @@ set_server_config_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 set_server_config_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -744,6 +753,8 @@ set_server_config_async_error (SyncevoAsyncData *data)
                                                     error,
                                                     data->userdata);
        g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void 
@@ -810,7 +821,7 @@ remove_server_config_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 remove_server_config_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -822,6 +833,8 @@ remove_server_config_async_error (SyncevoAsyncData *data)
                                                        error,
                                                        data->userdata);
        g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void 
@@ -893,7 +906,7 @@ get_sync_reports_async_callback (DBusGProxy *proxy,
        g_slice_free (SyncevoAsyncData, data);
 }
 
-static void
+static gboolean
 get_sync_reports_async_error (SyncevoAsyncData *data)
 {
        GError *error;
@@ -906,6 +919,8 @@ get_sync_reports_async_error (SyncevoAsyncData *data)
                                                    error,
                                                    data->userdata);
        g_slice_free (SyncevoAsyncData, data);
+
+       return FALSE;
 }
 
 void 
index 3d527f2..cdfd3d0 100644 (file)
@@ -1,9 +1,13 @@
 applicationsdir = $(datadir)/applications
 applications_in_files = sync.desktop.in
 applications_generated = $(applications_in_files:.desktop.in=.desktop)
-applications_DATA = $(applications_generated)
+applications_DATA = $(GUI_DESKTOP_FILES)
 @INTLTOOL_DESKTOP_RULE@
 
+# would be nicer to have different descriptions and names...
+sync-gtk.desktop sync-moblin.desktop: sync-%.desktop: sync.desktop
+       sed -e 's/Exec=sync-ui/Exec=sync-ui-$*/' $< >$@
+
 gladedir = $(datadir)/syncevolution/
 glade_DATA = \
        ui.xml
@@ -25,22 +29,42 @@ EXTRA_DIST = \
 ui.xml: ui.glade
        $(GTK_BUILDER_CONV) $< $(@F)
 
-bin_PROGRAMS = \
-       sync-ui
-
+# sync-ui: default GUI, could be plain GTK or Moblin UX
+# sync-ui-gtk: GTK GUI
+# sync-ui-moblin: Moblin UX
+#
+# The later two are built when --enable-gui=all was used.
+EXTRA_PROGRAMS = \
+       sync-ui \
+       sync-ui-gtk \
+       sync-ui-moblin
+bin_PROGRAMS = $(GUI_PROGRAMS)
 
 sync_ui_SOURCES = \
        main.c sync-ui.c sync-ui.h sync-ui-config.c sync-ui-config.h \
        mux-frame.c mux-frame.h mux-window.c mux-window.h mux-icon-button.c mux-icon-button.h
 nodist_sync_ui_SOURCES = sync-ui-marshal.c sync-ui-marshal.h
-sync_ui_LDADD = $(GUI_LIBS) $(DBUS_GLIB_LIBS) -L$(top_builddir)/src/dbus -lsyncevo-dbus
-sync_ui_CFLAGS = $(GUI_CFLAGS) $(DBUS_GLIB_CFLAGS) \
-                 -DGLADEDIR=\""$(gladedir)"\" \
-                 -DTHEMEDIR=\""$(themercdir)"\" \
-                 -DLIBEXECDIR=\"@libexecdir@\" \
-                 -DSYNCEVOLUTION_LOCALEDIR=\"${SYNCEVOLUTION_LOCALEDIR}\"
+sync_ui_LDADD = $(GUI_LIBS) $(DBUS_GLIB_LIBS) $(top_builddir)/src/dbus/libsyncevo-dbus.la
+sync_ui_CFLAGS = $(GUI_CFLAGS) \
+       $(DBUS_GLIB_CFLAGS) \
+       -DGLADEDIR=\""$(gladedir)"\" \
+       -DTHEMEDIR=\""$(themercdir)"\" \
+       -DLIBEXECDIR=\"@libexecdir@\" \
+       -DSYNCEVOLUTION_LOCALEDIR=\"${SYNCEVOLUTION_LOCALEDIR}\"
 sync_ui_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/src/dbus -I$(top_srcdir)/src/dbus $(SYNTHESIS_CFLAGS) 
 
+sync_ui_gtk_SOURCES = $(sync_ui_SOURCES)
+nodist_sync_ui_gtk_SOURCES = $(nodist_sync_ui_SOURCES)
+sync_ui_gtk_LDADD = $(sync_ui_LDADD)
+sync_ui_gtk_CFLAGS = $(sync_ui_CFLAGS)
+sync_ui_gtk_CPPFLAGS = $(sync_ui_CPPFLAGS)
+
+sync_ui_moblin_SOURCES = $(sync_ui_SOURCES)
+nodist_sync_ui_moblin_SOURCES = $(nodist_sync_ui_SOURCES)
+sync_ui_moblin_LDADD = $(sync_ui_LDADD)
+sync_ui_moblin_CFLAGS = $(sync_ui_CFLAGS)
+sync_ui_moblin_CPPFLAGS = $(sync_ui_CPPFLAGS) -DUSE_MOBLIN_UX
+
 noinst_DATA = sync-ui-marshal.list
 if COND_GUI
 BUILT_SOURCES = \
index ab2b0b6..17cb007 100644 (file)
@@ -33,7 +33,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-bin_PROGRAMS = sync-ui$(EXEEXT)
+EXTRA_PROGRAMS = sync-ui$(EXEEXT) sync-ui-gtk$(EXEEXT) \
+       sync-ui-moblin$(EXEEXT)
 subdir = src/gtk-ui
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -54,10 +55,43 @@ am_sync_ui_OBJECTS = sync_ui-main.$(OBJEXT) sync_ui-sync-ui.$(OBJEXT) \
 nodist_sync_ui_OBJECTS = sync_ui-sync-ui-marshal.$(OBJEXT)
 sync_ui_OBJECTS = $(am_sync_ui_OBJECTS) $(nodist_sync_ui_OBJECTS)
 am__DEPENDENCIES_1 =
-sync_ui_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+sync_ui_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(top_builddir)/src/dbus/libsyncevo-dbus.la
 sync_ui_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
        --mode=link $(CCLD) $(sync_ui_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
        $(LDFLAGS) -o $@
+am__objects_1 = sync_ui_gtk-main.$(OBJEXT) \
+       sync_ui_gtk-sync-ui.$(OBJEXT) \
+       sync_ui_gtk-sync-ui-config.$(OBJEXT) \
+       sync_ui_gtk-mux-frame.$(OBJEXT) \
+       sync_ui_gtk-mux-window.$(OBJEXT) \
+       sync_ui_gtk-mux-icon-button.$(OBJEXT)
+am_sync_ui_gtk_OBJECTS = $(am__objects_1)
+am__objects_2 = sync_ui_gtk-sync-ui-marshal.$(OBJEXT)
+nodist_sync_ui_gtk_OBJECTS = $(am__objects_2)
+sync_ui_gtk_OBJECTS = $(am_sync_ui_gtk_OBJECTS) \
+       $(nodist_sync_ui_gtk_OBJECTS)
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+       $(top_builddir)/src/dbus/libsyncevo-dbus.la
+sync_ui_gtk_DEPENDENCIES = $(am__DEPENDENCIES_2)
+sync_ui_gtk_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(sync_ui_gtk_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__objects_3 = sync_ui_moblin-main.$(OBJEXT) \
+       sync_ui_moblin-sync-ui.$(OBJEXT) \
+       sync_ui_moblin-sync-ui-config.$(OBJEXT) \
+       sync_ui_moblin-mux-frame.$(OBJEXT) \
+       sync_ui_moblin-mux-window.$(OBJEXT) \
+       sync_ui_moblin-mux-icon-button.$(OBJEXT)
+am_sync_ui_moblin_OBJECTS = $(am__objects_3)
+am__objects_4 = sync_ui_moblin-sync-ui-marshal.$(OBJEXT)
+nodist_sync_ui_moblin_OBJECTS = $(am__objects_4)
+sync_ui_moblin_OBJECTS = $(am_sync_ui_moblin_OBJECTS) \
+       $(nodist_sync_ui_moblin_OBJECTS)
+sync_ui_moblin_DEPENDENCIES = $(am__DEPENDENCIES_2)
+sync_ui_moblin_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(sync_ui_moblin_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -70,8 +104,11 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
        --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
        $(LDFLAGS) -o $@
-SOURCES = $(sync_ui_SOURCES) $(nodist_sync_ui_SOURCES)
-DIST_SOURCES = $(sync_ui_SOURCES)
+SOURCES = $(sync_ui_SOURCES) $(nodist_sync_ui_SOURCES) \
+       $(sync_ui_gtk_SOURCES) $(nodist_sync_ui_gtk_SOURCES) \
+       $(sync_ui_moblin_SOURCES) $(nodist_sync_ui_moblin_SOURCES)
+DIST_SOURCES = $(sync_ui_SOURCES) $(sync_ui_gtk_SOURCES) \
+       $(sync_ui_moblin_SOURCES)
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -149,7 +186,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -274,7 +313,7 @@ top_srcdir = @top_srcdir@
 applicationsdir = $(datadir)/applications
 applications_in_files = sync.desktop.in
 applications_generated = $(applications_in_files:.desktop.in=.desktop)
-applications_DATA = $(applications_generated)
+applications_DATA = $(GUI_DESKTOP_FILES)
 gladedir = $(datadir)/syncevolution/
 glade_DATA = \
        ui.xml
@@ -292,19 +331,31 @@ EXTRA_DIST = \
        $(applications_in_files) \
        $(noinst_DATA)
 
+bin_PROGRAMS = $(GUI_PROGRAMS)
 sync_ui_SOURCES = \
        main.c sync-ui.c sync-ui.h sync-ui-config.c sync-ui-config.h \
        mux-frame.c mux-frame.h mux-window.c mux-window.h mux-icon-button.c mux-icon-button.h
 
 nodist_sync_ui_SOURCES = sync-ui-marshal.c sync-ui-marshal.h
-sync_ui_LDADD = $(GUI_LIBS) $(DBUS_GLIB_LIBS) -L$(top_builddir)/src/dbus -lsyncevo-dbus
-sync_ui_CFLAGS = $(GUI_CFLAGS) $(DBUS_GLIB_CFLAGS) \
-                 -DGLADEDIR=\""$(gladedir)"\" \
-                 -DTHEMEDIR=\""$(themercdir)"\" \
-                 -DLIBEXECDIR=\"@libexecdir@\" \
-                 -DSYNCEVOLUTION_LOCALEDIR=\"${SYNCEVOLUTION_LOCALEDIR}\"
+sync_ui_LDADD = $(GUI_LIBS) $(DBUS_GLIB_LIBS) $(top_builddir)/src/dbus/libsyncevo-dbus.la
+sync_ui_CFLAGS = $(GUI_CFLAGS) \
+       $(DBUS_GLIB_CFLAGS) \
+       -DGLADEDIR=\""$(gladedir)"\" \
+       -DTHEMEDIR=\""$(themercdir)"\" \
+       -DLIBEXECDIR=\"@libexecdir@\" \
+       -DSYNCEVOLUTION_LOCALEDIR=\"${SYNCEVOLUTION_LOCALEDIR}\"
 
 sync_ui_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_builddir)/src/dbus -I$(top_srcdir)/src/dbus $(SYNTHESIS_CFLAGS) 
+sync_ui_gtk_SOURCES = $(sync_ui_SOURCES)
+nodist_sync_ui_gtk_SOURCES = $(nodist_sync_ui_SOURCES)
+sync_ui_gtk_LDADD = $(sync_ui_LDADD)
+sync_ui_gtk_CFLAGS = $(sync_ui_CFLAGS)
+sync_ui_gtk_CPPFLAGS = $(sync_ui_CPPFLAGS)
+sync_ui_moblin_SOURCES = $(sync_ui_SOURCES)
+nodist_sync_ui_moblin_SOURCES = $(nodist_sync_ui_SOURCES)
+sync_ui_moblin_LDADD = $(sync_ui_LDADD)
+sync_ui_moblin_CFLAGS = $(sync_ui_CFLAGS)
+sync_ui_moblin_CPPFLAGS = $(sync_ui_CPPFLAGS) -DUSE_MOBLIN_UX
 noinst_DATA = sync-ui-marshal.list
 @COND_GUI_TRUE@BUILT_SOURCES = \
 @COND_GUI_TRUE@        syncevo-bindings.h sync-ui-marshal.c sync-ui-marshal.h
@@ -378,6 +429,12 @@ clean-binPROGRAMS:
 sync-ui$(EXEEXT): $(sync_ui_OBJECTS) $(sync_ui_DEPENDENCIES) 
        @rm -f sync-ui$(EXEEXT)
        $(sync_ui_LINK) $(sync_ui_OBJECTS) $(sync_ui_LDADD) $(LIBS)
+sync-ui-gtk$(EXEEXT): $(sync_ui_gtk_OBJECTS) $(sync_ui_gtk_DEPENDENCIES) 
+       @rm -f sync-ui-gtk$(EXEEXT)
+       $(sync_ui_gtk_LINK) $(sync_ui_gtk_OBJECTS) $(sync_ui_gtk_LDADD) $(LIBS)
+sync-ui-moblin$(EXEEXT): $(sync_ui_moblin_OBJECTS) $(sync_ui_moblin_DEPENDENCIES) 
+       @rm -f sync-ui-moblin$(EXEEXT)
+       $(sync_ui_moblin_LINK) $(sync_ui_moblin_OBJECTS) $(sync_ui_moblin_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -392,6 +449,20 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui-sync-ui-config.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui-sync-ui-marshal.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui-sync-ui.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_gtk-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_gtk-mux-frame.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_gtk-mux-icon-button.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_gtk-mux-window.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_gtk-sync-ui-config.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_gtk-sync-ui-marshal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_gtk-sync-ui.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_moblin-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_moblin-mux-frame.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_moblin-mux-icon-button.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_moblin-mux-window.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_moblin-sync-ui-config.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_moblin-sync-ui-marshal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_ui_moblin-sync-ui.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -512,6 +583,202 @@ sync_ui-sync-ui-marshal.obj: sync-ui-marshal.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_CPPFLAGS) $(CPPFLAGS) $(sync_ui_CFLAGS) $(CFLAGS) -c -o sync_ui-sync-ui-marshal.obj `if test -f 'sync-ui-marshal.c'; then $(CYGPATH_W) 'sync-ui-marshal.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-marshal.c'; fi`
 
+sync_ui_gtk-main.o: main.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-main.o -MD -MP -MF $(DEPDIR)/sync_ui_gtk-main.Tpo -c -o sync_ui_gtk-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-main.Tpo $(DEPDIR)/sync_ui_gtk-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='main.c' object='sync_ui_gtk-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+sync_ui_gtk-main.obj: main.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-main.obj -MD -MP -MF $(DEPDIR)/sync_ui_gtk-main.Tpo -c -o sync_ui_gtk-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-main.Tpo $(DEPDIR)/sync_ui_gtk-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='main.c' object='sync_ui_gtk-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+sync_ui_gtk-sync-ui.o: sync-ui.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-sync-ui.o -MD -MP -MF $(DEPDIR)/sync_ui_gtk-sync-ui.Tpo -c -o sync_ui_gtk-sync-ui.o `test -f 'sync-ui.c' || echo '$(srcdir)/'`sync-ui.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-sync-ui.Tpo $(DEPDIR)/sync_ui_gtk-sync-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui.c' object='sync_ui_gtk-sync-ui.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-sync-ui.o `test -f 'sync-ui.c' || echo '$(srcdir)/'`sync-ui.c
+
+sync_ui_gtk-sync-ui.obj: sync-ui.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-sync-ui.obj -MD -MP -MF $(DEPDIR)/sync_ui_gtk-sync-ui.Tpo -c -o sync_ui_gtk-sync-ui.obj `if test -f 'sync-ui.c'; then $(CYGPATH_W) 'sync-ui.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-sync-ui.Tpo $(DEPDIR)/sync_ui_gtk-sync-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui.c' object='sync_ui_gtk-sync-ui.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-sync-ui.obj `if test -f 'sync-ui.c'; then $(CYGPATH_W) 'sync-ui.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui.c'; fi`
+
+sync_ui_gtk-sync-ui-config.o: sync-ui-config.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-sync-ui-config.o -MD -MP -MF $(DEPDIR)/sync_ui_gtk-sync-ui-config.Tpo -c -o sync_ui_gtk-sync-ui-config.o `test -f 'sync-ui-config.c' || echo '$(srcdir)/'`sync-ui-config.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-sync-ui-config.Tpo $(DEPDIR)/sync_ui_gtk-sync-ui-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-config.c' object='sync_ui_gtk-sync-ui-config.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-sync-ui-config.o `test -f 'sync-ui-config.c' || echo '$(srcdir)/'`sync-ui-config.c
+
+sync_ui_gtk-sync-ui-config.obj: sync-ui-config.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-sync-ui-config.obj -MD -MP -MF $(DEPDIR)/sync_ui_gtk-sync-ui-config.Tpo -c -o sync_ui_gtk-sync-ui-config.obj `if test -f 'sync-ui-config.c'; then $(CYGPATH_W) 'sync-ui-config.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-config.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-sync-ui-config.Tpo $(DEPDIR)/sync_ui_gtk-sync-ui-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-config.c' object='sync_ui_gtk-sync-ui-config.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-sync-ui-config.obj `if test -f 'sync-ui-config.c'; then $(CYGPATH_W) 'sync-ui-config.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-config.c'; fi`
+
+sync_ui_gtk-mux-frame.o: mux-frame.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-mux-frame.o -MD -MP -MF $(DEPDIR)/sync_ui_gtk-mux-frame.Tpo -c -o sync_ui_gtk-mux-frame.o `test -f 'mux-frame.c' || echo '$(srcdir)/'`mux-frame.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-mux-frame.Tpo $(DEPDIR)/sync_ui_gtk-mux-frame.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-frame.c' object='sync_ui_gtk-mux-frame.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-mux-frame.o `test -f 'mux-frame.c' || echo '$(srcdir)/'`mux-frame.c
+
+sync_ui_gtk-mux-frame.obj: mux-frame.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-mux-frame.obj -MD -MP -MF $(DEPDIR)/sync_ui_gtk-mux-frame.Tpo -c -o sync_ui_gtk-mux-frame.obj `if test -f 'mux-frame.c'; then $(CYGPATH_W) 'mux-frame.c'; else $(CYGPATH_W) '$(srcdir)/mux-frame.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-mux-frame.Tpo $(DEPDIR)/sync_ui_gtk-mux-frame.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-frame.c' object='sync_ui_gtk-mux-frame.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-mux-frame.obj `if test -f 'mux-frame.c'; then $(CYGPATH_W) 'mux-frame.c'; else $(CYGPATH_W) '$(srcdir)/mux-frame.c'; fi`
+
+sync_ui_gtk-mux-window.o: mux-window.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-mux-window.o -MD -MP -MF $(DEPDIR)/sync_ui_gtk-mux-window.Tpo -c -o sync_ui_gtk-mux-window.o `test -f 'mux-window.c' || echo '$(srcdir)/'`mux-window.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-mux-window.Tpo $(DEPDIR)/sync_ui_gtk-mux-window.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-window.c' object='sync_ui_gtk-mux-window.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-mux-window.o `test -f 'mux-window.c' || echo '$(srcdir)/'`mux-window.c
+
+sync_ui_gtk-mux-window.obj: mux-window.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-mux-window.obj -MD -MP -MF $(DEPDIR)/sync_ui_gtk-mux-window.Tpo -c -o sync_ui_gtk-mux-window.obj `if test -f 'mux-window.c'; then $(CYGPATH_W) 'mux-window.c'; else $(CYGPATH_W) '$(srcdir)/mux-window.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-mux-window.Tpo $(DEPDIR)/sync_ui_gtk-mux-window.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-window.c' object='sync_ui_gtk-mux-window.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-mux-window.obj `if test -f 'mux-window.c'; then $(CYGPATH_W) 'mux-window.c'; else $(CYGPATH_W) '$(srcdir)/mux-window.c'; fi`
+
+sync_ui_gtk-mux-icon-button.o: mux-icon-button.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-mux-icon-button.o -MD -MP -MF $(DEPDIR)/sync_ui_gtk-mux-icon-button.Tpo -c -o sync_ui_gtk-mux-icon-button.o `test -f 'mux-icon-button.c' || echo '$(srcdir)/'`mux-icon-button.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-mux-icon-button.Tpo $(DEPDIR)/sync_ui_gtk-mux-icon-button.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-icon-button.c' object='sync_ui_gtk-mux-icon-button.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-mux-icon-button.o `test -f 'mux-icon-button.c' || echo '$(srcdir)/'`mux-icon-button.c
+
+sync_ui_gtk-mux-icon-button.obj: mux-icon-button.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-mux-icon-button.obj -MD -MP -MF $(DEPDIR)/sync_ui_gtk-mux-icon-button.Tpo -c -o sync_ui_gtk-mux-icon-button.obj `if test -f 'mux-icon-button.c'; then $(CYGPATH_W) 'mux-icon-button.c'; else $(CYGPATH_W) '$(srcdir)/mux-icon-button.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-mux-icon-button.Tpo $(DEPDIR)/sync_ui_gtk-mux-icon-button.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-icon-button.c' object='sync_ui_gtk-mux-icon-button.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-mux-icon-button.obj `if test -f 'mux-icon-button.c'; then $(CYGPATH_W) 'mux-icon-button.c'; else $(CYGPATH_W) '$(srcdir)/mux-icon-button.c'; fi`
+
+sync_ui_gtk-sync-ui-marshal.o: sync-ui-marshal.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-sync-ui-marshal.o -MD -MP -MF $(DEPDIR)/sync_ui_gtk-sync-ui-marshal.Tpo -c -o sync_ui_gtk-sync-ui-marshal.o `test -f 'sync-ui-marshal.c' || echo '$(srcdir)/'`sync-ui-marshal.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-sync-ui-marshal.Tpo $(DEPDIR)/sync_ui_gtk-sync-ui-marshal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-marshal.c' object='sync_ui_gtk-sync-ui-marshal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-sync-ui-marshal.o `test -f 'sync-ui-marshal.c' || echo '$(srcdir)/'`sync-ui-marshal.c
+
+sync_ui_gtk-sync-ui-marshal.obj: sync-ui-marshal.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -MT sync_ui_gtk-sync-ui-marshal.obj -MD -MP -MF $(DEPDIR)/sync_ui_gtk-sync-ui-marshal.Tpo -c -o sync_ui_gtk-sync-ui-marshal.obj `if test -f 'sync-ui-marshal.c'; then $(CYGPATH_W) 'sync-ui-marshal.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-marshal.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_gtk-sync-ui-marshal.Tpo $(DEPDIR)/sync_ui_gtk-sync-ui-marshal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-marshal.c' object='sync_ui_gtk-sync-ui-marshal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_gtk_CPPFLAGS) $(CPPFLAGS) $(sync_ui_gtk_CFLAGS) $(CFLAGS) -c -o sync_ui_gtk-sync-ui-marshal.obj `if test -f 'sync-ui-marshal.c'; then $(CYGPATH_W) 'sync-ui-marshal.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-marshal.c'; fi`
+
+sync_ui_moblin-main.o: main.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-main.o -MD -MP -MF $(DEPDIR)/sync_ui_moblin-main.Tpo -c -o sync_ui_moblin-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-main.Tpo $(DEPDIR)/sync_ui_moblin-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='main.c' object='sync_ui_moblin-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+sync_ui_moblin-main.obj: main.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-main.obj -MD -MP -MF $(DEPDIR)/sync_ui_moblin-main.Tpo -c -o sync_ui_moblin-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-main.Tpo $(DEPDIR)/sync_ui_moblin-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='main.c' object='sync_ui_moblin-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+sync_ui_moblin-sync-ui.o: sync-ui.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-sync-ui.o -MD -MP -MF $(DEPDIR)/sync_ui_moblin-sync-ui.Tpo -c -o sync_ui_moblin-sync-ui.o `test -f 'sync-ui.c' || echo '$(srcdir)/'`sync-ui.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-sync-ui.Tpo $(DEPDIR)/sync_ui_moblin-sync-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui.c' object='sync_ui_moblin-sync-ui.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-sync-ui.o `test -f 'sync-ui.c' || echo '$(srcdir)/'`sync-ui.c
+
+sync_ui_moblin-sync-ui.obj: sync-ui.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-sync-ui.obj -MD -MP -MF $(DEPDIR)/sync_ui_moblin-sync-ui.Tpo -c -o sync_ui_moblin-sync-ui.obj `if test -f 'sync-ui.c'; then $(CYGPATH_W) 'sync-ui.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-sync-ui.Tpo $(DEPDIR)/sync_ui_moblin-sync-ui.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui.c' object='sync_ui_moblin-sync-ui.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-sync-ui.obj `if test -f 'sync-ui.c'; then $(CYGPATH_W) 'sync-ui.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui.c'; fi`
+
+sync_ui_moblin-sync-ui-config.o: sync-ui-config.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-sync-ui-config.o -MD -MP -MF $(DEPDIR)/sync_ui_moblin-sync-ui-config.Tpo -c -o sync_ui_moblin-sync-ui-config.o `test -f 'sync-ui-config.c' || echo '$(srcdir)/'`sync-ui-config.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-sync-ui-config.Tpo $(DEPDIR)/sync_ui_moblin-sync-ui-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-config.c' object='sync_ui_moblin-sync-ui-config.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-sync-ui-config.o `test -f 'sync-ui-config.c' || echo '$(srcdir)/'`sync-ui-config.c
+
+sync_ui_moblin-sync-ui-config.obj: sync-ui-config.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-sync-ui-config.obj -MD -MP -MF $(DEPDIR)/sync_ui_moblin-sync-ui-config.Tpo -c -o sync_ui_moblin-sync-ui-config.obj `if test -f 'sync-ui-config.c'; then $(CYGPATH_W) 'sync-ui-config.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-config.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-sync-ui-config.Tpo $(DEPDIR)/sync_ui_moblin-sync-ui-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-config.c' object='sync_ui_moblin-sync-ui-config.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-sync-ui-config.obj `if test -f 'sync-ui-config.c'; then $(CYGPATH_W) 'sync-ui-config.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-config.c'; fi`
+
+sync_ui_moblin-mux-frame.o: mux-frame.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-mux-frame.o -MD -MP -MF $(DEPDIR)/sync_ui_moblin-mux-frame.Tpo -c -o sync_ui_moblin-mux-frame.o `test -f 'mux-frame.c' || echo '$(srcdir)/'`mux-frame.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-mux-frame.Tpo $(DEPDIR)/sync_ui_moblin-mux-frame.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-frame.c' object='sync_ui_moblin-mux-frame.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-mux-frame.o `test -f 'mux-frame.c' || echo '$(srcdir)/'`mux-frame.c
+
+sync_ui_moblin-mux-frame.obj: mux-frame.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-mux-frame.obj -MD -MP -MF $(DEPDIR)/sync_ui_moblin-mux-frame.Tpo -c -o sync_ui_moblin-mux-frame.obj `if test -f 'mux-frame.c'; then $(CYGPATH_W) 'mux-frame.c'; else $(CYGPATH_W) '$(srcdir)/mux-frame.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-mux-frame.Tpo $(DEPDIR)/sync_ui_moblin-mux-frame.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-frame.c' object='sync_ui_moblin-mux-frame.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-mux-frame.obj `if test -f 'mux-frame.c'; then $(CYGPATH_W) 'mux-frame.c'; else $(CYGPATH_W) '$(srcdir)/mux-frame.c'; fi`
+
+sync_ui_moblin-mux-window.o: mux-window.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-mux-window.o -MD -MP -MF $(DEPDIR)/sync_ui_moblin-mux-window.Tpo -c -o sync_ui_moblin-mux-window.o `test -f 'mux-window.c' || echo '$(srcdir)/'`mux-window.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-mux-window.Tpo $(DEPDIR)/sync_ui_moblin-mux-window.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-window.c' object='sync_ui_moblin-mux-window.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-mux-window.o `test -f 'mux-window.c' || echo '$(srcdir)/'`mux-window.c
+
+sync_ui_moblin-mux-window.obj: mux-window.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-mux-window.obj -MD -MP -MF $(DEPDIR)/sync_ui_moblin-mux-window.Tpo -c -o sync_ui_moblin-mux-window.obj `if test -f 'mux-window.c'; then $(CYGPATH_W) 'mux-window.c'; else $(CYGPATH_W) '$(srcdir)/mux-window.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-mux-window.Tpo $(DEPDIR)/sync_ui_moblin-mux-window.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-window.c' object='sync_ui_moblin-mux-window.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-mux-window.obj `if test -f 'mux-window.c'; then $(CYGPATH_W) 'mux-window.c'; else $(CYGPATH_W) '$(srcdir)/mux-window.c'; fi`
+
+sync_ui_moblin-mux-icon-button.o: mux-icon-button.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-mux-icon-button.o -MD -MP -MF $(DEPDIR)/sync_ui_moblin-mux-icon-button.Tpo -c -o sync_ui_moblin-mux-icon-button.o `test -f 'mux-icon-button.c' || echo '$(srcdir)/'`mux-icon-button.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-mux-icon-button.Tpo $(DEPDIR)/sync_ui_moblin-mux-icon-button.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-icon-button.c' object='sync_ui_moblin-mux-icon-button.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-mux-icon-button.o `test -f 'mux-icon-button.c' || echo '$(srcdir)/'`mux-icon-button.c
+
+sync_ui_moblin-mux-icon-button.obj: mux-icon-button.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-mux-icon-button.obj -MD -MP -MF $(DEPDIR)/sync_ui_moblin-mux-icon-button.Tpo -c -o sync_ui_moblin-mux-icon-button.obj `if test -f 'mux-icon-button.c'; then $(CYGPATH_W) 'mux-icon-button.c'; else $(CYGPATH_W) '$(srcdir)/mux-icon-button.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-mux-icon-button.Tpo $(DEPDIR)/sync_ui_moblin-mux-icon-button.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='mux-icon-button.c' object='sync_ui_moblin-mux-icon-button.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-mux-icon-button.obj `if test -f 'mux-icon-button.c'; then $(CYGPATH_W) 'mux-icon-button.c'; else $(CYGPATH_W) '$(srcdir)/mux-icon-button.c'; fi`
+
+sync_ui_moblin-sync-ui-marshal.o: sync-ui-marshal.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-sync-ui-marshal.o -MD -MP -MF $(DEPDIR)/sync_ui_moblin-sync-ui-marshal.Tpo -c -o sync_ui_moblin-sync-ui-marshal.o `test -f 'sync-ui-marshal.c' || echo '$(srcdir)/'`sync-ui-marshal.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-sync-ui-marshal.Tpo $(DEPDIR)/sync_ui_moblin-sync-ui-marshal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-marshal.c' object='sync_ui_moblin-sync-ui-marshal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-sync-ui-marshal.o `test -f 'sync-ui-marshal.c' || echo '$(srcdir)/'`sync-ui-marshal.c
+
+sync_ui_moblin-sync-ui-marshal.obj: sync-ui-marshal.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -MT sync_ui_moblin-sync-ui-marshal.obj -MD -MP -MF $(DEPDIR)/sync_ui_moblin-sync-ui-marshal.Tpo -c -o sync_ui_moblin-sync-ui-marshal.obj `if test -f 'sync-ui-marshal.c'; then $(CYGPATH_W) 'sync-ui-marshal.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-marshal.c'; fi`
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/sync_ui_moblin-sync-ui-marshal.Tpo $(DEPDIR)/sync_ui_moblin-sync-ui-marshal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='sync-ui-marshal.c' object='sync_ui_moblin-sync-ui-marshal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sync_ui_moblin_CPPFLAGS) $(CPPFLAGS) $(sync_ui_moblin_CFLAGS) $(CFLAGS) -c -o sync_ui_moblin-sync-ui-marshal.obj `if test -f 'sync-ui-marshal.c'; then $(CYGPATH_W) 'sync-ui-marshal.c'; else $(CYGPATH_W) '$(srcdir)/sync-ui-marshal.c'; fi`
+
 mostlyclean-libtool:
        -rm -f *.lo
 
@@ -757,6 +1024,10 @@ uninstall-am: uninstall-applicationsDATA uninstall-binPROGRAMS \
 
 @INTLTOOL_DESKTOP_RULE@
 
+# would be nicer to have different descriptions and names...
+sync-gtk.desktop sync-moblin.desktop: sync-%.desktop: sync.desktop
+       sed -e 's/Exec=sync-ui/Exec=sync-ui-$*/' $< >$@
+
 ui.xml: ui.glade
        $(GTK_BUILDER_CONV) $< $(@F)
 
index c8e27a7..136da46 100644 (file)
@@ -1510,7 +1510,10 @@ show_settings_window (app_data *data, server_config *config)
         gtk_widget_hide (data->stop_using_service_btn);
 
     gtk_entry_set_text (GTK_ENTRY (data->username_entry), 
-                        config->username ? config->username : "");
+                        (config->username &&
+                         strcmp(config->username, "your SyncML server account name")) ?
+                        config->username :
+                        "");
     g_object_set_data (G_OBJECT (data->username_entry), "value", &config->username);
 
     gtk_entry_set_text (GTK_ENTRY (data->password_entry),
index 2e47e63..362e29e 100644 (file)
@@ -16,13 +16,6 @@ style "mux-frame" {
 }
 class "MuxFrame" style "mux-frame"
 
-# tooltips seem to take their color from the window bg? working around that 
-style "mux-tooltip-fix" { 
-    bg[NORMAL] = "#ffffff" 
-} 
-widget "gtk-tooltip*" style "mux-tooltip-fix" 
-
-
 # sync-ui specific rules
 
 style "data-box" {
index 0f81c34..377e0f7 100644 (file)
@@ -7,3 +7,4 @@ Exec=sync-ui
 Icon=sync
 Categories=Network;GTK;
 Terminal=false
+StartupNotify=true
index 97ef590..03bccc7 100644 (file)
@@ -383,6 +383,7 @@ synchronize your data between your netbook and a web service.</property>
                         </child>
                       </widget>
                       <packing>
+                        <property name="expand">False</property>
                         <property name="padding">20</property>
                         <property name="position">1</property>
                       </packing>
@@ -442,6 +443,7 @@ synchronize your data between your netbook and a web service.</property>
                         </child>
                       </widget>
                       <packing>
+                        <property name="expand">False</property>
                         <property name="padding">20</property>
                         <property name="position">2</property>
                       </packing>
index 44eed81..0addbd8 100644 (file)
           DTSTART = CONVERTTOUSERZONE(DTSTART);
           MAKEALLDAY(DTSTART,DTEND,i);
         }
+
+        // Make sure that all EXDATE times are in the same timezone as the start
+        // time. Some servers send them as UTC, which is all fine and well, but
+        // only if the timezone definition doesn't change. Also, libical does not
+        // handle such UTC EXDATEs, so let's convert it while the UTC and
+        // time zone definition (hopefully) are in sync.
+        if (TIMEZONE(DTSTART) != "UTC" && !ISFLOATING(DTSTART)) {
+          i = 0;
+          timestamp exdate;
+          while (i<SIZE(EXDATES)) {
+            exdate = EXDATES[i];
+            if (!ISDATEONLY(exdate) &&
+                (TIMEZONE(exdate) == "UTC" || ISFLOATING(exdate))) {
+              // "unfloat" floating time stamps: not sure whether that occcurs
+              // in practice, but it looks as wrong as UTC EXDATEs
+              EXDATES[i] = CONVERTTOZONE(exdate,DTSTART,TRUE);
+            }
+            i=i+1;
+          }
+        }
+
         // - shape attendees (and make sure ATTENDEES[] is assigned even for empty email addresses)
         i=0;
         while(i<SIZE(ATTENDEES) || i<SIZE(ATTENDEE_CNS)) {
index 2b36149..7e5a952 100644 (file)
@@ -98,7 +98,7 @@ typedef GValueArray SyncevoServer;
 
 #define SYNCEVO_REPORT_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INVALID))
 typedef GValueArray SyncevoReport;
-#define SYNCEVO_REPORT_ARRAY_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, dbus_g_type_get_collection ("GPtrArray", SYNCEVO_REPORT_TYPE)))
+#define SYNCEVO_REPORT_ARRAY_TYPE (dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, dbus_g_type_get_collection ("GPtrArray", SYNCEVO_REPORT_TYPE), G_TYPE_INVALID))
 typedef GValueArray SyncevoReportArray;
 
 GMainLoop *loop;
@@ -475,7 +475,7 @@ need_password (const char *username,
                gpointer data)
 {
        char *password = NULL;
-       char *server = NULL;
+       const char *server = NULL;
        GnomeKeyringResult res;
 
        server = strstr (server_url, "://");
@@ -790,9 +790,10 @@ syncevo_get_server_config (SyncevoDBusServer *obj,
                return FALSE;
        }
 
-       boost::shared_ptr<EvolutionSyncConfig> from(new EvolutionSyncConfig (string (server)));
+       boost::shared_ptr<EvolutionSyncConfig> from;
+       boost::shared_ptr<EvolutionSyncConfig> config(new EvolutionSyncConfig (string (server)));
        /* if config does not exist, create from template */
-       if (!from->exists()) {
+       if (!config->exists()) {
                from = EvolutionSyncConfig::createServerTemplate( string (server));
                if (!from.get()) {
                        *options = NULL;
@@ -801,12 +802,10 @@ syncevo_get_server_config (SyncevoDBusServer *obj,
                                              "No server or template '%s' found", server);
                        return FALSE;
                }
+               config->copy(*from, NULL);
        }
 
        *options = g_ptr_array_new ();
-       boost::shared_ptr<EvolutionSyncConfig> config(new EvolutionSyncConfig(string (server)));
-       config->copy(*from, NULL);
-
        option = syncevo_option_new (NULL, g_strdup ("syncURL"), g_strdup(config->getSyncURL()));
        g_ptr_array_add (*options, option);
        option = syncevo_option_new (NULL, g_strdup("username"), g_strdup(config->getUsername()));
@@ -857,8 +856,6 @@ syncevo_get_server_config (SyncevoDBusServer *obj,
 
        }
 
-
-
        update_shutdown_timer (obj);
 
        return TRUE;
@@ -1147,6 +1144,7 @@ int main()
        g_type_init ();
        g_thread_init (NULL);
        g_set_application_name ("SyncEvolution");
+       dbus_g_thread_init ();
 
        server = (SyncevoDBusServer*)g_object_new (SYNCEVO_TYPE_DBUS_SERVER, NULL);
 
index 9096ad5..454a5d3 100644 (file)
@@ -1,6 +1,53 @@
 # Generated by configure.  Do no edit.
-# git revision 70f0065aa3b085bdf059830f95e5b5766eecb0bb
-# git tag syncevolution-0-9-beta3
+# git revision a9e10a9900247fefd9e7399b0246d561fe07ffbb
+# git tag libsynthesis_3.0.2.28_at_pr_day+syncevolution-0.9
+
+2009-08-05  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/sysync/engineinterface.cpp:
+
+       TSettingsKeyImpl::SetValueByID: compiler warning about pointer
+       aliasing
+
+2009-08-05  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/sysync/synccommand.cpp:
+
+       TSyncCommand::analyze: compiler warning about uninitialized
+       variable (return code!)
+
+2009-08-05  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/sysync/sysync_utils.cpp:
+
+       appendRFC2047AsUTF8: compiler warning about uninitialized
+       variable
+
+2009-08-05  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/sysync/sysync_utils.cpp:
+
+       compiler warning in generateNonce(): casting char array
+
+2009-07-30  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/sysync/stdlogicds.cpp:
+
+       slow sync: avoid empty anchors, that confuses ScheduleWorld
+
+2009-07-29  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/sysync/vtimezone.cpp:
+
+       timezone parsing: accept \r\n and \r as line ends in addition to
+       \n
+
+2009-07-28  Patrick Ohly  <patrick.ohly@intel.com>
+
+       * src/sysync/vtimezone.cpp:
+       * src/sysync/vtimezone.h:
+
+       vtimezone: use const string & instead of string copy
 
 2009-07-21  Patrick Ohly  <patrick.ohly@intel.com>
 
index e6a85fd..7fefed9 100644 (file)
@@ -486,20 +486,26 @@ TSyError TSettingsKeyImpl::SetValueByID(
       tempInt = *((sInt64 *)aBuffer);
     intConv:
       // convert integer into native type
-      bP = &tempInt; // re-use as temp buffer
+      union {
+        sInt64 buffer64;
+        sInt32 buffer32;
+        sInt16 buffer16;
+        sInt8  buffer8;
+      } buffer;
+      bP = &buffer;
       switch (valType) {
         case VALTYPE_INT8:
-          siz=1; *((sInt8 *)bP) = tempInt;
+          siz=1; buffer.buffer8 = tempInt;
           break;
         case VALTYPE_INT16:
-          siz=2; *((sInt16 *)bP) = tempInt;
+          siz=2; buffer.buffer16 = tempInt;
           break;
         case VALTYPE_INT32:
-          siz=4; *((sInt32 *)bP) = tempInt;
+          siz=4; buffer.buffer32 = tempInt;
           break;
         case VALTYPE_INT64:
         case VALTYPE_TIME64: // native timestamp
-          siz=8; *((sInt64 *)bP) = tempInt;
+          siz=8; buffer.buffer64 = tempInt;
           break;
         default:
           // other types (like text) cannot set as integer
index cbfafe2..f67ad0f 100755 (executable)
@@ -130,10 +130,12 @@ localstatus TStdLogicDS::logicMakeAdminReady(cAppCharP aDataStoreURI, cAppCharP
       PDEBUGPRINTFX(DBG_PROTO,("First time sync or config changed since last sync -> remote should see our devinf"));
       fSessionP->remoteMustSeeDevinf();
     }
-    // empty saved anchors if first time sync (should be empty anyway, but...)
+    // Invalidate saved anchors if first time sync.
+    // Don't just use empty strings, ScheduleWorld didn't like
+    // that.
     if (fFirstTimeSync) {
-      fLastLocalAnchor.empty();
-      fLastRemoteAnchor.empty();
+      fLastLocalAnchor = "no local anchor";
+      fLastRemoteAnchor = "no remote anchor";
     }
   }
   PDEBUGENDBLOCK("MakeAdminReady");
index cccad4b..cc8b4f6 100755 (executable)
@@ -807,7 +807,7 @@ bool TSyncCommand::analyze(TPackageStates aPackageState)
 bool TSyncCommand::execute(void)
 {
   TStatusCommand *statusCmdP=NULL;
-  bool queueforlater;
+  bool queueforlater = false;
 
   if (fSyncElementP)
   SYSYNC_TRY {
index 8b3ce52..47fd48f 100755 (executable)
@@ -549,7 +549,7 @@ const char *appendRFC2047AsUTF8(
 )
 {
   const char *p,*q,*r,*w;
-  char c;
+  char c = 0;
   const char *eot = aRFC2047+aSize;
 
   p=aRFC2047;
@@ -2831,7 +2831,10 @@ void generateNonce(string &aNonce, const char *aDevStaticString, sInt32 aSession
   // - done
   md5::Final (digest, &context);
   // - make string of first 48 bit of MD5: 48 bits, use 6 bits per char = 8 chars
-  uInt64 dig48 = *((uInt32 *)(digest));
+  uInt64 dig48 = ((uInt32)digest[0] << 0) |
+    ((uInt32)digest[1] << 8) |
+    ((uInt32)digest[2] << 16) |
+    ((uInt32)digest[3] << 24);
   aNonce.erase();
   for (sInt16 k=0; k<8; k++) {
     aNonce+=((dig48 & 0x03F) + 0x21);
index c7b3fd9..8093d0e 100644 (file)
@@ -292,18 +292,91 @@ static bool GetTZInfo( cAppCharP     aText,
 
 
 /*! Create a property string */
-static string Property( string propertyName, string value ) {
+static string Property( const string &propertyName, const string &value ) {
   return propertyName + ":" + value + "\n";
 } // Property
 
+/*! Find a Property inside another string. If the property string ends
+  in \n, then that character matches arbitrary line endings (\r, \n,
+  end of string).  If the property does not end in \n, a normal string
+  search is done. */
+static string::size_type FindProperty( const string &aText, const string &aProperty, string::size_type aOffset = 0 ) {
+  if (!aProperty.empty() && aProperty[aProperty.size()-1] == '\n') {
+    // ignore trailing \n, check for either \r or \n in aText instead
+    string::size_type offset = aOffset;
+    string::size_type textlen = aProperty.size() - 1;
+    while (true) {
+      string::size_type hit = aText.find(aProperty.c_str(), offset, textlen);
+      if (hit == string::npos)
+        return string::npos;
+
+      // prefix match, now must check for line end
+      if (hit + textlen >= aText.size()) {
+        // end of string is okay
+        return hit;
+      }
+
+      char eol = aText[hit + textlen];
+      switch (eol) {
+      case '\r':
+      case '\n':
+        // found it
+        return hit;
+      }
+      // keep searching
+      offset = hit + 1;
+    }
+  } else {
+    // normal string search
+    return aText.find(aProperty, aOffset);
+  }
+} // FindProperty
+
+/*! Find last instance of Property inside another string. If the
+  property string ends in \n, then that character matches arbitrary
+  line endings (\r, \n, end of string).  If the property does not end
+  in \n, a normal string search is done. */
+static string::size_type RfindProperty( const string &aText, const string &aProperty, string::size_type aOffset = string::npos ) {
+  if (!aProperty.empty() && aProperty[aProperty.size()-1] == '\n') {
+    // ignore trailing \n, check for either \r or \n in aText instead
+    string::size_type offset = aOffset;
+    string::size_type textlen = aProperty.size() - 1;
+    while (true) {
+      string::size_type hit = aText.rfind(aProperty.c_str(), offset, textlen);
+      if (hit == string::npos)
+        return string::npos;
+
+      // prefix match, now must check for line end
+      if (hit + textlen >= aText.size()) {
+        // end of string is okay
+        return hit;
+      }
+
+      char eol = aText[hit + textlen];
+      switch (eol) {
+      case '\r':
+      case '\n':
+        // found it
+        return hit;
+      }
+      // keep searching, if possible
+      if (hit == 0)
+        return string::npos;
+      offset = hit - 1;
+    }
+  } else {
+    // normal reversed string search
+    return aText.rfind(aProperty, aOffset);
+  }
+} // RfindProperty
 
 /*! Check, if "BEGIN:value" is available only once */
 static int PMulti( string &aText, string value )
 {
   string             p= Property( VTZ_BEGIN, value );
-  string::size_type
-      n= aText.find( p,   0 ); if (n==string::npos) return 0;
-      n= aText.find( p, n+1 ); if (n==string::npos) return 1;
+  string::size_type n;
+  n= FindProperty( aText, p ); if (n==string::npos) return 0;
+  n= FindProperty( aText, p, n+1 ); if (n==string::npos) return 1;
   /* else */                                        return 2;
 } // PMulti
 
@@ -797,41 +870,42 @@ bool ContextToTzDaylight( timecontext_t  aContext,
 
 
 // -----------------------------------------------------------------------------------------
-// Get sequence between <bv> and <ev>
-static string PeeledStr( string aStr, string bv, string ev, sInt32 aNth )
+// Get sequence between <bv> and <ev>. If these strings end in \n, then that character
+// matches arbitrary line endings (in other words, \n, \r, end of string).
+static string PeeledStr( const string &aStr, const string &bv, const string &ev, sInt32 aNth )
 {
   string::size_type bp= 0;
 
   if (aNth==-1) {
-    bp= aStr.rfind( bv, aStr.length() ); if (bp==string::npos) return "";
+    bp= RfindProperty( aStr, bv ); if (bp==string::npos) return "";
   }
   else {
     sInt32 i= 1;
     
     while (true) {
-      bp= aStr.find( bv, bp ); if (bp==string::npos) return "";
+      bp= FindProperty( aStr, bv, bp ); if (bp==string::npos) return "";
       if (i>=aNth) break;
       i++; bp++;
     } // while
   } // if
   
 //string::size_type bp= aStr.find( bv, 0 ); if (bp==string::npos) return "";
-  string::size_type ep= aStr.find( ev,bp ); if (ep==string::npos) return "";
+  string::size_type ep= FindProperty( aStr, ev, bp ); if (ep==string::npos) return "";
 
   string::size_type bpl= bp + bv.length();
   return aStr.substr( bpl, ep - bpl );
 } // PeeledStr
 
 
-// Get the string between "BEGIN:<value>\n" and "END:<value>\n"
-string  VStr( string aStr, string value, sInt32 aNth ) {
+// Get the string between "BEGIN:<value>[line end]" and "END:<value>[line end]"
+string  VStr( const string &aStr, const string &value, sInt32 aNth ) {
   return PeeledStr( aStr, Property( VTZ_BEGIN, value ),
                           Property( VTZ_END,   value ), aNth );
 } // VStr
 
 
 // Get the value string between "<field>:" and "\r?\n"
-string VValue( string aStr, string key ) {
+string VValue( const string &aStr, const string &key ) {
   string res = PeeledStr( aStr, key + ":", "\n", 1 );
 
   // strip optional trailing \r
index 008d6bf..5115772 100755 (executable)
@@ -75,13 +75,13 @@ bool ContextToTzDaylight( timecontext_t  aContext,
  *  Get the string between "BEGIN:<value>\n" and "END:<value>\n"
  *  Default: First occurance
  */
-string VStr( string aStr, string value, sInt32 aNth= 1 );
+string VStr( const string &aStr, const string &value, sInt32 aNth= 1 );
 
 
 /*! <aStr> parsing:
  *  Get the value between "<key>:" and "\n"
  */
-string VValue( string aStr, string key );
+string VValue( const string &aStr, const string &key );
 
 
 /*! Get the hour/minute string of <bias> */
index b5eb5da..48254cf 100644 (file)
@@ -1652,6 +1652,8 @@ void SyncTests::addTests() {
                     ADD_TEST(SyncTests, testDelete);
                     ADD_TEST(SyncTests, testAddUpdate);
                     ADD_TEST(SyncTests, testManyItems);
+                    ADD_TEST(SyncTests, testSlowSyncSemantic);
+                    ADD_TEST(SyncTests, testComplexRefreshFromServerSemantic);
 
                     if (config.updateItem) {
                         ADD_TEST(SyncTests, testUpdate);
@@ -2635,6 +2637,71 @@ void SyncTests::testManyItems() {
     compareDatabases();
 }
 
+/**
+ * - get client A, server, client B in sync with one item
+ * - force slow sync in A: must not duplicate items, but may update it locally
+ * - refresh client B (in case that the item was updated)
+ * - delete item in B and server via two-way sync
+ * - refresh-from-server in B to check that item is gone
+ * - two-way in A: must delete the item
+ */
+void SyncTests::testSlowSyncSemantic()
+{
+    // set up one item everywhere
+    doCopy();
+
+    // slow in A
+    doSync("slow",
+           SyncOptions(SYNC_SLOW,
+                       CheckSyncReport(0,-1,0, -1,-1,0, true, SYNC_SLOW)));
+
+    // refresh B, delete item
+    accessClientB->doSync("refresh",
+                          SyncOptions(SYNC_TWO_WAY,
+                                      CheckSyncReport(0,-1,0, 0,0,0, true, SYNC_TWO_WAY)));
+    BOOST_FOREACH(source_array_t::value_type &source_pair, accessClientB->sources)  {
+        source_pair.second->deleteAll(source_pair.second->createSourceA);
+    }
+    accessClientB->doSync("delete",
+                          SyncOptions(SYNC_TWO_WAY,
+                                      CheckSyncReport(0,0,0, 0,0,1, true, SYNC_TWO_WAY)));
+    accessClientB->doSync("check",
+                          SyncOptions(SYNC_REFRESH_FROM_SERVER,
+                                      CheckSyncReport(0,0,0, 0,0,0, true, SYNC_REFRESH_FROM_SERVER)));
+
+    // now the item should also be deleted on A
+    doSync("delete",
+           SyncOptions(SYNC_TWO_WAY,
+                       CheckSyncReport(0,0,1, 0,0,0, true, SYNC_TWO_WAY)));
+}
+
+/**
+ * check that refresh-from-server works correctly:
+ * - create the same item on A, server, B via testCopy()
+ * - refresh B (one item deleted, one created)
+ * - delete item on A and server
+ * - refresh B (one item deleted)
+ */
+void SyncTests::testComplexRefreshFromServerSemantic()
+{
+    testCopy();
+
+    // check refresh with one item on server
+    accessClientB->doSync("refresh-one",
+                          SyncOptions(SYNC_REFRESH_FROM_SERVER,
+                                      CheckSyncReport(1,0,1, 0,0,0, true, SYNC_REFRESH_FROM_SERVER)));
+
+    // delete that item via A, check again
+    BOOST_FOREACH(source_array_t::value_type &source_pair, sources)  {
+        source_pair.second->deleteAll(source_pair.second->createSourceA);
+    }
+    doSync("delete-item",
+           SyncOptions(SYNC_TWO_WAY,
+                       CheckSyncReport(0,0,0, 0,0,1, true, SYNC_TWO_WAY)));
+    accessClientB->doSync("refresh-none",
+                          SyncOptions(SYNC_REFRESH_FROM_SERVER,
+                                      CheckSyncReport(0,0,1, 0,0,0, true, SYNC_REFRESH_FROM_SERVER)));
+}
 
 /**
  * implements testMaxMsg(), testLargeObject(), testLargeObjectEncoded()
@@ -3300,6 +3367,13 @@ bool ClientTest::compare(ClientTest &client, const char *fileA, const char *file
     setenv("CLIENT_TEST_RIGHT_NAME", fileB, 1);
     setenv("CLIENT_TEST_REMOVED", "only in left file", 1);
     setenv("CLIENT_TEST_ADDED", "only in right file", 1);
+    const char* compareLog = getenv("CLIENT_TEST_COMPARE_LOG");
+    if(compareLog && strlen(compareLog))
+    {
+       string tmpfile = "____compare.log";
+       cmdstr =string("bash -c 'set -o pipefail;") + cmdstr;
+       cmdstr += " 2>&1|tee " +tmpfile+"'";
+    }
     bool success = system(cmdstr.c_str()) == 0;
     if (!success) {
         printf("failed: env CLIENT_TEST_SERVER=%s PATH=.:$PATH synccompare %s %s\n",
@@ -3354,6 +3428,7 @@ void ClientTest::getTestData(const char *type, Config &config)
 
     if (!strcmp(type, "vcard30")) {
         config.sourceName = "vcard30";
+        config.sourceNameServerTemplate = "addressbook";
         config.uri = "card3"; // ScheduleWorld
         config.type = "text/vcard";
         config.insertItem =
@@ -3420,6 +3495,7 @@ void ClientTest::getTestData(const char *type, Config &config)
         config.testcases = "testcases/vcard30.vcf";
     } else if (!strcmp(type, "vcard21")) {
         config.sourceName = "vcard21";
+        config.sourceNameServerTemplate = "addressbook";
         config.uri = "card"; // Funambol
         config.type = "text/x-vcard";
         config.insertItem =
@@ -3482,6 +3558,7 @@ void ClientTest::getTestData(const char *type, Config &config)
         config.testcases = "testcases/vcard21.vcf";
     } else if(!strcmp(type, "ical20")) {
         config.sourceName = "ical20";
+        config.sourceNameServerTemplate = "calendar";
         config.uri = "cal2"; // ScheduleWorld
         config.type = "text/x-vcalendar";
         config.insertItem =
@@ -3618,6 +3695,7 @@ void ClientTest::getTestData(const char *type, Config &config)
         config.testcases = "testcases/ical20.ics";
     } if(!strcmp(type, "vcal10")) {
         config.sourceName = "vcal10";
+        config.sourceNameServerTemplate = "calendar";
         config.uri = "cal"; // Funambol 3.0
         config.type = "text/x-vcalendar";
         config.insertItem =
@@ -3675,6 +3753,7 @@ void ClientTest::getTestData(const char *type, Config &config)
         config.testcases = "testcases/vcal10.ics";
     } else if(!strcmp(type, "itodo20")) {
         config.sourceName = "itodo20";
+        config.sourceNameServerTemplate = "todo";
         config.uri = "task2"; // ScheduleWorld
         config.type = "text/x-vcalendar";
         config.insertItem =
@@ -3754,6 +3833,7 @@ void ClientTest::getTestData(const char *type, Config &config)
         // the test data in that format, see EvolutionMemoSource
         // for an example.
         config.uri = "note"; // ScheduleWorld
+        config.sourceNameServerTemplate = "memo";
         config.type = "memo";
         config.itemType = "text/calendar";
         config.insertItem =
index 0207060..a85094a 100644 (file)
@@ -308,6 +308,13 @@ class ClientTest {
         const char *uri;
 
         /**
+         * A corresponding source name in the default server template,
+         * this is used to copy corresponding uri set in the server template
+         * instead of the uri field above (which is the same for all servers).
+         */
+        const char *sourceNameServerTemplate;
+
+        /**
          * A member function of a subclass which is called to create a
          * sync source referencing the data. This is used in tests of
          * the SyncSource API itself as well as in tests which need to
@@ -782,8 +789,9 @@ public:
 
 protected:
     /** list with all local test classes for manipulating the sources and their index in the client */
-    std::vector< std::pair<int, LocalTests *> > sources;
-    typedef std::vector< std::pair<int, LocalTests *> >::iterator source_it;
+    typedef std::vector< std::pair<int, LocalTests *> > source_array_t;
+    source_array_t sources;
+    typedef source_array_t::iterator source_it;
 
     /**
      * Stack of log file prefixes which are to be appended to the base name,
@@ -906,6 +914,8 @@ protected:
     }
 
     virtual void testManyItems();
+    virtual void testSlowSyncSemantic();
+    virtual void testComplexRefreshFromServerSemantic();
 
     virtual void doInterruptResume(int changes,
                   boost::shared_ptr<TransportWrapper> wrapper); 
index 9dd22d3..826374e 100644 (file)
@@ -107,7 +107,9 @@ GMSGFMT = @GMSGFMT@
 GREP = @GREP@
 GTK_BUILDER_CONV = @GTK_BUILDER_CONV@
 GUI_CFLAGS = @GUI_CFLAGS@
+GUI_DESKTOP_FILES = @GUI_DESKTOP_FILES@
 GUI_LIBS = @GUI_LIBS@
+GUI_PROGRAMS = @GUI_PROGRAMS@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
index 2c2dd9d..a906c1f 100644 (file)
@@ -175,6 +175,18 @@ public:
         SyncEvolution::LoggerBase::popLogger();
         m_logger.reset();
 
+        string logfile = m_currentTest + ".log";
+        simplifyFilename(logfile);
+        
+        const char* compareLog = getenv("CLIENT_TEST_COMPARE_LOG");
+        if(compareLog && strlen(compareLog)) {
+            FILE *fd = fopen ("____compare.log","r");
+            if (fd != NULL) {
+                fclose(fd);
+                system ((string("cat ____compare.log >>")+logfile).c_str());
+            }
+        }
+
         cerr << " " << result << "\n";
         if (!failure.empty()) {
             cerr << failure << "\n";