In our first release of KDE Telepathy I want to have support of file transfers.<div><br></div><div>I think it makes sense to use as much as possible from the KJobs (AcceptFileTransfer/OfferFileTransfer) that someone (Dario?/DrDanz?) has written in telepathy-kde (the lib)</div>
<div><br></div><div>This leads to a few questions:</div><div><br></div><div>1) Which app should handle accepting an incoming file? </div><div>the approver?</div><div><br></div><div>2) Are we still going to ship telepathy-kde in the non-nepomuk release? </div>
<div><br></div><div>If so does anyone object to to modifying the jobs to the following:</div><div><span class="Apple-style-span" style="border-collapse: collapse; color: rgb(34, 34, 34); font-family: &#39;Droid Sans&#39;, &#39;Liberation Sans&#39;, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 14px; line-height: 16px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; white-space: pre-wrap; background-position: initial initial; background-repeat: initial initial; ">
  OfferFileTransferJob(<span class="di" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 136); font-weight: bold; background-position: initial initial; background-repeat: initial initial; ">const</span> Nepomuk::PersonContact&amp; contact, QString filename, QObject* parent = <span class="i" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 221); font-weight: bold; background-position: initial initial; background-repeat: initial initial; ">0</span>);</pre>
<pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; white-space: pre-wrap; background-position: initial initial; background-repeat: initial initial; ">
<span class="Apple-style-span" style="font-family: &#39;Droid Sans&#39;, &#39;Liberation Sans&#39;, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 14px; white-space: normal; "><pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; white-space: pre-wrap; background-position: initial initial; background-repeat: initial initial; ">
  OfferFileTransferJob(<span class="di" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 136); font-weight: bold; background-position: initial initial; background-repeat: initial initial; ">const</span> Nepomuk::Person&amp; metacontact, QString filename, QObject* parent = <span class="i" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 221); font-weight: bold; background-position: initial initial; background-repeat: initial initial; ">0</span>)</pre>
<pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; white-space: pre-wrap; background-position: initial initial; background-repeat: initial initial; ">
+ OfferFileTransferJob(<span class="di" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 136); font-weight: bold; ">const</span> Tp::ContactPtr&amp; contact, QString filename, QObject* parent = <span class="i" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 221); font-weight: bold; ">0</span>) &lt;- this line would be new</pre>
</span></pre></span><div><br></div><div>The first one would call the second one which would call the third one (in the internal private slots). To me it makes sense to read the flow of things, and exposes our jobs to every layer without any code duplication. This release we use the direct telepathy call, then in the future we use the two nepomuk ones as appropriate. </div>
<div><br></div><div>OR</div><div><br></div><div>Shall I make a new library just for this release which just copies and pastes code about from these classes (stripping out to be just the parts we want this time)</div><div>
<br></div><div>OR</div><div><br></div><div>Copy the KJobs (stripping out to be just the parts we want this release) into each app using it (a lot of code duplication, but it&#39;s only a prototype.)</div><div><br></div><div>
OR</div><div><br></div><div>Not use the lovely KJobs and handle it all ourselves in the relevant app (which sounds like more work)</div><div><br></div><div>OR </div><div><br></div><div>Something else that I haven&#39;t thought of.</div>
<div><div><br></div></div></div><div>3) If I did get the jobs/a nice lib, I&#39;d quite like to go for making it integrate into dolphin (service menu) as well as being in the contact list like DrDanz has demoed in the past. It helps show what telepathy is all about, and how it&#39;s more than just being a monolithic IM app. It should be damn easy to write with the jobs mostly pre-written and me able to use the accounts model with a tiny tweak in the AccountFilter from the contact list. Any thoughts/objections?</div>