* ./hurricane/src/hviewer :
- Change: In RulerCommand, key & mouse now mimic Cadence behavior.
This commit is contained in:
parent
e208fbeb2f
commit
dcf39378c5
|
@ -185,7 +185,7 @@ namespace Hurricane {
|
|||
_clearRulersAction = new QAction ( tr("Clear Rulers"), this );
|
||||
_clearRulersAction->setObjectName ( "viewer.menuBar.view.clearRulers" );
|
||||
_clearRulersAction->setStatusTip ( tr("Remove all rulers") );
|
||||
_clearRulersAction->setShortcut ( QKeySequence(tr("CTRL+R")) );
|
||||
//_clearRulersAction->setShortcut ( QKeySequence(tr("K")) );
|
||||
|
||||
_controllerAction = new QAction ( tr("Controller"), this );
|
||||
_controllerAction->setObjectName ( "viewer.menuBar.tools.controller" );
|
||||
|
|
|
@ -41,8 +41,9 @@ namespace Hurricane {
|
|||
|
||||
|
||||
RulerCommand::RulerCommand ()
|
||||
: Command()
|
||||
, _ruler ()
|
||||
: Command ()
|
||||
, _ruler ()
|
||||
, _drawing(false)
|
||||
{ }
|
||||
|
||||
|
||||
|
@ -56,7 +57,7 @@ namespace Hurricane {
|
|||
|
||||
void RulerCommand::mouseMoveEvent ( QMouseEvent* event )
|
||||
{
|
||||
if ( !isActive() ) return;
|
||||
if ( not isActive() or not _drawing ) return;
|
||||
|
||||
_ruler->setExtremity ( _cellWidget->_onCursorGrid(_cellWidget->screenToDbuPoint(event->pos())) );
|
||||
_cellWidget->update ();
|
||||
|
@ -65,38 +66,46 @@ namespace Hurricane {
|
|||
|
||||
void RulerCommand::mousePressEvent ( QMouseEvent* event )
|
||||
{
|
||||
if ( (event->modifiers() & Qt::ShiftModifier )
|
||||
and (event->button() == Qt::LeftButton ) ) {
|
||||
setActive ( true );
|
||||
_ruler.reset ( new Ruler
|
||||
(_cellWidget->_onCursorGrid(_cellWidget->screenToDbuPoint(_cellWidget->getMousePosition())) ) );
|
||||
return;
|
||||
}
|
||||
if ( not isActive() ) return;
|
||||
|
||||
if ( isActive() ) {
|
||||
if ( event->button() != Qt::RightButton )
|
||||
if ( event->button() == Qt::LeftButton ) {
|
||||
if ( not _drawing ) {
|
||||
_drawing = true;
|
||||
_ruler.reset ( new Ruler
|
||||
(_cellWidget->_onCursorGrid(_cellWidget->screenToDbuPoint(_cellWidget->getMousePosition())) ) );
|
||||
} else {
|
||||
setActive ( false );
|
||||
_drawing = false;
|
||||
_cellWidget->addRuler ( _ruler );
|
||||
|
||||
setActive ( false );
|
||||
_ruler.reset ();
|
||||
_ruler.reset ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RulerCommand::keyPressEvent ( QKeyEvent* event )
|
||||
{
|
||||
if ( !isActive() ) return;
|
||||
|
||||
if ( event->key() == Qt::Key_Escape ) {
|
||||
if ( isActive() and (event->key() == Qt::Key_Escape) ) {
|
||||
setActive ( false );
|
||||
_drawing = false;
|
||||
_ruler.reset ();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( event->key() != Qt::Key_K ) return;
|
||||
|
||||
if ( event->modifiers() & Qt::ShiftModifier ) {
|
||||
_cellWidget->clearRulers ();
|
||||
return;
|
||||
}
|
||||
|
||||
setActive ( true );
|
||||
}
|
||||
|
||||
|
||||
void RulerCommand::draw ()
|
||||
{
|
||||
if ( !isActive() ) return;
|
||||
if ( not _drawing ) return;
|
||||
_cellWidget->drawRuler ( _ruler );
|
||||
}
|
||||
|
||||
|
|
|
@ -47,9 +47,10 @@ namespace Hurricane {
|
|||
private:
|
||||
RulerCommand ( const RulerCommand& );
|
||||
RulerCommand& operator= ( const RulerCommand& );
|
||||
protected:
|
||||
private:
|
||||
static string _name;
|
||||
std::tr1::shared_ptr<Ruler> _ruler;
|
||||
bool _drawing;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue