Speed up application loading

pull/2/head
Timothy Pearson 13 years ago
parent d1c6722372
commit 30c5994817

@ -2579,7 +2579,11 @@ QSize QStyle::sizeFromContents(ContentsType contents,
int QStyle::styleHint(StyleHint sh, const QWidget * w, const QStyleOption &so, QStyleHintReturn *shr) const int QStyle::styleHint(StyleHint sh, const QWidget * w, const QStyleOption &so, QStyleHintReturn *shr) const
{ {
QStyleControlElementData ceData = populateControlElementDataFromWidget(w, so, false); bool ceDataNotNeeded = false;
if (sh == SH_Widget_ShareActivation) {
ceDataNotNeeded = true;
}
QStyleControlElementData ceData = populateControlElementDataFromWidget(w, so, false, ceDataNotNeeded);
return styleHint(sh, ceData, getControlElementFlagsForObject(w, ceData.widgetObjectTypes, QStyleOption(), false), so, shr, w); return styleHint(sh, ceData, getControlElementFlagsForObject(w, ceData.widgetObjectTypes, QStyleOption(), false), so, shr, w);
} }

@ -1231,6 +1231,7 @@ Q_EXPORT QStyleControlElementData populateControlElementDataFromWidget(const QWi
Q_EXPORT QStyleControlElementData populateControlElementDataFromApplication(const QApplication* app, const QStyleOption& opt, bool populateReliantFields=true); Q_EXPORT QStyleControlElementData populateControlElementDataFromApplication(const QApplication* app, const QStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT QStyle::ControlElementFlags getControlElementFlagsForObject(const QObject* object, QStringList objectTypeList, const QStyleOption& opt, bool populateReliantFields=true); Q_EXPORT QStyle::ControlElementFlags getControlElementFlagsForObject(const QObject* object, QStringList objectTypeList, const QStyleOption& opt, bool populateReliantFields=true);
Q_EXPORT QStringList getObjectTypeListForObject(const QObject* object); Q_EXPORT QStringList getObjectTypeListForObject(const QObject* object);
Q_EXPORT QStyleControlElementData populateControlElementDataFromWidget(const QWidget* widget, const QStyleOption& opt, bool populateReliantFields, bool populateMinimumNumberOfFields);
#endif // QT_NO_STYLE #endif // QT_NO_STYLE
#endif // QSTYLE_H #endif // QSTYLE_H

@ -251,421 +251,429 @@ QStyle::ControlElementFlags getControlElementFlagsForObject(const QObject* objec
} }
QStyleControlElementData populateControlElementDataFromWidget(const QWidget* widget, const QStyleOption& opt, bool populateReliantFields) { QStyleControlElementData populateControlElementDataFromWidget(const QWidget* widget, const QStyleOption& opt, bool populateReliantFields) {
return populateControlElementDataFromWidget(widget, opt, populateReliantFields, false);
}
QStyleControlElementData populateControlElementDataFromWidget(const QWidget* widget, const QStyleOption& opt, bool populateReliantFields, bool populateMinimumNumberOfFields) {
QStyleControlElementData ceData; QStyleControlElementData ceData;
if (widget) { if (widget) {
ceData.widgetObjectTypes = getObjectTypeListForObject(widget); ceData.widgetObjectTypes = getObjectTypeListForObject(widget);
ceData.allDataPopulated = populateReliantFields; ceData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
const QPixmap* erasePixmap = widget->backgroundPixmap(); if (!populateMinimumNumberOfFields) {
if (erasePixmap) { const QPixmap* erasePixmap = widget->backgroundPixmap();
ceData.bgPixmap = *erasePixmap; if (erasePixmap) {
} ceData.bgPixmap = *erasePixmap;
if (populateReliantFields) { }
ceData.bgBrush = widget->backgroundBrush(); if (populateReliantFields) {
ceData.bgBrush = widget->backgroundBrush();
ceData.windowState = (Qt::WindowState)(widget->windowState());
}
} }
ceData.wflags = widget->getWFlags(); ceData.wflags = widget->getWFlags();
if (populateReliantFields) { if (!populateMinimumNumberOfFields) {
ceData.windowState = (Qt::WindowState)(widget->windowState()); ceData.bgColor = widget->eraseColor();
} ceData.bgOffset = widget->backgroundOffset();
ceData.bgColor = widget->eraseColor(); ceData.backgroundMode = widget->backgroundMode();
ceData.bgOffset = widget->backgroundOffset(); if (populateReliantFields) {
ceData.backgroundMode = widget->backgroundMode(); ceData.fgColor = widget->foregroundColor();
if (populateReliantFields) { ceData.colorGroup = widget->colorGroup();
ceData.fgColor = widget->foregroundColor(); ceData.paletteBgColor = widget->paletteBackgroundColor();
ceData.colorGroup = widget->colorGroup(); }
ceData.paletteBgColor = widget->paletteBackgroundColor(); ceData.geometry = widget->geometry();
} ceData.rect = widget->rect();
ceData.geometry = widget->geometry(); ceData.pos = widget->pos();
ceData.rect = widget->rect(); const QPixmap* icon = widget->icon();
ceData.pos = widget->pos(); if (icon) {
const QPixmap* icon = widget->icon(); ceData.icon = *icon;
if (icon) { }
ceData.icon = *icon; ceData.palette = widget->palette();
ceData.font = widget->font();
} }
ceData.palette = widget->palette();
ceData.font = widget->font();
ceData.name = widget->name(); ceData.name = widget->name();
ceData.caption = widget->caption(); ceData.caption = widget->caption();
if (ceData.widgetObjectTypes.contains("QPushButton")) { if (!populateMinimumNumberOfFields) {
const QPushButton *button = dynamic_cast<const QPushButton*>(widget); if (ceData.widgetObjectTypes.contains("QPushButton")) {
if (button) { const QPushButton *button = dynamic_cast<const QPushButton*>(widget);
QIconSet* iconSet = 0; if (button) {
const QPixmap* fgPixmap = 0; QIconSet* iconSet = 0;
iconSet = button->iconSet(); const QPixmap* fgPixmap = 0;
fgPixmap = button->pixmap(); iconSet = button->iconSet();
if (iconSet) { fgPixmap = button->pixmap();
ceData.iconSet = *iconSet; if (iconSet) {
} ceData.iconSet = *iconSet;
if (fgPixmap) { }
ceData.fgPixmap = *fgPixmap; if (fgPixmap) {
ceData.fgPixmap = *fgPixmap;
}
} }
} }
} if (ceData.widgetObjectTypes.contains("QToolButton")) {
if (ceData.widgetObjectTypes.contains("QToolButton")) { const QToolButton *button = dynamic_cast<const QToolButton*>(widget);
const QToolButton *button = dynamic_cast<const QToolButton*>(widget); if (button) {
if (button) { const QPixmap* fgPixmap = 0;
const QPixmap* fgPixmap = 0; ceData.iconSet = button->iconSet();
ceData.iconSet = button->iconSet(); fgPixmap = button->pixmap();
fgPixmap = button->pixmap(); if (fgPixmap) {
if (fgPixmap) { ceData.fgPixmap = *fgPixmap;
ceData.fgPixmap = *fgPixmap; }
ceData.textLabel = button->textLabel();
ceData.toolButtonTextPosition = button->textPosition();
ceData.popupDelay = button->popupDelay();
} }
ceData.textLabel = button->textLabel();
ceData.toolButtonTextPosition = button->textPosition();
ceData.popupDelay = button->popupDelay();
} }
} if (ceData.widgetObjectTypes.contains("QCheckBox")) {
if (ceData.widgetObjectTypes.contains("QCheckBox")) { const QCheckBox *button = dynamic_cast<const QCheckBox*>(widget);
const QCheckBox *button = dynamic_cast<const QCheckBox*>(widget); if (button) {
if (button) { const QPixmap* fgPixmap = 0;
const QPixmap* fgPixmap = 0; fgPixmap = button->pixmap();
fgPixmap = button->pixmap(); if (fgPixmap) {
if (fgPixmap) { ceData.fgPixmap = *fgPixmap;
ceData.fgPixmap = *fgPixmap; }
} }
} }
} if (ceData.widgetObjectTypes.contains("QRadioButton")) {
if (ceData.widgetObjectTypes.contains("QRadioButton")) { const QRadioButton *button = dynamic_cast<const QRadioButton*>(widget);
const QRadioButton *button = dynamic_cast<const QRadioButton*>(widget); if (button) {
if (button) { const QPixmap* fgPixmap = 0;
const QPixmap* fgPixmap = 0; fgPixmap = button->pixmap();
fgPixmap = button->pixmap(); if (fgPixmap) {
if (fgPixmap) { ceData.fgPixmap = *fgPixmap;
ceData.fgPixmap = *fgPixmap; }
} }
} }
} if (ceData.widgetObjectTypes.contains("QButton")) {
if (ceData.widgetObjectTypes.contains("QButton")) { const QButton *button = dynamic_cast<const QButton*>(widget);
const QButton *button = dynamic_cast<const QButton*>(widget); if (button) {
if (button) { ceData.text = button->text();
ceData.text = button->text();
}
}
if (ceData.widgetObjectTypes.contains("QTabBar")) {
const QTabBar *tb = dynamic_cast<const QTabBar*>(widget);
if (tb) {
ceData.tabBarData.tabCount = tb->count();
ceData.tabBarData.currentTabIndex = tb->currentTab();
ceData.tabBarData.shape = tb->shape();
ceData.tabBarData.identIndexMap.clear();
const QTab* currentTab;
for (int i=0; i<tb->count(); ++i) {
currentTab = tb->tabAt(i);
if (currentTab) {
ceData.tabBarData.identIndexMap[currentTab->identifier()] = tb->indexOf(currentTab->identifier());
}
} }
const QTabWidget *tw = dynamic_cast<const QTabWidget*>(tb->parent()); }
if (tw) { if (ceData.widgetObjectTypes.contains("QTabBar")) {
QWidget *cw; const QTabBar *tb = dynamic_cast<const QTabBar*>(widget);
cw = tw->cornerWidget(Qt::TopLeft); if (tb) {
if(cw) { ceData.tabBarData.tabCount = tb->count();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].widgetObjectTypes = getObjectTypeListForObject(cw); ceData.tabBarData.currentTabIndex = tb->currentTab();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].geometry = cw->geometry(); ceData.tabBarData.shape = tb->shape();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].rect = cw->rect(); ceData.tabBarData.identIndexMap.clear();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].pos = cw->pos(); const QTab* currentTab;
} for (int i=0; i<tb->count(); ++i) {
cw = tw->cornerWidget(Qt::TopRight); currentTab = tb->tabAt(i);
if(cw) { if (currentTab) {
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].widgetObjectTypes = getObjectTypeListForObject(cw); ceData.tabBarData.identIndexMap[currentTab->identifier()] = tb->indexOf(currentTab->identifier());
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].geometry = cw->geometry(); }
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].rect = cw->rect();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].pos = cw->pos();
}
cw = tw->cornerWidget(Qt::BottomLeft);
if(cw) {
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].widgetObjectTypes = getObjectTypeListForObject(cw);
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].rect = cw->rect();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].pos = cw->pos();
} }
cw = tw->cornerWidget(Qt::BottomRight); const QTabWidget *tw = dynamic_cast<const QTabWidget*>(tb->parent());
if(cw) { if (tw) {
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].widgetObjectTypes = getObjectTypeListForObject(cw); QWidget *cw;
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].geometry = cw->geometry(); cw = tw->cornerWidget(Qt::TopLeft);
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].rect = cw->rect(); if(cw) {
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].pos = cw->pos(); ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].widgetObjectTypes = getObjectTypeListForObject(cw);
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].rect = cw->rect();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopLeft].pos = cw->pos();
}
cw = tw->cornerWidget(Qt::TopRight);
if(cw) {
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].widgetObjectTypes = getObjectTypeListForObject(cw);
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].rect = cw->rect();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_TopRight].pos = cw->pos();
}
cw = tw->cornerWidget(Qt::BottomLeft);
if(cw) {
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].widgetObjectTypes = getObjectTypeListForObject(cw);
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].rect = cw->rect();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomLeft].pos = cw->pos();
}
cw = tw->cornerWidget(Qt::BottomRight);
if(cw) {
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].widgetObjectTypes = getObjectTypeListForObject(cw);
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].geometry = cw->geometry();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].rect = cw->rect();
ceData.tabBarData.cornerWidgets[QStyleControlElementTabBarData::CWL_BottomRight].pos = cw->pos();
}
} }
} }
} }
} if (ceData.widgetObjectTypes.contains("QToolBox")) {
if (ceData.widgetObjectTypes.contains("QToolBox")) { const QToolBox *tb = dynamic_cast<const QToolBox*>(widget);
const QToolBox *tb = dynamic_cast<const QToolBox*>(widget); if (tb) {
if (tb) { const QWidget* currentItem = tb->currentItem();
const QWidget* currentItem = tb->currentItem(); if (currentItem) {
if (currentItem) { ceData.activeItemPaletteBgColor = currentItem->paletteBackgroundColor();
ceData.activeItemPaletteBgColor = currentItem->paletteBackgroundColor(); }
} }
} }
} if (ceData.widgetObjectTypes.contains("QProgressBar")) {
if (ceData.widgetObjectTypes.contains("QProgressBar")) { const QProgressBar *pb = dynamic_cast<const QProgressBar*>(widget);
const QProgressBar *pb = dynamic_cast<const QProgressBar*>(widget); if (pb) {
if (pb) { ceData.currentStep = pb->progress();
ceData.currentStep = pb->progress(); ceData.totalSteps = pb->totalSteps();
ceData.totalSteps = pb->totalSteps(); ceData.progressText = pb->progressString();
ceData.progressText = pb->progressString(); ceData.percentageVisible = pb->percentageVisible();
ceData.percentageVisible = pb->percentageVisible(); ceData.orientation = pb->orientation();
ceData.orientation = pb->orientation(); }
} }
} if (ceData.widgetObjectTypes.contains("QHeader")) {
if (ceData.widgetObjectTypes.contains("QHeader")) { const QHeader *header = dynamic_cast<const QHeader*>(widget);
const QHeader *header = dynamic_cast<const QHeader*>(widget); if (header) {
if (header) { int section = opt.headerSection();
int section = opt.headerSection(); QIconSet* iconSet = 0;
QIconSet* iconSet = 0; iconSet = header->iconSet(section);
iconSet = header->iconSet(section); ceData.textLabel = header->label(section);
ceData.textLabel = header->label(section); if (iconSet) {
if (iconSet) { ceData.iconSet = *iconSet;
ceData.iconSet = *iconSet; }
} }
} }
} // Complex Controls
// Complex Controls if (ceData.widgetObjectTypes.contains("QScrollBar")) {
if (ceData.widgetObjectTypes.contains("QScrollBar")) { const QScrollBar *sb = dynamic_cast<const QScrollBar*>(widget);
const QScrollBar *sb = dynamic_cast<const QScrollBar*>(widget); if (sb) {
if (sb) { ceData.orientation = sb->orientation();
ceData.orientation = sb->orientation(); ceData.minSteps = sb->minValue();
ceData.minSteps = sb->minValue(); ceData.maxSteps = sb->maxValue();
ceData.maxSteps = sb->maxValue(); ceData.currentStep = sb->value();
ceData.currentStep = sb->value(); ceData.startStep = sb->sliderStart();
ceData.startStep = sb->sliderStart(); ceData.lineStep = sb->lineStep();
ceData.lineStep = sb->lineStep(); ceData.pageStep = sb->pageStep();
ceData.pageStep = sb->pageStep(); if (populateReliantFields) {
if (populateReliantFields) { ceData.sliderRect = sb->sliderRect();
ceData.sliderRect = sb->sliderRect(); }
} }
} }
} if (ceData.widgetObjectTypes.contains("QSlider")) {
if (ceData.widgetObjectTypes.contains("QSlider")) { const QSlider *sl = dynamic_cast<const QSlider*>(widget);
const QSlider *sl = dynamic_cast<const QSlider*>(widget); if (sl) {
if (sl) { ceData.orientation = sl->orientation();
ceData.orientation = sl->orientation(); ceData.minSteps = sl->minValue();
ceData.minSteps = sl->minValue(); ceData.maxSteps = sl->maxValue();
ceData.maxSteps = sl->maxValue(); ceData.tickMarkSetting = sl->tickmarks();
ceData.tickMarkSetting = sl->tickmarks(); ceData.tickInterval = sl->tickInterval();
ceData.tickInterval = sl->tickInterval(); ceData.currentStep = sl->value();
ceData.currentStep = sl->value(); ceData.startStep = sl->sliderStart();
ceData.startStep = sl->sliderStart(); ceData.lineStep = sl->lineStep();
ceData.lineStep = sl->lineStep(); ceData.pageStep = sl->pageStep();
ceData.pageStep = sl->pageStep(); if (populateReliantFields) {
if (populateReliantFields) { ceData.sliderRect = sl->sliderRect();
ceData.sliderRect = sl->sliderRect(); }
} }
} }
} if (ceData.widgetObjectTypes.contains("QDialogButtons")) {
if (ceData.widgetObjectTypes.contains("QDialogButtons")) { const QDialogButtons *dlgbtns = dynamic_cast<const QDialogButtons*>(widget);
const QDialogButtons *dlgbtns = dynamic_cast<const QDialogButtons*>(widget); if (dlgbtns) {
if (dlgbtns) { ceData.orientation = dlgbtns->orientation();
ceData.orientation = dlgbtns->orientation(); ceData.dlgVisibleButtons = dlgbtns->visibleButtons();
ceData.dlgVisibleButtons = dlgbtns->visibleButtons(); QDialogButtons::Button btns[] = { QDialogButtons::All, QDialogButtons::Reject, QDialogButtons::Accept, QDialogButtons::Apply, QDialogButtons::Retry, QDialogButtons::Ignore, QDialogButtons::Abort, QDialogButtons::Help };
QDialogButtons::Button btns[] = { QDialogButtons::All, QDialogButtons::Reject, QDialogButtons::Accept, QDialogButtons::Apply, QDialogButtons::Retry, QDialogButtons::Ignore, QDialogButtons::Abort, QDialogButtons::Help }; for(unsigned int i = 0; i < (sizeof(btns)/sizeof(btns[0])); i++) {
for(unsigned int i = 0; i < (sizeof(btns)/sizeof(btns[0])); i++) { if (ceData.dlgVisibleButtons & btns[i]) {
if (ceData.dlgVisibleButtons & btns[i]) { ceData.dlgVisibleSizeHints[btns[i]] = dlgbtns->sizeHint(btns[i]);
ceData.dlgVisibleSizeHints[btns[i]] = dlgbtns->sizeHint(btns[i]); }
} }
} }
} }
} if (ceData.widgetObjectTypes.contains("QTitleBar")) {
if (ceData.widgetObjectTypes.contains("QTitleBar")) { const QTitleBar *tb = dynamic_cast<const QTitleBar*>(widget);
const QTitleBar *tb = dynamic_cast<const QTitleBar*>(widget); if (tb) {
if (tb) { ceData.titleBarData.hasWindow = !!(tb->window());
ceData.titleBarData.hasWindow = !!(tb->window()); if (populateReliantFields) {
if (populateReliantFields) { if (ceData.titleBarData.hasWindow) {
if (ceData.titleBarData.hasWindow) { ceData.titleBarData.windowState = (Qt::WindowState)(tb->window()->windowState());
ceData.titleBarData.windowState = (Qt::WindowState)(tb->window()->windowState()); }
ceData.titleBarData.usesActiveColor = tb->usesActiveColor();
} }
ceData.titleBarData.usesActiveColor = tb->usesActiveColor(); ceData.titleBarData.visibleText = tb->visibleText();
} }
ceData.titleBarData.visibleText = tb->visibleText();
} }
} if (ceData.widgetObjectTypes.contains("QSpinWidget")) {
if (ceData.widgetObjectTypes.contains("QSpinWidget")) { const QSpinWidget *sw = dynamic_cast<const QSpinWidget*>(widget);
const QSpinWidget *sw = dynamic_cast<const QSpinWidget*>(widget); if (sw) {
if (sw) { ceData.spinWidgetData.buttonSymbols = sw->buttonSymbols();
ceData.spinWidgetData.buttonSymbols = sw->buttonSymbols(); ceData.spinWidgetData.upRect = sw->upRect();
ceData.spinWidgetData.upRect = sw->upRect(); ceData.spinWidgetData.downRect = sw->downRect();
ceData.spinWidgetData.downRect = sw->downRect(); ceData.spinWidgetData.upEnabled = sw->isUpEnabled();
ceData.spinWidgetData.upEnabled = sw->isUpEnabled(); ceData.spinWidgetData.downEnabled = sw->isDownEnabled();
ceData.spinWidgetData.downEnabled = sw->isDownEnabled(); }
} }
} if (ceData.widgetObjectTypes.contains("QListView")) {
if (ceData.widgetObjectTypes.contains("QListView")) { const QListView *lv = dynamic_cast<const QListView*>(widget);
const QListView *lv = dynamic_cast<const QListView*>(widget); if (lv) {
if (lv) { ceData.listViewData.rootDecorated = lv->rootIsDecorated();
ceData.listViewData.rootDecorated = lv->rootIsDecorated(); ceData.listViewData.itemMargin = lv->itemMargin();
ceData.listViewData.itemMargin = lv->itemMargin(); QWidget* viewport = lv->viewport();
QWidget* viewport = lv->viewport(); if (viewport) {
if (viewport) { ceData.viewportData.widgetObjectTypes = getObjectTypeListForObject(viewport);
ceData.viewportData.widgetObjectTypes = getObjectTypeListForObject(viewport); ceData.viewportData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
ceData.viewportData.allDataPopulated = populateReliantFields; const QPixmap* erasePixmap = viewport->backgroundPixmap();
const QPixmap* erasePixmap = viewport->backgroundPixmap(); if (erasePixmap) {
if (erasePixmap) { ceData.viewportData.bgPixmap = *erasePixmap;
ceData.viewportData.bgPixmap = *erasePixmap; }
if (populateReliantFields) {
ceData.viewportData.bgBrush = viewport->backgroundBrush();
}
if (populateReliantFields) {
ceData.viewportData.windowState = (Qt::WindowState)(widget->windowState());
}
ceData.viewportData.wflags = viewport->getWFlags();
ceData.viewportData.bgColor = viewport->eraseColor();
ceData.viewportData.bgOffset = viewport->backgroundOffset();
ceData.viewportData.backgroundMode = viewport->backgroundMode();
if (populateReliantFields) {
ceData.viewportData.fgColor = viewport->foregroundColor();
ceData.viewportData.colorGroup = viewport->colorGroup();
ceData.viewportData.paletteBgColor = viewport->paletteBackgroundColor();
}
ceData.viewportData.geometry = viewport->geometry();
ceData.viewportData.rect = viewport->rect();
ceData.viewportData.pos = viewport->pos();
const QPixmap* icon = viewport->icon();
if (icon) {
ceData.viewportData.icon = *icon;
}
ceData.viewportData.palette = viewport->palette();
ceData.viewportData.font = viewport->font();
ceData.viewportData.name = viewport->name();
ceData.viewportData.caption = viewport->caption();
} }
if (populateReliantFields) { }
ceData.viewportData.bgBrush = viewport->backgroundBrush(); }
if (ceData.widgetObjectTypes.contains("QComboBox")) {
const QComboBox *cb = dynamic_cast<const QComboBox*>(widget);
if (cb) {
const QLineEdit* lineEdit = cb->lineEdit();
if (lineEdit) {
ceData.comboBoxLineEditFlags = getControlElementFlagsForObject(lineEdit, ceData.widgetObjectTypes, QStyleOption::Default);
} }
ceData.viewportData.wflags = viewport->getWFlags(); const QListBox* listBox = cb->listBox();
if (populateReliantFields) { if (listBox) {
ceData.viewportData.windowState = (Qt::WindowState)(widget->windowState()); ceData.comboBoxListBoxFlags = getControlElementFlagsForObject(listBox, ceData.widgetObjectTypes, QStyleOption::Default);
} }
ceData.viewportData.bgColor = viewport->eraseColor(); }
ceData.viewportData.bgOffset = viewport->backgroundOffset(); }
ceData.viewportData.backgroundMode = viewport->backgroundMode(); if (ceData.widgetObjectTypes.contains("QFrame")) {
if (populateReliantFields) { const QFrame *frame = dynamic_cast<const QFrame*>(widget);
ceData.viewportData.fgColor = viewport->foregroundColor(); if (frame) {
ceData.viewportData.colorGroup = viewport->colorGroup(); ceData.frameStyle = frame->frameStyle();
ceData.viewportData.paletteBgColor = viewport->paletteBackgroundColor(); }
}
const QWidget* parentWidget = widget->parentWidget();
if (parentWidget) {
ceData.parentWidgetData.widgetObjectTypes = getObjectTypeListForObject(parentWidget);
ceData.parentWidgetData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
const QPixmap* erasePixmap = parentWidget->backgroundPixmap();
if (erasePixmap) {
ceData.parentWidgetData.bgPixmap = *erasePixmap;
}
if (populateReliantFields) {
ceData.parentWidgetData.bgBrush = parentWidget->backgroundBrush();
}
if (populateReliantFields) {
ceData.parentWidgetData.windowState = (Qt::WindowState)(widget->windowState());
}
ceData.parentWidgetData.wflags = parentWidget->getWFlags();
ceData.parentWidgetData.bgColor = parentWidget->eraseColor();
ceData.parentWidgetData.bgOffset = parentWidget->backgroundOffset();
ceData.parentWidgetData.backgroundMode = parentWidget->backgroundMode();
if (populateReliantFields) {
ceData.parentWidgetData.fgColor = parentWidget->foregroundColor();
ceData.parentWidgetData.colorGroup = parentWidget->colorGroup();
ceData.parentWidgetData.paletteBgColor = parentWidget->paletteBackgroundColor();
}
ceData.parentWidgetData.geometry = parentWidget->geometry();
ceData.parentWidgetData.rect = parentWidget->rect();
ceData.parentWidgetData.pos = parentWidget->pos();
const QPixmap* icon = parentWidget->icon();
if (icon) {
ceData.parentWidgetData.icon = *icon;
}
ceData.parentWidgetData.palette = parentWidget->palette();
ceData.parentWidgetData.font = parentWidget->font();
ceData.parentWidgetData.name = parentWidget->name();
ceData.parentWidgetData.caption = parentWidget->caption();
const QDockWindow * dw = dynamic_cast<const QDockWindow*>(parentWidget);
if (dw) {
if (dw->area()) {
ceData.dwData.hasDockArea = true;
ceData.dwData.areaOrientation = dw->area()->orientation();
} }
ceData.viewportData.geometry = viewport->geometry(); else {
ceData.viewportData.rect = viewport->rect(); ceData.dwData.hasDockArea = false;
ceData.viewportData.pos = viewport->pos();
const QPixmap* icon = viewport->icon();
if (icon) {
ceData.viewportData.icon = *icon;
} }
ceData.viewportData.palette = viewport->palette(); ceData.dwData.closeEnabled = dw->isCloseEnabled();
ceData.viewportData.font = viewport->font();
ceData.viewportData.name = viewport->name();
ceData.viewportData.caption = viewport->caption();
} }
const QToolBar * toolbar = dynamic_cast<const QToolBar*>(parentWidget);
if (toolbar) {
ceData.toolBarData.orientation = toolbar->orientation();
}
ceData.parentWidgetFlags = getControlElementFlagsForObject(parentWidget, ceData.parentWidgetData.widgetObjectTypes, QStyleOption::Default, populateReliantFields);
} }
} const QWidget* topLevelWidget = widget->topLevelWidget();
if (ceData.widgetObjectTypes.contains("QComboBox")) { if (topLevelWidget) {
const QComboBox *cb = dynamic_cast<const QComboBox*>(widget); ceData.topLevelWidgetData.widgetObjectTypes = getObjectTypeListForObject(topLevelWidget);
if (cb) { ceData.topLevelWidgetData.allDataPopulated = populateReliantFields & populateMinimumNumberOfFields;
const QLineEdit* lineEdit = cb->lineEdit(); const QPixmap* erasePixmap = topLevelWidget->backgroundPixmap();
if (lineEdit) { if (erasePixmap) {
ceData.comboBoxLineEditFlags = getControlElementFlagsForObject(lineEdit, ceData.widgetObjectTypes, QStyleOption::Default); ceData.topLevelWidgetData.bgPixmap = *erasePixmap;
} }
const QListBox* listBox = cb->listBox(); if (populateReliantFields) {
if (listBox) { ceData.topLevelWidgetData.bgBrush = topLevelWidget->backgroundBrush();
ceData.comboBoxListBoxFlags = getControlElementFlagsForObject(listBox, ceData.widgetObjectTypes, QStyleOption::Default);
} }
} if (populateReliantFields) {
} ceData.topLevelWidgetData.windowState = (Qt::WindowState)(widget->windowState());
if (ceData.widgetObjectTypes.contains("QFrame")) {
const QFrame *frame = dynamic_cast<const QFrame*>(widget);
if (frame) {
ceData.frameStyle = frame->frameStyle();
}
}
const QWidget* parentWidget = widget->parentWidget();
if (parentWidget) {
ceData.parentWidgetData.widgetObjectTypes = getObjectTypeListForObject(parentWidget);
ceData.parentWidgetData.allDataPopulated = populateReliantFields;
const QPixmap* erasePixmap = parentWidget->backgroundPixmap();
if (erasePixmap) {
ceData.parentWidgetData.bgPixmap = *erasePixmap;
}
if (populateReliantFields) {
ceData.parentWidgetData.bgBrush = parentWidget->backgroundBrush();
}
ceData.parentWidgetData.wflags = parentWidget->getWFlags();
if (populateReliantFields) {
ceData.parentWidgetData.windowState = (Qt::WindowState)(widget->windowState());
}
ceData.parentWidgetData.bgColor = parentWidget->eraseColor();
ceData.parentWidgetData.bgOffset = parentWidget->backgroundOffset();
ceData.parentWidgetData.backgroundMode = parentWidget->backgroundMode();
if (populateReliantFields) {
ceData.parentWidgetData.fgColor = parentWidget->foregroundColor();
ceData.parentWidgetData.colorGroup = parentWidget->colorGroup();
ceData.parentWidgetData.paletteBgColor = parentWidget->paletteBackgroundColor();
}
ceData.parentWidgetData.geometry = parentWidget->geometry();
ceData.parentWidgetData.rect = parentWidget->rect();
ceData.parentWidgetData.pos = parentWidget->pos();
const QPixmap* icon = parentWidget->icon();
if (icon) {
ceData.parentWidgetData.icon = *icon;
}
ceData.parentWidgetData.palette = parentWidget->palette();
ceData.parentWidgetData.font = parentWidget->font();
ceData.parentWidgetData.name = parentWidget->name();
ceData.parentWidgetData.caption = parentWidget->caption();
const QDockWindow * dw = dynamic_cast<const QDockWindow*>(parentWidget);
if (dw) {
if (dw->area()) {
ceData.dwData.hasDockArea = true;
ceData.dwData.areaOrientation = dw->area()->orientation();
} }
else { ceData.topLevelWidgetData.wflags = topLevelWidget->getWFlags();
ceData.dwData.hasDockArea = false; ceData.topLevelWidgetData.bgColor = topLevelWidget->eraseColor();
ceData.topLevelWidgetData.bgOffset = topLevelWidget->backgroundOffset();
ceData.topLevelWidgetData.backgroundMode = topLevelWidget->backgroundMode();
if (populateReliantFields) {
ceData.topLevelWidgetData.fgColor = topLevelWidget->foregroundColor();
ceData.topLevelWidgetData.colorGroup = topLevelWidget->colorGroup();
ceData.topLevelWidgetData.paletteBgColor = topLevelWidget->paletteBackgroundColor();
} }
ceData.dwData.closeEnabled = dw->isCloseEnabled(); ceData.topLevelWidgetData.geometry = topLevelWidget->geometry();
} ceData.topLevelWidgetData.rect = topLevelWidget->rect();
const QToolBar * toolbar = dynamic_cast<const QToolBar*>(parentWidget); ceData.topLevelWidgetData.pos = topLevelWidget->pos();
if (toolbar) { const QPixmap* icon = topLevelWidget->icon();
ceData.toolBarData.orientation = toolbar->orientation(); if (icon) {
} ceData.topLevelWidgetData.icon = *icon;
ceData.parentWidgetFlags = getControlElementFlagsForObject(parentWidget, ceData.parentWidgetData.widgetObjectTypes, QStyleOption::Default, populateReliantFields);
}
const QWidget* topLevelWidget = widget->topLevelWidget();
if (topLevelWidget) {
ceData.topLevelWidgetData.widgetObjectTypes = getObjectTypeListForObject(topLevelWidget);
ceData.topLevelWidgetData.allDataPopulated = populateReliantFields;
const QPixmap* erasePixmap = topLevelWidget->backgroundPixmap();
if (erasePixmap) {
ceData.topLevelWidgetData.bgPixmap = *erasePixmap;
}
if (populateReliantFields) {
ceData.topLevelWidgetData.bgBrush = topLevelWidget->backgroundBrush();
}
ceData.topLevelWidgetData.wflags = topLevelWidget->getWFlags();
if (populateReliantFields) {
ceData.topLevelWidgetData.windowState = (Qt::WindowState)(widget->windowState());
}
ceData.topLevelWidgetData.bgColor = topLevelWidget->eraseColor();
ceData.topLevelWidgetData.bgOffset = topLevelWidget->backgroundOffset();
ceData.topLevelWidgetData.backgroundMode = topLevelWidget->backgroundMode();
if (populateReliantFields) {
ceData.topLevelWidgetData.fgColor = topLevelWidget->foregroundColor();
ceData.topLevelWidgetData.colorGroup = topLevelWidget->colorGroup();
ceData.topLevelWidgetData.paletteBgColor = topLevelWidget->paletteBackgroundColor();
}
ceData.topLevelWidgetData.geometry = topLevelWidget->geometry();
ceData.topLevelWidgetData.rect = topLevelWidget->rect();
ceData.topLevelWidgetData.pos = topLevelWidget->pos();
const QPixmap* icon = topLevelWidget->icon();
if (icon) {
ceData.topLevelWidgetData.icon = *icon;
}
ceData.topLevelWidgetData.palette = topLevelWidget->palette();
ceData.topLevelWidgetData.font = topLevelWidget->font();
ceData.topLevelWidgetData.name = topLevelWidget->name();
ceData.topLevelWidgetData.caption = topLevelWidget->caption();
const QDockWindow * dw = dynamic_cast<const QDockWindow*>(topLevelWidget);
if (dw) {
if (dw->area()) {
ceData.dwData.hasDockArea = true;
ceData.dwData.areaOrientation = dw->area()->orientation();
} }
else { ceData.topLevelWidgetData.palette = topLevelWidget->palette();
ceData.dwData.hasDockArea = false; ceData.topLevelWidgetData.font = topLevelWidget->font();
ceData.topLevelWidgetData.name = topLevelWidget->name();
ceData.topLevelWidgetData.caption = topLevelWidget->caption();
const QDockWindow * dw = dynamic_cast<const QDockWindow*>(topLevelWidget);
if (dw) {
if (dw->area()) {
ceData.dwData.hasDockArea = true;
ceData.dwData.areaOrientation = dw->area()->orientation();
}
else {
ceData.dwData.hasDockArea = false;
}
ceData.dwData.closeEnabled = dw->isCloseEnabled();
}
const QToolBar * toolbar = dynamic_cast<const QToolBar*>(topLevelWidget);
if (toolbar) {
ceData.toolBarData.orientation = toolbar->orientation();
} }
ceData.dwData.closeEnabled = dw->isCloseEnabled(); ceData.topLevelWidgetFlags = getControlElementFlagsForObject(topLevelWidget, ceData.topLevelWidgetData.widgetObjectTypes, QStyleOption::Default, populateReliantFields);
} }
const QToolBar * toolbar = dynamic_cast<const QToolBar*>(topLevelWidget);
if (toolbar) { QCheckListItem *item = opt.checkListItem();
ceData.toolBarData.orientation = toolbar->orientation(); if (item) {
ceData.checkListItemData.dataValid = true;
ceData.checkListItemData.enabled = item->isEnabled();
ceData.checkListItemData.hasParent = ( item->parent() && (item->parent()->rtti() == 1) && (((QCheckListItem*) item->parent())->type() == QCheckListItem::Controller) );
ceData.checkListItemData.height = item->height();
}
else {
ceData.checkListItemData.dataValid = false;
} }
ceData.topLevelWidgetFlags = getControlElementFlagsForObject(topLevelWidget, ceData.topLevelWidgetData.widgetObjectTypes, QStyleOption::Default, populateReliantFields);
}
QCheckListItem *item = opt.checkListItem();
if (item) {
ceData.checkListItemData.dataValid = true;
ceData.checkListItemData.enabled = item->isEnabled();
ceData.checkListItemData.hasParent = ( item->parent() && (item->parent()->rtti() == 1) && (((QCheckListItem*) item->parent())->type() == QCheckListItem::Controller) );
ceData.checkListItemData.height = item->height();
}
else {
ceData.checkListItemData.dataValid = false;
} }
} }

Loading…
Cancel
Save