View Issue Details

IDProjectCategoryView StatusLast Update
0009892ScribusGeneralpublic2013-09-19 18:40
ReportereMate Assigned Tocbradney  
PrioritynormalSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
PlatformMacOSOS10.6OS Version10.6.7
Product Version1.4.0svn 
Target Version1.5.0Fixed in Version1.5.0svn 
Summary0009892: impossible to access to pages after 9
DescriptionI have tried Scribus 1.4.0rc3 (for intel Mac, Leopard version) but have not been able to acces to pages after 9 of a 25 pages document created with Scribus 1.3.9 (Mac version, on same computer).
Additional InformationMac Mini Core Duo 1 Go RAM
TagsNo tags attached.
Patch

Relationships

related to 0009824 new Incorrect scroll[bar] dimensions; possibly due to improper canvas dimension calculations 
parent of 0010396 closedcbradney impossible to access to pages after 9 
has duplicate 0009961 closedcbradney Scrollbar breaks as soon as new pages are added - document corrupted then 
has duplicate 0010008 closedjghali limited zoom through the pages 
has duplicate 0010055 closedjghali Cannot Pan at Zoom > 1320% 
has duplicate 0010471 closedjghali Zoom und Display bei mehr als 50 Seiten in der Arbeitsdatei 

Activities

eMate

2011-03-30 11:58

reporter  

Lecture.sla (151,298 bytes)

jghali

2011-03-30 18:14

administrator   ~0025983

Seems specific to OS X, document can be opened without problem on Windows in rc3

su-v

2011-03-30 21:13

reporter   ~0025984

Not reproduced with Scribus 1.4.0rc3 on OS X 10.5.8 (i386)
MacBookPro5,1, 2.4 GHz Intel C2D, 2GB RAM

All 25 pages are accessible (using the scroll bar or the page selector at the bottom of the window)

cbradney

2011-04-05 22:09

administrator   ~0026008

Last edited: 2011-04-05 22:09

Please download the rc3 dmg for Tiger from sourceforge and re-test.. with that version I see no issue.. carbon based UI.. with the leopard one.. cocoa based.. problem is there

eMate

2011-04-06 06:18

reporter   ~0026011

I agree : no problem with this Tiger version.

bubu

2011-04-06 20:06

reporter   ~0026014

No problem on Linux (Ubuntu 10.10, 1.4rc2)

su-v

2011-04-06 20:27

reporter   ~0026015

Last edited: 2011-04-06 20:29

I redid the tests on Mac OS X Leopard with both versions (1.4.0rc3 Tiger Intel, and 1.4.0rc3 Leopard Intel):

1) Tiger Intel: all pages are reachable, independent of zoom level

2) Leopard Intel: number of accessible pages (via scrollbar or page selector) depends on zoom level:

100% zoom: page 12 is the last one to be fully displayed, page 13 is cut off at the top and can't be scrolled further down, nor can later pages be reached by using the page selector
 50% zoom: all pages including the last one, page 25, are fully displayed and can be reached by scrolling or using the page selector

Reproduced and confirming the reported issue with the Leopard Intel build.

(sorry for having missed this in my first test).

sonne

2011-04-25 16:39

reporter   ~0026147

I agree: No problem with the Tiger Version. Would be nice, if that problem could be fixed in the Leopard Version too.

plinnell

2011-05-12 14:54

viewer   ~0026199

OK we know now this is a general not OSX issue. Pierre one of the developers is working on a solution.

This can also affect other platforms, but just not as visible.

plinnell

2011-06-03 10:25

viewer  

9892.diff (17,825 bytes)   
Index: scribus/pagepalette.cpp
===================================================================
--- scribus/pagepalette.cpp	(révision 16614)
+++ scribus/pagepalette.cpp	(copie de travail)
@@ -643,8 +643,8 @@
 	{
 		bool oldMPMode = currView->Doc->masterPageMode();
 		int  storedPageNum = currView->Doc->currentPageNumber();
-		int  storedViewXCoor = currView->horizontalScrollBar()->value();
-		int  storedViewYCoor = currView->verticalScrollBar()->value();
+		int  storedViewXCoor = currView->viewportPos().x();
+		int  storedViewYCoor = currView->viewportPos().y();
 
 		currView->Doc->setMasterPageMode(true);
 		currView->Doc->scMW()->DeletePage2(currView->Doc->MasterNames[tmp]);
Index: scribus/canvasgesture_rulermove.cpp
===================================================================
--- scribus/canvasgesture_rulermove.cpp	(révision 16614)
+++ scribus/canvasgesture_rulermove.cpp	(copie de travail)
@@ -159,7 +159,7 @@
 {
 	FPoint mousePointDoc = m_canvas->globalToCanvas(m->globalPos());
 	const int page = m_doc->OnPage(mousePointDoc.x(), mousePointDoc.y());
-	QRect viewport(m_view->viewport()->mapToGlobal(QPoint(0,0)), QSize(m_view->visibleWidth(), m_view->visibleHeight()));
+	QRect viewport(m_view->widget()->mapToGlobal(QPoint(0,0)), QSize(m_view->visibleWidth(), m_view->visibleHeight()));
 	QPoint newMousePoint = m->globalPos() - (m_canvas->mapToParent(QPoint(0, 0)) + m_canvas->parentWidget()->mapToGlobal(QPoint(0, 0)));
 	switch (m_mode)
 	{
Index: scribus/scribusview.h
===================================================================
--- scribus/scribusview.h	(révision 16614)
+++ scribus/scribusview.h	(copie de travail)
@@ -56,6 +56,8 @@
 #include <QWheelEvent>
 #include <QRubberBand>
 #include <QList>
+#include <QScrollBar>
+#include <QGridLayout>
 
 class QEvent;
 class QMimeData;
@@ -81,11 +83,42 @@
 class TransactionSettings;
 
 
+class SCRIBUS_API ScribusViewWidget : public QWidget
+{
+	Q_OBJECT
+
+	QGridLayout * viewLayout;
+	Canvas * canvas;
+	QSizeF canvasSize;
+	QScrollBar * m_verticalScrollBar;
+	QScrollBar * m_horizontalScrollBar;
+
+public:
+	ScribusViewWidget(QWidget * parent);
+	~ScribusViewWidget();
+
+	QScrollBar * verticalScrollBar() const{return m_verticalScrollBar;}
+	QScrollBar * horizontalScrollBar() const{return m_horizontalScrollBar;}
+
+	void setWidget(Canvas * c);
+	Canvas * widget() const;
+
+	void ensureVisible(int x, int y, int xmargin = 50, int ymargin = 50);
+	QPoint viewportPos() const;
+
+protected:
+	void scrollContentsBy ( int dx, int dy );
+
+private slots:
+	void viewportPosChange(int);
+
+};
+
 /**
  * This class provides an incomplete base for your application view.
  */
 
-class SCRIBUS_API ScribusView : public QScrollArea, public Observer<QRectF>
+class SCRIBUS_API ScribusView : public ScribusViewWidget, public Observer<QRectF>
 {
 	Q_OBJECT
 
@@ -257,8 +290,8 @@
 	int contentsWidth();
 	int contentsHeight();
 	void setContentsPos(int x, int y);
-	int visibleWidth() { return viewport()->size().width(); } ;
-	int visibleHeight() { return viewport()->size().height(); } ;
+	int visibleWidth() ;
+	int visibleHeight();
 	void stopAllDrags();
 	void scrollBy(int x, int y);
 	void zoom(double scale = 0.0);
Index: scribus/scribusview.cpp
===================================================================
--- scribus/scribusview.cpp	(révision 16614)
+++ scribus/scribusview.cpp	(copie de travail)
@@ -129,9 +129,68 @@
 using namespace std;
 
 
+ScribusViewWidget::ScribusViewWidget(QWidget *parent):
+		QWidget(parent),
+		canvas(0)
+{
+	m_verticalScrollBar = new QScrollBar(Qt::Vertical, this);
+	m_horizontalScrollBar = new QScrollBar(Qt::Horizontal, this);
+	viewLayout = new QGridLayout(this);
 
+	viewLayout->addWidget(m_verticalScrollBar, 0, 1);
+	viewLayout->addWidget(m_horizontalScrollBar, 1,0);
+
+	connect(m_horizontalScrollBar, SIGNAL(valueChanged(int)), this, SLOT(viewportPosChange(int)));
+	connect(m_verticalScrollBar, SIGNAL(valueChanged(int)), this, SLOT(viewportPosChange(int)));
+}
+
+ScribusViewWidget::~ScribusViewWidget()
+{
+
+}
+
+void ScribusViewWidget::setWidget(Canvas *c)
+{
+	canvas = c;
+	viewLayout->addWidget(canvas, 0,0);
+}
+
+Canvas * ScribusViewWidget::widget() const
+{
+	return canvas;
+}
+
+void ScribusViewWidget::ensureVisible(int x, int y, int xmargin, int ymargin)
+{
+	m_horizontalScrollBar->setValue(x - xmargin);
+	m_verticalScrollBar->setValue(y - ymargin);
+}
+
+QPoint ScribusViewWidget::viewportPos() const
+{
+	return QPoint(m_horizontalScrollBar->value(), m_verticalScrollBar->value());
+}
+
+
+void ScribusViewWidget::scrollContentsBy(int dx, int dy)
+{
+	if(dx != 0)
+		m_horizontalScrollBar->setValue(m_horizontalScrollBar->value() + dx);
+	if(dy != 0)
+		m_verticalScrollBar->setValue(m_verticalScrollBar->value() + dy);
+}
+
+void ScribusViewWidget::viewportPosChange(int)
+{
+	QRect uRect(m_horizontalScrollBar->value(), m_verticalScrollBar->value(),
+		    width(), height());
+	canvas->update(uRect);
+}
+
+
+
 ScribusView::ScribusView(QWidget* win, ScribusMainWindow* mw, ScribusDoc *doc) :
-	QScrollArea(win),
+	ScribusViewWidget(win),
 	Doc(doc),
 	m_canvas(new Canvas(doc, this)),
 	Prefs(&(PrefsManager::instance()->appPrefs)),
@@ -161,15 +220,15 @@
 	setObjectName("s");
 	setAttribute(Qt::WA_StaticContents);
 	setAttribute(Qt::WA_InputMethodEnabled, true);
-	setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
-	setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
-	setViewportMargins(m_vhRulerHW, m_vhRulerHW, 0, 0);
-	setWidgetResizable(false);
+//	setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+//	setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+//	setViewportMargins(m_vhRulerHW, m_vhRulerHW, 0, 0);
+//	setWidgetResizable(false);
 	m_canvasMode = CanvasMode::createForAppMode(this, Doc->appMode);
 	setWidget(m_canvas);
 	//already done by QScrollArea: widget()->installEventFilter(this);
 	installEventFilter(this); // FIXME:av
-//	viewport()->setBackgroundMode(Qt::PaletteBackground);
+//	widget()->setBackgroundMode(Qt::PaletteBackground);
 	setFocusPolicy(Qt::ClickFocus);
 	QFont fo = QFont(font());
 	// #8058: Better not use too small font size on Windows
@@ -456,16 +515,16 @@
 	if (!re.isValid() && // dont check this all the time
 		( m_oldCanvasWidth != newCanvasWidth || m_oldCanvasHeight != newCanvasHeight))
 	{
-		QSize maxViewport = maximumViewportSize();
+//		QSize maxViewport = maximumViewportSize();
 		horizontalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.x() * scale),
-										qRound(Doc->maxCanvasCoordinate.x() * scale) - maxViewport.width());
+										qRound(Doc->maxCanvasCoordinate.x() * scale)/* - maxViewport.width()*/);
 		verticalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.y() * scale),
-									  qRound(Doc->maxCanvasCoordinate.y() * scale) - maxViewport.height());
+									  qRound(Doc->maxCanvasCoordinate.y() * scale) /*- maxViewport.height()*/);
 		/*	qDebug() << "adjustCanvas [" << m_oldCanvasWidth << m_oldCanvasHeight << " ] -> [" << newCanvasWidth << newCanvasHeight 
 				<< "] (" << Doc->minCanvasCoordinate.x() << Doc->minCanvasCoordinate.y() << ") - ("
 				<< Doc->maxCanvasCoordinate.x() << Doc->maxCanvasCoordinate.y() << ") @" << scale << maxViewport;
 		*/
-		widget()->resize(newCanvasWidth, newCanvasHeight);
+//		widget()->resize(newCanvasWidth, newCanvasHeight);
 		m_oldCanvasWidth = newCanvasWidth;
 		m_oldCanvasHeight = newCanvasHeight;
 	}
@@ -637,7 +696,7 @@
 		evSpon = true;
 	#endif
 	QScrollArea::paintEvent(p);
-//	QPainter qp(viewport());
+//	QPainter qp(widget());
 //	drawContents(&qp, p->rect().x(), p->rect().y(), p->rect().width(), p->rect().height());
 }
 */
@@ -773,7 +832,7 @@
 			DraggedGroup = true;
 			DraggedGroupFirst = true;
 			getDragRectScreen(&gx, &gy, &gw, &gh);
-//			QPoint evP = viewport()->mapToGlobal(e->pos());
+//			QPoint evP = widget()->mapToGlobal(e->pos());
 //			evP -= QPoint(contentsX(), contentsY());
 //			redrawMarker->setGeometry(QRect(evP.x() + 1, evP.y() + 1, qRound(gw), qRound(gh)).normalized());
 //			if (!redrawMarker->isVisible())
@@ -800,7 +859,7 @@
 			dragX = dragPosDoc.x(); //e->pos().x() / m_canvas->scale();
 			dragY = dragPosDoc.y(); //e->pos().y() / m_canvas->scale();
 //			getDragRectScreen(&gx, &gy, &gw, &gh);
-//			QPoint evP = viewport()->mapToGlobal(e->pos());
+//			QPoint evP = widget()->mapToGlobal(e->pos());
 //			evP -= QPoint(contentsX(), contentsY());
 //			redrawMarker->setGeometry(QRect(evP.x() + 2, evP.y() + 2, qRound(gw - 2), qRound(gh - 2)).normalized());
 //			if (!redrawMarker->isVisible())
@@ -2314,7 +2373,7 @@
 void ScribusView::resizeEvent ( QResizeEvent * event )
 {
 // 	qDebug() << "ScribusView::resizeEvent";
-	QScrollArea::resizeEvent(event);
+	ScribusViewWidget::resizeEvent(event);
 	horizRuler->setGeometry(m_vhRulerHW, 1, width()-m_vhRulerHW-1, m_vhRulerHW);
 	vertRuler->setGeometry(1, m_vhRulerHW, m_vhRulerHW, height()-m_vhRulerHW-1);
 	rulerMover->setGeometry(1, 1, m_vhRulerHW, m_vhRulerHW);
@@ -2527,7 +2586,7 @@
 {
 	updateOn = on;
 	setUpdatesEnabled(on);
-	viewport()->setUpdatesEnabled(on);
+	widget()->setUpdatesEnabled(on);
 }
 
 
@@ -2573,12 +2632,12 @@
 		}
 		// enlarge the rectangle when rounding to int:
 		m_canvas->update(static_cast<int>(x), static_cast<int>(y),
-						 qMin(qRound(h + 0.5), viewport()->width()),
-						 qMin(qRound(w + 0.5), viewport()->height()));
+						 qMin(qRound(h + 0.5), widget()->width()),
+						 qMin(qRound(w + 0.5), widget()->height()));
 */	}
 	else
 	{
-		m_canvas->update(horizontalScrollBar()->value(), verticalScrollBar()->value(), viewport()->width(), viewport()->height());
+		m_canvas->update(horizontalScrollBar()->value(), verticalScrollBar()->value(), widget()->width(), widget()->height());
 	}
 }
 
@@ -2592,11 +2651,11 @@
 	horizontalScrollBar()->setValue(qRound(x * scale));
 	verticalScrollBar()->setValue(qRound(y * scale));
 	// fix ranges
-	QSize maxViewport = maximumViewportSize();
+//	QSize maxViewport = maximumViewportSize();
 	horizontalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.x() * scale),
-									qRound(Doc->maxCanvasCoordinate.x() * scale) - maxViewport.width());
+									qRound(Doc->maxCanvasCoordinate.x() * scale) /*- maxViewport.width()*/);
 	verticalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.y() * scale),
-								  qRound(Doc->maxCanvasCoordinate.y() * scale) - maxViewport.height());
+								  qRound(Doc->maxCanvasCoordinate.y() * scale) /*- maxViewport.height()*/);
 }
 
 
@@ -2606,8 +2665,8 @@
 void ScribusView::setCanvasCenter(double x, double y)
 {
 	double scale = m_canvas->scale();
-	setCanvasOrigin(x - viewport()->width() / scale,
-					y - viewport()->height() / scale);
+	setCanvasOrigin(x - widget()->width() / scale,
+					y - widget()->height() / scale);
 }
 
 /*!
@@ -2640,8 +2699,8 @@
 	double scale = m_canvas->scale();
 	return QRectF(horizontalScrollBar()->value() / scale,
 				  verticalScrollBar()->value() / scale,
-				  viewport()->width() / scale,
-				  viewport()->height() / scale);
+				  widget()->width() / scale,
+				  widget()->height() / scale);
 }
 
 
@@ -2811,7 +2870,7 @@
 	if (m_ScMW->scriptIsRunning())
 		return;
 	QPoint nx = m_canvas->canvasToLocal(FPoint(x, y));
-	QSize viewsize = viewport()->size();
+	QSize viewsize = widget()->size();
 //	qDebug() << "setCCPo" << nx << viewsize;
 	setContentsPos(nx.x() - viewsize.width() / 2, nx.y() - viewsize.height() / 2);
 }
@@ -3132,7 +3191,7 @@
 #if 0
 void ScribusView::rulerMove(QMouseEvent *m)
 {
-	QPoint py(viewport()->mapFromGlobal(m->globalPos()));
+	QPoint py(widget()->mapFromGlobal(m->globalPos()));
 	int newY = py.y();
 	int newX = py.x();
 	QPoint out = viewportToContents(py);
@@ -3148,7 +3207,7 @@
 
 void ScribusView::setNewRulerOrigin(QMouseEvent *m)
 {
-	QPoint py = viewport()->mapFromGlobal(m->globalPos());
+	QPoint py = widget()->mapFromGlobal(m->globalPos());
 	Doc->rulerXoffset = (py.x() + contentsX()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.x();
 	Doc->rulerYoffset = (py.y() + contentsY()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.y();
 	if (Doc->guidesSettings.rulerMode)
@@ -3176,7 +3235,7 @@
 #if 0
 void ScribusView::FromHRuler(QMouseEvent *m)
 {
-	QPoint py = viewport()->mapFromGlobal(m->globalPos());
+	QPoint py = widget()->mapFromGlobal(m->globalPos());
 	int newY = py.y();
 	QPoint out = viewportToContents(py);
 	emit MousePos((py.x() + contentsX())/m_canvas->scale(), (py.y() + 2 + contentsY())/m_canvas->scale());
@@ -3185,7 +3244,7 @@
 	if (!redrawMarker->isVisible())
 		redrawMarker->show();
 	if (QRect(0, 0, visibleWidth(), visibleHeight()).contains(py))
-		redrawMarker->setGeometry(QRect(viewport()->mapToGlobal(QPoint(0, 0)).x(), m->globalPos().y(), visibleWidth(), 1));
+		redrawMarker->setGeometry(QRect(widget()->mapToGlobal(QPoint(0, 0)).x(), m->globalPos().y(), visibleWidth(), 1));
 	DrHY = newY;
 	double newXp = (py.x() + contentsX()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.x();
 	double newYp = (py.y() + contentsY()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.y();
@@ -3198,7 +3257,7 @@
 
 void ScribusView::FromVRuler(QMouseEvent *m)
 {
-	QPoint py = viewport()->mapFromGlobal(m->globalPos());
+	QPoint py = widget()->mapFromGlobal(m->globalPos());
 	int newY = py.x();
 	QPoint out = viewportToContents(py);
 	emit MousePos((py.x() + 2 + contentsX())/m_canvas->scale(), (py.y() + contentsY())/m_canvas->scale());
@@ -3207,7 +3266,7 @@
 	if (!redrawMarker->isVisible())
 		redrawMarker->show();
 	if (QRect(0, 0, visibleWidth(), visibleHeight()).contains(py))
-		redrawMarker->setGeometry(QRect(m->globalPos().x(), viewport()->mapToGlobal(QPoint(0, 0)).y(), 1, visibleHeight()));
+		redrawMarker->setGeometry(QRect(m->globalPos().x(), widget()->mapToGlobal(QPoint(0, 0)).y(), 1, visibleHeight()));
 	DrVX = newY;
 	double newXp = (py.x() + contentsX()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.x();
 	double newYp = (py.y() + contentsY()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.y();
@@ -3223,7 +3282,7 @@
 // TODO: PV - guides refactoring
 void ScribusView::SetYGuide(QMouseEvent *m, int oldIndex)
 {
-	QPoint py = viewport()->mapFromGlobal(m->globalPos());
+	QPoint py = widget()->mapFromGlobal(m->globalPos());
 	double newX = (py.x() + contentsX()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.x();
 	double newY = (py.y() + contentsY()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.y();
 	int pg = Doc->OnPage(newX, newY);
@@ -3286,7 +3345,7 @@
 
 void ScribusView::SetXGuide(QMouseEvent *m, int oldIndex)
 {
-	QPoint py = viewport()->mapFromGlobal(m->globalPos());
+	QPoint py = widget()->mapFromGlobal(m->globalPos());
 	double newX = (py.x() + contentsX()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.x();
 	double newY = (py.y() + contentsY()) / m_canvas->scale() + 0*Doc->minCanvasCoordinate.y();
 	int pg = Doc->OnPage(newX, newY);
@@ -4720,7 +4779,7 @@
 	horizRuler->setShown(isShown);
 	rulerMover->setShown(isShown);
 	int newTopLeftMargin = isShown ? m_vhRulerHW : 0;
-	setViewportMargins(newTopLeftMargin, newTopLeftMargin, 0, 0);
+//	setViewportMargins(newTopLeftMargin, newTopLeftMargin, 0, 0);
 }
 
 void ScribusView::slotUpdateContents()  // deprecated
@@ -4840,7 +4899,7 @@
 	// hruler events
 	// vruler events
 
-	return QScrollArea::eventFilter(obj, event);
+	return ScribusViewWidget::eventFilter(obj, event);
 }
 
 //Legacy
@@ -4876,12 +4935,12 @@
 
 QPoint ScribusView::contentsToViewport(QPoint p) // deprecated
 {
-	return p + viewport()->pos();
+	return p + widget()->pos();
 }
 
 QPoint ScribusView::viewportToContents(QPoint p) // deprecated
 {
-	return p - viewport()->pos();
+	return p - widget()->pos();
 }
 
 int ScribusView::contentsX() // deprecated
@@ -4913,10 +4972,19 @@
 	setRulerPos(contentsX(), contentsY());
 }
 
+int ScribusView::visibleWidth()
+{
+	return widget()->size().width();
+}
 
+int ScribusView::visibleHeight()
+{
+	return widget()->size().height();
+}
+
 void ScribusView::scrollContentsBy(int dx, int dy)
 {
-	QScrollArea::scrollContentsBy (dx, dy);
+	scrollContentsBy (dx, dy);
 	setRulerPos(contentsX(), contentsY());
 }
 
@@ -4952,10 +5020,10 @@
 	int nh = qMax(qRound((Doc->maxCanvasCoordinate.y() - Doc->minCanvasCoordinate.y()) * m_canvas->scale()), visibleHeight());
 	resizeContents(nw, nh); // FIXME : should be avoided here, cause an unnecessary paintEvent despite updates disabled
 	if (preservePoint)
-		canvasPoint = viewport()->mapFromGlobal(globalPoint);
+		canvasPoint = widget()->mapFromGlobal(globalPoint);
 	else
 	{
-		QSize viewsize = viewport()->size();
+		QSize viewsize = widget()->size();
 		canvasPoint = QPoint(viewsize.width() / 2, viewsize.height() / 2);
 	}
 	setContentsPos(localPoint.x() - canvasPoint.x(), localPoint.y() - canvasPoint.y());
Index: scribus/pageitem_textframe.cpp
===================================================================
--- scribus/pageitem_textframe.cpp	(révision 16614)
+++ scribus/pageitem_textframe.cpp	(copie de travail)
@@ -1907,8 +1907,8 @@
 							}
 							else
 							{
-								--a;
-								--current.itemsInLine;
+								a = current.line.firstItem - 1;
+								current.itemsInLine = 0;
 							}
 						}
 						if (a >= 0)
Index: scribus/canvas.cpp
===================================================================
--- scribus/canvas.cpp	(révision 16614)
+++ scribus/canvas.cpp	(copie de travail)
@@ -585,7 +585,7 @@
 bool Canvas::adjustBuffer()
 {
 	bool ret = false;
-	QRect viewport(-x(), -y(), m_view->viewport()->width(), m_view->viewport()->height());
+	QRect viewport(-x(), -y(), m_view->widget()->width(), m_view->widget()->height());
 // 	qDebug()<<"Canvas::adjustBuffer"<<viewport<<m_viewMode.forceRedraw<<m_viewMode.operItemSelecting;
 	QPoint minCanvasCoordinate = canvasToLocal(QPointF(0.0, 0.0));
 	if (minCanvasCoordinate != m_oldMinCanvasCoordinate)
9892.diff (17,825 bytes)   

cbradney

2011-07-20 19:36

administrator   ~0026617

This could be fixed ok with the Lion upgrade.. currently looks like it.

cbradney

2011-07-20 20:54

administrator   ~0026618

nm.. still broken

skyle

2011-08-10 15:20

reporter   ~0026698

Still broken after 6 months and update to MAC OS 10.7 (LION). If your document is a serious one, like 100 pages in my case, you'll have to look at the last page at 10% zoom. Have you ever tried to lay out a page at that zoom. I felt like I was in the middle of an SNL or Monty Python skit.

I am going to continue to try and use this program for personal stuff like announcements or newsletters to get used to it so that if it ever comes around for professional work I'll be ready to use it more seriously. I do think it is a good start and is still in version 1x so that's not so bad. I also really like the idea of Open Source.

ale

2011-08-10 16:24

manager   ~0026701

skyle, this is one of the issues which are blocking the release of 1.4!

peter: what are the evidences that it's not a os x specific issue? i haven't heard of anybody having seen this bug...

cbradney

2011-08-10 19:07

administrator   ~0026704

Last edited: 2011-08-10 19:08

skyle.. someone is actually working on this.. it requires a rewrite of various parts of the canvas code. it could take awhile. Its working around OSX vs Qt canvas sizing. OSX is forcing a certain size that is too small for the pages.

skyle

2011-08-11 23:53

reporter   ~0026708

How does adobe size their canvas? It seem to remember that you could set the artboard size in one of their products. Could that be done with Scribus-give the user a setting in the preferences to set. But then why wouldn't it just be as large as it needs to be for, say a 500 page document at 11" high per page. What happens to the normal view if the canvas is enormous? If that is a problem can't it just be a variable of the zoom? -2x zoom --> 2x canvas size, etc.
This is interesting. I like to know what road you're going down as I might be able to help since I know nothing about programming or C++ or Qt.

JLuc

2011-10-12 22:35

developer   ~0027014

On windows 7, it might be "the contrary" : on a 30 pages document, when displaying the last page, the scrollcursor is only at the middle of the whole scrollbar and i can go down down far away down displaying nothing anymore. It is the same and consistent at all scales however.

cbradney

2013-09-04 20:27

administrator   ~0030556

Fixed with the move to Qt5

Issue History

Date Modified Username Field Change
2011-03-30 11:58 eMate New Issue
2011-03-30 11:58 eMate File Added: Lecture.sla
2011-03-30 18:14 jghali Note Added: 0025983
2011-03-30 18:30 cbradney Relationship added related to 0009824
2011-03-30 21:13 su-v Note Added: 0025984
2011-04-05 21:04 cbradney Target Version => 1.4.0
2011-04-05 22:09 cbradney Note Added: 0026008
2011-04-05 22:09 cbradney Note Edited: 0026008
2011-04-06 06:18 eMate Note Added: 0026011
2011-04-06 20:06 bubu Note Added: 0026014
2011-04-06 20:27 su-v Note Added: 0026015
2011-04-06 20:29 su-v Note Edited: 0026015
2011-04-25 13:19 cbradney Relationship added has duplicate 0009961
2011-04-25 16:39 sonne Note Added: 0026147
2011-05-12 14:54 plinnell Note Added: 0026199
2011-05-12 14:54 plinnell Assigned To => pierremarchand
2011-05-12 14:54 plinnell Status new => assigned
2011-05-28 11:02 jghali Relationship added has duplicate 0010008
2011-06-03 10:25 plinnell File Added: 9892.diff
2011-06-17 06:17 jghali Relationship added has duplicate 0010055
2011-07-20 19:36 cbradney Note Added: 0026617
2011-07-20 20:54 cbradney Note Added: 0026618
2011-08-10 15:20 skyle Note Added: 0026698
2011-08-10 16:24 ale Note Added: 0026701
2011-08-10 19:07 cbradney Note Added: 0026704
2011-08-10 19:08 cbradney Note Edited: 0026704
2011-08-11 23:03 cbradney Assigned To pierremarchand => avox
2011-08-11 23:53 skyle Note Added: 0026708
2011-10-12 22:35 JLuc Note Added: 0027014
2011-11-24 20:31 cbradney Issue cloned: 0010396
2011-11-24 20:31 cbradney Relationship added parent of 0010396
2011-11-25 20:18 cbradney Target Version 1.4.0 => 1.4.1
2012-01-02 09:35 jghali Relationship added has duplicate 0010471
2012-04-29 21:13 cbradney Target Version 1.4.1 => 1.4.2
2013-01-13 21:34 cbradney Target Version 1.4.2 => 1.4.3
2013-07-04 20:25 cbradney Target Version 1.4.3 => 1.5.0
2013-09-04 20:27 cbradney Note Added: 0030556
2013-09-04 20:27 cbradney Status assigned => resolved
2013-09-04 20:27 cbradney Fixed in Version => 1.5.0svn
2013-09-04 20:27 cbradney Resolution open => fixed
2013-09-04 20:27 cbradney Assigned To avox => cbradney
2013-09-19 18:40 cbradney Status resolved => closed