Project

General

Profile

WTreeView outside of WPanel is not displayed

Added by Víctor López over 13 years ago

Using WTreeView without using a WPanel doesn't display the WTreeView in some browsers (Chromium and Android 2.2 Default Browser).

Using the following code based on the example provided here: http://www.webtoolkit.eu/wt/doc/reference/html/classWt_1_1WStandardItemModel.html#_details

class WDiagnosticsAggDisplay : public Wt::WTreeView

{

public:

WDiagnosticsAggDisplay(Wt::WContainerWidget *parent=0);

void updateModel();

private:

Wt::WStandardItemModel *_itemModel;

};

WDiagnosticsAggDisplay::WDiagnosticsAggDisplay(Wt::WContainerWidget *parent)

: Wt::WTreeView(parent)

{

setSortingEnabled(false);

parent->resize(600,300);

_itemModel = new Wt::WStandardItemModel(this);

updateModel();

resize(300, Wt::WLength::Auto);

this->setModel(_itemModel);

setAlternatingRowColors(true);

setRowHeight(25);

setSelectionMode(Wt::SingleSelection);

}

void WDiagnosticsAggDisplay::updateModel()

{

int topLevelRows = 5;

int secondLevelRows = 7;

Wt::WStandardItem *root = _itemModel->invisibleRootItem();

for (int row = 0; row < topLevelRows; ++row) {

Wt::WStandardItem *topLevel = new Wt::WStandardItem();

root->appendRow(topLevel);

}

}

Using this widget, the WTreeView is seen as in the first 2 images attached (WTreeViewFirefox and WTreeViewChromium).

As you can see, it is not seen properly on Chronium, it also does not work on android (which is my goal).

I looked at the widget gallery source code and found that there a WPanel is added, and the WTreeView placed within.

So, if in the previous code, you replace:

parent->resize(600,300);

With:

Wt::WPanel *panel = new Wt::WPanel(parent);

panel->resize(600, 300);

panel->setCentralWidget(this);

The WTreeView is seen properly as in the 2 last pictures (WTreeViewFirefoxWPanel and WTreeViewChromiumWPanel).

Am I doing something wrong, is this working as intended or should I report it as a bug?

I can live with that WPanel, but it bugs me to add it just so that the page is displayed properly on other browsers.


Replies (1)

RE: WTreeView outside of WPanel is not displayed - Added by Koen Deforche over 13 years ago

Hey Victor,

In my opinion, a bug in webkit CSS handling of height: 100% (it should be ignored, at best). I've fixed this in latest git !

Regards,

koen

    (1-1/1)