<div class="gmail_quote">On Thu, Apr 29, 2010 at 12:20 AM, Aleix Pol <span dir="ltr"><<a href="mailto:aleixpol@kde.org" target="_blank">aleixpol@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Hi,<br>As you will probably have seen, I got the community integration proposal into this year's GSoC. Great. We decided with my mentor (Andreas :) that we would discuss the ideas here on the list, so here I am exposing some first step: the Project Dashboard.<br>



<br>
One of the most important parts of this project is the Project Dashboard which will be some page that will offer some information to the user about the project he just opened. Of course, we want to make it available for any plugin to put their information there. My idea for that would go something like this: <a href="http://proli.net/meu/kdevelop/kdev_dashboard_mockup.html" target="_blank">http://proli.net/meu/kdevelop/kdev_dashboard_mockup.html</a>.<br>




I want first of all the logo and the description that should take all the width and then a list with all the elements that initially I think 2 elements per row would be fine but we might want to make that configurable, shouldn't be a problem.<br>



<br>To use it, we would add a signal to the Project controller that would pass the ProjectDashboard instance to any file that was connected to the signal (emulating the observer pattern) and then it should be filled. Any addition would have some weight to make it possible to provide some importance to each element.<br>


<br>here's a mockup for the API:<br>class IProjectController<br>{<br>    //...<br>    signals:<br>        void elementsRequested(IProject* project, ProjectDashboard* dashboard);<br>};<br><br>class ProjectDashboard<br>


{<br>    public:<br>        addElement(DashboardElement* element, int weight);<br>};<br><br>//here the methods would be needed for configuration more than for the main display<br>class ProjectDashboardElement : public QGraphicsWidget<br>


{<br>    public:<br>        KIcon icon() const;<br>        QString name() const;<br>};<br><br>Last but not least, we should decide what technology to use to present all this information. I thing QGraphicsView would be great but also we could consider using Plasma or maybe just HTML. In my opinion QGV would be just great, I'd have to talk to the plasma guys to know what can we get from using it (probably just theming and integration, but it's not that bad since we always lack artwork).<br>


<br>Thoughts? Ideas? Opinions? :D<br>This is going to be fun!! ^^<br><font color="#888888"><br>Aleix<br>
</font></blockquote></div><br>Hi,<br>I was talking to some Plasma folks yesterday and I think it would be worth giving it a try. That way we can get some stuff for free: mainly the existing plasmoids and theming which is great.<br>

<br>The bad news is that there are a couple of changes required to have it the way I'd like it. First of all, it's not yet possible to add Plasma::Applet* instances directly, now it has to go through a different plugin and I wouldn't like it a lot like that. The good news on that is that they're willing to fullfill this use case so in the worst case we just would have to wait.<br>

<br>The other problem is that we need to get Plasma to use our project.kdev4 file instead of some ~/.kde4/share... file. The main reason for that is that we want that to be versioned so there's a project-wide dashboard version. We could provide the KConfig instance to plasma so that it writes to the file we want it to write on or we could try to workaround that by configuring the Plasma instance ourselves every time we use it.<br>
<br>Another problem would be that we'll have to wait for the Plasma KPart to be released at sometime next month.<br>
<br>That's it for the moment.<br>Aleix<br>