Patrick Ohly wrote:
On Wed, 2016-02-03 at 20:05 +0100, deloptes wrote:
> Hi to all @syncevolution, sorry for bothering you, but I hope one could
> save me some digging by answering my questions.
> I thank you in advance for the patience and support.
>
> 1.
> I have an item uid: libkcal-1629736449.222
> which is returned by syncevolution (--print-items)
> as urlencoded libkcal-1629736449%2e222
>
> Is this on purpose and why?
Internally, item uids can be arbitrary strings. For use in shell
scripting, the command line tool escapes "unsafe" characters when
printing them and unescapes them when parsing parameters.
So yes, it is intentional. Whether a dot should be considered safe is
debatable.
Understood - thanks - just needed confirmation.
> 2.
> How are the sources/databases handled - example if I have 3 calendars
> (1default, 1 read only and 1 custom). Imagine I set the custom or the
> default as inactive or active - how would this influence the sync?
I'm not sure I follow. Do you mean you have a sync configuration and
then change the sync mode of one datastore set to "none"? It'll be
ignored when running a sync for that sync configuration.
I try to explain. I have calendar datastore with 3 databases : 1 is the
default (my calendar), 2 is holidays (read only) 3 is custom calendar.
I'm not sure what happens when I try to sync with my phone. Would all
databases be pushed to the default calendar in the phone? For this I would
just disable 2 and 3 and let only 1 active. The plugin ignores the
databases which are not active and provides the items from the active only
for sync.
Now in regards to your comment - does it mean I have to configure explicitly
the database I want to sync.
This also delivers few possible scenarios if a database was configured (and
was active) but for some reason the user would have deactivated it. what
happens
example --print-databases
TDE PIM Calendar = TDE PIM Events = tdepim-calendar:
resource (kOBUWNvG42) <default>
feiertage (uZzNwmwG32) <read-only>
custom (xYggAVX5Bu)
In this case syncevolution would sync resource + custom - correct?
Or it should be explicitly configured - this is a bit confusing from the
documentation on the other plugins I could read so far.
Now imagine it was configured for sync:
- what would happen on the other side - does resource+custom go into one
calendar and if what happens when I sync back.
- what if I would deactivate custom
> 3.
> About the platform support.
> Is this also picked up by the engine automatically ?
> I saw something about KDE in the sync src code as well.
> I would like to implement similar functionality with the tdewallet - it
> sounds like nice feature to have when dealing with passwords, but I need
> some hint here as I was not able to understand from the kde code what
> exactly has to be done, so that syncevo can cope with it.
The platform modules themselves just register themselves when loaded by
hooking into the callbacks provided by the core libraries. For example,
KDEPlatformRegister.cpp hooks into the password handling via the boost
signal returned by GetLoadPasswordSignal().
Then KWalletLoadPasswordSlot() itself decides whether it is active.
UseKWallet() has some comments about the logic for that.
Basically that is what you need to replicate.
Ok thanks - I assume it is not a precondition for the plugin to work
> example
>
> info.m_backendRule = "KDE";
That is not related to password handling. It is what a datastore uses to
configure the conversion from the internal data format into the vCard
"dialect" used by the store.
In this example, src/syncevo/configs/datatypes/01vcard-profile.xml has
conditional rules that are only active in the "KDE" case.
Thanks, but perhaps I should take care of that as well, because KDE is
successor of what is now TDE. I need to check if KDE can be reused or I
should have own version.
> 4.
> My last question is related to the problem I described earlier. When
> compiled as shared I get the backend registered twice. When I compile
> static it shows up once. I do have different descriptions in the
> registerMe function and in the createSource function.
> Should I post those functions here?
That may help.
Have you tried what I suggested, i.e. removing one of your two shared
modules and checking how that affects the result?
Yes I did, but it did not help - I removed all (so,a,la) for the addressbook
but calendar/todo/tasks showed up.
I tried with function implementation and looked into the cal/cardDav - liked
the class function impl, but still same result. I attach it here in a txt
file