• Skip to content
  • Skip to link menu
KDE 4.0 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KDEUI

KXmlGuiWindow Class Reference

#include <kxmlguiwindow.h>

Inheritance diagram for KXmlGuiWindow:

Inheritance graph
[legend]

List of all members.


Detailed Description

KDE top level main window

Top level widget that provides toolbars, a status line and a frame.

It should be used as a top level (parent-less) widget. It manages the geometry for all its children, including your main widget.

Normally, you will inherit from KMainWindow, then construct (or use some existing) widget as your main view. You can set only one main view.

You can add as many toolbars as you like. There can be only one menubar and only one statusbar.

The toolbars, menubar, and statusbar can be created by the KMainWindow and - unlike the old KMainWindow - may, but do not have to, be deleted by you. KMainWindow will handle that internally.

Height and width can be operated independently from each other. Simply define the minimum/maximum height/width of your main widget and KMainWindow will take this into account. For fixed size windows set your main widget to a fixed size.

Fixed aspect ratios (heightForWidth()) and fixed width widgets are not supported.

KMainWindow will set icon, mini icon and caption, which it gets from KApplication. It provides full session management, and will save its position, geometry and positions of toolbars and menubar on logout. If you want to save additional data, reimplement saveProperties() and (to read them again on next login) readProperties(). To save special data about your data, reimplement saveGlobalProperties(). To warn user that application or windows have unsaved data on close or logout, reimplement queryClose() and/or queryExit().

There are also kRestoreMainWindows convenience functions which can restore all your windows on next login.

Note that a KMainWindow per-default is created with the WDestructiveClose flag, i.e. it is automatically destroyed when the window is closed. If you do not want this behavior, specify 0 as widget flag in the constructor.

See also:
KApplication
Author:
Reginald Stadlbauer (reggie@kde.org) Stephan Kulow (coolo@kde.org), Matthias Ettrich (ettrich@kde.org), Chris Schlaeger (cs@kde.org), Sven Radej (radej@kde.org). Maintained by Sven Radej (radej@kde.org)

Definition at line 97 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 ()
virtual void slotStateChanged (const QString &newstate)
void slotStateChanged (const QString &newstate, bool reverse)

Public Member Functions

 KXmlGuiWindow (QWidget *parent=0, Qt::WindowFlags f=KDE_DEFAULT_WINDOWFLAGS)
virtual ~KXmlGuiWindow ()
void setHelpMenuEnabled (bool showHelpMenu=true)
bool isHelpMenuEnabled () const
virtual KXMLGUIFactory * guiFactory ()
void createGUI (const QString &xmlfile=QString())
void setStandardToolBarMenuEnabled (bool enable)
bool isStandardToolBarMenuEnabled () const
void createStandardStatusBarAction ()
void setupGUI (StandardWindowOptions options=Default, const QString &xmlfile=QString())
void setupGUI (const QSize &defaultSize, StandardWindowOptions options=Default, const QString &xmlfile=QString())
QAction * toolBarMenuAction ()
void setupToolbarMenuActions ()
virtual void finalizeGUI (KXMLGUIClient *client)
void finalizeGUI (bool force)
virtual void applyMainWindowSettings (const KConfigGroup &config, bool force=false)

Protected Slots

virtual void saveNewToolbarConfig ()

Protected Member Functions

virtual bool event (QEvent *event)

Properties

bool hasMenuBar
bool autoSaveSettings
QString autoSaveGroup
bool standardToolBarMenuEnabled
bool initialGeometrySet

Member Enumeration Documentation

enum KXmlGuiWindow::StandardWindowOption

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
Typically you want to let the default window size be determined by the widgets size hints. Make sure that setupGUI() is called after all the widgets are created ( including setCentralWidget ) so the default size's will be correct.
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 226 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.
See also:
http://doc.trolltech.com/3.2/qt.html#WidgetFlags-enum
KMainWindows must be created on the heap with 'new', like:
 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 117 of file kxmlguiwindow.cpp.


Member Function Documentation

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 135 of file kxmlguiwindow.cpp.

bool KXmlGuiWindow::isHelpMenuEnabled (  )  const

Return true when the help menu is enabled.

Definition at line 141 of file kxmlguiwindow.cpp.

KXMLGUIFactory * KXmlGuiWindow::guiFactory (  )  [virtual]

Definition at line 147 of file kxmlguiwindow.cpp.

void KXmlGuiWindow::createGUI ( const QString &  xmlfile = QString()  ) 

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 221 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 278 of file kxmlguiwindow.cpp.

bool KXmlGuiWindow::isStandardToolBarMenuEnabled (  )  const

Definition at line 301 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 307 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 175 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 179 of file kxmlguiwindow.cpp.

QAction * KXmlGuiWindow::toolBarMenuAction (  ) 

Returns a pointer to the mainwindows action responsible for the toolbars menu.

Definition at line 99 of file kxmlguiwindow.cpp.

void KXmlGuiWindow::setupToolbarMenuActions (  ) 

For internal use only.

for KToolBar

Definition at line 109 of file kxmlguiwindow.cpp.

void KXmlGuiWindow::finalizeGUI ( KXMLGUIClient *  client  )  [virtual]

Reimplemented from KXMLGUIBuilder.

Definition at line 352 of file kxmlguiwindow.cpp.

void KXmlGuiWindow::finalizeGUI ( bool  force  ) 

For internal use only.

Definition at line 323 of file kxmlguiwindow.cpp.

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 341 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 155 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 266 of file kxmlguiwindow.cpp.

void KXmlGuiWindow::slotStateChanged ( const QString &  newstate,
bool  reverse 
) [slot]

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 271 of file kxmlguiwindow.cpp.

bool KXmlGuiWindow::event ( QEvent *  event  )  [protected, virtual]

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 121 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 168 of file kxmlguiwindow.cpp.


Property Documentation

bool KXmlGuiWindow::hasMenuBar [read]

Reimplemented from KMainWindow.

Definition at line 101 of file kxmlguiwindow.h.

bool KXmlGuiWindow::autoSaveSettings [read]

Reimplemented from KMainWindow.

Definition at line 102 of file kxmlguiwindow.h.

QString KXmlGuiWindow::autoSaveGroup [read]

Reimplemented from KMainWindow.

Definition at line 103 of file kxmlguiwindow.h.

bool KXmlGuiWindow::standardToolBarMenuEnabled [read, write]

Definition at line 104 of file kxmlguiwindow.h.

bool KXmlGuiWindow::initialGeometrySet [read]

Reimplemented from KMainWindow.

Definition at line 106 of file kxmlguiwindow.h.


The documentation for this class was generated from the following files:
  • kxmlguiwindow.h
  • kxmlguiwindow.cpp

KDEUI

Skip menu "KDEUI"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • KIO
  • KIOSlave
  • KJS
  •   WTF
  • KJSEmbed
  • KNewStuff
  • KParts
  • Kross
  • KUtils
  • Nepomuk
  •   core
  • Phonon
  •   Backend
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal