tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp File Reference

#include "ui4_p.h"
#include <spacer_widget_p.h>
#include <qdesigner_formbuilder_p.h>
#include "widgetbox_dnditem.h"

Include dependency graph for widgetbox_dnditem.cpp:

Go to the source code of this file.

Classes

class  WidgetBoxResource

Functions

static QSize geometryProp (DomWidget *dw)
static QSize domWidgetSize (DomWidget *dw)
static QWidgetdecorationFromDomWidget (DomWidget *dom_widget, QDesignerFormEditorInterface *core)


Function Documentation

static QWidget* decorationFromDomWidget ( DomWidget dom_widget,
QDesignerFormEditorInterface core 
) [static]

Definition at line 119 of file widgetbox_dnditem.cpp.

References WidgetBoxResource::createWidget(), domWidgetSize(), QSize::height(), QWidget::resize(), QWidget::setWindowOpacity(), size, Qt::ToolTip, w, and QSize::width().

Referenced by qdesigner_internal::WidgetBoxDnDItem::WidgetBoxDnDItem().

00120 {
00121     QWidget *result = new QWidget(0, Qt::ToolTip);
00122 
00123     WidgetBoxResource builder(core);
00124     QWidget *w = builder.createWidget(dom_widget, result);
00125     QSize size = domWidgetSize(dom_widget);
00126     QSize minimumSize = w->minimumSizeHint();
00127     if (!size.isValid())
00128         size = w->sizeHint();
00129     if (size.width() < minimumSize.width())
00130         size.setWidth(minimumSize.width());
00131     if (size.height() < minimumSize.height())
00132         size.setHeight(minimumSize.height());
00133     w->setGeometry(QRect(QPoint(0, 0), size));
00134     result->resize(size);
00135     result->setWindowOpacity(0.8);
00136 
00137     return result;
00138 }

Here is the call graph for this function:

static QSize domWidgetSize ( DomWidget dw  )  [static]

Definition at line 93 of file widgetbox_dnditem.cpp.

References DomWidget::elementLayout(), DomWidget::elementWidget(), geometryProp(), and size.

Referenced by decorationFromDomWidget().

00094 {
00095     QSize size = geometryProp(dw);
00096     if (size.isValid())
00097         return size;
00098 
00099     foreach (DomWidget *child, dw->elementWidget()) {
00100         size = geometryProp(child);
00101         if (size.isValid())
00102             return size;
00103     }
00104 
00105     foreach (DomLayout *dl, dw->elementLayout()) {
00106         foreach (DomLayoutItem *item, dl->elementItem()) {
00107             DomWidget *child = item->elementWidget();
00108             if (child == 0)
00109                 continue;
00110             size = geometryProp(child);
00111             if (size.isValid())
00112                 return size;
00113         }
00114     }
00115 
00116     return QSize();
00117 }

Here is the call graph for this function:

static QSize geometryProp ( DomWidget dw  )  [static]

Definition at line 79 of file widgetbox_dnditem.cpp.

References DomProperty::attributeName(), DomRect::elementHeight(), DomWidget::elementProperty(), DomProperty::elementRect(), and DomRect::elementWidth().

Referenced by domWidgetSize().

00080 {
00081     QList<DomProperty*> prop_list = dw->elementProperty();
00082     foreach (DomProperty *prop, prop_list) {
00083         if (prop->attributeName() != QLatin1String("geometry"))
00084             continue;
00085         DomRect *dr = prop->elementRect();
00086         if (dr == 0)
00087             continue;
00088         return QSize(dr->elementWidth(), dr->elementHeight());
00089     }
00090     return QSize();
00091 }

Here is the call graph for this function:


Generated on Thu Mar 15 14:21:50 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1