[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-panel-devel
Subject: Re: Review Request: Convert libplasma to new qt4.4 technologies.
From: Dan Meltzer <parallelgrapefruit () gmail ! com>
Date: 2008-02-29 19:59:25
Message-ID: 20080229195925.22332.26278 () localhost
[Download RAW message or body]
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://mattr.info/r/187/
-----------------------------------------------------------
(Updated 2008-02-29 13:59:25.415370)
Review request for Plasma.
Summary
-------
This patch converts libplasma to use the new technologies found in Qt 4.4. It does \
the following things:
1) Makes Plasma::Widget descend from QGraphicsWidget: This change allows for a lot \
of code simplification, widget.cpp shrinks by about 200 lines after removing \
redundant code. We cannot replace Plasma::Widget with QGraphicsWidget everywhere \
directly, as there still are some things in widget that we need. This patch also \
removes Widget::expandingDirections in favor of using sizePolicies.
2) Removes Plasma::Layout and Plasma::LayoutItem: These have been replaced by \
QGraphicsLayout and QGraphicsLayoutItem respectivly. All layouts with the exception \
of boxlayout have been converted to use QGraphicsLayout.
3) Removes Boxlayout. QGraphicsLinearLayout replaces BoxLayout at this time. There \
are a few things that boxlayout had that QGraphicsLayout does not at this point, but \
they are not entirly important on a wide scale I do not believe.
4) Disables LayoutAnimator. This is going to need to be ported to work with the new \
layouting concepts and classes. When I last spoke with aseigo it sounded like \
LayoutAnimator needed some rethinking anyways, so I have just disabled it for now.
A few notes: This patch is only the section of the patch applying to libplasma. I \
have another equally big patch that I need to clean up that converts \
workspace/plasma. I hope to post that in the next few days. Also, there are some \
bugs either in my changes or in qt4.4 (I have not been able to determine which, and \
reguardless they appear in the applets part of the patch, not the libs. There is an \
assert in qt code (found here) that happens after raising()/lowering() items on the \
panel a bunch.. or sometimes just a few times.
ASSERT: "ascent >= 0.0" in file graphicsview/qgridlayoutengine.cpp, line 82
Program received signal SIGABRT, Aborted.
[Switching to Thread -1256732960 (LWP 9192)]
0xb7eea7f2 in ?? () from /lib/ld-linux.so.2
(gdb) bt
#0 0xb7eea7f2 in ?? () from /lib/ld-linux.so.2
#1 0xb6056875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb6058201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xb7090de8 in qt_message_output (msgType=QtFatalMsg,
buf=0xbff01670 "ASSERT: \"ascent >= 0.0\" in file graphicsview/qgridlayouten
gine.cpp, line 82") at global/qglobal.cpp:2051
#4 0xb7090e6d in qFatal (msg=0xb7205dc4 "ASSERT: \"%s\" in file %s, line %d")
at global/qglobal.cpp:2253
#5 0xb7091309 in qt_assert (assertion=0xb6d6c53a "ascent >= 0.0",
file=0xb6d6c508 "graphicsview/qgridlayoutengine.cpp", line=82)
at global/qglobal.cpp:1821
#6 0xb6cdabc3 in fixedDescent (descent=28, ascent=-1, targetSize=28)
at graphicsview/qgridlayoutengine.cpp:82
#7 0xb6cdf7a3 in QGridLayoutRowData::calculateGeometries (this=0x8291cf4,
start=0, end=1, targetSize=28, positions=0x8315758, sizes=0x8315808,
descents=0x8315830, totalBox=@0x8291d30)
at graphicsview/qgridlayoutengine.cpp:387
#8 0xb6ce015c in QGridLayoutEngine::ensureGeometries (this=0x8291c7c,
styleInfo=@0xbff049dc, size=@0xbff04940)
at graphicsview/qgridlayoutengine.cpp:1397
#9 0xb6ce040b in QGridLayoutEngine::setGeometries (this=0x8291c7c,
styleInfo=@0xbff049dc, contentsGeometry=@0xbff049b8)
at graphicsview/qgridlayoutengine.cpp:913
---Type <return> to continue, or q <return> to quit---
#10 0xb6cd1216 in QGraphicsLinearLayout::setGeometry (this=0x82bd6e0,
rect=@0xbff04a58) at graphicsview/qgraphicslinearlayout.cpp:483
#11 0xb6ccdedf in QGraphicsLayout::activate (this=0x82bd6e0)
at graphicsview/qgraphicslayout.cpp:234
#12 0xb6ccdfa1 in QGraphicsLayout::widgetEvent (this=0x82bd6e0, e=0x86d9340)
at graphicsview/qgraphicslayout.cpp:295
#13 0xb6cd23e1 in QGraphicsWidget::event (this=0x8171dd0, event=0x86d9340)
at graphicsview/qgraphicswidget.cpp:1065
#14 0xb662f257 in QApplicationPrivate::notify_helper (this=0x8078480,
receiver=0x8171dd0, e=0x86d9340) at kernel/qapplication.cpp:3761
#15 0xb662f549 in QApplication::notify (this=0x8072c30, receiver=0x8171dd0,
e=0x86d9340) at kernel/qapplication.cpp:3355
#16 0xb786530f in KApplication::notify (this=0x8072c30, receiver=0x8171dd0,
event=0x86d9340)
at /home/hydrogen/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:311
#17 0xb71a5d3b in QCoreApplication::notifyInternal (this=0x8072c30,
receiver=0x8171dd0, event=0x86d9340) at kernel/qcoreapplication.cpp:586
#18 0xb71a9f09 in QCoreApplication::sendEvent (receiver=0x8171dd0,
event=0x86d9340)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#19 0xb71a62dc in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0,
event_type=0, data=0x804bbf0) at kernel/qcoreapplication.cpp:1191
#20 0xb71a6551 in QCoreApplication::sendPostedEvents (receiver=0x0,
---Type <return> to continue, or q <return> to quit---
event_type=0) at kernel/qcoreapplication.cpp:1084
#21 0xb71dba4e in QCoreApplication::sendPostedEvents ()
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#22 0xb71da903 in postEventSourceDispatch (s=0x807a8a0)
at kernel/qeventdispatcher_glib.cpp:211
#23 0xb5e3f11c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#24 0xb5e4255f in ?? () from /usr/lib/libglib-2.0.so.0
In addition, items on the taskbar grow every time setText() is called on them, not \
sure if this is related or not.
The request here is for review of the idea and changes made, with the understanding \
that there may be more review necessary once the second part of the changes get \
posted.
Diffs
-----
trunk/KDE/kdebase/workspace/libs/plasma/CMakeLists.txt
trunk/KDE/kdebase/workspace/libs/plasma/applet.h
trunk/KDE/kdebase/workspace/libs/plasma/applet.cpp
trunk/KDE/kdebase/workspace/libs/plasma/containment.h
trunk/KDE/kdebase/workspace/libs/plasma/containment.cpp
trunk/KDE/kdebase/workspace/libs/plasma/corona.cpp
trunk/KDE/kdebase/workspace/libs/plasma/layouts/borderlayout.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/borderlayout.cpp
trunk/KDE/kdebase/workspace/libs/plasma/layouts/boxlayout.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/boxlayout.cpp
trunk/KDE/kdebase/workspace/libs/plasma/layouts/fliplayout.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/flowlayout.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/flowlayout.cpp
trunk/KDE/kdebase/workspace/libs/plasma/layouts/freelayout.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/freelayout.cpp
trunk/KDE/kdebase/workspace/libs/plasma/layouts/layout.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/layout.cpp
trunk/KDE/kdebase/workspace/libs/plasma/layouts/layoutitem.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/layoutitem.cpp
trunk/KDE/kdebase/workspace/libs/plasma/layouts/nodelayout.h
trunk/KDE/kdebase/workspace/libs/plasma/layouts/nodelayout.cpp
trunk/KDE/kdebase/workspace/libs/plasma/uiloader.h
trunk/KDE/kdebase/workspace/libs/plasma/uiloader.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/icon.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/icon.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/label.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/label.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/lineedit.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/lineedit.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/meter.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/meter.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/progressbar.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/progressbar.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/pushbutton.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/pushbutton.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/rectangle.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/rectangle.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/signalplotter.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/signalplotter.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/tests/testLayouts.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/tests/testProgressBar.cpp
trunk/KDE/kdebase/workspace/libs/plasma/widgets/widget.h
trunk/KDE/kdebase/workspace/libs/plasma/widgets/widget.cpp
Diff: http://mattr.info/r/187/diff
Testing
-------
Been using this patch for the past few days. There are still a number of crashes in \
what appears to be qt4.4 code, but these changes seem sound.
Thanks,
Dan
_______________________________________________
Panel-devel mailing list
Panel-devel@kde.org
https://mail.kde.org/mailman/listinfo/panel-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic