4#ifndef QPLATFORMDIALOGHELPER_H
5#define QPLATFORMDIALOGHELPER_H
16#include <QtGui/qtguiglobal.h>
17#include <QtCore/QtGlobal>
18#include <QtCore/QObject>
19#include <QtCore/QList>
20#include <QtCore/QSharedDataPointer>
21#include <QtCore/QSharedPointer>
26Q_MOC_INCLUDE(<QColor>)
42#define QPLATFORMDIALOGHELPERS_HAS_CREATE
51 enum DialogCode { Rejected, Accepted };
55 NoButton = 0x00000000,
61 YesToAll = 0x00008000,
73 RestoreDefaults = 0x08000000,
77 LastButton = RestoreDefaults,
82 Q_DECLARE_FLAGS(StandardButtons, StandardButton)
83 Q_FLAG(StandardButtons)
102 RoleMask = 0x0FFFFFFF,
103 AlternateRole = 0x10000000,
104 Stretch = 0x20000000,
105 Reverse = 0x40000000,
121 QPlatformDialogHelper();
122 ~QPlatformDialogHelper();
124 virtual QVariant styleHint(StyleHint hint)
const;
126 virtual void exec() = 0;
127 virtual bool show(Qt::WindowFlags windowFlags,
128 Qt::WindowModality windowModality,
129 QWindow *parent) = 0;
130 virtual void hide() = 0;
132 static QVariant defaultStyleHint(QPlatformDialogHelper::StyleHint hint);
134 static const int *buttonLayout(Qt::Orientation orientation = Qt::Horizontal, ButtonLayout policy = UnknownLayout);
135 static ButtonRole buttonRole(StandardButton button);
143QT_DECL_METATYPE_EXTERN_TAGGED(QPlatformDialogHelper::StandardButton,
144 QPlatformDialogHelper__StandardButton, Q_GUI_EXPORT)
145QT_DECL_METATYPE_EXTERN_TAGGED(QPlatformDialogHelper::ButtonRole,
146 QPlatformDialogHelper__ButtonRole, Q_GUI_EXPORT)
149class Q_GUI_EXPORT QColorDialogOptions
152 Q_DISABLE_COPY(QColorDialogOptions)
154 explicit QColorDialogOptions(QColorDialogOptionsPrivate *dd);
155 ~QColorDialogOptions();
157 enum ColorDialogOption {
158 ShowAlphaChannel = 0x00000001,
159 NoButtons = 0x00000002,
160 DontUseNativeDialog = 0x00000004,
161 NoEyeDropperButton = 0x00000008
164 Q_DECLARE_FLAGS(ColorDialogOptions, ColorDialogOption)
165 Q_FLAG(ColorDialogOptions)
167 static QSharedPointer<QColorDialogOptions> create();
168 QSharedPointer<QColorDialogOptions> clone()
const;
170 QString windowTitle()
const;
171 void setWindowTitle(
const QString &);
173 void setOption(ColorDialogOption option,
bool on =
true);
174 bool testOption(ColorDialogOption option)
const;
175 void setOptions(ColorDialogOptions options);
176 ColorDialogOptions options()
const;
178 static int customColorCount();
179 static QRgb customColor(
int index);
180 static QRgb *customColors();
181 static void setCustomColor(
int index, QRgb color);
183 static QRgb *standardColors();
184 static QRgb standardColor(
int index);
185 static void setStandardColor(
int index, QRgb color);
188 QColorDialogOptionsPrivate *d;
195 const QSharedPointer<QColorDialogOptions> &options()
const;
196 void setOptions(
const QSharedPointer<QColorDialogOptions> &options);
198 virtual void setCurrentColor(
const QColor &) = 0;
199 virtual QColor currentColor()
const = 0;
202 void currentColorChanged(
const QColor &color);
203 void colorSelected(
const QColor &color);
206 QSharedPointer<QColorDialogOptions> m_options;
212 Q_DISABLE_COPY(QFontDialogOptions)
214 explicit QFontDialogOptions(QFontDialogOptionsPrivate *dd);
215 ~QFontDialogOptions();
218 enum FontDialogOption {
219 NoButtons = 0x00000001,
220 DontUseNativeDialog = 0x00000002,
221 ScalableFonts = 0x00000004,
222 NonScalableFonts = 0x00000008,
223 MonospacedFonts = 0x00000010,
224 ProportionalFonts = 0x00000020
227 Q_DECLARE_FLAGS(FontDialogOptions, FontDialogOption)
228 Q_FLAG(FontDialogOptions)
230 static QSharedPointer<QFontDialogOptions> create();
231 QSharedPointer<QFontDialogOptions> clone()
const;
233 QString windowTitle()
const;
234 void setWindowTitle(
const QString &);
236 void setOption(FontDialogOption option,
bool on =
true);
237 bool testOption(FontDialogOption option)
const;
238 void setOptions(FontDialogOptions options);
239 FontDialogOptions options()
const;
242 QFontDialogOptionsPrivate *d;
249 virtual void setCurrentFont(
const QFont &) = 0;
250 virtual QFont currentFont()
const = 0;
252 const QSharedPointer<QFontDialogOptions> &options()
const;
253 void setOptions(
const QSharedPointer<QFontDialogOptions> &options);
256 void currentFontChanged(
const QFont &font);
257 void fontSelected(
const QFont &font);
260 QSharedPointer<QFontDialogOptions> m_options;
266 Q_DISABLE_COPY(QFileDialogOptions)
268 QFileDialogOptions(QFileDialogOptionsPrivate *dd);
269 ~QFileDialogOptions();
272 enum ViewMode { Detail, List };
275 enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly };
278 enum AcceptMode { AcceptOpen, AcceptSave };
281 enum DialogLabel { LookIn, FileName, FileType, Accept, Reject, DialogLabelCount };
285 enum FileDialogOption
287 ShowDirsOnly = 0x00000001,
288 DontResolveSymlinks = 0x00000002,
289 DontConfirmOverwrite = 0x00000004,
290 DontUseNativeDialog = 0x00000008,
291 ReadOnly = 0x00000010,
292 HideNameFilterDetails = 0x00000020,
293 DontUseCustomDirectoryIcons = 0x00000040
295 Q_DECLARE_FLAGS(FileDialogOptions, FileDialogOption)
296 Q_FLAG(FileDialogOptions)
298 static QSharedPointer<QFileDialogOptions> create();
299 QSharedPointer<QFileDialogOptions> clone()
const;
301 QString windowTitle()
const;
302 void setWindowTitle(
const QString &);
304 void setOption(FileDialogOption option,
bool on =
true);
305 bool testOption(FileDialogOption option)
const;
306 void setOptions(FileDialogOptions options);
307 FileDialogOptions options()
const;
309 QDir::Filters filter()
const;
310 void setFilter(QDir::Filters filters);
312 void setViewMode(ViewMode mode);
313 ViewMode viewMode()
const;
315 void setFileMode(FileMode mode);
316 FileMode fileMode()
const;
318 void setAcceptMode(AcceptMode mode);
319 AcceptMode acceptMode()
const;
321 void setSidebarUrls(
const QList<QUrl> &urls);
322 QList<QUrl> sidebarUrls()
const;
324 bool useDefaultNameFilters()
const;
325 void setUseDefaultNameFilters(
bool d);
327 void setNameFilters(
const QStringList &filters);
328 QStringList nameFilters()
const;
330 void setMimeTypeFilters(
const QStringList &filters);
331 QStringList mimeTypeFilters()
const;
333 void setDefaultSuffix(
const QString &suffix);
334 QString defaultSuffix()
const;
336 void setHistory(
const QStringList &paths);
337 QStringList history()
const;
339 void setLabelText(DialogLabel label,
const QString &text);
340 QString labelText(DialogLabel label)
const;
341 bool isLabelExplicitlySet(DialogLabel label);
343 QUrl initialDirectory()
const;
344 void setInitialDirectory(
const QUrl &);
346 QString initiallySelectedMimeTypeFilter()
const;
347 void setInitiallySelectedMimeTypeFilter(
const QString &);
349 QString initiallySelectedNameFilter()
const;
350 void setInitiallySelectedNameFilter(
const QString &);
352 QList<QUrl> initiallySelectedFiles()
const;
353 void setInitiallySelectedFiles(
const QList<QUrl> &);
355 void setSupportedSchemes(
const QStringList &schemes);
356 QStringList supportedSchemes()
const;
358 static QString defaultNameFilterString();
361 QFileDialogOptionsPrivate *d;
368 virtual bool defaultNameFilterDisables()
const = 0;
369 virtual void setDirectory(
const QUrl &directory) = 0;
370 virtual QUrl directory()
const = 0;
371 virtual void selectFile(
const QUrl &filename) = 0;
372 virtual QList<QUrl> selectedFiles()
const = 0;
373 virtual void setFilter() = 0;
374 virtual void selectMimeTypeFilter(
const QString &filter);
375 virtual void selectNameFilter(
const QString &filter) = 0;
376 virtual QString selectedMimeTypeFilter()
const;
377 virtual QString selectedNameFilter()
const = 0;
379 virtual bool isSupportedUrl(
const QUrl &url)
const;
381 const QSharedPointer<QFileDialogOptions> &options()
const;
382 void setOptions(
const QSharedPointer<QFileDialogOptions> &options);
384 static QStringList cleanFilterList(
const QString &filter);
385 static const char filterRegExp[];
388 void fileSelected(
const QUrl &file);
389 void filesSelected(
const QList<QUrl> &files);
390 void currentChanged(
const QUrl &path);
391 void directoryEntered(
const QUrl &directory);
392 void filterSelected(
const QString &filter);
395 QSharedPointer<QFileDialogOptions> m_options;
401 Q_DISABLE_COPY(QMessageDialogOptions)
403 QMessageDialogOptions(QMessageDialogOptionsPrivate *dd);
404 ~QMessageDialogOptions();
409 DontUseNativeDialog = 0x00000001,
411 Q_DECLARE_FLAGS(Options, Option)
415 enum StandardIcon { NoIcon, Information, Warning, Critical, Question };
418 static QSharedPointer<QMessageDialogOptions> create();
419 QSharedPointer<QMessageDialogOptions> clone()
const;
421 QString windowTitle()
const;
422 void setWindowTitle(
const QString &);
424 void setStandardIcon(StandardIcon icon);
425 StandardIcon standardIcon()
const;
427 void setIconPixmap(
const QPixmap &pixmap);
428 QPixmap iconPixmap()
const;
430 void setText(
const QString &text);
431 QString text()
const;
433 void setInformativeText(
const QString &text);
434 QString informativeText()
const;
436 void setDetailedText(
const QString &text);
437 QString detailedText()
const;
439 void setOption(Option option,
bool on =
true);
440 bool testOption(Option option)
const;
441 void setOptions(Options options);
442 Options options()
const;
444 void setStandardButtons(QPlatformDialogHelper::StandardButtons buttons);
445 QPlatformDialogHelper::StandardButtons standardButtons()
const;
447 struct CustomButton {
448 explicit CustomButton(
449 int id = -1,
const QString &label = QString(),
450 QPlatformDialogHelper::ButtonRole role = QPlatformDialogHelper::InvalidRole,
451 void *button =
nullptr) :
452 label(label), role(role), id(id), button(button)
456 QPlatformDialogHelper::ButtonRole role;
461 int addButton(
const QString &label, QPlatformDialogHelper::ButtonRole role,
462 void *buttonImpl =
nullptr,
int buttonId = 0);
463 void removeButton(
int id);
464 const QList<CustomButton> &customButtons();
465 const CustomButton *customButton(
int id);
466 void clearCustomButtons();
468 void setCheckBox(
const QString &label, Qt::CheckState state);
469 QString checkBoxLabel()
const;
470 Qt::CheckState checkBoxState()
const;
472 void setEscapeButton(
int id);
473 int escapeButton()
const;
475 void setDefaultButton(
int id);
476 int defaultButton()
const;
479 QMessageDialogOptionsPrivate *d;
486 const QSharedPointer<QMessageDialogOptions> &options()
const;
487 void setOptions(
const QSharedPointer<QMessageDialogOptions> &options);
490 void clicked(QPlatformDialogHelper::StandardButton button, QPlatformDialogHelper::ButtonRole role);
491 void checkBoxStateChanged(Qt::CheckState state);
494 QSharedPointer<QMessageDialogOptions> m_options;
QColorDialogOptionsPrivate()=default
QColorDialogOptionsPrivate(const QColorDialogOptionsPrivate &)=default
QColorDialogOptionsPrivate(QColorDialogOptionsPrivate &&)=default
QColorDialogOptionsPrivate & operator=(QColorDialogOptionsPrivate &&)=delete
QColorDialogOptions::ColorDialogOptions options
QColorDialogOptionsPrivate & operator=(const QColorDialogOptionsPrivate &)=delete
QRgb customRgb[CustomColorCount]
QRgb standardRgb[StandardColorCount]
QString initiallySelectedMimeTypeFilter
bool useDefaultNameFilters
QString labels[QFileDialogOptions::DialogLabelCount]
QString initiallySelectedNameFilter
QList< QUrl > initiallySelectedFiles
QList< QUrl > sidebarUrls
QStringList mimeTypeFilters
QStringList supportedSchemes
QFontDialogOptionsPrivate()=default
QList< QMessageDialogOptions::CustomButton > customButtons
QMessageDialogOptionsPrivate()
Qt::CheckState checkBoxState