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

Reply via email to