Hello community,
here is the log from the commit of package kdepimlibs4 for openSUSE:Factory checked in at 2014-05-22 06:49:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdepimlibs4 (Old)
and /work/SRC/openSUSE:Factory/.kdepimlibs4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdepimlibs4"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdepimlibs4/kdepimlibs4.changes 2014-05-06 17:40:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdepimlibs4.new/kdepimlibs4.changes 2014-05-22 06:49:10.000000000 +0200
@@ -1,0 +2,7 @@
+Fri May 9 16:40:20 UTC 2014 - tittiatcoke@gmail.com
+
+- Update to 4.13.1
+ * KDE 4.13.1 bug fix release
+ * See http://www.kde.org/announcements/announce-4.13.1.php
+
+-------------------------------------------------------------------
Old:
----
kdepimlibs-4.13.0.tar.xz
New:
----
kdepimlibs-4.13.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kdepimlibs4.spec ++++++
--- /var/tmp/diff_new_pack.3AUBME/_old 2014-05-22 06:49:11.000000000 +0200
+++ /var/tmp/diff_new_pack.3AUBME/_new 2014-05-22 06:49:11.000000000 +0200
@@ -17,7 +17,7 @@
Name: kdepimlibs4
-Version: 4.13.0
+Version: 4.13.1
Release: 0
Summary: KDE PIM Libraries
License: LGPL-2.1+
++++++ kdepimlibs-4.13.0.tar.xz -> kdepimlibs-4.13.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/CMakeLists.txt new/kdepimlibs-4.13.1/CMakeLists.txt
--- old/kdepimlibs-4.13.0/CMakeLists.txt 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/CMakeLists.txt 2014-05-08 09:26:48.000000000 +0200
@@ -7,7 +7,7 @@
############### The kdepimlibs version (used e.g. in KdepimLibsConfig.cmake) ###############
set(KDEPIMLIBS_VERSION_MAJOR 4)
set(KDEPIMLIBS_VERSION_MINOR 13)
-set(KDEPIMLIBS_VERSION_PATCH 0)
+set(KDEPIMLIBS_VERSION_PATCH 1)
set(KDEPIMLIBS_VERSION ${KDEPIMLIBS_VERSION_MAJOR}.${KDEPIMLIBS_VERSION_MINOR}.${KDEPIMLIBS_VERSION_PATCH})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/attributeentity.h new/kdepimlibs-4.13.1/akonadi/attributeentity.h
--- old/kdepimlibs-4.13.0/akonadi/attributeentity.h 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/attributeentity.h 2014-05-08 09:26:48.000000000 +0200
@@ -41,11 +41,11 @@
public:
AttributeEntity();
- AttributeEntity(const AttributeEntity &);
+ AttributeEntity(const AttributeEntity &other);
virtual ~AttributeEntity();
//Each subclass must override this to avoid slicing
- virtual AttributeEntity &operator=(const AttributeEntity &);
+ virtual AttributeEntity &operator=(const AttributeEntity &other);
/**
* Adds an attribute to the entity.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/collectionrequester.h new/kdepimlibs-4.13.1/akonadi/collectionrequester.h
--- old/kdepimlibs-4.13.0/akonadi/collectionrequester.h 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/collectionrequester.h 2014-05-08 09:26:48.000000000 +0200
@@ -137,7 +137,7 @@
Q_PRIVATE_SLOT( d, void _k_slotOpenDialog() )
Q_PRIVATE_SLOT( d, void _k_collectionReceived( KJob *job ) )
- Q_PRIVATE_SLOT( d, void _k_collectionsNamesReceived( KJob *job ) );
+ Q_PRIVATE_SLOT( d, void _k_collectionsNamesReceived( KJob *job ) )
};
} // namespace Akonadi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/contact/CMakeLists.txt new/kdepimlibs-4.13.1/akonadi/contact/CMakeLists.txt
--- old/kdepimlibs-4.13.0/akonadi/contact/CMakeLists.txt 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/contact/CMakeLists.txt 2014-05-08 09:26:48.000000000 +0200
@@ -144,14 +144,6 @@
configure_file(akonadi-contactprivate_export.h.in "${CMAKE_CURRENT_BINARY_DIR}/akonadi-contactprivate_export.h")
-
-if (KDE4_BUILD_TESTS)
- set(AKONADI_CONTACT_TESTS_EXPORT AKONADI_CONTACT_EXPORT)
-endif()
-configure_file(akonadi-contactprivate_export.h.in
- "${CMAKE_CURRENT_BINARY_DIR}/akonadi-contactprivate_export.h"
-)
-
target_link_libraries(akonadi-contact akonadi-kde
kabc
kcalcore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/contact/contactgroupsearchjob.cpp new/kdepimlibs-4.13.1/akonadi/contact/contactgroupsearchjob.cpp
--- old/kdepimlibs-4.13.0/akonadi/contact/contactgroupsearchjob.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/contact/contactgroupsearchjob.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -68,7 +68,7 @@
case ContactGroupSearchJob::ContainsMatch:
return Akonadi::SearchTerm::CondContains;
}
- return Akonadi::SearchTerm::SearchTerm::CondEqual;
+ return Akonadi::SearchTerm::CondEqual;
}
void ContactGroupSearchJob::setQuery( Criterion criterion, const QString &value, Match match )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/contact/contactsearchjob.cpp new/kdepimlibs-4.13.1/akonadi/contact/contactsearchjob.cpp
--- old/kdepimlibs-4.13.0/akonadi/contact/contactsearchjob.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/contact/contactsearchjob.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -66,7 +66,7 @@
case ContactSearchJob::ContainsMatch:
return Akonadi::SearchTerm::CondContains;
}
- return Akonadi::SearchTerm::SearchTerm::CondEqual;
+ return Akonadi::SearchTerm::CondEqual;
}
void ContactSearchJob::setQuery( Criterion criterion, const QString &value, Match match )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/contact/editor/emaileditwidget.cpp new/kdepimlibs-4.13.1/akonadi/contact/editor/emaileditwidget.cpp
--- old/kdepimlibs-4.13.0/akonadi/contact/editor/emaileditwidget.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/contact/editor/emaileditwidget.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -234,7 +234,8 @@
QStringList::ConstIterator it;
bool preferred = true;
- for (it = items.constBegin(); it != items.constEnd(); ++it) {
+ QStringList::ConstIterator end(items.constEnd());
+ for (it = items.constBegin(); it != end; ++it) {
new EmailItem(*it, mEmailListBox, preferred);
preferred = false;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/entityannotationsattribute.h new/kdepimlibs-4.13.1/akonadi/entityannotationsattribute.h
--- old/kdepimlibs-4.13.0/akonadi/entityannotationsattribute.h 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/entityannotationsattribute.h 2014-05-08 09:26:48.000000000 +0200
@@ -50,9 +50,9 @@
void setAnnotations(const QMap &annotations);
QMap annotations() const;
- void insert(const QByteArray &, const QString &);
- QString value(const QByteArray &);
- bool contains(const QByteArray &) const;
+ void insert(const QByteArray &key, const QString &value);
+ QString value(const QByteArray &key);
+ bool contains(const QByteArray &key) const;
QByteArray type() const;
Attribute *clone() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/entitycache_p.h new/kdepimlibs-4.13.1/akonadi/entitycache_p.h
--- old/kdepimlibs-4.13.0/akonadi/entitycache_p.h 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/entitycache_p.h 2014-05-08 09:26:48.000000000 +0200
@@ -53,30 +53,39 @@
*/
class AKONADI_TESTS_EXPORT EntityCacheBase : public QObject
{
- Q_OBJECT
- public:
- explicit EntityCacheBase ( Session *session, QObject * parent = 0 );
+ Q_OBJECT
+public:
+ explicit EntityCacheBase(Session *session, QObject *parent = 0);
void setSession(Session *session);
- protected:
+protected:
Session *session;
- Q_SIGNALS:
+Q_SIGNALS:
void dataAvailable();
- private Q_SLOTS:
- virtual void processResult( KJob* job ) = 0;
+private Q_SLOTS:
+ virtual void processResult(KJob *job) = 0;
};
template <typename T>
struct EntityCacheNode
{
- EntityCacheNode() : pending( false ), invalid( false ) {}
- EntityCacheNode( typename T::Id id ) : entity( T( id ) ), pending( true ), invalid( false ) {}
- T entity;
- bool pending;
- bool invalid;
+ EntityCacheNode()
+ : pending(false)
+ , invalid(false)
+ {
+ }
+ EntityCacheNode(typename T::Id id)
+ : entity(T(id))
+ , pending(true)
+ , invalid(false)
+ {
+ }
+ T entity;
+ bool pending;
+ bool invalid;
};
/**
@@ -86,72 +95,73 @@
template
class EntityCache : public EntityCacheBase
{
- public:
+public:
typedef FetchScope_ FetchScope;
- explicit EntityCache( int maxCapacity, Session *session = 0, QObject *parent = 0 ) :
- EntityCacheBase( session, parent ),
- mCapacity( maxCapacity )
- {}
+ explicit EntityCache(int maxCapacity, Session *session = 0, QObject *parent = 0)
+ : EntityCacheBase(session, parent)
+ , mCapacity(maxCapacity)
+ {
+ }
~EntityCache()
{
- qDeleteAll( mCache );
+ qDeleteAll(mCache);
}
/** Object is available in the cache and can be retrieved. */
- bool isCached( typename T::Id id ) const
+ bool isCached(typename T::Id id) const
{
- EntityCacheNode<T>* node = cacheNodeForId( id );
- return node && !node->pending;
+ EntityCacheNode<T> *node = cacheNodeForId(id);
+ return node && !node->pending;
}
/** Object has been requested but is not yet loaded into the cache or is already available. */
- bool isRequested( typename T::Id id ) const
+ bool isRequested(typename T::Id id) const
{
- return cacheNodeForId( id );
+ return cacheNodeForId(id);
}
/** Returns the cached object if available, an empty instance otherwise. */
- virtual T retrieve( typename T::Id id ) const
+ virtual T retrieve(typename T::Id id) const
{
- EntityCacheNode<T>* node = cacheNodeForId( id );
- if ( node && !node->pending && !node->invalid ) {
- return node->entity;
- }
- return T();
+ EntityCacheNode<T> *node = cacheNodeForId(id);
+ if (node && !node->pending && !node->invalid) {
+ return node->entity;
+ }
+ return T();
}
/** Marks the cache entry as invalid, use in case the object has been deleted on the server. */
- void invalidate( typename T::Id id )
+ void invalidate(typename T::Id id)
{
- EntityCacheNode<T>* node = cacheNodeForId( id );
- if ( node ) {
- node->invalid = true;
- }
+ EntityCacheNode<T> *node = cacheNodeForId(id);
+ if (node) {
+ node->invalid = true;
+ }
}
/** Triggers a re-fetching of a cache entry, use if it has changed on the server. */
- void update( typename T::Id id, const FetchScope &scope )
+ void update(typename T::Id id, const FetchScope &scope)
{
- EntityCacheNode<T>* node = cacheNodeForId( id );
- if ( node ) {
- mCache.removeAll( node );
- if ( node->pending ) {
- request( id, scope );
+ EntityCacheNode<T> *node = cacheNodeForId(id);
+ if (node) {
+ mCache.removeAll(node);
+ if (node->pending) {
+ request(id, scope);
+ }
+ delete node;
}
- delete node;
- }
}
/** Requests the object to be cached if it is not yet in the cache. @returns @c true if it was in the cache already. */
- virtual bool ensureCached( typename T::Id id, const FetchScope &scope )
+ virtual bool ensureCached(typename T::Id id, const FetchScope &scope)
{
- EntityCacheNode<T>* node = cacheNodeForId( id );
- if ( !node ) {
- request( id, scope );
- return false;
- }
- return !node->pending;
+ EntityCacheNode<T> *node = cacheNodeForId(id);
+ if (!node) {
+ request(id, scope);
+ return false;
+ }
+ return !node->pending;
}
/**
@@ -159,114 +169,112 @@
a token to indicate which request has been finished in the
dataAvailable() signal.
*/
- virtual void request( typename T::Id id, const FetchScope &scope )
+ virtual void request(typename T::Id id, const FetchScope &scope)
{
- Q_ASSERT( !isRequested( id ) );
- shrinkCache();
- EntityCacheNode<T> *node = new EntityCacheNode<T>( id );
- FetchJob* job = createFetchJob( id, scope );
- job->setProperty( "EntityCacheNode", QVariant::fromValue<typename T::Id>( id ) );
- connect( job, SIGNAL( result( KJob* )), SLOT(processResult( KJob* ) ) );
- mCache.enqueue( node );
+ Q_ASSERT(!isRequested(id));
+ shrinkCache();
+ EntityCacheNode<T> *node = new EntityCacheNode<T>(id);
+ FetchJob *job = createFetchJob(id, scope);
+ job->setProperty("EntityCacheNode", QVariant::fromValue<typename T::Id>(id));
+ connect(job, SIGNAL(result(KJob*)), SLOT(processResult(KJob*)));
+ mCache.enqueue(node);
}
- private:
- EntityCacheNode<T>* cacheNodeForId( typename T::Id id ) const
+private:
+ EntityCacheNode<T> *cacheNodeForId(typename T::Id id) const
{
- for ( typename QQueue::const_iterator it = mCache.constBegin(), endIt = mCache.constEnd();
- it != endIt; ++it ) {
- if ( ( *it )->entity.id() == id ) {
- return *it;
+ for (typename QQueue::const_iterator it = mCache.constBegin(), endIt = mCache.constEnd();
+ it != endIt; ++it) {
+ if ((*it)->entity.id() == id) {
+ return *it;
+ }
}
- }
- return 0;
+ return 0;
}
- void processResult( KJob* job )
+ void processResult(KJob *job)
{
- // Error handling?
- typename T::Id id = job->property( "EntityCacheNode" ).template value<typename T::Id>();
- EntityCacheNode<T> *node = cacheNodeForId( id );
- if ( !node ) {
- return; // got replaced in the meantime
- }
+ // Error handling?
+ typename T::Id id = job->property("EntityCacheNode").template value<typename T::Id>();
+ EntityCacheNode<T> *node = cacheNodeForId(id);
+ if (!node) {
+ return; // got replaced in the meantime
+ }
- node->pending = false;
- extractResult( node, job );
- // make sure we find this node again if something went wrong here,
- // most likely the object got deleted from the server in the meantime
- if ( node->entity.id() != id ) {
- // TODO: Recursion guard? If this is called with non-existing ids, the if will never be true!
- node->entity.setId( id );
- node->invalid = true;
- }
- emit dataAvailable();
+ node->pending = false;
+ extractResult(node, job);
+ // make sure we find this node again if something went wrong here,
+ // most likely the object got deleted from the server in the meantime
+ if (node->entity.id() != id) {
+ // TODO: Recursion guard? If this is called with non-existing ids, the if will never be true!
+ node->entity.setId(id);
+ node->invalid = true;
+ }
+ emit dataAvailable();
}
- void extractResult( EntityCacheNode<T>* node, KJob* job ) const;
+ void extractResult(EntityCacheNode<T> *node, KJob *job) const;
- inline FetchJob* createFetchJob( typename T::Id id, const FetchScope &scope )
+ inline FetchJob *createFetchJob(typename T::Id id, const FetchScope &scope)
{
- FetchJob *fetch = new FetchJob( T( id ), session );
- fetch->setFetchScope( scope );
- return fetch;
+ FetchJob *fetch = new FetchJob(T(id), session);
+ fetch->setFetchScope(scope);
+ return fetch;
}
/** Tries to reduce the cache size until at least one more object fits in. */
void shrinkCache()
{
- while ( mCache.size() >= mCapacity && !mCache.first()->pending ) {
- delete mCache.dequeue();
- }
+ while (mCache.size() >= mCapacity && !mCache.first()->pending) {
+ delete mCache.dequeue();
+ }
}
- private:
- QQueue mCache;
+private:
+ QQueue mCache;
int mCapacity;
};
-template<> inline void EntityCache::extractResult( EntityCacheNode<Collection>* node, KJob *job ) const
+template<> inline void EntityCache::extractResult(EntityCacheNode<Collection> *node, KJob *job) const
{
- CollectionFetchJob* fetch = qobject_cast( job );
- Q_ASSERT( fetch );
- if ( fetch->collections().isEmpty() ) {
- node->entity = Collection();
- } else {
- node->entity = fetch->collections().first();
- }
+ CollectionFetchJob *fetch = qobject_cast(job);
+ Q_ASSERT(fetch);
+ if (fetch->collections().isEmpty()) {
+ node->entity = Collection();
+ } else {
+ node->entity = fetch->collections().first();
+ }
}
-template<> inline void EntityCache- ::extractResult( EntityCacheNode<Item>* node, KJob *job ) const
+template<> inline void EntityCache
- ::extractResult(EntityCacheNode<Item> *node, KJob *job) const
{
- ItemFetchJob* fetch = qobject_cast( job );
- Q_ASSERT( fetch );
- if ( fetch->items().isEmpty() ) {
- node->entity = Item();
- } else {
- node->entity = fetch->items().first();
- }
+ ItemFetchJob *fetch = qobject_cast(job);
+ Q_ASSERT(fetch);
+ if (fetch->items().isEmpty()) {
+ node->entity = Item();
+ } else {
+ node->entity = fetch->items().first();
+ }
}
-template<> inline void EntityCache::extractResult( EntityCacheNode<Tag>* node, KJob* job) const
+template<> inline void EntityCache::extractResult(EntityCacheNode<Tag> *node, KJob *job) const
{
- TagFetchJob *fetch = qobject_cast( job );
- Q_ASSERT( fetch );
- if ( fetch->tags().isEmpty() ) {
- node->entity = Tag();
- } else {
- node->entity = fetch->tags().first();
- }
+ TagFetchJob *fetch = qobject_cast(job);
+ Q_ASSERT(fetch);
+ if (fetch->tags().isEmpty()) {
+ node->entity = Tag();
+ } else {
+ node->entity = fetch->tags().first();
+ }
}
-
-template<> inline CollectionFetchJob* EntityCache::createFetchJob( Collection::Id id, const CollectionFetchScope &scope )
+template<> inline CollectionFetchJob *EntityCache::createFetchJob(Collection::Id id, const CollectionFetchScope &scope)
{
- CollectionFetchJob *fetch = new CollectionFetchJob( Collection( id ), CollectionFetchJob::Base, session );
- fetch->setFetchScope( scope );
- return fetch;
+ CollectionFetchJob *fetch = new CollectionFetchJob(Collection(id), CollectionFetchJob::Base, session);
+ fetch->setFetchScope(scope);
+ return fetch;
}
-
typedef EntityCache CollectionCache;
typedef EntityCache
- ItemCache;
typedef EntityCache TagCache;
@@ -274,239 +282,252 @@
template <typename T>
struct EntityListCacheNode
{
- EntityListCacheNode() : pending( false ), invalid( false ) {}
- EntityListCacheNode( typename T::Id id ) : entity(id), pending( true ), invalid( false ) {}
+ EntityListCacheNode()
+ : pending(false)
+ , invalid(false)
+ {
+ }
+ EntityListCacheNode(typename T::Id id)
+ : entity(id)
+ , pending(true)
+ , invalid(false)
+ {
+ }
- T entity;
- bool pending;
- bool invalid;
+ T entity;
+ bool pending;
+ bool invalid;
};
template
class EntityListCache : public EntityCacheBase
{
public:
- typedef FetchScope_ FetchScope;
+ typedef FetchScope_ FetchScope;
+
+ explicit EntityListCache(int maxCapacity, Session *session = 0, QObject *parent = 0)
+ : EntityCacheBase(session, parent)
+ , mCapacity(maxCapacity)
+ {
+ }
+
+ ~EntityListCache()
+ {
+ qDeleteAll(mCache);
+ }
+
+ /** Returns the cached object if available, an empty instance otherwise. */
+ typename T::List retrieve(const QListEntity::Id &ids) const
+ {
+ typename T::List list;
+
+ foreach (Entity::Id id, ids) {
+ EntityListCacheNode<T> *node = mCache.value(id);
+ if (!node || node->pending || node->invalid) {
+ return typename T::List();
+ }
+
+ list << node->entity;
+ }
+
+ return list;
+ }
+
+ /** Requests the object to be cached if it is not yet in the cache. @returns @c true if it was in the cache already. */
+ bool ensureCached(const QListEntity::Id &ids, const FetchScope &scope)
+ {
+ QListEntity::Id toRequest;
+ bool result = true;
+
+ foreach (Entity::Id id, ids) {
+ EntityListCacheNode<T> *node = mCache.value(id);
+ if (!node) {
+ toRequest << id;
+ continue;
+ }
+
+ if (node->pending) {
+ result = false;
+ }
+ }
+
+ if (!toRequest.isEmpty()) {
+ request(toRequest, scope, ids);
+ return false;
+ }
+
+ return result;
+ }
+
+ /** Marks the cache entry as invalid, use in case the object has been deleted on the server. */
+ void invalidate(const QListEntity::Id &ids)
+ {
+ foreach (Entity::Id id, ids) {
+ EntityListCacheNode<T> *node = mCache.value(id);
+ if (node) {
+ node->invalid = true;
+ }
+ }
+ }
+
+ /** Triggers a re-fetching of a cache entry, use if it has changed on the server. */
+ void update(const QListEntity::Id &ids, const FetchScope &scope)
+ {
+ QListEntity::Id toRequest;
+
+ foreach (Entity::Id id, ids) {
+ EntityListCacheNode<T> *node = mCache.value(id);
+ if (node) {
+ mCache.remove(id);
+ if (node->pending) {
+ toRequest << id;
+ }
+ delete node;
+ }
+ }
+
+ if (!toRequest.isEmpty()) {
+ request(toRequest, scope);
+ }
+ }
+
+ /**
+ Asks the cache to retrieve @p id. @p request is used as
+ a token to indicate which request has been finished in the
+ dataAvailable() signal.
+ */
+ void request(const QListEntity::Id &ids, const FetchScope &scope, const QListEntity::Id &preserveIds = QListEntity::Id())
+ {
+ Q_ASSERT(isNotRequested(ids));
+ shrinkCache(preserveIds);
+ foreach (Entity::Id id, ids) {
+ EntityListCacheNode<T> *node = new EntityListCacheNode<T>(id);
+ mCache.insert(id, node);
+ }
+ FetchJob *job = createFetchJob(ids, scope);
+ job->setProperty("EntityListCacheIds", QVariant::fromValue< QListEntity::Id >(ids));
+ connect(job, SIGNAL(result(KJob*)), SLOT(processResult(KJob*)));
+ }
- explicit EntityListCache( int maxCapacity, Session *session = 0, QObject *parent = 0 ) :
- EntityCacheBase( session, parent ),
- mCapacity( maxCapacity )
- {}
-
- ~EntityListCache()
- {
- qDeleteAll( mCache );
- }
-
- /** Returns the cached object if available, an empty instance otherwise. */
- typename T::List retrieve( const QListEntity::Id &ids ) const
- {
- typename T::List list;
-
- foreach( Entity::Id id, ids ) {
- EntityListCacheNode<T>* node = mCache.value( id );
- if ( !node || node->pending || node->invalid )
- return typename T::List();
-
- list << node->entity;
- }
-
- return list;
- }
-
- /** Requests the object to be cached if it is not yet in the cache. @returns @c true if it was in the cache already. */
- bool ensureCached( const QListEntity::Id &ids, const FetchScope &scope )
- {
- QListEntity::Id toRequest;
- bool result = true;
-
- foreach( Entity::Id id, ids ) {
- EntityListCacheNode<T>* node = mCache.value( id );
- if ( !node ) {
- toRequest << id;
- continue;
- }
-
- if ( node->pending )
- result = false;
- }
-
- if ( !toRequest.isEmpty() ) {
- request( toRequest, scope, ids );
- return false;
- }
-
- return result;
- }
-
- /** Marks the cache entry as invalid, use in case the object has been deleted on the server. */
- void invalidate( const QListEntity::Id &ids )
- {
- foreach( Entity::Id id, ids ) {
- EntityListCacheNode<T>* node = mCache.value( id );
- if ( node ) {
- node->invalid = true;
- }
- }
- }
-
- /** Triggers a re-fetching of a cache entry, use if it has changed on the server. */
- void update( const QListEntity::Id &ids, const FetchScope &scope )
- {
- QListEntity::Id toRequest;
-
- foreach( Entity::Id id, ids ) {
- EntityListCacheNode<T>* node = mCache.value( id );
- if ( node ) {
- mCache.remove( id );
- if ( node->pending ) {
- toRequest << id;
- }
- delete node;
- }
- }
-
- if ( !toRequest.isEmpty() ) {
- request( toRequest, scope );
- }
- }
-
- /**
- Asks the cache to retrieve @p id. @p request is used as
- a token to indicate which request has been finished in the
- dataAvailable() signal.
- */
- void request( const QListEntity::Id &ids, const FetchScope &scope, const QListEntity::Id &preserveIds = QListEntity::Id() )
- {
- Q_ASSERT( isNotRequested( ids ) );
- shrinkCache( preserveIds );
- foreach( Entity::Id id, ids ) {
- EntityListCacheNode<T> *node = new EntityListCacheNode<T>( id );
- mCache.insert( id, node );
- }
- FetchJob* job = createFetchJob( ids, scope );
- job->setProperty( "EntityListCacheIds", QVariant::fromValue< QListEntity::Id >( ids ) );
- connect( job, SIGNAL(result(KJob*)), SLOT(processResult(KJob*)) );
- }
-
- bool isNotRequested( const QListEntity::Id &ids ) const
- {
- foreach( Entity::Id id, ids ) {
- if ( mCache.contains( id ) )
- return false;
- }
-
- return true;
- }
-
- /** Object is available in the cache and can be retrieved. */
- bool isCached( const QListEntity::Id &ids ) const
- {
- foreach( Entity::Id id, ids ) {
- EntityListCacheNode<T>* node = mCache.value( id );
- if ( !node || node->pending ) {
- return false;
- }
+ bool isNotRequested(const QListEntity::Id &ids) const
+ {
+ foreach (Entity::Id id, ids) {
+ if (mCache.contains(id)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /** Object is available in the cache and can be retrieved. */
+ bool isCached(const QListEntity::Id &ids) const
+ {
+ foreach (Entity::Id id, ids) {
+ EntityListCacheNode<T> *node = mCache.value(id);
+ if (!node || node->pending) {
+ return false;
+ }
+ }
+ return true;
}
- return true;
- }
private:
- /** Tries to reduce the cache size until at least one more object fits in. */
- void shrinkCache( const QListEntity::Id &preserveIds )
- {
- typename
- QHash< Entity::Id, EntityListCacheNode<T>* >::Iterator iter = mCache.begin();
- while ( iter != mCache.end() && mCache.size() >= mCapacity ) {
- if ( iter.value()->pending || preserveIds.contains( iter.key() ) ) {
- ++iter;
- continue;
- }
-
- delete iter.value();
- iter = mCache.erase( iter );
- }
- }
-
- inline FetchJob* createFetchJob( const QListEntity::Id &ids, const FetchScope &scope )
- {
- FetchJob *job = new FetchJob( ids, session );
- job->setFetchScope( scope );
- return job;
- }
-
- void processResult( KJob* job )
- {
- const QListEntity::Id ids = job->property( "EntityListCacheIds" ).value< QListEntity::Id >();
-
- typename T::List entities;
- extractResults( job, entities );
-
- foreach( Entity::Id id, ids ) {
- EntityListCacheNode<T> *node = mCache.value( id );
- if ( !node ) {
- continue; // got replaced in the meantime
- }
-
- node->pending = false;
-
- T result;
- typename T::List::Iterator iter = entities.begin();
- for ( ; iter != entities.end(); ++iter ) {
- if ( (*iter).id() == id ) {
- result = *iter;
- entities.erase( iter );
- break;
- }
- }
-
- // make sure we find this node again if something went wrong here,
- // most likely the object got deleted from the server in the meantime
- if ( !result.isValid() ) {
- node->entity = T( id );
- node->invalid = true;
- } else {
- node->entity = result;
- }
+ /** Tries to reduce the cache size until at least one more object fits in. */
+ void shrinkCache(const QListEntity::Id &preserveIds)
+ {
+ typename
+ QHash< Entity::Id, EntityListCacheNode<T> *>::Iterator iter = mCache.begin();
+ while (iter != mCache.end() && mCache.size() >= mCapacity) {
+ if (iter.value()->pending || preserveIds.contains(iter.key())) {
+ ++iter;
+ continue;
+ }
+
+ delete iter.value();
+ iter = mCache.erase(iter);
+ }
}
- emit dataAvailable();
- }
+ inline FetchJob *createFetchJob(const QListEntity::Id &ids, const FetchScope &scope)
+ {
+ FetchJob *job = new FetchJob(ids, session);
+ job->setFetchScope(scope);
+ return job;
+ }
+
+ void processResult(KJob *job)
+ {
+ const QListEntity::Id ids = job->property("EntityListCacheIds").value< QListEntity::Id >();
+
+ typename T::List entities;
+ extractResults(job, entities);
+
+ foreach (Entity::Id id, ids) {
+ EntityListCacheNode<T> *node = mCache.value(id);
+ if (!node) {
+ continue; // got replaced in the meantime
+ }
+
+ node->pending = false;
+
+ T result;
+ typename T::List::Iterator iter = entities.begin();
+ for (; iter != entities.end(); ++iter) {
+ if ((*iter).id() == id) {
+ result = *iter;
+ entities.erase(iter);
+ break;
+ }
+ }
+
+ // make sure we find this node again if something went wrong here,
+ // most likely the object got deleted from the server in the meantime
+ if (!result.isValid()) {
+ node->entity = T(id);
+ node->invalid = true;
+ } else {
+ node->entity = result;
+ }
+ }
- void extractResults( KJob* job, typename T::List &entities ) const;
+ emit dataAvailable();
+ }
+
+ void extractResults(KJob *job, typename T::List &entities) const;
private:
- QHash< Entity::Id, EntityListCacheNode<T>* > mCache;
- int mCapacity;
+ QHash< Entity::Id, EntityListCacheNode<T> *> mCache;
+ int mCapacity;
};
-template<> inline void EntityListCache::extractResults( KJob *job, Collection::List &collections ) const
+template<> inline void EntityListCache::extractResults(KJob *job, Collection::List &collections) const
{
- CollectionFetchJob* fetch = qobject_cast( job );
- Q_ASSERT( fetch );
- collections = fetch->collections();
+ CollectionFetchJob *fetch = qobject_cast(job);
+ Q_ASSERT(fetch);
+ collections = fetch->collections();
}
-template<> inline void EntityListCache
- ::extractResults( KJob *job, Item::List &items ) const
+template<> inline void EntityListCache
- ::extractResults(KJob *job, Item::List &items) const
{
- ItemFetchJob* fetch = qobject_cast( job );
- Q_ASSERT( fetch );
- items = fetch->items();
+ ItemFetchJob *fetch = qobject_cast(job);
+ Q_ASSERT(fetch);
+ items = fetch->items();
}
-template<> inline void EntityListCache::extractResults( KJob *job, Tag::List &tags ) const
+template<> inline void EntityListCache::extractResults(KJob *job, Tag::List &tags) const
{
- TagFetchJob* fetch = qobject_cast( job );
- Q_ASSERT( fetch );
- tags = fetch->tags();
+ TagFetchJob *fetch = qobject_cast(job);
+ Q_ASSERT(fetch);
+ tags = fetch->tags();
}
template<>
-inline CollectionFetchJob* EntityListCache::createFetchJob( const QListEntity::Id &ids, const CollectionFetchScope &scope )
+inline CollectionFetchJob *EntityListCache::createFetchJob(const QListEntity::Id &ids, const CollectionFetchScope &scope)
{
- CollectionFetchJob *fetch = new CollectionFetchJob( ids, CollectionFetchJob::Base, session );
- fetch->setFetchScope( scope );
- return fetch;
+ CollectionFetchJob *fetch = new CollectionFetchJob(ids, CollectionFetchJob::Base, session);
+ fetch->setFetchScope(scope);
+ return fetch;
}
typedef EntityListCache CollectionListCache;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/itemsearchjob.cpp new/kdepimlibs-4.13.1/akonadi/itemsearchjob.cpp
--- old/kdepimlibs-4.13.0/akonadi/itemsearchjob.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/itemsearchjob.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -60,6 +60,22 @@
}
}
+ QString jobDebuggingString() const /*Q_DECL_OVERRIDE*/ {
+ QStringList flags;
+ if ( mRecursive ) {
+ flags.append( QLatin1String( "recursive" ) );
+ }
+ if ( mRemote ) {
+ flags.append( QLatin1String( "remote" ) );
+ }
+ if ( mCollections.isEmpty() ) {
+ flags.append( QLatin1String( "all collections" ) );
+ } else {
+ flags.append( QString::fromLatin1( "%1 collections" ).arg( mCollections.count() ) );
+ }
+ return QString::fromLatin1( "%1,json=%2" ).arg( flags.join(QLatin1String(","))).arg(QString::fromUtf8(mQuery.toJSON()));
+ }
+
Q_DECLARE_PUBLIC( ItemSearchJob )
SearchQuery mQuery;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/recentcollectionaction.cpp new/kdepimlibs-4.13.1/akonadi/recentcollectionaction.cpp
--- old/kdepimlibs-4.13.0/akonadi/recentcollectionaction.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/recentcollectionaction.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -30,7 +30,7 @@
static int s_maximumRecentCollection = 10;
-RecentCollectionAction::RecentCollectionAction(const QAbstractItemModel *model, QMenu *menu)
+RecentCollectionAction::RecentCollectionAction(Akonadi::StandardActionManager::Type type, const Akonadi::Collection::List &selectedCollectionsList, const QAbstractItemModel *model, QMenu *menu)
:QObject( menu ),
mMenu( menu ),
mModel( model ),
@@ -42,20 +42,27 @@
mListRecentCollection = group.readEntry( "Collections", QStringList() );
mRecentAction = mMenu->addAction( i18n( "Recent Folder" ) );
mMenu->addSeparator();
- fillRecentCollection();
+ fillRecentCollection(type, selectedCollectionsList);
}
RecentCollectionAction::~RecentCollectionAction()
{
}
-void RecentCollectionAction::fillRecentCollection()
+bool RecentCollectionAction::clear()
{
- delete mRecentAction->menu();
- if ( mListRecentCollection.isEmpty() ) {
- mRecentAction->setEnabled( false );
- return;
- }
+ delete mRecentAction->menu();
+ if (mListRecentCollection.isEmpty()) {
+ mRecentAction->setEnabled(false);
+ return true;
+ }
+ return false;
+}
+
+void RecentCollectionAction::fillRecentCollection(Akonadi::StandardActionManager::Type type, const Akonadi::Collection::List &selectedCollectionsList)
+{
+ if (clear())
+ return;
QMenu* popup = new QMenu;
mRecentAction->setMenu( popup );
@@ -66,6 +73,10 @@
const QModelIndex index = Akonadi::EntityTreeModel::modelIndexForCollection( mModel, Akonadi::Collection( mListRecentCollection.at( i ).toLongLong() ) );
const Akonadi::Collection collection = mModel->data( index, Akonadi::CollectionModel::CollectionRole ).valueAkonadi::Collection();
if ( index.isValid() ) {
+ const bool collectionIsSelected = selectedCollectionsList.contains(collection);
+ if (type == Akonadi::StandardActionManager::MoveCollectionToMenu && collectionIsSelected) {
+ continue;
+ }
const bool canCreateNewItems = (collection.rights() & Collection::CanCreateItem);
QAction *action = popup->addAction( actionName( index ) );
const QIcon icon = mModel->data( index, Qt::DecorationRole ).value<QIcon>();
@@ -95,7 +106,7 @@
}
}
-void RecentCollectionAction::addRecentCollection( Akonadi::Collection::Id id )
+void RecentCollectionAction::addRecentCollection( StandardActionManager::Type type, Akonadi::Collection::Id id )
{
const QString newCollectionID = QString::number( id );
if ( mListRecentCollection.isEmpty() ||
@@ -104,7 +115,7 @@
mListRecentCollection.removeFirst();
mListRecentCollection.append( newCollectionID );
writeConfig();
- fillRecentCollection();
+ fillRecentCollection(type, Akonadi::Collection::List());
}
}
@@ -119,7 +130,7 @@
{
mListRecentCollection.clear();
writeConfig();
- fillRecentCollection();
+ clear();
}
#include "moc_recentcollectionaction_p.cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/recentcollectionaction_p.h new/kdepimlibs-4.13.1/akonadi/recentcollectionaction_p.h
--- old/kdepimlibs-4.13.0/akonadi/recentcollectionaction_p.h 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/recentcollectionaction_p.h 2014-05-08 09:26:48.000000000 +0200
@@ -22,7 +22,7 @@
#include <QModelIndex>
#include
#include
-
+#include
class QMenu;
class QAbstractItemModel;
class QAction;
@@ -41,7 +41,7 @@
/**
* Creates a new collection recent action
*/
- explicit RecentCollectionAction(const QAbstractItemModel *model, QMenu *menu);
+ explicit RecentCollectionAction(Akonadi::StandardActionManager::Type type, const Akonadi::Collection::List &selectedCollectionsList, const QAbstractItemModel *model, QMenu *menu);
/**
* Destroys the collection recent action.
*/
@@ -50,14 +50,15 @@
/**
* Add new collection. Will create a new item.
*/
- void addRecentCollection( Akonadi::Collection::Id id);
+ void addRecentCollection(StandardActionManager::Type type, Akonadi::Collection::Id id);
void cleanRecentCollection();
private:
void writeConfig();
- void fillRecentCollection();
+ void fillRecentCollection(Akonadi::StandardActionManager::Type type, const Akonadi::Collection::List &selectedCollectionsList);
QString actionName(QModelIndex index);
+ bool clear();
private:
QStringList mListRecentCollection;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/standardactionmanager.cpp new/kdepimlibs-4.13.1/akonadi/standardactionmanager.cpp
--- old/kdepimlibs-4.13.0/akonadi/standardactionmanager.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/standardactionmanager.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -341,7 +341,7 @@
const Akonadi::Collection::List selectedCollectionsList = selectedCollections();
const StandardActionManager::Type type = static_castStandardActionManager::Type( menu->property( "actionType" ).toInt() );
- QWeakPointer<RecentCollectionAction> recentCollection = new RecentCollectionAction( collectionSelectionModel->model(), menu );
+ QWeakPointer<RecentCollectionAction> recentCollection = new RecentCollectionAction( type, selectedCollectionsList,collectionSelectionModel->model(), menu );
mRecentCollectionsMenu.insert( type, recentCollection );
const QSet<QString> mimeTypes = mimeTypesOfSelection( type );
fillFoldersMenu( selectedCollectionsList,
@@ -360,7 +360,7 @@
type ==MoveCollectionToMenu )
{
- QWeakPointer<RecentCollectionAction> recentCollection = new RecentCollectionAction( collectionSelectionModel->model(), menu );
+ new RecentCollectionAction( type, Akonadi::Collection::List(), collectionSelectionModel->model(), menu );
Collection::List selectedCollectionsList = selectedCollections();
const QSet<QString> mimeTypes = mimeTypesOfSelection( type );
fillFoldersMenu( selectedCollectionsList,
@@ -1189,7 +1189,7 @@
while (item.hasNext()) {
item.next();
if ( item.value().data() ) {
- item.value().data()->addRecentCollection( id );
+ item.value().data()->addRecentCollection( item.key(), id );
}
}
}
@@ -1325,6 +1325,9 @@
const bool readOnly = !isWritableTargetCollectionForMimeTypes( collection, mimeTypes, type );
const bool collectionIsSelected = selectedCollectionsList.contains( collection );
+ if (type == MoveCollectionToMenu && collectionIsSelected) {
+ continue;
+ }
QString label = model->data( index ).toString();
label.replace( QLatin1String( "&" ), QLatin1String( "&&" ) );
@@ -1341,11 +1344,13 @@
fillFoldersMenu( selectedCollectionsList, mimeTypes, type, popup, model, index );
- if ( !readOnly ) {
- popup->addSeparator();
-
- QAction *action = popup->addAction( moveAction ? i18n( "Move to This Folder" ) : i18n( "Copy to This Folder" ) );
- action->setData( QVariant::fromValue<QModelIndex>( index ) );
+ if (!(type == CopyCollectionToMenu && collectionIsSelected)) {
+ if ( !readOnly ) {
+ popup->addSeparator();
+
+ QAction *action = popup->addAction( moveAction ? i18n( "Move to This Folder" ) : i18n( "Copy to This Folder" ) );
+ action->setData( QVariant::fromValue<QModelIndex>( index ) );
+ }
}
menu->addMenu( popup );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/tag.cpp new/kdepimlibs-4.13.1/akonadi/tag.cpp
--- old/kdepimlibs-4.13.0/akonadi/tag.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/tag.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -58,6 +58,7 @@
d(new Private)
{
d->gid = name.toUtf8();
+ setName(name);
d->type = PLAIN;
}
@@ -164,7 +165,7 @@
{
const TagAttribute* const attr = attribute<TagAttribute>();
const QString displayName = attr ? attr->displayName() : QString();
- return !displayName.isEmpty() ? displayName : QString::fromLatin1(d->gid);
+ return !displayName.isEmpty() ? displayName : QString::fromUtf8(d->gid);
}
void Tag::setParent(const Tag &parent)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/tag.h new/kdepimlibs-4.13.1/akonadi/tag.h
--- old/kdepimlibs-4.13.0/akonadi/tag.h 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/tag.h 2014-05-08 09:26:48.000000000 +0200
@@ -64,7 +64,7 @@
*/
explicit Tag(const QString &name);
- Tag(const Tag &);
+ Tag(const Tag &other);
~Tag();
@@ -90,19 +90,19 @@
*/
Id id() const;
- void setGid(const QByteArray &) const;
+ void setGid(const QByteArray &gid) const;
QByteArray gid() const;
- void setRemoteId(const QByteArray &) const;
+ void setRemoteId(const QByteArray &remoteId) const;
QByteArray remoteId() const;
- void setType(const QByteArray &) const;
+ void setType(const QByteArray &type) const;
QByteArray type() const;
- void setName(const QString &);
+ void setName(const QString &name);
QString name() const;
- void setParent(const Tag &);
+ void setParent(const Tag &parent);
Tag parent() const;
bool isValid() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/tageditwidget.cpp new/kdepimlibs-4.13.1/akonadi/tageditwidget.cpp
--- old/kdepimlibs-4.13.0/akonadi/tageditwidget.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/tageditwidget.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -107,7 +107,7 @@
void TagEditWidget::Private::onRowsInserted(const QModelIndex &parent, int start, int end)
{
- select(parent, start, end, QItemSelectionModel::QItemSelectionModel::Select);
+ select(parent, start, end, QItemSelectionModel::Select);
}
void TagEditWidget::Private::slotCreateTag()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/tagfetchjob.h new/kdepimlibs-4.13.1/akonadi/tagfetchjob.h
--- old/kdepimlibs-4.13.0/akonadi/tagfetchjob.h 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/tagfetchjob.h 2014-05-08 09:26:48.000000000 +0200
@@ -43,7 +43,7 @@
TagFetchJob(const Tag::List &tags, QObject *parent = 0);
TagFetchJob(const QListTag::Id &ids, QObject *parent = 0);
- void setFetchScope(const TagFetchScope &);
+ void setFetchScope(const TagFetchScope &fetchScope);
TagFetchScope &fetchScope();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/akonadi/tests/testsearchplugin/akonaditestsearchplugin.desktop new/kdepimlibs-4.13.1/akonadi/tests/testsearchplugin/akonaditestsearchplugin.desktop
--- old/kdepimlibs-4.13.0/akonadi/tests/testsearchplugin/akonaditestsearchplugin.desktop 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/akonadi/tests/testsearchplugin/akonaditestsearchplugin.desktop 2014-05-08 09:26:48.000000000 +0200
@@ -27,6 +27,7 @@
Name[sr@ijekavianlatin]=Probni priključak za pretragu nad Akonadijem
Name[sr@latin]=Probni priključak za pretragu nad Akonadijem
Name[sv]=Akonadi test-sökinsticksprogram
+Name[tr]=Akonadi Test Arama Eklentisi
Name[uk]=Тестовий додаток пошуку Akonadi
Name[x-test]=xxAkonadi Test Search Pluginxx
Name[zh_TW]=Akonadi 測試搜尋外掛程式
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/kabc/plugins/dir/dir.desktop new/kdepimlibs-4.13.1/kabc/plugins/dir/dir.desktop
--- old/kdepimlibs-4.13.0/kabc/plugins/dir/dir.desktop 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/kabc/plugins/dir/dir.desktop 2014-05-08 09:26:48.000000000 +0200
@@ -53,7 +53,7 @@
Name[zh_TW]=資料夾
Comment=Provides access to contacts, each stored in a single file, in a given folder. Supports standard vCard file and other formats depending on availability of plugins.
Comment[bs]=Pruža pristup kontaktima skladištenim u poјedinačnim datotekama u datom direktoriju. Podržava standardne VCard datoteke i druge formate, prema raspoloživim priključcima.
-Comment[ca]=Proporciona l'accés als contactes, cadascun emmagatzemat en un fitxer individual, en una carpeta proporcionada. Accepta els fitxers estàndard vCard i altres formats depenent de la disponibilitat dels connectors.
+Comment[ca]=Proporciona accés als contactes, cadascun emmagatzemat en un fitxer individual, en una carpeta proporcionada. Accepta els fitxers estàndard vCard i altres formats depenent de la disponibilitat dels connectors.
Comment[ca@valencia]=Proporciona l'accés als contactes, cadascun emmagatzemat en un fitxer individual, en una carpeta proporcionada. Accepta els fitxers estàndard vCard i altres formats depenent de la disponibilitat dels connectors.
Comment[cs]=Poskytuje přístup ke kontaktům, každém uloženém v jednom souboru v dané složce. Podporuje standardní soubory s vizitkou a jiným formátům podle dostupných modulů.
Comment[da]=Giver adgang til kontakter, hver lagret i en enkelt fil, i en given mappe. Understøtter standard vCard-fil og andre formater afhængigt af tilgængeligheden af plugins.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/kabc/plugins/file/file.desktop new/kdepimlibs-4.13.1/kabc/plugins/file/file.desktop
--- old/kdepimlibs-4.13.0/kabc/plugins/file/file.desktop 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/kabc/plugins/file/file.desktop 2014-05-08 09:26:48.000000000 +0200
@@ -58,7 +58,7 @@
Name[zh_TW]=檔案
Comment=Provides access to contacts stored in a single local file. Supports standard vCard files and other formats depending on available plugins.
Comment[bs]=Pruža pristup kontaktima skladištenim u јednoj lokalnoj datoteci. Podržava standardne VCard faјlove i druge formate, prema raspoloživim priključcima.
-Comment[ca]=Proporciona l'accés als contactes emmagatzemats en un fitxer individual. Accepta els fitxers estàndard vCard i altres formats, depenent dels connectors disponibles.
+Comment[ca]=Proporciona accés als contactes emmagatzemats en un fitxer individual. Accepta els fitxers estàndard vCard i altres formats, depenent dels connectors disponibles.
Comment[ca@valencia]=Proporciona l'accés als contactes emmagatzemats en un fitxer individual. Accepta els fitxers estàndard vCard i altres formats, depenent dels connectors disponibles.
Comment[cs]=Poskytuje přístup ke kontaktům uloženým v jednom lokálním souboru. Podporuje standardní soubory s vizitkou a jiným formátům podle dostupných modulů.
Comment[da]=Giver adgang til kontakter, hver lagret i en enkelt fil. Understøtter standard vCard-fil og andre formater afhængigt af tilgængelige af plugins.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/kabc/plugins/ldapkio/ldapkio.desktop new/kdepimlibs-4.13.1/kabc/plugins/ldapkio/ldapkio.desktop
--- old/kdepimlibs-4.13.0/kabc/plugins/ldapkio/ldapkio.desktop 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/kabc/plugins/ldapkio/ldapkio.desktop 2014-05-08 09:26:48.000000000 +0200
@@ -58,7 +58,7 @@
Name[zh_TW]=LDAP
Comment=Provides access to contacts stored on a LDAP directory server
Comment[bs]=Pruža pristup kontaktima skladištenim na serveru LDAP imenika
-Comment[ca]=Proporciona l'accés als contactes emmagatzemats en un servidor de directori LDAP
+Comment[ca]=Proporciona accés als contactes emmagatzemats en un servidor de directori LDAP
Comment[ca@valencia]=Proporciona l'accés als contactes emmagatzemats en un servidor de directori LDAP
Comment[cs]=Poskytuje přístup ke kontaktům uloženým v adresářovém serveru LDAP
Comment[da]=Giver adgang til kontakter lagret på en LDAP directory-server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/kabc/plugins/net/net.desktop new/kdepimlibs-4.13.1/kabc/plugins/net/net.desktop
--- old/kdepimlibs-4.13.0/kabc/plugins/net/net.desktop 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/kabc/plugins/net/net.desktop 2014-05-08 09:26:48.000000000 +0200
@@ -58,7 +58,7 @@
Name[zh_TW]=網路
Comment=Provides access to contacts in remote files using KDE's network framework KIO. Supports standard vCard files and other formats depending on available plugins.
Comment[bs]=Pruža pristup kontaktima u udaljenim datotekama preko KDE-ovog mrežnog radnog okvira KIO. Podržava standardne VCard datoteke i druge formate, prema raspoloživim priključcima.
-Comment[ca]=Proporciona l'accés als contactes en fitxers remots usant la infraestructura KIO de xarxa del KDE. Accepta els fitxers estàndard vCard i altres formats, depenent dels connectors disponibles.
+Comment[ca]=Proporciona accés als contactes en fitxers remots usant la infraestructura KIO de xarxa del KDE. Accepta els fitxers estàndard vCard i altres formats, depenent dels connectors disponibles.
Comment[ca@valencia]=Proporciona l'accés als contactes en fitxers remots usant la infraestructura KIO de xarxa del KDE. Accepta els fitxers estàndard vCard i altres formats, depenent dels connectors disponibles.
Comment[cs]=Poskytuje přístup ke vzdáleným kontaktům pomocí síťového frameworku KDE KIO. Podporuje standardní soubory s vizitkou a jiným formátům podle dostupných modulů.
Comment[da]=Giver adgang til kontakter i eksterne filer med brug af KDE's netværks-framework KIO. Understøtter standard vCard-filer og andre formater afhængigt af tilgængelige plugins.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/kcal/localdir.desktop new/kdepimlibs-4.13.1/kcal/localdir.desktop
--- old/kdepimlibs-4.13.0/kcal/localdir.desktop 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/kcal/localdir.desktop 2014-05-08 09:26:48.000000000 +0200
@@ -54,7 +54,7 @@
Name[zh_TW]=本地端目錄裡的行事曆
Comment=Provides access to calendar items, each stored in a single file, in a given directory
Comment[bs]=Pruža pristup kalendarskim stavkama, skladištenim u poјedinačnim faјlovima u datoј fascikli
-Comment[ca]=Proporciona l'accés als elements d'un calendari, cadascun emmagatzemat en un fitxer individual, en un directori proporcionat
+Comment[ca]=Proporciona accés als elements d'un calendari, cadascun emmagatzemat en un fitxer individual, en un directori proporcionat
Comment[ca@valencia]=Proporciona l'accés als elements d'un calendari, cadascun emmagatzemat en un fitxer individual, en un directori proporcionat
Comment[cs]=Poskytuje přístup k položkám kalendáře, každé uložené v jednom souboru v daném adresáři
Comment[da]=Giver adgang til kalenderelementer, hver lagret i en enkelt fil, i en given mappe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/kholidays/holidays/plan2/holiday_gr_el new/kdepimlibs-4.13.1/kholidays/holidays/plan2/holiday_gr_el
--- old/kdepimlibs-4.13.0/kholidays/holidays/plan2/holiday_gr_el 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/kholidays/holidays/plan2/holiday_gr_el 2014-05-08 09:26:48.000000000 +0200
@@ -4,60 +4,64 @@
:: Language: Greek
::
:: Author: capthookb
+:: Dimitrios Glentadakis
+:: Marios Andreopoulos
+:: Updated: 2014-04-25
::
-:: Updated:
-::
-:: Source:
-::
+:: Source: http://www.eortologio.gr/index_uk.php
+:: http://www.argies.gr/
:: Metadata
country "GR"
language "el"
-:name "optional - defaults to country name"
-:description "(please add description in source language) National holiday file for Greece"
+: "National holiday file for Greece"
+:description "Εορτές και αργίες στην Ελλάδα"
-:: Public Holidays
-"Πρωτοχρονιά (Αργία)" weekend on january 1
-"Πρωτομαγιά (Αργία)" weekend on may 1
-"Επέτειος του ΟΧΙ (Αργία)" weekend on october 28
-"Επέτειος της επανάστασης του 1821 (Αργία)" weekend on march 25
-"Μεγάλη Παρασκευή (Αργία)" weekend on pascha minus 2 days
+:: Public Holidays - Δημόσιες αργίες
+"Πρωτοχρονιά" weekend on january 1
+"Άγια Θεοφάνεια" weekend on january 6
+"Πρωτομαγιά" weekend on may 1
+"Επέτειος του ΟΧΙ" weekend on october 28
+"Επέτειος της επανάστασης του 1821" weekend on march 25
+"Καθαρή Δευτέρα" weekend on pascha minus 48 days
+"Μεγάλη Παρασκευή" weekend on pascha minus 2 days
"Μεγάλο Σάββατο" weekend on pascha minus 1 days
"Το Άγιον Πάσχα" weekend on pascha
-"Δευτέρα του Πάσχα (Αργία)" weekend on pascha plus 1 days
-"Ιερεμίας" weekend on may 1
-"Κοίμηση της Θεοτόκου (Αργία)" weekend on august 15
+"Δευτέρα του Πάσχα" weekend on pascha plus 1 days
+"Αγίου Πνεύματος" weekend on pascha plus 50 days
+"Κοίμηση της Θεοτόκου" weekend on august 15
"Μαρία, Μάριος, Παναγιώτης, Παναγιώτα, Δέσποινα, Θεοτόκης" weekend on august 15
-"Σύναξις Θεοτόκου (Αργία)" weekend on december 26
-"Μανώλης, Εμμανουέλα, Δαβίδ" weekend on december 26
-"Χριστούγεννα (Αργία)" weekend on december 25
+"Χριστούγεννα" weekend on december 25
+"Σύναξις Θεοτόκου" weekend on december 26
-:: Religious
+:: Religious - Θρησκευτικές
:: Financial
:: Cultural
+: Mothers' day,
+"Γιορτή της μητέρας" on second sunday in may
+: Fathers' day
+"Γιορτή του πατέρα" on third sunday in june
-:: School
+:: School - Σχολικές Αργίες
+"Εξέγερση του Πολυτεχνείου (Σχολική Αργία)" on november 17
:: Daylight Saving
-"Αλλαγή ώρας (1 ώρα μπροστά) " on last sunday in march
-"Αλλαγή ώρας (1 ώρα πίσω)" on last sunday in october
+: summer
+"Θερινή ώρα (1 ώρα μπροστά)" on last sunday in march
+:winter
+"Χειμερινή ώρα (1 ώρα πίσω)" on last sunday in october
:: Seasons
-:: Name Days
-
-
-
:: To be sorted, it's all Greek to me :-)
-:: Ονομαστικές εορτές
+:: Name Days - Ονομαστικές εορτές
"Βασίλης, Βασιλική, Βασιλεία, Βίβιαν" on january 1
"Συλβέστρος" on january 2
"Θεώνη" on january 5
-"Άγια Θεοφάνεια (Αργία)" on january 6
"Φώτης, Φωτεινή, Θεοφάνης, Θεοφανία, Φανή, Ιορδάνης, Θεανώ, Ουρανία, Θεοπούλα" on january 6
"Ιωάννης, Ιωάννα, Πρόδρομος" on january 7
"Αγάθων, Δομινίκη, Παρθένα, Κύρος" on january 8
@@ -89,11 +93,12 @@
"Βλάσης, Βλασία, Θοδωρής, Θοδώρα, Αυγή " on february 11
"Μελέτης, Πλωτίνος" on february 12
"Πρίσκιλλα" on february 13
-"Βαλεντίνος, Βαλεντίνη, Παγκόσμια Ημέρα Ερωτευμένων" on february 14
+"Χλόη" on sunday after ([february 13])
+"Βαλεντίνος, Βαλεντίνη, ημέρα των ερωτευμένων" on february 14
"Ευσέβιος, Ευσεβία" on february 15
"Πάμφιλος, Παμφίλη, Σέλευκος, Σελεύκη" on february 16
"Λέων, Αγαπητός" on february 18
-"Φιλοθέη, Χλόη" on february 19
+"Φιλοθέη" on february 19
"Ανθούσα" on february 22
"Πολύκαρπος" on february 23
"Πορφύρης, Φωτεινή" on february 26
@@ -128,14 +133,16 @@
"Λεωνίδας, Λάζαρος" on april 15
"Βάϊος, Βάϊα, Δάφνη, Γαλήνη, Χιονία" on april 16
"Ναθαναήλ, Νέαρχος, Νιάρχος" on april 22
-"Αναστάσιος, Αναστασία, Λάμπρος, Λαμπρινή, Πασχάλης " on april 23
-"Γεώργιος, Γεωργία, Ελισάβετ, Αχιλλέας" on april 24
-"Μάρκος, Νίκη, Ραφαήλ" on april 25
+"Γεώργιος, Γεωργία" on ( ( ([april 23]) >= ([pascha]) ) ? ([april 23]) : ([pascha] + 1) )
+"Ελισάβετ, Αχιλλέας" on april 24
+"Μάρκος, Νίκη, Ραφαήλ" on ( ( ([april 23]) >= ([pascha]) ) ? ([april 25]) : ([pascha] + 2) )
+"Νίκη" on april 25
"Ζωή, Πηγή" on april 28
"Ιάσωνας" on april 29
"Ιάκωβος, Θωμάς, Θωμαή, Ασημίνα" on april 30
+"Ιερεμίας" on may 1
"Έσπερος, Εσπέρια" on may 2
-"Ροδόπη" on may 3
+"Ροδόπη, Ξενία" on may 3
"Ειρήνη, Eιρηναίος, Ευφραίμ" on may 5
"Μυροφόρα" on may 7
"Θεολόγος" on may 8
@@ -162,7 +169,7 @@
"Καλλιόπη" on june 8
"Ροδάνθη" on june 9
"Βαρθολομαίος, Βαρνάβας" on june 11
-"Ονούφριος, Ζήνων,Κορίνα, Αγίου Πνεύματος" on june 12
+"Ονούφριος" on june 12
"Ελισαίος" on june 14
"Αυγουστίνος, Αυγούστα, Ιερώνυμος, Μόνικα, Ορτανσία" on june 15
"Γιορτή του πατέρα" on june 16
@@ -286,10 +293,10 @@
"Θεόκλητος, Ιακώβ" on december 1
"Βαρβάρα, Δαμασκηνός" on december 4
"Σάββας, Σαββούλα, Διογένης" on december 5
-"Νίκος, Νικολέττα" on december 6
+"Νίκος, Νικολέτα" on december 6
"Αμβρόσιος" on december 7
"Άννα" on december 9
-"Ααρών, Αδάμ, Δαυίδ, Δανάη, Εύα, Ισαάκ, Ιώβ, Ραχήλ, Ρουμπίνη" on december 11
+"Ααρών, Αδάμ, Δαυίδ, Δανάη, Εύα, Ισαάκ, Ιώβ, Ραχήλ, Ρουμπίνη" on sunday after ([december 11])
"Σπύρος, Σπυριδούλα" on december 12
"Ευστράτιος, Λουκάς, Λουκία, Άρης" on december 13
"Ελευθέριος, Ελευθερία, Ανθή, Σύλβια" on december 15
@@ -301,21 +308,18 @@
"Αναστασία" on december 22
"Ευγένιος, Ευγενία" on december 24
"Χρήστος, Χριστίνα, Χρύσα" on december 25
+"Μανώλης, Εμμανουέλα" on december 26
"Στέφανος, Στεφανία" on december 27
"Δόμνα" on december 28
"Ιωσήφ" on december 30
-:: Αργίες - Επέτειοι
-"Εξέγερση του Πολυτεχνείου (Σχολική Αργία)" on november 17
-
:: Κινητές εορτές
"Τελώνου και Φαρισαίου - Αρχή Τριωδίου" on pascha minus 70 days
"Του Ασώτου" on pascha minus 63 days
"Τσικνοπέμπτη" on pascha minus 59 days
"Κυριακή των Απόκρεω" on pascha minus 56 days
"Τυροφάγου" on pascha minus 49 days
-"Καθαρή Δευτέρα (Αργία)" on pascha minus 48 days
"Θεόδωρος, Θεοδώρα, Δώρα, Θώδης, Θώδος, Δώρης" on pascha minus 43 days
"Κυριακή της Ορθοδοξίας" on pascha minus 42 days
"Σάββατο του Λαζάρου" on pascha minus 8 days
@@ -324,9 +328,10 @@
"Μεγάλη Τρίτη" on pascha minus 5 days
"Μεγάλη Τετάρτη" on pascha minus 4 days
"Μεγάλη Πέμπτη" on pascha minus 3 days
+"Αναστάσιος, Αναστασία, Λάμπρος, Λαμπρινή, Πασχάλης " on pascha
+"Ραφαήλ, Ειρήνη" on pascha plus 2 days
"Πηγή, Ζήσης, Ζησούλα, Ζήσιμος, Ζωή, Ζώης" on pascha plus 5 days
"Του Θωμά" on pascha plus 7 days
"Ανάληψη του Χριστού" on pascha plus 39 days
"Πεντηκοστή" on pascha plus 49 days
-"Αγ. Πνεύματος" on pascha plus 50 days
"Αγ. Πάντων" on pascha plus 56 days
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdepimlibs-4.13.0/kpimidentities/signatureconfigurator.cpp new/kdepimlibs-4.13.1/kpimidentities/signatureconfigurator.cpp
--- old/kdepimlibs-4.13.0/kpimidentities/signatureconfigurator.cpp 2014-04-09 12:18:48.000000000 +0200
+++ new/kdepimlibs-4.13.1/kpimidentities/signatureconfigurator.cpp 2014-05-08 09:26:48.000000000 +0200
@@ -253,6 +253,7 @@
hlay = new QHBoxLayout(); // inherits spacing
page_vlay->addLayout( hlay );
q->mCommandEdit = new KLineEdit( page );
+ q->mCommandEdit->setClearButtonShown( true );
q->mCommandEdit->setCompletionObject( new KShellCompletion() );
q->mCommandEdit->setAutoDeleteCompletionObject( true );
q->mCommandEdit->setWhatsThis(
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org