[qet] [4476] 1) Use arrow keys to navigate through the diagram editor.

[ Thread Index | Date Index | More lists.tuxfamily.org/qet Archives ]


Revision: 4476
Author:   dfochi
Date:     2016-05-13 15:10:32 +0200 (Fri, 13 May 2016)
Log Message:
-----------
1) Use arrow keys to navigate through the diagram editor. 2) Use PgUp, PgDn, Home and End keys to navigate through open folios. 3)Use Delete Key inside elements panel widget to delete diagrams. 4) Added a scroll area in auto numbering page.

Modified Paths:
--------------
    trunk/sources/bordertitleblock.cpp
    trunk/sources/bordertitleblock.h
    trunk/sources/configdialog.h
    trunk/sources/configpages.cpp
    trunk/sources/configpages.h
    trunk/sources/diagram.cpp
    trunk/sources/diagramview.cpp
    trunk/sources/elementspanelwidget.cpp
    trunk/sources/elementspanelwidget.h
    trunk/sources/projectconfigpages.cpp
    trunk/sources/projectconfigpages.h
    trunk/sources/projectview.cpp
    trunk/sources/projectview.h
    trunk/sources/qetdiagrameditor.cpp
    trunk/sources/qetdiagrameditor.h
    trunk/sources/qetproject.cpp
    trunk/sources/qetproject.h
    trunk/sources/titleblockproperties.cpp
    trunk/sources/titleblockproperties.h
    trunk/sources/ui/diagrampropertiesdialog.cpp
    trunk/sources/ui/diagrampropertiesdialog.h
    trunk/sources/ui/projectpropertiesdialog.cpp
    trunk/sources/ui/projectpropertiesdialog.h
    trunk/sources/ui/selectautonumw.ui
    trunk/sources/ui/titleblockpropertieswidget.cpp
    trunk/sources/ui/titleblockpropertieswidget.h
    trunk/sources/ui/titleblockpropertieswidget.ui

Added Paths:
-----------
    trunk/sources/ui/folioautonumbering.cpp
    trunk/sources/ui/folioautonumbering.h
    trunk/sources/ui/folioautonumbering.ui

Modified: trunk/sources/bordertitleblock.cpp
===================================================================
--- trunk/sources/bordertitleblock.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/bordertitleblock.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -243,6 +243,7 @@
 	ip.folio = folio();
 	ip.template_name = titleBlockTemplateName();
 	ip.display_at = m_edge;
+    ip.auto_page_num = autoPageNum();
 	ip.context = additional_fields_;
 	ip.collection = QET::QetCollection::Embedded;
 	
@@ -259,6 +260,7 @@
 	setTitle(ip.title);
 	setFileName(ip.filename);
 	setFolio(ip.folio);
+    setAutoPageNum(ip.auto_page_num);
 	if (m_edge != ip.display_at)
 	{
 		m_edge = ip.display_at;
@@ -685,6 +687,7 @@
 	context.addValue("folio",       btb_final_folio_);
 	context.addValue("folio-id",    folio_index_);
 	context.addValue("folio-total", folio_total_);
+	context.addValue("auto_page_num", btb_auto_page_num_);
 	
 	titleblock_template_renderer_ -> setContext(context);
 }
@@ -711,7 +714,7 @@
 	@param total nombre total de schemas dans le projet
 	@param project_properties Project-wide properties, to be merged with diagram-wide ones.
 */
-void BorderTitleBlock::setFolioData(int index, int total, const DiagramContext &project_properties) {
+void BorderTitleBlock::setFolioData(int index, int total, QString autonum, const DiagramContext &project_properties) {
 	if (index < 1 || total < 1 || index > total) return;
 	
 	// memorise les informations
@@ -720,8 +723,14 @@
 	
 	// regenere le contenu du champ folio
 	btb_final_folio_ = btb_folio_;
+
+	if (btb_final_folio_.contains("%autonum")){
+	btb_final_folio_.replace("%autonum", autonum);
+	btb_folio_ = btb_final_folio_;
+	}
 	btb_final_folio_.replace("%id",    QString::number(folio_index_));
 	btb_final_folio_.replace("%total", QString::number(folio_total_));
-	
+
+
 	updateDiagramContextForTitleBlock(project_properties);
 }

Modified: trunk/sources/bordertitleblock.h
===================================================================
--- trunk/sources/bordertitleblock.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/bordertitleblock.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -23,6 +23,7 @@
 #include <QObject>
 #include <QRectF>
 #include <QDate>
+#include "numerotationcontext.h"
 class QPainter;
 class DiagramPosition;
 class TitleBlockTemplate;
@@ -106,6 +107,8 @@
 	bool rowsAreDisplayed() const { return(display_rows_); }
 	/// @return true si la bordure est affichee, false sinon
 	bool borderIsDisplayed() const { return(display_border_); }
+
+	QString autoPageNum() const { return(btb_auto_page_num_); }
 	
 	// methods to set dimensions
 	void setColumnsCount(int);
@@ -132,9 +135,11 @@
 	}
 	/// @param author the new value of the "Folio" field
 	void setFolio(const QString &folio) { btb_folio_ = folio; }
-	void setFolioData(int, int, const DiagramContext & = DiagramContext());
+	void setFolioData(int, int, QString = NULL, const DiagramContext & = DiagramContext());
 	/// @param author the new value of the "File" field
 	void setFileName(const QString &filename) { btb_filename_ = filename; }
+	/// @param author the new value of the "Auto Page Num" field
+	void setAutoPageNum(const QString &auto_page_num) { btb_auto_page_num_ = auto_page_num;}
 	
 	void titleBlockToXml(QDomElement &);
 	void titleBlockFromXml(const QDomElement &);
@@ -203,6 +208,7 @@
 		QString btb_title_;
 		QString btb_folio_;
 		QString btb_final_folio_;
+		QString btb_auto_page_num_;
 		int folio_index_;
 		int folio_total_;
 		QString btb_filename_;

Modified: trunk/sources/configdialog.h
===================================================================
--- trunk/sources/configdialog.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/configdialog.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -36,6 +36,10 @@
 	virtual ~ConfigDialog();
 	private:
 	ConfigDialog(const ConfigDialog &);
+
+    public:
+	QList<ConfigPage *> pages;
+
 	
 	// methods
 	public slots:
@@ -52,6 +56,8 @@
 	QListWidget *pages_list;
 	QStackedWidget *pages_widget;
 	QDialogButtonBox *buttons;
-	QList<ConfigPage *> pages;
+
+
+
 };
 #endif

Modified: trunk/sources/configpages.cpp
===================================================================
--- trunk/sources/configpages.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/configpages.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -35,8 +35,9 @@
  * else edit the properties by default of QElectroTech
  * @param parent, parent widget
  */
-NewDiagramPage::NewDiagramPage(QETProject *project, QWidget *parent) :
+NewDiagramPage::NewDiagramPage(QETProject *project, QWidget *parent, ProjectPropertiesDialog *ppd) :
 	ConfigPage (parent),
+	ppd_ (ppd),
 	m_project  (project)
 {
 	//By default we set the global default properties
@@ -47,7 +48,7 @@
 	QList <TitleBlockTemplatesCollection *> c;
 	c << QETApp::commonTitleBlockTemplatesCollection() << QETApp::customTitleBlockTemplatesCollection();
 	if (m_project) c << m_project->embeddedTitleBlockTemplatesCollection();
-	ipw = new TitleBlockPropertiesWidget(c, TitleBlockProperties::defaultProperties(), true);
+	ipw = new TitleBlockPropertiesWidget(c, TitleBlockProperties::defaultProperties(), true, project, parent);
 	// default conductor properties
 	cpw = new ConductorPropertiesWidget(ConductorProperties::defaultProperties());
 	// default propertie of report label
@@ -64,6 +65,8 @@
 		xrefpw -> setProperties		  (m_project -> defaultXRefProperties());
 	}
 
+	connect(ipw,SIGNAL(openAutoNumFolioEditor(QString)),this,SLOT(changeToAutoFolioTab()));
+
 	// main tab widget
 	QTabWidget *tab_widget      = new QTabWidget(this);
 	QWidget *diagram_widget     = new QWidget();
@@ -87,6 +90,7 @@
  * @brief NewDiagramPage::~NewDiagramPage
  */
 NewDiagramPage::~NewDiagramPage() {
+	disconnect(ipw,SIGNAL(openAutoNumFolioEditor(QString)),this,SLOT(changeToAutoFolioTab()));
 }
 
 /**
@@ -173,12 +177,50 @@
  * @return title of this page
  */
 QString NewDiagramPage::title() const {
-    if (m_project) return(tr("Nouveau folio", "configuration page title"));
+	if (m_project) return(tr("Nouveau folio", "configuration page title"));
 	return(tr("Nouveau projet", "configuration page title"));
 }
 
+/**
+ * @brief NewDiagramPage::changeToAutoFolioTab
+ * Set the current tab to Autonum
+ */
+void NewDiagramPage::changeToAutoFolioTab(){
+	if (m_project){
+		ppd_->setCurrentPage(ProjectPropertiesDialog::Autonum);
+		ppd_->changeToFolio();
+		ppd_->exec();
+	}
+}
 
 /**
+ * @brief NewDiagramPage::setFolioAutonum
+ * Set temporary TBP to use in auto folio num
+ */
+void NewDiagramPage::setFolioAutonum(QString autoNum){
+	TitleBlockProperties tbptemp = ipw->propertiesAutoNum(autoNum);
+	ipw->setProperties(tbptemp);
+	applyConf();
+}
+
+/**
+ * @brief NewDiagramPage::saveCurrentTbp
+ * Save current TBP to retrieve after auto folio num
+ */
+void NewDiagramPage::saveCurrentTbp(){
+	savedTbp = ipw->properties();
+}
+
+/**
+ * @brief NewDiagramPage::loadSavedTbp
+ * Retrieve saved auto folio num
+ */
+void NewDiagramPage::loadSavedTbp(){
+	ipw->setProperties(savedTbp);
+	applyConf();
+}
+
+/**
 	Constructeur
 	@param parent QWidget parent
 */

Modified: trunk/sources/configpages.h
===================================================================
--- trunk/sources/configpages.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/configpages.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -19,6 +19,8 @@
 #define CONFIG_PAGES_H
 #include <QtWidgets>
 #include "configpage.h"
+#include "projectpropertiesdialog.h" //davi
+#include "titleblockpropertieswidget.h" //davi
 class BorderPropertiesWidget;
 class ConductorPropertiesWidget;
 class TitleBlockPropertiesWidget;
@@ -26,6 +28,7 @@
 class ReportPropertieWidget;
 class XRefPropertiesWidget;
 class QETProject;
+class TitleBlockProperties;
 
 /**
 	This configuration page enables users to define the properties of new
@@ -35,10 +38,16 @@
 	Q_OBJECT
 	// constructors, destructor
 	public:
-	NewDiagramPage(QETProject *project = 0, QWidget * = 0);
+	NewDiagramPage(QETProject *project = 0, QWidget * = 0, ProjectPropertiesDialog *teste = NULL);
 	virtual ~NewDiagramPage();
 	private:
 	NewDiagramPage(const NewDiagramPage &);
+public slots:
+	void changeToAutoFolioTab();
+	void setFolioAutonum(QString);
+	void saveCurrentTbp();
+	void loadSavedTbp();
+
 	
 	// methods
 	public:
@@ -48,12 +57,14 @@
 	
 	// attributes
 	private:
+	ProjectPropertiesDialog    *ppd_;
 	QETProject                 *m_project; ///< Project to edit propertie
 	BorderPropertiesWidget     *bpw;       ///< Widget to edit default diagram dimensions
 	TitleBlockPropertiesWidget *ipw;       ///< Widget to edit default title block properties
 	ConductorPropertiesWidget  *cpw;       ///< Widget to edit default conductor properties
 	ReportPropertieWidget      *rpw;       ///< Widget to edit default report label
 	XRefPropertiesWidget       *xrefpw;	   ///< Widget to edit default xref properties
+	TitleBlockProperties       savedTbp;   ///< Used to save current TBP and retrieve later
 
 };
 

Modified: trunk/sources/diagram.cpp
===================================================================
--- trunk/sources/diagram.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/diagram.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -235,6 +235,7 @@
 	bool transmit_event = true;
 	if (!isReadOnly()) {
 		QPointF movement;
+	if (!this->selectedContent().elements.isEmpty()) {
 		switch(e -> key()) {
 			case Qt::Key_Left:  movement = QPointF(-xGrid, 0.0); break;
 			case Qt::Key_Right: movement = QPointF(+xGrid, 0.0); break;
@@ -250,6 +251,7 @@
 	}
 	if (transmit_event) {
 		QGraphicsScene::keyPressEvent(e);
+		}
 	}
 }
 

Modified: trunk/sources/diagramview.cpp
===================================================================
--- trunk/sources/diagramview.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/diagramview.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -1,17 +1,17 @@
 /*
 	Copyright 2006-2015 The QElectroTech Team
 	This file is part of QElectroTech.
-	
+
 	QElectroTech is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
 	the Free Software Foundation, either version 2 of the License, or
 	(at your option) any later version.
-	
+
 	QElectroTech is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 	GNU General Public License for more details.
-	
+
 	You should have received a copy of the GNU General Public License
 	along with QElectroTech.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -30,6 +30,7 @@
 #include "templatelocation.h"
 #include "qetapp.h"
 #include "qetproject.h"
+#include "projectview.h"
 #include "integrationmoveelementshandler.h"
 #include "integrationmovetemplateshandler.h"
 #include "qetdiagrameditor.h"
@@ -67,12 +68,12 @@
 		"\"What's this?\" tip"
 	);
 	setWhatsThis(whatsthis);
-	
+
 	// active l'antialiasing
 	setRenderHint(QPainter::Antialiasing, true);
 	setRenderHint(QPainter::TextAntialiasing, true);
 	setRenderHint(QPainter::SmoothPixmapTransform, true);
-	
+
 	setScene(scene);
 	scene -> undoStack().setClean();
 	setWindowIcon(QET::Icons::QETLogo);
@@ -82,18 +83,18 @@
 	setSelectionMode();
 	adjustSceneRect();
 	updateWindowTitle();
-	
+
 	context_menu = new QMenu(this);
 	paste_here = new QAction(QET::Icons::EditPaste, tr("Coller ici", "context menu action"), this);
 	connect(paste_here, SIGNAL(triggered()), this, SLOT(pasteHere()));
-	
+
 	connect(scene, SIGNAL(showDiagram(Diagram*)), this, SIGNAL(showDiagram(Diagram*)));
 	connect(scene, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
 	connect(scene, SIGNAL(sceneRectChanged(QRectF)), this, SLOT(adjustSceneRect()));
 	connect(&(scene -> border_and_titleblock), SIGNAL(diagramTitleChanged(const QString &)), this, SLOT(updateWindowTitle()));
 	connect(diagram, SIGNAL(editElementRequired(ElementsLocation)), this, SIGNAL(editElementRequired(ElementsLocation)));
 	connect(diagram, SIGNAL(findElementRequired(ElementsLocation)), this, SIGNAL(findElementRequired(ElementsLocation)));
-	
+
 	connect(
 		this, SIGNAL(aboutToSetDroppedTitleBlockTemplate(const TitleBlockTemplateLocation &)),
 		this, SLOT(setDroppedTitleBlockTemplate(const TitleBlockTemplateLocation &)),
@@ -146,7 +147,7 @@
 */
 void DiagramView::rotateSelection() {
 	if (scene -> isReadOnly()) return;
-	
+
 	// recupere les elements et les champs de texte a pivoter
 	QList<Element *> elements_to_rotate;
 	QList<DiagramTextItem *> texts_to_rotate;
@@ -167,7 +168,7 @@
 			images_to_rotate << dii;
 		}
 	}
-	
+
 	// effectue les rotations s'il y a quelque chose a pivoter
 	if (elements_to_rotate.isEmpty() && texts_to_rotate.isEmpty() && images_to_rotate.isEmpty()) return;
 	scene -> undoStack().push(new RotateElementsCommand(elements_to_rotate, texts_to_rotate, images_to_rotate));
@@ -175,7 +176,7 @@
 
 void DiagramView::rotateTexts() {
 	if (scene -> isReadOnly()) return;
-	
+
 	// recupere les champs de texte a orienter
 	QList<DiagramTextItem *> texts_to_rotate;
 	foreach (QGraphicsItem *item, scene -> selectedItems()) {
@@ -188,10 +189,10 @@
 			texts_to_rotate << eti;
 		}
 	}
-	
+
 	// effectue les rotations s'il y a quelque chose a pivoter
 	if (texts_to_rotate.isEmpty()) return;
-	
+
 	// demande un angle a l'utilisateur
 	QDialog ori_text_dialog(diagramEditor());
 	ori_text_dialog.setSizeGripEnabled(false);
@@ -200,27 +201,27 @@
 #endif
 	ori_text_dialog.setWindowTitle(tr("Orienter les textes sélectionnés", "window title"));
 // 	ori_text_dialog.setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
-	
-	
+
+
 	QTextOrientationSpinBoxWidget *ori_widget = QETApp::createTextOrientationSpinBoxWidget();
 	ori_widget -> setParent(&ori_text_dialog);
 	if (texts_to_rotate.count() == 1) {
 		ori_widget -> setOrientation(texts_to_rotate.at(0) -> rotationAngle());
 	}
 	ori_widget -> spinBox() -> selectAll();
-	
+
 	// boutons
 	QDialogButtonBox buttons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
 	connect(&buttons, SIGNAL(accepted()), &ori_text_dialog, SLOT(accept()));
 	connect(&buttons, SIGNAL(rejected()), &ori_text_dialog, SLOT(reject()));
-	
+
 	// ajout dans une disposition verticale
 	QVBoxLayout layout_v(&ori_text_dialog);
 	layout_v.setSizeConstraint(QLayout::SetFixedSize);
 	layout_v.addWidget(ori_widget);
 	layout_v.addStretch();
 	layout_v.addWidget(&buttons);
-	
+
 	// si le dialogue est accepte
 	if (ori_text_dialog.exec() == QDialog::Accepted) {
 		scene -> undoStack().push(new RotateTextsCommand(texts_to_rotate, ori_widget -> orientation()));
@@ -261,7 +262,7 @@
 }
 
 /**
-	Handle the drops accepted on diagram (elements and title block templates). 
+	Handle the drops accepted on diagram (elements and title block templates).
 	@param e the QDropEvent describing the current drag'n drop
 */
 void DiagramView::dropEvent(QDropEvent *e) {
@@ -421,17 +422,17 @@
 */
 void DiagramView::paste(const QPointF &pos, QClipboard::Mode clipboard_mode) {
 	if (!isInteractive() || scene -> isReadOnly()) return;
-	
+
 	QString texte_presse_papier = QApplication::clipboard() -> text(clipboard_mode);
 	if ((texte_presse_papier).isEmpty()) return;
-	
+
 	QDomDocument document_xml;
 	if (!document_xml.setContent(texte_presse_papier)) return;
-	
+
 	// objet pour recuperer le contenu ajoute au schema par le coller
 	DiagramContent content_pasted;
 	scene -> fromXml(document_xml, pos, false, &content_pasted);
-	
+
 	// si quelque chose a effectivement ete ajoute au schema, on cree un objet d'annulation
 	if (content_pasted.count()) {
 		scene -> clearSelection();
@@ -589,7 +590,22 @@
 */
 void DiagramView::keyPressEvent(QKeyEvent *e) {
 	if (m_event_interface && m_event_interface->keyPressEvent(e)) return;
-
+	ProjectView *current_project = this->diagramEditor()->acessCurrentProject();
+switch(e -> key())
+	{
+		case Qt::Key_PageUp:
+			current_project->changeTabUp();
+			return;
+		case Qt::Key_PageDown:
+			current_project->changeTabDown();
+			return;
+		case Qt::Key_Home:
+			current_project->changeFirstTab();
+			return;
+		case Qt::Key_End:
+			current_project->changeLastTab();
+			return;
+	}
 	switchToVisualisationModeIfNeeded(e);
 	QGraphicsView::keyPressEvent(e);
 }
@@ -751,14 +767,14 @@
 QRectF DiagramView::viewedSceneRect() const {
 	// recupere la taille du widget viewport
 	QSize viewport_size = viewport() -> size();
-	
+
 	// recupere la transformation viewport -> scene
 	QTransform view_to_scene   = viewportTransform().inverted();
-	
+
 	// mappe le coin superieur gauche et le coin inferieur droit de la viewport sur la scene
 	QPointF scene_left_top     = view_to_scene.map(QPointF(0.0, 0.0));
 	QPointF scene_right_bottom = view_to_scene.map(QPointF(viewport_size.width(), viewport_size.height()));
-	
+
 	// en deduit le rectangle visualise par la scene
 	return(QRectF(scene_left_top, scene_right_bottom));
 }
@@ -773,7 +789,7 @@
 	// unlike elements, the integration of title block templates is mandatory, so we simply check whether the parent project of the template is also the parent project of the diagram
 	QETProject *tbt_parent_project = tbt_loc.parentProject();
 	if (!tbt_parent_project) return(true);
-	
+
 	return(tbt_parent_project != scene -> project());
 }
 
@@ -783,7 +799,7 @@
 */
 void DiagramView::applyReadOnly() {
 	if (!scene) return;
-	
+
 	bool is_writable = !scene -> isReadOnly();
 	setInteractive(is_writable);
 	setAcceptDrops(is_writable);
@@ -795,11 +811,11 @@
 void DiagramView::editSelectionProperties() {
 	// get selection
 	DiagramContent selection = scene -> selectedContent();
-	
+
 	// if selection contains nothing return
 	int selected_items_count = selection.count(DiagramContent::All | DiagramContent::SelectedOnly);
 	if (!selected_items_count) return;
-	
+
 	// if selection contains one item and this item can be editable, edit this item with an appropriate dialog
 	if (selected_items_count == 1 && selection.items(DiagramContent::Elements |
 													 DiagramContent::AnyConductor |
@@ -811,7 +827,7 @@
 		else if (selection.elements.size())
 			selection.elements.toList().first() -> editProperty();
 	}
-	
+
 	else {
 		QET::QetMessageBox::information(
 			this,
@@ -832,7 +848,7 @@
 void DiagramView::editSelectedConductorColor() {
 	// retrieve selected content
 	DiagramContent selection = scene -> selectedContent();
-	
+
 	// we'll focus on the selected conductor (we do not handle multiple conductors edition)
 	QList<Conductor *> selected_conductors = selection.conductors(DiagramContent::AnyConductor | DiagramContent::SelectedOnly);
 	if (selected_conductors.count() == 1) {
@@ -847,10 +863,10 @@
 void DiagramView::editConductorColor(Conductor *edited_conductor)
 {
 	if (scene -> isReadOnly() || !edited_conductor) return;
-	
+
 		// store the initial properties of the provided conductor
 	ConductorProperties initial_properties = edited_conductor -> properties();
-	
+
 		// prepare a color dialog showing the initial conductor color
 	QColorDialog *color_dialog = new QColorDialog(this);
 	color_dialog -> setWindowTitle(tr("Choisir la nouvelle couleur de ce conducteur"));
@@ -858,7 +874,7 @@
 	color_dialog -> setWindowFlags(Qt::Sheet);
 #endif
 	color_dialog -> setCurrentColor(initial_properties.color);
-	
+
 		// asks the user what color he wishes to apply
 	if (color_dialog -> exec() == QDialog::Accepted)
 	{
@@ -885,7 +901,7 @@
 	if (scene -> isReadOnly()) return;
 	// recupere les conducteurs selectionnes
 	QSet<Conductor *> selected_conductors = scene -> selectedConductors();
-	
+
 	// repere les conducteurs modifies (= profil non nul)
 	QHash<Conductor *, ConductorProfilesGroup> conductors_and_profiles;
 	foreach(Conductor *conductor, selected_conductors) {
@@ -899,7 +915,7 @@
 			conductors_and_profiles.insert(conductor, profile);
 		}
 	}
-	
+
 	if (conductors_and_profiles.isEmpty()) return;
 	scene -> undoStack().push(new ResetConductorCommand(conductors_and_profiles));
 }
@@ -1043,7 +1059,7 @@
 		if (!qgi -> isSelected()) scene -> clearSelection();
 		qgi -> setSelected(true);
 	}
-	
+
 	if (QETDiagramEditor *qde = diagramEditor()) {
 		context_menu -> clear();
 		if (scene -> selectedItems().isEmpty()) {
@@ -1061,7 +1077,7 @@
 			context_menu -> addSeparator();
 			context_menu -> addActions(qde -> m_selection_actions_group.actions());
 		}
-		
+
 		// affiche le menu contextuel
 		context_menu -> popup(e -> globalPos());
 	}
@@ -1090,10 +1106,10 @@
 	if (m_event_interface && m_event_interface -> mouseDoubleClickEvent(e)) return;
 
 	BorderTitleBlock &bi = scene -> border_and_titleblock;
-	
+
 	//Get the click pos on the diagram
 	QPointF click_pos = viewportTransform().inverted().map(e -> pos());
-	
+
 	if (bi.titleBlockRect().contains(click_pos) || bi.columnsRect().contains(click_pos) || bi.rowsRect().contains(click_pos)) {
 		e->accept();
 		editDiagramProperties();
@@ -1108,14 +1124,14 @@
 void DiagramView::setDroppedTitleBlockTemplate(const TitleBlockTemplateLocation &tbt) {
 	// fetch the current title block properties
 	TitleBlockProperties titleblock_properties_before = scene -> border_and_titleblock.exportTitleBlock();
-	
+
 	// check the provided template is not already applied
 	QETProject *tbt_parent_project = tbt.parentProject();
 	if (tbt_parent_project && tbt_parent_project == scene -> project()) {
 		// same parent project and same name = same title block template
 		if (tbt.name() == titleblock_properties_before.template_name) return;
 	}
-	
+
 	// integrate the provided template into the project if needed
 	QString integrated_template_name = tbt.name();
 	if (mustIntegrateTitleBlockTemplate(tbt)) {
@@ -1124,7 +1140,7 @@
 		integrated_template_name = scene -> project() -> integrateTitleBlockTemplate(tbt, handler);
 		if (integrated_template_name.isEmpty()) return;
 	}
-	
+
 	// apply the provided title block template
 	if (titleblock_properties_before.template_name == integrated_template_name) return;
 	TitleBlockProperties titleblock_properties_after = titleblock_properties_before;

Modified: trunk/sources/elementspanelwidget.cpp
===================================================================
--- trunk/sources/elementspanelwidget.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/elementspanelwidget.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -67,14 +67,14 @@
 	prj_activate          = new QAction(QET::Icons::ProjectFile,               tr("Basculer vers ce projet"),             this);
 	prj_close             = new QAction(QET::Icons::DocumentClose,             tr("Fermer ce projet"),                    this);
 	prj_edit_prop         = new QAction(QET::Icons::DialogInformation,         tr("Propriétés du projet"),          this);
-    prj_prop_diagram      = new QAction(QET::Icons::DialogInformation,         tr("Propriétés du folio"),       this);
-    prj_add_diagram       = new QAction(QET::Icons::DiagramAdd,                tr("Ajouter un folio"),                this);
-    prj_del_diagram       = new QAction(QET::Icons::DiagramDelete,             tr("Supprimer ce folio"),              this);
-    prj_move_diagram_up   = new QAction(QET::Icons::GoUp,                      tr("Remonter ce folio"),               this);
-    prj_move_diagram_down = new QAction(QET::Icons::GoDown,                    tr("Abaisser ce folio"),               this);
-    prj_move_diagram_upx10   = new QAction(QET::Icons::GoUp,                   tr("Remonter ce folio x10"),           this);
-    prj_move_diagram_top   = new QAction(QET::Icons::GoUp,                     tr("Remonter ce folio au debut"),               this);
-    prj_move_diagram_downx10 = new QAction(QET::Icons::GoDown,                 tr("Abaisser ce folio x10"),           this);
+	prj_prop_diagram      = new QAction(QET::Icons::DialogInformation,         tr("Propriétés du folio"),       this);
+	prj_add_diagram       = new QAction(QET::Icons::DiagramAdd,                tr("Ajouter un folio"),                this);
+	prj_del_diagram       = new QAction(QET::Icons::DiagramDelete,             tr("Supprimer ce folio"),              this);
+	prj_move_diagram_up   = new QAction(QET::Icons::GoUp,                      tr("Remonter ce folio"),               this);
+	prj_move_diagram_down = new QAction(QET::Icons::GoDown,                    tr("Abaisser ce folio"),               this);
+	prj_move_diagram_upx10   = new QAction(QET::Icons::GoUp,                   tr("Remonter ce folio x10"),           this);
+	prj_move_diagram_top   = new QAction(QET::Icons::GoUp,                     tr("Remonter ce folio au debut"),               this);
+	prj_move_diagram_downx10 = new QAction(QET::Icons::GoDown,                 tr("Abaisser ce folio x10"),           this);
 	tbt_add               = new QAction(QET::Icons::TitleBlock,                tr("Nouveau modèle"),                   this);
 	tbt_edit              = new QAction(QET::Icons::TitleBlock,                tr("Éditer ce modèle"),              this);
 	tbt_remove            = new QAction(QET::Icons::TitleBlock,                tr("Supprimer ce modèle"),              this);
@@ -778,6 +778,19 @@
 }
 
 /**
+	Treat key press event inside elements panel widget
+*/
+void ElementsPanelWidget::keyPressEvent   (QKeyEvent *e) {
+	switch(e -> key()) {
+				case Qt::Key_Delete: //delete diagram through elements panel widget
+					if (Diagram *selected_diagram = elements_panel -> selectedDiagram()) {
+						emit(requestForDiagramDeletion(selected_diagram));
+					}
+				}
+	return;
+}
+
+/**
 	Lance l'editeur d'element pour l'element filename
 	@param location Emplacement de l'element a editer
 */

Modified: trunk/sources/elementspanelwidget.h
===================================================================
--- trunk/sources/elementspanelwidget.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/elementspanelwidget.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -110,6 +110,9 @@
 	void updateProgressBar(int, int);
 	void loadingFinished();
 	void filterEdited(const QString &);
+
+	protected:
+	virtual void keyPressEvent   (QKeyEvent *e);
 	
 	private:
 	void launchElementEditor(const ElementsLocation &);

Modified: trunk/sources/projectconfigpages.cpp
===================================================================
--- trunk/sources/projectconfigpages.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/projectconfigpages.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -27,7 +27,7 @@
 #include "ui/xrefpropertieswidget.h"
 #include "selectautonumw.h"
 #include "numerotationcontext.h"
-
+#include "folioautonumbering.h"
 /**
 	Constructor
 	@param project Project this page is editing.
@@ -141,7 +141,6 @@
 		project_ -> setProjectProperties(new_properties);
 		modified_project = true;
 	}
-	
 	if (modified_project) {
 		project_ -> setModified(true);
 	}
@@ -186,6 +185,8 @@
 	main_layout0 -> addWidget(project_variables_label_);
 	main_layout0 -> addWidget(project_variables_);
 	setLayout(main_layout0);
+	this -> setMinimumWidth(630);
+
 }
 
 /**
@@ -250,17 +251,44 @@
  * Init some widget of this page
  */
 void ProjectAutoNumConfigPage::initWidgets() {
-	m_label = new QLabel(tr("Numérotations disponibles :", "availables numerotations"), this);
 
-	m_context_cb = new QComboBox(this);
+    tab_widget = new QTabWidget(this);
+    tab_widget->setMinimumWidth(440);
+
+    //Conductor Tab
+    conductor_tab_widget = new QWidget(this);
+
+    m_label = new QLabel(tr("Numérotations disponibles :", "availables numerotations"), conductor_tab_widget);
+
+    m_context_cb = new QComboBox(conductor_tab_widget);
 	m_context_cb->setEditable(true);
 	m_context_cb->lineEdit()->setClearButtonEnabled(true);
 	m_context_cb->addItem(tr("Nom de la nouvelle numérotation"));
 
-	m_remove_pb = new QPushButton(QET::Icons::EditDelete, QString(), this);
+    m_remove_pb = new QPushButton(QET::Icons::EditDelete, QString(), conductor_tab_widget);
 	m_remove_pb -> setToolTip(tr("Supprimer la numérotation"));
 
-	m_saw = new SelectAutonumW(this);
+    m_saw = new SelectAutonumW(conductor_tab_widget);
+
+    //Folio Tab
+    folio_tab_widget = new QWidget(this);
+
+    m_label_2 = new QLabel(tr("Numérotations disponibles :", "availables numerotations"), folio_tab_widget);
+
+    m_context_cb_2 = new QComboBox(folio_tab_widget);
+    m_context_cb_2->setEditable(true);
+    m_context_cb_2->lineEdit()->setClearButtonEnabled(true);
+    m_context_cb_2->addItem(tr("Nom de la nouvelle numérotation"));
+
+    m_remove_pb_2 = new QPushButton(QET::Icons::EditDelete, QString(), folio_tab_widget);
+    m_remove_pb_2 -> setToolTip(tr("Supprimer la numérotation"));
+
+    m_saw_2 = new SelectAutonumW(folio_tab_widget);
+
+/*    //AutoNumbering Tab - Needs Further Testing
+    autoNumbering_tab_widget = new QWidget(this);
+    m_faw = new FolioAutonumberingW(project(),autoNumbering_tab_widget);
+*/
 }
 
 /**
@@ -268,15 +296,40 @@
  * Init the layout of this page
  */
 void ProjectAutoNumConfigPage::initLayout() {
-	QHBoxLayout *context_layout = new QHBoxLayout();
+    //Conductor tab
+    tab_widget->addTab(conductor_tab_widget, tr("Conductor"));
+
+    QHBoxLayout *context_layout = new QHBoxLayout();
 	context_layout -> addWidget (m_label);
 	context_layout -> addWidget (m_context_cb);
 	context_layout -> addWidget (m_remove_pb);
 
-	QVBoxLayout *main_layout = new QVBoxLayout(this);
-	this        -> setLayout (main_layout);
-	main_layout -> addLayout (context_layout);
-	main_layout -> addWidget (m_saw);
+    QVBoxLayout *main_layout = new QVBoxLayout();
+    QVBoxLayout *aux_layout = new QVBoxLayout();
+    aux_layout->addLayout(context_layout);
+    aux_layout->addWidget(m_saw);
+
+    main_layout->addLayout(aux_layout);
+    conductor_tab_widget -> setLayout (main_layout);
+
+    // Folio Tab
+    tab_widget->addTab(folio_tab_widget, tr("Folio"));
+
+    QHBoxLayout *context_layout_2 = new QHBoxLayout();
+    context_layout_2 -> addWidget (m_label_2);
+    context_layout_2 -> addWidget (m_context_cb_2);
+    context_layout_2 -> addWidget (m_remove_pb_2);
+
+    QVBoxLayout *main_layout_2 = new QVBoxLayout();
+    QVBoxLayout *aux_layout_2 = new QVBoxLayout();
+    aux_layout_2->addLayout(context_layout_2);
+    aux_layout_2->addWidget(m_saw_2);
+
+    main_layout_2->addLayout(aux_layout_2);
+    folio_tab_widget -> setLayout (main_layout_2);
+
+	//Auto Numbering Tab - Needs Further Testing
+//    tab_widget->addTab(autoNumbering_tab_widget,tr ("Folio Auto Numbering"));
 }
 
 /**
@@ -284,9 +337,20 @@
  * Read value stored on project, and update display
  */
 void ProjectAutoNumConfigPage::readValuesFromProject() {
+    //Conductor Tab
 	QList <QString> keys = project_->conductorAutoNum().keys();
-	if (keys.isEmpty()) return;
+	if (!keys.isEmpty()){
 	foreach (QString str, keys) { m_context_cb -> addItem(str); }
+	}
+
+	//Folio Tab
+	QList <QString> keys_2 = project_->folioAutoNum().keys();
+	if (!keys_2.isEmpty()){
+	foreach (QString str, keys_2) { m_context_cb_2 -> addItem(str);}
+	}
+
+	//Folio AutoNumbering Tab - Needs Further Testing
+//	m_faw->setContext(keys_2);
 }
 
 /**
@@ -301,14 +365,28 @@
  * setup some connections
  */
 void ProjectAutoNumConfigPage::buildConnections() {
+	
+	connect(tab_widget,SIGNAL(currentChanged(int)),this,SLOT(tabChanged(int)));
+
+	//Conductor Tab
 	connect (m_context_cb, SIGNAL (currentIndexChanged(QString)), this, SLOT (updateContext(QString)));
 	connect (m_saw,        SIGNAL (applyPressed()),               this, SLOT (saveContext()));
-	connect (m_remove_pb,  SIGNAL(clicked()),                     this, SLOT(removeContext()));
+	connect (m_remove_pb,  SIGNAL (clicked()),                    this, SLOT(removeContext()));
+
+	//Folio Tab
+	connect (m_context_cb_2, SIGNAL (currentIndexChanged(QString)), this, SLOT (updateContext_2(QString)));
+	connect (m_saw_2,        SIGNAL (applyPressed()),               this, SLOT (saveContext_2()));
+	connect (m_remove_pb_2,  SIGNAL (clicked()),                     this, SLOT (removeContext_2()));
+
+/*	//Auto Folio Numbering - Needs Further Testing
+	connect (m_faw, SIGNAL (applyPressed()),                 this, SLOT (applyAutoNum()));
+	connect (m_faw, SIGNAL (m_autonumber_tabs_rb_clicked()), this, SLOT (tabChanged(int)));
+*/
 }
 
 /**
  * @brief ProjectAutoNumConfigPage::updateContext
- * Display the current selected context
+ * Display the current selected context for conductor
  * @param str, key of context stored in project
  */
 void ProjectAutoNumConfigPage::updateContext(QString str) {
@@ -317,8 +395,18 @@
 }
 
 /**
+ * @brief ProjectAutoNumConfigPage::updateContext_2
+ * Display the current selected context for folio
+ * @param str, key of context stored in project
+ */
+void ProjectAutoNumConfigPage::updateContext_2(QString str) {
+    if (str == tr("Nom de la nouvelle numérotation")) m_saw_2 -> setContext(NumerotationContext());
+    else m_saw_2 ->setContext(project_->folioAutoNum(str));
+}
+
+/**
  * @brief ProjectAutoNumConfigPage::saveContext
- * Save the current displayed context in project
+ * Save the current displayed conductor context in project
  */
 void ProjectAutoNumConfigPage::saveContext() {
 	// If the text is the default text "Name of new numerotation" save the edited context
@@ -339,8 +427,56 @@
 }
 
 /**
+ * @brief ProjectAutoNumConfigPage::saveContext_2
+ * Save the current displayed folio context in project
+ */
+void ProjectAutoNumConfigPage::saveContext_2() {
+    // If the text is the default text "Name of new numerotation" save the edited context
+    // With the the name "No name"
+    if (m_context_cb_2 -> currentText() == tr("Nom de la nouvelle numérotation")) {
+        project_->addFolioAutoNum (tr("Sans nom"), m_saw_2 -> toNumContext());
+        m_context_cb_2 -> addItem(tr("Sans nom"));
+    }
+    // If the text isn't yet to the autonum of the project, add this new item to the combo box.
+    else if ( !project_ -> folioAutoNum().keys().contains( m_context_cb_2->currentText())) {
+        project()->addFolioAutoNum(m_context_cb_2->currentText(), m_saw_2->toNumContext());
+        m_context_cb_2 -> addItem(m_context_cb_2->currentText());
+    }
+    // Else, the text already exist in the autonum of the project, just update the context
+    else {
+        project_->addFolioAutoNum (m_context_cb_2 -> currentText(), m_saw_2 -> toNumContext());
+    }
+}
+
+/**
+ * @brief ProjectAutoNumConfigPage::applyAutoNum
+ * Apply auto folio numbering, New Folios or Selected Folios
+ */
+/*
+void ProjectAutoNumConfigPage::applyAutoNum() {
+
+    if (m_faw->newFolios){
+        int foliosRemaining = m_faw->newFoliosNumber();
+        emit (saveCurrentTbp());
+        emit (setAutoNum(m_faw->autoNumSelected()));
+        while (foliosRemaining > 0){
+            project()->autoFolioNumberingNewFolios();
+            foliosRemaining = foliosRemaining-1;
+        }
+        emit (loadSavedTbp());
+    }
+    else{
+		QString autoNum   = m_faw->autoNumSelected();
+		int fromFolio = m_faw->fromFolio();
+		int toFolio   = m_faw->toFolio();
+		project_->autoFolioNumberingSelectedFolios(fromFolio,toFolio,autoNum);		
+    }
+}
+*/
+
+/**
  * @brief ProjectAutoNumConfigPage::removeContext
- * Remove from project the current numerotation context
+ * Remove from project the current conductor numerotation context
  */
 void ProjectAutoNumConfigPage::removeContext() {
 	//if default text, return
@@ -348,3 +484,37 @@
 	project_     -> removeConductorAutonum (m_context_cb -> currentText() );
 	m_context_cb -> removeItem             (m_context_cb -> currentIndex() );
 }
+/**
+ * @brief ProjectAutoNumConfigPage::removeContext_2
+ * Remove from project the current folio numerotation context
+ */
+void ProjectAutoNumConfigPage::removeContext_2() {
+    //if default text, return
+    if ( m_context_cb_2 -> currentText() == tr("Nom de la nouvelle numérotation") ) return;
+	project_       -> removeFolioAutoNum     (m_context_cb_2 -> currentText() );
+	m_context_cb_2 -> removeItem             (m_context_cb_2 -> currentIndex() );
+}
+/**
+ * @brief ProjectAutoNumConfigPage::changeToTab
+ * @param tab index
+ * Change to Selected Tab
+ */
+void ProjectAutoNumConfigPage::changeToTab(int i){
+        tab_widget->setCurrentIndex(i);
+}
+
+/**
+ * @brief ProjectAutoNumConfigPage::tabChanged
+ * @param tab index
+ * Used to resize window to correct size
+ */
+void ProjectAutoNumConfigPage::tabChanged(int i){
+	if (i>0){
+		if (tab_widget->currentIndex()==2){
+			tab_widget->resize(470,tab_widget->height());
+		}
+		else {
+			tab_widget->adjustSize();
+		}
+	}
+}

Modified: trunk/sources/projectconfigpages.h
===================================================================
--- trunk/sources/projectconfigpages.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/projectconfigpages.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -20,6 +20,8 @@
 #ifndef PROJECTCONFIGPAGES_H
 #define PROJECTCONFIGPAGES_H
 #include "configpage.h"
+#include <QtWidgets>
+
 class QLabel;
 class QLineEdit;
 class QETProject;
@@ -32,6 +34,7 @@
 class SelectAutonumW;
 class QComboBox;
 class QPushButton;
+class FolioAutonumberingW;
 
 /**
 	This class, derived from ConfigPage, aims at providing the basic skeleton
@@ -128,27 +131,49 @@
 		virtual QString title() const;
 		virtual QIcon   icon() const;
 		virtual void    applyProjectConf();
-
+		virtual void    changeToTab(int);
 	protected:
 		virtual void initWidgets();
 		virtual void initLayout();
 		virtual void readValuesFromProject();
 		virtual void adjustReadOnly();
-
 	private:
 		void buildConnections();
-
 	private slots:
 		void updateContext(QString);
 		void saveContext();
 		void removeContext();
+		void updateContext_2(QString);
+		void saveContext_2();
+		void removeContext_2();
 
+//		void applyAutoNum(); - Needs Further Testing
+
+		void tabChanged(int);
+
+	signals:
+		void setAutoNum(QString);
+		void setAutoNum(int,int);
+		void saveCurrentTbp();
+		void loadSavedTbp();
+
 	//Attributes
 	private:
-		QLabel         *m_label;
-		QComboBox      *m_context_cb;
-		QPushButton	   *m_remove_pb;
-		SelectAutonumW *m_saw;
+		QTabWidget          *tab_widget;
+		QWidget             *element_widget;
+		QWidget             *conductor_tab_widget;
+		QWidget             *folio_tab_widget;
+		QWidget             *autoNumbering_tab_widget;
+		QScrollArea         *scrollArea;
+		QLabel              *m_label;
+		QLabel              *m_label_2;
+		QComboBox           *m_context_cb;
+		QComboBox           *m_context_cb_2;
+		QPushButton	        *m_remove_pb;
+		QPushButton	        *m_remove_pb_2;
+		SelectAutonumW      *m_saw;
+		SelectAutonumW      *m_saw_2;
+		FolioAutonumberingW *m_faw;
 
 };
 

Modified: trunk/sources/projectview.cpp
===================================================================
--- trunk/sources/projectview.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/projectview.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -1,17 +1,17 @@
 /*
 	Copyright 2006-2015 The QElectroTech Team
 	This file is part of QElectroTech.
-	
+
 	QElectroTech is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
 	the Free Software Foundation, either version 2 of the License, or
 	(at your option) any later version.
-	
+
 	QElectroTech is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 	GNU General Public License for more details.
-	
+
 	You should have received a copy of the GNU General Public License
 	along with QElectroTech.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -32,7 +32,6 @@
 #include "qettemplateeditor.h"
 #include "diagramfoliolist.h"
 #include "projectpropertiesdialog.h"
-
 #include <QTabWidget>
 
 /**
@@ -47,7 +46,7 @@
 	initActions();
 	initWidgets();
 	initLayout();
-	
+
 	setProject(project);
 }
 
@@ -79,8 +78,9 @@
 	if (!project_) {
 		project_ = project;
 		connect(project_, SIGNAL(projectTitleChanged(QETProject *, const QString &)), this, SLOT(updateWindowTitle()));
-		connect(project_, SIGNAL(projectModified    (QETProject *, bool)),            this, SLOT(updateWindowTitle()));
-		connect(project_, SIGNAL(readOnlyChanged    (QETProject *, bool)),            this, SLOT(adjustReadOnlyState()));
+		connect(project_, SIGNAL(projectModified	(QETProject *, bool)),			this, SLOT(updateWindowTitle()));
+		connect(project_, SIGNAL(readOnlyChanged	(QETProject *, bool)),			this, SLOT(adjustReadOnlyState()));
+		connect(project_, SIGNAL(addAutoNumDiagram()),   this, SLOT(addNewDiagram()));
 		adjustReadOnlyState();
 		loadDiagrams();
 	}
@@ -112,7 +112,7 @@
 			selection.removeOne(current);
 		}
 	}
-	
+
 	return(selection);
 }
 
@@ -139,6 +139,83 @@
 }
 
 /**
+	@brief change current diagramview to next folio
+*/
+void ProjectView::changeTabDown(){
+	DiagramView *nextDiagramView = this->nextDiagram();
+	if (nextDiagramView!=NULL){
+		rebuildDiagramsMap();
+		m_tab -> setCurrentWidget(nextDiagramView);
+	}
+}
+
+/**
+	@return next folio of current diagramview
+*/
+DiagramView *ProjectView::nextDiagram() {
+	int current_tab_index = m_tab -> currentIndex();
+	int next_tab_index = current_tab_index + 1;	//get next tab index
+	if (next_tab_index<diagram_ids_.count()) //if next tab index >= greatest tab the last tab is activated so no need to change tab.
+		return(diagram_ids_[next_tab_index]);
+	else
+		return NULL;
+}
+
+/**
+	@brief change current diagramview to previous tab
+*/
+void ProjectView::changeTabUp(){
+	DiagramView *previousDiagramView = this->previousDiagram();
+	if (previousDiagramView!=NULL){
+		rebuildDiagramsMap();
+		m_tab -> setCurrentWidget(previousDiagramView);
+	}
+}
+
+/**
+	@return previous folio of current diagramview
+*/
+DiagramView *ProjectView::previousDiagram() {
+	int current_tab_index = m_tab -> currentIndex();
+	int previous_tab_index = current_tab_index - 1;	//get previous tab index
+	if (previous_tab_index>=0) //if previous tab index = 0 then the first tab is activated so no need to change tab.
+		return(diagram_ids_[previous_tab_index]);
+	else
+		return NULL;
+}
+
+/**
+	@brief change current diagramview to last tab
+*/
+void ProjectView::changeLastTab(){
+	DiagramView *lastDiagramView = this->lastDiagram();
+	m_tab->setCurrentWidget(lastDiagramView);
+}
+
+/**
+	@return last folio of current project
+*/
+DiagramView *ProjectView::lastDiagram(){
+	return(diagram_ids_.last());
+}
+
+/**
+	@brief change current diagramview to first tab
+*/
+void ProjectView::changeFirstTab(){
+	DiagramView *firstDiagramView = this->firstDiagram();
+	m_tab->setCurrentWidget(firstDiagramView);
+}
+
+/**
+	@return first folio of current project
+*/
+DiagramView *ProjectView::firstDiagram(){
+	return(diagram_ids_.first());
+}
+
+
+/**
 	Cette methode essaye de fermer successivement les editeurs d'element puis
 	les schemas du projet. L'utilisateur peut refuser de fermer un schema ou un
 	editeur.
@@ -148,19 +225,19 @@
 */
 bool ProjectView::tryClosing() {
 	if (!project_) return(true);
-	
+
 	// First step: require external editors closing -- users may either cancel
 	// the whole closing process or save (and therefore add) content into this
 	// project. Of course, they may also discard them.
 	if (!tryClosingElementEditors()) {
 		return(false);
 	}
-	
+
 	// Check how different the current situation is from a brand new, untouched project
 	if (project_ -> filePath().isEmpty() && !project_ -> projectWasModified()) {
 		return(true);
 	}
-	
+
 	// Second step: users are presented with a dialog that enables them to
 	// choose whether they want to:
 	//   - cancel the closing process,
@@ -173,12 +250,12 @@
 	} else if (user_input == QMessageBox::Discard) {
 		return(true); // all modifications were discarded
 	}
-	
+
 	// Check how different the current situation is from a brand new, untouched project (yes , again)
 	if (project_ -> filePath().isEmpty() && !project_ -> projectWasModified()) {
 		return(true);
 	}
-	
+
 	if (project_ -> filePath().isEmpty()) {
 		QString filepath = askUserForFilePath();
 		if (filepath.isEmpty()) return(false); // users may cancel the closing
@@ -205,7 +282,7 @@
 	foreach(QETElementEditor *editor, editors) {
 		if (!editor -> close()) return(false);
 	}
-	
+
 	QList<QETTitleBlockTemplateEditor *> template_editors = QETApp::titleBlockTemplateEditors(project_);
 	foreach(QETTitleBlockTemplateEditor *template_editor, template_editors) {
 		if (!template_editor -> close()) return(false);
@@ -243,7 +320,7 @@
 	if (close_dialog == QMessageBox::Save) {
 		saveDiagrams(project()->diagrams());
 	}
-	
+
 	return(close_dialog);
 }
 
@@ -260,20 +337,20 @@
 		this,
 		tr("Enregistrer sous", "dialog title"),
 		project_ -> currentDir(),
-        tr("Projet QElectroTech (*.qet)", "filetypes allowed when saving a project file")
+		tr("Projet QElectroTech (*.qet)", "filetypes allowed when saving a project file")
 	);
-	
+
 	// if no filepath is provided, return an empty string
 	if (filepath.isEmpty()) return(filepath);
-	
+
 	// if the name does not end with the .qet extension, append it
 	if (!filepath.endsWith(".qet", Qt::CaseInsensitive)) filepath += ".qet";
-	
+
 	if (assign) {
 		// assign the provided filepath to the currently edited project
 		project_ -> setFilePath(filepath);
 	}
-	
+
 	return(filepath);
 }
 
@@ -292,7 +369,7 @@
  */
 void ProjectView::addNewDiagram() {
 	if (project_ -> isReadOnly()) return;
-	
+
 	Diagram *new_diagram = project_ -> addNewDiagram();
 	DiagramView *new_diagram_view = new DiagramView(new_diagram);
 	addDiagram(new_diagram_view);
@@ -335,7 +412,7 @@
 
 	// check diagram isn't present in the project
 	if (diagram_ids_.values().contains(diagram)) return;
-	
+
 	// Add new tab for the diagram
 	m_tab -> addTab(diagram, QET::Icons::Diagram, diagram -> title());
 	diagram -> setFrameStyle(QFrame::Plain | QFrame::NoFrame);
@@ -348,7 +425,7 @@
 	connect(diagram, SIGNAL(findElementRequired(const ElementsLocation &)), this, SIGNAL(findElementRequired(const ElementsLocation &)));
 	connect(diagram, SIGNAL(editElementRequired(const ElementsLocation &)), this, SIGNAL(editElementRequired(const ElementsLocation &)));
 	connect(diagram, SIGNAL(editTitleBlockTemplate(const QString &, bool)), this, SLOT(editTitleBlockTemplateRequired(const QString &, bool)));
-	
+
 	// signal diagram was added
 	emit(diagramAdded(diagram));
 }
@@ -360,36 +437,36 @@
 void ProjectView::removeDiagram(DiagramView *diagram_view) {
 	if (!diagram_view) return;
 	if (project_ -> isReadOnly()) return;
-	
+
 	// verifie que le schema est bien present dans le projet
 	if (!diagram_ids_.values().contains(diagram_view)) return;
-	
 
+
 	//Ask confirmation to user.
 	int answer = QET::QetMessageBox::question(
 		this,
-        tr("Supprimer le folio ?", "message box title"),
-        tr("Êtes-vous sûr  de vouloir supprimer ce folio du projet ? Ce changement est irréversible.", "message box content"),
+		tr("Supprimer le folio ?", "message box title"),
+		tr("Êtes-vous sûr  de vouloir supprimer ce folio du projet ? Ce changement est irréversible.", "message box content"),
 		QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel,
 		QMessageBox::No
 	);
 	if (answer != QMessageBox::Yes) {
 		return;
 	}
-	
+
 	// enleve le DiagramView des onglets
 	int diagram_tab_id = diagram_ids_.key(diagram_view);
 	m_tab -> removeTab(diagram_tab_id);
 	diagrams_.removeAll(diagram_view);
 	rebuildDiagramsMap();
-	
+
 	// supprime le DiagramView, puis le Diagram
 	project_ -> removeDiagram(diagram_view -> diagram());
 	delete diagram_view;
-	
+
 	// signale le retrait du schema
 	emit(diagramRemoved(diagram_view));
-	
+
 	// rend definitif le retrait du schema
 	project_ -> write();
 }
@@ -400,7 +477,7 @@
 */
 void ProjectView::removeDiagram(Diagram *diagram) {
 	if (!diagram) return;
-	
+
 	if (DiagramView *diagram_view = findDiagram(diagram)) {
 		removeDiagram(diagram_view);
 	}
@@ -464,7 +541,7 @@
 */
 void ProjectView::moveDiagramUp(DiagramView *diagram_view) {
 	if (!diagram_view) return;
-	
+
 	int diagram_view_position = diagram_ids_.key(diagram_view);
 	if (!diagram_view_position) {
 		// le schema est le premier du projet
@@ -485,7 +562,7 @@
 */
 void ProjectView::moveDiagramDown(DiagramView *diagram_view) {
 	if (!diagram_view) return;
-	
+
 	int diagram_view_position = diagram_ids_.key(diagram_view);
 	if (diagram_view_position + 1 == diagram_ids_.count()) {
 		// le schema est le dernier du projet
@@ -572,7 +649,7 @@
 */
 void ProjectView::printProject() {
 	if (!project_) return;
-	
+
 	// transforme le titre du projet en nom utilisable pour le document
 	QString doc_name;
 	if (!(project_ -> title().isEmpty())) {
@@ -584,13 +661,13 @@
 	if (doc_name.isEmpty()) {
 		doc_name = tr("projet", "string used to generate a filename");
 	}
-	
+
 	// recupere le dossier contenant le fichier courant
 	QString dir_path = project_ -> currentDir();
-	
+
 	// determine un chemin pour le pdf / ps
 	QString file_name = QDir::toNativeSeparators(QDir::cleanPath(dir_path + "/" + doc_name));
-	
+
 	DiagramPrintDialog print_dialog(project_, this);
 	print_dialog.setDocName(doc_name);
 	print_dialog.setFileName(file_name);
@@ -602,7 +679,7 @@
 */
 void ProjectView::exportProject() {
 	if (!project_) return;
-	
+
 	ExportDialog ed(project_, parentWidget());
 #ifdef Q_OS_MAC
 	ed.setWindowFlags(Qt::Sheet);
@@ -629,7 +706,7 @@
 */
 QETResult ProjectView::saveAs(ProjectSaveOptions options) {
 	if (!project_) return(noProjectResult());
-	
+
 	QString filepath = askUserForFilePath();
 	if (filepath.isEmpty()) return(QETResult());
 	return(doSave(options));
@@ -645,16 +722,16 @@
 */
 QETResult ProjectView::doSave(ProjectSaveOptions options) {
 	if (!project_) return(noProjectResult());
-	
+
 	if (project_ -> filePath().isEmpty()) {
 		// The project has not been saved to a file yet,
 		// so save() actually means saveAs().
 		return(saveAs(options));
 	}
-	
+
 	// look for diagrams matching the required save options
 	saveDiagrams(getDiagrams(options));
-	
+
 	// write to file
 	QETResult result = project_ -> write();
 	updateWindowTitle();
@@ -688,7 +765,7 @@
 */
 int ProjectView::cleanProject() {
 	if (!project_) return(0);
-	
+
 	// s'assure que le schema n'est pas en lecture seule
 	if (project_ -> isReadOnly()) {
 		QET::QetMessageBox::critical(
@@ -698,22 +775,22 @@
 		);
 		return(0);
 	}
-	
+
 	// construit un petit dialogue pour parametrer le nettoyage
-	QCheckBox *clean_tbt        = new QCheckBox(tr("Supprimer les modèles de cartouche inutilisés dans le projet"));
+	QCheckBox *clean_tbt		= new QCheckBox(tr("Supprimer les modèles de cartouche inutilisés dans le projet"));
 	QCheckBox *clean_elements   = new QCheckBox(tr("Supprimer les éléments inutilisés dans le projet"));
 	QCheckBox *clean_categories = new QCheckBox(tr("Supprimer les catégories vides"));
 	QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
-	
-	clean_tbt        -> setChecked(true);
+
+	clean_tbt		-> setChecked(true);
 	clean_elements   -> setChecked(true);
 	clean_categories -> setChecked(true);
-	
+
 	QDialog clean_dialog(parentWidget());
 #ifdef Q_OS_MAC
 	clean_dialog.setWindowFlags(Qt::Sheet);
 #endif
-	
+
 	clean_dialog.setWindowTitle(tr("Nettoyer le projet", "window title"));
 	QVBoxLayout *clean_dialog_layout = new QVBoxLayout();
 	clean_dialog_layout -> addWidget(clean_tbt);
@@ -721,10 +798,10 @@
 	clean_dialog_layout -> addWidget(clean_categories);
 	clean_dialog_layout -> addWidget(buttons);
 	clean_dialog.setLayout(clean_dialog_layout);
-	
+
 	connect(buttons, SIGNAL(accepted()), &clean_dialog, SLOT(accept()));
 	connect(buttons, SIGNAL(rejected()), &clean_dialog, SLOT(reject()));
-	
+
 	int clean_count = 0;
 	if (clean_dialog.exec() == QDialog::Accepted)
 	{
@@ -751,7 +828,7 @@
 	Initialize actions for this widget.
 */
 void ProjectView::initActions() {
-    add_new_diagram_ = new QAction(QET::Icons::AddFolio, tr("Ajouter un folio"), this);
+	add_new_diagram_ = new QAction(QET::Icons::AddFolio, tr("Ajouter un folio"), this);
 	connect(add_new_diagram_, SIGNAL(triggered()), this, SLOT(addNewDiagram()));
 }
 
@@ -761,30 +838,30 @@
 void ProjectView::initWidgets() {
 	setObjectName("ProjectView");
 	setWindowIcon(QET::Icons::ProjectFileGP);
-	
+
 	// initialize the "fallback" widget
 	fallback_widget_ = new QWidget();
 	fallback_label_ = new QLabel(
 		tr(
-            "Ce projet ne contient aucun folio",
+			"Ce projet ne contient aucun folio",
 			"label displayed when a project contains no diagram"
 		)
 	);
 	fallback_label_ -> setAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
-	
+
 	// initialize tabs
 	m_tab = new QTabWidget(this);
 	m_tab -> setMovable(true);
-	
+
 	QToolButton *add_new_diagram_button = new QToolButton;
 	add_new_diagram_button -> setDefaultAction(add_new_diagram_);
 	add_new_diagram_button -> setAutoRaise(true);
 	m_tab -> setCornerWidget(add_new_diagram_button, Qt::TopRightCorner);
-	
+
 	connect(m_tab, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)));
 	connect(m_tab, SIGNAL(tabBarDoubleClicked(int)), this, SLOT(tabDoubleClicked(int)));
 	connect(m_tab->tabBar(), SIGNAL(tabMoved(int, int)), this, SLOT(tabMoved(int, int)));
-	
+
 	fallback_widget_ -> setVisible(false);
 	m_tab -> setVisible(false);
 }
@@ -795,7 +872,7 @@
 void ProjectView::initLayout() {
 	QVBoxLayout *fallback_widget_layout_ = new QVBoxLayout(fallback_widget_);
 	fallback_widget_layout_ -> addWidget(fallback_label_);
-	
+
 	layout_ = new QVBoxLayout(this);
 #ifdef Q_OS_MAC
 	layout_ -> setContentsMargins(0, 8, 0, 0);
@@ -816,9 +893,9 @@
  */
 void ProjectView::loadDiagrams() {
 	if (!project_) return;
-	
+
 	setDisplayFallbackWidget(project_ -> diagrams().isEmpty());
-	
+
 	foreach(Diagram *diagram, project_ -> diagrams()) {
 		DiagramView *sv = new DiagramView(diagram);
 		addDiagram(sv);
@@ -851,12 +928,12 @@
 */
 void ProjectView::adjustReadOnlyState() {
 	bool editable = !(project_ -> isReadOnly());
-	
+
 	// prevent users from moving existing diagrams
 	m_tab -> setMovable(editable);
 	// prevent users from adding new diagrams
 	add_new_diagram_ -> setEnabled(editable);
-	
+
 	// on met a jour le titre du widget, qui reflete l'etat de lecture seule
 	updateWindowTitle();
 }
@@ -879,13 +956,13 @@
 */
 void ProjectView::tabMoved(int from, int to) {
 	if (!project_) return;
-	
+
 	// signale au QETProject le changement d'ordre des schemas
 	project_ -> diagramOrderChanged(from, to);
-	
+
 	// reconstruit la liste associant les index des onglets aux schemas
 	rebuildDiagramsMap();
-	
+
 	// emet un signal pour informer le reste du monde que l'ordre des schemas a change
 	emit(diagramOrderChanged(this, from, to));
 }
@@ -926,7 +1003,7 @@
 void ProjectView::rebuildDiagramsMap() {
 	// vide la map
 	diagram_ids_.clear();
-	
+
 	foreach(DiagramView *diagram_view, diagrams_) {
 		int dv_idx = m_tab -> indexOf(diagram_view);
 		if (dv_idx == -1) continue;
@@ -958,7 +1035,7 @@
 	// repere le schema concerne
 	DiagramView *diagram_view = diagram_ids_[tab_id];
 	if (!diagram_view) return;
-	
+
 	diagram_view -> editDiagramProperties();
 }
 

Modified: trunk/sources/projectview.h
===================================================================
--- trunk/sources/projectview.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/projectview.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -1,17 +1,17 @@
 /*
 	Copyright 2006-2015 The QElectroTech Team
 	This file is part of QElectroTech.
-	
+
 	QElectroTech is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
 	the Free Software Foundation, either version 2 of the License, or
 	(at your option) any later version.
-	
+
 	QElectroTech is distributed in the hope that it will be useful,
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 	GNU General Public License for more details.
-	
+
 	You should have received a copy of the GNU General Public License
 	along with QElectroTech.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -31,7 +31,7 @@
 */
 class ProjectView : public QWidget {
 	Q_OBJECT
-	
+
 	public:
 	enum ProjectSaveOption {
 		CurrentDiagram = 2,
@@ -39,15 +39,15 @@
 		AllDiagrams = 6
 	};
 	Q_DECLARE_FLAGS(ProjectSaveOptions, ProjectSaveOption)
-	
-	
+
+
 	// constructors, destructor
 	public:
 	ProjectView(QETProject *, QWidget * = 0);
 	virtual ~ProjectView();
 	private:
 	ProjectView(const ProjectView &);
-	
+
 	// methods
 	public:
 	QETProject *project();
@@ -56,7 +56,11 @@
 	QList<Diagram *> getDiagrams(ProjectSaveOptions options);
 	DiagramView *currentDiagram() const;
 	void closeEvent(QCloseEvent *);
-	
+	void changeTabUp();
+	void changeTabDown();
+	void changeFirstTab();
+	void changeLastTab();
+
 	public slots:
 	void addNewDiagram();
 	void addNewDiagramFolioList();
@@ -90,7 +94,7 @@
 	void updateTabTitle(DiagramView *, const QString &);
 	void tabMoved(int, int);
 	void editTitleBlockTemplateRequired(const QString &, bool);
-	
+
 	signals:
 	void diagramAdded(DiagramView *);
 	void diagramRemoved(DiagramView *);
@@ -102,26 +106,30 @@
 	void findElementRequired(const ElementsLocation &);
 	void editElementRequired(const ElementsLocation &);
 	void editTitleBlockTemplate(const TitleBlockTemplateLocation &, bool);
-	
+
 	private:
 	void initActions();
 	void initWidgets();
 	void initLayout();
 	void loadDiagrams();
 	DiagramView *findDiagram(Diagram *);
+	DiagramView *nextDiagram();
+	DiagramView *previousDiagram();
+	DiagramView *firstDiagram();
+	DiagramView *lastDiagram();
 	void rebuildDiagramsMap();
 	bool tryClosing();
 	bool tryClosingElementEditors();
 	int tryClosingDiagrams();
 	QString askUserForFilePath(bool = true);
 	QETResult noProjectResult() const;
-	
+
 	private slots:
 	void tabChanged(int);
 	void tabDoubleClicked(int);
 	void setDisplayFallbackWidget(bool);
 	void adjustReadOnlyState();
-	
+
 	// attributes
 	private:
 	QAction *add_new_diagram_;

Modified: trunk/sources/qetdiagrameditor.cpp
===================================================================
--- trunk/sources/qetdiagrameditor.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/qetdiagrameditor.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -1525,6 +1525,34 @@
 }
 
 /**
+ * @brief QETDiagramEditor::acessCurrentProject
+ * Retrieve current Project open in diagram editor
+ */
+ProjectView *QETDiagramEditor::acessCurrentProject (){
+	QMdiSubWindow *current_window = workspace.activeSubWindow();
+	if (!current_window) return(0);
+
+	QWidget *current_widget = current_window -> widget();
+	if (!current_widget) return(0);
+
+	if (ProjectView *project_view = qobject_cast<ProjectView *>(current_widget)) {
+	return(project_view);
+	}
+	return(0);
+}
+
+/**
+ * @brief QETDiagramEditor::acessCurrentDiagramView
+ * Retrieve current DiagramView used in diagram editor
+ */
+DiagramView *QETDiagramEditor::acessCurrentDiagramView () {
+	if (ProjectView *project_view = currentProject()) {
+		return(project_view -> currentDiagram());
+	}
+	return(0);
+}
+
+/**
 	met a jour le menu "Fenetres"
 */
 void QETDiagramEditor::slot_updateWindowsMenu() {

Modified: trunk/sources/qetdiagrameditor.h
===================================================================
--- trunk/sources/qetdiagrameditor.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/qetdiagrameditor.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -65,7 +65,9 @@
 		bool                 openAndAddProject (const QString &, bool = true, bool = true);
 		QList<QString>       editedFiles       () const;
 		ProjectView         *viewForFile       (const QString &) const;
-	
+		ProjectView         *acessCurrentProject ();
+		DiagramView         *acessCurrentDiagramView ();
+
 	protected:
 	virtual bool event(QEvent *);
 	

Modified: trunk/sources/qetproject.cpp
===================================================================
--- trunk/sources/qetproject.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/qetproject.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -34,7 +34,9 @@
 #include "integrationmovetemplateshandler.h"
 #include "xmlelementcollection.h"
 #include "importelementdialog.h"
+#include "numerotationcontextcommands.h"
 
+
 #include <QStandardPaths>
 
 QString QETProject::integration_category_name = "import";
@@ -54,7 +56,8 @@
 	titleblocks_         (this  ),
 	folioSheetsQuantity  (0     ),
 	m_auto_conductor     (true  ),
-	m_elements_collection (nullptr)
+	m_elements_collection (nullptr),
+	m_auto_folio         (true  )
 {
 	// 0 a n schema(s) vide(s)
 	int diagrams_count = qMax(0, diagrams);
@@ -91,7 +94,8 @@
 	titleblocks_         (this  ),
 	folioSheetsQuantity  (0     ),
 	m_auto_conductor     (true  ),
-	m_elements_collection (nullptr)
+	m_elements_collection (nullptr),
+	m_auto_folio         (true  )
 {
 		//Open the file
 	QFile project_file(path);
@@ -443,8 +447,16 @@
 }
 
 /**
+ * @brief QETProject::folioAutoNum
+ * @return All value of conductor autonum stored in project
+ */
+QHash <QString, NumerotationContext> QETProject::folioAutoNum() const {
+	return  m_folio_autonum;
+}
+
+/**
  * @brief QETProject::addConductorAutoNum
- * Add a new numerotation context. If key already exist,
+ * Add a new conductor numerotation context. If key already exist,
  * replace old context by the new context
  * @param key
  * @param context
@@ -454,8 +466,19 @@
 }
 
 /**
+ * @brief QETProject::addFolioAutoNum
+ * Add a new folio numerotation context. If key already exist,
+ * replace old context by the new context
+ * @param key
+ * @param context
+ */
+void QETProject::addFolioAutoNum(QString key, NumerotationContext context) {
+	m_folio_autonum.insert(key, context);
+}
+
+/**
  * @brief QETProject::removeConductorAutonum
- * Remove the Numerotation Context stored with key
+ * Remove Conductor Numerotation Context stored with key
  * @param key
  */
 void QETProject::removeConductorAutonum(QString key) {
@@ -463,8 +486,17 @@
 }
 
 /**
+ * @brief QETProject::removeFolioAutonum
+ * Remove Folio Numerotation Context stored with key
+ * @param key
+ */
+void QETProject::removeFolioAutoNum(QString key) {
+	m_folio_autonum.remove(key);
+}
+
+/**
  * @brief QETProject::conductorAutoNum
- * Return the numerotation context stored with @key.
+ * Return conductor numerotation context stored with @key.
  * If key is not found, return an empty numerotation context
  * @param key
  */
@@ -474,6 +506,17 @@
 }
 
 /**
+ * @brief QETProject::folioAutoNum
+ * Return folio numerotation context stored with @key.
+ * If key is not found, return an empty numerotation context
+ * @param key
+ */
+NumerotationContext QETProject::folioAutoNum (const QString &key) const {
+	if (m_folio_autonum.contains(key)) return m_folio_autonum[key];
+	else return NumerotationContext();
+}
+
+/**
  * @brief QETProject::autoConductor
  * @return true if use of auto conductor is authorized.
  * See also Q_PROPERTY autoConductor
@@ -484,6 +527,16 @@
 }
 
 /**
+ * @brief QETProject::autoFolio
+ * @return true if use of auto folio is authorized.
+ * See also Q_PROPERTY autoFolio
+ */
+bool QETProject::autoFolio() const
+{
+	return m_auto_folio;
+}
+
+/**
  * @brief QETProject::setAutoConductor
  * @param ac
  * Enable the use of auto conductor if true
@@ -496,6 +549,46 @@
 }
 
 /**
+ * @brief QETProject::setAutoFolio
+ * @param ac
+ * Enable the use of auto folio if true
+ * See also Q_PROPERTY autoConductor
+ */
+void QETProject::setAutoFolio(bool af)
+{
+	if (af != m_auto_folio)
+		m_auto_folio = af;
+}
+
+/**
+ * @brief QETProject::autoFolioNumberingNewFolios
+ * emit Signal to add new Diagram with autonum
+ * properties
+ */
+void QETProject::autoFolioNumberingNewFolios(){
+	emit addAutoNumDiagram();
+}
+
+/**
+ * @brief QETProject::autoFolioNumberingNewFolios
+ * @param autonum used, index from selected tabs "from" and "to"
+ * rename folios with selected autonum
+ */
+void QETProject::autoFolioNumberingSelectedFolios(int from, int to, QString autonum){
+	int total_folio = diagrams_.count();
+	DiagramContext project_wide_properties = project_properties_;
+	for (int i=from; i<=to; i++) {
+		QString title = diagrams_[i] -> title();
+		NumerotationContext nC = folioAutoNum(autonum);
+		NumerotationContextCommands nCC = NumerotationContextCommands(nC);
+		diagrams_[i] -> border_and_titleblock.setFolio("%autonum");
+		diagrams_[i] -> border_and_titleblock.setFolioData(i + 1, total_folio, nCC.toRepresentedString(), project_wide_properties);
+		diagrams_[i] -> project() -> addFolioAutoNum(autonum,nCC.next());
+		diagrams_[i] -> update();
+	}
+}
+
+/**
 	@return un document XML representant le projet 
 */
 QDomDocument QETProject::toXml() {
@@ -1157,7 +1250,7 @@
 	m_default_xref_properties	   = XRefProperties::      defaultProperties();
 
 		//Read values indicate in project
-	QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums;
+	QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums, folio_autonums;
 
 	for (QDomNode child = newdiagrams_elmt.firstChild() ; !child.isNull() ; child = child.nextSibling())
 	{
@@ -1176,6 +1269,8 @@
 			xref_elmt = child_elmt;
 		else if (child_elmt.tagName() == "conductors_autonums")
 			conds_autonums = child_elmt;
+		else if (child_elmt.tagName()== "folio_autonums")
+			folio_autonums = child_elmt;
 	}
 
 		// size, titleblock, conductor, report, conductor autonum
@@ -1201,6 +1296,15 @@
 			m_conductor_autonum.insert(elmt.attribute("title"), nc);
 		}
 	}
+	if (!folio_autonums.isNull())
+	{
+		foreach (QDomElement elmt, QET::findInDomElement(folio_autonums, "folio_autonum"))
+	{
+			NumerotationContext nc;
+			nc.fromXml(elmt);
+			m_folio_autonum.insert(elmt.attribute("title"), nc);
+		}
+	}
 }
 
 /**
@@ -1261,6 +1365,15 @@
 		conds_autonums.appendChild(cond_autonum);
 	}
 	xml_element.appendChild(conds_autonums);
+
+	//Export Folio Autonums
+	QDomElement folio_autonums = xml_document.createElement("folio_autonums");
+	foreach (QString key, folioAutoNum().keys()) {
+	QDomElement folio_autonum = folioAutoNum(key).toXml(xml_document, "folio_autonum");
+		folio_autonum.setAttribute("title", key);
+		folio_autonums.appendChild(folio_autonum);
+	}
+	xml_element.appendChild(folio_autonums);
 }
 
 /**
@@ -1416,7 +1529,17 @@
 	project_wide_properties.addValue("projecttitle", title());
 	
 	for (int i = 0 ; i < total_folio ; ++ i) {
-		diagrams_[i] -> border_and_titleblock.setFolioData(i + 1, total_folio, project_wide_properties);
+		QString title = diagrams_[i] -> title();
+		QString autopagenum = diagrams_[i]->border_and_titleblock.autoPageNum();
+		NumerotationContext nC = folioAutoNum(autopagenum);
+		NumerotationContextCommands nCC = NumerotationContextCommands(nC);
+		if((diagrams_[i]->border_and_titleblock.folio().contains("%autonum"))&&(!autopagenum.isNull())){
+			diagrams_[i] -> border_and_titleblock.setFolioData(i + 1, total_folio, nCC.toRepresentedString(), project_wide_properties);
+			diagrams_[i]->project()->addFolioAutoNum(autopagenum,nCC.next());
+		}
+		else{
+		diagrams_[i] -> border_and_titleblock.setFolioData(i + 1, total_folio, NULL, project_wide_properties);
+		}
 		diagrams_[i] -> update();
 	}
 }

Modified: trunk/sources/qetproject.h
===================================================================
--- trunk/sources/qetproject.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/qetproject.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -115,12 +115,21 @@
 		void setDefaultXRefProperties(QHash <QString, XRefProperties> hash);
 
 		QHash <QString, NumerotationContext> conductorAutoNum() const;
+		QHash <QString, NumerotationContext> folioAutoNum() const;
 		void addConductorAutoNum (QString key, NumerotationContext context);
+		void addFolioAutoNum    (QString key, NumerotationContext context);
 		void removeConductorAutonum (QString key);
+		void removeFolioAutoNum (QString key);
 		NumerotationContext conductorAutoNum(const QString &key) const;
+		NumerotationContext folioAutoNum(const QString &key)    const;
 
 		bool autoConductor    () const;
+		bool autoFolio  () const;
 		void setAutoConductor (bool ac);
+		void setAutoFolio (bool af);
+		void autoFolioNumberingNewFolios ();
+		void autoFolioNumberingSelectedFolios(int, int, QString);
+
 		QDomDocument toXml();
 		bool close();
 		QETResult write();
@@ -162,6 +171,7 @@
 	void readOnlyChanged(QETProject *, bool);
 	void reportPropertiesChanged(QString);
 	void XRefPropertiesChanged ();
+	void addAutoNumDiagram();
 	
 	private slots:
 	void updateDiagramsFolioData();
@@ -226,10 +236,12 @@
 	QUndoStack *undo_stack_;
 	/// Conductor auto numerotation
 	QHash <QString, NumerotationContext> m_conductor_autonum;
+	QHash <QString, NumerotationContext> m_folio_autonum;
 	/// Folio List Sheets quantity for this project.
 	int folioSheetsQuantity;
 	bool m_auto_conductor;
 	XmlElementCollection *m_elements_collection;
+	bool m_auto_folio;
 };
 Q_DECLARE_METATYPE(QETProject *)
 #endif

Modified: trunk/sources/titleblockproperties.cpp
===================================================================
--- trunk/sources/titleblockproperties.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/titleblockproperties.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -48,6 +48,7 @@
 		ip.date == date &&\
 		ip.filename == filename &&\
 		ip.folio == folio &&\
+		ip.auto_page_num == auto_page_num &&\
 		ip.template_name == template_name &&\
 		ip.context == context &&\
 		ip.display_at == display_at &&\
@@ -73,6 +74,7 @@
 	e.setAttribute("title",    title);
 	e.setAttribute("filename", filename);
 	e.setAttribute("folio",    folio);
+	e.setAttribute("auto_page_num", auto_page_num);
 	e.setAttribute("date",     exportDate());
 	e.setAttribute("displayAt", (display_at == Qt::BottomEdge? "bottom" : "right"));
 	if (!template_name.isEmpty())
@@ -98,6 +100,7 @@
 	if (e.hasAttribute("title"))       title    = e.attribute("title");
 	if (e.hasAttribute("filename"))    filename = e.attribute("filename");
 	if (e.hasAttribute("folio"))       folio    = e.attribute("folio");
+	if (e.hasAttribute("auto_page_num")) auto_page_num = e.attribute("auto_page_num");
 	if (e.hasAttribute("date"))        setDateFromString(e.attribute("date"));
 	if (e.hasAttribute("displayAt")) display_at = (e.attribute("displayAt") == "bottom" ? Qt::BottomEdge : Qt::RightEdge);
 	
@@ -126,6 +129,7 @@
 	settings.setValue(prefix + "author",   author);
 	settings.setValue(prefix + "filename", filename);
 	settings.setValue(prefix + "folio",    folio);
+	settings.setValue(prefix + "auto_page_num",    auto_page_num);
 	settings.setValue(prefix + "date",     exportDate());
 	settings.setValue(prefix + "displayAt", (display_at == Qt::BottomEdge? "bottom" : "right"));
 	settings.setValue(prefix + "titleblocktemplate", template_name.isEmpty()? QString() : template_name);
@@ -143,6 +147,7 @@
 	author   = settings.value(prefix + "author").toString();
 	filename = settings.value(prefix + "filename").toString();
 	folio    = settings.value(prefix + "folio", "%id/%total").toString();
+	auto_page_num = settings.value(prefix + "auto_page_num").toString();
 	setDateFromString(settings.value(prefix + "date").toString());
 	display_at = (settings.value(prefix + "displayAt", QVariant("bottom")).toString() == "bottom" ? Qt::BottomEdge : Qt::RightEdge);
 	template_name = settings.value(prefix + "titleblocktemplate").toString();

Modified: trunk/sources/titleblockproperties.h
===================================================================
--- trunk/sources/titleblockproperties.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/titleblockproperties.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -53,6 +53,7 @@
 	QDate date;               ///< Date (displayed by the default template)
 	QString filename;         ///< Filename (displayed by the default template)
 	QString folio;            ///< Folio information (displayed by the default template)
+    QString auto_page_num;
 	DateManagement useDate;   ///< Wheter to use the date attribute
 	QString template_name;    ///< Name of the template used to render the title block - an empty string means "the default template provided by the application"
 	DiagramContext context;   ///< Container for the additional, user-defined fields

Modified: trunk/sources/ui/diagrampropertiesdialog.cpp
===================================================================
--- trunk/sources/ui/diagrampropertiesdialog.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/diagrampropertiesdialog.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -55,12 +55,14 @@
 	//Title block widget
 	TitleBlockPropertiesWidget  *titleblock_infos;
 	if (QETProject *parent_project = diagram -> project()) {
-		titleblock_infos  = new TitleBlockPropertiesWidget(parent_project -> embeddedTitleBlockTemplatesCollection(), titleblock, false, this);
+        titleblock_infos  = new TitleBlockPropertiesWidget(parent_project -> embeddedTitleBlockTemplatesCollection(), titleblock, false, diagram->project(),  this);
 		connect(titleblock_infos, SIGNAL(editTitleBlockTemplate(QString, bool)), diagram->views().first(), SIGNAL(editTitleBlockTemplate(QString, bool)));
 	}
 	else
-		titleblock_infos = new TitleBlockPropertiesWidget(titleblock, false, this);
+        titleblock_infos = new TitleBlockPropertiesWidget(titleblock, false, diagram->project(), this);
 	titleblock_infos -> setReadOnly(diagram_is_read_only);
+    	connect(titleblock_infos,SIGNAL(openAutoNumFolioEditor(QString)),this,SLOT(editAutoFolioNum()));
+    	titleblock_infos->setMinimumSize(590,480); //Minimum Size needed for correct display
 
 	//Conductor widget
 	ConductorPropertiesWidget *cpw = new ConductorPropertiesWidget(conductors, this);
@@ -124,7 +126,7 @@
 
 /**
  * @brief DiagramPropertiesDialog::editAutonum
- * Open the autonum editor
+ * Open conductor autonum editor
  */
 void DiagramPropertiesDialog::editAutonum() {
 	ProjectPropertiesDialog ppd (m_diagram->project(), this);
@@ -132,3 +134,14 @@
 	ppd.exec();
 	m_asw -> setItems (m_diagram -> project() -> conductorAutoNum().keys());
 }
+
+/**
+ * @brief DiagramPropertiesDialog::editAutonum
+ * Open folio autonum editor
+ */
+void DiagramPropertiesDialog::editAutoFolioNum () {
+    ProjectPropertiesDialog ppd (m_diagram->project(), this);
+    ppd.setCurrentPage(ProjectPropertiesDialog::Autonum);
+    ppd.changeToFolio();
+    ppd.exec();
+}

Modified: trunk/sources/ui/diagrampropertiesdialog.h
===================================================================
--- trunk/sources/ui/diagrampropertiesdialog.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/diagrampropertiesdialog.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -37,6 +37,7 @@
 
 	public slots:
 		void editAutonum ();
+        void editAutoFolioNum ();
 
 	private:
 		Diagram               *m_diagram;

Added: trunk/sources/ui/folioautonumbering.cpp
===================================================================
--- trunk/sources/ui/folioautonumbering.cpp	                        (rev 0)
+++ trunk/sources/ui/folioautonumbering.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -0,0 +1,218 @@
+/*
+	Copyright 2006-2015 The QElectroTech Team
+	This file is part of QElectroTech.
+	
+	QElectroTech is free software: you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation, either version 2 of the License, or
+	(at your option) any later version.
+	
+	QElectroTech is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+	
+	You should have received a copy of the GNU General Public License
+	along with QElectroTech.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#include "folioautonumbering.h"
+#include "ui_folioautonumbering.h"
+#include <QMessageBox>
+#include <QPushButton>
+#include <QtWidgets>
+#include "qdebug.h"
+#include "qetproject.h"
+#include "diagram.h"
+/**
+ * Constructor
+ */
+FolioAutonumberingW::FolioAutonumberingW(QETProject *project, QWidget *parent) :
+    QWidget(parent),
+    project_(project),
+    ui(new Ui::FolioAutonumberingW)
+
+{
+    ui->setupUi(this);
+    applyEnable(false);
+    ui->m_from_cb->setEnabled(false);
+    ui->m_new_tabs_sb->setEnabled(false);
+    ui->m_to_cb->setEnabled(false);
+}
+
+/**
+ * Destructor
+ */
+FolioAutonumberingW::~FolioAutonumberingW()
+{
+	delete ui;
+}
+
+/**
+ * @brief FolioAutonumberingW::setContext
+ * construct autonums in the comboBox selected in the @autonum_chooser QcomboBox
+ */
+void FolioAutonumberingW::setContext(QList <QString> autonums) {
+    foreach (QString str, autonums) { ui->m_autonums_cb->addItem(str);}
+}
+
+/**
+ * @brief FolioAutonumberingW::autoNumSelected
+ * returns the current autonum selected
+ */
+QString FolioAutonumberingW::autoNumSelected(){
+    return ui->m_autonums_cb->currentText();
+}
+
+/**
+ * @brief FolioAutonumberingW::fromFolio
+ * returns the current "From Folio" index
+ */
+int FolioAutonumberingW::fromFolio(){
+	return ui->m_from_cb->currentIndex()-1;
+}
+
+/**
+ * @brief FolioAutonumberingW::toFolio
+ * returns the current "To Folio" index
+ */
+int FolioAutonumberingW::toFolio(){
+	return ui->m_to_cb->currentIndex()+this->fromFolio()+1;
+}
+
+/**
+ * @brief FolioAutonumberingW::newFoliosNumber
+ * returns the number of folios to create
+ */
+int FolioAutonumberingW::newFoliosNumber(){
+    return ui->m_new_tabs_sb->value();
+}
+
+/**
+ * @brief FolioAutonumberingW::updateFolioList
+ * update Folio List in From and To ComboBox
+ */
+void FolioAutonumberingW::updateFolioList(){
+    ui   -> m_from_cb->clear();
+    ui   -> m_to_cb->clear();
+    if (newFolios){
+		this -> on_m_create_new_tabs_rb_clicked();
+	} else {
+		this -> on_m_autonumber_tabs_rb_clicked();
+	}
+}
+
+/**
+ * @brief FolioAutonumberingW::on_m_create_new_tabs_rb_clicked
+ *	Enable New Tabs SpinBox
+ */
+void FolioAutonumberingW::on_m_create_new_tabs_rb_clicked() {
+    ui->m_from_cb->setEnabled(false);
+    ui->m_to_cb->setEnabled(false);
+    ui->m_new_tabs_sb->setEnabled(true);
+    applyEnable();
+    newFolios = true;
+}
+
+/**
+ * @brief FolioAutonumberingW::on_m_autonumber_tabs_rb_clicked
+ *	Enable From ComboBox, fill From ComboBox
+ */
+void FolioAutonumberingW::on_m_autonumber_tabs_rb_clicked() {
+    ui->m_new_tabs_sb->setEnabled(false);
+    ui->m_from_cb->setEnabled(true);
+    ui->m_to_cb->setEnabled(true);
+    if (ui->m_from_cb->count()<=0){
+        ui->m_from_cb->clear();
+        ui->m_from_cb->addItem("");
+        foreach (Diagram *diagram, project_->diagrams()){
+            ui->m_from_cb->addItem(diagram->title());
+        }
+    }
+    applyEnable();
+    newFolios = false;
+}
+
+/**
+ * @brief FolioAutonumberingW::on_m_new_tabs_sb_valueChanged
+ *	Enable Apply if any new folio is to be created
+ */
+void FolioAutonumberingW::on_m_new_tabs_sb_valueChanged(){
+    if (ui->m_new_tabs_sb->value()>0) applyEnable(true);
+    else applyEnable(false);
+}
+
+/**
+ * @brief FolioAutonumberingW::on_m_from_cb_currentIndexChanged
+ *	Enable To ComboBox
+ */
+void FolioAutonumberingW::on_m_from_cb_currentIndexChanged(){
+    int index = ui->m_from_cb->currentIndex();
+    ui->m_to_cb->clear();
+    if (index > 0){
+        ui->m_to_cb->setEnabled(true);
+        for (int i=index;i<project_->diagrams().size();i++)
+            ui->m_to_cb->addItem(project_->diagrams().at(i)->title());
+        applyEnable(true);
+    }
+    else{
+        applyEnable();
+    }
+
+}
+
+/**
+ * @brief SelectAutonumW::on_buttonBox_clicked
+ * Action on @buttonBox clicked
+ */
+void FolioAutonumberingW::on_buttonBox_clicked(QAbstractButton *button) {
+    //transform button to int
+	int answer = ui -> buttonBox -> buttonRole(button);
+
+    switch (answer) {
+			//help dialog - not implemented yet -
+		case QDialogButtonBox::HelpRole:
+			break;
+			/*QMessageBox::information (this, tr("Folio Autonumbering", "title window"),
+																	tr("C'est ici que vous pouvez définir la manière dont sera numéroté les nouveaux conducteurs.\n"
+																	   "-Une numérotation est composée d'une variable minimum.\n"
+																	   "-Vous pouvez ajouter ou supprimer une variable de numérotation par le biais des boutons - et +.\n"
+																	   "-Une variable de numérotation comprant: un type, une valeur et une incrémentation.\n"
+
+																	   "\n-les types \"Chiffre 1\", \"Chiffre 01\" et \"Chiffre 001\", représente un type numérique définie dans le champs \"Valeur\", "
+																	   "qui s'incrémente à chaque nouveau conducteur de la valeur du champ \"Incrémentation\".\n"
+																	   "-\"Chiffre 01\" et \"Chiffre 001\", sont respectivement représenté sur le schéma par deux et trois digits minimum.\n"
+																	   "Si le chiffre définie dans le champs Valeur posséde moins de digits que le type choisit,"
+																	   "celui-ci sera précédé par un ou deux 0 afin de respecter son type.\n"
+
+																	   "\n-Le type \"Texte\", représente un texte fixe.\nLe champs \"Incrémentation\" n'est pas utilisé.\n"
+
+																	   "\n-Le type \"N° folio\" représente le n° du folio en cours.\nLes autres champs ne sont pas utilisés.",
+																	   "help dialog about the autonumerotation"));	*/		
+        case QDialogButtonBox::ApplyRole:
+            applyEnable(true);
+			emit applyPressed();
+            updateFolioList();
+			break;
+    }
+}
+
+/**
+ * @brief SelectAutonumW::applyEnable
+ * enable/disable the apply button
+ */
+void FolioAutonumberingW::applyEnable(bool b) {
+   if (b){
+        bool valid = true;
+        if (ui->m_create_new_tabs_rb->isChecked()){
+            if (ui->m_new_tabs_sb->value()==0) valid = false;
+            ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(valid);
+        }
+        else{
+            if (ui->m_to_cb->currentText()=="") valid = false;
+            ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(valid);
+        }
+   }
+    else{
+        ui -> buttonBox -> button(QDialogButtonBox::Apply) -> setEnabled(b);
+        }
+}

Added: trunk/sources/ui/folioautonumbering.h
===================================================================
--- trunk/sources/ui/folioautonumbering.h	                        (rev 0)
+++ trunk/sources/ui/folioautonumbering.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -0,0 +1,72 @@
+/*
+	Copyright 2006-2015 The QElectroTech Team
+	This file is part of QElectroTech.
+	
+	QElectroTech is free software: you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation, either version 2 of the License, or
+	(at your option) any later version.
+	
+	QElectroTech is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+	
+	You should have received a copy of the GNU General Public License
+	along with QElectroTech.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef FOLIOAUTONUMBERING_H
+#define FOLIOAUTONUMBERING_H
+
+#include <QWidget>
+#include "numerotationcontext.h"
+
+class NumPartEditorW;
+class QAbstractButton;
+class QETProject;
+
+namespace Ui {
+        class FolioAutonumberingW;
+}
+
+class FolioAutonumberingW : public QWidget
+{
+	Q_OBJECT
+	
+	//METHODS
+	public:
+        explicit FolioAutonumberingW(QETProject *project, QWidget *parent = 0);
+        ~FolioAutonumberingW();
+
+        void setContext (QList <QString> autonums);
+		NumerotationContext toNumContext() const;
+        QString autoNumSelected();
+        int newFoliosNumber();
+        bool newFolios;
+        int fromFolio();
+        int toFolio();
+
+	// SIGNALS
+	signals:
+		void applyPressed();
+		void m_autonumber_tabs_rb_clicked();
+
+	//SLOTS
+	private slots:
+        void on_m_create_new_tabs_rb_clicked();
+        void on_m_autonumber_tabs_rb_clicked();
+        void on_m_new_tabs_sb_valueChanged();
+		void on_buttonBox_clicked(QAbstractButton *);
+        void on_m_from_cb_currentIndexChanged();
+		void applyEnable (bool = true);
+
+	//ATTRIBUTES
+	private:
+        QETProject *project_;
+        Ui::FolioAutonumberingW *ui;
+		QList <NumPartEditorW *> num_part_list_;
+		NumerotationContext m_context;
+        void updateFolioList();
+};
+
+#endif // FOLIOAUTONUMBERING_H

Added: trunk/sources/ui/folioautonumbering.ui
===================================================================
--- trunk/sources/ui/folioautonumbering.ui	                        (rev 0)
+++ trunk/sources/ui/folioautonumbering.ui	2016-05-13 13:10:32 UTC (rev 4476)
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>FolioAutonumberingW</class>
+ <widget class="QWidget" name="FolioAutonumberingW">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>467</width>
+    <height>550</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>460</width>
+    <height>0</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="sizeConstraint">
+    <enum>QLayout::SetDefaultConstraint</enum>
+   </property>
+   <item>
+    <widget class="QScrollArea" name="scrollArea">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Minimum" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>50</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>450</width>
+       <height>253</height>
+      </size>
+     </property>
+     <property name="sizeIncrement">
+      <size>
+       <width>0</width>
+       <height>50</height>
+      </size>
+     </property>
+     <property name="mouseTracking">
+      <bool>false</bool>
+     </property>
+     <property name="layoutDirection">
+      <enum>Qt::LeftToRight</enum>
+     </property>
+     <property name="verticalScrollBarPolicy">
+      <enum>Qt::ScrollBarAsNeeded</enum>
+     </property>
+     <property name="horizontalScrollBarPolicy">
+      <enum>Qt::ScrollBarAlwaysOff</enum>
+     </property>
+     <property name="sizeAdjustPolicy">
+      <enum>QAbstractScrollArea::AdjustToContents</enum>
+     </property>
+     <property name="widgetResizable">
+      <bool>true</bool>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignHCenter|Qt::AlignTop</set>
+     </property>
+     <widget class="QWidget" name="scrollAreaWidgetContents">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>448</width>
+        <height>497</height>
+       </rect>
+      </property>
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="minimumSize">
+       <size>
+        <width>430</width>
+        <height>250</height>
+       </size>
+      </property>
+      <layout class="QGridLayout" name="gridLayout">
+       <property name="sizeConstraint">
+        <enum>QLayout::SetFixedSize</enum>
+       </property>
+       <item row="2" column="1" colspan="2">
+        <widget class="QGroupBox" name="Options">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="title">
+          <string>Numbering Options</string>
+         </property>
+         <layout class="QGridLayout" name="gridLayout_2">
+          <item row="2" column="1">
+           <widget class="QComboBox" name="m_to_cb">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="sizeAdjustPolicy">
+             <enum>QComboBox::AdjustToContents</enum>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="0">
+           <widget class="QLabel" name="label_2">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>New Tabs</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QComboBox" name="m_from_cb">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="sizeAdjustPolicy">
+             <enum>QComboBox::AdjustToContents</enum>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QSpinBox" name="m_new_tabs_sb">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="maximum">
+             <number>999</number>
+            </property>
+            <property name="displayIntegerBase">
+             <number>10</number>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_4">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>To</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label_3">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>From</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="1" column="1" colspan="2">
+        <widget class="QGroupBox" name="Select">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="title">
+          <string>Select:</string>
+         </property>
+         <layout class="QHBoxLayout" name="horizontalLayout">
+          <item>
+           <widget class="QRadioButton" name="m_create_new_tabs_rb">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>Create New Tabs</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QRadioButton" name="m_autonumber_tabs_rb">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>Autonumber Selected Tabs</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="QLabel" name="label">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>Folio Auto Numbering:</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="2">
+        <widget class="QComboBox" name="m_autonums_cb">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="sizeAdjustPolicy">
+          <enum>QComboBox::AdjustToContents</enum>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="1" colspan="2">
+        <spacer name="verticalSpacer">
+         <property name="orientation">
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Apply|QDialogButtonBox::Help|QDialogButtonBox::Reset</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

Modified: trunk/sources/ui/projectpropertiesdialog.cpp
===================================================================
--- trunk/sources/ui/projectpropertiesdialog.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/projectpropertiesdialog.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -28,11 +28,18 @@
  * @param parent : parent widget of this dialog
  */
 ProjectPropertiesDialog::ProjectPropertiesDialog(QETProject *project, QWidget *parent) {
+    NewDiagramPage *newDiagramPage = new NewDiagramPage(project,parent,this);
+    ProjectAutoNumConfigPage *projectAutoNumConfigPage = new ProjectAutoNumConfigPage (project);
 	m_properties_dialog = new ConfigDialog (parent);
 	m_properties_dialog -> setWindowTitle(QObject::tr("Propriétés du projet", "window title"));
 	m_properties_dialog -> addPage(new ProjectMainConfigPage       (project));
-	m_properties_dialog -> addPage(new NewDiagramPage (project));
-	m_properties_dialog -> addPage(new ProjectAutoNumConfigPage    (project));
+    m_properties_dialog -> addPage(newDiagramPage);
+    m_properties_dialog -> addPage(projectAutoNumConfigPage);
+    connect(projectAutoNumConfigPage,SIGNAL(setAutoNum(QString)),newDiagramPage,SLOT(setFolioAutonum(QString)));
+    connect(projectAutoNumConfigPage,SIGNAL(saveCurrentTbp()),newDiagramPage,SLOT(saveCurrentTbp()));
+    connect(projectAutoNumConfigPage,SIGNAL(loadSavedTbp()),newDiagramPage,SLOT(loadSavedTbp()));
+    m_properties_dialog->setMinimumHeight(690);
+    
 }
 
 /**
@@ -58,3 +65,12 @@
 void ProjectPropertiesDialog::setCurrentPage(ProjectPropertiesDialog::Page p) {
 	m_properties_dialog -> setCurrentPage(static_cast <int> (p));
 }
+
+/**
+ * @brief ProjectPropertiesDialog::changeToFolio
+ * Change the current displayed tab to folio tab.
+ */
+void ProjectPropertiesDialog::changeToFolio() {
+   ProjectAutoNumConfigPage *autoNumPage = static_cast <ProjectAutoNumConfigPage*>(m_properties_dialog->pages.at(2));
+   autoNumPage->changeToTab(1);
+}

Modified: trunk/sources/ui/projectpropertiesdialog.h
===================================================================
--- trunk/sources/ui/projectpropertiesdialog.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/projectpropertiesdialog.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -17,6 +17,7 @@
 */
 #ifndef PROJECTPROPERTIESDIALOG_H
 #define PROJECTPROPERTIESDIALOG_H
+#include <QtCore>
 
 class QETProject;
 class QWidget;
@@ -26,8 +27,7 @@
  * @brief The ProjectPropertiesDialog class
  * this class builds a dialog to edit whole properties of a project
  */
-class ProjectPropertiesDialog
-{
+class ProjectPropertiesDialog : public QObject {
 	public:
 		enum Page {
 			Main    = 0,
@@ -39,6 +39,7 @@
 		~ProjectPropertiesDialog();
 		void exec();
 		void setCurrentPage(ProjectPropertiesDialog::Page);
+        void changeToFolio();
 
 	private:
 		ConfigDialog *m_properties_dialog;

Modified: trunk/sources/ui/selectautonumw.ui
===================================================================
--- trunk/sources/ui/selectautonumw.ui	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/selectautonumw.ui	2016-05-13 13:10:32 UTC (rev 4476)
@@ -6,183 +6,289 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>432</width>
-    <height>273</height>
+    <width>466</width>
+    <height>506</height>
    </rect>
   </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="QGroupBox" name="definition_groupe">
-     <property name="title">
-      <string>Définition</string>
+    <widget class="QScrollArea" name="scrollArea">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <property name="spacing">
-         <number>0</number>
-        </property>
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
+     <property name="minimumSize">
+      <size>
+       <width>430</width>
+       <height>455</height>
+      </size>
+     </property>
+     <property name="sizeIncrement">
+      <size>
+       <width>0</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="mouseTracking">
+      <bool>false</bool>
+     </property>
+     <property name="layoutDirection">
+      <enum>Qt::LeftToRight</enum>
+     </property>
+     <property name="verticalScrollBarPolicy">
+      <enum>Qt::ScrollBarAsNeeded</enum>
+     </property>
+     <property name="horizontalScrollBarPolicy">
+      <enum>Qt::ScrollBarAlwaysOff</enum>
+     </property>
+     <property name="sizeAdjustPolicy">
+      <enum>QAbstractScrollArea::AdjustToContents</enum>
+     </property>
+     <property name="widgetResizable">
+      <bool>true</bool>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+     <widget class="QWidget" name="scrollAreaWidgetContents">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>460</width>
+        <height>453</height>
+       </rect>
+      </property>
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="minimumSize">
+       <size>
+        <width>460</width>
+        <height>450</height>
+       </size>
+      </property>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <property name="sizeConstraint">
+        <enum>QLayout::SetFixedSize</enum>
+       </property>
+       <item>
+        <widget class="QGroupBox" name="definition_groupe">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="title">
+          <string>Définition</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+         </property>
+         <layout class="QVBoxLayout" name="verticalLayout_3">
+          <property name="sizeConstraint">
+           <enum>QLayout::SetFixedSize</enum>
           </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="remove_button">
-          <property name="toolTip">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Supprimer une variable de numérotation&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-          <property name="icon">
-           <iconset resource="../../qelectrotech.qrc">
-            <normaloff>:/ico/22x22/list-remove.png</normaloff>:/ico/22x22/list-remove.png</iconset>
-          </property>
-          <property name="flat">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QPushButton" name="add_button">
-          <property name="toolTip">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ajouter une variable de numérotation&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-          <property name="icon">
-           <iconset resource="../../qelectrotech.qrc">
-            <normaloff>:/ico/22x22/list-add.png</normaloff>:/ico/22x22/list-add.png</iconset>
-          </property>
-          <property name="flat">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QPushButton" name="m_previous_pb">
-          <property name="toolTip">
-           <string>Précédent</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-          <property name="icon">
-           <iconset resource="../../qelectrotech.qrc">
-            <normaloff>:/ico/16x16/arrow-left.png</normaloff>:/ico/16x16/arrow-left.png</iconset>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QPushButton" name="m_next_pb">
-          <property name="toolTip">
-           <string>Suivant</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-          <property name="icon">
-           <iconset resource="../../qelectrotech.qrc">
-            <normaloff>:/ico/16x16/arrow-right.png</normaloff>:/ico/16x16/arrow-right.png</iconset>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="editor_layout">
-        <property name="spacing">
-         <number>0</number>
-        </property>
-        <item>
-         <layout class="QHBoxLayout" name="label_layout">
-          <property name="spacing">
-           <number>0</number>
-          </property>
           <item>
-           <widget class="QLabel" name="type_label">
-            <property name="text">
-             <string>Type</string>
+           <layout class="QHBoxLayout" name="horizontalLayout">
+            <property name="spacing">
+             <number>0</number>
             </property>
-            <property name="alignment">
-             <set>Qt::AlignCenter</set>
+            <property name="sizeConstraint">
+             <enum>QLayout::SetDefaultConstraint</enum>
             </property>
-           </widget>
+            <item>
+             <spacer name="horizontalSpacer_2">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+            <item>
+             <widget class="QPushButton" name="remove_button">
+              <property name="toolTip">
+               <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Supprimer une variable de numérotation&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="icon">
+               <iconset resource="../../qelectrotech.qrc">
+                <normaloff>:/ico/22x22/list-remove.png</normaloff>:/ico/22x22/list-remove.png</iconset>
+              </property>
+              <property name="flat">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="add_button">
+              <property name="toolTip">
+               <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ajouter une variable de numérotation&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="icon">
+               <iconset resource="../../qelectrotech.qrc">
+                <normaloff>:/ico/22x22/list-add.png</normaloff>:/ico/22x22/list-add.png</iconset>
+              </property>
+              <property name="flat">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="m_previous_pb">
+              <property name="toolTip">
+               <string>Précédent</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="icon">
+               <iconset resource="../../qelectrotech.qrc">
+                <normaloff>:/ico/16x16/arrow-left.png</normaloff>:/ico/16x16/arrow-left.png</iconset>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QPushButton" name="m_next_pb">
+              <property name="toolTip">
+               <string>Suivant</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="icon">
+               <iconset resource="../../qelectrotech.qrc">
+                <normaloff>:/ico/16x16/arrow-right.png</normaloff>:/ico/16x16/arrow-right.png</iconset>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer name="horizontalSpacer">
+              <property name="orientation">
+               <enum>Qt::Horizontal</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>40</width>
+                <height>20</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
           </item>
           <item>
-           <widget class="QLabel" name="value_label">
-            <property name="text">
-             <string>Valeur</string>
+           <layout class="QVBoxLayout" name="editor_layout" stretch="0">
+            <property name="spacing">
+             <number>0</number>
             </property>
-            <property name="alignment">
-             <set>Qt::AlignCenter</set>
+            <property name="sizeConstraint">
+             <enum>QLayout::SetDefaultConstraint</enum>
             </property>
-           </widget>
+            <item>
+             <layout class="QHBoxLayout" name="label_layout" stretch="0,0,0">
+              <property name="spacing">
+               <number>0</number>
+              </property>
+              <property name="sizeConstraint">
+               <enum>QLayout::SetDefaultConstraint</enum>
+              </property>
+              <item>
+               <widget class="QLabel" name="type_label">
+                <property name="text">
+                 <string>Type</string>
+                </property>
+                <property name="alignment">
+                 <set>Qt::AlignCenter</set>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QLabel" name="value_label">
+                <property name="text">
+                 <string>Valeur</string>
+                </property>
+                <property name="alignment">
+                 <set>Qt::AlignCenter</set>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QLabel" name="increase_label">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+                  <horstretch>0</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="text">
+                 <string>Incrémentation</string>
+                </property>
+                <property name="alignment">
+                 <set>Qt::AlignCenter</set>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </item>
+           </layout>
           </item>
           <item>
-           <widget class="QLabel" name="increase_label">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
+           <spacer name="verticalSpacer">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
             </property>
-            <property name="text">
-             <string>Incrémentation</string>
+            <property name="sizeType">
+             <enum>QSizePolicy::MinimumExpanding</enum>
             </property>
-            <property name="alignment">
-             <set>Qt::AlignCenter</set>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>30</height>
+             </size>
             </property>
-           </widget>
+           </spacer>
           </item>
          </layout>
-        </item>
-       </layout>
-      </item>
-     </layout>
+        </widget>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
    <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
      </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
      <property name="standardButtons">
       <set>QDialogButtonBox::Apply|QDialogButtonBox::Help|QDialogButtonBox::Reset</set>
      </property>

Modified: trunk/sources/ui/titleblockpropertieswidget.cpp
===================================================================
--- trunk/sources/ui/titleblockpropertieswidget.cpp	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/titleblockpropertieswidget.cpp	2016-05-13 13:10:32 UTC (rev 4476)
@@ -29,13 +29,13 @@
  * @param current_date if true, display the radio button "current date"
  * @param parent parent widget
  */
-TitleBlockPropertiesWidget::TitleBlockPropertiesWidget(const TitleBlockProperties &titleblock, bool current_date, QWidget *parent) :
+TitleBlockPropertiesWidget::TitleBlockPropertiesWidget(const TitleBlockProperties &titleblock, bool current_date, QETProject *project, QWidget *parent) :
 	QWidget(parent),
 	ui(new Ui::TitleBlockPropertiesWidget)
 {
 	ui->setupUi(this);
-	initDialog(current_date);
-	setProperties(titleblock);
+    	initDialog(current_date, project);
+    	setProperties(titleblock);
 }
 
 /**
@@ -46,12 +46,12 @@
  * @param current_date if true, display the radio button "current date"
  * @param parent parent widget
  */
-TitleBlockPropertiesWidget::TitleBlockPropertiesWidget(TitleBlockTemplatesCollection *tbt_collection, const TitleBlockProperties &titleblock, bool current_date, QWidget *parent) :
+TitleBlockPropertiesWidget::TitleBlockPropertiesWidget(TitleBlockTemplatesCollection *tbt_collection, const TitleBlockProperties &titleblock, bool current_date, QETProject *project, QWidget *parent) :
 	QWidget(parent),
 	ui(new Ui::TitleBlockPropertiesWidget)
 {
 	ui->setupUi(this);
-	initDialog(current_date);
+    initDialog(current_date,project);
 	addCollection(tbt_collection);
 	updateTemplateList();
 	setProperties(titleblock);
@@ -65,12 +65,12 @@
  * @param current_date if true, display the radio button "current date"
  * @param parent parent widget
  */
-TitleBlockPropertiesWidget::TitleBlockPropertiesWidget(QList<TitleBlockTemplatesCollection *> tbt_collection, const TitleBlockProperties &titleblock, bool current_date, QWidget *parent) :
+TitleBlockPropertiesWidget::TitleBlockPropertiesWidget(QList<TitleBlockTemplatesCollection *> tbt_collection, const TitleBlockProperties &titleblock, bool current_date, QETProject *project, QWidget *parent) :
 	QWidget(parent),
 	ui(new Ui::TitleBlockPropertiesWidget)
 {
 	ui->setupUi(this);
-	initDialog(current_date);
+	initDialog(current_date,project);
 	foreach (TitleBlockTemplatesCollection *c, tbt_collection)
 		addCollection(c);
 	updateTemplateList();
@@ -96,6 +96,7 @@
 	ui -> m_file_le   -> setText (properties.filename);
 	ui -> m_folio_le  -> setText (properties.folio);
 	ui -> m_display_at_cb -> setCurrentIndex(properties.display_at == Qt::BottomEdge ? 0 : 1);
+	ui->auto_page_cb->setCurrentText(properties.auto_page_num);
 
 	//About date	
 	ui -> m_date_now_pb -> setDisabled(true);
@@ -172,10 +173,50 @@
 
 	prop.context = m_dcw -> context();
 
+    prop.auto_page_num = ui->auto_page_cb->currentText();
+
 	return prop;
 }
 
 /**
+ * @brief TitleBlockPropertiesWidget::properties
+ * @return return properties to enable folio autonum
+ */
+TitleBlockProperties TitleBlockPropertiesWidget::propertiesAutoNum(QString autoNum) const {
+	TitleBlockProperties prop;
+	prop.title    = ui -> m_title_le  -> text();
+	prop.author   = ui -> m_author_le -> text();
+	prop.filename = ui -> m_file_le   -> text();
+	prop.folio    = "%autonum";
+	prop.display_at = ui -> m_display_at_cb -> currentIndex() == 0 ? Qt::BottomEdge : Qt::RightEdge;
+
+	if (ui->m_no_date_rb->isChecked()) {
+		prop.useDate = TitleBlockProperties::UseDateValue;
+		prop.date = QDate();
+	}
+	else if (ui -> m_fixed_date_rb -> isChecked()) {
+		prop.useDate = TitleBlockProperties::UseDateValue;
+		prop.date = ui->m_date_edit->date();
+	}
+	else if (ui->m_current_date_rb->isVisible() && ui->m_current_date_rb->isChecked()) {
+		prop.useDate = TitleBlockProperties::CurrentDate;
+		prop.date = QDate::currentDate();
+	}
+
+	if (!currentTitleBlockTemplateName().isEmpty())
+	{
+		prop.template_name = currentTitleBlockTemplateName();
+		prop.collection = m_map_index_to_collection_type.at(ui->m_tbt_cb->currentIndex());
+	}
+
+	prop.context = m_dcw -> context();
+
+	prop.auto_page_num = autoNum;
+
+	return prop;
+}
+
+/**
  * @brief TitleBlockPropertiesWidget::setTitleBlockTemplatesVisible
  * if true, title block template combo box and menu button is visible
  */
@@ -220,7 +261,7 @@
  * Init this dialog
  * @param current_date true for display current date radio button
  */
-void TitleBlockPropertiesWidget::initDialog(const bool &current_date) {
+void TitleBlockPropertiesWidget::initDialog(const bool &current_date,  QETProject *project) {
 	m_dcw = new DiagramContextWidget();
 	ui -> m_tab2_vlayout -> addWidget(m_dcw);
 
@@ -239,6 +280,19 @@
 	ui -> m_tbt_pb -> setMenu(m_tbt_menu);
 
 	connect(ui->m_tbt_cb, SIGNAL(currentIndexChanged(int)), this, SLOT(changeCurrentTitleBlockTemplate(int)));
+
+	if (project!= NULL){
+		keys_2 = project -> folioAutoNum().keys();
+		foreach (QString str, keys_2) { ui -> auto_page_cb -> addItem(str); }
+		if (ui->auto_page_cb->currentText()==NULL)
+			ui->auto_page_cb->addItem("Create an Auto Folio Numbering");
+	}
+	else{
+		ui->auto_page_cb->hide();
+		ui->m_edit_autofolionum_pb->hide();
+		ui->label_9->hide();
+	}
+
 }
 
 /**
@@ -342,3 +396,15 @@
 void TitleBlockPropertiesWidget::on_m_date_now_pb_clicked() {
 	ui -> m_date_edit -> setDate(QDate::currentDate());
 }
+
+/**
+ * @brief TitleBlockPropertiesWidget::on_m_edit_autofolionum_pb_clicked
+ * Open Auto Folio Num dialog
+ */
+void TitleBlockPropertiesWidget::on_m_edit_autofolionum_pb_clicked() {
+    emit openAutoNumFolioEditor(ui->auto_page_cb->currentText());
+    if (ui->auto_page_cb->currentText()!="Create an Auto Folio Numbering")
+    {
+		//still to implement: load current auto folio num settings
+    }
+}

Modified: trunk/sources/ui/titleblockpropertieswidget.h
===================================================================
--- trunk/sources/ui/titleblockpropertieswidget.h	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/titleblockpropertieswidget.h	2016-05-13 13:10:32 UTC (rev 4476)
@@ -18,11 +18,15 @@
 #ifndef TITLEBLOCKPROPERTIESWIDGET_H
 #define TITLEBLOCKPROPERTIESWIDGET_H
 
+#include "qetproject.h"
 #include <QWidget>
 #include "titleblockproperties.h"
 #include "diagramcontextwidget.h"
 #include "qet.h"
+#include "numerotationcontext.h"
 
+class NumerotationContext;
+class QETProject;
 class QMenu;
 class TitleBlockTemplatesCollection;
 
@@ -35,13 +39,15 @@
 		Q_OBJECT
 
 	public:
-		explicit TitleBlockPropertiesWidget(const TitleBlockProperties &titleblock = TitleBlockProperties(), bool current_date = false, QWidget *parent = 0);
-		explicit TitleBlockPropertiesWidget(TitleBlockTemplatesCollection *tbt_collection, const TitleBlockProperties &titleblock = TitleBlockProperties(), bool current_date = false, QWidget *parent = 0);
-		explicit TitleBlockPropertiesWidget(QList <TitleBlockTemplatesCollection *> tbt_collection, const TitleBlockProperties &titleblock = TitleBlockProperties(), bool current_date = false, QWidget *parent = 0);
+		explicit TitleBlockPropertiesWidget(const TitleBlockProperties &titleblock = TitleBlockProperties(), bool current_date = false, QETProject *project = NULL, QWidget *parent = 0);
+		explicit TitleBlockPropertiesWidget(TitleBlockTemplatesCollection *tbt_collection, const TitleBlockProperties &titleblock = TitleBlockProperties(), bool current_date = false, QETProject *project = NULL, QWidget *parent = 0);
+		explicit TitleBlockPropertiesWidget(QList <TitleBlockTemplatesCollection *> tbt_collection, const TitleBlockProperties &titleblock = TitleBlockProperties(), bool current_date = false, QETProject *project = NULL, QWidget *parent = 0);
 		~TitleBlockPropertiesWidget();
 
 		void setProperties(const TitleBlockProperties &properties);
 		TitleBlockProperties properties() const;
+		TitleBlockProperties propertiesAutoNum(QString autoNum) const;
+		void setPropertiesWithAutoNum(const TitleBlockProperties &properties, QString autoNum);
 
 		void setTitleBlockTemplatesVisible(const bool &visible);
 		void setReadOnly (const bool &ro);
@@ -49,7 +55,7 @@
 	private:
 		void addCollection (TitleBlockTemplatesCollection *tbt_collection);
 		QString currentTitleBlockTemplateName () const;
-		void initDialog(const bool &current_date);
+		void initDialog(const bool &current_date, QETProject *project);
 		int getIndexFor (const QString &tbt_name, const QET::QetCollection collection) const;
 
 	private slots:
@@ -58,9 +64,12 @@
 		void updateTemplateList();
 		void changeCurrentTitleBlockTemplate(int);
 		void on_m_date_now_pb_clicked();
+		void on_m_edit_autofolionum_pb_clicked();
 
 	signals:
 		void editTitleBlockTemplate(const QString &, bool);
+		void set_auto_page_num() const;
+		void openAutoNumFolioEditor (QString);
 
 	private:
 		Ui::TitleBlockPropertiesWidget *ui;
@@ -69,6 +78,7 @@
 		QMenu *m_tbt_menu;
 		QList <TitleBlockTemplatesCollection *> m_tbt_collection_list;
 		QList <QET::QetCollection> m_map_index_to_collection_type;
+		QList <QString> keys_2;
 };
 
 #endif // TITLEBLOCKPROPERTIESWIDGET_H

Modified: trunk/sources/ui/titleblockpropertieswidget.ui
===================================================================
--- trunk/sources/ui/titleblockpropertieswidget.ui	2016-05-12 15:41:55 UTC (rev 4475)
+++ trunk/sources/ui/titleblockpropertieswidget.ui	2016-05-13 13:10:32 UTC (rev 4476)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>530</width>
-    <height>452</height>
+    <width>572</width>
+    <height>590</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -33,256 +33,316 @@
     <number>9</number>
    </property>
    <item>
-    <widget class="QGroupBox" name="m_tbt_gb">
-     <property name="title">
-      <string>Informations des cartouches</string>
+    <widget class="QScrollArea" name="scrollArea">
+     <property name="widgetResizable">
+      <bool>true</bool>
      </property>
-     <property name="checkable">
-      <bool>false</bool>
-     </property>
-     <property name="checked">
-      <bool>false</bool>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <item>
-       <layout class="QHBoxLayout" name="m_tbt_hlayout" stretch="0,1,0">
-        <property name="sizeConstraint">
-         <enum>QLayout::SetDefaultConstraint</enum>
-        </property>
-        <item>
-         <widget class="QLabel" name="m_tbt_label">
-          <property name="text">
-           <string>Modèle :</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QComboBox" name="m_tbt_cb"/>
-        </item>
-        <item>
-         <widget class="QPushButton" name="m_tbt_pb">
-          <property name="text">
-           <string/>
-          </property>
-          <property name="icon">
-           <iconset resource="../../qelectrotech.qrc">
-            <normaloff>:/ico/16x16/label.png</normaloff>:/ico/16x16/label.png</iconset>
-          </property>
-          <property name="flat">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QTabWidget" name="tabWidget">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="tabPosition">
-         <enum>QTabWidget::South</enum>
-        </property>
-        <property name="tabShape">
-         <enum>QTabWidget::Rounded</enum>
-        </property>
-        <property name="currentIndex">
-         <number>0</number>
-        </property>
-        <property name="elideMode">
-         <enum>Qt::ElideNone</enum>
-        </property>
-        <property name="usesScrollButtons">
-         <bool>true</bool>
-        </property>
-        <property name="tabsClosable">
-         <bool>false</bool>
-        </property>
-        <widget class="QWidget" name="tab">
-         <attribute name="title">
-          <string>Principales</string>
-         </attribute>
-         <layout class="QVBoxLayout" name="verticalLayout_2">
+     <widget class="QWidget" name="scrollAreaWidgetContents_1">
+      <property name="geometry">
+       <rect>
+        <x>0</x>
+        <y>0</y>
+        <width>552</width>
+        <height>570</height>
+       </rect>
+      </property>
+      <layout class="QVBoxLayout" name="verticalLayout_5">
+       <item>
+        <widget class="QGroupBox" name="m_tbt_gb">
+         <property name="title">
+          <string>Informations des cartouches</string>
+         </property>
+         <property name="checkable">
+          <bool>false</bool>
+         </property>
+         <property name="checked">
+          <bool>false</bool>
+         </property>
+         <layout class="QVBoxLayout" name="verticalLayout_3">
           <item>
-           <layout class="QGridLayout" name="gridLayout_4">
-            <item row="5" column="2">
-             <widget class="QLineEdit" name="m_folio_le">
-              <property name="toolTip">
-               <string>Disponible en tant que %folio pour les modèles de cartouches</string>
-              </property>
-             </widget>
-            </item>
-            <item row="2" column="1">
-             <widget class="QLabel" name="label_3">
+           <layout class="QHBoxLayout" name="m_tbt_hlayout" stretch="0,1,0">
+            <property name="sizeConstraint">
+             <enum>QLayout::SetDefaultConstraint</enum>
+            </property>
+            <item>
+             <widget class="QLabel" name="m_tbt_label">
               <property name="text">
-               <string>Auteur :</string>
+               <string>Modèle :</string>
               </property>
              </widget>
             </item>
-            <item row="7" column="1">
-             <widget class="QLabel" name="label">
+            <item>
+             <widget class="QComboBox" name="m_tbt_cb"/>
+            </item>
+            <item>
+             <widget class="QPushButton" name="m_tbt_pb">
               <property name="text">
-               <string>Afficher :</string>
+               <string/>
               </property>
-             </widget>
-            </item>
-            <item row="6" column="2">
-             <widget class="QLabel" name="label_7">
-              <property name="frameShape">
-               <enum>QFrame::NoFrame</enum>
+              <property name="icon">
+               <iconset resource="../../qelectrotech.qrc">
+                <normaloff>:/ico/16x16/label.png</normaloff>:/ico/16x16/label.png</iconset>
               </property>
-              <property name="text">
-               <string>Les variables suivantes sont utilisables dans le champ Folio :
-- %id : numéro du folio courant dans le projet 
-- %total : nombre total de folios dans le projet</string>
-              </property>
-              <property name="scaledContents">
+              <property name="flat">
                <bool>false</bool>
               </property>
-              <property name="alignment">
-               <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-              </property>
              </widget>
             </item>
-            <item row="3" column="2">
-             <layout class="QGridLayout" name="gridLayout_2" columnstretch="0,1,0">
-              <item row="0" column="0">
-               <widget class="QRadioButton" name="m_no_date_rb">
-                <property name="text">
-                 <string>Pas de date</string>
-                </property>
-               </widget>
+           </layout>
+          </item>
+          <item>
+           <widget class="QTabWidget" name="tabWidget">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="tabPosition">
+             <enum>QTabWidget::South</enum>
+            </property>
+            <property name="tabShape">
+             <enum>QTabWidget::Rounded</enum>
+            </property>
+            <property name="currentIndex">
+             <number>0</number>
+            </property>
+            <property name="elideMode">
+             <enum>Qt::ElideNone</enum>
+            </property>
+            <property name="usesScrollButtons">
+             <bool>true</bool>
+            </property>
+            <property name="tabsClosable">
+             <bool>false</bool>
+            </property>
+            <widget class="QWidget" name="tab">
+             <attribute name="title">
+              <string>Principales</string>
+             </attribute>
+             <layout class="QVBoxLayout" name="verticalLayout_2">
+              <item>
+               <layout class="QGridLayout" name="gridLayout_4">
+                <item row="4" column="1">
+                 <widget class="QLabel" name="label_5">
+                  <property name="text">
+                   <string>Fichier :</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="6" column="2">
+                 <widget class="QLabel" name="label_7">
+                  <property name="frameShape">
+                   <enum>QFrame::NoFrame</enum>
+                  </property>
+                  <property name="text">
+                   <string>Les variables suivantes sont utilisables dans le champ Folio :
+- %id : numéro du folio courant dans le projet 
+- %total : nombre total de folios dans le projet 
+- %autonum : Folio Auto Numeration</string>
+                  </property>
+                  <property name="scaledContents">
+                   <bool>false</bool>
+                  </property>
+                  <property name="alignment">
+                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+                  </property>
+                 </widget>
+                </item>
+                <item row="3" column="1">
+                 <widget class="QLabel" name="label_4">
+                  <property name="text">
+                   <string>Date :</string>
+                  </property>
+                  <property name="alignment">
+                   <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+                  </property>
+                 </widget>
+                </item>
+                <item row="5" column="1">
+                 <widget class="QLabel" name="label_6">
+                  <property name="text">
+                   <string>Folio :</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="1" column="1">
+                 <widget class="QLabel" name="label_2">
+                  <property name="text">
+                   <string>Titre :</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="5" column="2">
+                 <widget class="QLineEdit" name="m_folio_le">
+                  <property name="toolTip">
+                   <string>Disponible en tant que %folio pour les modèles de cartouches</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="1" column="2">
+                 <widget class="QLineEdit" name="m_title_le">
+                  <property name="toolTip">
+                   <string>Disponible en tant que %title pour les modèles de cartouches</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="8" column="2">
+                 <widget class="QComboBox" name="m_display_at_cb">
+                  <property name="toolTip">
+                   <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Affiche le cartouche en bas (horizontalement) ou à droite (verticalement) du folio.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+                  </property>
+                  <item>
+                   <property name="text">
+                    <string>en bas</string>
+                   </property>
+                  </item>
+                  <item>
+                   <property name="text">
+                    <string>à droite (expérimental)</string>
+                   </property>
+                  </item>
+                 </widget>
+                </item>
+                <item row="4" column="2">
+                 <widget class="QLineEdit" name="m_file_le">
+                  <property name="toolTip">
+                   <string>Disponible en tant que %filename pour les modèles de cartouches</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="2" column="1">
+                 <widget class="QLabel" name="label_3">
+                  <property name="text">
+                   <string>Auteur :</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="3" column="2">
+                 <layout class="QGridLayout" name="gridLayout_2" columnstretch="0,1,0">
+                  <item row="0" column="0">
+                   <widget class="QRadioButton" name="m_no_date_rb">
+                    <property name="text">
+                     <string>Pas de date</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="1" column="0">
+                   <widget class="QRadioButton" name="m_current_date_rb">
+                    <property name="text">
+                     <string>Date courante</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="2" column="2">
+                   <widget class="QPushButton" name="m_date_now_pb">
+                    <property name="toolTip">
+                     <string>Appliquer la date actuelle</string>
+                    </property>
+                    <property name="text">
+                     <string/>
+                    </property>
+                    <property name="icon">
+                     <iconset resource="../../qelectrotech.qrc">
+                      <normaloff>:/ico/22x22/start.png</normaloff>:/ico/22x22/start.png</iconset>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="2" column="1">
+                   <widget class="QDateEdit" name="m_date_edit">
+                    <property name="toolTip">
+                     <string>Disponible en tant que %date pour les modèles de cartouches</string>
+                    </property>
+                    <property name="frame">
+                     <bool>true</bool>
+                    </property>
+                    <property name="calendarPopup">
+                     <bool>true</bool>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="2" column="0">
+                   <widget class="QRadioButton" name="m_fixed_date_rb">
+                    <property name="text">
+                     <string>Date fixe :</string>
+                    </property>
+                   </widget>
+                  </item>
+                 </layout>
+                </item>
+                <item row="2" column="2">
+                 <widget class="QLineEdit" name="m_author_le">
+                  <property name="toolTip">
+                   <string>Disponible en tant que %author pour les modèles de cartouches</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="8" column="1">
+                 <widget class="QLabel" name="label">
+                  <property name="text">
+                   <string>Afficher :</string>
+                  </property>
+                 </widget>
+                </item>
+                <item row="7" column="2">
+                 <layout class="QGridLayout" name="gridLayout">
+                  <item row="0" column="0">
+                   <widget class="QComboBox" name="auto_page_cb">
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="0" column="1">
+                   <widget class="QPushButton" name="m_edit_autofolionum_pb">
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
+                    </property>
+                    <property name="minimumSize">
+                     <size>
+                      <width>16</width>
+                      <height>16</height>
+                     </size>
+                    </property>
+                    <property name="text">
+                     <string/>
+                    </property>
+                    <property name="icon">
+                     <iconset resource="../../qelectrotech.qrc">
+                      <normaloff>:/ico/16x16/configure.png</normaloff>:/ico/16x16/configure.png</iconset>
+                    </property>
+                   </widget>
+                  </item>
+                 </layout>
+                </item>
+                <item row="7" column="1">
+                 <widget class="QLabel" name="label_9">
+                  <property name="text">
+                   <string>Page Num:</string>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
               </item>
-              <item row="1" column="0">
-               <widget class="QRadioButton" name="m_current_date_rb">
-                <property name="text">
-                 <string>Date courante</string>
-                </property>
-               </widget>
-              </item>
-              <item row="2" column="2">
-               <widget class="QPushButton" name="m_date_now_pb">
-                <property name="toolTip">
-                 <string>Appliquer la date actuelle</string>
-                </property>
-                <property name="text">
-                 <string/>
-                </property>
-                <property name="icon">
-                 <iconset resource="../../qelectrotech.qrc">
-                  <normaloff>:/ico/22x22/start.png</normaloff>:/ico/22x22/start.png</iconset>
-                </property>
-               </widget>
-              </item>
-              <item row="2" column="1">
-               <widget class="QDateEdit" name="m_date_edit">
-                <property name="toolTip">
-                 <string>Disponible en tant que %date pour les modèles de cartouches</string>
-                </property>
-                <property name="frame">
-                 <bool>true</bool>
-                </property>
-                <property name="calendarPopup">
-                 <bool>true</bool>
-                </property>
-               </widget>
-              </item>
-              <item row="2" column="0">
-               <widget class="QRadioButton" name="m_fixed_date_rb">
-                <property name="text">
-                 <string>Date fixe :</string>
-                </property>
-               </widget>
-              </item>
              </layout>
-            </item>
-            <item row="3" column="1">
-             <widget class="QLabel" name="label_4">
-              <property name="text">
-               <string>Date :</string>
-              </property>
-              <property name="alignment">
-               <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-              </property>
-             </widget>
-            </item>
-            <item row="4" column="1">
-             <widget class="QLabel" name="label_5">
-              <property name="text">
-               <string>Fichier :</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="2">
-             <widget class="QLineEdit" name="m_title_le">
-              <property name="toolTip">
-               <string>Disponible en tant que %title pour les modèles de cartouches</string>
-              </property>
-             </widget>
-            </item>
-            <item row="1" column="1">
-             <widget class="QLabel" name="label_2">
-              <property name="text">
-               <string>Titre :</string>
-              </property>
-             </widget>
-            </item>
-            <item row="2" column="2">
-             <widget class="QLineEdit" name="m_author_le">
-              <property name="toolTip">
-               <string>Disponible en tant que %author pour les modèles de cartouches</string>
-              </property>
-             </widget>
-            </item>
-            <item row="5" column="1">
-             <widget class="QLabel" name="label_6">
-              <property name="text">
-               <string>Folio :</string>
-              </property>
-             </widget>
-            </item>
-            <item row="4" column="2">
-             <widget class="QLineEdit" name="m_file_le">
-              <property name="toolTip">
-               <string>Disponible en tant que %filename pour les modèles de cartouches</string>
-              </property>
-             </widget>
-            </item>
-            <item row="7" column="2">
-             <widget class="QComboBox" name="m_display_at_cb">
-              <property name="toolTip">
-               <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Affiche le cartouche en bas (horizontalement) ou à droite (verticalement) du folio.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-              </property>
+            </widget>
+            <widget class="QWidget" name="tab_2">
+             <attribute name="title">
+              <string>Personnalisées</string>
+             </attribute>
+             <layout class="QVBoxLayout" name="verticalLayout">
               <item>
-               <property name="text">
-                <string>en bas</string>
-               </property>
-              </item>
-              <item>
-               <property name="text">
-                <string>à droite (expérimental)</string>
-               </property>
-              </item>
-             </widget>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-        <widget class="QWidget" name="tab_2">
-         <attribute name="title">
-          <string>Personnalisées</string>
-         </attribute>
-         <layout class="QVBoxLayout" name="verticalLayout">
-          <item>
-           <layout class="QVBoxLayout" name="m_tab2_vlayout">
-            <item>
-             <widget class="QLabel" name="label_8">
-              <property name="text">
-               <string>Vous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple :
+               <layout class="QVBoxLayout" name="m_tab2_vlayout">
+                <item>
+                 <widget class="QLabel" name="label_8">
+                  <property name="text">
+                   <string>Vous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple :
 associer le nom &quot;volta&quot; et la valeur &quot;1745&quot; remplacera %{volta} par 1745 dans le cartouche.</string>
               </property>
               <property name="wordWrap">
@@ -301,6 +361,10 @@
    </item>
   </layout>
  </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
  <resources>
   <include location="../../qelectrotech.qrc"/>
  </resources>


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/