Hello community, here is the log from the commit of package libkolab-qt5 for openSUSE:Factory checked in at 2016-01-10 13:07:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libkolab-qt5 (Old) and /work/SRC/openSUSE:Factory/.libkolab-qt5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkolab-qt5" Changes: -------- --- /work/SRC/openSUSE:Factory/libkolab-qt5/libkolab-qt5.changes 2015-10-14 16:44:53.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libkolab-qt5.new/libkolab-qt5.changes 2016-01-10 13:07:29.000000000 +0100 @@ -3,0 +4,8 @@ +- Update to version 1.0.2 + * Fix build with latest kdepim libraries + +- Drop upstream patch fix_new_kcontact.diff + +------------------------------------------------------------------- +Mon Sep 28 17:49:14 UTC 2015 - [email protected] + Old: ---- fix_new_kcontacts.diff libkolab-1.0.1.tar.gz New: ---- libkolab-1.0.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkolab-qt5.spec ++++++ --- /var/tmp/diff_new_pack.jMw0yX/_old 2016-01-10 13:07:31.000000000 +0100 +++ /var/tmp/diff_new_pack.jMw0yX/_new 2016-01-10 13:07:31.000000000 +0100 @@ -20,14 +20,13 @@ %define php_confdir %{_sysconfdir}/php5/conf.d %define libname libkolab1 Name: libkolab-qt5 -Version: 1.0.1 +Version: 1.0.2 Release: 0 Summary: Conversions from/to KDE containers License: LGPL-2.0+ and LGPL-3.0+ and AGPL-3.0+ Group: Development/Libraries/C and C++ Url: https://kolab.org/about/libkolab Source: libkolab-%{version}.tar.gz -Patch1: fix_new_kcontacts.diff BuildRequires: boost-devel BuildRequires: cmake >= 2.6 BuildRequires: libkolabxml-devel >= 1.1 @@ -111,7 +110,6 @@ %prep %setup -q -n libkolab-%{version} -%patch1 -p1 # TESTS: require X and most fail anyway %cmake \ ++++++ libkolab-1.0.1.tar.gz -> libkolab-1.0.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/CMakeLists.txt new/libkolab-1.0.2/CMakeLists.txt --- old/libkolab-1.0.1/CMakeLists.txt 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/CMakeLists.txt 2015-11-25 12:33:10.000000000 +0100 @@ -32,7 +32,7 @@ set(Libkolab_VERSION_MAJOR 1) set(Libkolab_VERSION_MINOR 0) # Enable the full x.y.z version only for release versions -set(Libkolab_VERSION_PATCH 1) +set(Libkolab_VERSION_PATCH 2) #set(Libkolab_VERSION ${Libkolab_VERSION_MAJOR}.${Libkolab_VERSION_MINOR}.${Libkolab_VERSION_PATCH}) set(Libkolab_VERSION ${Libkolab_VERSION_MAJOR}.${Libkolab_VERSION_MINOR}) set(Libkolab_VERSION_STRING ${CMAKE_PROJECT_NAME}-${Libkolab_VERSION}) @@ -57,8 +57,8 @@ # Do the building -find_package(Libkolabxml 1.1 REQUIRED) -macro_log_feature(Libkolabxml_FOUND "Libkolabxml" "Kolab XML Format 3 serializing library" "http://git.kolab.org/libkolabxml/" TRUE "1.0" "Required for reading/writing Kolab XML Objects") +find_package(Libkolabxml 1.1.1 REQUIRED) +macro_log_feature(Libkolabxml_FOUND "Libkolabxml" "Kolab XML Format 3 serializing library" "https://git.kolab.org/diffusion/LKX/" TRUE "1.1.1" "Required for reading/writing Kolab XML Objects") set(QT_REQUIRED_VERSION "5.2.0") @@ -68,11 +68,13 @@ endif() set(KDEPIMLIBS_LIB_VERSION "4.71.0") +set(KMIME_LIB_VERSION "4.84.0") +find_package(KF5CoreAddons CONFIG REQUIRED) find_package(KF5Akonadi ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Contacts ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5CalendarCore ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(KF5CalendarUtils ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) -find_package(KF5Mime ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) +find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiNotes ${KDEPIMLIBS_LIB_VERSION} CONFIG REQUIRED) find_package(SWIG) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/conversion/kabcconversion.cpp new/libkolab-1.0.2/conversion/kabcconversion.cpp --- old/libkolab-1.0.1/conversion/kabcconversion.cpp 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/conversion/kabcconversion.cpp 2015-11-25 12:33:10.000000000 +0100 @@ -488,7 +488,9 @@ addressee.setTitle(fromStdString(contact.titles().at(0))); //TODO support multiple } if (!contact.urls().empty()) { - addressee.setUrl(QUrl(fromStdString(contact.urls().at(0).url()))); //TODO support multiple + KContacts::ResourceLocatorUrl url; + url.setUrl(QUrl(fromStdString(contact.urls().at(0).url()))); //TODO support multiple + addressee.setUrl(url); foreach(const Kolab::Url &u, contact.urls()) { if (u.type() == Kolab::Url::Blog) { addressee.insertCustom("KADDRESSBOOK", "BlogFeed", fromStdString(u.url())); @@ -664,8 +666,8 @@ } std::vector<Kolab::Url> urls; - if (!addressee.url().isEmpty()) { - urls.push_back(Kolab::Url(toStdString(addressee.url().url()))); + if (!addressee.url().url().isEmpty()) { + urls.push_back(Kolab::Url(toStdString(addressee.url().url().url()))); } const QString &blogUrl = addressee.custom(QLatin1String("KADDRESSBOOK"), QLatin1String("BlogFeed")); if (!blogUrl.isEmpty()) { @@ -703,7 +705,7 @@ c.setRelateds(std::vector<Kolab::Related>() << Kolab::Related(Kolab::Related::Text, toStdString(spouse), Kolab::Related::Spouse)); } c.setBDay(fromDate(KDateTime(addressee.birthday(), KDateTime::ClockTime))); - c.setAnniversary(fromDate(KDateTime(QDate::fromString( addressee.custom(QLatin1String("KADDRESSBOOK"), QLatin1String("X-Anniversary")), Qt::ISODate ), KDateTime::ClockTime))); + c.setAnniversary(fromDate(KDateTime(QDate::fromString( addressee.custom(QLatin1String("KADDRESSBOOK"), QLatin1String("X-Anniversary")), Qt::ISODate ), KDateTime::Spec(KDateTime::ClockTime)))); if (!addressee.photo().isEmpty()) { std::string mimetype; const std::string &photo = fromPicture(addressee.photo(), mimetype); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/icalendar/imip.cpp new/libkolab-1.0.2/icalendar/imip.cpp --- old/libkolab-1.0.1/icalendar/imip.cpp 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/icalendar/imip.cpp 2015-11-25 12:33:10.000000000 +0100 @@ -84,7 +84,7 @@ if ( !attachment.isEmpty() ) { KMime::Headers::ContentDisposition *disposition = - new KMime::Headers::ContentDisposition( message.get() ); + new KMime::Headers::ContentDisposition(); disposition->setDisposition( KMime::Headers::CDinline ); message->setHeader( disposition ); message->contentTransferEncoding()->setEncoding( KMime::Headers::CEquPr ); @@ -103,7 +103,7 @@ // Set the first multipart, the body message. KMime::Content *bodyMessage = new KMime::Content; KMime::Headers::ContentDisposition *bodyDisposition = - new KMime::Headers::ContentDisposition( bodyMessage ); + new KMime::Headers::ContentDisposition(); bodyDisposition->setDisposition( KMime::Headers::CDinline ); bodyMessage->contentType()->setMimeType( "text/plain" ); bodyMessage->contentType()->setCharset( "utf-8" ); @@ -115,7 +115,7 @@ if ( !attachment.isEmpty() ) { KMime::Content *attachMessage = new KMime::Content; KMime::Headers::ContentDisposition *attachDisposition = - new KMime::Headers::ContentDisposition( attachMessage ); + new KMime::Headers::ContentDisposition(); attachDisposition->setDisposition( KMime::Headers::CDattachment ); attachMessage->contentType()->setMimeType( "text/calendar" ); attachMessage->contentType()->setCharset( "utf-8" ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/kolabformat/mimeobject.cpp new/libkolab-1.0.2/kolabformat/mimeobject.cpp --- old/libkolab-1.0.1/kolabformat/mimeobject.cpp 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/kolabformat/mimeobject.cpp 2015-11-25 12:33:10.000000000 +0100 @@ -29,6 +29,7 @@ #include "libkolab-version.h" #include <QString> #include <QtGlobal> +#include <KRandom> #include <boost/algorithm/string/predicate.hpp> @@ -373,7 +374,7 @@ } Kolab::ObjectType objectType = InvalidObject; if (mOverrideObjectType == InvalidObject) { - if (KMime::Headers::Base *xKolabHeader = msg->getHeaderByType(X_KOLAB_TYPE_HEADER)) { + if (KMime::Headers::Base *xKolabHeader = msg->headerByType(X_KOLAB_TYPE_HEADER)) { objectType = getObjectType(xKolabHeader->asUnicodeString().trimmed().toStdString()); } else { Warning() << "could not find the X-Kolab-Type Header, trying autodetection" ; @@ -390,10 +391,10 @@ } if (!mDoOverrideVersion) { - KMime::Headers::Base *xKolabVersion = msg->getHeaderByType(X_KOLAB_MIME_VERSION_HEADER); + KMime::Headers::Base *xKolabVersion = msg->headerByType(X_KOLAB_MIME_VERSION_HEADER); if (!xKolabVersion) { //For backwards compatibility to development versions, can be removed in future versions - xKolabVersion = msg->getHeaderByType(X_KOLAB_MIME_VERSION_HEADER_COMPAT); + xKolabVersion = msg->headerByType(X_KOLAB_MIME_VERSION_HEADER_COMPAT); } if (!xKolabVersion || xKolabVersion->asUnicodeString() == KOLAB_VERSION_V2) { mVersion = KolabV2; @@ -440,7 +441,7 @@ static std::string createCid() { - return QString::fromLatin1("cid:%1@%2").arg(QString::fromLatin1(KMime::uniqueString())).arg("kolab.resource.akonadi").toStdString(); + return QString::fromLatin1("cid:%1@%2").arg(KRandom::randomString(16)).arg("kolab.resource.akonadi").toStdString(); } std::vector<Kolab::Attachment> convertToReferences(const std::vector<Kolab::Attachment> &attachments, std::vector<std::string> &attachmentCids) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/kolabformatV2/contact.cpp new/libkolab-1.0.2/kolabformatV2/contact.cpp --- old/libkolab-1.0.1/kolabformatV2/contact.cpp 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/kolabformatV2/contact.cpp 2015-11-25 12:33:10.000000000 +0100 @@ -947,7 +947,7 @@ setPrefix( addressee->prefix() ); setSuffix( addressee->suffix() ); setOrganization( addressee->organization() ); - setWebPage( addressee->url().url() ); + setWebPage( addressee->url().url().url() ); setIMAddress( addressee->custom( "KADDRESSBOOK", "X-IMAddress" ) ); setDepartment( addressee->department()); setOfficeLocation( addressee->custom( "KADDRESSBOOK", "X-Office" ) ); @@ -1082,6 +1082,9 @@ { // TODO: This needs the same set of TODOs as the setFields method KolabBase::saveTo( addressee ); + KContacts::ResourceLocatorUrl url; + + url.setUrl(QUrl(webPage())); addressee->setGivenName( givenName() ); addressee->setAdditionalName( middleNames() ); @@ -1090,7 +1093,7 @@ addressee->setPrefix( prefix() ); addressee->setSuffix( suffix() ); addressee->setOrganization( organization() ); - addressee->setUrl( QUrl(webPage()) ); + addressee->setUrl(url); addressee->insertCustom( "KADDRESSBOOK", "X-IMAddress", imAddress() ); addressee->setDepartment( department() ); addressee->insertCustom( "KADDRESSBOOK", "X-Office", officeLocation() ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/mime/mimeutils.cpp new/libkolab-1.0.2/mime/mimeutils.cpp --- old/libkolab-1.0.1/mime/mimeutils.cpp 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/mime/mimeutils.cpp 2015-11-25 12:33:10.000000000 +0100 @@ -153,9 +153,13 @@ { KMime::Message::Ptr message(new KMime::Message); message->date()->setDateTime(KDateTime::currentUtcDateTime().dateTime()); - message->appendHeader(new KMime::Headers::Generic(X_KOLAB_TYPE_HEADER, message.get(), xKolabType, "utf-8")); + KMime::Headers::Generic* h = new KMime::Headers::Generic(X_KOLAB_TYPE_HEADER); + h->fromUnicodeString(xKolabType, "utf-8"); + message->appendHeader(h); if (v3) { - message->appendHeader(new KMime::Headers::Generic(X_KOLAB_MIME_VERSION_HEADER, message.get(), KOLAB_VERSION_V3, "utf-8")); + KMime::Headers::Generic* hv3 = new KMime::Headers::Generic(X_KOLAB_MIME_VERSION_HEADER); + hv3->fromUnicodeString(KOLAB_VERSION_V3, "utf-8"); + message->appendHeader(hv3); } message->userAgent()->from7BitString(prodid); message->contentType()->setMimeType("multipart/mixed"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/tests/formattest.cpp new/libkolab-1.0.2/tests/formattest.cpp --- old/libkolab-1.0.1/tests/formattest.cpp 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/tests/formattest.cpp 2015-11-25 12:33:10.000000000 +0100 @@ -385,12 +385,12 @@ QCOMPARE(Kolab::ErrorHandler::instance().error(), Kolab::ErrorHandler::Debug); KMime::Message::Ptr convertedNote = reader.getNote(); - QVERIFY(convertedNote.get()); + QVERIFY(convertedNote.data()); //Parse note const KMime::Message::Ptr &realNote = readMimeFile( noteFileName, ok ); QVERIFY(ok); - QVERIFY(realNote.get()); + QVERIFY(realNote.data()); QString expected = realNote->encodedContent(); normalizeMimemessage(expected); @@ -402,8 +402,8 @@ //Write const KMime::Message::Ptr &convertedMime = Kolab::KolabObjectWriter::writeNote(realNote, version); - QVERIFY(convertedMime.get()); - QVERIFY(msg.get()); + QVERIFY(convertedMime.data()); + QVERIFY(msg.data()); QString expected2 = msg->encodedContent(); normalizeMimemessage(expected2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkolab-1.0.1/tests/testhelpers.h new/libkolab-1.0.2/tests/testhelpers.h --- old/libkolab-1.0.1/tests/testhelpers.h 2015-07-31 15:43:01.000000000 +0200 +++ new/libkolab-1.0.2/tests/testhelpers.h 2015-11-25 12:33:10.000000000 +0100 @@ -53,7 +53,7 @@ QByteArray ba = "Kolab::cDateTime("; ba += QByteArray::number(dt.year()) + ", " + QByteArray::number(dt.month())+ ", " + QByteArray::number(dt.day()) + ", "; ba += QByteArray::number(dt.hour()) + ", " + QByteArray::number(dt.minute()) + ", " + QByteArray::number(dt.second())+ ", "; - ba += QString(dt.isUTC()?QString("UTC"):QString("TZ: "+QString::fromStdString(dt.timezone()))).toAscii(); + ba += QByteArray(dt.isUTC()?QByteArray("UTC"):QByteArray("TZ: "+QByteArray::fromStdString(dt.timezone()))); ba += ")"; return qstrdup(ba.data()); } @@ -63,7 +63,7 @@ { QByteArray ba = "KDateTime("; ba += dt.toString().toAscii(); - ba += dt.timeZone().name(); + ba += dt.timeZone().name().toAscii(); ba += ")"; return qstrdup(ba.data()); } @@ -74,9 +74,9 @@ QByteArray ba = "Attendee("; ba += at.name().toAscii() + ", "; ba += at.email().toAscii() + ", "; - ba += QString::number(at.role()) + ", "; - ba += QString::number(at.status()) + ", "; - ba += QString::number(at.RSVP()) + ", "; + ba += QByteArray::number(at.role()) + ", "; + ba += QByteArray::number(at.status()) + ", "; + ba += QByteArray::number(at.RSVP()) + ", "; ba += at.delegate().toAscii() + ", "; ba += at.delegator().toAscii() + ", "; ba += at.uid().toAscii() + ", "; @@ -90,7 +90,7 @@ { QByteArray ba = "QList<int>("; foreach(int i, l) { - ba += QString::number(i) + ", "; + ba += QByteArray::number(i) + ", "; } ba += ")"; return qstrdup(ba.data()); @@ -101,8 +101,8 @@ { QByteArray ba = "QList<int>("; foreach(const KCalCore::RecurrenceRule::WDayPos &i, l) { - ba += QString::number(i.pos()) + " "; - ba += QString::number(i.day()) + ", "; + ba += QByteArray::number(i.pos()) + " "; + ba += QByteArray::number(i.day()) + ", "; } ba += ")"; return qstrdup(ba.data()); @@ -113,7 +113,7 @@ { QByteArray ba = "KCalCore::DateList("; foreach(const QDate &i, l) { - ba += i.toString(); + ba += i.toString().toLatin1(); } ba += ")"; return qstrdup(ba.data()); @@ -143,9 +143,9 @@ Q_ASSERT(at.rRules().size() == 1); ba += "Recurrence("; - ba += QString::number(r->recurrenceType()) + "\n"; - ba += QString::number(r->frequency()) + "\n"; - ba += QString::number(r->duration()) + "\n"; + ba += QByteArray::number(r->recurrenceType()) + "\n"; + ba += QByteArray::number(r->frequency()) + "\n"; + ba += QByteArray::number(r->duration()) + "\n"; ba += QByteArray(toString(r->startDt())) + "\n"; ba += QByteArray(toString(r->endDt())) + "\n"; ba += QByteArray(toString(r->bySeconds())) + "\n"; @@ -170,10 +170,10 @@ { QByteArray ba; ba += "KolabRecurrenceRule("; - ba += QString::number(at.weekStart()) + "\n"; - ba += QString::number(at.frequency()) + "\n"; - ba += QString::number(at.interval()) + "\n"; - ba += QString::number(at.count()) + "\n"; + ba += QByteArray::number(at.weekStart()) + "\n"; + ba += QByteArray::number(at.frequency()) + "\n"; + ba += QByteArray::number(at.interval()) + "\n"; + ba += QByteArray::number(at.count()) + "\n"; ba += QByteArray(toString(at.end())) + "\n"; ba += QByteArray(toString(at.bysecond())) + "\n"; ba += QByteArray(toString(at.byminute())) + "\n"; @@ -192,8 +192,8 @@ { QByteArray ba; ba += "KCalCore::Duration("; - ba += QString::number(d.isDaily()) + ", "; - ba += QString::number(d.value()) + " "; + ba += QByteArray::number(d.isDaily()) + ", "; + ba += QByteArray::number(d.value()) + " "; ba += ")"; return qstrdup(ba.data()); } @@ -202,9 +202,9 @@ char *toString(const Kolab::ContactReference &a) { QByteArray ba = "Kolab::ContactReference("; - ba += QString::fromStdString(a.email()).toAscii()+ ", "; - ba += QString::fromStdString(a.name()).toAscii()+ ", "; - ba += QString::fromStdString(a.uid()).toAscii(); + ba += QByteArray::fromStdString(a.email()) + ", "; + ba += QByteArray::fromStdString(a.name()) + ", "; + ba += QByteArray::fromStdString(a.uid()); ba += ")"; return qstrdup(ba.data()); } @@ -224,12 +224,12 @@ char *toString(const Kolab::Attendee &a) { QByteArray ba = "Kolab::Attendee("; - ba += QString::fromStdString(a.contact().email()).toAscii() + "\n"; - ba += QString::fromStdString(a.contact().name()).toAscii()+ "\n"; + ba += QByteArray::fromStdString(a.contact().email()) + "\n"; + ba += QByteArray::fromStdString(a.contact().name()) + "\n"; ba += QByteArray::number(a.partStat()) + "\n"; ba += QByteArray::number(a.role()) + "\n"; ba += QByteArray::number(a.rsvp()) + "\n"; - ba += QString::fromStdString(a.contact().uid()).toAscii()+"\n"; + ba += QByteArray::fromStdString(a.contact().uid())+"\n"; ba += QByteArray(toString(a.delegatedTo()))+"\n"; ba += QByteArray(toString(a.delegatedFrom()))+ "\n"; ba += QByteArray::number(a.cutype())+ "\n"; @@ -253,8 +253,8 @@ char *toString(const Kolab::CustomProperty &a) { QByteArray ba = "Kolab::CustomProperty("; - ba += QString::fromStdString(a.identifier).toAscii()+ ", "; - ba += QString::fromStdString(a.value).toAscii(); + ba += QByteArray::fromStdString(a.identifier) + ", "; + ba += QByteArray::fromStdString(a.value); ba += ")"; return qstrdup(ba.data()); } @@ -295,10 +295,10 @@ char *toString(const Kolab::FreebusyPeriod &p) { QByteArray ba = "Kolab::FreebusyPeriod("; - ba += QString::number(p.type())+ "\n"; - ba += QString::fromStdString(p.eventUid())+ "\n"; - ba += QString::fromStdString(p.eventLocation())+ "\n"; - ba += QString::fromStdString(p.eventSummary())+ "\n"; + ba += QByteArray::number(p.type())+ "\n"; + ba += QByteArray::fromStdString(p.eventUid())+ "\n"; + ba += QByteArray::fromStdString(p.eventLocation())+ "\n"; + ba += QByteArray::fromStdString(p.eventSummary())+ "\n"; ba += QByteArray(toString(p.periods()))+ "\n"; ba += ")"; return qstrdup(ba.data()); @@ -310,11 +310,11 @@ QByteArray ba = "Kolab::Duration"; ba += p.isNegative() ? "-": "+"; ba += "("; - ba += QString::number(p.weeks())+ ", "; - ba += QString::number(p.days())+ ", "; - ba += QString::number(p.hours())+ ", "; - ba += QString::number(p.minutes())+ ", "; - ba += QString::number(p.seconds()); + ba += QByteArray::number(p.weeks())+ ", "; + ba += QByteArray::number(p.days())+ ", "; + ba += QByteArray::number(p.hours())+ ", "; + ba += QByteArray::number(p.minutes())+ ", "; + ba += QByteArray::number(p.seconds()); ba += ")"; return qstrdup(ba.data()); }
