Version: 9.12.0
QtxWorkstackArea Class Reference

Workstack widget workarea. More...

#include <QtxWorkstack.h>

Inheritance diagram for QtxWorkstackArea:
Inheritance graph

Classes

class  RestoreEvent
 Internal class used to forward restore info events to the workarea. More...
 
class  WidgetEvent
 Internal class used to forward child widgets events to the workarea. More...
 

Signals

void activated (QWidget *)
 Emitted when child widget is activated. More...
 
void contextMenuRequested (QWidget *, QPoint)
 Emitted when context popup menu is requested. More...
 
void deactivated (QtxWorkstackArea *)
 Emitted when workarea is deactivated. More...
 

Public Member Functions

 QtxWorkstackArea (QWidget *)
 Constructor. More...
 
virtual ~QtxWorkstackArea ()
 Destructor. More...
 
bool isNull () const
 Check if workarea contains any widgets. More...
 
bool isEmpty () const
 Check if workarea contains visible widgets. More...
 
QtxWorkstackChildinsertWidget (QWidget *, const int=-1, Qt::WindowFlags=0)
 Add widget to the workarea. More...
 
void removeWidget (QWidget *, const bool=true)
 Remove widget from workarea. More...
 
void insertChild (QtxWorkstackChild *, const int=-1)
 
void removeChild (QtxWorkstackChild *, const bool=true)
 Remove child from workarea. More...
 
QWidgetactiveWidget () const
 Get active child widget. More...
 
void setActiveWidget (QWidget *)
 Set active widget. More...
 
bool contains (QWidget *) const
 Check if area owns the specified widget. More...
 
QWidgetList widgetList () const
 Get all visible child widgets. More...
 
QList< QtxWorkstackChild * > childList () const
 
bool isActive () const
 Check if workarea is active. More...
 
void updateActiveState ()
 Update active tab bar state (active/inactive). More...
 
QtxWorkstackworkstack () const
 Get parent workstack. More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Custom event filter. More...
 
QRect floatRect () const
 Get rectangle to be drawn when highlighting drop area. More...
 
QRect floatTab (const int) const
 Get rectangle to be drawn when highlighting drop area on tab bar. More...
 
int tabAt (const QPoint &) const
 Get tab index by point. More...
 
void saveState (QDataStream &) const
 Save the own widgets configuration into data stream. More...
 
bool restoreState (QDataStream &, QMap< QString, QtxWorkstackChild * > &)
 Restore the widgets configuration from data stream info. More...
 
void showTabBar (bool=true)
 Show/Hide tab bar. More...
 

Protected Member Functions

virtual void customEvent (QEvent *)
 Event handler for custom events. More...
 
virtual void focusInEvent (QFocusEvent *)
 Customize focus in event handler. More...
 
virtual void mousePressEvent (QMouseEvent *)
 Customize mouse press event handler. More...
 

Private Types

enum  { ActivateWidget = QEvent::User , FocusWidget , MakeCurrent , RestoreWidget }
 Custom events. More...
 
typedef QList< QtxWorkstackChild * > ChildList
 

Private Slots

void onClose ()
 Called when user presses "Close" button. More...
 
void onCurrentChanged (int)
 Called when user selects any tab page. More...
 
void onChildDestroyed (QObject *)
 Called when area's child widget container is destroyed. More...
 
void onChildShown (QtxWorkstackChild *)
 Called when child widget container is shown. More...
 
void onChildHidden (QtxWorkstackChild *)
 Called when child widget container is hidden. More...
 
void onChildActivated (QtxWorkstackChild *)
 Called when child widget container is activated. More...
 
void onChildCaptionChanged (QtxWorkstackChild *)
 Called when child widget container's title is changed. More...
 
void onDragActiveTab ()
 Called when user starts tab page dragging. More...
 
void onContextMenuRequested (QPoint)
 Create and show popup menu for the area. More...
 

Private Member Functions

void updateState ()
 Update internal state. More...
 
void updateCurrent ()
 Update current child widget container. More...
 
void updateTab (QWidget *)
 Update tab bar. More...
 
QWidgetwidget (const int) const
 Get child widget by specified identifier. More...
 
int widgetId (QWidget *) const
 Get child widget identifier. More...
 
QtxWorkstackChildchild (QWidget *) const
 Get child widget container. More...
 
QtxWorkstackChildchild (const int) const
 
void setWidgetActive (QWidget *)
 Set active child widget. More...
 
int generateId () const
 Generate unique widget identifier. More...
 

Private Attributes

QWidgetmyTop
 workarea top widget More...
 
QtxWorkstackTabBarmyBar
 workarea tab bar header More...
 
ChildList myList
 child widgets list More...
 
QAbstractButtonmyClose
 close button More...
 
QStackedWidget * myStack
 widget stack More...
 

Detailed Description

Workstack widget workarea.

Member Typedef Documentation

◆ ChildList

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private

Custom events.

Enumerator
ActivateWidget 

activate widget event

FocusWidget 

focus receiving widget event

MakeCurrent 
RestoreWidget 

Constructor & Destructor Documentation

◆ QtxWorkstackArea()

QtxWorkstackArea::QtxWorkstackArea ( QWidget parent)

◆ ~QtxWorkstackArea()

QtxWorkstackArea::~QtxWorkstackArea ( )
virtual

Destructor.

Member Function Documentation

◆ activated

void QtxWorkstackArea::activated ( QWidget w)
signal

Emitted when child widget is activated.

Parameters
wchild widget being activated

◆ activeWidget()

QWidget * QtxWorkstackArea::activeWidget ( ) const

Get active child widget.

Returns
active widget

References myBar, QtxWorkstackTabBar::tabId(), and widget().

◆ child() [1/2]

QtxWorkstackChild * QtxWorkstackArea::child ( const int  id) const
private

References myList.

◆ child() [2/2]

QtxWorkstackChild * QtxWorkstackArea::child ( QWidget wid) const
private

Get child widget container.

Parameters
widchild widget
Returns
child widget container corresponding to the wid

References myList.

◆ childList()

QList< QtxWorkstackChild * > QtxWorkstackArea::childList ( ) const

References myList.

◆ contains()

bool QtxWorkstackArea::contains ( QWidget wid) const

Check if area owns the specified widget.

Parameters
widwidget to be checked
Returns
true if area contains widget

References child().

◆ contextMenuRequested

void QtxWorkstackArea::contextMenuRequested ( QWidget w,
QPoint  p 
)
signal

Emitted when context popup menu is requested.

Parameters
wchild widget popup menu requested for
ppoint popup menu to be shown at

◆ customEvent()

◆ deactivated

void QtxWorkstackArea::deactivated ( QtxWorkstackArea wa)
signal

Emitted when workarea is deactivated.

Parameters
waworkarea being deactivated

◆ eventFilter()

bool QtxWorkstackArea::eventFilter ( QObject o,
QEvent e 
)
virtual

Custom event filter.

Process events from child widgets.

Parameters
oevent receiver widget
eevent
Returns
true if event should be filtered (stop further processing)

References ActivateWidget, FocusWidget, and myClose.

◆ floatRect()

QRect QtxWorkstackArea::floatRect ( ) const

Get rectangle to be drawn when highlighting drop area.

Returns
area drop rectangle

References myStack.

◆ floatTab()

QRect QtxWorkstackArea::floatTab ( const int  idx) const

Get rectangle to be drawn when highlighting drop area on tab bar.

Parameters
idxtab index
Returns
tab bar drop rectrangle

References myBar.

◆ focusInEvent()

void QtxWorkstackArea::focusInEvent ( QFocusEvent *  e)
protectedvirtual

Customize focus in event handler.

Parameters
efocus in event

References activated(), activeWidget(), myBar, and QtxWorkstackTabBar::updateActiveState().

◆ generateId()

int QtxWorkstackArea::generateId ( ) const
private

Generate unique widget identifier.

Returns
first non shared widget ID

References myList.

◆ insertChild()

◆ insertWidget()

QtxWorkstackChild * QtxWorkstackArea::insertWidget ( QWidget wid,
const int  idx = -1,
Qt::WindowFlags  f = 0 
)

Add widget to the workarea.

Parameters
widwidget to be added
idxposition in the area widget to be added to
fwidget flags
Returns
child widget container object (or 0 if index is invalid)

References child(), insertChild(), and myStack.

◆ isActive()

bool QtxWorkstackArea::isActive ( ) const

Check if workarea is active.

Returns
true if area is active

References QtxWorkstack::activeArea(), and workstack().

◆ isEmpty()

bool QtxWorkstackArea::isEmpty ( ) const

Check if workarea contains visible widgets.

Returns
true if area is empty (all child widgets are removed or now shown)

References myList.

◆ isNull()

bool QtxWorkstackArea::isNull ( ) const

Check if workarea contains any widgets.

Returns
true if area is null (havn't any child widgets)

References myList.

◆ mousePressEvent()

void QtxWorkstackArea::mousePressEvent ( QMouseEvent *  e)
protectedvirtual

Customize mouse press event handler.

Parameters
emouse press event

References activated(), and activeWidget().

◆ onChildActivated

void QtxWorkstackArea::onChildActivated ( QtxWorkstackChild c)
privateslot

Called when child widget container is activated.

Parameters
cchild widget container being activated

References setWidgetActive(), and QtxWorkstackChild::widget().

◆ onChildCaptionChanged

void QtxWorkstackArea::onChildCaptionChanged ( QtxWorkstackChild c)
privateslot

Called when child widget container's title is changed.

Parameters
cchild widget container which title is changed

References updateTab(), and QtxWorkstackChild::widget().

◆ onChildDestroyed

void QtxWorkstackArea::onChildDestroyed ( QObject obj)
privateslot

Called when area's child widget container is destroyed.

Parameters
objwidget container being destroyed

References removeChild().

◆ onChildHidden

void QtxWorkstackArea::onChildHidden ( QtxWorkstackChild )
privateslot

Called when child widget container is hidden.

Parameters
cchild widget container being hidden

References updateState().

◆ onChildShown

void QtxWorkstackArea::onChildShown ( QtxWorkstackChild )
privateslot

Called when child widget container is shown.

Parameters
cchild widget container being shown

References updateState().

◆ onClose

void QtxWorkstackArea::onClose ( )
privateslot

Called when user presses "Close" button.

References activeWidget().

◆ onContextMenuRequested

void QtxWorkstackArea::onContextMenuRequested ( QPoint  p)
privateslot

Create and show popup menu for the area.

Parameters
pmouse pointer position at which popup menu should be shown

References contextMenuRequested(), myBar, tabAt(), QtxWorkstackTabBar::tabId(), and widget().

◆ onCurrentChanged

void QtxWorkstackArea::onCurrentChanged ( int  )
privateslot

Called when user selects any tab page.

Parameters
idxtab page index (not used)

References activated(), activeWidget(), and updateCurrent().

◆ onDragActiveTab

void QtxWorkstackArea::onDragActiveTab ( )
privateslot

Called when user starts tab page dragging.

References activeWidget(), child(), and workstack().

◆ removeChild()

void QtxWorkstackArea::removeChild ( QtxWorkstackChild child,
const bool  del = true 
)

Remove child from workarea.

Parameters
childchild to be removed
delif true the widget should be also deleted

References activated(), child(), QtxWorkstackChild::id(), QtxWorkstackTabBar::indexOf(), isNull(), myBar, myList, myStack, onChildActivated(), onChildCaptionChanged(), onChildDestroyed(), onChildHidden(), onChildShown(), updateState(), and QtxWorkstackChild::widget().

◆ removeWidget()

void QtxWorkstackArea::removeWidget ( QWidget wid,
const bool  del = true 
)

Remove widget from workarea.

Parameters
widwidget to be removed
delif true the widget should be also deleted

References child(), and removeChild().

◆ restoreState()

bool QtxWorkstackArea::restoreState ( QDataStream &  stream,
QMap< QString, QtxWorkstackChild * > &  map 
)

Restore the widgets configuration from data stream info.

Returns
true in successful case.

References MakeCurrent, RestoreWidget, and QtxWorkstack::WidgetMarker.

◆ saveState()

void QtxWorkstackArea::saveState ( QDataStream &  stream) const

◆ setActiveWidget()

void QtxWorkstackArea::setActiveWidget ( QWidget wid)

Set active widget.

Parameters
widwidget to be made active

References QtxWorkstackTabBar::indexOf(), myBar, and widgetId().

◆ setWidgetActive()

void QtxWorkstackArea::setWidgetActive ( QWidget wid)
private

Set active child widget.

Parameters
widwidget to be set active

References QtxWorkstackTabBar::indexOf(), myBar, and widgetId().

◆ showTabBar()

void QtxWorkstackArea::showTabBar ( bool  visible = true)

Show/Hide tab bar.

References myBar, and myTop.

◆ tabAt()

int QtxWorkstackArea::tabAt ( const QPoint &  pnt) const

Get tab index by point.

Parameters
ppoint
Returns
tab covering point or -1 if there is no tab covering point

References myBar.

◆ updateActiveState()

void QtxWorkstackArea::updateActiveState ( )

Update active tab bar state (active/inactive).

References isActive(), myBar, and QtxWorkstackTabBar::setActive().

◆ updateCurrent()

void QtxWorkstackArea::updateCurrent ( )
private

Update current child widget container.

Raises widget when active tab page is changed.

References child(), myBar, myStack, and QtxWorkstackTabBar::tabId().

◆ updateState()

◆ updateTab()

void QtxWorkstackArea::updateTab ( QWidget wid)
private

Update tab bar.

Parameters
widtab page widget

References QtxWorkstackTabBar::indexOf(), myBar, and widgetId().

◆ widget()

QWidget * QtxWorkstackArea::widget ( const int  id) const
private

Get child widget by specified identifier.

Parameters
idwidget ID
Returns
widget or 0, if identifier in invalid

References child(), and QtxWorkstackChild::widget().

◆ widgetId()

int QtxWorkstackArea::widgetId ( QWidget wid) const
private

Get child widget identifier.

Parameters
widwidget
Returns
widget ID or -1 if widget is not found

References child(), and QtxWorkstackChild::id().

◆ widgetList()

QWidgetList QtxWorkstackArea::widgetList ( ) const

Get all visible child widgets.

Returns
list of visible child widgets

References myList, QtxWorkstackChild::visibility(), and QtxWorkstackChild::widget().

◆ workstack()

QtxWorkstack * QtxWorkstackArea::workstack ( ) const

Get parent workstack.

Returns
workstack owning this workarea

Member Data Documentation

◆ myBar

QtxWorkstackTabBar* QtxWorkstackArea::myBar
private

workarea tab bar header

◆ myClose

QAbstractButton* QtxWorkstackArea::myClose
private

close button

◆ myList

ChildList QtxWorkstackArea::myList
private

child widgets list

◆ myStack

QStackedWidget* QtxWorkstackArea::myStack
private

widget stack

◆ myTop

QWidget* QtxWorkstackArea::myTop
private

workarea top widget


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