On Tuesday 02 December 2008, Alexis Ménard wrote: > On Tue, Dec 2, 2008 at 12:02 PM, Christian Mollekopf > > <[EMAIL PROTECTED]>wrote: > > Am 02.12.2008, 11:43 Uhr, schrieb Marco Martin <[EMAIL PROTECTED]>: > > > On Tuesday 02 December 2008, Alexis Ménard wrote: > > >> And the layout is recreated again and again, i am sure we can find a > > >> solution for that. > > > > > > time ago i tried to remove that thing, it resulted in empty holes still > > > sized > > > as there were items in it, so then tried with a simple qt program and > > > the problem wasn't there, so it must be a problem somewhere in > > > layoutwidget.cpp, > > > but it's pretty complex, really wasn't able to track it down > > > > Since i did most of this stuff i should attend the meeting as well =) > > Good for me is between 20.00- 24.00 GMT+1, today for instance would be > > good. > > > > The layout recreation is a workaround since the QGraphicsGridLayout > > doesn't remove the items properly. > > I think Aaron and Marco agreed on this workaround an we will have to keep > > it that way until it's fixed in QT. > > If the problem is in Qt then i will fix it, it's my job. And removing items > should work and must work... > I have already used QGraphicsGridLayout and it should work as far as i know > and the last time i used it. > Anyway if the bug exist why don't you write to the support of Qt Software > about that? > I have actually screen all QGraphicsLayout tasks and there are no such of > things. So the bug will never be fixed if it exist.
i was pretty convinced it was a qt bug too, but when i tried the attached program it worked as expected, so it mst be something in layoutwidget. the very odd thing is that at the time i tried to put a loop that manually removed all the items from the layout util it was empty before the relayouting, and the problem was still here sooo i really have no idea on what could be O.o > Anyway i will take a look at it... > > > Regards, > > > > Christian > > > > >> 2008/12/2 Aaron J. Seigo <[EMAIL PROTECTED]> > > >> > > >> > hi... > > >> > > > >> > i'd like to have a tasks widget hacking day. > > >> > > > >> > the reason for this i that the code is something of a mess > > >> > internally > > >> > > >> and > > >> > > >> > imho > > >> > it's unmaintainable in its current state. i say this because > > >> > changing little > > >> > things in one place often create rather unexpected results; there's > > >> > a good amount of unreachable code; there's what looks to be some > > >> > pretty obvious memory leaks (e.g. Tasks::m_groupTaskItems never > > >> > seems to have items removed > > >> > from it!); Tasks does bookkeeping, but for only some things, and > > >> > this bookkeeping is controlled from Tasks, LayoutWidget *and* > > >> > > >> TaskGroupItem! > > >> > > >> > there are bugs that sometimes results in "holes" showing up in the > > >> > layout, grouping not working reliably on start up and more. > > >> > > > >> > if we ship with it like this, we will hate ourselves later. > > >> > > > >> > unfortunately, i'm not particularly sure what all the reasons and > > >> > rationals are for some of the code decisions. > > >> > > > >> > so if you have been working on the tasks widget in the last month or > > >> > > >> two, > > >> > > >> > please respond in this thread with when would be a good time and day > > >> > > >> for > > >> > > >> > you > > >> > so we can get together on irc and sort this thing out. =) > > >> > > > >> > -- > > >> > Aaron J. Seigo > > >> > humru othro a kohnu se > > >> > GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43 > > >> > > > >> > KDE core developer sponsored by Qt Software > > >> > > > >> > > > >> > _______________________________________________ > > >> > Plasma-devel mailing list > > >> > Plasma-devel@kde.org > > >> > https://mail.kde.org/mailman/listinfo/plasma-devel > > > > > > _______________________________________________ > > > Plasma-devel mailing list > > > Plasma-devel@kde.org > > > https://mail.kde.org/mailman/listinfo/plasma-devel > > > > -- > > Erstellt mit Operas revolutionärem E-Mail-Modul: > > http://www.opera.com/mail/ > > _______________________________________________ > > Plasma-devel mailing list > > Plasma-devel@kde.org > > https://mail.kde.org/mailman/listinfo/plasma-devel
#include <QApplication> #include <QGraphicsScene> #include <QGraphicsView> #include <QGraphicsWidget> #include <QDebug> #include <QStyleOptionGraphicsItem> #include <QGraphicsGridLayout> class TestWidget : public QGraphicsWidget { public: TestWidget(QGraphicsItem * parent = 0, Qt::WindowFlags wFlags = 0 ); ~TestWidget(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QColor background; }; TestWidget::TestWidget(QGraphicsItem * parent, Qt::WindowFlags wFlags) : QGraphicsWidget(parent, wFlags ) { background = Qt::green; } TestWidget::~TestWidget() {} void TestWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { painter->fillRect(option->rect, background); } int main(int argc, char **argv) { QApplication app(argc, argv); QGraphicsScene scene; TestWidget *outerWidget = new TestWidget(0,Qt::Window); outerWidget->background = Qt::red; outerWidget->resize(100,100); QGraphicsGridLayout *lay = new QGraphicsGridLayout(outerWidget); outerWidget->setWindowFrameMargins(10,10,10,10); scene.addItem(outerWidget); TestWidget *widget00 = new TestWidget(outerWidget); TestWidget *widget01 = new TestWidget(outerWidget); TestWidget *widget10 = new TestWidget(outerWidget); TestWidget *widget11 = new TestWidget(outerWidget); lay->addItem(widget00,0,0); lay->addItem(widget01,0,1); lay->addItem(widget10,1,0); lay->addItem(widget11,1,1); lay->removeAt(2); lay->removeAt(2); QGraphicsView view(&scene); view.show(); return app.exec(); }
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel