1{
2    "module": "widgets",
3    "depends": [
4        "core-private",
5        "gui"
6    ],
7    "testDir": "../../config.tests",
8
9    "commandline": {
10        "options": {
11            "gtk": { "type": "boolean", "name": "gtk3" },
12            "style-windows": "boolean",
13            "style-windowsvista": "boolean",
14            "style-fusion": "boolean",
15            "style-mac": "boolean",
16            "style-android": "boolean"
17        }
18    },
19
20    "libraries": {
21        "gtk3": {
22            "label": "GTK+ >= 3.6",
23            "sources": [
24                { "type": "pkgConfig", "args": "gtk+-3.0 >= 3.6" }
25            ]
26        }
27    },
28
29    "tests": {
30        "uxtheme": {
31            "label": "uxtheme.h",
32            "type": "files",
33            "files": [ "uxtheme.h" ]
34        }
35    },
36
37    "features": {
38        "gtk3": {
39            "label": "GTK+",
40            "autoDetect": "!config.darwin",
41            "condition": "features.glib && libs.gtk3",
42            "output": [ "privateFeature" ]
43        },
44        "style-fusion": {
45            "label": "Fusion",
46            "output": [ "privateFeature", "styles" ]
47        },
48        "style-mac": {
49            "label": "macOS",
50            "condition": "config.osx && features.animation",
51            "output": [ "privateFeature", "styles" ]
52        },
53        "style-windows": {
54            "label": "Windows",
55            "output": [ "privateFeature", "styles" ]
56        },
57        "style-windowsvista": {
58            "label": "WindowsVista",
59            "condition": "features.style-windows && features.animation && config.win32 && !config.winrt && tests.uxtheme",
60            "output": [ "privateFeature", "styles" ]
61        },
62        "style-android": {
63            "label": "Android",
64            "autoDetect": "config.android",
65            "output": [ "privateFeature", "styles" ]
66        },
67        "style-stylesheet": {
68            "label": "QStyleSheetStyle",
69            "purpose": "Provides a widget style which is configurable via CSS.",
70            "section": "Styles",
71            "condition": "features.style-windows && features.properties && features.cssparser",
72            "output": [ "publicFeature", "feature" ]
73        },
74        "effects": {
75            "label": "Effects",
76            "purpose": "Provides special widget effects (e.g. fading and scrolling).",
77            "section": "Kernel",
78            "output": [ "privateFeature" ]
79        },
80        "filesystemmodel": {
81            "label": "QFileSystemModel",
82            "purpose": "Provides a data model for the local filesystem.",
83            "section": "File I/O",
84            "condition": "features.itemmodel",
85            "output": [ "publicFeature", "feature" ]
86        },
87        "itemviews": {
88            "label": "The Model/View Framework",
89            "purpose": "Provides the model/view architecture managing the relationship between data and the way it is presented to the user.",
90            "section": "ItemViews",
91            "condition": "features.itemmodel && features.scrollarea",
92            "output": [ "publicFeature", "feature" ]
93        },
94        "treewidget": {
95            "label": "QTreeWidget",
96            "purpose": "Provides views using tree models.",
97            "section": "Widgets",
98            "condition": "features.treeview",
99            "output": [ "publicFeature", "feature" ]
100        },
101        "listwidget": {
102            "label": "QListWidget",
103            "purpose": "Provides item-based list widgets.",
104            "section": "Widgets",
105            "condition": "features.listview",
106            "output": [ "publicFeature", "feature" ]
107        },
108        "tablewidget": {
109            "label": "QTableWidget",
110            "purpose": "Provides item-based table views.",
111            "section": "Widgets",
112            "condition": "features.tableview",
113            "output": [ "publicFeature", "feature" ]
114        },
115        "abstractbutton": {
116            "label": "QAbstractButton",
117            "purpose": "Abstract base class of button widgets, providing functionality common to buttons.",
118            "section": "Widgets",
119            "output": [ "publicFeature" ]
120        },
121        "commandlinkbutton": {
122            "label": "QCommandLinkButton",
123            "purpose": "Provides a Vista style command link button.",
124            "section": "Widgets",
125            "condition": "features.pushbutton",
126            "output": [ "publicFeature" ]
127        },
128        "datetimeedit": {
129            "label": "QDateTimeEdit",
130            "purpose": "Supports editing dates and times.",
131            "section": "Widgets",
132            "condition": "features.calendarwidget && features.datestring && features.textdate && features.datetimeparser",
133            "output": [ "publicFeature", "feature" ]
134        },
135        "stackedwidget": {
136            "label": "QStackedWidget",
137            "purpose": "Provides stacked widgets.",
138            "section": "Widgets",
139            "output": [ "publicFeature", "feature" ]
140        },
141        "textbrowser": {
142            "label": "QTextBrowser",
143            "purpose": "Supports HTML document browsing.",
144            "section": "Widgets",
145            "condition": "features.textedit",
146            "output": [ "publicFeature", "feature" ]
147        },
148        "splashscreen": {
149            "label": "QSplashScreen",
150            "purpose": "Supports splash screens that can be shown during application startup.",
151            "section": "Widgets",
152            "output": [ "publicFeature", "feature" ]
153        },
154        "splitter": {
155            "label": "QSplitter",
156            "purpose": "Provides user controlled splitter widgets.",
157            "section": "Widgets",
158            "output": [ "publicFeature", "feature" ]
159        },
160        "widgettextcontrol": {
161            "label": "QWidgetTextControl",
162            "purpose": "Provides text control functionality to other widgets.",
163            "section": "Widgets",
164            "output": [ "privateFeature" ]
165        },
166        "label": {
167            "label": "QLabel",
168            "purpose": "Provides a text or image display.",
169            "section": "Widgets",
170            "condition": "features.widgettextcontrol",
171            "output": [ "publicFeature" ]
172        },
173        "formlayout": {
174            "label": "QFormLayout",
175            "purpose": "Manages forms of input widgets and their associated labels.",
176            "section": "Widgets",
177            "condition": "features.label",
178            "output": [ "publicFeature" ]
179        },
180        "lcdnumber": {
181            "label": "QLCDNumber",
182            "purpose": "Provides LCD-like digits.",
183            "section": "Widgets",
184            "output": [ "publicFeature", "feature" ]
185        },
186        "menu": {
187            "label": "QMenu",
188            "purpose": "Provides popup-menus.",
189            "section": "Widgets",
190            "condition": "features.action && features.pushbutton",
191            "output": [ "publicFeature", "feature" ]
192        },
193        "lineedit": {
194            "label": "QLineEdit",
195            "purpose": "Provides single-line edits.",
196            "section": "Widgets",
197            "condition": "features.widgettextcontrol",
198            "output": [ "publicFeature", "feature" ]
199        },
200        "radiobutton": {
201            "label": "QRadioButton",
202            "purpose": "Provides a radio button with a text label.",
203            "section": "Widgets",
204            "condition": "features.abstractbutton",
205            "output": [ "publicFeature" ]
206        },
207        "spinbox": {
208            "label": "QSpinBox",
209            "purpose": "Provides spin boxes handling integers and discrete sets of values.",
210            "section": "Widgets",
211            "condition": "features.lineedit && features.validator",
212            "output": [ "publicFeature", "feature" ]
213        },
214        "tabbar": {
215            "label": "QTabBar",
216            "purpose": "Provides tab bars, e.g., for use in tabbed dialogs.",
217            "section": "Widgets",
218            "condition": "features.toolbutton",
219            "output": [ "publicFeature", "feature" ]
220        },
221        "tabwidget": {
222            "label": "QTabWidget",
223            "purpose": "Supports stacking tabbed widgets.",
224            "section": "Widgets",
225            "condition": "features.tabbar && features.stackedwidget",
226            "output": [ "publicFeature", "feature" ]
227        },
228        "combobox": {
229            "label": "QComboBox",
230            "purpose": "Provides drop-down boxes presenting a list of options to the user.",
231            "section": "Widgets",
232            "condition": "features.lineedit && features.standarditemmodel && features.listview",
233            "output": [ "publicFeature", "feature" ]
234        },
235        "fontcombobox": {
236            "label": "QFontComboBox",
237            "purpose": "Provides a combobox that lets the user select a font family.",
238            "section": "Widgets",
239            "condition": "features.combobox && features.stringlistmodel",
240            "output": [ "publicFeature", "feature" ]
241        },
242        "checkbox": {
243            "label": "QCheckBox(",
244            "purpose": "Provides a checkbox with a text label.",
245            "section": "Widgets",
246            "condition": "features.abstractbutton",
247            "output": [ "publicFeature" ]
248        },
249        "pushbutton": {
250            "label": "QPushButton",
251            "purpose": "Provides a command button.",
252            "section": "Widgets",
253            "condition": "features.abstractbutton && features.action",
254            "output": [ "publicFeature" ]
255        },
256        "toolbutton": {
257            "label": "QToolButton",
258            "purpose": "Provides quick-access buttons to commands and options.",
259            "section": "Widgets",
260            "condition": "features.abstractbutton && features.action",
261            "output": [ "publicFeature", "feature" ]
262        },
263        "toolbar": {
264            "label": "QToolBar",
265            "purpose": "Provides movable panels containing a set of controls.",
266            "section": "Widgets",
267            "condition": "features.mainwindow",
268            "output": [ "publicFeature", "feature" ]
269        },
270        "toolbox": {
271            "label": "QToolBox",
272            "purpose": "Provides columns of tabbed widget items.",
273            "section": "Widgets",
274            "condition": "features.toolbutton && features.scrollarea",
275            "output": [ "publicFeature", "feature" ]
276        },
277        "groupbox": {
278            "label": "QGroupBox",
279            "purpose": "Provides widget grouping boxes with frames.",
280            "section": "Widgets",
281            "output": [ "publicFeature", "feature" ]
282        },
283        "buttongroup": {
284            "label": "QButtonGroup",
285            "purpose": "Supports organizing groups of button widgets.",
286            "section": "Widgets",
287            "condition": "features.abstractbutton && features.groupbox",
288            "output": [ "publicFeature", "feature" ]
289        },
290        "mainwindow": {
291            "label": "QMainWindow",
292            "purpose": "Provides main application windows.",
293            "section": "Widgets",
294            "condition": "features.menu && features.resizehandler && features.toolbutton",
295            "output": [ "publicFeature", "feature" ]
296        },
297        "dockwidget": {
298            "label": "QDockwidget",
299            "purpose": "Supports docking widgets inside a QMainWindow or floated as a top-level window on the desktop.",
300            "section": "Widgets",
301            "condition": "features.mainwindow",
302            "output": [ "publicFeature", "feature" ]
303        },
304        "mdiarea": {
305            "label": "QMdiArea",
306            "purpose": "Provides an area in which MDI windows are displayed.",
307            "section": "Widgets",
308            "condition": "features.scrollarea",
309            "output": [ "publicFeature", "feature" ]
310        },
311        "resizehandler": {
312            "label": "QWidgetResizeHandler",
313            "purpose": "Provides an internal resize handler for dock widgets.",
314            "section": "Widgets",
315            "output": [ "publicFeature", "feature" ]
316        },
317        "statusbar": {
318            "label": "QStatusBar",
319            "purpose": "Supports presentation of status information.",
320            "section": "Widgets",
321            "output": [ "publicFeature", "feature" ]
322        },
323        "menubar": {
324            "label": "QMenuBar",
325            "purpose": "Provides pull-down menu items.",
326            "section": "Widgets",
327            "condition": "features.menu && features.toolbutton",
328            "output": [ "publicFeature", "feature" ]
329        },
330        "contextmenu": {
331            "label": "Context menus",
332            "purpose": "Adds pop-up menus on right mouse click to numerous widgets.",
333            "section": "Widgets",
334            "condition": "features.menu",
335            "output": [ "publicFeature", "feature" ]
336        },
337        "progressbar": {
338            "label": "QProgressBar",
339            "purpose": "Supports presentation of operation progress.",
340            "section": "Widgets",
341            "output": [ "publicFeature", "feature" ]
342        },
343        "abstractslider": {
344            "label": "QAbstractSlider",
345            "purpose": "Common super class for widgets like QScrollBar, QSlider and QDial.",
346            "section": "Widgets",
347            "output": [ "publicFeature" ]
348        },
349        "slider": {
350            "label": "QSlider",
351            "purpose": "Provides sliders controlling a bounded value.",
352            "section": "Widgets",
353            "condition": "features.abstractslider",
354            "output": [ "publicFeature", "feature" ]
355        },
356        "scrollbar": {
357            "label": "QScrollBar",
358            "purpose": "Provides scrollbars allowing the user access parts of a document that is larger than the widget used to display it.",
359            "section": "Widgets",
360            "condition": "features.slider",
361            "output": [ "publicFeature", "feature" ]
362        },
363        "dial": {
364            "label": "QDial",
365            "purpose": "Provides a rounded range control, e.g., like a speedometer.",
366            "section": "Widgets",
367            "condition": "features.slider",
368            "output": [ "publicFeature", "feature" ]
369        },
370        "scrollarea": {
371            "label": "QScrollArea",
372            "purpose": "Supports scrolling views onto widgets.",
373            "section": "Widgets",
374            "condition": "features.scrollbar",
375            "output": [ "publicFeature", "feature" ]
376        },
377        "scroller": {
378            "label": "QScroller",
379            "purpose": "Enables kinetic scrolling for any scrolling widget or graphics item.",
380            "section": "Widgets",
381            "condition": "features.easingcurve",
382            "output": [ "publicFeature" ]
383        },
384        "graphicsview": {
385            "label": "QGraphicsView",
386            "purpose": "Provides a canvas/sprite framework.",
387            "section": "Widgets",
388            "condition": "features.scrollarea && features.widgettextcontrol",
389            "output": [ "publicFeature", "feature" ]
390        },
391        "graphicseffect": {
392            "label": "QGraphicsEffect",
393            "purpose": "Provides various graphics effects.",
394            "section": "Widgets",
395            "condition": "features.graphicsview",
396            "output": [ "publicFeature", "feature" ]
397        },
398        "textedit": {
399            "label": "QTextEdit",
400            "purpose": "Supports rich text editing.",
401            "section": "Widgets",
402            "condition": "features.scrollarea && features.properties && features.widgettextcontrol",
403            "output": [ "publicFeature", "feature" ]
404        },
405        "syntaxhighlighter": {
406            "label": "QSyntaxHighlighter",
407            "purpose": "Supports custom syntax highlighting.",
408            "section": "Widgets",
409            "condition": "features.textedit",
410            "output": [ "publicFeature", "feature" ]
411        },
412        "rubberband": {
413            "label": "QRubberBand",
414            "purpose": "Supports using rubberbands to indicate selections and boundaries.",
415            "section": "Widgets",
416            "output": [ "publicFeature", "feature" ]
417        },
418        "tooltip": {
419            "label": "QToolTip",
420            "purpose": "Supports presentation of tooltips.",
421            "section": "Widgets",
422            "condition": "features.label",
423            "output": [ "publicFeature", "feature" ]
424        },
425        "statustip": {
426            "label": "Status Tip",
427            "purpose": "Supports status tip functionality and events.",
428            "section": "Widgets",
429            "output": [ "publicFeature", "feature" ]
430        },
431        "sizegrip": {
432            "label": "QSizeGrip",
433            "purpose": "Provides corner-grips for resizing top-level windows.",
434            "section": "Widgets",
435            "output": [ "publicFeature", "feature" ]
436        },
437        "calendarwidget": {
438            "label": "QCalendarWidget",
439            "purpose": "Provides a monthly based calendar widget allowing the user to select a date.",
440            "section": "Widgets",
441            "condition": [
442                "features.label",
443                "features.menu",
444                "features.pushbutton",
445                "features.spinbox",
446                "features.tableview",
447                "features.textdate",
448                "features.toolbutton"
449            ],
450            "output": [ "publicFeature", "feature" ]
451        },
452        "keysequenceedit": {
453            "label": "QKeySequenceEdit",
454            "purpose": "Provides a widget for editing QKeySequences.",
455            "section": "Widgets",
456            "condition": "features.lineedit && features.shortcut",
457            "output": [ "publicFeature", "feature" ]
458        },
459        "dialog" : {
460            "label": "QDialog",
461            "purpose": "Base class of dialog windows.",
462            "section": "Dialogs",
463            "output": [ "publicFeature" ]
464        },
465        "dialogbuttonbox": {
466            "label": "QDialogButtonBox",
467            "purpose": "Presents buttons in a layout that is appropriate for the current widget style.",
468            "section": "Dialogs",
469            "condition": "features.dialog && features.pushbutton",
470            "output": [ "publicFeature" ]
471        },
472        "messagebox": {
473            "label": "QMessageBox",
474            "purpose": "Provides message boxes displaying informative messages and simple questions.",
475            "section": "Dialogs",
476            "condition" : [
477                "features.checkbox",
478                "features.dialog",
479                "features.dialogbuttonbox",
480                "features.label",
481                "features.pushbutton"
482            ],
483            "output": [ "publicFeature", "feature" ]
484        },
485        "colordialog": {
486            "label": "QColorDialog",
487            "purpose": "Provides a dialog widget for specifying colors.",
488            "section": "Dialogs",
489            "condition": [
490                "features.dialog",
491                "features.dialogbuttonbox",
492                "features.label",
493                "features.pushbutton",
494                "features.spinbox"
495            ],
496            "output": [ "publicFeature", "feature" ]
497        },
498        "filedialog": {
499            "label": "QFileDialog",
500            "purpose": "Provides a dialog widget for selecting files or directories.",
501            "section": "Dialogs",
502            "condition": [
503                "features.buttongroup",
504                "features.combobox",
505                "features.dialog",
506                "features.dialogbuttonbox",
507                "features.dirmodel",
508                "features.label",
509                "features.proxymodel",
510                "features.splitter",
511                "features.stackedwidget",
512                "features.treeview",
513                "features.toolbutton"
514            ],
515            "output": [ "publicFeature", "feature" ]
516        },
517        "fontdialog": {
518            "label": "QFontDialog",
519            "purpose": "Provides a dialog widget for selecting fonts.",
520            "section": "Dialogs",
521            "condition": [
522               "features.checkbox",
523               "features.combobox",
524               "features.dialog",
525               "features.dialogbuttonbox",
526               "features.groupbox",
527               "features.label",
528               "features.pushbutton",
529               "features.stringlistmodel",
530               "features.validator"
531            ],
532            "output": [ "publicFeature", "feature" ]
533        },
534        "progressdialog": {
535            "label": "QProgressDialog",
536            "purpose": "Provides feedback on the progress of a slow operation.",
537            "section": "Dialogs",
538            "condition": [
539                "features.dialog",
540                "features.label",
541                "features.pushbutton",
542                "features.progressbar"
543            ],
544            "output": [ "publicFeature", "feature" ]
545        },
546        "inputdialog": {
547            "label": "QInputDialog",
548            "purpose": "Provides a simple convenience dialog to get a single value from the user.",
549            "section": "Dialogs",
550            "condition": [
551                "features.combobox",
552                "features.dialog",
553                "features.dialogbuttonbox",
554                "features.label",
555                "features.pushbutton",
556                "features.spinbox",
557                "features.stackedwidget",
558                "features.textedit"
559            ],
560            "output": [ "publicFeature", "feature" ]
561        },
562        "errormessage": {
563            "label": "QErrorMessage",
564            "purpose": "Provides an error message display dialog.",
565            "section": "Dialogs",
566            "condition": [
567                "features.checkbox",
568                "features.dialog",
569                "features.textedit",
570                "features.label",
571                "features.pushbutton",
572                "features.textedit"
573            ],
574            "output": [ "publicFeature", "feature" ]
575        },
576        "wizard": {
577            "label": "QWizard",
578            "purpose": "Provides a framework for multi-page click-through dialogs.",
579            "section": "Dialogs",
580            "condition": [
581                "features.dialog",
582                "features.pushbutton",
583                "features.properties",
584                "features.label"
585            ],
586            "output": [ "publicFeature", "feature" ]
587        },
588        "dirmodel": {
589            "label": "QDirModel",
590            "purpose": "Provides a data model for the local filesystem.",
591            "section": "ItemViews",
592            "condition": "features.itemviews && features.filesystemmodel",
593            "output": [ "publicFeature", "feature" ]
594        },
595        "listview": {
596            "label": "QListView",
597            "purpose": "Provides a list or icon view onto a model.",
598            "section": "ItemViews",
599            "condition": "features.itemviews",
600            "output": [ "publicFeature", "feature" ]
601        },
602        "tableview": {
603            "label": "QTableView",
604            "purpose": "Provides a default model/view implementation of a table view.",
605            "section": "ItemViews",
606            "condition": "features.itemviews",
607            "output": [ "publicFeature", "feature" ]
608        },
609        "treeview": {
610            "label": "QTreeView",
611            "purpose": "Provides a default model/view implementation of a tree view.",
612            "section": "ItemViews",
613            "condition": "features.itemviews",
614            "output": [ "publicFeature", "feature" ]
615        },
616        "datawidgetmapper": {
617            "label": "QDataWidgetMapper",
618            "purpose": "Provides mapping between a section of a data model to widgets.",
619            "section": "ItemViews",
620            "condition": "features.itemviews && features.properties",
621            "output": [ "publicFeature", "feature" ]
622        },
623        "columnview": {
624            "label": "QColumnView",
625            "purpose": "Provides a model/view implementation of a column view.",
626            "section": "ItemViews",
627            "condition": "features.listview",
628            "output": [ "publicFeature", "feature" ]
629        },
630        "completer": {
631            "label": "QCompleter",
632            "purpose": "Provides completions based on an item model.",
633            "section": "Utilities",
634            "condition": "features.proxymodel && features.itemviews",
635            "output": [ "publicFeature", "feature" ]
636        },
637        "fscompleter": {
638            "label": "QFSCompleter",
639            "purpose": "Provides file name completion in QFileDialog.",
640            "section": "Utilities",
641            "condition": "features.filesystemmodel && features.completer",
642            "output": [ "publicFeature", "feature" ]
643        },
644        "undocommand": {
645            "label": "QUndoCommand",
646            "purpose": "Applies (redo or) undo of a single change in a document.",
647            "section": "Utilities",
648            "output": [ "publicFeature", "feature" ]
649        },
650        "undostack": {
651            "label": "QUndoStack",
652            "purpose": "Provides the ability to (redo or) undo a list of changes in a document.",
653            "section": "Utilities",
654            "condition": "features.undocommand",
655            "output": [ "publicFeature", "feature" ]
656        },
657        "undogroup": {
658            "label": "QUndoGroup",
659            "purpose": "Provides the ability to cluster QUndoCommands.",
660            "section": "Utilities",
661            "condition": "features.undostack",
662            "output": [ "publicFeature", "feature" ]
663        },
664        "undoview": {
665            "label": "QUndoView",
666            "purpose": "Provides a widget which shows the contents of an undo stack.",
667            "section": "Utilities",
668            "condition": "features.undostack && features.listview",
669            "output": [ "publicFeature", "feature" ]
670        }
671    },
672
673    "report": [
674    ],
675
676    "summary": [
677        {
678            "section": "Qt Widgets",
679            "entries": [
680                "gtk3",
681                {
682                    "message": "Styles",
683                    "type": "featureList",
684                    "args": "style-fusion style-mac style-windows style-windowsvista style-android"
685                }
686            ]
687        }
688    ]
689}
690