r17212 by craig - #4828: Allow undo/redo of moving pages

scribus-commit scribus-commit at lists.scribus.net
Wed Jan 18 21:41:00 UTC 2012


Author: craig
Date: Wed Jan 18 21:40:59 2012
New Revision: 17212

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=17212
Log:
#4828: Allow undo/redo of moving pages

Modified:
    branches/Version14x/Scribus/scribus/actionmanager.cpp
    branches/Version14x/Scribus/scribus/masterpagepalette.cpp
    branches/Version14x/Scribus/scribus/pagepalette.cpp
    branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmddoc.cpp
    branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmdpage.cpp
    branches/Version14x/Scribus/scribus/scribus.cpp
    branches/Version14x/Scribus/scribus/scribus.h
    branches/Version14x/Scribus/scribus/scribusdoc.cpp
    branches/Version14x/Scribus/scribus/scribusdoc.h
    branches/Version14x/Scribus/scribus/scribusview.cpp
    branches/Version14x/Scribus/scribus/scribusview.h
    branches/Version14x/Scribus/scribus/undomanager.cpp
    branches/Version14x/Scribus/scribus/undomanager.h

Modified: branches/Version14x/Scribus/scribus/actionmanager.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/actionmanager.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/actionmanager.cpp (original)
+++ branches/Version14x/Scribus/scribus/actionmanager.cpp Wed Jan 18 21:40:59 2012
@@ -534,9 +534,9 @@
 
 	connect( (*scrActions)["pageInsert"], SIGNAL(triggered()), mainWindow, SLOT(slotNewPageM()) );
 	connect( (*scrActions)["pageImport"], SIGNAL(triggered()), mainWindow, SLOT(slotPageImport()) );
-	connect( (*scrActions)["pageDelete"], SIGNAL(triggered()), mainWindow, SLOT(DeletePage()) );
-	connect( (*scrActions)["pageCopy"], SIGNAL(triggered()), mainWindow, SLOT(CopyPage()) );
-	connect( (*scrActions)["pageMove"], SIGNAL(triggered()), mainWindow, SLOT(MovePage()) );
+	connect( (*scrActions)["pageDelete"], SIGNAL(triggered()), mainWindow, SLOT(deletePage()) );
+	connect( (*scrActions)["pageCopy"], SIGNAL(triggered()), mainWindow, SLOT(copyPage()) );
+	connect( (*scrActions)["pageMove"], SIGNAL(triggered()), mainWindow, SLOT(movePage()) );
 	connect( (*scrActions)["pageApplyMasterPage"], SIGNAL(triggered()), mainWindow, SLOT(ApplyMasterPage()) );
 	connect( (*scrActions)["pageCopyToMasterPage"], SIGNAL(triggered()), mainWindow, SLOT(duplicateToMasterPage()) );
 	connect( (*scrActions)["pageManageMargins"], SIGNAL(triggered()), mainWindow, SLOT(changePageMargins()) );

Modified: branches/Version14x/Scribus/scribus/masterpagepalette.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/masterpagepalette.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/masterpagepalette.cpp (original)
+++ branches/Version14x/Scribus/scribus/masterpagepalette.cpp Wed Jan 18 21:40:59 2012
@@ -153,7 +153,7 @@
 
 		if (currentDoc->appMode == modeEditClip)
 			currentView->requestMode(submodeEndNodeEdit);
-		currentDoc->scMW()->DeletePage2(currentDoc->MasterNames[sMuster]);
+		currentDoc->scMW()->deletePage2(currentDoc->MasterNames[sMuster]);
 		//<<CB TODO Move back into ScribusDoc::deleteMasterPage();
 		//This must happen after the pages have been reformed (view/doc)
 		currentDoc->rebuildMasterNames();

Modified: branches/Version14x/Scribus/scribus/pagepalette.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/pagepalette.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/pagepalette.cpp (original)
+++ branches/Version14x/Scribus/scribus/pagepalette.cpp Wed Jan 18 21:40:59 2012
@@ -620,8 +620,8 @@
 	connect(this, SIGNAL(EditTemp(QString)), m_scMW, SLOT(manageMasterPages(QString)));
 	connect(pageView, SIGNAL(UseTemp(QString, int)), m_scMW, SLOT(Apply_MasterPage(QString, int)));
 	connect(pageView, SIGNAL(NewPage(int, QString)), m_scMW, SLOT(slotNewPageP(int, QString)));
-	connect(Trash, SIGNAL(DelPage(int)), m_scMW, SLOT(DeletePage2(int)));
-	connect(pageView, SIGNAL(DelPage(int)), m_scMW, SLOT(DeletePage2(int)));
+	connect(Trash, SIGNAL(DelPage(int)), m_scMW, SLOT(deletePage2(int)));
+	connect(pageView, SIGNAL(DelPage(int)), m_scMW, SLOT(deletePage2(int)));
 	connect(this, SIGNAL(gotoPage(int)), m_scMW, SLOT(selectPagesFromOutlines(int)));
 }
 
@@ -647,7 +647,7 @@
 		int  storedViewYCoor = currView->verticalScrollBar()->value();
 
 		currView->Doc->setMasterPageMode(true);
-		currView->Doc->scMW()->DeletePage2(currView->Doc->MasterNames[tmp]);
+		currView->Doc->scMW()->deletePage2(currView->Doc->MasterNames[tmp]);
 		//<<CB TODO Move back into ScribusDoc::deleteMasterPage();
 		//This must happen after the pages have been reformed (view/doc)
 		currView->Doc->rebuildMasterNames();

Modified: branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmddoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmddoc.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmddoc.cpp (original)
+++ branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmddoc.cpp Wed Jan 18 21:40:59 2012
@@ -360,7 +360,7 @@
 	}
 	bool oldMode = ScCore->primaryMainWindow()->doc->masterPageMode();
 	ScCore->primaryMainWindow()->doc->setMasterPageMode(true);
-	ScCore->primaryMainWindow()->DeletePage2(ScCore->primaryMainWindow()->doc->MasterNames[masterPageName]);
+	ScCore->primaryMainWindow()->deletePage2(ScCore->primaryMainWindow()->doc->MasterNames[masterPageName]);
 	ScCore->primaryMainWindow()->doc->setMasterPageMode(oldMode);
 //	Py_INCREF(Py_None);
 //	return Py_None;

Modified: branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmdpage.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmdpage.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmdpage.cpp (original)
+++ branches/Version14x/Scribus/scribus/plugins/scriptplugin/cmdpage.cpp Wed Jan 18 21:40:59 2012
@@ -81,7 +81,7 @@
 		PyErr_SetString(PyExc_IndexError, QObject::tr("Page number out of range.","python error").toLocal8Bit().constData());
 		return NULL;
 	}
-	ScCore->primaryMainWindow()->DeletePage2(e);
+	ScCore->primaryMainWindow()->deletePage2(e);
 // 	Py_INCREF(Py_None);
 // 	return Py_None;
 	Py_RETURN_NONE;

Modified: branches/Version14x/Scribus/scribus/scribus.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/scribus.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/scribus.cpp (original)
+++ branches/Version14x/Scribus/scribus/scribus.cpp Wed Jan 18 21:40:59 2012
@@ -5701,10 +5701,7 @@
 	else
 		doc->addPageToSection(wo+1, where, 1);
 	doc->changed();
-	if (outlinePalette->isVisible())
-		outlinePalette->BuildTree();
-	pagePalette->rebuildPages();
-	view->DrawNew();
+	updateGUIAfterPagesChanged();
 }
 
 /** Erzeugt eine neue Seite */
@@ -5830,11 +5827,8 @@
 	//Use wo, the dialog currently returns a page Index +1 due to old numbering scheme, function now does the -1 as required
 	doc->changed();
 	doc->addPageToSection(wo, where, numPages);
-	pagePalette->rebuildPages();
-	view->reformPages(mov);
-	view->DrawNew();
-	if (outlinePalette->isVisible())
-		outlinePalette->BuildTree();
+	doc->reformPages();
+	updateGUIAfterPagesChanged();
 
 	undoManager->setUndoEnabled(true);
 
@@ -6857,28 +6851,28 @@
 }
 
 //CB-->Doc partly
-void ScribusMainWindow::DeletePage2(int pg)
+void ScribusMainWindow::deletePage2(int pg)
 {
 	if (HaveDoc && doc->appMode == modeEditClip)
 		view->requestMode(submodeEndNodeEdit);
 	view->Deselect(true);
 	if (doc->Pages->count() == 1)
 		return;
-	DeletePage(pg+1, pg+1);
-}
-
-void ScribusMainWindow::DeletePage()
+	deletePage(pg+1, pg+1);
+}
+
+void ScribusMainWindow::deletePage()
 {
 	if (HaveDoc && doc->appMode == modeEditClip)
 		view->requestMode(submodeEndNodeEdit);
 	view->Deselect(true);
 	DelPages *dia = new DelPages(this, doc->currentPage()->pageNr()+1, doc->Pages->count());
 	if (dia->exec())
-		DeletePage(dia->getFromPage(), dia->getToPage());
+		deletePage(dia->getFromPage(), dia->getToPage());
 	delete dia;
 }
 
-void ScribusMainWindow::DeletePage(int from, int to)
+void ScribusMainWindow::deletePage(int from, int to)
 {
 	UndoTransaction* activeTransaction = NULL;
 	assert( from > 0 );
@@ -6946,14 +6940,11 @@
 			doc->removePageFromSection(a);
 	}
 	undoManager->setUndoEnabled(false); // ugly hack to disable object moving when undoing page deletion
-	view->reformPages();
+	view->reformPagesView();
 	undoManager->setUndoEnabled(true); // ugly hack continues
 	view->GotoPage(qMin(doc->Pages->count()-1, oldPg));
-	view->DrawNew();
-	if (outlinePalette->isVisible())
-		outlinePalette->BuildTree();
+	updateGUIAfterPagesChanged();
 	doc->rebuildMasterNames();
-	pagePalette->rebuildPages();
 	pagePalette->rebuildMasters();
 	if (activeTransaction)
 	{
@@ -6963,7 +6954,7 @@
 	}
 }
 
-void ScribusMainWindow::MovePage()
+void ScribusMainWindow::movePage()
 {
 	if (HaveDoc && doc->appMode == modeEditClip)
 		view->requestMode(submodeEndNodeEdit);
@@ -6977,17 +6968,13 @@
 		if (from != wo || (wie == 2 && to != signed(doc->Pages->count()) ) )
 		{
 			doc->movePage(from-1, to, wo-1, wie);
-			view->reformPages();
-			view->DrawNew();
-			pagePalette->rebuildPages();
-			if (outlinePalette->isVisible())
-				outlinePalette->BuildTree();
+			updateGUIAfterPagesChanged();
 		}
 	}
 	delete dia;
 }
 
-void ScribusMainWindow::CopyPage()
+void ScribusMainWindow::copyPage()
 {
 	if (HaveDoc && doc->appMode == modeEditClip)
 		view->requestMode(submodeEndNodeEdit);
@@ -7000,10 +6987,7 @@
 		int wo = dia->getWherePage();
 		doc->copyPage(pageNumberToCopy, wo, whereToInsert, copyCount);
 		view->Deselect(true);
-		view->DrawNew();
-		pagePalette->rebuildPages();
-		if (outlinePalette->isVisible())
-			outlinePalette->BuildTree();
+		updateGUIAfterPagesChanged();
 	}
 	delete dia;
 }
@@ -8485,7 +8469,7 @@
 			storedViewScale = view->scale();
 			MasterPagesPalette *dia = new MasterPagesPalette(this, doc, view, temp);
 			//connect(dia, SIGNAL(createNew(int)), this, SLOT(slotNewMasterPage(int)));
-			connect(dia, SIGNAL(removePage(int )), this, SLOT(DeletePage2(int )));
+			connect(dia, SIGNAL(removePage(int )), this, SLOT(deletePage2(int )));
 			//connect(dia, SIGNAL(loadPage(QString, int, bool)), this, SLOT(loadPage(QString, int, bool)));
 			connect(dia, SIGNAL(finished()), this, SLOT(manageMasterPagesEnd()));
 			scrActions["pageInsert"]->setEnabled(false);
@@ -8734,7 +8718,7 @@
 		uint id = static_cast<uint>(duo->getUId());
 		undoManager->replaceObject(doc->Pages->at(pagenr - 1)->getUId(), duo);
 		state->set("DUMMY_ID", id);
-		DeletePage(pagenr, pagenr);
+		deletePage(pagenr, pagenr);
 	}
 	if (!pageName.isEmpty() && !oldPageMode)
 	{
@@ -8793,7 +8777,7 @@
 		if (HaveDoc && doc->appMode == modeEditClip)
 			view->requestMode(submodeEndNodeEdit);
 		view->Deselect(true);
-		DeletePage(delFrom, delTo);
+		deletePage(delFrom, delTo);
 	}
 	else
 	{
@@ -9834,3 +9818,11 @@
 	scrMenuMgr->setMenuEnabled("InsertSpace", enabled);
 	scrMenuMgr->setMenuEnabled("InsertLigature", enabled);
 }
+
+void ScribusMainWindow::updateGUIAfterPagesChanged()
+{
+	view->DrawNew();
+	pagePalette->rebuildPages();
+	if (outlinePalette->isVisible())
+		outlinePalette->BuildTree();
+}

Modified: branches/Version14x/Scribus/scribus/scribus.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/scribus.h
==============================================================================
--- branches/Version14x/Scribus/scribus/scribus.h (original)
+++ branches/Version14x/Scribus/scribus/scribus.h Wed Jan 18 21:40:59 2012
@@ -376,17 +376,17 @@
 	void slotNewPage(int w, const QString& masterPageName=QString::null, bool mov = true);
 	void duplicateToMasterPage();
 	/** \brief Loescht die aktuelle Seite */
-	void DeletePage();
+	void deletePage();
 	/**
 	 * \brief Delete pages
 	 * @param from First page to delete
 	 * @param to Last page to delete
 	 */
-	void DeletePage(int from, int to);
-	void DeletePage2(int pg);
+	void deletePage(int from, int to);
+	void deletePage2(int pg);
 	/** \brief Verschiebt Seiten */
-	void MovePage();
-	void CopyPage();
+	void movePage();
+	void copyPage();
 	void changePageMargins();
 	/*!
 	\author Craig Bradney
@@ -545,6 +545,8 @@
 	void enableTextActions(QMap<QString, QPointer<ScrAction> > *actionMap, bool enabled, const QString& fontName=QString::null);
 	//! \brief allow SE to get the SM for edit stlyes
 	StyleManager *styleMgr() const {return styleManager;};
+	//! \brief drawnew, call palettes to update for new page layout
+	void updateGUIAfterPagesChanged();
 
 signals:
 	void TextStyle(const ParagraphStyle&);

Modified: branches/Version14x/Scribus/scribus/scribusdoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/scribusdoc.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/scribusdoc.cpp (original)
+++ branches/Version14x/Scribus/scribus/scribusdoc.cpp Wed Jan 18 21:40:59 2012
@@ -1426,8 +1426,10 @@
 		}
 		else if (ss->contains("OLD_MASTERPAGE"))
 			restoreMasterPageApplying(ss, isUndo);
-		else if (ss->contains("COPY_PAGE"))
-			restorePageCopy(ss, isUndo);
+		else if (ss->contains("PAGE_COPY"))
+			restoreCopyPage(ss, isUndo);
+		else if (ss->contains("PAGE_MOVE"))
+			restoreMovePage(ss, isUndo);
 		else if (ss->contains("PAGE_CHANGEPROPS"))
 		{
 			if (isUndo)
@@ -1944,38 +1946,88 @@
 	setCurrentPage(Pages->at(pageNumber!=0?0:1));
 	Page* page = Pages->takeAt(pageNumber);
 	delete page;
+	reformPages();
 	changed();
 }
 
 
-void ScribusDoc::movePage(const int from, const int to, const int ziel, const int art)
-{
-	QList<Page*> Buf;
-	int zz = ziel;
-	Buf.clear();
-	for (int a = from; a < to; ++a)
-	{
-		Buf.append(Pages->takeAt(from));
-		if (a <= zz)
-			--zz;
-	}
-	int bufCount=Buf.count();
-	switch (art)
-	{
-		case 0:
-			for (int b = 0; b < bufCount; ++b)
-				Pages->insert(zz++, Buf.at(b));
-			break;
-		case 1:
-			for (int b = 0; b < bufCount; ++b)
-				Pages->insert(++zz, Buf.at(b));
-			break;
-		case 2:
-			for (int b = 0; b < bufCount; ++b)
-				Pages->append(Buf.at(b));
-			break;
+void ScribusDoc::movePage(const int fromPage, const int toPage, const int dest, const int position)
+{
+	QList<Page*> pageList;
+	int numPages = dest;
+	for (int i = fromPage; i < toPage; ++i)
+	{
+		pageList.append(Pages->takeAt(fromPage));
+		if (i <= numPages)
+			--numPages;
+	}
+	int pageListCount=pageList.count();
+	switch (position)
+	{
+		case 0: //Before Page
+			for (int j = 0; j < pageListCount; ++j)
+				Pages->insert(numPages++, pageList.at(j));
+			break;
+		case 1: //After Page
+			for (int j = 0; j < pageListCount; ++j)
+				Pages->insert(++numPages, pageList.at(j));
+			break;
+		case 2: //To End
+			for (int j = 0; j < pageListCount; ++j)
+				Pages->append(pageList.at(j));
+			break;
+	}
+
+	if (UndoManager::undoEnabled())
+	{
+		SimpleState *ss = new SimpleState(Um::MovePage, "", Um::IDocument);
+		ss->set("PAGE_MOVE", "page_move");
+		ss->set("PAGE_MOVE_FROM", fromPage);
+		ss->set("PAGE_MOVE_TO", toPage);
+		ss->set("PAGE_MOVE_DEST", dest);
+		ss->set("PAGE_MOVE_NEWPOS", position);
+		undoManager->action(this, ss, DocName, Um::IDocument);
+	}
+	reformPages();
+	if (m_View && m_ScMW )
+	{
+		m_View->reformPagesView();
+		m_ScMW->updateGUIAfterPagesChanged();
 	}
 	changed();
+}
+
+void ScribusDoc::restoreMovePage(SimpleState *state, bool isUndo)
+{
+	int fromPage = state->getInt("PAGE_MOVE_FROM");
+	int toPage = state->getInt("PAGE_MOVE_TO");
+	int position = state->getInt("PAGE_MOVE_NEWPOS");
+	int dest = state->getInt("PAGE_MOVE_DEST");
+
+	if (isUndo)
+	{
+		int newPageDest=fromPage;
+		int newPageFrom=0;
+		int newPageTo  =0;
+		int newPosition=0;
+		int pagesMoved=toPage-fromPage;
+		switch (position)
+		{
+			case 0: //Before Page
+				newPageFrom=dest-pagesMoved;
+				break;
+			case 1: //After Page
+				newPageFrom=dest-pagesMoved+1;
+				break;
+			case 2: //To End
+				newPageFrom=Pages->count()-pagesMoved;
+				break;
+		}
+		newPageTo=newPageFrom+pagesMoved;
+		movePage(newPageFrom, newPageTo, newPageDest, newPosition);
+	}
+	else
+		movePage(fromPage, toPage, dest, position);
 }
 
 
@@ -3428,7 +3480,7 @@
 }
 
 
-void ScribusDoc::restorePageCopy(SimpleState *state, bool isUndo)
+void ScribusDoc::restoreCopyPage(SimpleState *state, bool isUndo)
 {
 	int pnum = state->getInt("PAGE_NUM");
 	int extPage = state->getInt("EXISTING_PAGE");
@@ -3444,7 +3496,7 @@
 			destLocation=DocPages.count();
 		for (int i = 0; i < copyCount; ++i)
 		{
-			m_ScMW->DeletePage(destLocation, destLocation);
+			m_ScMW->deletePage(destLocation, destLocation);
 			if (whereTo == 2)
 				--destLocation;
 		}
@@ -5078,7 +5130,7 @@
 {
 	UndoTransaction copyTransaction(undoManager->beginTransaction(getUName(), Um::IDocument, Um::CopyPage, "", Um::ICreate));
 	SimpleState *ss = new SimpleState(Um::Copy, "", Um::ICreate);
-	ss->set("COPY_PAGE", "copy_page");
+	ss->set("PAGE_COPY", "page_copy");
 	ss->set("PAGE_NUM", pageNumberToCopy);
 	ss->set("EXISTING_PAGE", existingPage);
 	ss->set("WHERE_TO", whereToInsert);
@@ -5177,8 +5229,10 @@
 				destination->initialMargins.Right = from->initialMargins.Right;
 			}
 		}
+		reformPages();
 		// FIXME: stop using m_View
-		m_View->reformPages();
+		if (m_View)
+			m_View->reformPagesView();
 		if (itemBuffer.count() > 0)
 		{
 			int lcount = 0;

Modified: branches/Version14x/Scribus/scribus/scribusdoc.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/scribusdoc.h
==============================================================================
--- branches/Version14x/Scribus/scribus/scribusdoc.h (original)
+++ branches/Version14x/Scribus/scribus/scribusdoc.h Wed Jan 18 21:40:59 2012
@@ -179,12 +179,12 @@
 	void setLocationBasedPageLRMargins(uint pageIndex);
 	/**
 	 * @brief Move page(s) within the document
-	 * @param from page index
-	 * @param to page index
-	 * @param ziel target to move to (page index)
-	 * @param art Before, After or at the end
-	 */
-	void movePage(const int from, const int to, const int ziel, const int art);
+	 * @param fromPage page index
+	 * @param toPage page index
+	 * @param count target to move to (page index)
+	 * @param position Before, After or at the end
+	 */
+	void movePage(const int fromPage, const int toPage, const int dest, const int position);
 	
 	/**
 	 * @brief Copy a page (pageNumberToCopy) copyCount times, whereToInsert(before or after) the existingPage or at the end.
@@ -554,7 +554,8 @@
 	 * @brief Undo function for applying a master page
 	 */
 	void restoreMasterPageApplying(SimpleState *state, bool isUndo);
-	void restorePageCopy(SimpleState *state, bool isUndo);
+	void restoreCopyPage(SimpleState *state, bool isUndo);
+	void restoreMovePage(SimpleState *state, bool isUndo);
 	/**
 	 * @brief Undo function for grouping/ungrouping
 	 */

Modified: branches/Version14x/Scribus/scribus/scribusview.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/scribusview.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/scribusview.cpp (original)
+++ branches/Version14x/Scribus/scribus/scribusview.cpp Wed Jan 18 21:40:59 2012
@@ -2523,7 +2523,7 @@
 }
 
 
-//CB This MUST now be called AFTER a call to doc->addPage or doc->addMasterPage as it
+//CB This MUST now be called AFTER a call to doc->addOage or doc->addMasterPage as it
 //does NOT create a page anymore.
 Page* ScribusView::addPage(int nr, bool mov)
 {
@@ -2555,6 +2555,11 @@
 void ScribusView::reformPages(bool moveObjects)
 {
 	Doc->reformPages(moveObjects);
+	reformPagesView();
+}
+
+void ScribusView::reformPagesView()
+{
 	if (!m_ScMW->scriptIsRunning())
 		setContentsPos(qRound((Doc->currentPage()->xOffset()-10 - 0*Doc->minCanvasCoordinate.x()) * m_canvas->scale()), qRound((Doc->currentPage()->yOffset()-10 - 0*Doc->minCanvasCoordinate.y()) * m_canvas->scale()));
 	if (!Doc->isLoading())

Modified: branches/Version14x/Scribus/scribus/scribusview.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/scribusview.h
==============================================================================
--- branches/Version14x/Scribus/scribus/scribusview.h (original)
+++ branches/Version14x/Scribus/scribus/scribusview.h Wed Jan 18 21:40:59 2012
@@ -167,6 +167,7 @@
 	Page* addPage(int nr, bool mov = true);
 
 	void reformPages(bool moveObjects = true);
+	void reformPagesView();
 	void updateLayerMenu();
 	void showMasterPage(int nr);
 	void hideMasterPage();

Modified: branches/Version14x/Scribus/scribus/undomanager.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/undomanager.cpp
==============================================================================
--- branches/Version14x/Scribus/scribus/undomanager.cpp (original)
+++ branches/Version14x/Scribus/scribus/undomanager.cpp Wed Jan 18 21:40:59 2012
@@ -931,10 +931,6 @@
 	UndoManager::EditShape          = tr("Edit shape");
 	UndoManager::ChangeShapeType    = tr("Change shape type");
 	UndoManager::ResetContourLine   = tr("Reset contour line");
-	UndoManager::AddPage            = tr("Add page");
-	UndoManager::AddPages           = tr("Add pages");
-	UndoManager::DeletePage         = tr("Delete page");
-	UndoManager::DeletePages        = tr("Delete pages");
 	UndoManager::ChangePageProps    = tr("Change page properties");
 	UndoManager::AddLayer           = tr("Add layer");
 	UndoManager::DuplicateLayer	    = tr("Duplicate layer %1");
@@ -969,7 +965,12 @@
 	UndoManager::RemoveAllGuides    = tr("Remove all guides");
 	UndoManager::RemoveAllPageGuides = tr("Remove page guides");
 	UndoManager::Copy               = tr("Copy");
+	UndoManager::AddPage            = tr("Add page");
 	UndoManager::CopyPage           = tr("Copy page");
+	UndoManager::DeletePage         = tr("Delete page");
+	UndoManager::MovePage           = tr("Move page");
+	UndoManager::AddPages           = tr("Add pages");
+	UndoManager::DeletePages        = tr("Delete pages");
 	UndoManager::ToOutlines         = tr("Convert to outlines");
 	UndoManager::EditText			= tr("Edit text");
 	UndoManager::ClearImage			= tr("Clear image frame content");
@@ -1188,6 +1189,7 @@
 QString UndoManager::ClearContent		= "";
 QString UndoManager::LinkTextFrame		= "";
 QString UndoManager::UnlinkTextFrame	= "";
+QString UndoManager::MovePage			= "";
 
 
 /*** Icons for UndoObjects *******************************************/

Modified: branches/Version14x/Scribus/scribus/undomanager.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=17212&path=/branches/Version14x/Scribus/scribus/undomanager.h
==============================================================================
--- branches/Version14x/Scribus/scribus/undomanager.h (original)
+++ branches/Version14x/Scribus/scribus/undomanager.h Wed Jan 18 21:40:59 2012
@@ -600,6 +600,7 @@
 	static QString ClearContent;
 	static QString LinkTextFrame;
 	static QString UnlinkTextFrame;
+	static QString MovePage;
 	/*@}*/
 
 	/**




More information about the scribus-commit mailing list