Krita Source Code Documentation
Loading...
Searching...
No Matches
KoDialog.h
Go to the documentation of this file.
1/* This file is part of the KDE Librariesfsignals
2 * SPDX-FileCopyrightText: 1998 Thomas Tanghus (tanghus@earthling.net)
3 * SPDX-FileCopyrightText: 1999-2000 Espen Sand (espen@kde.org)
4 * SPDX-FileCopyrightText: 1999-2000 Holger Freyther <freyther@kde.org>
5 * SPDX-FileCopyrightText: 2005-2009 Olivier Goffart <ogoffart @ kde.org>
6 * SPDX-FileCopyrightText: 2006 Tobias Koenig <tokoe@kde.org>
7 *
8 * SPDX-License-Identifier: LGPL-2.0-or-later
9 */
10
11#ifndef KODIALOG_H
12#define KODIALOG_H
13
14class QPushButton;
15class QMenu;
16class KoDialogPrivate;
17
18#include <kritawidgets_export.h>
19#include <kconfiggroup.h>
20#include <kguiitem.h>
21
22#include <QDialog>
23
115class KRITAWIDGETS_EXPORT KoDialog : public QDialog //krazy:exclude=qclasses
116{
117 Q_OBJECT
118 Q_ENUMS(ButtonCode)
119 Q_DECLARE_PRIVATE(KoDialog)
120
121public:
122
124 None = 0x00000000,
125 Help = 0x00000001,
126 Default = 0x00000002,
127 Ok = 0x00000004,
128 Apply = 0x00000008,
129 Try = 0x00000010,
130 Cancel = 0x00000020,
131 Close = 0x00000040,
132 No = 0x00000080,
133 Yes = 0x00000100,
134 Reset = 0x00000200,
135 Details = 0x00000400,
136 User1 = 0x00001000,
137 User2 = 0x00002000,
138 User3 = 0x00004000,
139 NoDefault = 0x00008000
140 };
141 // TODO KDE5: remove NoDefault and use the value None instead
142 Q_DECLARE_FLAGS(ButtonCodes, ButtonCode)
143
145 InstantPopup = 0,
146 DelayedPopup = 1
147 };
148 Q_DECLARE_FLAGS(ButtonPopupModes, ButtonPopupMode)
149
150public:
157 explicit KoDialog(QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
158
162 ~KoDialog() override;
163
179 void setButtons(ButtonCodes buttonMask);
180
191 void setButtonsOrientation(Qt::Orientation orientation);
192
203 void setEscapeButton(ButtonCode id);
204
213 void setDefaultButton(ButtonCode id);
214
219 ButtonCode defaultButton() const;
220
225 void showButtonSeparator(bool state);
226
237 void showButton(ButtonCode id, bool state);
238
245 void setButtonText(ButtonCode id, const QString &text);
246
250 QString buttonText(ButtonCode id) const;
251
258 void setButtonIcon(ButtonCode id, const QIcon &icon);
259
263 QIcon buttonIcon(ButtonCode id) const;
264
271 void setButtonToolTip(ButtonCode id, const QString &text);
272
276 QString buttonToolTip(ButtonCode id) const;
277
284 void setButtonWhatsThis(ButtonCode id, const QString &text);
285
289 QString buttonWhatsThis(ButtonCode id) const;
290
300 void setButtonGuiItem(ButtonCode id, const KGuiItem &item);
301
305 void setButtonFocus(ButtonCode id);
306
316 void setInitialSize(const QSize &size);
317
326 void incrementInitialSize(const QSize &size);
327
340 QString helpLinkText() const;
341
345 bool isButtonEnabled(ButtonCode id) const;
346
357 QPushButton *button(ButtonCode id) const;
358
366 static int marginHint();
367
375 static int spacingHint();
376
383 static int groupSpacingHint();
384
399 NoCaptionFlags = 0,
400 AppNameCaption = 1,
401 ModifiedCaption = 2,
402 HIGCompliantCaption = AppNameCaption
403 };
404 Q_DECLARE_FLAGS(CaptionFlags, CaptionFlag)
405
406
426 static QString makeStandardCaption(const QString &userCaption,
427 QWidget *window = 0,
428 CaptionFlags flags = HIGCompliantCaption);
429
441 static void resizeLayout(QWidget *widget, int margin, int spacing);
442
454 static void resizeLayout(QLayout *lay, int margin, int spacing);
455
459 void setMainWidget(QWidget *widget);
460
469 QWidget *mainWidget();
470
474 QSize sizeHint() const override;
475
479 QSize minimumSizeHint() const override;
480
481public Q_SLOTS:
491 virtual void setCaption(const QString &caption);
492
504 virtual void setCaption(const QString &caption, bool modified);
505
512 virtual void setPlainCaption(const QString &caption);
513
520 void enableButton(ButtonCode id, bool state);
521
527 void enableButtonOk(bool state);
528
534 void enableButtonApply(bool state);
535
541 void enableButtonCancel(bool state);
542
552 void enableLinkedHelp(bool state);
553
566 void setHelpLinkText(const QString &text);
567
580 void setHelp(const QString &anchor, const QString &appname = QString());
581
585 bool isDetailsWidgetVisible() const;
586
590 void setDetailsWidgetVisible(bool visible);
591
598 void setDetailsWidget(QWidget *detailsWidget);
599
607 void delayedDestruct();
608
609Q_SIGNALS:
620
626
632
638
644
650
656
662
668
673 void okClicked();
674
680
685 void noClicked();
686
692
698
705
713 void hidden();
714
729 void finished();
730
736
737protected:
742 void hideEvent(QHideEvent *) override;
743
750 void closeEvent(QCloseEvent *e) override;
751
755 void keyPressEvent(QKeyEvent *) override;
756
757 void showEvent(QShowEvent *e) override;
758
759protected Q_SLOTS:
781 virtual void slotButtonClicked(int button);
782
783private:
784
785
786 KoDialog(KoDialogPrivate &dd, QWidget *parent, Qt::WindowFlags f = Qt::WindowFlags());
788
789private:
790 Q_DISABLE_COPY(KoDialog)
791 Q_PRIVATE_SLOT(d_ptr, void queuedLayoutUpdate())
792 Q_PRIVATE_SLOT(d_ptr, void helpLinkClicked())
793};
794
797
798#endif // KODIALOG_H
Q_DECLARE_FLAGS(KisUpdaterContextSnapshotEx, KisUpdaterContextSnapshotExTag)
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116
ButtonPopupMode
Definition KoDialog.h:144
void user1Clicked()
void user3Clicked()
void finished()
void applyClicked()
void tryClicked()
void aboutToShowDetails()
void resetClicked()
void yesClicked()
void defaultClicked()
void helpClicked()
void buttonClicked(KoDialog::ButtonCode button)
void user2Clicked()
void noClicked()
void layoutHintChanged()
void cancelClicked()
void hidden()
KoDialogPrivate *const d_ptr
Definition KoDialog.h:787
void closeClicked()
void okClicked()
Q_DECLARE_OPERATORS_FOR_FLAGS(KisBaseRectsWalker::SubtreeVisitFlags)
QString button(const QWheelEvent &ev)