Mailinglist Archive: opensuse-commit (769 mails)

< Previous Next >
commit akonadi-runtime for openSUSE:Factory
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Wed, 10 Jun 2009 18:25:56 +0200
  • Message-id: <20090610162556.C4A03678161@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package akonadi-runtime for openSUSE:Factory
checked in at Wed Jun 10 18:25:56 CEST 2009.



--------
--- KDE/akonadi-runtime/akonadi-runtime.changes 2009-05-30 16:25:10.000000000
+0200
+++ /mounts/work_src_done/STABLE/akonadi-runtime/akonadi-runtime.changes
2009-06-03 20:05:27.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Jun 3 20:05:09 CEST 2009 - dmueller@xxxxxxx
+
+- update to 1.1.90:
+ * no upstream changelog available
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
akonadi-1.1.85svn969743.tar.bz2

New:
----
akonadi-1.1.90.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ akonadi-runtime.spec ++++++
--- /var/tmp/diff_new_pack.a19561/_old 2009-06-10 18:24:50.000000000 +0200
+++ /var/tmp/diff_new_pack.a19561/_new 2009-06-10 18:24:50.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package akonadi-runtime (Version 1.1.85svn969743)
+# spec file for package akonadi-runtime (Version 1.1.90)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -23,14 +23,15 @@
%if %suse_version > 1020
BuildRequires: fdupes
%endif
-Version: 1.1.85svn969743
+Version: 1.1.90
Release: 1
+%define rversion %version
License: LGPL v2.1 or later
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://www.kde.org
Group: System/GUI/KDE
Summary: PIM Storage Service
-Source0: akonadi-%version.tar.bz2
+Source0: akonadi-%rversion.tar.bz2
%if %suse_version > 1010
Requires: libqt4 >= %(rpm -q --queryformat '%{VERSION}' libqt4)
%else
@@ -138,7 +139,7 @@
%defattr(-,root,root)
%dir /usr/include/akonadi
%dir %_libdir/cmake
-%_libdir/cmake/Akonadi-1.1.85
+%_libdir/cmake/Akonadi
/usr/include/akonadi/private
/usr/share/dbus-1/interfaces/org.freedesktop.Akonadi.*.xml
%_libdir/libakonadiprotocolinternals.so
@@ -150,6 +151,9 @@
%_libdir/libakonadiprotocolinternals.so.1*

%changelog
+* Wed Jun 03 2009 dmueller@xxxxxxx
+- update to 1.1.90:
+ * no upstream changelog available
* Mon May 18 2009 dmueller@xxxxxxx
- update to current svn snapshot
* Mon May 18 2009 beineri@xxxxxxxxxxxx

++++++ akonadi-1.1.85svn969743.tar.bz2 -> akonadi-1.1.90.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/AkonadiConfig.cmake.in
new/akonadi-1.1.90/AkonadiConfig.cmake.in
--- old/akonadi-1.1.85svn969743/AkonadiConfig.cmake.in 2009-05-14
22:39:38.000000000 +0200
+++ new/akonadi-1.1.90/AkonadiConfig.cmake.in 2009-06-03 19:38:03.000000000
+0200
@@ -24,7 +24,11 @@

# Compatibility
if(WIN32)
+if(MINGW)
set(AKONADI_COMMON_LIBRARIES
"@AKONADI_LIB_DIR@/libakonadiprotocolinternals.dll")
+else(MINGW)
+ set(AKONADI_COMMON_LIBRARIES
"@AKONADI_LIB_DIR@/akonadiprotocolinternals.lib")
+endif(MINGW)
elseif(APPLE)
set(AKONADI_COMMON_LIBRARIES
"@AKONADI_LIB_DIR@/libakonadiprotocolinternals.dylib")
else()
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/akonadi.pc.cmake
new/akonadi-1.1.90/akonadi.pc.cmake
--- old/akonadi-1.1.85svn969743/akonadi.pc.cmake 2008-04-28
21:14:30.000000000 +0200
+++ new/akonadi-1.1.90/akonadi.pc.cmake 2009-06-03 19:38:03.000000000 +0200
@@ -5,7 +5,7 @@

Name: Akonadi
Description: Akonadi server and infrastructure needed to build client
libraries and applications
-Version: @AKONADI_LIB_VERSION_STRING@
+Version: @AKONADI_VERSION_STRING@
Requires: QtCore QtSql QtDBus
Libs: -L${libdir} -lakonadiprotocolinternals
Cflags: -I${includedir}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/ChangeLog
new/akonadi-1.1.90/ChangeLog
--- old/akonadi-1.1.85svn969743/ChangeLog 2009-05-05 23:55:31.000000000
+0200
+++ new/akonadi-1.1.90/ChangeLog 2009-06-03 19:38:03.000000000 +0200
@@ -1,3 +1,249 @@
+2009-05-28 17:58 +0000 [r974197] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/libs/notificationmessage.cpp: Show the
+ list of changed parts in the akonadiconsole debugger as well.
+
+2009-05-28 16:59 +0000 [r974177] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler/store.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/datastore.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/datastore.h,
+ trunk/kdesupport/akonadi/server/src/storage/notificationcollector.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/notificationcollector.h:
+ Add a list of actually modified item parts to the change
+ notifications, or rather put useful data in the already available
+ field for that in the notification message.
+
+2009-05-28 12:23 +0000 [r974000] Patrick Spendrin ps_ml@xxxxxx
+
+ * trunk/kdesupport/akonadi/AkonadiConfig.cmake.in: msvc needs its
+ import library
+
+2009-05-28 09:25 +0000 [r973949] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/libs/tests/notificationmessagetest.cpp,
+ trunk/kdesupport/akonadi/libs/tests/notificationmessagetest.h,
+ trunk/kdesupport/akonadi/libs/notificationmessage.cpp: Fix change
+ notification compression for item changes affecting different
+ item parts.
+
+2009-05-28 08:56 +0000 [r973935-973937] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/libs/tests/notificationmessagetest.cpp
+ (added),
+ trunk/KDE/kdepimlibs/akonadi/tests/notificationmessagetest.h
+ (removed), trunk/kdesupport/akonadi/libs/tests (added),
+ trunk/kdesupport/akonadi/libs/tests/notificationmessagetest.h
+ (added),
+ trunk/KDE/kdepimlibs/akonadi/tests/notificationmessagetest.cpp
+ (removed), trunk/KDE/kdepimlibs/akonadi/tests/CMakeLists.txt,
+ trunk/kdesupport/akonadi/libs/CMakeLists.txt: Move test to the
+ corresponding code.
+
+ * trunk/kdesupport/akonadi/server/src/handler/store.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/datastore.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/datastore.h: Cleanup
+ remote id changing, less code and less database writes.
+
+2009-05-27 20:35 +0000 [r973800] Patrick Spendrin ps_ml@xxxxxx
+
+ * trunk/kdesupport/akonadi/CMakeLists.txt: fix msvc build
+
+2009-05-27 17:40 +0000 [r973701] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/storage/datastore.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/datastore.h,
+ trunk/kdesupport/akonadi/server/src/handler/move.cpp: Move stuff
+ where it belongs. Also reduce the number of database reads a bit.
+
+2009-05-27 07:56 +0000 [r973441] Till Adam adam@xxxxxxx
+
+ * trunk/kdesupport/akonadi/CMakeLists.txt: Fix the build with cmake
+ 2.6.2. The version check that checks for > 2.6.2 is in 2, not in
+ 0.
+
+2009-05-26 14:27 +0000 [r973201] Rex Dieter rdieter@xxxxxxxxxxxx
+
+ * trunk/kdesupport/akonadi/akonadi.pc.cmake:
+ s/AKONADI_LIB_VERSION_STRING/AKONADI_VERSION_STRING/ (..._LIB_...
+ isn't defined anywhere)
+
+2009-05-25 23:30 +0000 [r972904] Christophe Giboudeaux cgiboudeaux@xxxxxxxxx
+
+ * trunk/kdesupport/akonadi/CMakeLists.txt: akonadi doesn't know the
+ pimlibs location (and shouldn't)
+
+2009-05-20 17:56 +0000 [r970762] Christophe Giboudeaux cgiboudeaux@xxxxxxxxx
+
+ * trunk/kdesupport/akonadi/CMakeLists.txt: Appending the akonadi
+ version to the directory name where the cmake files are installed
+ may lead to include or linking errors when different versions are
+ installed. From now on, the cmake files will be installed in
+ LIB_INSTALL_DIR/cmake/Akonadi (or /akonadi/cmake depending on the
+ version).
+
+2009-05-20 08:22 +0000 [r970440] Christophe Giboudeaux cgiboudeaux@xxxxxxxxx
+
+ * trunk/kdesupport/akonadi/server/akonadictl/CMakeLists.txt,
+ trunk/kdesupport/akonadi/server/control/CMakeLists.txt: Cosmetic:
+ Use Akonadi_SOURCE_DIR when it's possible
+
+2009-05-20 07:38 +0000 [r970355] Igor Trindade Oliveira
igor_trindade@xxxxxxxxxxxx
+
+ *
trunk/kdesupport/akonadi/server/interfaces/org.freedesktop.Akonadi.ResourceManager.xml
+ (added),
+ trunk/kdesupport/akonadi/server/control/agentmanager.cpp,
+ trunk/kdesupport/akonadi/server/src/resourcemanager.cpp,
+ trunk/kdesupport/akonadi/server/CMakeLists.txt,
+ trunk/kdesupport/akonadi/server/control/CMakeLists.txt,
+ trunk/kdesupport/akonadi/server/src/resourcemanager.h: fix create
+ agent instace race condition
+
+2009-05-17 16:54 +0000 [r969207] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler/store.cpp,
+ trunk/kdesupport/akonadi/libs/protocol_p.h: Cleanup the STORE
+ handler, mainly getting rid of the look-ahead hack. Also reduce
+ the number of database writes a bit.
+
+2009-05-17 15:48 +0000 [r969184] Raphael Kubo da Costa kubito@xxxxxxxxx
+
+ * trunk/kdesupport/akonadi/server/CMakeLists.txt: Include FreeBSD's
+ /usr/local/libexec in mysqld's search path. CCMAIL:
+ kde-freebsd@xxxxxxx
+
+2009-05-17 12:33 +0000 [r969046] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler/store.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/store.h,
+ trunk/kdesupport/akonadi/server/src/imapstreamparser.cpp,
+ trunk/kdesupport/akonadi/libs/protocol_p.h: - add documentation
+ for the STORE command - add support for remote id based
+ operations - improved error handling/syntax checking - cleanup
+ first part of the parsing code
+
+2009-05-16 17:36 +0000 [r968836] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/storage/parthelper.cpp: add
+ more detailed error messages for debugging
+
+2009-05-16 16:31 +0000 [r968823] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/akonadiconnection.cpp: Deal
+ with stray newlines caused by zero-sized literals. The real fix
+ for this would be on the client side, but being more robust
+ against received garbage can't hurt either. This fixes most of
+ the unknown command/empty command errors for me, as well as most
+ of the unit tests.
+
+2009-05-16 15:29 +0000 [r968735] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler.cpp,
+ trunk/kdesupport/akonadi/server/src/handler.h,
+ trunk/kdesupport/akonadi/server/src/akonadiconnection.cpp: Add
+ useful error messages to debug unknown/empty command errors.
+
+2009-05-15 19:16 +0000 [r968466] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/storage/itemretriever.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/scope.h,
+ trunk/kdesupport/akonadi/server/src/handler.cpp,
+ trunk/kdesupport/akonadi/server/src/imapstreamparser.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/itemretriever.h,
+ trunk/kdesupport/akonadi/libs/protocol_p.h,
+ trunk/kdesupport/akonadi/server/src/handler/move.cpp (added),
+ trunk/kdesupport/akonadi/server/tests/unittest/scopetest.cpp,
+ trunk/kdesupport/akonadi/server/src/imapstreamparser.h,
+ trunk/kdesupport/akonadi/server/CMakeLists.txt,
+ trunk/kdesupport/akonadi/server/src/akonadiconnection.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/scope.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/move.h (added): - Fix
+ an infinite loop when parsing rid lists. - After item deletion,
+ also factor item moving out of the store handler. This will
+ eventually allow us to get rid of the evil look-ahead hack in the
+ parsing code there.
+
+2009-05-14 20:39 +0000 [r968058] Christophe Giboudeaux cgiboudeaux@xxxxxxxxx
+
+ * trunk/kdesupport/akonadi/AkonadiConfig.cmake.in:
+ AKONADI_COMMON_LIBRARIES was created by FindAkonadi.cmake which
+ did ensure the correct library extension was added depending on
+ the system. This patch will resolve issues when building the
+ akonadi server on mac or windows. This is a temporary fix, I'm
+ still thinking about the best solution. (ie: define it here or in
+ FindAkonadi.cmake)
+
+2009-05-14 18:21 +0000 [r968014] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler/remove.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/fetch.h,
+ trunk/kdesupport/akonadi/server/src/storage/itemqueryhelper.h,
+ trunk/kdesupport/akonadi/server/src/handler/fetch.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/itemqueryhelper.cpp:
+ Factor out query generation code for item sets.
+
+2009-05-14 18:02 +0000 [r968010] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler/remove.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/fetch.h,
+ trunk/kdesupport/akonadi/server/src/handler/scope.h,
+ trunk/kdesupport/akonadi/server/src/storage/itemqueryhelper.h,
+ trunk/kdesupport/akonadi/server/src/handler/remove.h,
+ trunk/kdesupport/akonadi/server/tests/unittest/scopetest.cpp
+ (added), trunk/kdesupport/akonadi/server/CMakeLists.txt,
+ trunk/kdesupport/akonadi/server/src/handler/fetch.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/scope.cpp (added),
+ trunk/kdesupport/akonadi/server/tests/unittest/CMakeLists.txt,
+ trunk/kdesupport/akonadi/server/src/storage/itemqueryhelper.cpp:
+ Factor out the item set parsing code, which got a bit too complex
+ now that we support rid-based operations.
+
+2009-05-13 07:47 +0000 [r967295] Sebastian Trueg sebastian@xxxxxxxx
+
+ * trunk/kdesupport/akonadi/cmake/modules/FindSoprano.cmake: ported
+ changes from kdelibs
+
+2009-05-09 15:41 +0000 [r965720] Volker Krause vkrause@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler/store.cpp,
+ trunk/kdesupport/akonadi/server/tests/unittest/handlertest.h,
+ trunk/kdesupport/akonadi/server/src/handler.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/uid.cpp (removed),
+ trunk/kdesupport/akonadi/server/src/handler/store.h,
+ trunk/kdesupport/akonadi/server/src/handler.h,
+ trunk/kdesupport/akonadi/server/src/handler/uid.h (removed),
+ trunk/kdesupport/akonadi/server/CMakeLists.txt,
+ trunk/kdesupport/akonadi/server/src/akonadiconnection.cpp,
+ trunk/kdesupport/akonadi/server/tests/unittest/handlertest.cpp:
+ Cleanup handler creation/deletion and improve the error handling
+ a bit.
+
+2009-05-06 22:19 +0000 [r964571] Kevin Ottens ervin@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/handler/store.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/datastore.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/akonadidb.xml,
+ trunk/kdesupport/akonadi/server/src/storage/datastore.h,
+ trunk/kdesupport/akonadi/server/src/handler/akappend.cpp,
+ trunk/kdesupport/akonadi/server/src/storage/notificationcollector.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/append.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/copy.cpp: When
+ mapping with the db the remoteId on items should be interpreted
+ as QString (just like for collections). Also consider remote ids
+ as UTF8 on the wire. CCMAIL: vkrause@xxxxxxx
+
+2009-05-06 16:21 +0000 [r964414] Andras Mantia amantia@xxxxxxx
+
+ * trunk/kdesupport/akonadi/server/src/akonadiconnection.cpp,
+ trunk/kdesupport/akonadi/server/src/handler/fetch.cpp: Send the
+ collection id with FETCH.
+
+2009-05-05 21:55 +0000 [r964066] Tom Albers toma@xxxxxxx
+
+ * trunk/kdesupport/akonadi/ChangeLog,
+ trunk/kdesupport/akonadi/NEWS: Update Changelog and News. Ready
+ for release.
+
2009-05-04 04:18 +0000 [r963176] Christophe Giboudeaux cgiboudeaux@xxxxxxxxx

* trunk/kdesupport/akonadi/AkonadiConfig.cmake.in: Add quotes
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/CMakeLists.txt
new/akonadi-1.1.90/CMakeLists.txt
--- old/akonadi-1.1.85svn969743/CMakeLists.txt 2009-05-03 15:30:23.000000000
+0200
+++ new/akonadi-1.1.90/CMakeLists.txt 2009-06-03 19:38:03.000000000 +0200
@@ -1,6 +1,6 @@
project(Akonadi)

-cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 2.6.2 FATAL_ERROR)

# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is
checked
set(CMAKE_MODULE_PATH "${Akonadi_SOURCE_DIR}/cmake/modules")
@@ -29,7 +29,7 @@

set(AKONADI_VERSION_MAJOR "1")
set(AKONADI_VERSION_MINOR "1")
-set(AKONADI_VERSION_PATCH "85")
+set(AKONADI_VERSION_PATCH "90")
set(AKONADI_VERSION
"${AKONADI_VERSION_MAJOR}.${AKONADI_VERSION_MINOR}.${AKONADI_VERSION_PATCH}")

# If Subversion is installed, and a '.svn' directory is found,
@@ -96,6 +96,13 @@
endif(NOT XSLTPROC_EXECUTABLE)

#### Boost ####
+if(MSVC)
+ # otherwise we get an undefined reference to
+ # boost::program_options::options_description::m_default_line_length
+ set(Boost_USE_STATIC_LIBS ON)
+ set (_ENABLE_EXCEPTIONS -EHsc)
+endif(MSVC)
+
find_package(Boost COMPONENTS program_options)
macro_log_feature(Boost_FOUND "Boost" "Boost C++ Libraries"
"http://www.boost.org"; TRUE "" "Akonadi requires the Boost C++ libraries.")

@@ -104,16 +111,8 @@
add_definitions(-DBOOST_DYN_LINK)
endif(NOT Boost_USE_STATIC_LIBS)

-
############### Compilers flags ###############

-if(MSVC)
- # otherwise we get an undefined reference to
- # boost::program_options::options_description::m_default_line_length
- set(Boost_USE_STATIC_LIBS ON)
- set (_ENABLE_EXCEPTIONS -EHsc)
-endif(MSVC)
-
if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_C_COMPILER MATCHES "icc")
set (_ENABLE_EXCEPTIONS -fexceptions)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -std=iso9899:1990
-Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts
-Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security
-Wmissing-format-attribute -fno-common")
@@ -157,7 +156,7 @@
if (IS_ABSOLUTE "${in}")
set(${out} "${in}")
else (IS_ABSOLUTE "${in}")
- set(${out} "\${KDEPIMLIBS_INSTALL_DIR}/${in}")
+ set(${out} "\${AKONADI_INSTALL_DIR}/${in}")
endif (IS_ABSOLUTE "${in}")
endmacro(MAKE_INSTALL_PATH_ABSOLUTE out in)

@@ -207,9 +206,9 @@
############### install stuff ###############

if(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR)
- set(_AkonadiConfig_INSTALL_DIR
${LIB_INSTALL_DIR}/cmake/Akonadi-${AKONADI_VERSION})
+ set(_AkonadiConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/Akonadi)
else(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR)
- set(_AkonadiConfig_INSTALL_DIR
${LIB_INSTALL_DIR}/Akonadi-${AKONADI_VERSION}/cmake)
+ set(_AkonadiConfig_INSTALL_DIR ${LIB_INSTALL_DIR}/Akonadi/cmake)
endif(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR)

install(FILES ${Akonadi_BINARY_DIR}/AkonadiConfigVersion.cmake
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/.kateconfig
new/akonadi-1.1.90/.kateconfig
--- old/akonadi-1.1.85svn969743/.kateconfig 2008-08-24 11:36:30.000000000
+0200
+++ new/akonadi-1.1.90/.kateconfig 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-// kate: space-indent on; indent-width 2; remove-trailing-space on;
remove-trailing-space-save on;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/libs/CMakeLists.txt
new/akonadi-1.1.90/libs/CMakeLists.txt
--- old/akonadi-1.1.85svn969743/libs/CMakeLists.txt 2009-04-30
21:55:32.000000000 +0200
+++ new/akonadi-1.1.90/libs/CMakeLists.txt 2009-06-03 19:37:26.000000000
+0200
@@ -29,4 +29,5 @@
DESTINATION ${CMAKE_INSTALL_PREFIX}/include/akonadi/private
)

+add_subdirectory( tests )

diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/libs/notificationmessage.cpp
new/akonadi-1.1.90/libs/notificationmessage.cpp
--- old/akonadi-1.1.85svn969743/libs/notificationmessage.cpp 2008-08-24
13:41:08.000000000 +0200
+++ new/akonadi-1.1.90/libs/notificationmessage.cpp 2009-06-03
19:37:26.000000000 +0200
@@ -22,6 +22,7 @@
#include <QDBusMetaType>
#include <QDebug>
#include <QHash>
+#include "imapparser_p.h"

using namespace Akonadi;

@@ -50,7 +51,7 @@
parts = other.parts;
}

- bool compareWithoutOp( const Private &other ) const
+ bool compareWithoutOpAndParts( const Private &other ) const
{
return sessionId == other.sessionId
&& type == other.type
@@ -59,7 +60,12 @@
&& resource == other.resource
&& parentCollection == other.parentCollection
&& parentDestCollection == other.parentDestCollection
- && mimeType == other.mimeType
+ && mimeType == other.mimeType;
+ }
+
+ bool compareWithoutOp( const Private &other ) const
+ {
+ return compareWithoutOpAndParts( other )
&& parts == other.parts;
}

@@ -237,7 +243,9 @@
rv += QLatin1String( "added" );
break;
case Modify:
- rv += QLatin1String( "modified" );
+ rv += QLatin1String( "modified parts (" );
+ rv += QString::fromLatin1( ImapParser::join( itemParts().toList(), ", "
) );
+ rv += QLatin1String( ")" );
break;
case Move:
rv += QLatin1String( "moved" );
@@ -270,6 +278,12 @@
it = list.erase( it );
} else
++it;
+ } else if ( msg.d->compareWithoutOpAndParts( *((*it).d) ) ) {
+ if ( msg.operation() == Modify && (*it).operation() == Modify &&
msg.type() == Item ) {
+ (*it).setItemParts( (*it).itemParts() + msg.itemParts() );
+ return;
+ } else
+ ++it;
} else
++it;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/libs/tests/notificationmessagetest.cpp
new/akonadi-1.1.90/libs/tests/notificationmessagetest.cpp
--- old/akonadi-1.1.85svn969743/libs/tests/notificationmessagetest.cpp
1970-01-01 01:00:00.000000000 +0100
+++ new/akonadi-1.1.90/libs/tests/notificationmessagetest.cpp 2009-06-03
19:37:26.000000000 +0200
@@ -0,0 +1,111 @@
+/*
+ Copyright (c) 2007 Volker Krause <vkrause@xxxxxxx>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+#include "notificationmessagetest.h"
+#include "notificationmessagetest.moc"
+
+#include <notificationmessage_p.h>
+
+#include <QtTest>
+
+QTEST_APPLESS_MAIN( NotificationMessageTest )
+
+using namespace Akonadi;
+
+void NotificationMessageTest::testCompress()
+{
+ NotificationMessage::List list;
+ NotificationMessage msg;
+ msg.setType( NotificationMessage::Item );
+ msg.setOperation( NotificationMessage::Add );
+
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+
+ msg.setOperation( NotificationMessage::Modify );
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+ QCOMPARE( list.first().operation(), NotificationMessage::Add );
+
+ msg.setOperation( NotificationMessage::Remove );
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 2 ); // should be 2 for collections, 0 for items?
+}
+
+void NotificationMessageTest::testCompress2()
+{
+ NotificationMessage::List list;
+ NotificationMessage msg;
+ msg.setType( NotificationMessage::Item );
+ msg.setOperation( NotificationMessage::Modify );
+
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+
+ msg.setOperation( NotificationMessage::Remove );
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+ QCOMPARE( list.first().operation(), NotificationMessage::Remove );
+}
+
+void NotificationMessageTest::testCompress3()
+{
+ NotificationMessage::List list;
+ NotificationMessage msg;
+ msg.setType( NotificationMessage::Item );
+ msg.setOperation( NotificationMessage::Modify );
+
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+}
+
+void NotificationMessageTest::testNoCompress()
+{
+ NotificationMessage::List list;
+ NotificationMessage msg;
+ msg.setType( NotificationMessage::Item );
+ msg.setOperation( NotificationMessage::Modify );
+
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+
+ msg.setType( NotificationMessage::Collection );
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 2 );
+}
+
+void NotificationMessageTest::testPartModificationMerge()
+{
+ NotificationMessage::List list;
+ NotificationMessage msg;
+ msg.setType( NotificationMessage::Item );
+ msg.setOperation( NotificationMessage::Modify );
+ msg.setItemParts( QSet<QByteArray>() << "PART1" );
+
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+
+ msg.setItemParts( QSet<QByteArray>() << "PART2" );
+ NotificationMessage::appendAndCompress( list, msg );
+ QCOMPARE( list.count(), 1 );
+ QCOMPARE( list.first().itemParts(), (QSet<QByteArray>() << "PART1" <<
"PART2") );
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/libs/tests/notificationmessagetest.h
new/akonadi-1.1.90/libs/tests/notificationmessagetest.h
--- old/akonadi-1.1.85svn969743/libs/tests/notificationmessagetest.h
1970-01-01 01:00:00.000000000 +0100
+++ new/akonadi-1.1.90/libs/tests/notificationmessagetest.h 2009-06-03
19:37:26.000000000 +0200
@@ -0,0 +1,37 @@
+/*
+ Copyright (c) 2007 Volker Krause <vkrause@xxxxxxx>
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version.
+
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+#ifndef AKONADI_NOTIFICATIONMESSAGETEST_H
+#define AKONADI_NOTIFICATIONMESSAGETEST_H
+
+#include <QtCore/QObject>
+
+class NotificationMessageTest : public QObject
+{
+ Q_OBJECT
+ private slots:
+ void testCompress();
+ void testCompress2();
+ void testCompress3();
+ void testNoCompress();
+ void testPartModificationMerge();
+};
+
+
+#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/makechangelog
new/akonadi-1.1.90/makechangelog
--- old/akonadi-1.1.85svn969743/makechangelog 2008-05-19 00:03:40.000000000
+0200
+++ new/akonadi-1.1.90/makechangelog 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-rm -f /tmp/svn2log.py /tmp/accounts
-svn cat
svn+ssh://toma@xxxxxxxxxxx/home/kde/branches/KDE/3.5/kde-common/release/svn2log.py
/tmp/svn2log.py
-svn cat svn+ssh://toma@xxxxxxxxxxx/home/kde/trunk/kde-common/accounts >
/tmp/accounts
-svn log -v --xml \
- svn+ssh://toma@xxxxxxxxxxx/home/kde/trunk/kdesupport/akonadi \
- | python /tmp/svn2log.py --users=/tmp/accounts --users-charset=UTF8
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/NEWS new/akonadi-1.1.90/NEWS
--- old/akonadi-1.1.85svn969743/NEWS 2009-05-05 23:55:31.000000000 +0200
+++ new/akonadi-1.1.90/NEWS 2009-06-03 19:38:03.000000000 +0200
@@ -1,3 +1,14 @@
+1.1.90 03-June-2009
+---------------------------------------------
+- Return the storage location for items in FETCH responses
+- Fix remode identifier encoding problems
+- Fix infinite loop when parsing RID lists
+- Fix parsing errors on stray newlines
+- Support RID-based operations for STORE and MOVE
+- Fix race on resource creation
+- Provide modified item parts in change notifications
+- Build system fixes
+
1.1.85 05-May-2009
---------------------------------------------
- Improved CMake scripts so it is possible to detect
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/server/akonadictl/CMakeLists.txt
new/akonadi-1.1.90/server/akonadictl/CMakeLists.txt
--- old/akonadi-1.1.85svn969743/server/akonadictl/CMakeLists.txt
2008-12-30 15:45:08.000000000 +0100
+++ new/akonadi-1.1.90/server/akonadictl/CMakeLists.txt 2009-06-03
19:38:03.000000000 +0200
@@ -10,7 +10,7 @@
)

qt4_add_dbus_interfaces( akonadictl_SRCS
-
${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/org.freedesktop.Akonadi.ControlManager.xml
+
${Akonadi_SOURCE_DIR}/server/interfaces/org.freedesktop.Akonadi.ControlManager.xml
)

automoc4_add_executable(akonadictl ${akonadictl_SRCS})
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/server/CMakeLists.txt
new/akonadi-1.1.90/server/CMakeLists.txt
--- old/akonadi-1.1.85svn969743/server/CMakeLists.txt 2009-05-17
17:48:12.000000000 +0200
+++ new/akonadi-1.1.90/server/CMakeLists.txt 2009-06-03 19:38:03.000000000
+0200
@@ -134,6 +134,7 @@
qt4_add_dbus_adaptor( libakonadiprivate_SRCS
${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.NotificationManager.xml
notificationmanager.h Akonadi::NotificationManager )
qt4_add_dbus_adaptor( libakonadiprivate_SRCS
interfaces/org.freedesktop.Akonadi.Server.xml akonadi.h Akonadi::AkonadiServer )
qt4_add_dbus_adaptor( libakonadiprivate_SRCS
${CMAKE_CURRENT_BINARY_DIR}/org.freedesktop.Akonadi.DebugInterface.xml
debuginterface.h DebugInterface )
+qt4_add_dbus_adaptor( libakonadiprivate_SRCS
${Akonadi_SOURCE_DIR}/server/interfaces/org.freedesktop.Akonadi.ResourceManager.xml
resourcemanager.h Akonadi::ResourceManager )

qt4_add_dbus_interfaces( libakonadiprivate_SRCS
${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.AgentManager.xml
${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.Resource.xml )
qt4_add_dbus_interface( libakonadiprivate_SRCS
interfaces/org.freedesktop.Akonadi.Search.xml searchinterface )
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/server/control/agentmanager.cpp
new/akonadi-1.1.90/server/control/agentmanager.cpp
--- old/akonadi-1.1.85svn969743/server/control/agentmanager.cpp 2009-01-24
16:01:37.000000000 +0100
+++ new/akonadi-1.1.90/server/control/agentmanager.cpp 2009-06-03
19:37:27.000000000 +0200
@@ -25,6 +25,7 @@
#include "serverinterface.h"
#include "../../libs/xdgbasedirs_p.h"
#include "akdebug.h"
+#include "resource_manager.h"

#include <QtCore/QCoreApplication>
#include <QtCore/QDir>
@@ -175,6 +176,9 @@
return QString();
mAgentInstances.insert( instance->identifier(), instance );

+ org::freedesktop::Akonadi::ResourceManager * resmanager = new
org::freedesktop::Akonadi::ResourceManager(
QLatin1String("org.freedesktop.Akonadi"), QLatin1String("/ResourceManager"),
QDBusConnection::sessionBus(), this );
+ resmanager->addResourceInstance(instance->identifier());
+
save();
return instance->identifier();
}
@@ -198,6 +202,9 @@
mAgentInstances.remove( identifier );

save();
+
+ org::freedesktop::Akonadi::ResourceManager * resmanager = new
org::freedesktop::Akonadi::ResourceManager(
QLatin1String("org.freedesktop.Akonadi"), QLatin1String("/ResourceManager"),
QDBusConnection::sessionBus(), this );
+ resmanager->removeResourceInstance(instance->identifier());

emit agentInstanceRemoved( identifier );
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/server/control/CMakeLists.txt
new/akonadi-1.1.90/server/control/CMakeLists.txt
--- old/akonadi-1.1.85svn969743/server/control/CMakeLists.txt 2008-12-30
15:45:08.000000000 +0100
+++ new/akonadi-1.1.90/server/control/CMakeLists.txt 2009-06-03
19:37:27.000000000 +0200
@@ -23,16 +23,16 @@
processcontrol.cpp
)

-qt4_add_dbus_adaptor( control_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/../../interfaces/org.freedesktop.Akonadi.AgentManager.xml
agentmanager.h AgentManager )
-qt4_add_dbus_adaptor( control_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/org.freedesktop.Akonadi.ControlManager.xml
controlmanager.h ControlManager )
+qt4_add_dbus_adaptor( control_SRCS
${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.AgentManager.xml
agentmanager.h AgentManager )
+qt4_add_dbus_adaptor( control_SRCS
${Akonadi_SOURCE_DIR}/server/interfaces/org.freedesktop.Akonadi.ControlManager.xml
controlmanager.h ControlManager )
qt4_add_dbus_interfaces( control_SRCS
-
${CMAKE_CURRENT_SOURCE_DIR}/../../interfaces/org.freedesktop.Akonadi.Tracer.xml
-
${CMAKE_CURRENT_SOURCE_DIR}/../../interfaces/org.freedesktop.Akonadi.Agent.Control.xml
-
${CMAKE_CURRENT_SOURCE_DIR}/../../interfaces/org.freedesktop.Akonadi.Agent.Status.xml
-
${CMAKE_CURRENT_SOURCE_DIR}/../../interfaces/org.freedesktop.Akonadi.Resource.xml
- ${CMAKE_CURRENT_SOURCE_DIR}/../interfaces/org.freedesktop.Akonadi.Server.xml
+ ${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.Tracer.xml
+ ${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.Agent.Control.xml
+ ${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.Agent.Status.xml
+ ${Akonadi_SOURCE_DIR}/interfaces/org.freedesktop.Akonadi.Resource.xml
+ ${Akonadi_SOURCE_DIR}/server/interfaces/org.freedesktop.Akonadi.Server.xml
)
-
+qt4_add_dbus_interface( control_SRCS
${Akonadi_SOURCE_DIR}/server/interfaces/org.freedesktop.Akonadi.ResourceManager.xml
resource_manager)

automoc4_add_executable(akonadi_control ${control_SRCS})
set_target_properties(akonadi_control PROPERTIES OUTPUT_NAME akonadi_control)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/server/interfaces/org.freedesktop.Akonadi.ResourceManager.xml

new/akonadi-1.1.90/server/interfaces/org.freedesktop.Akonadi.ResourceManager.xml
---
old/akonadi-1.1.85svn969743/server/interfaces/org.freedesktop.Akonadi.ResourceManager.xml
1970-01-01 01:00:00.000000000 +0100
+++
new/akonadi-1.1.90/server/interfaces/org.freedesktop.Akonadi.ResourceManager.xml
2009-06-03 19:37:37.000000000 +0200
@@ -0,0 +1,13 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
+<node>
+ <interface name="org.freedesktop.Akonadi.ResourceManager">
+ <method name="addResourceInstance">
+ <arg name="identifier" type="s" direction="in"/>
+ <arg type="b" direction="out"/>
+ </method>
+ <method name="removeResourceInstance">
+ <arg name="identifier" type="s" direction="in"/>
+ <arg type="b" direction="out"/>
+ </method>
+ </interface>
+</node>
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/server/src/handler/move.cpp
new/akonadi-1.1.90/server/src/handler/move.cpp
--- old/akonadi-1.1.85svn969743/server/src/handler/move.cpp 2009-05-15
21:16:51.000000000 +0200
+++ new/akonadi-1.1.90/server/src/handler/move.cpp 2009-06-03
19:38:01.000000000 +0200
@@ -41,6 +41,9 @@
{
mScope.parseScope( m_streamParser );
const Collection destination = HandlerHelper::collectionFromIdOrName(
m_streamParser->readString() );
+ if ( !destination.isValid() )
+ throw HandlerException( "Unknown destination collection" );
+ const Resource destResource = destination.resource();

// make sure all the items we want to move are in the cache
ItemRetriever retriever( connection() );
@@ -53,15 +56,37 @@

SelectQueryBuilder<PimItem> qb;
ItemQueryHelper::scopeToQuery( mScope, connection(), qb );
+ qb.addValueCondition( PimItem::collectionIdFullColumnName(),
Query::NotEquals, destination.id() );
+
+ const QDateTime mtime = QDateTime::currentDateTime();

if ( qb.exec() ) {
const QList<PimItem> items = qb.result();
if ( items.isEmpty() )
throw HandlerException( "No items found" );
foreach ( PimItem item, items ) {
- if ( !store->updatePimItem( item, destination ) ) // TODO inline this
method here once it's no longer used in store.cpp
- throw HandlerException( "Unable to move item" );
+ if ( !item.isValid() )
+ throw HandlerException( "Invalid item in result set!?" );
+ Q_ASSERT( item.collectionId() != destination.id() );
+ const Collection source = item.collection();
+ if ( !source.isValid() )
+ throw HandlerException( "Item without collection found!?" );
+
+ store->notificationCollector()->collectionChanged( source ); // ### why?
+
+ item.setCollectionId( destination.id() );
+ item.setAtime( mtime );
+ item.setDatetime( mtime );
+ // if the resource moved itself, we assume it did so because the change
happend in the backend
+ if ( connection()->resourceContext().id() != destResource.id() )
+ item.setDirty( true );
+
+ if ( !item.update() )
+ throw HandlerException( "Unable to update item" );
+
+ store->notificationCollector()->itemMoved( item, source, destination );
}
+ store->notificationCollector()->collectionChanged( destination,
destResource.name().toUtf8() ); // ### why?
} else {
throw HandlerException( "Unable to execute query" );
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/server/src/handler/store.cpp
new/akonadi-1.1.90/server/src/handler/store.cpp
--- old/akonadi-1.1.85svn969743/server/src/handler/store.cpp 2009-05-17
18:54:47.000000000 +0200
+++ new/akonadi-1.1.90/server/src/handler/store.cpp 2009-06-03
19:38:01.000000000 +0200
@@ -156,8 +156,11 @@
throw HandlerException( "Item was modified elsewhere, aborting STORE." );
pimItems[ i ].setRev( pimItems[ i ].rev() + 1 );
pimItems[ i ].setDatetime( modificationtime );
+ pimItems[ i ].setAtime( modificationtime );
}

+ QSet<QByteArray> changes;
+
// apply modifications
m_streamParser->beginList();
while ( !m_streamParser->atListEnd() ) {
@@ -202,6 +205,7 @@
}
}

+ changes << AKONADI_PARAM_FLAGS;
continue;
}

@@ -210,14 +214,16 @@
if ( pimItems.size() > 1 )
throw HandlerException( "This Modification can only be applied to a
single item" );
PimItem &item = pimItems.first();
+ if ( !item.isValid() )
+ throw HandlerException( "Invalid item in query result!?" );

if ( command == AKONADI_PARAM_REMOTEID ) {
const QString rid = m_streamParser->readUtf8String();
if ( item.remoteId() != rid ) {
if ( !connection()->isOwnerResource( item ) )
throw HandlerException( "Only resources can modify remote
identifiers" );
- if ( !store->updatePimItem( item, rid ) )
- return failureResponse( "Unable to change remote id for item." );
+ item.setRemoteId( rid );
+ changes << AKONADI_PARAM_REMOTEID;
}
}

@@ -228,6 +234,7 @@

else if ( command == AKONADI_PARAM_SIZE ) {
mSize = m_streamParser->readNumber();
+ changes << AKONADI_PARAM_SIZE;
}

else if ( command == "PARTS" ) {
@@ -235,6 +242,7 @@
if ( op == Delete ) {
if ( !store->removeItemParts( item, parts ) )
return failureResponse( "Unable to remove item parts." );
+ changes += QSet<QByteArray>::fromList( parts );
}
}

@@ -296,6 +304,7 @@
return failureResponse( "Unable to update item part" );
}

+ changes << partName;
continue;
} else { // not store in file
//don't write in streaming way as the data goes to the database
@@ -313,20 +322,27 @@
if ( !PartHelper::update( &part, value, value.size() ) )
return failureResponse( "Unable to update item part" );
} else {
- qDebug() << "insert from Store::handleLine: " << value;
+ qDebug() << "insert from Store::handleLine: " << value.left(100);
part.setData( value );
part.setDatasize( value.size() );
if ( !PartHelper::insert( &part ) )
return failureResponse( "Unable to add item part" );
}
+ changes << partName;
}

} // parts/attribute modification
}

// run update query and prepare change notifications
- for ( int i = 0; i < pimItems.count(); ++i )
- store->updatePimItem( pimItems[ i ] );
+ for ( int i = 0; i < pimItems.count(); ++i ) {
+ PimItem item = pimItems[ i ];
+ if ( !connection()->isOwnerResource( item ) )
+ item.setDirty( true );
+ if ( !item.update() )
+ throw HandlerException( "Unable to write item changes into the database"
);
+ store->notificationCollector()->itemChanged( item, changes );
+ }

if ( !transaction.commit() )
return failureResponse( "Cannot commit transaction." );
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/server/src/resourcemanager.cpp
new/akonadi-1.1.90/server/src/resourcemanager.cpp
--- old/akonadi-1.1.85svn969743/server/src/resourcemanager.cpp 2009-01-22
01:02:32.000000000 +0100
+++ new/akonadi-1.1.90/server/src/resourcemanager.cpp 2009-06-03
19:38:03.000000000 +0200
@@ -20,6 +20,7 @@
#include "resourcemanager.h"
#include "tracer.h"
#include "storage/datastore.h"
+#include "resourcemanageradaptor.h"

#include <QtDBus/QDBusConnection>

@@ -30,34 +31,30 @@
Akonadi::ResourceManager::ResourceManager(QObject * parent) :
QObject( parent )
{
- mManager = new org::freedesktop::Akonadi::AgentManager(
QLatin1String("org.freedesktop.Akonadi.Control"),
- QLatin1String("/AgentManager"), QDBusConnection::sessionBus(), this );
-
- connect( mManager, SIGNAL(agentInstanceAdded(const QString&)),
- SLOT(resourceAdded(const QString&)) );
- connect( mManager, SIGNAL(agentInstanceRemoved(const QString&)),
- SLOT(resourceRemoved(const QString& )) );
+ new ResourceManagerAdaptor( this );
+ QDBusConnection::sessionBus().registerObject(
QLatin1String("/ResourceManager"), this );
}

-void Akonadi::ResourceManager::resourceAdded(const QString & name)
+bool Akonadi::ResourceManager::addResourceInstance(const QString & name)
{
DataStore *db = DataStore::self();

Resource resource = Resource::retrieveByName( name );
if ( resource.isValid() )
- return; // resource already exists
+ return false; // resource already exists

// create the resource
resource.setName( name );
if ( !resource.insert() ) {
Tracer::self()->error( "ResourceManager", QString::fromLatin1("Could not
create resource '%1'.").arg(name) );
delete db;
- return;
+ return false;
}
resource = Resource::retrieveByName( name );
+ return true;
}

-void Akonadi::ResourceManager::resourceRemoved(const QString & name)
+bool Akonadi::ResourceManager::removeResourceInstance(const QString & name)
{
DataStore *db = DataStore::self();

@@ -71,6 +68,7 @@
// remove resource
resource.remove();
}
+ return true;
}

ResourceManager * Akonadi::ResourceManager::self()
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/server/src/resourcemanager.h
new/akonadi-1.1.90/server/src/resourcemanager.h
--- old/akonadi-1.1.85svn969743/server/src/resourcemanager.h 2008-05-05
18:39:07.000000000 +0200
+++ new/akonadi-1.1.90/server/src/resourcemanager.h 2009-06-03
19:38:03.000000000 +0200
@@ -40,9 +40,9 @@
private:
ResourceManager( QObject *parent = 0 );

- private Q_SLOTS:
- void resourceAdded( const QString &name );
- void resourceRemoved( const QString &name );
+ public Q_SLOTS:
+ bool addResourceInstance( const QString &name );
+ bool removeResourceInstance( const QString &name );

private:
static ResourceManager* mSelf;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/server/src/storage/datastore.cpp
new/akonadi-1.1.90/server/src/storage/datastore.cpp
--- old/akonadi-1.1.85svn969743/server/src/storage/datastore.cpp
2009-05-07 00:19:17.000000000 +0200
+++ new/akonadi-1.1.90/server/src/storage/datastore.cpp 2009-06-03
19:37:46.000000000 +0200
@@ -168,7 +168,7 @@
return false;
}

- mNotificationCollector->itemChanged( item );
+ mNotificationCollector->itemChanged( item, QSet<QByteArray>() << "FLAGS" );
return true;
}

@@ -187,7 +187,7 @@
}
}

- mNotificationCollector->itemChanged( item, col );
+ mNotificationCollector->itemChanged( item, QSet<QByteArray>() << "FLAGS",
col );
return true;
}

@@ -214,7 +214,7 @@
return false;
}

- mNotificationCollector->itemChanged( item );
+ mNotificationCollector->itemChanged( item, QSet<QByteArray>() << "FLAGS" );
return true;
}

@@ -230,7 +230,7 @@
}
}

- mNotificationCollector->itemChanged( item );
+ mNotificationCollector->itemChanged( item, parts.toSet() );
return true;
}

@@ -446,59 +446,6 @@
return true;
}

-bool Akonadi::DataStore::updatePimItem(PimItem & pimItem)
-{
- pimItem.setAtime( QDateTime::currentDateTime() );
- if ( mSessionId != pimItem.collection().resource().name().toLatin1() )
- pimItem.setDirty( true );
- if ( !pimItem.update() )
- return false;
-
- mNotificationCollector->itemChanged( pimItem );
- return true;
-}
-
-bool Akonadi::DataStore::updatePimItem(PimItem & pimItem, const Collection &
destination)
-{
- if ( !pimItem.isValid() || !destination.isValid() )
- return false;
- if ( pimItem.collectionId() == destination.id() )
- return true;
-
- Collection source = pimItem.collection();
- if ( !source.isValid() )
- return false;
- mNotificationCollector->collectionChanged( source );
-
- pimItem.setCollectionId( destination.id() );
- pimItem.setAtime( QDateTime::currentDateTime() );
- if ( mSessionId != pimItem.collection().resource().name().toLatin1() )
- pimItem.setDirty( true );
- if ( !pimItem.update() )
- return false;
-
- mNotificationCollector->collectionChanged( destination );
- mNotificationCollector->itemMoved( pimItem, source, destination );
- return true;
-}
-
-bool DataStore::updatePimItem(PimItem & pimItem, const QString & remoteId)
-{
- if ( !pimItem.isValid() )
- return false;
- if ( pimItem.remoteId() == remoteId )
- return true;
-
- pimItem.setRemoteId( remoteId );
- pimItem.setAtime( QDateTime::currentDateTime() );
- if ( !pimItem.update() )
- return false;
- mNotificationCollector->itemChanged( pimItem );
- return true;
-}
-
-
-
bool DataStore::cleanupPimItem( const PimItem &item )
{
if ( !item.isValid() )
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/akonadi-1.1.85svn969743/server/src/storage/datastore.h
new/akonadi-1.1.90/server/src/storage/datastore.h
--- old/akonadi-1.1.85svn969743/server/src/storage/datastore.h 2009-05-07
00:19:17.000000000 +0200
+++ new/akonadi-1.1.90/server/src/storage/datastore.h 2009-06-03
19:37:46.000000000 +0200
@@ -157,9 +157,6 @@
const QDateTime & dateTime,
const QString & remote_id,
PimItem &pimItem );
- bool updatePimItem( PimItem &pimItem );
- bool updatePimItem( PimItem &pimItem, const Collection &destination );
- bool updatePimItem( PimItem &pimItem, const QString &remoteId );

/**
* Removes the pim item and all referenced data ( e.g. flags )
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/server/src/storage/notificationcollector.cpp
new/akonadi-1.1.90/server/src/storage/notificationcollector.cpp
--- old/akonadi-1.1.85svn969743/server/src/storage/notificationcollector.cpp
2009-05-07 00:19:17.000000000 +0200
+++ new/akonadi-1.1.90/server/src/storage/notificationcollector.cpp
2009-06-03 19:37:46.000000000 +0200
@@ -47,11 +47,12 @@
}

void Akonadi::NotificationCollector::itemChanged( const PimItem &item,
+ const QSet<QByteArray>
&changedParts,
const Collection &collection,
const QString & mimeType,
const QByteArray & resource )
{
- itemNotification( NotificationMessage::Modify, item, collection,
Collection(), mimeType, resource );
+ itemNotification( NotificationMessage::Modify, item, collection,
Collection(), mimeType, resource, changedParts );
}

void Akonadi::NotificationCollector::itemMoved( const PimItem &item,
@@ -126,7 +127,8 @@
const Collection & collection,
const Collection &
collectionDest,
const QString & mimeType,
- const QByteArray & resource)
+ const QByteArray & resource,
+ const QSet<QByteArray> &parts )
{
NotificationMessage msg;
msg.setSessionId( mSessionId );
@@ -134,6 +136,7 @@
msg.setOperation( op );
msg.setUid( item.id() );
msg.setRemoteId( item.remoteId() );
+ msg.setItemParts( parts );

Collection col = collection;
if ( !col.isValid() )
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore
old/akonadi-1.1.85svn969743/server/src/storage/notificationcollector.h
new/akonadi-1.1.90/server/src/storage/notificationcollector.h
--- old/akonadi-1.1.85svn969743/server/src/storage/notificationcollector.h
2009-01-22 01:02:32.000000000 +0100
+++ new/akonadi-1.1.90/server/src/storage/notificationcollector.h
2009-06-03 19:37:46.000000000 +0200
@@ -73,7 +73,9 @@
Provide as many parameters as you have at hand currently, everything
that is missing will be looked up in the database later.
*/
- void itemChanged( const PimItem &item, const Collection &collection =
Collection(),
+ void itemChanged( const PimItem &item,
+ const QSet<QByteArray> &changedParts,
+ const Collection &collection = Collection(),
const QString &mimeType = QString(),
const QByteArray &resource = QByteArray() );

@@ -138,7 +140,8 @@
const Collection &collection,
const Collection &collectionDest,
const QString &mimeType,
- const QByteArray &resource );
+ const QByteArray &resource,
+ const QSet<QByteArray> &parts = QSet<QByteArray>()
);
void collectionNotification( NotificationMessage::Operation op,
const Collection &collection,
const QByteArray &resource );


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread