# kparts Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# KParts::PartManager Class Reference

The part manager is an object which knows about a collection of parts (even nested ones) and handles activation/deactivation. More...

`#include <partmanager.h>`

Inheritance diagram for KParts::PartManager:

[legend]
Collaboration diagram for KParts::PartManager:

[legend]
List of all members.

## Public Types

enum | SelectionPolicy { Direct, TriState }

## Signals

void | partAdded (KParts::Part *part)
| Emitted when a new part has been added.
void | partRemoved (KParts::Part *part)
| Emitted when a part has been removed.
void | activePartChanged (KParts::Part *newPart)
| Emitted when the active part has changed.

## Public Member Functions

| PartManager (QWidget *parent, const char *name=0L)
| Constructs a part manager.
| PartManager (QWidget *topLevel, QObject *parent, const char *name=0)
| Constructs a part manager.
void | setSelectionPolicy (SelectionPolicy policy)
| Sets the selection policy of the partmanager.
SelectionPolicy | selectionPolicy () const
| Returns the current selection policy.
void | setAllowNestedParts (bool allow)
| Specifies whether the partmanager should handle/allow nested parts or not.
bool | allowNestedParts () const
void | setIgnoreScrollBars (bool ignore)
| Specifies whether the partmanager should ignore mouse click events for scrollbars or not.
bool | ignoreScrollBars () const
void | setActivationButtonMask (short int buttonMask)
| Specifies which mouse buttons the partmanager should react upon.
short int | activationButtonMask () const
virtual bool | eventFilter (QObject *obj, QEvent *ev)
virtual void | addPart (Part *part, bool setActive=true)
| Adds a part to the manager.
virtual void | removePart (Part *part)
| Removes a part from the manager (this does not delete the object) .
virtual void | replacePart (Part *oldPart, Part *newPart, bool setActive=true)
| Replaces `oldPart` with `newPart`, and sets `newPart` as active if `setActive` is true.
virtual void | setActivePart (Part *part, QWidget *widget=0L)
| Sets the active part.
virtual Part * | activePart () const
| Returns the active part.
virtual QWidget * | activeWidget () const
| Returns the active widget of the current active part (see activePart ).
virtual void | setSelectedPart (Part *part, QWidget *widget=0L)
| Sets the selected part.
virtual Part * | selectedPart () const
| Returns the current selected part.
virtual QWidget * | selectedWidget () const
| Returns the selected widget of the current selected part (see selectedPart ).
const QPtrList< Part > * | parts () const
| Returns the list of parts being managed by the partmanager.
void | addManagedTopLevelWidget (const QWidget *topLevel)
| Adds the `topLevel` widget to the list of managed toplevel widgets.
void | removeManagedTopLevelWidget (const QWidget *topLevel)
| Removes the `topLevel` widget from the list of managed toplevel widgets.

## Protected Slots

void | slotObjectDestroyed ()
| Removes a part when it is destroyed.
void | slotWidgetDestroyed ()
void | slotManagedTopLevelWidgetDestroyed ()

## Protected Member Functions

virtual void | setActiveInstance (KInstance *instance)
| Changes the active instance when the active part changes.
virtual void | virtual_hook (int id, void *data)

## Detailed Description

The part manager is an object which knows about a collection of parts (even nested ones) and handles activation/deactivation.

Applications that want to embed parts without merging GUIs only use a KParts::PartManager. Those who want to merge GUIs use a KParts::MainWindow for example, in addition to a part manager.

Parts know about the part manager to add nested parts to it. See also KParts::Part::manager() and KParts::Part::setManager().

Definition at line 47 of file partmanager.h.

## Constructor & Destructor Documentation

PartManager::PartManager | ( | QWidget * | parent,
|  | const char * | name = 0L
| ) |

Constructs a part manager.

Parameters:

  parent | The toplevel widget (window / dialog) the partmanager should monitor for activation/selection events

Definition at line 73 of file partmanager.cpp.

References addManagedTopLevelWidget(), and KStdAccel::name().

PartManager::PartManager | ( | QWidget * | topLevel,
|  | QObject * | parent,
|  | const char * | name = 0
| ) |

Constructs a part manager.

Parameters:

  topLevel | The toplevel widget (window / dialog ) the partmanager should monitor for activation/selection events
  parent | The parent QObject.

Definition at line 85 of file partmanager.cpp.

References addManagedTopLevelWidget(), and KStdAccel::name().

## Member Function Documentation

void PartManager::setSelectionPolicy | ( | SelectionPolicy | policy | ) |

| Sets the selection policy of the partmanager. Definition at line 112 of file partmanager.cpp.

PartManager::SelectionPolicy PartManager::selectionPolicy | ( |  | ) | const

| Returns the current selection policy. Definition at line 117 of file partmanager.cpp.

void PartManager::setAllowNestedParts | ( | bool | allow | ) |

Specifies whether the partmanager should handle/allow nested parts or not.

This is a property the shell has to set/specify. Per default we assume that the shell cannot handle nested parts. However in case of a KOffice shell for example we allow nested parts. A Part is nested (a child part) if its parent object inherits KParts::Part. If a child part is activated and nested parts are not allowed/handled, then the top parent part in the tree is activated.

Definition at line 122 of file partmanager.cpp.

bool PartManager::allowNestedParts | ( |  | ) | const

See also:
  setAllowNestedParts

Definition at line 127 of file partmanager.cpp.

void PartManager::setIgnoreScrollBars | ( | bool | ignore | ) |

| Specifies whether the partmanager should ignore mouse click events for scrollbars or not. If the partmanager ignores them, then clicking on the scrollbars of a non-active/non-selected part will not change the selection or activation state. The default value is false (read: scrollbars are NOT ignored). Definition at line 132 of file partmanager.cpp.

bool PartManager::ignoreScrollBars | ( |  | ) | const

See also:
  setIgnoreScrollBars

Definition at line 137 of file partmanager.cpp.

void PartManager::setActivationButtonMask | ( | short int | buttonMask | ) |

Specifies which mouse buttons the partmanager should react upon.

By default it reacts on all mouse buttons (LMB/MMB/RMB).

Parameters:

  mouseButtons | a combination of Qt::ButtonState values e.g. Qt::LeftButton | Qt::MidButton

Definition at line 142 of file partmanager.cpp.

short int PartManager::activationButtonMask | ( |  | ) | const

See also:
  setActivationButtonMask

Definition at line 147 of file partmanager.cpp.

void PartManager::addPart | ( | Part * | part,
|  | bool | setActive = true
| ) | `[virtual]`

| Adds a part to the manager. Sets it to the active part automatically if `setActive` is true (default ). Definition at line 301 of file partmanager.cpp. References QWidget::focusPolicy(), QObject::name(), partAdded(), setActivePart(), QWidget::setFocus(), KParts::Part::setManager(), QWidget::show(), and KParts::Part::widget(). Referenced by replacePart().

void PartManager::removePart | ( | Part * | part | ) | `[virtual]`

| Removes a part from the manager (this does not delete the object) . Sets the active part to 0 if `part` is the activePart() . Definition at line 332 of file partmanager.cpp. References QObject::name(), partRemoved(), setActivePart(), KParts::Part::setManager(), and setSelectedPart(). Referenced by slotObjectDestroyed(), and KParts::Part::~Part().

void PartManager::replacePart | ( | Part * | oldPart,
|  | Part * | newPart,
|  | bool | setActive = true
| ) | `[virtual]`

| Replaces `oldPart` with `newPart`, and sets `newPart` as active if `setActive` is true. This is an optimised version of removePart + addPart Definition at line 353 of file partmanager.cpp. References addPart(), QObject::name(), partRemoved(), and KParts::Part::setManager().

void PartManager::setActivePart | ( | Part * | part,
|  | QWidget * | widget = 0L
| ) | `[virtual]`

Sets the active part.

The active part receives activation events.

`widget` can be used to specify which widget was responsible for the activation. This is important if you have multiple views for a document/part , like in KOffice .

Definition at line 371 of file partmanager.cpp.

References activePartChanged(), QObject::connect(), QObject::destroyed(), QObject::disconnect(), QObject::inherits(), QObject::name(), QObject::parent(), QApplication::sendEvent(), setActiveInstance(), setSelectedPart(), and KParts::Part::widget().

Referenced by addPart(), and removePart().

Part * PartManager::activePart | ( |  | ) | const`[virtual]`

| Returns the active part. Definition at line 453 of file partmanager.cpp.

QWidget * PartManager::activeWidget | ( |  | ) | const`[virtual]`

| Returns the active widget of the current active part (see activePart ). Definition at line 458 of file partmanager.cpp.

void PartManager::setSelectedPart | ( | Part * | part,
|  | QWidget * | widget = 0L
| ) | `[virtual]`

| Sets the selected part. The selected part receives selection events. `widget` can be used to specify which widget was responsible for the selection. This is important if you have multiple views for a document/part , like in KOffice . Definition at line 463 of file partmanager.cpp. References QApplication::sendEvent(), and KParts::Part::widget(). Referenced by removePart(), and setActivePart().

Part * PartManager::selectedPart | ( |  | ) | const`[virtual]`

| Returns the current selected part. Definition at line 492 of file partmanager.cpp.

QWidget * PartManager::selectedWidget | ( |  | ) | const`[virtual]`

| Returns the selected widget of the current selected part (see selectedPart ). Definition at line 497 of file partmanager.cpp.

const QPtrList< Part > * PartManager::parts | ( |  | ) | const

| Returns the list of parts being managed by the partmanager. Definition at line 516 of file partmanager.cpp.

void PartManager::addManagedTopLevelWidget | ( | const QWidget * | topLevel | ) |

Adds the `topLevel` widget to the list of managed toplevel widgets.

Usually a PartManager only listens for events (for activation/selection) for one toplevel widget (and its children) , the one specified in the constructor. Sometimes however (like for example when using the KDE dockwidget library) , it is necessary to extend this.

Definition at line 521 of file partmanager.cpp.

References QObject::connect(), QObject::destroyed(), and QWidget::isTopLevel().

Referenced by PartManager().

void PartManager::removeManagedTopLevelWidget | ( | const QWidget * | topLevel | ) |

Removes the `topLevel` widget from the list of managed toplevel widgets.

See also:
  addManagedTopLevelWidget

Definition at line 534 of file partmanager.cpp.

References QWidget::isTopLevel().

void KParts::PartManager::partAdded | ( | KParts::Part * | part | ) | `[signal]`

Emitted when a new part has been added.

See also:
  addPart()

Referenced by addPart().

void KParts::PartManager::partRemoved | ( | KParts::Part * | part | ) | `[signal]`

Emitted when a part has been removed.

See also:
  removePart()

Referenced by removePart(), and replacePart().

void KParts::PartManager::activePartChanged | ( | KParts::Part * | newPart | ) | `[signal]`

Emitted when the active part has changed.

See also:
  setActivePart()

Referenced by setActivePart().

void PartManager::setActiveInstance | ( | KInstance * | instance | ) | `[protected, virtual]`

| Changes the active instance when the active part changes. The active instance is used by KBugReport and KAboutDialog. Override if you really need to - usually you don't need to. Definition at line 447 of file partmanager.cpp. References KGlobal::_activeInstance, and KNotifyClient::instance(). Referenced by setActivePart().

void PartManager::slotObjectDestroyed | ( |  | ) | `[protected, slot]`

| Removes a part when it is destroyed. Definition at line 502 of file partmanager.cpp. References removePart(), and QObject::sender().

The documentation for this class was generated from the following files:

- partmanager.h
- partmanager.cpp

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:27:12 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001