<span class="gmail_quote">On 7/10/07, <b class="gmail_sendername">Maximilian Kossick</b> &lt;<a href="mailto:mkossick@gmx.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">mkossick@gmx.de</a>&gt; wrote:
</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
 SNIP<br>&gt; &gt;<br>&gt; &gt; So I guess the plan is to make Amarok::ContextView another formfactor<br>&gt; &gt; (like desktop, panel, mediacenter). Does that mean we need to expend<br>&gt; &gt; some enum in plasma?<br>
&gt; &gt; <br>&gt; &gt; Is there drag and drop support already? Some day I want to be able to<br>&gt; &gt; drag plasmoids out of CV to plasma.<br>&gt; &gt;<br>&gt; &gt; Do we need a data engine inside of Amarok, the same process. It seems 
<br>&gt; &gt; kind of strange that the CV widgets talk to Amarok through an external<br>&gt; &gt; process.<br>&gt;<br>&gt; well, not exactly. the way you are thinking of the new contextview is<br>&gt; like simply<br>&gt; another facet of plasma,  
e.g<br>&gt; . plasma &quot;extended&quot; into amarok. thats not actually how it (currently)<br>&gt; works.<br>&gt;<br>&gt; right now i&#39;ve copied/modified the relevant source files from the<br>&gt; plasma source tree into amarok. so we have our &quot;own&quot; 
<br>&gt; plasma. we will have our own plugins, with our own servicetype. now,<br>&gt; it would be cool<br>&gt; if we could just drag and drop from plasma&lt;-&gt;amarok, but that i think is<br>&gt; something to think about in the future.&nbsp;&nbsp;we can&#39;t have amarok be another 
<br>&gt; another formfactor of plasma for a few reasons:<br><br>I know that there are formfactors for putting plasmoids into horizontal or<br>vertical task bars. Amarok&#39;s context view has some space constraints too. Did 
<br>you already investigate which plasma formfactor we should use when putting<br>stuff into the context view?</blockquote><div><br></div>yes, there are form factors for plasmoids. but&nbsp;they&nbsp;are&nbsp;not&nbsp;exactly&nbsp;applicable&nbsp;to&nbsp;us.&nbsp;basically,&nbsp;the&nbsp;planar&nbsp;form&nbsp;factor&nbsp;mean&nbsp;you&nbsp;have&nbsp;2&nbsp;degrees&nbsp;of&nbsp;freedom&nbsp;(like&nbsp;normal).&nbsp;there&nbsp;is&nbsp;then&nbsp;a&nbsp;mediacenter&nbsp;form&nbsp;factor&nbsp;which&nbsp;assumes&nbsp;tha&nbsp;the&nbsp;user&nbsp;is&nbsp;~10ft&nbsp;away&nbsp;from&nbsp;the&nbsp;screen---not&nbsp;exactly&nbsp;applicable&nbsp;to&nbsp;us.&nbsp;and&nbsp;then&nbsp;there&nbsp;is&nbsp;a&nbsp;horizontal/vertical&nbsp;form&nbsp;factor&nbsp;that&nbsp;constrain&nbsp;the&nbsp;applet&#39;s&nbsp;movement&nbsp;in&nbsp;one&nbsp;of&nbsp;the&nbsp;two&nbsp;directions. 
<br><br>it seems to me that we have less of a use for the formfactors than plasma itself, as we don&#39;t have to deal with such a broad spectrum of use cases.<br><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
 &gt; a) we need a slightly different architecture. plasma is designed to be as<br>&gt; extensible and decentralized as possible, but we need to handle events like<br>&gt; track changes, showHome, etc, which requires manual&nbsp;&nbsp;involvement in plasma. 
<br>&gt; and that is just one example.<br><br>I&#39;m not sure what exactly you mean by &quot;manual involvement in plasma&quot;. can you<br>create a branch with your code so that we can have a look? Shouldn&#39;t the data 
<br>engine be able to tell the applets to hide themselves (by applets i mean the<br>stuff which draws on the screen...i&#39;m not very familiar with the plasma<br>terminology yet). The data engine (or maybe more than one, we&#39;ll see) will be 
<br>tightly tied to Amarok and will use our internal API, so it&#39;s not a problem<br>to integrate all the events you mentioned there.</blockquote><div>&nbsp;</div>first&nbsp;of&nbsp;all,&nbsp;there&nbsp;is&nbsp;a&nbsp;branch&nbsp;:)&nbsp;there&nbsp;still&nbsp;isn&#39;t&nbsp;any&nbsp;of&nbsp;my&nbsp;code&nbsp;there,&nbsp;because&nbsp;i&#39;m&nbsp;wrestling&nbsp;with&nbsp;svn&nbsp;to&nbsp;get&nbsp;all&nbsp;my&nbsp;of&nbsp;changes&nbsp;registered&nbsp;and&nbsp;all&nbsp;that.&nbsp;you can find it here 
<br><a href="https://svn.kde.org/home/kde/branches/work/amarok-plasmify" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://svn.kde.org/home/kde/branches/work/amarok-plasmify</a><br><br>the biggest obstacle that i foresee right now regards the data engines. the way plasma is structures both data engines and plasmoids are KTrader plugins. that means that they are separately linked applications that communicate at runtime. we want to be able to have &quot;internal&quot; data engines that run in the source and have access to amarok&#39;s internals. i&#39;m still in the progress of figuring out how to best implement that. 
<br><br><br><br><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
 &gt; b) plasma is kdebase. AFAIK we want to only link to kdelibs, as kdebase is<br>&gt; a pretty steep requirement, and ties us effectively to the KDE desktop. i<br>&gt; mean, if the user isn&#39;t running KDE, amarok should still have an awesome 
<br>&gt; context thingie :)<br><br>That&#39;s&nbsp;&nbsp;not a problem. For the time being, we&#39;ll keep a copy of plasma in our<br>source tree. As Aaron mentioned in the original mail of this thread, they are<br>planning to move parts or all of plasma to some place outside of kdebase as 
<br>soon as they can guarantee BC.</blockquote><div>&nbsp;</div>as&nbsp;i&nbsp;said&nbsp;in&nbsp;previous&nbsp;emails,&nbsp;the&nbsp;way&nbsp;it&nbsp;works,&nbsp;at&nbsp;least&nbsp;currently,,&nbsp;is&nbsp;not&nbsp;by&nbsp;keeping&nbsp;a&nbsp;copy&nbsp;of&nbsp;plasma&nbsp;in&nbsp;our&nbsp;source&nbsp;tree.&nbsp;that&nbsp;would entail having an svn extern entry and pulling/linking libplasma directly. this is probably the most difficult decision/compromise that we have: 
<div><br>on&nbsp;one&nbsp;hand, if we don&#39;t use plasma directly we don&#39;t keep up with plasma changes and we effectively fork the parts of the code that we have. thats not good. because we lose bugfixes and features etc. (this is how it works now). but on the plus side, we can customize plasma to work for us because we *do* have different needs than the KDE desktop and need to have more control: case in point, with stock plasma we can only register data engines and plugins via KTrader, so how do you have any data engines which run internally from amarok?
<br><br>on the other hand, we could embed libplasma for now into our source, and eventually just link to libplasma once its been released. but then we run into the problems i mentioned above, and it seems to me that we would need to write a considerable amount of glue code to make the two parts work ok.
<br><br>but of course there are just my opinions... i&#39;m completely open to being convinced :)<br><br>leo</div><br>_______________________________________________<br>Amarok-devel mailing list<br><a href="mailto:Amarok-devel@kde.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Amarok-devel@kde.org</a><br><a href="https://mail.kde.org/mailman/listinfo/amarok-devel" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> https://mail.kde.org/mailman/listinfo/amarok-devel</a><br><br>
<br><br><br clear="all"><br>-- <br>______________________________________________________<br>Leo Franchi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:angel666@myrealbox.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
 angel666@myrealbox.com</a><br>4305 Charlemagne Ct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:lfranchi@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">lfranchi@gmail.com</a> <br>Austin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cell: (650) 704 3680
<br>TX, USA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;home: (650) 329 0125