Changeset - 6548ba64c950
[Not reviewed]
scalezoomer
0 1 0
Hasan Yavuz Ă–ZDERYA - 10 years ago 2015-08-26 10:00:19
hy@ozderya.net
implemented zoom for left scale (vertical)
1 file changed with 14 insertions and 0 deletions:
0 comments (0 inline, 0 general)
scalezoomer.cpp
Show inline comments
 
@@ -8,50 +8,64 @@
 
  the Free Software Foundation, either version 3 of the License, or
 
  (at your option) any later version.
 

	
 
  serialplot is distributed in the hope that it will be useful,
 
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
  GNU General Public License for more details.
 

	
 
  You should have received a copy of the GNU General Public License
 
  along with serialplot.  If not, see <http://www.gnu.org/licenses/>.
 
*/
 

	
 
#include <QRectF>
 
#include <QtDebug>
 
#include "scalezoomer.h"
 

	
 
ScaleZoomer::ScaleZoomer(QwtPlot* plot, QwtPlotZoomer* zoomer) :
 
    QObject(plot),
 
    bottomPicker(plot->axisWidget(QwtPlot::xBottom)),
 
    leftPicker(plot->axisWidget(QwtPlot::yLeft))
 
{
 
    _plot = plot;
 
    _zoomer = zoomer;
 
    connect(&bottomPicker, &ScalePicker::picked, this, &ScaleZoomer::bottomPicked);
 
    connect(&leftPicker, &ScalePicker::picked, this, &ScaleZoomer::leftPicked);
 
}
 

	
 
void ScaleZoomer::bottomPicked(double firstPos, double lastPos)
 
{
 
    QRectF zRect;
 
    if (lastPos > firstPos)
 
    {
 
        zRect.setLeft(firstPos);
 
        zRect.setRight(lastPos);
 
    }
 
    else
 
    {
 
        zRect.setLeft(lastPos);
 
        zRect.setRight(firstPos);
 
    }
 

	
 
    zRect.setBottom(_plot->axisScaleDiv(QwtPlot::yLeft).lowerBound());
 
    zRect.setTop(_plot->axisScaleDiv(QwtPlot::yLeft).upperBound());
 
    _zoomer->zoom(zRect);
 
}
 

	
 
void ScaleZoomer::leftPicked(double firstPos, double lastPos)
 
{
 
    QRectF zRect;
 
    if (lastPos > firstPos)
 
    {
 
        zRect.setBottom(firstPos);
 
        zRect.setTop(lastPos);
 
    }
 
    else
 
    {
 
        zRect.setBottom(lastPos);
 
        zRect.setTop(firstPos);
 
    }
 

	
 
    zRect.setLeft(_plot->axisScaleDiv(QwtPlot::xBottom).lowerBound());
 
    zRect.setRight(_plot->axisScaleDiv(QwtPlot::xBottom).upperBound());
 
    _zoomer->zoom(zRect);
 
}
0 comments (0 inline, 0 general)