1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
//=============================================================================
// MuseScore
// Music Composition & Notation
//
// Copyright (C) 2017 Werner Schweer and others
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2
// as published by the Free Software Foundation and appearing in
// the file LICENSE.GPL
//=============================================================================
#include "scaleSelect.h"
#include "libmscore/types.h"
#include "icons.h"
#include "musescore.h"
namespace Ms {
//---------------------------------------------------------
// ScaleSelect
//---------------------------------------------------------
ScaleSelect::ScaleSelect(QWidget* parent)
: QWidget(parent)
{
setupUi(this);
_lock = false;
connect(xVal, SIGNAL(valueChanged(double)), SLOT(xScaleChanged()));
connect(yVal, SIGNAL(valueChanged(double)), SLOT(yScaleChanged()));
}
//---------------------------------------------------------
// setLock
//---------------------------------------------------------
void ScaleSelect::setLock(bool val)
{
if (_lock != val) {
_lock = val;
}
}
//---------------------------------------------------------
// _scaleChanged
//---------------------------------------------------------
void ScaleSelect::xScaleChanged()
{
if (_lock) {
blockScale(true);
yVal->setValue(xVal->value());
blockScale(false);
}
emit scaleChanged(QSizeF(xVal->value(), yVal->value()));
}
void ScaleSelect::yScaleChanged()
{
if (_lock) {
blockScale(true);
xVal->setValue(yVal->value());
blockScale(false);
}
emit scaleChanged(QSizeF(xVal->value(), yVal->value()));
}
//---------------------------------------------------------
// scale
//---------------------------------------------------------
QSizeF ScaleSelect::scale() const
{
return QSizeF(xVal->value(), yVal->value());
}
//---------------------------------------------------------
// blockScale
//---------------------------------------------------------
void ScaleSelect::blockScale(bool val)
{
xVal->blockSignals(val);
yVal->blockSignals(val);
}
//---------------------------------------------------------
// setScale
//---------------------------------------------------------
void ScaleSelect::setScale(const QSizeF& o)
{
blockScale(true);
xVal->setValue(o.width());
yVal->setValue(o.height());
blockScale(false);
}
}
|