Synchronizing zoom settings between QwtPlotZoomer and QwtPlotMagnifier for a touchscreen interfaceplot.jpg

I have an application which uses a class derived from
QwtPlot. It is for a touchscreen interface, so separation
of events associated with a mouse (such as left, middle, or
right buttons or scroller) do not apply. See the attached
screenshot for some idea of the layout and control buttons for the plot.

I need to provide support for three types of zooming, roughly
analogous in behavior of QwtPlotZoomer, QwtPlotPanner, and
QwtPlotMagnifier.

There are three operating modes for zooming based on the control
button selected from the UI, which are from left to right in the
screenshot:

Zoom Mode
Pan Mode
Zoom Extent
Zoom In
Zoom Out

The zoom "mode" is selected by either the Zoom or Pan mode buttons
which are mutually exclusive. These seem to work fine, I can zoom
in with the rectangle and pan with the mouse. The setEnabled methods
on these classes allows for mutually exclusive behavior.

Now my question has to do with how to implement zoom in and zoom out
in concert with the existing zoom value from using the zoom rectangle,
that is keeping these settings somewhat synchronized.

How can I determine the zoom factor that is currently active as a
function of using the zoom rectangle as the beginning point or scale
factor to use when selecting either Zoom In or Zoom Out?
I need to be able to zoom in and out from this active setting.

Since the rescale() method of QwtPlotMagnifier is private, I assume
I need to derive from this class and create a method for my implementation,
and perhaps customize its behavior.

Anybody try something like this or have any general direction?