Hi,

ok I have found the problem. It was in the WImagePair class:

The following code produced the core:
WImagePair::WImagePair(WImage* image1, WImage* image2,
                     bool clickIsSwitch, WContainerWidget *parent)
   : WCompositeWidget(parent),
     impl_(new WContainerWidget()),
     icon1_(image1),
     icon2_(image2)
{
   setImplementation(impl_);
   impl_->addWidget(icon1_);
   impl_->addWidget(icon2_);
   impl_->setLoadLaterWhenInvisible(false);
   setImplementation(impl_);

   ...
}


And this fixes the core ;-)

WImagePair::WImagePair(WImage* image1, WImage* image2,
                     bool clickIsSwitch, WContainerWidget *parent)
   : WCompositeWidget(parent),
     impl_(new WContainerWidget()),
     icon1_(image1),
     icon2_(image2)
{
   impl_->addWidget(icon1_);
   impl_->addWidget(icon2_);
   setImplementation(impl_);
   /* ^^^^^^^^^^^^^^^
      Seems to me that the setImplementation() method has changed... */

   impl_->setLoadLaterWhenInvisible(false);

   ...
}

Stefan

Am 22.02.2013 12:03, schrieb Stefan Ruppert:
> Hi,
>
> I found the cause of the crash. Within our Wt app we wanted to use the
> WIconPair class. But with a sligthly modified WImage class. Therefore I
> copied the WIconPair to WImagePair which gets just already created
> WImage objects.
>
> The custom Image class adds support for showing a disabled (grey'd icon)!
>
> Adding a WImagePair object to a layout manager results in the previous
> mentioned core dump!
>
> I have attached the apropriate sources.
>
> class LeftViewShowImage : public Image
> {
>     public:
>        LeftViewShowImage(const Wt::WString& tooltip)
>      : Image(tooltip,
>         Wt::WLink(Wt::WApplication::resourcesUrl() +
> "icons/leftviewshow.png"),
>         Wt::WLink(Wt::WApplication::resourcesUrl() +
> "icons/leftviewshow_d.png"),
>         16, 16) {}
> };
>
> class LeftViewHideImage : public Image
> {
>     public:
>        LeftViewHideImage(const Wt::WString& tooltip)
>      : Image(tooltip,
>         Wt::WLink(Wt::WApplication::resourcesUrl() +
> "icons/leftviewhide.png"),
>         Wt::WLink(Wt::WApplication::resourcesUrl() +
> "icons/leftviewhide_d.png"),
>         16, 16) {}
> };
>
> mToggleLeftView =
> new WImagePair(new LeftViewHideImage(WString::tr("leftview-hide-text")),
>            new LeftViewShowImage(WString::tr("leftview-show-text")));
>
> mToggleLeftView->icon1Clicked().connect(this, &Browser::toggleLeftView);
> mToggleLeftView->icon2Clicked().connect(this, &Browser::toggleLeftView);
>
> HBoxLayout* hbox1 = new WHBoxLayout();
>
> adding this widget to a layout causes the crash!
> ====>  hbox1->addWidget(mToggleLeftView);
>
> Any idea?
>
>
> Regards,
> Stefan
>
>
> Am 22.02.2013 10:53, schrieb Stefan Ruppert:
>> Hi all,
>>
>> I'm currently trying to upgrade to Wt 3.3.0 from Wt 3.2.3. Compiling
>> just went fine. But during initialization I get the following core dump:
>>
>> It seems to me that some Widget/Layout we are using is not supported
>> anymore!?
>>
>> assert(false) within WContainerWidget::createLayoutItemImpl()!
>>
>> Any idea?
>>
>> Regards,
>> Stefan
>>
>>
>> #0  0x00007ffff6045425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
>> #1  0x00007ffff6048b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
>> #2  0x00007ffff603e0ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
>> #3  0x00007ffff603e192 in __assert_fail () from
>> /lib/x86_64-linux-gnu/libc.so.6
>> #4  0x00007ffff733faa7 in Wt::WContainerWidget::createLayoutItemImpl
>> (this=<optimized out>, item=0x7fffd4031570) at
>> /home/ruppert/work/wt/wt-3.3.0-rc2/src/Wt/WContainerWidget.C:176
>> #5  0x00007ffff74d9dc5 in Wt::WWidget::createSDomElement (this=0x3762,
>> app=0x376a) at /home/ruppert/work/wt/wt-3.3.0-rc2/src/Wt/WWidget.C:325
>> #6  0x00007ffff72b1f16 in Wt::StdWidgetItemImpl::createDomElement
>> (this=<optimized out>, fitWidth=<optimized out>, fitHeight=<optimized
>> out>, app=0x7fffd4031570) at
>> /home/ruppert/work/wt/wt-3.3.0-rc2/src/Wt/StdWidgetItemImpl.C:112
>> #7  0x00007ffff72ac267 in Wt::StdGridLayoutImpl2::createElement
>
>
>
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_feb
>
>
>
> _______________________________________________
> witty-interest mailing list
> witty-interest@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/witty-interest
>


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
witty-interest mailing list
witty-interest@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/witty-interest

Reply via email to