9#include <formwindowbase_p.h>
12#include <QtGui/qundostack.h>
13#include <QtCore/qhash.h>
14#include <QtCore/qlist.h>
15#include <QtCore/qset.h>
16#include <QtCore/qpointer.h>
22class QDesignerDnDItemInterface;
23class QDesignerTaskMenuExtension;
43class SetPropertyCommand;
71 void registerTool(QDesignerFormWindowToolInterface *tool)
override;
74 void setAuthor(
const QString &author)
override;
77 void setComment(
const QString &comment)
override;
98 bool setContents(QIODevice *dev, QString *errorMessage =
nullptr)
override;
147 bool unify(QObject *w, QString &s,
bool changeIt);
168 bool dropDockWidget(QDesignerDnDItemInterface *item, QPoint global_mouse_pos);
170 const QPoint &global_mouse_pos)
override;
179#if QT_CONFIG(clipboard)
184 bool eventFilter(QObject *watched, QEvent *event)
override;
196#if QT_CONFIG(clipboard)
217 void checkSelection();
218 void checkSelectionNow();
219 void slotSelectWidget(QAction *);
220 void slotCleanChanged(
bool);
232 MouseDeferredSelection
234 MouseState m_mouseState;
235 QPointer<QWidget> m_lastClickedWidget;
238 void initializeCoreTools();
240 int getValue(QRect rect,
int key,
bool size)
const;
241 int calcValue(
int val,
bool forward,
bool snap,
int snapOffset)
const;
242 void handleClickSelection(
QWidget *managedWidget,
unsigned mouseFlags);
244 bool frameNeeded(
QWidget *w)
const;
246 enum RectType { Insert, Rubber };
248 void startRectDraw(QPoint global,
QWidget *, RectType t);
249 void continueRectDraw(QPoint global,
QWidget *, RectType t);
254 void checkPreviewGeometry(QRect &r);
256 bool handleContextMenu(
QWidget *widget,
QWidget *managedWidget, QContextMenuEvent *e);
257 bool handleMouseButtonDblClickEvent(
QWidget *widget,
QWidget *managedWidget, QMouseEvent *e);
258 bool handleMousePressEvent(
QWidget *widget,
QWidget *managedWidget, QMouseEvent *e);
259 bool handleMouseMoveEvent(
QWidget *widget,
QWidget *managedWidget, QMouseEvent *e);
260 bool handleMouseReleaseEvent(
QWidget *widget,
QWidget *managedWidget, QMouseEvent *e);
261 bool handleKeyPressEvent(
QWidget *widget,
QWidget *managedWidget, QKeyEvent *e);
262 bool handleKeyReleaseEvent(
QWidget *widget,
QWidget *managedWidget, QKeyEvent *e);
264 bool isCentralWidget(
QWidget *w)
const;
266 bool setCurrentWidget(
QWidget *currentWidget);
267 bool trySelectWidget(
QWidget *w,
bool select);
269 void dragWidgetWithinForm(
QWidget *widget, QRect targetGeometry,
QWidget *targetContainer);
271 void setCursorToAll(
const QCursor &c,
QWidget *start);
273 QPoint mapToForm(
const QWidget *w, QPoint pos)
const;
274 bool canBeBuddy(
QWidget *w)
const;
278 void clearMainContainer();
280 static int widgetDepth(
const QWidget *w);
285 void updateWidgets();
287 void handleArrowKeyEvent(
int key, Qt::KeyboardModifiers modifiers);
289 void layoutSelection(
int type);
290 void layoutContainer(
QWidget *w,
int type);
294 QWidget *containerForPaste()
const;
295 QAction *createSelectAncestorSubMenu(
QWidget *w);
296 void selectSingleWidget(
QWidget *w);
300 QWidget *m_mainContainer =
nullptr;
301 QWidget *m_currentWidget =
nullptr;
303 bool m_blockSelectionChanged =
false;
308 QWidgetList m_widgets;
309 QSet<QWidget*> m_insertedWidgets;
316 QUndoStack m_undoStack;
321 QHash<QWidget *, PaletteAndFill> m_palettesBeforeHighlight;
323 QRubberBand *m_rubberBand =
nullptr;
325 QTimer *m_selectionChangedTimer =
nullptr;
326 QTimer *m_checkSelectionTimer =
nullptr;
327 QTimer *m_geometryChangedTimer =
nullptr;
332 QStringList m_resourceFiles;
336 QString m_pixmapFunction;
337 int m_defaultMargin, m_defaultSpacing;
338 QString m_marginFunction, m_spacingFunction;
339 QString m_exportMacro;
340 QStringList m_includeHints;
342 QPoint m_contextMenuPosition;
QDesignerResource(FormWindow *fw)
Auxiliary methods to store/retrieve settings.
static unsigned mouseFlags(Qt::KeyboardModifiers mod)
static void insertNames(const QDesignerMetaDataBaseInterface *metaDataBase, Iterator it, const Iterator &end, QObject *excludedObject, QSet< QString > &nameSet)
static void clearObjectInspectorSelection(const QDesignerFormEditorInterface *core)
static bool canDragWidgetInLayout(const QDesignerFormEditorInterface *core, QWidget *w)
@ ToggleSelectionModifier
static bool isDescendant(const QWidget *parent, const QWidget *child)
static QSet< QString > languageKeywords()
static QWidget * findSelectedParent(QDesignerFormWindowInterface *fw, const QWidget *w, bool selected)
QRect apply(QRect rect) const