ginebra2/ActionButton.cpp
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
3
hgs
parents: 0
diff changeset
     4
*
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
3
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    12
* GNU Lesser General Public License for more details.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
3
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not,
hgs
parents: 0
diff changeset
    16
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*
3
hgs
parents: 0
diff changeset
    18
* Description:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "ActionButton.h"
16
hgs
parents: 3
diff changeset
    23
#include "qstmgestureevent.h"
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <QDebug>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
namespace GVA {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
16
hgs
parents: 3
diff changeset
    28
  ActionButton::ActionButton(ChromeSnippet * snippet, const QString &objectName, QGraphicsItem* parent)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
    : NativeChromeItem(snippet, parent),
3
hgs
parents: 0
diff changeset
    30
      m_internalAction(NULL),
hgs
parents: 0
diff changeset
    31
      m_triggerOnUp(true),
hgs
parents: 0
diff changeset
    32
      m_triggerOnDown(false),
hgs
parents: 0
diff changeset
    33
      m_active(false),
hgs
parents: 0
diff changeset
    34
      m_activeOnPress(true)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
  {
16
hgs
parents: 3
diff changeset
    36
	setObjectName(objectName);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
  void ActionButton::paint( QPainter * painter, const QStyleOptionGraphicsItem * opt, QWidget * widget )
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    Q_UNUSED(opt)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
    Q_UNUSED(widget)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
    painter->save();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    QAction * action = defaultAction();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    QIcon::Mode mode = QIcon::Normal;
3
hgs
parents: 0
diff changeset
    47
hgs
parents: 0
diff changeset
    48
    if (action) {
hgs
parents: 0
diff changeset
    49
        if (m_active) {
hgs
parents: 0
diff changeset
    50
            mode = QIcon::Active;
hgs
parents: 0
diff changeset
    51
        }
hgs
parents: 0
diff changeset
    52
        else if (!action->isEnabled()) {
hgs
parents: 0
diff changeset
    53
            mode = QIcon::Disabled;
hgs
parents: 0
diff changeset
    54
        }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
    }
16
hgs
parents: 3
diff changeset
    56
    
hgs
parents: 3
diff changeset
    57
    #ifndef  Q_WS_MAEMO_5
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
    m_icon.paint(painter, boundingRect().toRect(), Qt::AlignCenter, mode, QIcon::On);
16
hgs
parents: 3
diff changeset
    59
    #else
hgs
parents: 3
diff changeset
    60
    m_icon.paint(painter, boundingRect().toRect(), Qt::AlignLeft, mode, QIcon::On);
hgs
parents: 3
diff changeset
    61
    #endif
hgs
parents: 3
diff changeset
    62
    
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
    painter->restore();
16
hgs
parents: 3
diff changeset
    64
#ifndef BROWSER_LAYOUT_TENONE
3
hgs
parents: 0
diff changeset
    65
    NativeChromeItem::paint(painter, opt, widget);
16
hgs
parents: 3
diff changeset
    66
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
  void ActionButton::mousePressEvent( QGraphicsSceneMouseEvent * ev )
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
  {
3
hgs
parents: 0
diff changeset
    71
hgs
parents: 0
diff changeset
    72
    QAction * action = defaultAction();
hgs
parents: 0
diff changeset
    73
    if (action && (action->isEnabled()) ) {
hgs
parents: 0
diff changeset
    74
      //qDebug() << "mousePressEvent" << m_triggerOnDown <<  ev->type();
hgs
parents: 0
diff changeset
    75
      // If m_activeOnPress is true, set active flag to set icon state to Selected
hgs
parents: 0
diff changeset
    76
      if (m_activeOnPress )
hgs
parents: 0
diff changeset
    77
        setActive(true);
hgs
parents: 0
diff changeset
    78
      if (m_triggerOnDown == true) {
hgs
parents: 0
diff changeset
    79
        if (ev->button() == Qt::LeftButton) {
hgs
parents: 0
diff changeset
    80
hgs
parents: 0
diff changeset
    81
              action->trigger();
hgs
parents: 0
diff changeset
    82
              emit activated();
hgs
parents: 0
diff changeset
    83
        }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
      }
3
hgs
parents: 0
diff changeset
    85
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
    }
3
hgs
parents: 0
diff changeset
    87
    emit mouseEvent(ev->type() );
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
  void ActionButton::mouseReleaseEvent( QGraphicsSceneMouseEvent * ev )
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
  {
3
hgs
parents: 0
diff changeset
    92
hgs
parents: 0
diff changeset
    93
    bool trigger = sceneBoundingRect().contains(ev->scenePos());
hgs
parents: 0
diff changeset
    94
hgs
parents: 0
diff changeset
    95
    QAction * action = defaultAction();
hgs
parents: 0
diff changeset
    96
    //qDebug() << "ActionButton::mouseReleaseEvent " << m_snippet->elementId();
hgs
parents: 0
diff changeset
    97
hgs
parents: 0
diff changeset
    98
    if (   trigger && m_triggerOnUp == true) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
      if (ev->button() == Qt::LeftButton) {
3
hgs
parents: 0
diff changeset
   100
        if (action && action->isEnabled()){
hgs
parents: 0
diff changeset
   101
          action->trigger();
hgs
parents: 0
diff changeset
   102
          emit activated();
hgs
parents: 0
diff changeset
   103
hgs
parents: 0
diff changeset
   104
        }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    }
3
hgs
parents: 0
diff changeset
   107
    // If m_activeOnPress is true, reset active flag to set icon state to Normal
hgs
parents: 0
diff changeset
   108
    if (m_activeOnPress || !trigger)
hgs
parents: 0
diff changeset
   109
      setActive(false);
hgs
parents: 0
diff changeset
   110
    emit mouseEvent(ev->type() );
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
  //Action buttons only have one action at a time, so whenever we add an action, we remove any previously set action
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
  //NB: The action is typically one of the available actions on a view (via ControllableView.getContext()).
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
  //ActionButtonSnippet provides the scriptable method connectAction() to create native connections to view actions
3
hgs
parents: 0
diff changeset
   116
hgs
parents: 0
diff changeset
   117
  void ActionButton::setAction ( QAction * action, bool triggerOnDown,  bool triggerOnUp )
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
    QAction * currentAction = defaultAction();
3
hgs
parents: 0
diff changeset
   120
    if (currentAction == action)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
      return;
3
hgs
parents: 0
diff changeset
   122
    if (currentAction){
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
      disconnect(currentAction, SIGNAL(changed()), this, SLOT(onActionChanged()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
      removeAction(currentAction);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    addAction(action);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    connect(action, SIGNAL(changed()),this, SLOT(onActionChanged()));
3
hgs
parents: 0
diff changeset
   128
    m_triggerOnUp = triggerOnUp;
hgs
parents: 0
diff changeset
   129
    m_triggerOnDown = triggerOnDown;
hgs
parents: 0
diff changeset
   130
hgs
parents: 0
diff changeset
   131
hgs
parents: 0
diff changeset
   132
    // Save the action as the internal action and set its properties
hgs
parents: 0
diff changeset
   133
    m_internalAction = action;
hgs
parents: 0
diff changeset
   134
    m_internalAction->setCheckable(false);
hgs
parents: 0
diff changeset
   135
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
    update();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
  void ActionButton::setEnabled(bool enabled)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
    m_internalAction->setEnabled(enabled);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
16
hgs
parents: 3
diff changeset
   144
  void ActionButton::setTriggerOnUp(bool triggeronup)
hgs
parents: 3
diff changeset
   145
  {
hgs
parents: 3
diff changeset
   146
     m_triggerOnUp = triggeronup;
hgs
parents: 3
diff changeset
   147
  }
hgs
parents: 3
diff changeset
   148
  
3
hgs
parents: 0
diff changeset
   149
  void ActionButton::setActiveOnPress(bool active)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
  {
3
hgs
parents: 0
diff changeset
   151
    m_activeOnPress = active;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
  }
3
hgs
parents: 0
diff changeset
   153
  
hgs
parents: 0
diff changeset
   154
  void ActionButton::setActive(bool active)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
  {
3
hgs
parents: 0
diff changeset
   156
    if (m_active != active ) {
hgs
parents: 0
diff changeset
   157
        m_active = active;
hgs
parents: 0
diff changeset
   158
        update();
hgs
parents: 0
diff changeset
   159
    }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
  //NB: handle icon on/off states too?
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
  void ActionButton::addIcon( const QString & resource, QIcon::Mode mode )
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
    m_icon.addPixmap( QPixmap(resource), mode, QIcon::On );
3
hgs
parents: 0
diff changeset
   167
  }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
  QAction * ActionButton::defaultAction()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
    if (actions().isEmpty())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
      return 0;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
    return actions()[0];
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
  void ActionButton::onActionChanged(){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    //Repaint when the action changes state
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    update();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
  }
3
hgs
parents: 0
diff changeset
   180
hgs
parents: 0
diff changeset
   181
  void ActionButton::onHidden(){
hgs
parents: 0
diff changeset
   182
hgs
parents: 0
diff changeset
   183
    QAction * action = defaultAction();
hgs
parents: 0
diff changeset
   184
    if (action && action->isChecked() ){
hgs
parents: 0
diff changeset
   185
      action->setChecked(false);
hgs
parents: 0
diff changeset
   186
    }
hgs
parents: 0
diff changeset
   187
    setActive(false);
hgs
parents: 0
diff changeset
   188
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
3
hgs
parents: 0
diff changeset
   191
  void ActionButton::onShown(){
hgs
parents: 0
diff changeset
   192
hgs
parents: 0
diff changeset
   193
    QAction * action = defaultAction();
hgs
parents: 0
diff changeset
   194
    if (action && action->isEnabled() && !action->isChecked()){
hgs
parents: 0
diff changeset
   195
      action->setChecked(true);
hgs
parents: 0
diff changeset
   196
      setActive(true);
hgs
parents: 0
diff changeset
   197
    }
hgs
parents: 0
diff changeset
   198
  }
hgs
parents: 0
diff changeset
   199
16
hgs
parents: 3
diff changeset
   200
  
hgs
parents: 3
diff changeset
   201
  bool ActionButton::handleGesture(QEvent* event)
hgs
parents: 3
diff changeset
   202
    {
hgs
parents: 3
diff changeset
   203
      /*
hgs
parents: 3
diff changeset
   204
        if (event->type() == QEvent::Gesture) {
hgs
parents: 3
diff changeset
   205
            QStm_Gesture* gesture = getQStmGesture(event);
hgs
parents: 3
diff changeset
   206
            if (gesture) {
hgs
parents: 3
diff changeset
   207
                QStm_GestureType type = gesture->getGestureStmType();
hgs
parents: 3
diff changeset
   208
                QEvent::Type mouseEventType = gesture->gestureType2GraphicsSceneMouseType();
hgs
parents: 3
diff changeset
   209
                
hgs
parents: 3
diff changeset
   210
                if (mouseEventType == QEvent::GraphicsSceneMousePress || 
hgs
parents: 3
diff changeset
   211
                    mouseEventType == QEvent::GraphicsSceneMouseRelease) {
hgs
parents: 3
diff changeset
   212
                    QGraphicsSceneMouseEvent gsme(mouseEventType);
hgs
parents: 3
diff changeset
   213
                    QPoint gpos = gesture->position();
hgs
parents: 3
diff changeset
   214
                    qstmSetGraphicsSceneMouseEvent(gpos, this, gsme);
hgs
parents: 3
diff changeset
   215
                    if (mouseEventType == QEvent::GraphicsSceneMousePress) {
hgs
parents: 3
diff changeset
   216
                        mousePressEvent(&gsme);    
hgs
parents: 3
diff changeset
   217
                    }
hgs
parents: 3
diff changeset
   218
                    else if (mouseEventType == QEvent::GraphicsSceneMouseRelease) {
hgs
parents: 3
diff changeset
   219
                        mouseReleaseEvent(&gsme);
hgs
parents: 3
diff changeset
   220
                    }
hgs
parents: 3
diff changeset
   221
                }
hgs
parents: 3
diff changeset
   222
            }
hgs
parents: 3
diff changeset
   223
        }
hgs
parents: 3
diff changeset
   224
      */  
hgs
parents: 3
diff changeset
   225
      return false;
hgs
parents: 3
diff changeset
   226
    }
3
hgs
parents: 0
diff changeset
   227
16
hgs
parents: 3
diff changeset
   228
  
hgs
parents: 3
diff changeset
   229
  bool ActionButton::eventFilter(QObject* receiver, QEvent* event)
hgs
parents: 3
diff changeset
   230
  {
hgs
parents: 3
diff changeset
   231
      /*
hgs
parents: 3
diff changeset
   232
      if (receiver == this) {
hgs
parents: 3
diff changeset
   233
          return QStm_GestureEventFilter::instance()->eventFilter(receiver, event);
hgs
parents: 3
diff changeset
   234
      }
hgs
parents: 3
diff changeset
   235
      */
hgs
parents: 3
diff changeset
   236
      return false;
hgs
parents: 3
diff changeset
   237
  }
hgs
parents: 3
diff changeset
   238
  
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
}//end of name space