This fixes an offset for cursors whose pointer position varies between different themes.
This commit is contained in:
@@ -618,6 +618,8 @@ TrackContentObjectView {
|
||||
qproperty-textColor: rgb( 255, 255, 255 );
|
||||
qproperty-textShadowColor: rgb( 0, 0, 0 );
|
||||
qproperty-gradient: true; /* boolean property, set true to have a gradient */
|
||||
/* finger tip offset of cursor */
|
||||
qproperty-mouseHotspotHand: 3px 3px;
|
||||
}
|
||||
|
||||
/* instrument pattern */
|
||||
|
||||
@@ -653,6 +653,8 @@ TrackContentObjectView {
|
||||
qproperty-textColor: #fff;
|
||||
qproperty-textShadowColor: rgba(0,0,0,200);
|
||||
qproperty-gradient: false; /* boolean property, set true to have a gradient */
|
||||
/* finger tip offset of cursor */
|
||||
qproperty-mouseHotspotHand: 7px 2px;
|
||||
}
|
||||
|
||||
/* instrument pattern */
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <QtCore/QList>
|
||||
#include <QWidget>
|
||||
#include <QSignalMapper>
|
||||
#include <QSize>
|
||||
#include <QColor>
|
||||
#include <QMimeData>
|
||||
|
||||
@@ -201,6 +202,9 @@ class TrackContentObjectView : public selectableObject, public ModelView
|
||||
Q_PROPERTY( QColor textShadowColor READ textShadowColor WRITE setTextShadowColor )
|
||||
Q_PROPERTY( QColor BBPatternBackground READ BBPatternBackground WRITE setBBPatternBackground )
|
||||
Q_PROPERTY( bool gradient READ gradient WRITE setGradient )
|
||||
// We have to use a QSize here because using QPoint isn't supported.
|
||||
// width -> x, height -> y
|
||||
Q_PROPERTY( QSize mouseHotspotHand WRITE setMouseHotspotHand )
|
||||
|
||||
public:
|
||||
TrackContentObjectView( TrackContentObject * tco, TrackView * tv );
|
||||
@@ -233,6 +237,7 @@ public:
|
||||
void setTextShadowColor( const QColor & c );
|
||||
void setBBPatternBackground( const QColor & c );
|
||||
void setGradient( const bool & b );
|
||||
void setMouseHotspotHand(const QSize & s);
|
||||
|
||||
// access needsUpdate member variable
|
||||
bool needsUpdate();
|
||||
@@ -302,8 +307,10 @@ private:
|
||||
QColor m_textShadowColor;
|
||||
QColor m_BBPatternBackground;
|
||||
bool m_gradient;
|
||||
QSize m_mouseHotspotHand; // QSize must be used because QPoint isn't supported by property system
|
||||
bool m_cursorSetYet;
|
||||
|
||||
bool m_needsUpdate;
|
||||
bool m_needsUpdate;
|
||||
inline void setInitialMousePos( QPoint pos )
|
||||
{
|
||||
m_initialMousePos = pos;
|
||||
|
||||
@@ -257,6 +257,8 @@ TrackContentObjectView::TrackContentObjectView( TrackContentObject * tco,
|
||||
m_textShadowColor( 0, 0, 0 ),
|
||||
m_BBPatternBackground( 0, 0, 0 ),
|
||||
m_gradient( true ),
|
||||
m_mouseHotspotHand( 0, 0 ),
|
||||
m_cursorSetYet( false ),
|
||||
m_needsUpdate( true )
|
||||
{
|
||||
if( s_textFloat == NULL )
|
||||
@@ -268,7 +270,7 @@ TrackContentObjectView::TrackContentObjectView( TrackContentObject * tco,
|
||||
setAttribute( Qt::WA_OpaquePaintEvent, true );
|
||||
setAttribute( Qt::WA_DeleteOnClose, true );
|
||||
setFocusPolicy( Qt::StrongFocus );
|
||||
setCursor( QCursor( embed::getIconPixmap( "hand" ), 3, 3 ) );
|
||||
setCursor( QCursor( embed::getIconPixmap( "hand" ), m_mouseHotspotHand.width(), m_mouseHotspotHand.height() ) );
|
||||
move( 0, 0 );
|
||||
show();
|
||||
|
||||
@@ -317,6 +319,12 @@ TrackContentObjectView::~TrackContentObjectView()
|
||||
*/
|
||||
void TrackContentObjectView::update()
|
||||
{
|
||||
if( !m_cursorSetYet )
|
||||
{
|
||||
setCursor( QCursor( embed::getIconPixmap( "hand" ), m_mouseHotspotHand.width(), m_mouseHotspotHand.height() ) );
|
||||
m_cursorSetYet = true;
|
||||
}
|
||||
|
||||
if( fixedTCOs() )
|
||||
{
|
||||
updateLength();
|
||||
@@ -387,6 +395,11 @@ void TrackContentObjectView::setBBPatternBackground( const QColor & c )
|
||||
void TrackContentObjectView::setGradient( const bool & b )
|
||||
{ m_gradient = b; }
|
||||
|
||||
void TrackContentObjectView::setMouseHotspotHand(const QSize & s)
|
||||
{
|
||||
m_mouseHotspotHand = s;
|
||||
}
|
||||
|
||||
// access needsUpdate member variable
|
||||
bool TrackContentObjectView::needsUpdate()
|
||||
{ return m_needsUpdate; }
|
||||
@@ -572,7 +585,7 @@ void TrackContentObjectView::leaveEvent( QEvent * e )
|
||||
{
|
||||
if( cursor().shape() != Qt::BitmapCursor )
|
||||
{
|
||||
setCursor( QCursor( embed::getIconPixmap( "hand" ), 3, 3 ) );
|
||||
setCursor( QCursor( embed::getIconPixmap( "hand" ), m_mouseHotspotHand.width(), m_mouseHotspotHand.height() ) );
|
||||
}
|
||||
if( e != NULL )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user