View Issue Details

IDProjectCategoryView StatusLast Update
0012515ScribusUser Interfacepublic2026-08-21 00:37
ReporterKunda Assigned To 
PrioritylowSeveritytweakReproducibilityhave not tried
Status newResolutionopen 
PlatformMacOSOSXOS Version10.8.5
Product Version1.5.0svn 
Target Version1.7 milestone 
Summary0012515: Suggestion to improve indication that Scribus is in Master Pages edit mode
DescriptionWhen I first started using Scribus, I had no idea what master pages were or how to use them. I didn't really know how to distinguish between normal edit mode and master page mode, save for a few indications:
1) Arrange page window would make it self prominent
2) 'End Edit' button shows up bottom left
3) I would exit the edit mode without making a change and scribus would exit back to the page it was on and I would see nothing, obviously.

My idea would be to make a more noticeable state change when editing in 'Master Page'. Something that would look unintrusive any yet give a more visual confirmation that we are indeed in a Master Page right now.
Idea:
* Colored vertical bar emphasizing Master Page mode (see attached)
* A semi-transparent diagonal repeating watermark across the background of the canvas saying 'Master Page Mode'
Tagsdiscussion, masterpage
Attached Files
Papier_milli_gris_a4_italien.svg (139,527 bytes)   
Papier_milli_gris_a4_italien.svg (139,527 bytes)   
papier millimétre.jpg (61,975 bytes)   
papier millimétre.jpg (61,975 bytes)   
MasterPageMode.jpg (39,948 bytes)   
MasterPageMode.jpg (39,948 bytes)   
Patch

Relationships

related to 0012108 closedfschmid Wrong caption for Edit Master Pages dialog 
related to 0013323 new button labels to exit masterpage edit mode 
related to 0012478 closed Notifying that Scribus is in Master Page mode if attempting to close Scribus 
related to 0013223 new make master pages editing stick out 
child of 0003837 acknowledged Metabug: Master pages/Page templates 

Activities

JLuc

2016-05-05 17:44

developer   ~0040801

Last edited: 2016-05-05 17:49

I understand your experience and share your feelings.

Colour is somewhat touchy to use with new monochrome black iconset

Changing the workspace could be done with changing the texture of the background
Instead of a uniform gray it could be some more textured background.

For example, free workspace could become some sort of millimeter paper (if you digital native know that awkward thing).

JLuc

2016-05-05 17:50

developer   ~0040802

Millimeter paper is used during the design of a work. Its connected to designing, layouting the structure, the measures, It fits the masterpages.

I uploaded some millimeter paper.

Kunda

2016-05-06 01:27

updater   ~0040809

Interesting.

PeterBenedek

2016-05-06 07:12

developer   ~0040813

Maybe... (MasterPageMode.jpg)

ale

2016-05-06 09:37

manager   ~0040821

peter's proposal looks nice (except for the bold :-)

something like this could generally be used for messages to be sent to the user.

and they could be stacked. some of them close automatically. other must be manually closed / discarded / never show such messages again. or similar.

Kunda

2016-05-23 12:15

updater   ~0041340

I think Peter's proposal also looks good. +1

ale

2016-11-18 13:30

manager   ~0042456

now that i look back at it... the only thing i'm a bit worried about is the lost of (precious) vertical pixels...

and we might replace the [end edit] button by a simpler [x].
it's not 100% obvious, but i guess that people will get that it does not just wipe away the message (a tooltip could make them happier...)

user4623

2016-11-18 21:39

  ~0042464

I checked how Adobe do it in Indesign. You have only 2 options to enter or leave the edit mode.

1. double click on master page icon in pages panel to enter // double click on normal pages to leave

2. in down left corner you can switch between pages via combo box, bottom entries are all master page templates.

Personally I would prefer to keep it in Scribus as it is or move the exit button to top left corner, because this area represent most important features. In RTL mode it should be in upper right corner.

BTW: Illustrator is using a breadcrumb to navigate in object groups and to leave the "edit mode". See Illustrator_group_breadcrumb.png

qirat

2026-08-19 16:02

reporter   ~0054233

This is what I could achieve. I avoid building stuff on the left and top sides because of rulers.

On the right, it does not eat vertical screen estate which (I agree with @ale) is very precious.
mp-master-page-mode-indicator.png (129,905 bytes)   
mp-master-page-mode-indicator.png (129,905 bytes)   
mp-masterpage-edit-indicator-v2.14.patch (16,340 bytes)   
Index: scribus/scribusview.h
===================================================================
--- scribus/scribusview.h	(revision 27773)
+++ scribus/scribusview.h	(working copy)
@@ -49,6 +49,7 @@
 #include <QWheelEvent>
 
 class QEvent;
+class QLabel;
 class QMenu;
 class QMimeData;
 
@@ -128,6 +129,10 @@
 	Vruler *vertRuler { nullptr };
 	ClockWidget *clockLabel { nullptr };
 	QPushButton *endEditButton { nullptr };
+	QLabel *masterModeStrip { nullptr };
+	QLabel *masterModeTab { nullptr };
+	QLabel *masterSideTab { nullptr };
+	QLabel *masterNameStrip { nullptr };
   /** Dokument zu dem die Seite gehoert */
 	ScribusDoc * const m_doc { nullptr };
 	Canvas * const m_canvas { nullptr };
@@ -166,6 +171,21 @@
 	void reformPagesView();
 	void showMasterPage(int nr);
 	void hideMasterPage();
+	/**
+	 * @brief Position the master page mode indicators against the current
+	 * viewport rectangle. Safe to call before they have been created.
+	 */
+	void updateMasterModeIndicators();
+	/**
+	 * @brief Refresh the master page name label and window caption from the
+	 * page currently being edited. No-op outside master page mode.
+	 */
+	void refreshMasterModeLabels();
+	/**
+	 * @brief The "Editing Master Page: <name>" text, shared by the window
+	 * caption and the status bar. Empty outside master page mode.
+	 */
+	QString masterModeLabelText() const;
 	void showSymbolPage(const QString& symbolName);
 	void hideSymbolPage();
 	void showInlinePage(int id);
Index: scribus/scribusview.cpp
===================================================================
--- scribus/scribusview.cpp	(revision 27773)
+++ scribus/scribusview.cpp	(working copy)
@@ -191,6 +191,56 @@
 	endEditButton->setGeometry(m_vhRulerHW + 1, height() - m_vhRulerHW - endEditButton->minimumSizeHint().height() - 1, endEditButton->minimumSizeHint().width(), endEditButton->minimumSizeHint().height());
 	endEditButton->setVisible(false);
 
+	// "Scribus 02" from the shipped Scribus_Splash swatch. The two blue
+	// indicators are styled by stylesheet so one rule carries both the
+	// colour and the tab's rounded corners.
+	const QString masterModeColor("rgb(28, 67, 199)");
+	const QString masterModeColorLight("rgb(74, 105, 210)");
+	const QString stripStyle = QString("background-color: %1;").arg(masterModeColor);
+	const QString tabStyle = QString("background-color: %1; color: white;"
+									 " border-top-left-radius: 4px;"
+									 " border-bottom-left-radius: 4px;").arg(masterModeColor);
+	// Same blue, lightened: the side is secondary to the mode itself.
+	const QString sideTabStyle = QString("background-color: %1; color: white;"
+										 " border-top-left-radius: 4px;"
+										 " border-bottom-left-radius: 4px;").arg(masterModeColorLight);
+
+	masterModeStrip = new QLabel(this);
+	masterModeStrip->setStyleSheet(stripStyle);
+	masterModeStrip->setAttribute(Qt::WA_TransparentForMouseEvents);
+	masterModeStrip->setVisible(false);
+
+	masterModeTab = new QLabel(this);
+	masterModeTab->setStyleSheet(tabStyle);
+	masterModeTab->setAlignment(Qt::AlignCenter);
+	masterModeTab->setAttribute(Qt::WA_TransparentForMouseEvents);
+	masterModeTab->setVisible(false);
+
+	masterSideTab = new QLabel(this);
+	masterSideTab->setStyleSheet(sideTabStyle);
+	masterSideTab->setAlignment(Qt::AlignCenter);
+	masterSideTab->setAttribute(Qt::WA_TransparentForMouseEvents);
+	masterSideTab->setVisible(false);
+
+	masterNameStrip = new QLabel(this);
+	masterNameStrip->setAlignment(Qt::AlignCenter);
+	// Border and background come from the palette rather than a QFrame, so the
+	// label's box can be sized to match the button exactly while still
+	// following the current theme's colours.
+	QPalette namePalette = masterNameStrip->palette();
+	masterNameStrip->setStyleSheet(QString("background-color: %1; color: %2;"
+										   " border: 1px solid %3; border-radius: 3px;")
+								   .arg(namePalette.color(QPalette::Button).name(),
+										namePalette.color(QPalette::ButtonText).name(),
+										namePalette.color(QPalette::Mid).name()));
+	masterNameStrip->setContentsMargins(8, 0, 8, 0);
+	masterNameStrip->setVisible(false);
+
+	masterModeStrip->setAccessibleName( tr("Master page editing mode") );
+	masterModeTab->setAccessibleName( tr("Master page editing mode") );
+	masterSideTab->setAccessibleName( tr("Master page side") );
+	masterNameStrip->setAccessibleName( tr("Master page being edited") );
+
 	languageChange();
 
 	connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
@@ -243,9 +293,21 @@
 	endEditButton->setIcon(iconManager.loadIcon("exit"));
 }
 
+// One letter per line: the tab is a narrow vertical strip, so the word
+// reads top to bottom rather than being rotated.
+static QString stackLetters(const QString& word)
+{
+	QStringList letters;
+	letters.reserve(word.length());
+	for (const QChar& letter : word)
+		letters.append(QString(letter));
+	return letters.join('\n');
+}
+
 void ScribusView::languageChange()
 {
 	endEditButton->setToolTip( tr("Click here to leave this special edit mode"));
+	updateMasterModeIndicators();
 }
 
 void ScribusView::toggleCMS(bool cmsOn)
@@ -1853,6 +1915,7 @@
 		clockLabel->setFixedSize(15, 15);
 	}
 	endEditButton->setGeometry(m_vhRulerHW + 1, height() - m_vhRulerHW - endEditButton->minimumSizeHint().height() - 1, endEditButton->minimumSizeHint().width(), endEditButton->minimumSizeHint().height());
+	updateMasterModeIndicators();
 	m_canvas->setForcedRedraw(true);
 	m_canvas->resetRenderMode();
 	// Per Qt doc, no painting should be done in a resizeEvent,
@@ -2009,6 +2072,10 @@
 		if (firstPage != -1)
 			newStatusBarText = (tr("Page %1 to %2").arg(firstPage).arg(lastPage));
 	}
+	// While editing a master page the page list holds master pages, so the
+	// page range above would count those; show the mode instead.
+	if (m_doc->masterPageMode() && m_doc->m_Selection->count() == 0)
+		newStatusBarText = masterModeLabelText();
 	m_ScMW->setStatusBarInfoText(newStatusBarText);
 }
 
@@ -2347,9 +2414,105 @@
 	setCanvasPos(m_doc->currentPage()->xOffset() - 10, m_doc->currentPage()->yOffset() - 10);
 	updateOn = true;
 	endEditButton->setVisible(true);
+
+	refreshMasterModeLabels();
+	masterModeStrip->setVisible(true);
+	masterModeTab->setVisible(true);
+	masterNameStrip->setVisible(true);
+	masterModeStrip->raise();
+	masterModeTab->raise();
+	masterSideTab->raise();
+	masterNameStrip->raise();
+	updateMasterModeIndicators();
+
 	DrawNew();
 }
 
+QString ScribusView::masterModeLabelText() const
+{
+	if (!m_doc || !m_doc->masterPageMode())
+		return QString();
+	return tr("Editing Master Page: %1").arg(m_doc->currentPage()->pageName());
+}
+
+void ScribusView::refreshMasterModeLabels()
+{
+	if (!m_doc || !masterNameStrip || !m_doc->masterPageMode())
+		return;
+
+	QString masterName = m_doc->currentPage()->pageName();
+	QFontMetrics nameMetrics(masterNameStrip->font());
+	int elideWidth = nameMetrics.averageCharWidth() * 28;
+	masterNameStrip->setText(nameMetrics.elidedText(masterName, Qt::ElideRight, elideWidth));
+	masterNameStrip->setToolTip(masterName);
+
+	// The side only means something where pages have sides at all. These are
+	// deliberately our own short words: Scribus's page-location strings read
+	// "Left Page"/"Right Page", which are far too tall stacked one letter
+	// per line.
+	QString sideName;
+	if (m_doc->pagePositioning() != singlePage)
+	{
+		int leftPg = m_doc->currentPage()->LeftPg;
+		if (leftPg == 1)
+			sideName = tr("LEFT", "Vertical tab label for a left hand master page");
+		else if (leftPg == 0)
+			sideName = tr("RIGHT", "Vertical tab label for a right hand master page");
+		else
+			sideName = tr("MIDDLE", "Vertical tab label for a middle master page");
+	}
+	masterSideTab->setText(sideName.isEmpty() ? QString() : stackLetters(sideName));
+	masterSideTab->setToolTip(sideName);
+
+	m_ScMW->setWindowCaptionOverride(masterModeLabelText());
+	updateMasterModeIndicators();
+}
+
+void ScribusView::updateMasterModeIndicators()
+{
+	if (!masterModeStrip || !masterModeTab || !masterNameStrip)
+		return;
+
+	// viewport() is the visible canvas area in this widget's own coordinates,
+	// already excluding the ruler margins and any shown scroll bars.
+	QRect visibleRect = viewport()->geometry();
+
+	const int stripWidth = 7;
+	const int tabWidth = 25;
+	masterModeStrip->setGeometry(visibleRect.right() - stripWidth + 1, visibleRect.top(), stripWidth, visibleRect.height());
+
+	// Prefer the fuller wording, but fall back to the short one when the
+	// translated text would be taller than the visible canvas.
+	QFontMetrics tabMetrics(masterModeTab->font());
+	QString tabText = stackLetters(tr("MASTER PAGE", "Vertical tab label shown while editing a master page"));
+	int tabHeight = tabMetrics.lineSpacing() * (tabText.count('\n') + 1) + 8;
+	if (tabHeight > visibleRect.height())
+	{
+		tabText = stackLetters(tr("MASTER", "Short vertical tab label shown while editing a master page"));
+		tabHeight = tabMetrics.lineSpacing() * (tabText.count('\n') + 1) + 8;
+	}
+	if (masterModeTab->text() != tabText)
+		masterModeTab->setText(tabText);
+	// The tab starts a quarter of the way down the strip.
+	int tabTop = visibleRect.top() + visibleRect.height() / 4;
+	masterModeTab->setGeometry(visibleRect.right() - tabWidth + 1, tabTop, tabWidth, tabHeight);
+
+	// Side tab follows directly below, and is dropped if there is no room.
+	int sideTop = tabTop + tabHeight + 4;
+	int sideHeight = tabMetrics.lineSpacing() * (masterSideTab->text().count('\n') + 1) + 8;
+	bool sideFits = !masterSideTab->text().isEmpty() && (sideTop + sideHeight <= visibleRect.bottom());
+	masterSideTab->setVisible(sideFits && masterModeTab->isVisible());
+	if (sideFits)
+		masterSideTab->setGeometry(visibleRect.right() - tabWidth + 1, sideTop, tabWidth, sideHeight);
+
+	// The name strip takes the button's own rendered height, so the platform
+	// style keeps deciding how tall the button is and the label follows it.
+	int rowHeight = endEditButton->height();
+	int nameWidth = qMax(masterNameStrip->minimumSizeHint().width(), 60);
+	masterNameStrip->setGeometry(endEditButton->x() + endEditButton->width() + 4, endEditButton->y(),
+								 nameWidth, rowHeight);
+}
+
 void ScribusView::hideMasterPage()
 {
 	deselectItems(true);
@@ -2358,6 +2521,11 @@
 	m_doc->setMasterPageMode(false);
 	m_ScMW->pageSelector->setEnabled(true);
 	endEditButton->setVisible(false);
+	masterModeStrip->setVisible(false);
+	masterModeTab->setVisible(false);
+	masterSideTab->setVisible(false);
+	masterNameStrip->setVisible(false);
+	m_ScMW->setStatusBarInfoText("");
 	resizeContents(qRound((m_doc->maxCanvasCoordinate.x() - m_doc->minCanvasCoordinate.x()) * m_canvas->scale()), qRound((m_doc->maxCanvasCoordinate.y() - m_doc->minCanvasCoordinate.y()) * m_canvas->scale()));
 }
 
Index: scribus/canvas.cpp
===================================================================
--- scribus/canvas.cpp	(revision 27773)
+++ scribus/canvas.cpp	(working copy)
@@ -964,7 +964,16 @@
 	img.setDevicePixelRatio(devicePixelRatioF());
 
 	auto painter = std::make_unique<ScPainter>(&img, img.width(), img.height(), 1.0, 0);
-	painter->clear(PrefsManager::instance().appPrefs.displayPrefs.scratchColor);
+	QColor scratchColor = PrefsManager::instance().appPrefs.displayPrefs.scratchColor;
+	if (m_doc->masterPageMode())
+	{
+		// Tint the pasteboard while a master page is being edited.
+		QColor masterTint(70, 95, 140);
+		scratchColor = QColor((scratchColor.red() + masterTint.red()) / 2,
+		                      (scratchColor.green() + masterTint.green()) / 2,
+		                      (scratchColor.blue() + masterTint.blue()) / 2);
+	}
+	painter->clear(scratchColor);
 	painter->newPath();
 	painter->moveTo(0, 0);
 	painter->lineTo(clipw, 0);
Index: scribus/scribus.h
===================================================================
--- scribus/scribus.h	(revision 27773)
+++ scribus/scribus.h	(working copy)
@@ -333,6 +333,12 @@
 	void newActWin(QMdiSubWindow *w);
 	void closeActiveWindowMasterPageEditor();
 	void updateActiveWindowCaption(const QString &newCaption);
+	/**
+	 * \brief Pin the window caption while a special edit mode is active.
+	 * Pass an empty string to release it. Other callers keep updating the
+	 * caption normally; the pinned text wins until released.
+	 */
+	void setWindowCaptionOverride(const QString& caption);
 	void windowsMenuActivated(int id);
 	void PutScrap(int scID);
 	void PutToInline(const QString& buffer);
@@ -643,6 +649,9 @@
 	void initDefaultValues();
 	void initKeyboardShortcuts();
 	void initPalettes();
+
+	//! \brief Caption pinned while a special edit mode is active.
+	QString m_windowCaptionOverride;
 	void initScrapbook();
 	void updateColorMenu(QProgressBar* progressBar = nullptr);
 
Index: scribus/scribus.cpp
===================================================================
--- scribus/scribus.cpp	(revision 27773)
+++ scribus/scribus.cpp	(working copy)
@@ -1566,7 +1566,10 @@
 	const int docSelectionCount = doc->m_Selection->count();
 	if (docSelectionCount == 0)
 	{
-		setStatusBarInfoText("");
+		if (doc->masterPageMode())
+			setStatusBarInfoText(tr("Editing Master Page: %1").arg(doc->currentPage()->pageName()));
+		else
+			setStatusBarInfoText("");
 		return;
 	}
 	QString widthTxt = value2String(doc->m_Selection->width(), doc->unitIndex(), true, true);
@@ -2436,6 +2439,8 @@
 	if (scw == ActWin)
 		return;
 	ActWin = scw;
+	// A special edit mode belongs to the document that entered it.
+	m_windowCaptionOverride.clear();
 	if (ActWin->doc() == nullptr)
 		return;
 	if (doc != nullptr)
@@ -7618,7 +7623,7 @@
 //	propertiesPalette->transparencyPalette->hideEditedPatterns(patternsDependingOnThis);
 	if (outlinePalette->isVisible())
 		outlinePalette->BuildTree(false);
-	updateActiveWindowCaption( tr("Editing Symbol: %1").arg(temp));
+	setWindowCaptionOverride( tr("Editing Symbol: %1").arg(temp));
 }
 
 void ScribusMainWindow::editSymbolEnd()
@@ -7647,7 +7652,7 @@
 	layerPalette->setEnabled(true);
 	if (outlinePalette->isVisible())
 		outlinePalette->BuildTree(false);
-	updateActiveWindowCaption(doc->documentFileName());
+	setWindowCaptionOverride(QString());
 }
 
 void ScribusMainWindow::editInlineStart(int id)
@@ -7669,7 +7674,7 @@
 	inlinePalette->editingStart(id);
 	if (outlinePalette->isVisible())
 		outlinePalette->BuildTree(false);
-	updateActiveWindowCaption( tr("Editing Inline Item"));
+	setWindowCaptionOverride( tr("Editing Inline Item"));
 }
 
 void ScribusMainWindow::editInlineEnd()
@@ -7696,7 +7701,7 @@
 	layerPalette->setEnabled(true);
 	if (outlinePalette->isVisible())
 		outlinePalette->BuildTree(false);
-	updateActiveWindowCaption(doc->documentFileName());
+	setWindowCaptionOverride(QString());
 }
 
 void ScribusMainWindow::editMasterPagesStart(const QString& temp)
@@ -7709,6 +7714,7 @@
 		mpName = doc->currentPage()->masterPageName();
 	else
 		mpName = temp;
+	setWindowCaptionOverride(tr("Editing Master Page: %1").arg(mpName));
 	view->deselectItems(true);
 	if (doc->drawAsPreview)
 	{
@@ -7749,6 +7755,7 @@
 void ScribusMainWindow::editMasterPagesEnd()
 {
 	view->hideMasterPage();
+	setWindowCaptionOverride(QString());
 	if (m_WasAutoSave)
 	{
 		doc->setAutoSave(true);
@@ -8695,7 +8702,22 @@
 {
 	if (!HaveDoc)
 		return;
-	ActWin->setWindowTitle(QDir::toNativeSeparators(newCaption));
+	QString caption(newCaption);
+	if (!m_windowCaptionOverride.isEmpty())
+	{
+		caption = m_windowCaptionOverride;
+		if (doc->isModified())
+			caption += "*";
+	}
+	ActWin->setWindowTitle(QDir::toNativeSeparators(caption));
+}
+
+void ScribusMainWindow::setWindowCaptionOverride(const QString& caption)
+{
+	m_windowCaptionOverride = caption;
+	if (!HaveDoc)
+		return;
+	updateActiveWindowCaption(doc->documentFileName() + (doc->isModified() ? "*" : ""));
 }
 
 void ScribusMainWindow::dragEnterEvent ( QDragEnterEvent* e)
Index: scribus/ui/pagepalette_masterpages.cpp
===================================================================
--- scribus/ui/pagepalette_masterpages.cpp	(revision 27773)
+++ scribus/ui/pagepalette_masterpages.cpp	(working copy)
@@ -525,6 +525,7 @@
 		item->setData(Qt::UserRole, newName);
 		masterPageListBox->blockSignals(sigBlocked);
 		updateMasterPageList(newName);
+		m_view->refreshMasterModeLabels();
 	}
 }
 

qirat

2026-08-19 16:09

reporter   ~0054234

Moreover, it adds "Editing Master Page: X" to the title bar of the app and tab (in tabbed view).

Also, in the status bar when it is free and not showing anything important.

@ale @JLuc @cbradney

JLuc

2026-08-19 17:58

developer   ~0054235

+1
That helps understanding there is something special about this edit view.

ale

2026-08-20 09:35

manager   ~0054250

First impression: I would not put the "MASTER PAGE" text there, just the name of the master page.
The "End Edit" button should probably integrated with the "banner" and the other button with the name can then be removed.

qirat

2026-08-21 00:37

reporter   ~0054257

There is only one button "End Edit", the strip next to it is not a button, it is just a name plate showing the name of the current master page. (Showing the name below the blue tab would be awkward if I went with stacked letters, or the horizontal way would take much space and would not fir there). So I went with showing the name near the button instead.

I understand "Master Page" seems generic but that is what we call the mode and it is the purpose, to make it clear that it is that mode.

There was no indication anywhere showing the orientation so I used the space below the blue tab on the right to show Left/Right as well.

Issue History

Date Modified Username Field Change
2014-07-13 14:16 Kunda New Issue
2014-07-13 14:16 Kunda File Added: better-indication-we-are-in-masterpage-mode.png
2014-07-13 14:30 Kunda Relationship added child of 0003837
2014-07-21 17:03 Kunda Relationship added related to 0012108
2014-10-20 12:43 Kunda Relationship added related to 0012478
2016-05-05 17:44 JLuc Note Added: 0040801
2016-05-05 17:47 JLuc File Added: Papier_milli_gris_a4_italien.svg
2016-05-05 17:48 JLuc File Added: papier millimétre.jpg
2016-05-05 17:49 JLuc Note Edited: 0040801
2016-05-05 17:50 JLuc Note Added: 0040802
2016-05-06 01:27 Kunda Note Added: 0040809
2016-05-06 01:27 Kunda Tag Attached: discussion
2016-05-06 07:10 PeterBenedek File Added: MasterPageMode.png
2016-05-06 07:12 PeterBenedek File Deleted: MasterPageMode.png
2016-05-06 07:12 PeterBenedek File Added: MasterPageMode.jpg
2016-05-06 07:12 PeterBenedek Note Added: 0040813
2016-05-06 09:37 ale Note Added: 0040821
2016-05-23 12:15 Kunda Note Added: 0041340
2016-11-01 10:07 FirasH Relationship added related to 0013223
2016-11-18 12:17 Kunda Tag Attached: masterpage
2016-11-18 12:19 Kunda Relationship added related to 0013323
2016-11-18 13:30 ale Note Added: 0042456
2016-11-18 21:39 user4623 File Added: Illustrator_group_breadcrumb.png
2016-11-18 21:39 user4623 Note Added: 0042464
2026-08-19 16:02 qirat Note Added: 0054233
2026-08-19 16:02 qirat File Added: mp-master-page-mode-indicator.png
2026-08-19 16:02 qirat File Added: mp-masterpage-edit-indicator-v2.14.patch
2026-08-19 16:09 qirat Note Added: 0054234
2026-08-19 17:58 JLuc Note Added: 0054235
2026-08-20 09:35 ale Note Added: 0054250
2026-08-21 00:37 qirat Note Added: 0054257