[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Plasma ApplicationWindow component proposal.
From:       Mark <markg85 () gmail ! com>
Date:       2012-05-29 10:11:34
Message-ID: CAPd6JnEZxZb6q-eokQwt-BOtwFsyAWHfTOrfPaE=oAq53HtCPQ () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi,

since we don't really seem to be getting away from a ApplicationWindow
component i will just try to start the discussion for it.
I'd like to implement a ApplicationWindow component that follows
http://qt.gitorious.org/qt-components/desktop/blobs/master/components/ApplicationWindow.qml
 thus
in plasma that will become:

PlasmaComponents.ApplicationWindow
{
  ...
}

Note: ApplicationWindow creates a QWindowItem:
http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.h
All relevant files:
http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.h
http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qwindowitem.cpp
http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qtoplevelwindow.h
http://qt.gitorious.org/qt-components/desktop/blobs/master/src/qtoplevelwindow.cpp

I would basically copy the above files and add them to
http://quickgit.kde.org/index.php?p=kde-runtime.git&a=tree&h=bad8a1c734c571f678cb5809b \
72586e2e3dc9563&hb=294470c860f548944ac44d83aff98996a075fcd3&f=plasma%2Fdeclarativeimports%2Fplasmacomponents


The advantages for a ApplicationWindow are (in my case):
- Full control over a window element.
- 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++.
- I only have to pass new positions from the C++ side

You do in fact end up with 2 new elements:
.ApplicationWindow
.Window

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:
PlasmaComponents.ApplicationWindow
{
  blurMask: QRegin
  windowDecoration : bool (already in the Window element read qwindowitem.h)
}

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.
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.

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.

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.

So:
- If you have any additions to the ApplicationWindow API as described
above, please do tell.
- Any other issues/naming/whatever, please do tell.
- 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!

I can't wait to see those replies on this proposal :)

Cheers,
Mark


[Attachment #5 (text/html)]

Hi,<div><br></div><div>since we don&#39;t really seem to be getting away from a \
ApplicationWindow component i will just try to start the discussion for \
it.</div><div>I&#39;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&amp;a=tree&amp;h=bad8a1c734c \
571f678cb5809b72586e2e3dc9563&amp;hb=294470c860f548944ac44d83aff98996a075fcd3&amp;f=plasma%2Fdeclarativeimports%2Fplasmacomponents" \
target="_blank">http://quickgit.kde.org/index.php?p=kde-runtime.git&amp;a=tree&amp;h=b \
ad8a1c734c571f678cb5809b72586e2e3dc9563&amp;hb=294470c860f548944ac44d83aff98996a075fcd3&amp;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&#39;t know how to do that) and make \
ApplicationWindow public with the &quot;api&quot; 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 &quot;FrameWindow&quot; \
(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&#39;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&#39;t wait to see those replies on this proposal \
:)</div><div><br></div><div>Cheers,</div><div>Mark</div>



_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic