|
Krita Source Code Documentation
|
A dialog base class with standard buttons and predefined layouts. More...
#include <KoDialog.h>
Inheritance diagram for KoDialog:Public Types | |
| enum | ButtonCode { None = 0x00000000 , Help = 0x00000001 , Default = 0x00000002 , Ok = 0x00000004 , Apply = 0x00000008 , Try = 0x00000010 , Cancel = 0x00000020 , Close = 0x00000040 , No = 0x00000080 , Yes = 0x00000100 , Reset = 0x00000200 , Details = 0x00000400 , User1 = 0x00001000 , User2 = 0x00002000 , User3 = 0x00004000 , NoDefault = 0x00008000 } |
| enum | ButtonPopupMode { InstantPopup = 0 , DelayedPopup = 1 } |
| enum | CaptionFlag { NoCaptionFlags = 0 , AppNameCaption = 1 , ModifiedCaption = 2 , HIGCompliantCaption = AppNameCaption } |
Public Slots | |
| void | delayedDestruct () |
| void | enableButton (ButtonCode id, bool state) |
| void | enableButtonApply (bool state) |
| void | enableButtonCancel (bool state) |
| void | enableButtonOk (bool state) |
| void | enableLinkedHelp (bool state) |
| bool | isDetailsWidgetVisible () const |
| virtual void | setCaption (const QString &caption) |
| virtual void | setCaption (const QString &caption, bool modified) |
| void | setDetailsWidget (QWidget *detailsWidget) |
| void | setDetailsWidgetVisible (bool visible) |
| void | setHelp (const QString &anchor, const QString &appname=QString()) |
| void | setHelpLinkText (const QString &text) |
| virtual void | setPlainCaption (const QString &caption) |
Signals | |
| void | aboutToShowDetails () |
| void | applyClicked () |
| void | buttonClicked (KoDialog::ButtonCode button) |
| void | cancelClicked () |
| void | closeClicked () |
| void | defaultClicked () |
| void | finished () |
| void | helpClicked () |
| void | hidden () |
| void | layoutHintChanged () |
| void | noClicked () |
| void | okClicked () |
| void | resetClicked () |
| void | tryClicked () |
| void | user1Clicked () |
| void | user2Clicked () |
| void | user3Clicked () |
| void | yesClicked () |
Public Member Functions | |
| QPushButton * | button (ButtonCode id) const |
| QIcon | buttonIcon (ButtonCode id) const |
| QString | buttonText (ButtonCode id) const |
| QString | buttonToolTip (ButtonCode id) const |
| QString | buttonWhatsThis (ButtonCode id) const |
| ButtonCode | defaultButton () const |
| QString | helpLinkText () const |
| void | incrementInitialSize (const QSize &size) |
| bool | isButtonEnabled (ButtonCode id) const |
| KoDialog (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags()) | |
| QWidget * | mainWidget () |
| QSize | minimumSizeHint () const override |
| void | setButtonFocus (ButtonCode id) |
| void | setButtonGuiItem (ButtonCode id, const KGuiItem &item) |
| void | setButtonIcon (ButtonCode id, const QIcon &icon) |
| void | setButtons (ButtonCodes buttonMask) |
| void | setButtonsOrientation (Qt::Orientation orientation) |
| void | setButtonText (ButtonCode id, const QString &text) |
| void | setButtonToolTip (ButtonCode id, const QString &text) |
| void | setButtonWhatsThis (ButtonCode id, const QString &text) |
| void | setDefaultButton (ButtonCode id) |
| void | setEscapeButton (ButtonCode id) |
| void | setInitialSize (const QSize &size) |
| void | setMainWidget (QWidget *widget) |
| void | showButton (ButtonCode id, bool state) |
| void | showButtonSeparator (bool state) |
| QSize | sizeHint () const override |
| ~KoDialog () override | |
Static Public Member Functions | |
| static int | groupSpacingHint () |
| static QString | makeStandardCaption (const QString &userCaption, QWidget *window=0, CaptionFlags flags=HIGCompliantCaption) |
| static int | marginHint () |
| static void | resizeLayout (QLayout *lay, int margin, int spacing) |
| static void | resizeLayout (QWidget *widget, int margin, int spacing) |
| static int | spacingHint () |
Protected Slots | |
| virtual void | slotButtonClicked (int button) |
Protected Member Functions | |
| void | closeEvent (QCloseEvent *e) override |
| void | hideEvent (QHideEvent *) override |
| void | keyPressEvent (QKeyEvent *) override |
| void | showEvent (QShowEvent *e) override |
Private Member Functions | |
| KoDialog (KoDialogPrivate &dd, QWidget *parent, Qt::WindowFlags f=Qt::WindowFlags()) | |
Private Attributes | |
| KoDialogPrivate *const | d_ptr |
A dialog base class with standard buttons and predefined layouts.
Provides basic functionality needed by nearly all dialogs.
It offers the standard action buttons you'd expect to find in a dialog as well as the capability to define at most three configurable buttons. You can define a main widget that contains your specific dialog layout
The class takes care of the geometry management. You only need to define a minimum size for the widget you want to use as the main widget.
By default, the dialog is non-modal.
Standard buttons (action buttons):
You select which buttons should be displayed, but you do not choose the order in which they are displayed. This ensures a standard interface in KDE. The button order can be changed, but this ability is only available for a central KDE control tool. The following buttons are available: OK, Cancel/Close, Apply/Try, Default, Help and three user definable buttons: User1, User2 and User3. You must specify the text of the UserN buttons. Each button Q_EMIT a signal, so you can choose to connect that signal.
The default action of the Help button will open the help system if you have provided a path to the help text. The default action of Ok and Cancel will run QDialog::accept() and QDialog::reject(), which you can override by reimplementing slotButtonClicked(). The default action of the Close button will close the dialog.
Note that the KoDialog will animate a button press when the user presses Escape. The button that is enabled is either Cancel, Close or the button that is defined by setEscapeButton(). Your custom dialog code should reimplement the keyPressEvent and animate the cancel button so that the dialog behaves like regular dialogs.
Layout:
The dialog consists of a help area on top (becomes visible if you define a help path and use enableLinkedHelp()), the main area which is the built-in dialog face or your own widget in the middle and by default a button box at the bottom. The button box can also be placed at the right edge (to the right of the main widget). Use setButtonsOrientation() to control this behavior. A separator can be placed above the button box (or to the left when the button box is at the right edge).
Standard compliance:
The marginHint() and spacingHint() sizes shall be used whenever you lay out the interior of a dialog. One special note. If you make your own action buttons (OK, Cancel etc), the space between the buttons shall be spacingHint(), whereas the space above, below, to the right and to the left shall be marginHint(). If you add a separator line above the buttons, there shall be a marginHint() between the buttons and the separator and a marginHint() above the separator as well.
Example:
This class can be used in many ways. Note that most KDE ui widgets and many of KDE core applications use the KoDialog so for more inspiration you should study the code for these.
Definition at line 115 of file KoDialog.h.
| enum KoDialog::ButtonCode |
| Enumerator | |
|---|---|
| None | |
| Help | Show Help button. (this button will run the help set with setHelp) |
| Default | Show Default button. |
| Ok | Show Ok button. (this button accept()s the dialog; result set to QDialog::Accepted) |
| Apply | Show Apply button. |
| Try | Show Try button. |
| Cancel | Show Cancel-button. (this button reject()s the dialog; result set to QDialog::Rejected) |
| Close | Show Close-button. (this button closes the dialog) |
| No | Show No button. (this button closes the dialog and sets the result to KoDialog::No) |
| Yes | Show Yes button. (this button closes the dialog and sets the result to KoDialog::Yes) |
| Reset | Show Reset button. |
| Details | Show Details button. (this button will show the detail widget set with setDetailsWidget) |
| User1 | Show User defined button 1. |
| User2 | Show User defined button 2. |
| User3 | Show User defined button 3. |
| NoDefault | Used when specifying a default button; indicates that no button should be marked by default. |
Definition at line 123 of file KoDialog.h.
| Enumerator | |
|---|---|
| InstantPopup | |
| DelayedPopup | |
Definition at line 144 of file KoDialog.h.
Used to specify how to construct a window caption
| Enumerator | |
|---|---|
| NoCaptionFlags | |
| AppNameCaption | |
| ModifiedCaption | |
| HIGCompliantCaption | |
Definition at line 398 of file KoDialog.h.
|
explicit |
Creates a dialog.
| parent | The parent of the dialog. |
| flags | The widget flags passed to the QDialog constructor |
Definition at line 176 of file KoDialog.cpp.
References d_ptr, and KoDialogPrivate::init().
|
override |
|
private |
Definition at line 183 of file KoDialog.cpp.
References d_ptr, and KoDialogPrivate::init().
|
signal |
The detailsWidget is about to get shown. This is your last chance to call setDetailsWidget if you haven't done so yet.
|
signal |
The Apply button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
| QPushButton * KoDialog::button | ( | ButtonCode | id | ) | const |
Returns the button that corresponds to the id.
Normally you should not use this function. Never delete the object returned by this function. See also enableButton(), showButton(), setButtonGuiItem().
| id | Identifier of the button. |
Definition at line 591 of file KoDialog.cpp.
|
signal |
A button has been pressed. This signal is only emitted if slotButtonClicked() is not replaced
| button | is the code of the pressed button. |
| QIcon KoDialog::buttonIcon | ( | ButtonCode | id | ) | const |
Returns the icon of any button.
Definition at line 681 of file KoDialog.cpp.
References button().
| QString KoDialog::buttonText | ( | ButtonCode | id | ) | const |
| QString KoDialog::buttonToolTip | ( | ButtonCode | id | ) | const |
| QString KoDialog::buttonWhatsThis | ( | ButtonCode | id | ) | const |
|
signal |
The Cancel button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
signal |
The Close button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
overrideprotected |
Detects when a dialog is being closed from the window manager controls. If the Cancel or Close button is present then the button is activated. Otherwise standard QDialog behavior will take place.
Definition at line 943 of file KoDialog.cpp.
References button().
| KoDialog::ButtonCode KoDialog::defaultButton | ( | ) | const |
Returns the button code of the default button, or NoDefault if there is no default button.
Definition at line 340 of file KoDialog.cpp.
|
signal |
The Default button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
slot |
Destruct the dialog delayed.
You can call this function from slots like closeClicked() and hidden(). You should not use the dialog any more after calling this function.
Definition at line 811 of file KoDialog.cpp.
|
slot |
|
slot |
Enable or disable (gray out) the Apply button.
| state | true enables the button. |
Definition at line 620 of file KoDialog.cpp.
References Apply, and enableButton().
|
slot |
Enable or disable (gray out) the Cancel button.
| state | true enables the button. |
Definition at line 625 of file KoDialog.cpp.
References Cancel, and enableButton().
|
slot |
Enable or disable (gray out) the OK button.
| state | true enables the button. |
Definition at line 615 of file KoDialog.cpp.
References enableButton(), and Ok.
|
slot |
Display or hide the help link area on the top of the dialog.
| state | true will display the area. |
Definition at line 885 of file KoDialog.cpp.
References connect(), helpLinkText(), and marginHint().
|
signal |
The dialog has finished.
A dialog emits finished after a user clicks a button that ends the dialog.
This signal is also emitted when you call hide()
If you have stored a pointer to the dialog do not try to delete the pointer in the slot that is connected to this signal.
You should use deleteLater() instead.
|
static |
Returns the number of pixels that should be used to visually separate groups of related options in a dialog according to the KDE standard.
Definition at line 465 of file KoDialog.cpp.
|
signal |
The Help button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
| QString KoDialog::helpLinkText | ( | ) | const |
Returns the help link text.
If no text has been defined, "Get help..." (internationalized) is returned.
Definition at line 928 of file KoDialog.cpp.
|
signal |
The dialog is about to be hidden.
A dialog is hidden after a user clicks a button that ends the dialog or when the user switches to another desktop or minimizes the dialog.
|
overrideprotected |
Emits the hidden signal. You can connect to that signal to detect when a dialog has been closed.
Definition at line 934 of file KoDialog.cpp.
References finished(), and hidden().
| void KoDialog::incrementInitialSize | ( | const QSize & | size | ) |
Convenience method. Add a size to the default minimum size of a dialog.
This method should only be called right before show() or exec().
| size | Size added to minimum size. |
Definition at line 585 of file KoDialog.cpp.
| bool KoDialog::isButtonEnabled | ( | ButtonCode | id | ) | const |
|
slot |
Returns the status of the Details button.
Definition at line 764 of file KoDialog.cpp.
|
overrideprotected |
Definition at line 404 of file KoDialog.cpp.
|
signal |
Emitted when the margin size and/or spacing size have changed.
Use marginHint() and spacingHint() in your slot to get the new values.
| QWidget * KoDialog::mainWidget | ( | ) |
Definition at line 368 of file KoDialog.cpp.
References setMainWidget().
|
static |
Builds a caption that contains the application name along with the userCaption using a standard layout.
To make a compliant caption for your window, simply do: setWindowTitle(KoDialog::makeStandardCaption(yourCaption));
To ensure that the caption is appropriate to the desktop in which the application is running, pass in a pointer to the window the caption will be applied to.
If using a KoDialog or KisKMainWindow subclass, call setCaption instead and an appropriate standard caption will be created for you
| userCaption | The caption string you want to display in the window caption area. Do not include the application name! |
| window | a pointer to the window this application will apply to |
| flags |
Definition at line 470 of file KoDialog.cpp.
References AppNameCaption, and ModifiedCaption.
|
static |
Returns the number of pixels that should be used between a dialog edge and the outermost widget(s) according to the KDE standard.
Definition at line 455 of file KoDialog.cpp.
|
override |
|
signal |
The No button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
signal |
The OK button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
signal |
The Reset button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
static |
Resize every layout associated with lay and its children.
| lay | layout to be resized |
| margin | The new layout margin |
| spacing | The new layout spacing |
Definition at line 539 of file KoDialog.cpp.
References resizeLayout().
|
static |
Resize every layout manager used in widget and its nested children.
| widget | The widget used. |
| margin | The new layout margin. |
| spacing | The new layout spacing. |
Definition at line 523 of file KoDialog.cpp.
References resizeLayout().
| void KoDialog::setButtonFocus | ( | ButtonCode | id | ) |
| void KoDialog::setButtonGuiItem | ( | ButtonCode | id, |
| const KGuiItem & | item ) |
Sets the KGuiItem directly for the button instead of using 3 methods to set the text, tooltip and whatsthis strings. This also allows to set an icon for the button which is otherwise not possible for the extra buttons beside Ok, Cancel and Apply.
| id | The button identifier. |
| item | The KGuiItem for the button. |
Definition at line 638 of file KoDialog.cpp.
References button().
| void KoDialog::setButtonIcon | ( | ButtonCode | id, |
| const QIcon & | icon ) |
| void KoDialog::setButtons | ( | ButtonCodes | buttonMask | ) |
Creates (or recreates) the button box and all the buttons in it.
Note that some combinations are not possible. That means, you can't have the following pairs of buttons in a dialog:
This will reset all default KGuiItem of all button.
| buttonMask | Specifies what buttons will be made. |
Definition at line 195 of file KoDialog.cpp.
References Apply, Cancel, Close, Default, Details, Help, No, None, Ok, Reset, setDetailsWidgetVisible(), Try, User1, User2, User3, and Yes.
| void KoDialog::setButtonsOrientation | ( | Qt::Orientation | orientation | ) |
Sets the orientation of the button box.
It can be Vertical or Horizontal. If Horizontal (default), the button box is positioned at the bottom of the dialog. If Vertical it will be placed at the right edge of the dialog.
| orientation | The button box orientation. |
Definition at line 281 of file KoDialog.cpp.
References enableLinkedHelp().
| void KoDialog::setButtonText | ( | ButtonCode | id, |
| const QString & | text ) |
Sets the text of any button.
| id | The button identifier. |
| text | Button text. |
Definition at line 648 of file KoDialog.cpp.
References button(), Details, and setDetailsWidgetVisible().
| void KoDialog::setButtonToolTip | ( | ButtonCode | id, |
| const QString & | text ) |
Sets the tooltip text of any button.
| id | The button identifier. |
| text | Button text. |
Definition at line 691 of file KoDialog.cpp.
References button().
| void KoDialog::setButtonWhatsThis | ( | ButtonCode | id, |
| const QString & | text ) |
Sets the "What's this?" text of any button.
| id | The button identifier. |
| text | Button text. |
Definition at line 713 of file KoDialog.cpp.
References button().
|
virtualslot |
Make a KDE compliant caption.
| caption | Your caption. Do not include the application name in this string. It will be added automatically according to the KDE standard. |
Definition at line 498 of file KoDialog.cpp.
References makeStandardCaption(), and setPlainCaption().
|
virtualslot |
Makes a KDE compliant caption.
| caption | Your caption. Do not include the application name in this string. It will be added automatically according to the KDE standard. |
| modified | Specify whether the document is modified. This displays an additional sign in the title bar, usually "**". |
Definition at line 504 of file KoDialog.cpp.
References HIGCompliantCaption, makeStandardCaption(), ModifiedCaption, and setPlainCaption().
| void KoDialog::setDefaultButton | ( | ButtonCode | id | ) |
Sets the button that will be activated when the Enter key is pressed.
By default, this is the Ok button if it is present
| id | The button code. |
Definition at line 302 of file KoDialog.cpp.
References button(), defaultButton(), NoDefault, and None.
|
slot |
Sets the widget that gets shown when "Details" is enabled.
The dialog takes over ownership of the widget. Any previously set widget gets deleted.
Definition at line 743 of file KoDialog.cpp.
References setDetailsWidgetVisible().
|
slot |
Sets the status of the Details button.
Definition at line 769 of file KoDialog.cpp.
References aboutToShowDetails(), Details, and setButtonText().
| void KoDialog::setEscapeButton | ( | ButtonCode | id | ) |
Sets the button that will be activated when the Escape key is pressed.
By default, the Escape key is mapped to either the Cancel or the Close button if one of these buttons are defined. The user expects that Escape will cancel an operation so use this function with caution.
| id | The button code. |
Definition at line 297 of file KoDialog.cpp.
|
slot |
Sets the help path and topic.
| anchor | Defined anchor in your docbook sources |
| appname | Defines the appname the help belongs to If empty it's the current one |
Definition at line 912 of file KoDialog.cpp.
|
slot |
Sets the text that is shown as the linked text.
If text is empty, the text "Get help..." (internationalized) is used instead.
| text | The link text. |
Definition at line 919 of file KoDialog.cpp.
References helpLinkText().
| void KoDialog::setInitialSize | ( | const QSize & | size | ) |
Convenience method. Sets the initial dialog size.
This method should only be called right before show() or exec(). The initial size will be ignored if smaller than the dialog's minimum size.
| size | Startup size. |
Definition at line 579 of file KoDialog.cpp.
| void KoDialog::setMainWidget | ( | QWidget * | widget | ) |
Sets the main widget of the dialog.
Definition at line 354 of file KoDialog.cpp.
|
virtualslot |
Make a plain caption without any modifications.
| caption | Your caption. This is the string that will be displayed in the window title. |
Definition at line 516 of file KoDialog.cpp.
| void KoDialog::showButton | ( | ButtonCode | id, |
| bool | state ) |
Hide or display a general action button.
Only buttons that have been created in the constructor can be displayed. This method will not create a new button.
| id | Button identifier. |
| state | true display the button(s). |
Definition at line 630 of file KoDialog.cpp.
References button().
| void KoDialog::showButtonSeparator | ( | bool | state | ) |
Hide or display the a separator line drawn between the action buttons an the main widget.
Definition at line 558 of file KoDialog.cpp.
|
overrideprotected |
Definition at line 447 of file KoDialog.cpp.
|
override |
Reimplemented from QDialog.
Definition at line 377 of file KoDialog.cpp.
References minimumSizeHint().
|
protectedvirtualslot |
Activated when the button button is clicked
Sample that shows how to catch and handle button clicks within an own dialog;
| button | is the type KoDialog::ButtonCode |
Definition at line 820 of file KoDialog.cpp.
References Apply, applyClicked(), button(), buttonClicked(), Cancel, cancelClicked(), Close, closeClicked(), Default, defaultClicked(), delayedDestruct(), Details, Help, helpClicked(), KHelpClient::invokeHelp(), No, noClicked(), Ok, okClicked(), Reset, resetClicked(), setDetailsWidgetVisible(), Try, tryClicked(), User1, user1Clicked(), User2, user2Clicked(), User3, user3Clicked(), Yes, and yesClicked().
|
static |
Returns the number of pixels that should be used between widgets inside a dialog according to the KDE standard.
Definition at line 460 of file KoDialog.cpp.
|
signal |
The Try button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
signal |
The User1 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
signal |
The User2 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
signal |
The User3 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
signal |
The Yes button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
|
private |
Definition at line 787 of file KoDialog.h.