QtxActionMenuMgr Class Reference

#include <QtxActionMenuMgr.h>

Inheritance diagram for QtxActionMenuMgr:

Inheritance graph

Signals

void menuHighlighted (int, int)

Public Member Functions

 QtxActionMenuMgr (QMainWindow *)
 QtxActionMenuMgr (QWidget *, QObject *)
virtual ~QtxActionMenuMgr ()
virtual bool isVisible (const int, const int) const
virtual void setVisible (const int, const int, const bool)
int insert (const int, const QString &, const int, const int=-1)
int insert (QAction *, const QString &, const int, const int=-1)
int insert (const int, const QStringList &, const int, const int=-1)
int insert (QAction *, const QStringList &, const int, const int=-1)
virtual int insert (const int, const int, const int, const int=-1)
int insert (QAction *, const int, const int, const int=-1)
int insert (const QString &, const QString &, const int, const int=-1, const int=-1, const bool=false)
int insert (const QString &, const QStringList &, const int, const int=-1, const int=-1, const bool=false)
virtual int insert (const QString &, const int, const int, const int=-1, const int=-1, const bool=false)
int append (const int, const int, const int)
int append (QAction *, const int, const int)
int append (const QString &, const int, const int, const int=-1, const bool=false)
int prepend (const int, const int, const int)
int prepend (QAction *, const int, const int)
int prepend (const QString &, const int, const int, const int=-1, const bool=false)
void remove (const int)
void remove (const int, const int, const int=-1)
void show (const int)
void hide (const int)
bool isShown (const int) const
void setShown (const int, const bool)
virtual bool load (const QString &, QtxActionMgr::Reader &)
bool containsMenu (const QString &, const int) const
bool containsMenu (const int, const int) const
virtual int registerAction (QAction *, const int=-1)
virtual void unRegisterAction (const int)
QActionaction (const int) const
int actionId (const QAction *) const
bool contains (const int) const
int count () const
bool isEmpty () const
void idList (QIntList &) const
bool isUpdatesEnabled () const
virtual void setUpdatesEnabled (const bool)
void update ()
virtual bool isEnabled (const int) const
virtual void setEnabled (const int, const bool)

Static Public Member Functions

static QActionseparator (const bool=false)

Protected Member Functions

void setWidget (QWidget *)
MenuNodefind (const int, const int, const bool=true) const
MenuNodefind (const int, MenuNode *=0, const bool=true) const
bool find (const int, NodeList &, MenuNode *=0) const
MenuNodefind (const QString &, const int, const bool=true) const
MenuNodefind (const QString &, MenuNode *=0, const bool=true) const
bool find (const QString &, NodeList &, MenuNode *=0) const
int findId (const int, const int=-1) const
void removeMenu (const int, MenuNode *)
QActionitemAction (const int) const
MenuActionmenuAction (const int) const
void updateMenu (MenuNode *=0, const bool=true, const bool=true)
virtual void internalUpdate ()
int generateId () const

Private Types

typedef QList< MenuNodeNodeList
typedef QListIterator< MenuNodeNodeListIterator
typedef QMap< int, MenuAction * > MenuMap

Private Slots

void onDestroyed (QObject *)
void onHighlighted (int)

Private Member Functions

bool checkWidget (QWidget *) const
QWidgetmenuWidget (MenuNode *) const
void simplifySeparators (QWidget *)
QString clearTitle (const QString &) const
int createMenu (const QStringList &, const int)

Private Attributes

MenuNode myRoot
QWidgetmyMenu
MenuMap myMenus

Data Structures

class  MenuAction
class  MenuCreator
class  MenuNode

Detailed Description

Allows to use set of action to automatically build main menu. With help of methods insert/append/remove it is possible to describe whole structure of menu. Method hide allows to temporary remove some items from menu, method show allows to recreate them. Actions can be grouped with help of group identifictor. Inside popup or menu bar items have order by increasing group id. This manager is able to attune menu: to remove excess separators, to remove empty popup menu etc.


Member Typedef Documentation

typedef QList<MenuNode> QtxActionMenuMgr.NodeList [private]
 

typedef QListIterator<MenuNode> QtxActionMenuMgr.NodeListIterator [private]
 

typedef QMap<int, MenuAction*> QtxActionMenuMgr.MenuMap [private]
 


Constructor & Destructor Documentation

QtxActionMenuMgr::QtxActionMenuMgr QMainWindow p  ) 
 

Class: QtxActionMenuMgr Level: Public

QtxActionMenuMgr::QtxActionMenuMgr QWidget mw,
QObject p
 

Constructor

QtxActionMenuMgr::~QtxActionMenuMgr  )  [virtual]
 

Destructor


Member Function Documentation

bool QtxActionMenuMgr::isVisible const   int,
const   int
const [virtual]
 

Returns:
whether menu item corresponding to action is visible
Parameters:
actId - identificator of action
place - identificator of some parent action

Reimplemented from QtxActionMgr.

Reimplemented in QtxPopupMgr.

void QtxActionMenuMgr::setVisible const   int,
const   int,
const   bool
[virtual]
 

Sets visible state of action

Parameters:
actId - identificator of action
place - identificator of some parent action
v - visibility state

Reimplemented from QtxActionMgr.

int QtxActionMenuMgr::insert const   int,
const QString &  menus,
const   int,
const   int = -1
 

Insert action as children menu item

Parameters:
id - identificator of action
menus - few names of parent menu items, separated by '|'. It means sequence of menu items, for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
group - group identificator
idx - index inside Qt menu

int QtxActionMenuMgr::insert QAction a,
const QString &  menus,
const   int,
const   int = -1
 

Insert action as children menu item

Parameters:
a - action
menus - few names of parent menu items, separated by '|'. It means sequence of menu items, for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
group - group identificator
idx - index inside Qt menu

int QtxActionMenuMgr::insert const   int,
const QStringList &  menus,
const   int,
const   int = -1
 

Insert action as children menu item

Parameters:
id - identificator of action
menus - list of names of parent menu items, separated by |. It means sequence of menu items, for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
group - group identificator
idx - index inside Qt menu

int QtxActionMenuMgr::insert QAction a,
const QStringList &  menus,
const   int,
const   int = -1
 

Insert action as children menu item

Parameters:
a - action
menus - list of names of parent menu items. It means sequence of menu items, for example "File|Edit" means File->Edit submenu. If submenu doesn't exist, it will be created.
group - group identificator
idx - index inside Qt menu

int QtxActionMenuMgr::insert const   int,
const   int,
const   int,
const   int = -1
[virtual]
 

Insert action as children menu item

Parameters:
id - identificator of action
pId - identificator of action corresponding to parent menu item
group - group identificator
idx - index inside Qt menu

int QtxActionMenuMgr::insert QAction a,
const   int,
const   int,
const   int = -1
 

Insert action as children menu item

Parameters:
a - action
pId - identificator of action corresponding to parent menu item
group - group identificator
idx - index inside Qt menu

int QtxActionMenuMgr::insert const QString &  title,
const QString &  menus,
const   int,
const   int = -1,
const   int = -1,
const   bool = false
 

Create and insert action as children menu item

Returns:
identificator of inserted action
Parameters:
title - menu text of action
menus - string list of parents' menu texts, separated by |
group - group identificator
id - identificator of new action
idx - index inside Qt menu
allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu

int QtxActionMenuMgr::insert const QString &  title,
const QStringList &  menus,
const   int,
const   int = -1,
const   int = -1,
const   bool = false
 

Create and insert action as children menu item

Returns:
identificator of inserted action
Parameters:
title - menu text of action
menus - list of parents menu items
group - group identificator
id - identificator of new action
idx - index inside Qt menu
allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu

int QtxActionMenuMgr::insert const QString &  title,
const   int,
const   int,
const   int = -1,
const   int = -1,
const   bool = false
[virtual]
 

Create and insert action as children menu item

Returns:
identificator of inserted action
Parameters:
title - menu text of action
pId - identificator of action corresponding to parent menu item
group - group identificator
id - identificator of new action
idx - index inside Qt menu
allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu

int QtxActionMenuMgr::append const   int,
const   int,
const   int
 

Create and append action as last children

Returns:
identificator of inserted action
Parameters:
id - identificator of existing action
pId - id of action corresponding to parent menu item
group - group identificator

int QtxActionMenuMgr::append QAction a,
const   int,
const   int
 

Create and append action as last children

Returns:
identificator of inserted action
Parameters:
a - action
pId - id of action corresponding to parent menu item
group - group identificator

int QtxActionMenuMgr::append const QString &  title,
const   int,
const   int,
const   int = -1,
const   bool = false
 

Create and append action as last children

Returns:
identificator of inserted action
Parameters:
title - menu text of action
pId - id of action corresponding to parent menu item
group - group identificator
id - identificator of new action
allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu

int QtxActionMenuMgr::prepend const   int,
const   int,
const   int
 

Create and insert action as last children

Returns:
identificator of inserted action
Parameters:
id - identificator of existing action
pId - id of action corresponding to parent menu item
group - group identificator

int QtxActionMenuMgr::prepend QAction a,
const   int,
const   int
 

Create and insert action as last children

Returns:
identificator of inserted action
Parameters:
a - action
pId - id of action corresponding to parent menu item
group - group identificator

int QtxActionMenuMgr::prepend const QString &  title,
const   int,
const   int,
const   int = -1,
const   bool = false
 

Create and insert action as first children

Returns:
identificator of inserted action
Parameters:
title - menu text of action
pId - id of action corresponding to parent menu item
group - group identificator
id - identificator of new action
allowEmpty - indicates, that it is possible to add this action with empty popup menu to other menu

void QtxActionMenuMgr::remove const   int  ) 
 

Removes menu item corresponding to action

Parameters:
id - identificator of action

void QtxActionMenuMgr::remove const   int,
const   int,
const   int = -1
 

Removes menu item

Parameters:
id - identificator of action
pId - identificator of action corresponding to parent menu item
group - group identificator

void QtxActionMenuMgr::show const   int  ) 
 

Shows menu item corresponding to action

Parameters:
id - identificator of action

void QtxActionMenuMgr::hide const   int  ) 
 

Hides menu item corresponding to action

Parameters:
id - identificator of action

bool QtxActionMenuMgr::isShown const   int  )  const
 

Returns:
shown status of menu item corresponding to action
Parameters:
id - identificator of action

void QtxActionMenuMgr::setShown const   int,
const   bool
 

Sets shown status of menu item corresponding to action

Parameters:
id - identificator of action
on - new shown status

bool QtxActionMenuMgr::load const QString &  fname,
QtxActionMgr::Reader r
[virtual]
 

Loads actions description from file

Parameters:
fname - name of file
r - reader of file
Returns:
true on success

Reimplemented in QtxPopupMgr.

bool QtxActionMenuMgr::containsMenu const QString &  title,
const   int
const
 

Returns:
true if item has such child
Parameters:
title - menu text of child
pid - id of action corresponding to item

bool QtxActionMenuMgr::containsMenu const   int,
const   int
const
 

Returns:
true if item has such child
Parameters:
id - id of action corresponding to child
pid - id of action corresponding to item

void QtxActionMenuMgr::onDestroyed QObject obj  )  [private, slot]
 

SLOT: called when corresponding menu is destroyed, clears internal pointer to menu

void QtxActionMenuMgr::onHighlighted int  id  )  [private, slot]
 

SLOT: called when menu item is highlighted

void QtxActionMenuMgr.menuHighlighted int  ,
int 
[signal]
 

void QtxActionMenuMgr::setWidget QWidget mw  )  [protected]
 

Assignes new menu with manager

Parameters:
mw - new menu

QtxActionMenuMgr::MenuNode * QtxActionMenuMgr::find const   int,
const   int,
const   bool = true
const [protected]
 

Returns:
menu node by it's place description
Parameters:
actId - identificator of action
pId - identificator of action corresponding to start menu item
rec - recursive search

QtxActionMenuMgr::MenuNode * QtxActionMenuMgr::find const   int,
MenuNode startNode = 0,
const   bool = true
const [protected]
 

Returns:
menu node by it's place description
Parameters:
actId - identificator of action
startNode - start menu item
rec - recursive search

bool QtxActionMenuMgr::find const   int,
NodeList lst,
MenuNode startNode = 0
const [protected]
 

Finds menu node

Returns:
true if at least one node is found
Parameters:
id - identificator of action
lst - list to be filled with found nodes
startNode - start menu item

QtxActionMenuMgr::MenuNode * QtxActionMenuMgr::find const QString &  title,
const   int,
const   bool = true
const [protected]
 

Finds menu node

Returns:
menu node
Parameters:
title - menu text of searched node
pId - id of action corresponding to start menu item
rec - recursive searching

QtxActionMenuMgr::MenuNode * QtxActionMenuMgr::find const QString &  title,
MenuNode startNode = 0,
const   bool = true
const [protected]
 

Finds menu node

Returns:
menu node
Parameters:
title - menu text of searched node
startNode - start menu item
rec - recursive searching

bool QtxActionMenuMgr::find const QString &  title,
NodeList lst,
MenuNode startNode = 0
const [protected]
 

Finds menu node

Returns:
true if at least one node is found
Parameters:
title - menu text of node
lst - list to be filled with found nodes
startNode - start menu item

int QtxActionMenuMgr::findId const   int,
const   int = -1
const [protected]
 

Find id among children

Returns:
id (>0) if on success or -1 on fail
Parameters:
id - id to be searched
pid - id of parent, among children of that 'id' must be searched

void QtxActionMenuMgr::removeMenu const   int,
MenuNode startNode
[protected]
 

Removes child

Parameters:
id - id of child to be removed
startNode - parent menu item

QAction * QtxActionMenuMgr::itemAction const   int  )  const [protected]
 

Returns:
menu item action by id
Parameters:
id - id of action

QtxActionMenuMgr::MenuAction * QtxActionMenuMgr::menuAction const   int  )  const [protected]
 

Returns:
menu action by id
Parameters:
id - id of action

void QtxActionMenuMgr::updateMenu MenuNode startNode = 0,
const   bool = true,
const   bool = true
[protected]
 

Updates menu ( isUpdatesEnabled() must return true )

Parameters:
startNode - first menu item to be updated
rec - recursive update
updParent - update also parent item (without recursion)
See also:
isUpdatesEnabled()

void QtxActionMenuMgr::internalUpdate  )  [protected, virtual]
 

Updates menu (virtual variant). To be redefined for custom activity on menu updating

Reimplemented from QtxActionMgr.

bool QtxActionMenuMgr::checkWidget QWidget wid  )  const [private]
 

Returns:
true if widget is non-empty menu
Parameters:
wid - widget to be checked

QWidget * QtxActionMenuMgr::menuWidget MenuNode node  )  const [private]
 

Returns:
popup of menu item
Parameters:
node - menu item

void QtxActionMenuMgr::simplifySeparators QWidget wid  )  [private]
 

Removes excess separators of menu

Parameters:
wid - menu to be processed

QString QtxActionMenuMgr::clearTitle const QString &  txt  )  const [private]
 

Removes special symbols (&) from string

Parameters:
txt - string to be processed
Returns:
clear variant of string

int QtxActionMenuMgr::createMenu const QStringList &  lst,
const   int
[private]
 

Creates and inserts many menu items

Parameters:
lst - list of menu texts
pId - id of action corresponding to parent menu item

int QtxActionMgr::registerAction QAction a,
const   int = -1
[virtual, inherited]
 

Stores action in internal map If action with such id is registered already, then it will be unregistered

Parameters:
a - action to be registered
userId - proposed id (if it is less than 0, then id will be generated automatically)

void QtxActionMgr::unRegisterAction const   int  )  [virtual, inherited]
 

Removes action from internal map

Parameters:
id - action id

Reimplemented in QtxPopupMgr.

QAction * QtxActionMgr::action const   int  )  const [inherited]
 

Returns:
action by id
Parameters:
id - action id

int QtxActionMgr::actionId const QAction a  )  const [inherited]
 

Returns:
id by action
Parameters:
a - action

bool QtxActionMgr::contains const   int  )  const [inherited]
 

Returns:
true if internal map contains such id
Parameters:
id - action id

int QtxActionMgr::count  )  const [inherited]
 

Returns:
count of actions in internal map

bool QtxActionMgr::isEmpty  )  const [inherited]
 

Returns:
true if internal map is empty

void QtxActionMgr::idList QIntList lst  )  const [inherited]
 

Fills list with ids of registered actions

bool QtxActionMgr::isUpdatesEnabled  )  const [inherited]
 

Returns:
true if updates are enabled

void QtxActionMgr::setUpdatesEnabled const   bool  )  [virtual, inherited]
 

Enables/disables updates

Parameters:
upd - new state

void QtxActionMgr::update  )  [inherited]
 

Updates actions, check isUpdatesEnabled() and call internalUpdate()

See also:
isUpdatesEnabled(), internalUpdate()