Placed view in a scroll area.

This commit is contained in:
Jim Evins
2015-08-22 16:53:13 -04:00
parent 27e006d3e4
commit 065485d6e5
2 changed files with 20 additions and 9 deletions
+12 -5
View File
@@ -23,6 +23,7 @@
#include <QSettings>
#include <QStatusBar>
#include <QFrame>
#include <QScrollArea>
#include <QAction>
#include <QCloseEvent>
#include <QMenuBar>
@@ -57,13 +58,9 @@ namespace glabels
MainWindow::MainWindow()
: mModel(0)
{
mView = new View();
mObjectEditor = new ObjectEditor();
createActions();
createMenus();
createToolBars();
createStatusBar();
QWidget* editorPage = createEditorPage();
QWidget* mergePage = createMergePage();
@@ -77,6 +74,8 @@ namespace glabels
setCentralWidget( mNotebook );
createStatusBar();
setDocVerbsEnabled( false );
setPasteVerbsEnabled( false );
setTitle();
@@ -573,9 +572,17 @@ namespace glabels
{
QWidget* page = new QWidget;
mView = new View();
mObjectEditor = new ObjectEditor();
QScrollArea* scrollArea = new QScrollArea();
scrollArea->setMinimumSize( 640, 450 );
scrollArea->setWidgetResizable( true );
scrollArea->setWidget( mView );
QVBoxLayout* editorVLayout = new QVBoxLayout;
editorVLayout->addWidget( editorToolBar );
editorVLayout->addWidget( mView );
editorVLayout->addWidget( scrollArea );
QHBoxLayout* editorHLayout = new QHBoxLayout;
editorHLayout->addLayout( editorVLayout );
+8 -4
View File
@@ -85,8 +85,6 @@ glabels::View::View( QWidget *parent ) : QWidget(parent)
mInObjectCreateMode = false;
setMouseTracking( true );
setMinimumSize( 640, 450 );
}
@@ -234,8 +232,12 @@ glabels::View::zoomToFit()
using std::min;
using std::max;
double x_scale = ( width() - ZOOM_TO_FIT_PAD ) / mModel->w();
double y_scale = ( height() - ZOOM_TO_FIT_PAD ) / mModel->h();
// Assumes parent widget (QScrollArea) exists
double wPixels = parentWidget()->width();
double hPixels = parentWidget()->height();
double x_scale = ( wPixels - ZOOM_TO_FIT_PAD ) / mModel->w();
double y_scale = ( hPixels - ZOOM_TO_FIT_PAD ) / mModel->h();
double newZoom = min( x_scale, y_scale ) * PTS_PER_INCH / physicalDpiX();
// Limits
@@ -278,6 +280,8 @@ glabels::View::setZoomReal( double zoom, bool zoomToFitFlag )
/* Actual scale depends on DPI of display (assume DpiX == DpiY). */
mScale = zoom * physicalDpiX() / PTS_PER_INCH;
setMinimumSize( mScale*mModel->w(), mScale*mModel->h() );
/* Adjust origin to center label in widget. */
mX0 = (width()/mScale - mModel->w()) / 2;
mY0 = (height()/mScale - mModel->h()) / 2;