9#include <QtDesigner/abstractformeditor.h>
10#include <QtDesigner/abstractformwindowmanager.h>
12#include <iconloader_p.h>
13#include <qdesigner_utils_p.h>
15#include <QtGui/qevent.h>
16#include <QtWidgets/qboxlayout.h>
17#include <QtWidgets/qapplication.h>
18#include <QtWidgets/qtoolbar.h>
19#include <QtWidgets/qlineedit.h>
20#include <QtGui/qicon.h>
27
28
29
30
35 { setFocusPolicy(Qt::NoFocus); }
42 const Qt::FocusPolicy m_defaultFocusPolicy;
48 setFocus(Qt::OtherFocusReason);
49 QLineEdit::mousePressEvent(e);
57 const Qt::FocusReason reason = e->reason();
58 if (reason == Qt::ActiveWindowFocusReason || reason == Qt::PopupFocusReason) {
59 const QPoint mousePos = mapFromGlobal(QCursor::pos());
60 const bool refuse = !geometry().contains(mousePos);
66 QLineEdit::focusInEvent(e);
69WidgetBox::WidgetBox(QDesignerFormEditorInterface *core, QWidget *parent, Qt::WindowFlags flags)
70 : QDesignerWidgetBox(parent, flags),
72 m_view(
new WidgetBoxTreeWidget(m_core))
75 QVBoxLayout *l =
new QVBoxLayout(
this);
76 l->setContentsMargins(QMargins());
80 QToolBar *toolBar =
new QToolBar(
this);
82 filterWidget->setPlaceholderText(tr(
"Filter"));
83 filterWidget->setClearButtonEnabled(
true);
84 connect(filterWidget, &QLineEdit::textChanged, m_view, &WidgetBoxTreeWidget::filter);
85 toolBar->addWidget(filterWidget);
86 l->addWidget(toolBar);
89 connect(m_view, &WidgetBoxTreeWidget::widgetBoxPressed,
90 this, &WidgetBox::handleMousePress);
93 setAcceptDrops (
true);
103void WidgetBox::handleMousePress(
const QString &name,
const QString &xml,
const QPoint &global_mouse_pos)
105 if (QApplication::mouseButtons() != Qt::LeftButton)
108 DomUI *ui = xmlToUi(name, xml,
true);
111 QList<QDesignerDnDItemInterface*> item_list;
113 m_core->formWindowManager()->dragItems(item_list);
123 return m_view->category(cat_idx);
128 m_view->addCategory(cat);
143 return m_view->widget(cat_idx, wgt_idx);
148 m_view->addWidget(cat_idx, wgt);
158 m_view->dropWidgets(item_list);
163 m_view->setFileName(file_name);
168 return m_view->fileName();
173 return m_view->load(loadMode());
178 return m_view->loadContents(contents);
187 bool acceptEventsFromWidgetBox)
189 const QDesignerMimeData *mimeData = qobject_cast<
const QDesignerMimeData *>(event->mimeData());
195 if (!acceptEventsFromWidgetBox) {
196 const bool fromWidgetBox = !mimeData->items().first()->widget();
203 mimeData->acceptEvent(event);
211 checkDragEvent(event,
true);
216 checkDragEvent(event,
true);
221 const QDesignerMimeData *mimeData = checkDragEvent(event,
false);
225 dropWidgets(mimeData->items(), event->position().toPoint());
226 QDesignerMimeData::removeMovedWidgetsFromSourceForm(mimeData->items());
229QIcon
WidgetBox::iconForWidget(
const QString &className,
const QString &category)
const
232 if (!findWidget(
this, className, category, &widgetData))
234 return m_view->iconForWidget(widgetData.iconName());
Combined button and popup list for selecting options.
Auxiliary methods to store/retrieve settings.
static const QDesignerMimeData * checkDragEvent(QDropEvent *event, bool acceptEventsFromWidgetBox)