void ActionModel::setItems(QDesignerFormEditorInterface *core, QAction *action, const QIcon &defaultIcon, QStandardItemList &sl) { // Tooltip, mostly for icon view mode QString firstTooltip = action->objectName(); const QString text = action->text(); if (!text.isEmpty()) { firstTooltip += QLatin1Char('\n'); firstTooltip += text; } Q_ASSERT(sl.size() == NumColumns); QStandardItem *item = sl[NameColumn]; item->setText(action->objectName()); QIcon icon = action->icon(); if (icon.isNull()) icon = defaultIcon; item->setIcon(icon); item->setToolTip(firstTooltip); item->setWhatsThis(firstTooltip); // Used const QWidgetList associatedDesignerWidgets = associatedWidgets(action); const bool used = !associatedDesignerWidgets.empty(); item = sl[UsedColumn]; item->setCheckState(used ? Qt::Checked : Qt::Unchecked); if (used) { QString usedToolTip; const QString separator = QLatin1String(", "); const int count = associatedDesignerWidgets.size(); for (int i = 0; i < count; i++) { if (i) usedToolTip += separator; usedToolTip += associatedDesignerWidgets.at(i)->objectName(); } item->setToolTip(usedToolTip); } else { item->setToolTip(QString()); } // text item = sl[TextColumn]; item->setText(action->text()); item->setToolTip(action->text()); // shortcut const QString shortcut = actionShortCut(core, action).value().toString(QKeySequence::NativeText); item = sl[ShortCutColumn]; item->setText(shortcut); item->setToolTip(shortcut); // checkable sl[CheckedColumn]->setCheckState(action->isCheckable() ? Qt::Checked : Qt::Unchecked); // ToolTip. This might be multi-line, rich text QString toolTip = action->toolTip(); item = sl[ToolTipColumn]; item->setToolTip(toolTip); item->setText(toolTip.replace(QLatin1Char('\n'), QLatin1Char(' '))); }
bool QFormBuilderExtra::applyBuddy(const QString &buddyName, BuddyMode applyMode, QLabel *label) { if (buddyName.isEmpty()) { label->setBuddy(0); return false; } const QWidgetList widgets = qFindChildren<QWidget*>(label->topLevelWidget(), buddyName); if (widgets.empty()) { label->setBuddy(0); return false; } const QWidgetList::const_iterator cend = widgets.constEnd(); for ( QWidgetList::const_iterator it = widgets.constBegin(); it != cend; ++it) { if (applyMode == BuddyApplyAll || !(*it)->isHidden()) { label->setBuddy(*it); return true; } } label->setBuddy(0); return false; }
Qt::DropAction QDesignerMimeData::execDrag(const QDesignerDnDItems &items, QWidget * dragSource) { if (items.empty()) return Qt::IgnoreAction; QDrag *drag = new QDrag(dragSource); QDesignerMimeData *mimeData = new QDesignerMimeData(items, drag); // Store pointers to widgets that are to be re-shown if a move operation is canceled QWidgetList reshowWidgets; const QDesignerDnDItems::const_iterator cend = items.constEnd(); for (QDesignerDnDItems::const_iterator it = items.constBegin(); it != cend; ++it ) if (QWidget *w = (*it)->widget()) if ((*it)->type() == QDesignerDnDItemInterface::MoveDrop) reshowWidgets.push_back(w); const Qt::DropAction executedAction = drag->exec(Qt::CopyAction|Qt::MoveAction, mimeData->proposedDropAction()); if (executedAction == Qt::IgnoreAction && !reshowWidgets.empty()) foreach (QWidget *w, reshowWidgets) w->show(); return executedAction; }