Hi,<div><br></div><div>since we don't really seem to be getting away from a ApplicationWindow component i will just try to start the discussion for it.</div><div>I'd like to implement a ApplicationWindow component that follows <a href="http://qt.gitorious.org/qt-components/desktop/blobs/master/components/ApplicationWindow.qml" target="_blank">http://qt.gitorious.org/qt-components/desktop/blobs/master/components/ApplicationWindow.qml</a> thus in plasma that will become:</div>
<div><br></div><div>PlasmaComponents.ApplicationWindow</div><div>{</div><div> ...</div><div>}</div><div><br></div><div>Note: ApplicationWindow creates a QWindowItem: <a href="http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.h" target="_blank">http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.h</a></div>
<div>All relevant files:</div><div><a href="http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.h" target="_blank">http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.h</a>
</div><div><a href="http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.cpp" target="_blank">http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.cpp</a>
</div><div><a href="http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qtoplevelwindow.h" target="_blank">http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qtoplevelwindow.h</a>
</div><div><a href="http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qtoplevelwindow.cpp" target="_blank">http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qtoplevelwindow.cpp</a>
</div><div><br></div><div>I would basically copy the above files and add them to <a href="http://quickgit.kde.org/index.php?p=kde-runtime.git&a=tree&h=bad8a1c734c571f678cb5809b72586e2e3dc9563&hb=294470c860f548944ac44d83aff98996a075fcd3&f=plasma%2Fdeclarativeimports%2Fplasmacomponents" target="_blank">http://quickgit.kde.org/index.php?p=kde-runtime.git&a=tree&h=bad8a1c734c571f678cb5809b72586e2e3dc9563&hb=294470c860f548944ac44d83aff98996a075fcd3&f=plasma%2Fdeclarativeimports%2Fplasmacomponents</a></div>
<div><br></div><div>The advantages for a ApplicationWindow are (in my case):</div><div>- Full control over a window element.</div><div>- Allows me to move a window from within QML along with the animation (Behavior on x { Numberanimation{}}) ... which makes it a lot neater then doing the same from C++.</div>
<div>- I only have to pass new positions from the C++ side</div>
<div><br></div><div>You do in fact end up with 2 new elements:</div><div>.ApplicationWindow</div><div>.Window</div><div><br></div><div>I propose Window to be private (don't know how to do that) and make ApplicationWindow public with the "api" from Qt Desktop components along with - at the very least - the following:</div>
<div><div>PlasmaComponents.ApplicationWindow</div><div>{</div><div> blurMask: QRegin</div><div> windowDecoration : bool (already in the Window element read qwindowitem.h)</div><div>}</div></div><div><br></div><div>Yes, ApplicationWindow will have all the flags set by default to blur the background and be a transparent window. The blurMask will be used to determine what to blur.</div>
<div>This is specifically for FrameSvg in C++ and FrameSvgItem in QML (long live naming consistency..) This does mean that the Frame* QML Components will need to have a (read only) mask property which can be set in the ApplicationWindow component and will be used for blurring. Ideally there is going to be a new "FrameWindow" (or WindowFrame) component which combines FrameSvgItem and ApplicationWindow.</div>
<div><br></div><div>I in fact already had all this working about a year ago but was - at that time - hold back by Marco to commit it. That change was sadly lost during a re-install and discarding that code as not useful since it wasn't allowed to be committed anyway.</div>
<div><br></div><div>I do like to make this - again - but only if i get the GO that it will not be in vein and a waste of time. I really want to have this one settled before i even start.</div><div><br></div><div>So:</div>
<div>- If you have any additions to the ApplicationWindow API as described above, please do tell.</div><div>- Any other issues/naming/whatever, please do tell.</div><div>- I will only begin with this if i get the GO that it makes a chance of actually being committed otherwise my efforts are in vein again which i want to prevent!</div>
<div><br></div><div>I can't wait to see those replies on this proposal :)</div><div><br></div><div>Cheers,</div><div>Mark</div>