Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
abstractformwindow.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3// Qt-Security score:significant reason:default
4
7
8#include <widgetfactory_p.h>
9
10#include <QtWidgets/qtabbar.h>
11#include <QtWidgets/qsizegrip.h>
12#include <QtWidgets/qabstractbutton.h>
13#include <QtWidgets/qtoolbox.h>
14#include <QtWidgets/qmenubar.h>
15#include <QtWidgets/qmainwindow.h>
16#include <QtWidgets/qdockwidget.h>
17#include <QtWidgets/qtoolbar.h>
18
19#include <QtCore/qdebug.h>
20
22
23/*!
24 \class QDesignerFormWindowInterface
25
26 \brief The QDesignerFormWindowInterface class allows you to query
27 and manipulate form windows appearing in \QD's workspace.
28
29 \inmodule QtDesigner
30
31 QDesignerFormWindowInterface provides information about
32 the associated form window as well as allowing its properties to be
33 altered. The interface is not intended to be instantiated
34 directly, but to provide access to \QD's current form windows
35 controlled by \QD's \l {QDesignerFormWindowManagerInterface}{form
36 window manager}.
37
38 If you are looking for the form window containing a specific
39 widget, you can use the static
40 QDesignerFormWindowInterface::findFormWindow() function:
41
42 \snippet lib/tools_designer_src_lib_sdk_abstractformwindow.cpp 0
43
44 But in addition, you can access any of the current form windows
45 through \QD's form window manager: Use the
46 QDesignerFormEditorInterface::formWindowManager() function to
47 retrieve an interface to the manager. Once you have this
48 interface, you have access to all of \QD's current form windows
49 through the QDesignerFormWindowManagerInterface::formWindow()
50 function. For example:
51
52 \snippet lib/tools_designer_src_lib_sdk_abstractformwindow.cpp 1
53
54 The pointer to \QD's current QDesignerFormEditorInterface object
55 (\c formEditor in the example above) is provided by the
56 QDesignerCustomWidgetInterface::initialize() function's
57 parameter. When implementing a custom widget plugin, you must
58 subclass the QDesignerCustomWidgetInterface class to expose your
59 plugin to \QD.
60
61 Once you have the form window, you can query its properties. For
62 example, a plain custom widget plugin is managed by \QD only at
63 its top level, i.e. none of its child widgets can be resized in
64 \QD's workspace. But QDesignerFormWindowInterface provides you
65 with functions that enables you to control whether a widget should
66 be managed by \QD, or not:
67
68 \snippet lib/tools_designer_src_lib_sdk_abstractformwindow.cpp 2
69
70 The complete list of functions concerning widget management is:
71 isManaged(), manageWidget() and unmanageWidget(). There is also
72 several associated signals: widgetManaged(), widgetRemoved(),
73 aboutToUnmanageWidget() and widgetUnmanaged().
74
75 In addition to controlling the management of widgets, you can
76 control the current selection in the form window using the
77 selectWidget(), clearSelection() and emitSelectionChanged()
78 functions, and the selectionChanged() signal.
79
80 You can also retrieve information about where the form is stored
81 using absoluteDir(), its include files using includeHints(), and
82 its layout and pixmap functions using layoutDefault(),
83 layoutFunction() and pixmapFunction(). You can find out whether
84 the form window has been modified (but not saved) or not, using
85 the isDirty() function. You can retrieve its author(), its
86 contents(), its fileName(), associated comment() and
87 exportMacro(), its mainContainer(), its features(), its grid() and
88 its resourceFiles().
89
90 The interface provides you with functions and slots allowing you
91 to alter most of this information as well. The exception is the
92 directory storing the form window. Finally, there is several
93 signals associated with changes to the information mentioned above
94 and to the form window in general.
95
96 \sa QDesignerFormWindowCursorInterface,
97 QDesignerFormEditorInterface, QDesignerFormWindowManagerInterface
98*/
99
100/*!
101 \enum QDesignerFormWindowInterface::FeatureFlag
102
103 This enum describes the features that are available and can be
104 controlled by the form window interface. These values are used
105 when querying the form window to determine which features it
106 supports:
107
108 \value EditFeature Form editing
109 \value GridFeature Grid display and snap-to-grid facilities for editing
110 \value TabOrderFeature Tab order management
111 \value DefaultFeature Support for default features (form editing and grid)
112
113 \sa hasFeature(), features()
114*/
115
116/*!
117 \enum QDesignerFormWindowInterface::ResourceFileSaveMode
118 \since 5.0
119
120 This enum describes how resource files are saved.
121
122
123 \value SaveAllResourceFiles Save all resource files.
124 \value SaveOnlyUsedResourceFiles Save resource files used by form.
125 \value DontSaveResourceFiles Do not save resource files.
126*/
127
128/*!
129 Constructs a form window interface with the given \a parent and
130 the specified window \a flags.
131*/
132QDesignerFormWindowInterface::QDesignerFormWindowInterface(QWidget *parent, Qt::WindowFlags flags)
133 : QWidget(parent, flags)
134{
135}
136
137/*!
138 Destroys the form window interface.
139*/
140QDesignerFormWindowInterface::~QDesignerFormWindowInterface() = default;
141
142/*!
143 Returns a pointer to \QD's current QDesignerFormEditorInterface
144 object.
145*/
146QDesignerFormEditorInterface *QDesignerFormWindowInterface::core() const
147{
148 return nullptr;
149}
150
151/*!
152 \fn QDesignerFormWindowInterface *QDesignerFormWindowInterface::findFormWindow(QWidget *widget)
153
154 Returns the form window interface for the given \a widget.
155*/
156
157static inline bool stopFindAtTopLevel(const QObject *w, bool stopAtMenu)
158{
159 // Do we need to go beyond top levels when looking for the form window?
160 // 1) A dialog has a window attribute at the moment it is created
161 // before it is properly embedded into a form window. The property
162 // sheet queries the layout attributes precisely at this moment.
163 // 2) In the case of floating docks and toolbars, we also need to go beyond the top level window.
164 // 3) In the case of menu editing, we don't want to block events from the
165 // Designer menu, so, we say stop.
166 // Note that there must be no false positives for dialogs parented on
167 // the form (for example, the "change object name" dialog), else, its
168 // events will be blocked.
169
170 if (stopAtMenu && w->inherits("QDesignerMenu"))
171 return true;
172 return !qdesigner_internal::WidgetFactory::isFormEditorObject(w);
173}
174
175QDesignerFormWindowInterface *QDesignerFormWindowInterface::findFormWindow(QWidget *w)
176{
177 while (w != nullptr) {
178 if (QDesignerFormWindowInterface *fw = qobject_cast<QDesignerFormWindowInterface*>(w))
179 return fw;
180 if (w->isWindow() && stopFindAtTopLevel(w, true))
181 break;
182
183 w = w->parentWidget();
184 }
185
186 return nullptr;
187}
188
189/*!
190 \fn QDesignerFormWindowInterface *QDesignerFormWindowInterface::findFormWindow(QObject *object)
191
192 Returns the form window interface for the given \a object.
193
194 \since 4.4
195*/
196
197QDesignerFormWindowInterface *QDesignerFormWindowInterface::findFormWindow(QObject *object)
198{
199 while (object != nullptr) {
200 if (QDesignerFormWindowInterface *fw = qobject_cast<QDesignerFormWindowInterface*>(object))
201 return fw;
202
203 QWidget *w = qobject_cast<QWidget *>(object);
204 // QDesignerMenu is a window, so stopFindAtTopLevel(w) returns 0.
205 // However, we want to find the form window for QActions of a menu.
206 // If this check is inside stopFindAtTopLevel(w), it will break designer
207 // menu editing (e.g. when clicking on items inside an opened menu)
208 if (w && w->isWindow() && stopFindAtTopLevel(w, false))
209 break;
210
211 object = object->parent();
212 }
213
214 return nullptr;
215}
216
217/*!
218 \fn virtual QtResourceSet *QDesignerFormWindowInterface::resourceSet() const
219
220 Returns the resource set used by the form window interface.
221
222 \since 5.0
223 \internal
224*/
225
226/*!
227 \fn virtual void QDesignerFormWindowInterface::setResourceSet(QtResourceSet *resourceSet)
228
229 Sets the resource set used by the form window interface to \a resourceSet.
230
231 \since 5.0
232 \internal
233*/
234
235/*!
236 Returns the active resource (.qrc) file paths currently loaded in \QD.
237 \since 5.0
238 \sa activateResourceFilePaths()
239*/
240
241QStringList QDesignerFormWindowInterface::activeResourceFilePaths() const
242{
243 return resourceSet()->activeResourceFilePaths();
244}
245
246/*!
247 Activates the resource (.qrc) file paths \a paths, returning the count of errors in \a errorCount and
248 error message in \a errorMessages. \QD loads the resources using the QResource class,
249 making them available for form editing.
250
251 In IDE integrations, a list of the project's resource (.qrc) file can be activated, making
252 them available to \QD.
253
254 \since 5.0
255 \sa activeResourceFilePaths()
256 \sa QResource
257*/
258
259void QDesignerFormWindowInterface::activateResourceFilePaths(const QStringList &paths, int *errorCount, QString *errorMessages)
260{
261 resourceSet()->activateResourceFilePaths(paths, errorCount, errorMessages);
262}
263
264/*!
265 \fn virtual QString QDesignerFormWindowInterface::fileName() const
266
267 Returns the file name of the UI file that describes the form
268 currently being shown.
269
270 \sa setFileName()
271*/
272
273/*!
274 \fn virtual QDir QDesignerFormWindowInterface::absoluteDir() const
275
276 Returns the absolute location of the directory containing the form
277 shown in the form window.
278*/
279
280/*!
281 \fn virtual QString QDesignerFormWindowInterface::contents() const
282
283 Returns details of the contents of the form currently being
284 displayed in the window.
285*/
286
287/*!
288 \fn virtual QStringList QDesignerFormWindowInterface::checkContents() const
289
290 Performs checks on the current form and returns a list of richtext warnings
291 about potential issues (for example, top level spacers on unlaid-out forms).
292
293 IDE integrations can call this before handling starting a save operation.
294
295 \since 5.0
296*/
297
298/*!
299 \fn virtual bool QDesignerFormWindowInterface::setContents(QIODevice *device, QString *errorMessage = 0)
300
301 Sets the form's contents using data obtained from the given \a device and returns whether
302 loading succeeded. If it fails, the error message is returned in \a errorMessage.
303
304 Data can be read from QFile objects or any other subclass of QIODevice.
305*/
306
307/*!
308 \fn virtual Feature QDesignerFormWindowInterface::features() const
309
310 Returns a combination of the features provided by the form window
311 associated with the interface. The value returned can be tested
312 against the \l Feature enum values to determine which features are
313 supported by the window.
314
315 \sa setFeatures(), hasFeature()
316*/
317
318/*!
319 \fn virtual bool QDesignerFormWindowInterface::hasFeature(Feature feature) const
320
321 Returns true if the form window offers the specified \a feature;
322 otherwise returns false.
323
324 \sa features()
325*/
326
327/*!
328 \fn virtual QString QDesignerFormWindowInterface::author() const
329
330 Returns details of the author or creator of the form currently
331 being displayed in the window.
332*/
333
334/*!
335 \fn virtual void QDesignerFormWindowInterface::setAuthor(const QString &author)
336
337 Sets the details for the author or creator of the form to the \a
338 author specified.
339*/
340
341/*!
342 \fn virtual QString QDesignerFormWindowInterface::comment() const
343
344 Returns comments about the form currently being displayed in the window.
345*/
346
347/*!
348 \fn virtual void QDesignerFormWindowInterface::setComment(const QString &comment)
349
350 Sets the information about the form to the \a comment
351 specified. This information should be a human-readable comment
352 about the form.
353*/
354
355/*!
356 \fn virtual void QDesignerFormWindowInterface::layoutDefault(int *margin, int *spacing)
357
358 Fills in the default margin and spacing for the form's default
359 layout in the \a margin and \a spacing variables specified.
360*/
361
362/*!
363 \fn virtual void QDesignerFormWindowInterface::setLayoutDefault(int margin, int spacing)
364
365 Sets the default \a margin and \a spacing for the form's layout.
366
367 \sa layoutDefault()
368*/
369
370/*!
371 \fn virtual void QDesignerFormWindowInterface::layoutFunction(QString *margin, QString *spacing)
372
373 Fills in the current margin and spacing for the form's layout in
374 the \a margin and \a spacing variables specified.
375*/
376
377/*!
378 \fn virtual void QDesignerFormWindowInterface::setLayoutFunction(const QString &margin, const QString &spacing)
379
380 Sets the \a margin and \a spacing for the form's layout.
381
382 The default layout properties will be replaced by the
383 corresponding layout functions when \c uic generates code for the
384 form, that is, if the functions are specified. This is useful when
385 different environments requires different layouts for the same
386 form.
387
388 \sa layoutFunction()
389*/
390
391/*!
392 \fn virtual QString QDesignerFormWindowInterface::pixmapFunction() const
393
394 Returns the name of the function used to load pixmaps into the
395 form window.
396
397 \sa setPixmapFunction()
398*/
399
400/*!
401 \fn virtual void QDesignerFormWindowInterface::setPixmapFunction(const QString &pixmapFunction)
402
403 Sets the function used to load pixmaps into the form window
404 to the given \a pixmapFunction.
405
406 \sa pixmapFunction()
407*/
408
409/*!
410 \fn virtual QString QDesignerFormWindowInterface::exportMacro() const
411
412 Returns the export macro associated with the form currently being
413 displayed in the window. The export macro is used when the form
414 is compiled to create a widget plugin.
415
416 \sa {Creating Custom Widgets for Qt Widgets Designer}
417*/
418
419/*!
420 \fn virtual void QDesignerFormWindowInterface::setExportMacro(const QString &exportMacro)
421
422 Sets the form window's export macro to \a exportMacro. The export
423 macro is used when building a widget plugin to export the form's
424 interface to other components.
425*/
426
427/*!
428 \fn virtual QStringList QDesignerFormWindowInterface::includeHints() const
429
430 Returns a list of the header files that will be included in the
431 form window's associated UI file.
432
433 Header files may be local, i.e. relative to the project's
434 directory, \c "mywidget.h", or global, i.e. part of Qt or the
435 compilers standard libraries: \c <QtGui/QWidget>.
436
437 \sa setIncludeHints()
438*/
439
440/*!
441 \fn virtual void QDesignerFormWindowInterface::setIncludeHints(const QStringList &includeHints)
442
443 Sets the header files that will be included in the form window's
444 associated UI file to the specified \a includeHints.
445
446 Header files may be local, i.e. relative to the project's
447 directory, \c "mywidget.h", or global, i.e. part of Qt or the
448 compilers standard libraries: \c <QtGui/QWidget>.
449
450 \sa includeHints()
451*/
452
453/*!
454 \fn virtual QDesignerFormWindowCursorInterface *QDesignerFormWindowInterface::cursor() const
455
456 Returns the cursor interface used by the form window.
457*/
458
459/*!
460 \fn virtual int QDesignerFormWindowInterface::toolCount() const
461
462 Returns the number of tools available.
463
464 \internal
465*/
466
467/*!
468 \fn virtual int QDesignerFormWindowInterface::currentTool() const
469
470 Returns the index of the current tool in use.
471
472 \sa setCurrentTool()
473
474 \internal
475*/
476
477/*!
478 \fn virtual void QDesignerFormWindowInterface::setCurrentTool(int index)
479
480 Sets the current tool to be the one with the given \a index.
481
482 \sa currentTool()
483
484 \internal
485*/
486
487/*!
488 \fn virtual QDesignerFormWindowToolInterface *QDesignerFormWindowInterface::tool(int index) const
489
490 Returns an interface to the tool with the given \a index.
491
492 \internal
493*/
494
495/*!
496 \fn virtual void QDesignerFormWindowInterface::registerTool(QDesignerFormWindowToolInterface *tool)
497
498 Registers the given \a tool with the form window.
499
500 \internal
501*/
502
503/*!
504 \fn virtual QPoint QDesignerFormWindowInterface::grid() const = 0
505
506 Returns the grid spacing used by the form window.
507
508 \sa setGrid()
509*/
510
511/*!
512 \fn virtual QWidget *QDesignerFormWindowInterface::mainContainer() const
513
514 Returns the main container widget for the form window.
515
516 \sa setMainContainer()
517 \internal
518*/
519
520/*!
521 \fn virtual QWidget *QDesignerFormWindowInterface::formContainer() const
522
523 Returns the form the widget containing the main container widget.
524
525 \since 5.0
526*/
527
528/*!
529 \fn virtual void QDesignerFormWindowInterface::setMainContainer(QWidget *mainContainer)
530
531 Sets the main container widget on the form to the specified \a
532 mainContainer.
533
534 \sa mainContainerChanged()
535*/
536
537/*!
538 \fn virtual bool QDesignerFormWindowInterface::isManaged(QWidget *widget) const
539
540 Returns true if the specified \a widget is managed by the form
541 window; otherwise returns false.
542
543 \sa manageWidget()
544*/
545
546/*!
547 \fn virtual bool QDesignerFormWindowInterface::isDirty() const
548
549 Returns true if the form window is "dirty" (modified but not
550 saved); otherwise returns false.
551
552 \sa setDirty()
553*/
554
555/*!
556 \fn virtual QUndoStack *QDesignerFormWindowInterface::commandHistory() const
557
558 Returns an object that can be used to obtain the commands used so
559 far in the construction of the form.
560
561 \internal
562*/
563
564/*!
565 \fn virtual void QDesignerFormWindowInterface::beginCommand(const QString &description)
566
567 Begins execution of a command with the given \a
568 description. Commands are executed between beginCommand() and
569 endCommand() function calls to ensure that they are recorded on
570 the undo stack.
571
572 \sa endCommand()
573
574 \internal
575*/
576
577/*!
578 \fn virtual void QDesignerFormWindowInterface::endCommand()
579
580 Ends execution of the current command.
581
582 \sa beginCommand()
583
584 \internal
585*/
586
587/*!
588 \fn virtual void QDesignerFormWindowInterface::simplifySelection(QList<QWidget*> *widgets) const
589
590 Simplifies the selection of widgets specified by \a widgets.
591
592 \sa selectionChanged()
593 \internal
594*/
595
596/*!
597 \fn virtual void QDesignerFormWindowInterface::emitSelectionChanged()
598
599 Emits the selectionChanged() signal.
600
601 \sa selectWidget(), clearSelection()
602*/
603
604/*!
605 \fn virtual QStringList QDesignerFormWindowInterface::resourceFiles() const
606
607 Returns a list of paths to resource files that are currently being
608 used by the form window.
609
610 \sa addResourceFile(), removeResourceFile()
611*/
612
613/*!
614 \fn virtual void QDesignerFormWindowInterface::addResourceFile(const QString &path)
615
616 Adds the resource file at the given \a path to those used by the form.
617
618 \sa resourceFiles(), resourceFilesChanged()
619*/
620
621/*!
622 \fn virtual void QDesignerFormWindowInterface::removeResourceFile(const QString &path)
623
624 Removes the resource file at the specified \a path from the list
625 of those used by the form.
626
627 \sa resourceFiles(), resourceFilesChanged()
628*/
629
630/*!
631 \fn virtual void QDesignerFormWindowInterface::ensureUniqueObjectName(QObject *object)
632
633 Ensures that the specified \a object has a unique name amongst the
634 other objects on the form.
635
636 \internal
637*/
638
639// Slots
640
641/*!
642 \fn virtual void QDesignerFormWindowInterface::manageWidget(QWidget *widget)
643
644 Instructs the form window to manage the specified \a widget.
645
646 \sa isManaged(), unmanageWidget(), widgetManaged()
647*/
648
649/*!
650 \fn virtual void QDesignerFormWindowInterface::unmanageWidget(QWidget *widget)
651
652 Instructs the form window not to manage the specified \a widget.
653
654 \sa aboutToUnmanageWidget(), widgetUnmanaged()
655*/
656
657/*!
658 \fn virtual void QDesignerFormWindowInterface::setFeatures(Feature features)
659
660 Enables the specified \a features for the form window.
661
662 \sa features(), featureChanged()
663*/
664
665/*!
666 \fn virtual void QDesignerFormWindowInterface::setDirty(bool dirty)
667
668 If \a dirty is true, the form window is marked as dirty, meaning
669 that it is modified but not saved. If \a dirty is false, the form
670 window is considered to be unmodified.
671
672 \sa isDirty()
673*/
674
675/*!
676\fn virtual void QDesignerFormWindowInterface::clearSelection(bool update)
677
678 Clears the current selection in the form window. If \a update is
679 true, the emitSelectionChanged() function is called, emitting the
680 selectionChanged() signal.
681
682 \sa selectWidget()
683*/
684
685/*!
686 \fn virtual void QDesignerFormWindowInterface::selectWidget(QWidget *widget, bool select)
687
688 If \a select is true, the given \a widget is selected; otherwise
689 the \a widget is deselected.
690
691 \sa clearSelection(), selectionChanged()
692*/
693
694/*!
695 \fn virtual void QDesignerFormWindowInterface::setGrid(const QPoint &grid)
696
697 Sets the grid size for the form window to the point specified by
698 \a grid. In this function, the coordinates in the QPoint are used
699 to specify the dimensions of a rectangle in the grid.
700
701 \sa grid()
702*/
703
704/*!
705 \fn virtual void QDesignerFormWindowInterface::setFileName(const QString &fileName)
706
707 Sets the file name for the form to the given \a fileName.
708
709 \sa fileName(), fileNameChanged()
710*/
711
712/*!
713 \fn virtual bool QDesignerFormWindowInterface::setContents(const QString &contents)
714
715 Sets the contents of the form using data read from the specified
716 \a contents string and returns whether the operation succeeded.
717
718 \sa contents()
719*/
720
721/*!
722 \fn virtual void QDesignerFormWindowInterface::editWidgets()
723
724 Switches the form window into editing mode.
725
726 \sa {Qt Widgets Designer's Form Editing Mode}
727
728 \internal
729*/
730
731// Signals
732
733/*!
734 \fn void QDesignerFormWindowInterface::mainContainerChanged(QWidget *mainContainer)
735
736 This signal is emitted whenever the main container changes.
737 The new container is specified by \a mainContainer.
738
739 \sa setMainContainer()
740*/
741
742/*!
743 \fn void QDesignerFormWindowInterface::toolChanged(int toolIndex)
744
745 This signal is emitted whenever the current tool changes.
746 The specified \a toolIndex is the index of the new tool in the list of
747 tools in the widget box.
748
749 \internal
750*/
751
752/*!
753 \fn void QDesignerFormWindowInterface::fileNameChanged(const QString &fileName)
754
755 This signal is emitted whenever the file name of the form changes.
756 The new file name is specified by \a fileName.
757
758 \sa setFileName()
759*/
760
761/*!
762 \fn void QDesignerFormWindowInterface::featureChanged(Feature feature)
763
764 This signal is emitted whenever a feature changes in the form.
765 The new feature is specified by \a feature.
766
767 \sa setFeatures()
768*/
769
770/*!
771 \fn void QDesignerFormWindowInterface::selectionChanged()
772
773 This signal is emitted whenever the selection in the form changes.
774
775 \sa selectWidget(), clearSelection()
776*/
777
778/*!
779 \fn void QDesignerFormWindowInterface::geometryChanged()
780
781 This signal is emitted whenever the form's geometry changes.
782*/
783
784/*!
785 \fn void QDesignerFormWindowInterface::resourceFilesChanged()
786
787 This signal is emitted whenever the list of resource files used by the
788 form changes.
789
790 \sa resourceFiles()
791*/
792
793/*!
794 \fn ResourceFileSaveMode QDesignerFormWindowInterface::resourceFileSaveMode() const
795
796 Returns the resource file save mode behavior.
797
798 \sa setResourceFileSaveMode()
799*/
800
801/*!
802 \fn void QDesignerFormWindowInterface::setResourceFileSaveMode(ResourceFileSaveMode behavior)
803
804 Sets the resource file save mode \a behavior.
805
806 \sa resourceFileSaveMode()
807*/
808
809/*!
810 \fn void QDesignerFormWindowInterface::widgetManaged(QWidget *widget)
811
812 This signal is emitted whenever a widget on the form becomes managed.
813 The newly managed widget is specified by \a widget.
814
815 \sa manageWidget()
816*/
817
818/*!
819 \fn void QDesignerFormWindowInterface::widgetUnmanaged(QWidget *widget)
820
821 This signal is emitted whenever a widget on the form becomes unmanaged.
822 The newly released widget is specified by \a widget.
823
824 \sa unmanageWidget(), aboutToUnmanageWidget()
825*/
826
827/*!
828 \fn void QDesignerFormWindowInterface::aboutToUnmanageWidget(QWidget *widget)
829
830 This signal is emitted whenever a widget on the form is about to
831 become unmanaged. When this signal is emitted, the specified \a
832 widget is still managed, and a widgetUnmanaged() signal will
833 follow, indicating when it is no longer managed.
834
835 \sa unmanageWidget(), isManaged()
836*/
837
838/*!
839 \fn void QDesignerFormWindowInterface::activated(QWidget *widget)
840
841 This signal is emitted whenever a widget is activated on the form.
842 The activated widget is specified by \a widget.
843*/
844
845/*!
846 \fn void QDesignerFormWindowInterface::changed()
847
848 This signal is emitted whenever a form is changed.
849*/
850
851/*!
852 \fn void QDesignerFormWindowInterface::widgetRemoved(QWidget *widget)
853
854 This signal is emitted whenever a widget is removed from the form.
855 The widget that was removed is specified by \a widget.
856*/
857
858/*!
859 \fn void QDesignerFormWindowInterface::objectRemoved(QObject *object)
860
861 This signal is emitted whenever an object (such as
862 an action or a QButtonGroup) is removed from the form.
863 The object that was removed is specified by \a object.
864
865 \since 4.5
866*/
867
868QT_END_NAMESPACE
static bool stopFindAtTopLevel(const QObject *w, bool stopAtMenu)
Combined button and popup list for selecting options.