KDEUI
KXmlGuiWindow Class Reference
#include <kxmlguiwindow.h>

Detailed Description
KDE top level main window with predefined action layoutInstead of creating a KMainWindow manually and assigning menus, menu entries, toolbar buttons and actions to it by hand, this class can be used to load an rc file to manage the main window's actions.
See http://techbase.kde.org/Development/Tutorials/Using_KActions#XMLGUI for essential information on the XML file format and usage of this class.
- See also:
- KMainWindow
Definition at line 61 of file kxmlguiwindow.h.
Public Types | |
enum | StandardWindowOption { ToolBar = 1, Keys = 2, StatusBar = 4, Save = 8, Create = 16, Default = ToolBar | Keys | StatusBar | Save | Create } |
Public Slots | |
virtual void | configureToolbars () |
void | slotStateChanged (const QString &newstate, bool reverse) |
virtual void | slotStateChanged (const QString &newstate) |
Public Member Functions | |
virtual void | applyMainWindowSettings (const KConfigGroup &config, bool force=false) |
void | createGUI (const QString &xmlfile=QString()) |
void | createStandardStatusBarAction () |
void | finalizeGUI (bool force) |
virtual void | finalizeGUI (KXMLGUIClient *client) |
virtual KXMLGUIFactory * | guiFactory () |
bool | isHelpMenuEnabled () const |
bool | isStandardToolBarMenuEnabled () const |
KXmlGuiWindow (QWidget *parent=0, Qt::WindowFlags f=KDE_DEFAULT_WINDOWFLAGS) | |
void | setHelpMenuEnabled (bool showHelpMenu=true) |
void | setStandardToolBarMenuEnabled (bool enable) |
void | setupGUI (const QSize &defaultSize, StandardWindowOptions options=Default, const QString &xmlfile=QString()) |
void | setupGUI (StandardWindowOptions options=Default, const QString &xmlfile=QString()) |
void | setupToolbarMenuActions () |
QAction * | toolBarMenuAction () |
virtual | ~KXmlGuiWindow () |
Protected Slots | |
virtual void | saveNewToolbarConfig () |
Protected Member Functions | |
virtual bool | event (QEvent *event) |
Properties | |
QString | autoSaveGroup |
bool | autoSaveSettings |
bool | hasMenuBar |
bool | initialGeometrySet |
bool | standardToolBarMenuEnabled |
Member Enumeration Documentation
- See also:
- setupGUI()
- Enumerator:
-
ToolBar adds action to show/hide the toolbar(s) and adds action to configure the toolbar(s). - See also:
- setStandardToolBarMenuEnabled
Keys adds action to show the key configure action. StatusBar adds action to show/hide the statusbar if the statusbar exists. - See also:
- createStandardStatusBarAction
Save auto-saves (and loads) the toolbar/menubar/statusbar settings and window size using the default name. - See also:
- setAutoSaveSettings
- See also:
- setAutoSaveSettings for more information on this topic.
Create calls createGUI() once ToolBar, Keys and Statusbar have been taken care of. - See also:
- createGUI
Default All the above option (this is the default).
Definition at line 190 of file kxmlguiwindow.h.
Constructor & Destructor Documentation
KXmlGuiWindow::KXmlGuiWindow | ( | QWidget * | parent = 0 , |
|
Qt::WindowFlags | f = KDE_DEFAULT_WINDOWFLAGS | |||
) | [explicit] |
Construct a main window.
- Parameters:
-
parent The widget parent. This is usually 0 but it may also be the window group leader. In that case, the KMainWindow becomes sort of a secondary window. f Specify the widget flags. The default is WType_TopLevel and WDestructiveClose. TopLevel indicates that a main window is a toplevel window, regardless of whether it has a parent or not. DestructiveClose indicates that a main window is automatically destroyed when its window is closed. Pass 0 if you do not want this behavior.
KMainWindow *kmw = new KMainWindow(...); kmw->setObjectName(...);
IMPORTANT: For session management and window management to work properly, all main windows in the application should have a different name. If you don't do it, KMainWindow will create a unique name, but it's recommended to explicitly pass a window name that will also describe the type of the window. If there can be several windows of the same type, append '#' (hash) to the name, and KMainWindow will replace it with numbers to make the names unique. For example, for a mail client which has one main window showing the mails and folders, and which can also have one or more windows for composing mails, the name for the folders window should be e.g. "mainwindow" and for the composer windows "composer#".
KXmlGuiWindow::~KXmlGuiWindow | ( | ) | [virtual] |
Destructor.
Will also destroy the toolbars, and menubar if needed.
Definition at line 116 of file kxmlguiwindow.cpp.
Member Function Documentation
void KXmlGuiWindow::applyMainWindowSettings | ( | const KConfigGroup & | config, | |
bool | force = false | |||
) | [virtual] |
Read settings for statusbar, menubar and toolbar from their respective groups in the config file and apply them.
- Parameters:
-
config Config group to read the settings from. force if set, even default settings are re-applied
Reimplemented from KMainWindow.
Definition at line 344 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::configureToolbars | ( | ) | [virtual, slot] |
Show a standard configure toolbar dialog.
This slot can be connected directly to the action to configure toolbar. This is very simple to do that by adding a single line
KStandardAction::configureToolbars( this, SLOT( configureToolbars() ), actionCollection() );
Definition at line 154 of file kxmlguiwindow.cpp.
Create a GUI given a local XML file.
If xmlfile
is NULL, then it will try to construct a local XML filename like appnameui.rc where 'appname' is your app's name. If that file does not exist, then the XML UI code will only use the global (standard) XML file for the layout purposes.
- Parameters:
-
xmlfile The local xmlfile (relative or absolute)
Definition at line 224 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::createStandardStatusBarAction | ( | ) |
Sets whether KMainWindow should provide a menu that allows showing/hiding of the statusbar ( using KToggleStatusBarAction ).
The menu / menu item is implemented using xmlgui. It will be inserted in your menu structure in the 'Settings' menu.
Note that you should enable this feature before calling createGUI() ( or similar ).
If an application maintains the action on its own (i.e. never calls this function) a connection needs to be made to let KMainWindow know when that status (hidden/shown) of the statusbar has changed. For example: connect(action, SIGNAL(activated()), kmainwindow, SLOT(setSettingsDirty())); Otherwise the status (hidden/show) of the statusbar might not be saved by KMainWindow.
Definition at line 310 of file kxmlguiwindow.cpp.
Reimplemented to catch QEvent::Polish in order to adjust the object name if needed, once all constructor code for the main window has run.
Also reimplemented to catch when a QDockWidget is added or removed.
Reimplemented from KMainWindow.
Definition at line 120 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::finalizeGUI | ( | bool | force | ) |
void KXmlGuiWindow::finalizeGUI | ( | KXMLGUIClient * | client | ) | [virtual] |
KXMLGUIFactory * KXmlGuiWindow::guiFactory | ( | ) | [virtual] |
Definition at line 146 of file kxmlguiwindow.cpp.
bool KXmlGuiWindow::isHelpMenuEnabled | ( | ) | const |
bool KXmlGuiWindow::isStandardToolBarMenuEnabled | ( | ) | const |
Definition at line 304 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::saveNewToolbarConfig | ( | ) | [protected, virtual, slot] |
Rebuilds the GUI after KEditToolbar changed the toolbar layout.
- See also:
- configureToolbars()
Definition at line 167 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::setHelpMenuEnabled | ( | bool | showHelpMenu = true |
) |
Enables the build of a standard help menu when calling createGUI().
The default behavior is to build one, you must call this function to disable it
Definition at line 134 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::setStandardToolBarMenuEnabled | ( | bool | enable | ) |
Sets whether KMainWindow should provide a menu that allows showing/hiding the available toolbars ( using KToggleToolBarAction ) .
In case there is only one toolbar configured a simple 'Show <toolbar name here>' menu item is shown.
The menu / menu item is implemented using xmlgui. It will be inserted in your menu structure in the 'Settings' menu.
If your application uses a non-standard xmlgui resource file then you can specify the exact position of the menu / menu item by adding a <Merge name="StandardToolBarMenuHandler" /> line to the settings menu section of your resource file ( usually appname.rc ).
Note that you should enable this feature before calling createGUI() ( or similar ) .
Definition at line 281 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::setupGUI | ( | const QSize & | defaultSize, | |
StandardWindowOptions | options = Default , |
|||
const QString & | xmlfile = QString() | |||
) |
Configures the current windows and its actions in the typical KDE fashion.
The options are all enabled by default but can be turned off if desired through the params or if the prereqs don't exists.
defaultSize
The default size of the window
Typically this function replaces createGUI().
- See also:
- StandardWindowOptions
Definition at line 182 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::setupGUI | ( | StandardWindowOptions | options = Default , |
|
const QString & | xmlfile = QString() | |||
) |
Configures the current windows and its actions in the typical KDE fashion.
The options are all enabled by default but can be turned off if desired through the params or if the prereqs don't exists.
Typically this function replaces createGUI().
- See also:
- StandardWindowOptions
Definition at line 178 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::setupToolbarMenuActions | ( | ) |
Apply a state change.
Enable and disable actions as defined in the XML rc file, can "reverse" the state (disable the actions which should be enabled, and vice-versa) if specified.
Definition at line 274 of file kxmlguiwindow.cpp.
void KXmlGuiWindow::slotStateChanged | ( | const QString & | newstate | ) | [virtual, slot] |
Apply a state change.
Enable and disable actions as defined in the XML rc file
Definition at line 269 of file kxmlguiwindow.cpp.
QAction * KXmlGuiWindow::toolBarMenuAction | ( | ) |
Returns a pointer to the mainwindows action responsible for the toolbars menu.
Definition at line 98 of file kxmlguiwindow.cpp.
Property Documentation
QString KXmlGuiWindow::autoSaveGroup [read] |
bool KXmlGuiWindow::autoSaveSettings [read] |
bool KXmlGuiWindow::hasMenuBar [read] |
bool KXmlGuiWindow::initialGeometrySet [read] |
bool KXmlGuiWindow::standardToolBarMenuEnabled [read, write] |
Definition at line 68 of file kxmlguiwindow.h.
The documentation for this class was generated from the following files: