umbrello API Documentation

UMLWidgetController Class Reference

Controller for UMLWidget This class takes care of user interaction with UMLWidgets: select, deselect, move, resize... More...

#include <umlwidgetcontroller.h>

Inheritance diagram for UMLWidgetController:

FloatingTextWidgetController MessageWidgetController NoteWidgetController ObjectWidgetController List of all members.

Public Member Functions

 UMLWidgetController (UMLWidget *widget)
 Constructor for UMLWidgetController.
virtual ~UMLWidgetController ()
 Destructor for UMLWidgetController.
virtual void mousePressEvent (QMouseEvent *me)
 Handles a mouse press event.
virtual void mouseMoveEvent (QMouseEvent *me)
 Handles a mouse move event.
virtual void mouseReleaseEvent (QMouseEvent *me)
 Handles a mouse release event.
virtual void mouseDoubleClickEvent (QMouseEvent *me)
 Handles a mouse double click event.

Protected Member Functions

virtual void saveWidgetValues (QMouseEvent *me)
 Saves the values of the widget needed for move/resize.
virtual bool isInResizeArea (QMouseEvent *me)
 Checks if the mouse is in resize area (right bottom corner), and sets the cursor depending on that.
virtual QCursor getResizeCursor ()
 Returns the cursor to be shown when resizing the widget.
virtual void resizeWidget (int newW, int newH)
 Resizes the widget.
virtual void moveWidgetBy (int diffX, int diffY)
 Moves the widget to a new position using the difference between the current position and the new position.
virtual void constrainMovementForAllWidgets (int &diffX, int &diffY)
 Modifies the value of the diffX and diffY variables used to move the widgets.
virtual void doMouseDoubleClick (QMouseEvent *me)
 Executes the action for double click in the widget.
void resetSelection ()
 Clears the selection, resets the toolbar and deselects the widget.
void selectSingle (QMouseEvent *me)
 Selects the widget and clears the other selected widgets, if any.
void selectMultiple (QMouseEvent *me)
 Selects the widget and adds it to the list of selected widgets.
void deselect (QMouseEvent *me)
 Deselects the widget and removes it from the list of selected widgets.
void setSelectionBounds ()
 Fills m_selectedWidgetsList and sets the selection bounds ((m_min/m_max)X/Y attributes).
void updateSelectionBounds (int diffX, int diffY)
 Updates the selection bounds based on the movement made.
void resize (QMouseEvent *me)
 Resizes the widget and adjusts the associations.
int getSmallestX (const UMLWidgetList &widgetList)
 Returns the smallest X position of all the widgets in the list.
int getSmallestY (const UMLWidgetList &widgetList)
 Returns the smallest Y position of all the widgets in the list.
int getBiggestX (const UMLWidgetList &widgetList)
 Returns the biggest X position of all the widgets in the list.
int getBiggestY (const UMLWidgetList &widgetList)
 Returns the biggest Y position of all the widgets in the list.
QPoint getPositionDifference (QMouseEvent *me)
 Returns a QPoint with the new X and Y position difference of the mouse event respect to the position of the widget.
void showPopupMenu (QMouseEvent *me)
 Shows the widget popup menu where the mouse event points to.
bool wasSizeChanged ()
 Checks if the size of the widget changed respect to the size that it had when press event was fired.
bool wasPositionChanged ()
 Checks if the position of the widget changed respect to the position that it had when press event was fired.

Protected Attributes

UMLWidgetm_widget
 The widget which uses the controller.
QTime lastUpdate
 Timer that prevents excessive updates (be easy on the CPU).
UMLWidgetList m_selectedWidgetsList
 A list containing the selected widgets.
QString m_oldStatusBarMsg
 The text in the status bar when the cursor was pressed.
int m_pressOffsetX
 The X/Y offset from the position of the cursor when it was pressed to the upper left corner of the widget.
int m_pressOffsetY
 The X/Y offset from the position of the cursor when it was pressed to the upper left corner of the widget.
int m_oldX
 The X/Y position the widget had when the movement started.
int m_oldY
 The X/Y position the widget had when the movement started.
int m_oldW
 The width/height the widget had when the resize started.
int m_oldH
 The width/height the widget had when the resize started.
int m_minSelectedX
 The minimum/maximum X/Y position of all the selected widgets.
int m_minSelectedY
 The minimum/maximum X/Y position of all the selected widgets.
int m_maxSelectedX
 The minimum/maximum X/Y position of all the selected widgets.
int m_maxSelectedY
 The minimum/maximum X/Y position of all the selected widgets.
bool m_shiftPressed
 If shift or control button were pressed in mouse press event.
bool m_leftButtonDown
 If the left/middle/right button is pressed.
bool m_middleButtonDown
 If the left/middle/right button is pressed.
bool m_rightButtonDown
 If the left/middle/right button is pressed.
bool m_inMoveArea
 If cursor was in move/resize area when left button was pressed (and no other widgets were selected).
bool m_inResizeArea
 If cursor was in move/resize area when left button was pressed (and no other widgets were selected).
bool m_wasSelected
 If the widget was selected/moved/resized in the press and release cycle.
bool m_moved
 If the widget was selected/moved/resized in the press and release cycle.
bool m_resized
 If the widget was selected/moved/resized in the press and release cycle.

Detailed Description

Controller for UMLWidget This class takes care of user interaction with UMLWidgets: select, deselect, move, resize...

Those actions are done using events. There are handlers for mousePressEvent, mouseMoveEvent, mouseReleaseEvent and mouseDoubleClickEvent. There's more information about each of them in their respective documentation.

Behaviour of this class can be customized overriding the handlers themselves (which isn't recommended) or, better, overriding the virtual protected methods.

The area that is considered as "resize area" can be customized with isInResizeArea, so when there's a pressed button in this area, mouseMoveEvent will resize the widget. Also, if the resize area doesn't need to be modified, but the cursor to be used when the mouse is in that area can be done with getResizeCursor. When a widget is being resized, it's done using resizeWidget, so overriding it makes possible to, for example, constrain the resizing only in one axis no matter how the mouse was moved.

Widget move can also be customized. The widgets are moved in mouseMoveEvent using the moveWidgetBy method of the controller of each selected widget. Overriding this method widget movement can be, for example, constrained to an axis, no matter if the widget is being moved explicitly or as part of a selection. On the other hand, the move of all the selected widgets can be constrained with constrainMovementForAllWidgets. This method, called in the controller that is handling the mouseMoveEvent, modifies the difference between the current position of the widgets and the new position to be moved to. For example, if a widget shouldn't be moved in X axis, it's receiving the mouseMoveEvents and there are other widgets selected, those other widgets shouldn't be allowed either to be moved in X axis.

The behaviour when double clicking on the widget after it's selected can be customized with doMouseDoubleClick.

Author:
Umbrello UML Modeller Authors <uml-devel@lists.sourceforge.net>

Definition at line 67 of file umlwidgetcontroller.h.


Constructor & Destructor Documentation

UMLWidgetController::UMLWidgetController UMLWidget widget  ) 
 

Constructor for UMLWidgetController.

Parameters:
widget The widget which uses the controller.

Definition at line 39 of file umlwidgetcontroller.cpp.

References m_inMoveArea, m_inResizeArea, m_leftButtonDown, m_maxSelectedX, m_maxSelectedY, m_middleButtonDown, m_minSelectedX, m_minSelectedY, m_moved, m_oldH, m_oldW, m_oldX, m_oldY, m_pressOffsetX, m_pressOffsetY, m_resized, m_rightButtonDown, m_shiftPressed, m_wasSelected, and m_widget.

UMLWidgetController::~UMLWidgetController  )  [virtual]
 

Destructor for UMLWidgetController.

Definition at line 53 of file umlwidgetcontroller.cpp.


Member Function Documentation

void UMLWidgetController::mousePressEvent QMouseEvent *  me  )  [virtual]
 

Handles a mouse press event.

It'll select the widget (or mark it to be deselected) and prepare it to be moved or resized. Go on reading for more info about this.

Widget values and message bar status are saved.

If shift or control buttons are pressed, we're in move area no matter where the button was pressed in the widget. Moreover, if the widget wasn't already selected, it's added to the selection. If already selected, it's marked to be deselected when releasing the button (provided it isn't moved). Also, if the widget is already selected with other widgets but shift nor control buttons are pressed, we're in move area. If finally we don't move the widget, it's selected and the other widgets deselected when releasing the left button.

If shift nor control buttons are pressed, we're facing a single selection. Depending on the position of the cursor, we're in move or in resize area. If the widget wasn't selected (both when there are no widgets selected, or when there're other widgets selected but not the one receiving the press event) it's selected and the others deselected, if any. If already selected, it's marked to be deselected when releasing the button (provided it wasn't moved or resized).

Parameters:
me The QMouseEvent event.

Definition at line 56 of file umlwidgetcontroller.cpp.

References UMLView::getSelectCount(), UMLApp::getStatusBarMsg(), isInResizeArea(), lastUpdate, UMLWidget::m_bSelected, m_inMoveArea, m_inResizeArea, m_leftButtonDown, m_middleButtonDown, m_oldStatusBarMsg, WidgetBase::m_pView, m_rightButtonDown, m_shiftPressed, m_wasSelected, m_widget, saveWidgetValues(), selectMultiple(), and selectSingle().

Referenced by UMLWidget::mousePressEvent().

void UMLWidgetController::mouseMoveEvent QMouseEvent *  me  )  [virtual]
 

Handles a mouse move event.

It resizes or moves the widget, depending on where the cursor is pressed on the widget. Go on reading for more info about this.

If resizing, the widget is resized using resizeWidget (where specific widget resize constrain can be applied), and then the associations are adjusted. The resizing can be constrained also to an specific axis using control and shift buttons. If on or another is pressed, it's constrained to X axis. If both are pressed, it's constrained to Y axis.

If not resizing, the widget is being moved. If the move is being started, the selection bounds are set (which includes updating the list of selected widgets). The difference between the previous position of the selection and the new one is got (taking in account the selection bounds so widgets don't go beyond the canvas limits). Then, it's constrained to X or Y axis depending on shift and control buttons. A further constrain is made using constrainMovementForAllWidgets (for example, if the widget that receives the event can only be moved in Y axis, with this method the movement of all the widgets in the selection can be constrained to be moved only in Y axis). Then, all the selected widgets are moved using moveWidgetBy (where specific widget movement constrain can be applied) and, if an specific amount of time passed from the last move event, the associations are also updated (they're not updated always to be easy on the CPU). Finally, the canvas is resized, and selection bounds updated.

Parameters:
me The QMouseEvent event.

Reimplemented in NoteWidgetController.

Definition at line 118 of file umlwidgetcontroller.cpp.

References UMLWidget::adjustUnselectedAssocs(), constrainMovementForAllWidgets(), UMLApp::getDocument(), getPositionDifference(), AssociationWidget::getSelected(), UMLView::getSelectedAssocs(), UMLWidget::getWidgetController(), lastUpdate, UMLWidget::m_bStartMove, m_inResizeArea, m_leftButtonDown, m_moved, WidgetBase::m_pView, m_selectedWidgetsList, m_widget, AssociationWidget::moveEntireAssoc(), moveWidgetBy(), resize(), UMLView::resizeCanvasToItems(), setSelectionBounds(), updateSelectionBounds(), and UMLDoc::writeToStatusBar().

Referenced by UMLWidget::mouseMoveEvent(), NoteWidgetController::mouseMoveEvent(), and mouseReleaseEvent().

void UMLWidgetController::mouseReleaseEvent QMouseEvent *  me  )  [virtual]
 

Handles a mouse release event.

It selects or deselects the widget and cancels or confirms the move or resize. Go on reading for more info about this. No matter which tool is selected, Z position of widget is updated.

Middle button release resets the selection. Left button release, if it wasn't moved nor resized, selects the widget and deselect the others if it wasn't selected and there were other widgets selected. If the widget was marked to be deselected, deselects it. If it was moved or resized, the document is set to modified if position or size changed. Also, if moved, all the associations are adjusted because the timer could have prevented the adjustment in the last move event before the release. If mouse was pressed in resize area, cursor is set again to normal cursor Right button release if right button was pressed shows the pop up menu for the widget. If left button was pressed, it cancels the move or resize with a mouse move event at the same position than the cursor was when pressed. Another left button release is also sent.

Parameters:
me The QMouseEvent event.

Reimplemented in NoteWidgetController.

Definition at line 194 of file umlwidgetcontroller.cpp.

References UMLWidget::adjustAssocs(), deselect(), UMLApp::getDocument(), UMLView::getSelectCount(), UMLView::getWidgetAt(), UMLWidget::getX(), UMLWidget::getY(), UMLWidget::getZ(), UMLWidget::m_bStartMove, m_inMoveArea, m_inResizeArea, m_leftButtonDown, m_middleButtonDown, m_moved, m_oldStatusBarMsg, m_oldX, m_oldY, UMLWidget::m_pDoc, m_pressOffsetX, m_pressOffsetY, WidgetBase::m_pView, m_resized, m_rightButtonDown, m_selectedWidgetsList, m_shiftPressed, m_wasSelected, m_widget, mouseMoveEvent(), resetSelection(), selectSingle(), UMLDoc::setModified(), UMLWidget::setZ(), showPopupMenu(), wasPositionChanged(), wasSizeChanged(), and UMLDoc::writeToStatusBar().

Referenced by UMLWidget::mouseReleaseEvent(), and NoteWidgetController::mouseReleaseEvent().

void UMLWidgetController::mouseDoubleClickEvent QMouseEvent *  me  )  [virtual]
 

Handles a mouse double click event.

If the button wasn't left button it does nothing. Otherwise, it selects the widget (deselecting other selected widgets, if any) and executes doMouseDoubleClick.

See also:
doMouseDoubleClick
Parameters:
me The QMouseEvent event.

Definition at line 272 of file umlwidgetcontroller.cpp.

References doMouseDoubleClick(), and selectSingle().

Referenced by UMLWidget::mouseDoubleClickEvent().

void UMLWidgetController::saveWidgetValues QMouseEvent *  me  )  [protected, virtual]
 

Saves the values of the widget needed for move/resize.

The values saved are: the offset from the cursor respect to the upper left corner of the widget in m_pressOffsetX/Y, the position in m_oldX/Y and the size in m_oldW/H.

It can be overridden to save subclass specific values whenever a move or resize begins. However, parent method (that is, this method) must be called in the overridden method.

Parameters:
me The QMouseEvent to get the offset from.

Reimplemented in FloatingTextWidgetController, and MessageWidgetController.

Definition at line 347 of file umlwidgetcontroller.cpp.

References UMLWidget::getX(), UMLWidget::getY(), m_oldH, m_oldW, m_oldX, m_oldY, m_pressOffsetX, m_pressOffsetY, and m_widget.

Referenced by mousePressEvent(), MessageWidgetController::saveWidgetValues(), and FloatingTextWidgetController::saveWidgetValues().

bool UMLWidgetController::isInResizeArea QMouseEvent *  me  )  [protected, virtual]
 

Checks if the mouse is in resize area (right bottom corner), and sets the cursor depending on that.

The cursor used when resizing is gotten from getResizeCursor().

Parameters:
me The QMouseEVent to check.
Returns:
true if the mouse is in resize area, false otherwise.

Reimplemented in FloatingTextWidgetController.

Definition at line 282 of file umlwidgetcontroller.cpp.

References getResizeCursor(), UMLWidget::getX(), UMLWidget::getY(), UMLWidget::m_bResizable, WidgetBase::m_pView, and m_widget.

Referenced by mousePressEvent().

QCursor UMLWidgetController::getResizeCursor  )  [protected, virtual]
 

Returns the cursor to be shown when resizing the widget.

Default cursor is KCursor::sizeFDiagCursor().

Returns:
The cursor to be shown when resizing the widget.

Reimplemented in MessageWidgetController, and ObjectWidgetController.

Definition at line 296 of file umlwidgetcontroller.cpp.

Referenced by isInResizeArea().

void UMLWidgetController::resizeWidget int  newW,
int  newH
[protected, virtual]
 

Resizes the widget.

It's called from resize, after the values are constrained and before the associations are adjusted.

Default behaviour is resize the widget using the new size values.

See also:
resize
Parameters:
newW The new width for the widget.
newH The new height for the widget.

Reimplemented in MessageWidgetController, and ObjectWidgetController.

Definition at line 300 of file umlwidgetcontroller.cpp.

References m_widget, and UMLWidget::setSize().

Referenced by resize().

void UMLWidgetController::moveWidgetBy int  diffX,
int  diffY
[protected, virtual]
 

Moves the widget to a new position using the difference between the current position and the new position.

This method doesn't adjust associations. It only moves the widget.

It can be overridden to constrain movement of m_widget only in one axis even when the user isn't constraining the movement with shift or control buttons, for example. The movement policy set here is applied whenever the widget is moved, being it moving it explicitly, or as a part of a selection but not receiving directly the mouse events.

Default behaviour is move the widget to the new position using the diffs.

See also:
constrainMovementForAllWidgets
Parameters:
diffX The difference between current X position and new X position.
diffY The difference between current Y position and new Y position.

Reimplemented in FloatingTextWidgetController, MessageWidgetController, and ObjectWidgetController.

Definition at line 304 of file umlwidgetcontroller.cpp.

References UMLWidget::getX(), UMLWidget::getY(), m_widget, UMLWidget::setX(), and UMLWidget::setY().

Referenced by mouseMoveEvent().

void UMLWidgetController::constrainMovementForAllWidgets int &  diffX,
int &  diffY
[protected, virtual]
 

Modifies the value of the diffX and diffY variables used to move the widgets.

It can be overridden to constrain movement of all the selected widgets only in one axis even when the user isn't constraining the movement with shift or control buttons, for example. The difference with moveWidgetBy is that the diff positions used here are applied to all the selected widgets instead of only to m_widget, and that moveWidgetBy, in fact, moves the widget, and here simply the diff positions are modified.

Default behaviour is do nothing.

See also:
moveWidgetBy
Parameters:
diffX The difference between current X position and new X position.
diffY The difference between current Y position and new Y position.

Reimplemented in FloatingTextWidgetController, MessageWidgetController, and ObjectWidgetController.

Definition at line 309 of file umlwidgetcontroller.cpp.

Referenced by mouseMoveEvent().

void UMLWidgetController::doMouseDoubleClick QMouseEvent *  me  )  [protected, virtual]
 

Executes the action for double click in the widget.

It's called only if the button used was left button. Before calling this method, the widget is selected.

Default behaviour is show the properties dialog for the widget using m_widget->slotMenuSelection(ListPopupMenu::mt_Properties); If the widget doesn't have a property dialog (from the Widget_Type enum, those that don't have an UMLObject representation) there's no need to override the method, it simply does nothing.

Parameters:
me The QMouseEvent which triggered the double click event.

Reimplemented in MessageWidgetController, and NoteWidgetController.

Definition at line 312 of file umlwidgetcontroller.cpp.

References m_widget, and UMLWidget::slotMenuSelection().

Referenced by mouseDoubleClickEvent().

void UMLWidgetController::resetSelection  )  [protected]
 

Clears the selection, resets the toolbar and deselects the widget.

Definition at line 316 of file umlwidgetcontroller.cpp.

References UMLView::clearSelected(), WidgetBase::m_pView, m_wasSelected, m_widget, UMLView::resetToolbar(), and UMLWidget::setSelected().

Referenced by mouseReleaseEvent().

void UMLWidgetController::selectSingle QMouseEvent *  me  )  [protected]
 

Selects the widget and clears the other selected widgets, if any.

Parameters:
me The QMouseEvent which made the selection.

Definition at line 324 of file umlwidgetcontroller.cpp.

References UMLView::clearSelected(), WidgetBase::m_pView, m_widget, and selectMultiple().

Referenced by mouseDoubleClickEvent(), mousePressEvent(), and mouseReleaseEvent().

void UMLWidgetController::selectMultiple QMouseEvent *  me  )  [protected]
 

Selects the widget and adds it to the list of selected widgets.

Parameters:
me The QMouseEvent which made the selection.

Definition at line 332 of file umlwidgetcontroller.cpp.

References UMLWidget::m_bSelected, WidgetBase::m_pView, m_wasSelected, m_widget, UMLView::setSelected(), and UMLWidget::setSelected().

Referenced by mousePressEvent(), and selectSingle().

void UMLWidgetController::deselect QMouseEvent *  me  )  [protected]
 

Deselects the widget and removes it from the list of selected widgets.

Parameters:
me The QMouseEvent which made the selection.

Definition at line 340 of file umlwidgetcontroller.cpp.

References UMLWidget::m_bSelected, WidgetBase::m_pView, m_widget, UMLView::setSelected(), and UMLWidget::setSelected().

Referenced by mouseReleaseEvent().

void UMLWidgetController::setSelectionBounds  )  [protected]
 

Fills m_selectedWidgetsList and sets the selection bounds ((m_min/m_max)X/Y attributes).

Definition at line 358 of file umlwidgetcontroller.cpp.

References UMLView::getSelectCount(), UMLView::getSelectedWidgets(), WidgetBase::m_pView, m_selectedWidgetsList, m_widget, and updateSelectionBounds().

Referenced by mouseMoveEvent().

void UMLWidgetController::updateSelectionBounds int  diffX,
int  diffY
[protected]
 

Updates the selection bounds based on the movement made.

If it was only a vertical movement, there's no need to update horizontal bounds, and vice versa.

Parameters:
diffX The difference between current X position and new X position.
diffY The difference between current Y position and new Y position.

Definition at line 368 of file umlwidgetcontroller.cpp.

References getBiggestX(), getBiggestY(), getSmallestX(), getSmallestY(), m_maxSelectedX, m_maxSelectedY, m_minSelectedX, m_minSelectedY, and m_selectedWidgetsList.

Referenced by mouseMoveEvent(), and setSelectionBounds().

void UMLWidgetController::resize QMouseEvent *  me  )  [protected]
 

Resizes the widget and adjusts the associations.

It's called when a mouse move event happens and the cursor was in resize area when pressed. Resizing can be constrained to an specific axis using control and shift buttons.

Parameters:
me The QMouseEvent to get the values from.

Definition at line 379 of file umlwidgetcontroller.cpp.

References UMLWidget::adjustAssocs(), UMLWidget::constrain(), UMLApp::getDocument(), UMLWidget::getX(), UMLWidget::getY(), m_oldH, m_oldW, m_pressOffsetX, m_pressOffsetY, WidgetBase::m_pView, m_resized, m_widget, UMLView::resizeCanvasToItems(), resizeWidget(), and UMLDoc::writeToStatusBar().

Referenced by mouseMoveEvent().

int UMLWidgetController::getSmallestX const UMLWidgetList &  widgetList  )  [protected]
 

Returns the smallest X position of all the widgets in the list.

Parameters:
widgetList A list with UMLWidgets.
Returns:
The smallest X position.

Definition at line 403 of file umlwidgetcontroller.cpp.

References UMLWidget::getX().

Referenced by updateSelectionBounds().

int UMLWidgetController::getSmallestY const UMLWidgetList &  widgetList  )  [protected]
 

Returns the smallest Y position of all the widgets in the list.

Parameters:
widgetList A list with UMLWidgets.
Returns:
The smallest Y position.

Definition at line 423 of file umlwidgetcontroller.cpp.

References UMLWidget::getY().

Referenced by updateSelectionBounds().

int UMLWidgetController::getBiggestX const UMLWidgetList &  widgetList  )  [protected]
 

Returns the biggest X position of all the widgets in the list.

Parameters:
widgetList A list with UMLWidgets.
Returns:
The biggest X position.

Definition at line 443 of file umlwidgetcontroller.cpp.

References UMLWidget::getWidth(), and UMLWidget::getX().

Referenced by updateSelectionBounds().

int UMLWidgetController::getBiggestY const UMLWidgetList &  widgetList  )  [protected]
 

Returns the biggest Y position of all the widgets in the list.

Parameters:
widgetList A list with UMLWidgets.
Returns:
The biggest Y position.

Definition at line 464 of file umlwidgetcontroller.cpp.

References UMLWidget::getHeight(), and UMLWidget::getY().

Referenced by updateSelectionBounds().

QPoint UMLWidgetController::getPositionDifference QMouseEvent *  me  )  [protected]
 

Returns a QPoint with the new X and Y position difference of the mouse event respect to the position of the widget.

Parameters:
me The QMouseEVent to get the position to compare.
Returns:
A QPoint with the position difference.

Definition at line 484 of file umlwidgetcontroller.cpp.

References UMLWidget::getX(), UMLWidget::getY(), m_maxSelectedX, m_maxSelectedY, m_minSelectedX, m_minSelectedY, m_oldX, m_oldY, m_pressOffsetX, m_pressOffsetY, WidgetBase::m_pView, and m_widget.

Referenced by mouseMoveEvent().

void UMLWidgetController::showPopupMenu QMouseEvent *  me  )  [protected]
 

Shows the widget popup menu where the mouse event points to.

Parameters:
me The QMouseEvent which triggered the showing.

Definition at line 524 of file umlwidgetcontroller.cpp.

References UMLWidget::m_pMenu, m_widget, and UMLWidget::startPopupMenu().

Referenced by mouseReleaseEvent().

bool UMLWidgetController::wasSizeChanged  )  [protected]
 

Checks if the size of the widget changed respect to the size that it had when press event was fired.

Returns:
true if was resized, false otherwise.

Definition at line 532 of file umlwidgetcontroller.cpp.

References UMLWidget::getHeight(), UMLWidget::getWidth(), m_oldH, m_oldW, and m_widget.

Referenced by mouseReleaseEvent().

bool UMLWidgetController::wasPositionChanged  )  [protected]
 

Checks if the position of the widget changed respect to the position that it had when press event was fired.

Returns:
true if was moved, false otherwise.

Definition at line 536 of file umlwidgetcontroller.cpp.

References UMLWidget::getX(), UMLWidget::getY(), m_oldX, m_oldY, and m_widget.

Referenced by mouseReleaseEvent().


Member Data Documentation

UMLWidget* UMLWidgetController::m_widget [protected]
 

The widget which uses the controller.

Definition at line 399 of file umlwidgetcontroller.h.

Referenced by deselect(), doMouseDoubleClick(), getPositionDifference(), isInResizeArea(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveWidgetBy(), resetSelection(), resize(), resizeWidget(), saveWidgetValues(), selectMultiple(), selectSingle(), setSelectionBounds(), showPopupMenu(), UMLWidgetController(), wasPositionChanged(), and wasSizeChanged().

QTime UMLWidgetController::lastUpdate [protected]
 

Timer that prevents excessive updates (be easy on the CPU).

Definition at line 404 of file umlwidgetcontroller.h.

Referenced by mouseMoveEvent(), and mousePressEvent().

UMLWidgetList UMLWidgetController::m_selectedWidgetsList [protected]
 

A list containing the selected widgets.

It's filled by setSelectionBounds method. It must be filled again if selected widgets changed. It is cleared only in setSelectionBounds, just before filling it. Select, deselect and so on methods DON'T modify this list.

Definition at line 413 of file umlwidgetcontroller.h.

Referenced by mouseMoveEvent(), mouseReleaseEvent(), setSelectionBounds(), and updateSelectionBounds().

QString UMLWidgetController::m_oldStatusBarMsg [protected]
 

The text in the status bar when the cursor was pressed.

Definition at line 418 of file umlwidgetcontroller.h.

Referenced by mousePressEvent(), and mouseReleaseEvent().

int UMLWidgetController::m_pressOffsetX [protected]
 

The X/Y offset from the position of the cursor when it was pressed to the upper left corner of the widget.

Definition at line 424 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), mouseReleaseEvent(), resize(), saveWidgetValues(), and UMLWidgetController().

int UMLWidgetController::m_pressOffsetY [protected]
 

The X/Y offset from the position of the cursor when it was pressed to the upper left corner of the widget.

Definition at line 424 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), mouseReleaseEvent(), resize(), saveWidgetValues(), and UMLWidgetController().

int UMLWidgetController::m_oldX [protected]
 

The X/Y position the widget had when the movement started.

Definition at line 429 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), mouseReleaseEvent(), saveWidgetValues(), UMLWidgetController(), and wasPositionChanged().

int UMLWidgetController::m_oldY [protected]
 

The X/Y position the widget had when the movement started.

Definition at line 429 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), mouseReleaseEvent(), saveWidgetValues(), UMLWidgetController(), and wasPositionChanged().

int UMLWidgetController::m_oldW [protected]
 

The width/height the widget had when the resize started.

Definition at line 434 of file umlwidgetcontroller.h.

Referenced by resize(), saveWidgetValues(), UMLWidgetController(), and wasSizeChanged().

int UMLWidgetController::m_oldH [protected]
 

The width/height the widget had when the resize started.

Definition at line 434 of file umlwidgetcontroller.h.

Referenced by resize(), saveWidgetValues(), UMLWidgetController(), and wasSizeChanged().

int UMLWidgetController::m_minSelectedX [protected]
 

The minimum/maximum X/Y position of all the selected widgets.

Definition at line 439 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), UMLWidgetController(), and updateSelectionBounds().

int UMLWidgetController::m_minSelectedY [protected]
 

The minimum/maximum X/Y position of all the selected widgets.

Definition at line 439 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), UMLWidgetController(), and updateSelectionBounds().

int UMLWidgetController::m_maxSelectedX [protected]
 

The minimum/maximum X/Y position of all the selected widgets.

Definition at line 439 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), UMLWidgetController(), and updateSelectionBounds().

int UMLWidgetController::m_maxSelectedY [protected]
 

The minimum/maximum X/Y position of all the selected widgets.

Definition at line 439 of file umlwidgetcontroller.h.

Referenced by getPositionDifference(), UMLWidgetController(), and updateSelectionBounds().

bool UMLWidgetController::m_shiftPressed [protected]
 

If shift or control button were pressed in mouse press event.

Definition at line 444 of file umlwidgetcontroller.h.

Referenced by mousePressEvent(), mouseReleaseEvent(), and UMLWidgetController().

bool UMLWidgetController::m_leftButtonDown [protected]
 

If the left/middle/right button is pressed.

Definition at line 449 of file umlwidgetcontroller.h.

Referenced by mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), and UMLWidgetController().

bool UMLWidgetController::m_middleButtonDown [protected]
 

If the left/middle/right button is pressed.

Definition at line 449 of file umlwidgetcontroller.h.

Referenced by mousePressEvent(), mouseReleaseEvent(), and UMLWidgetController().

bool UMLWidgetController::m_rightButtonDown [protected]
 

If the left/middle/right button is pressed.

Definition at line 449 of file umlwidgetcontroller.h.

Referenced by mousePressEvent(), mouseReleaseEvent(), and UMLWidgetController().

bool UMLWidgetController::m_inMoveArea [protected]
 

If cursor was in move/resize area when left button was pressed (and no other widgets were selected).

Definition at line 455 of file umlwidgetcontroller.h.

Referenced by mousePressEvent(), mouseReleaseEvent(), and UMLWidgetController().

bool UMLWidgetController::m_inResizeArea [protected]
 

If cursor was in move/resize area when left button was pressed (and no other widgets were selected).

Definition at line 455 of file umlwidgetcontroller.h.

Referenced by mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), and UMLWidgetController().

bool UMLWidgetController::m_wasSelected [protected]
 

If the widget was selected/moved/resized in the press and release cycle.

Moved/resized is true if the widget was moved/resized even if the final position/size is the same as the starting one.

Definition at line 462 of file umlwidgetcontroller.h.

Referenced by mousePressEvent(), mouseReleaseEvent(), resetSelection(), selectMultiple(), and UMLWidgetController().

bool UMLWidgetController::m_moved [protected]
 

If the widget was selected/moved/resized in the press and release cycle.

Moved/resized is true if the widget was moved/resized even if the final position/size is the same as the starting one.

Definition at line 462 of file umlwidgetcontroller.h.

Referenced by mouseMoveEvent(), mouseReleaseEvent(), and UMLWidgetController().

bool UMLWidgetController::m_resized [protected]
 

If the widget was selected/moved/resized in the press and release cycle.

Moved/resized is true if the widget was moved/resized even if the final position/size is the same as the starting one.

Definition at line 462 of file umlwidgetcontroller.h.

Referenced by mouseReleaseEvent(), resize(), and UMLWidgetController().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for umbrello Version 3.1.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Jun 26 08:08:08 2007 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003