<div dir="ltr">Ok, so i decided to split up the patch between the ::addProject thing (I'll send another mail) and the uiless thing that here it is more or less the same as the uiless2 but without some stupid bug and the ::addProject thing.<br>
<br>Thanks,<br>Aleix<br><br><div class="gmail_quote">On Fri, Aug 8, 2008 at 11:20 AM, Andreas Pakulat <span dir="ltr"><<a href="mailto:apaku@gmx.de">apaku@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="Wj3C7c">On 08.08.08 09:55:18, Manuel Breugelmans wrote:<br>
> On Thursday 07 August 2008 19:16:44 Andreas Pakulat wrote:<br>
> > On 07.08.08 18:58:04, Alexander Dymo wrote:<br>
> > > On Thursday 07 August 2008 18:23:46 Aleix wrote:<br>
> > > > But anyway my idea was to leverage the more possible the shell when<br>
> > > > working without UI.<br>
> > > ><br>
> > > > > I think the easiest way would be to just run the application without<br>
> > > > > showing<br>
> > > > > the mainwindow.<br>
> > > ><br>
> > > > Shouldn't this be the last chance?<br>
> > ><br>
> > > Maybe not. Let me elaborate. UiController doesn't give any guarantees for<br>
> > > plugins (and shell) that the mainwindow exists.<br>
> > > For example, IUiController::activeMainWindow() can return 0 and that's<br>
> > > documented.<br>
> > > So what we need to do is to keep using UiController that we have and<br>
> > > simply do not create mainwindow. I haven't looked deep enough into the<br>
> > > code to understand what can break but ideally nothing should break under<br>
> > > this situation. So maybe your flag needs to be used in<br>
> > > UiControllerPrivate constructor to avoid creating default main window?<br>
> > ><br>
> > > Other than that, UiController itself is quite cheap (it just initializes<br>
> > > area and mainwindow). Area is cheap as well, so if we don't create<br>
> > > mainwindow, we'll have fast enough cmdline shell.<br>
> ><br>
> > There's also the problem of dialogs, there are quite some plugins which<br>
> > use dialogs. IMHO we should extend this, if we really go for a non-ui<br>
> > mode, and provide a new property on plugins that says "I'm not using ui"<br>
> > or "I'm using ui" and then if the shell is created without ui the<br>
> > plugin-controller can make sure no ui-plugin is loaded.<br>
> ><br>
> > So language plugins and eventually also project builders would fall into<br>
> > the no-ui-category and could be used, while everything else wouldn't.<br>
><br>
</div></div><div class="Ih2E3d">> Uhm that's kind of the same thing as the original suggestion. You are adding<br>
> edge case stuff to the 99.9% case (which is bad).<br>
><br>
> If you really want a special shell the obvious route is to implement it,<br>
> without touching the general one. Try to reuse as much as possible with<br>
> #include "../shell/xcontroller.h" and implement the special ones, ie a<br>
> pluginController and uiController. In this new plugin controller _you_ specify<br>
> which ui-less plugins should be loaded, not the other way around. This<br>
> requires all code to adhere strictly to the interfaces though ...<br>
<br>
</div>I'd still need the information in the .desktop files of the plugins<br>
because I can't know all ui-less plugins that might exist when writing<br>
that plugincontroller. Note that this "ui-less shell" part is not about<br>
the specific problem that Aleix wants to solve, its something we might<br>
want to do so we can run tests for example with the complete<br>
infrastructure but without showing a mainwindow. Or have a<br>
<your-language-here> script that does something with ui-less<br>
kdevelop/quanta/whatever. So this is actually making our shell more<br>
flexible.<br>
<br>
Andreas<br>
<font color="#888888"><br>
--<br>
Reply hazy, ask again later.<br>
</font><div><div></div><div class="Wj3C7c"><br>
_______________________________________________<br>
KDevelop-devel mailing list<br>
<a href="mailto:KDevelop-devel@kdevelop.org">KDevelop-devel@kdevelop.org</a><br>
<a href="https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel" target="_blank">https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel</a><br>
</div></div></blockquote></div><br></div>