[qet] [1420] Elements panel: now require user confirmation before deleting a title block template.

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


Revision: 1420
Author:   xavier
Date:     2011-12-31 03:30:31 +0100 (Sat, 31 Dec 2011)
Log Message:
-----------
Elements panel: now require user confirmation before deleting a title block template.

Modified Paths:
--------------
    branches/0.3/sources/elementspanelwidget.cpp

Added Paths:
-----------
    branches/0.3/sources/titleblock/templatedeleter.cpp
    branches/0.3/sources/titleblock/templatedeleter.h

Modified: branches/0.3/sources/elementspanelwidget.cpp
===================================================================
--- branches/0.3/sources/elementspanelwidget.cpp	2011-12-30 02:42:50 UTC (rev 1419)
+++ branches/0.3/sources/elementspanelwidget.cpp	2011-12-31 02:30:31 UTC (rev 1420)
@@ -28,6 +28,7 @@
 #include "qetproject.h"
 #include "diagram.h"
 #include "qeticons.h"
+#include "templatedeleter.h"
 
 /*
 	Lorsque le flag ENABLE_PANEL_WIDGET_DND_CHECKS est defini, le panel
@@ -294,7 +295,9 @@
 	if (current_item && elements_panel -> itemIsATitleBlockTemplate(current_item)) {
 		QETProject *parent_project = elements_panel -> projectForTitleBlockTemplate(current_item);
 		QString template_name = elements_panel -> nameOfTitleBlockTemplate(current_item);
-		parent_project -> removeTemplateByName(template_name);
+		TitleBlockTemplateLocation template_location(parent_project, template_name);
+		TitleBlockTemplateDeleter template_deleter(template_location, this);
+		template_deleter.exec();
 	}
 }
 

Added: branches/0.3/sources/titleblock/templatedeleter.cpp
===================================================================
--- branches/0.3/sources/titleblock/templatedeleter.cpp	                        (rev 0)
+++ branches/0.3/sources/titleblock/templatedeleter.cpp	2011-12-31 02:30:31 UTC (rev 1420)
@@ -0,0 +1,70 @@
+/*
+	Copyright 2006-2011 Xavier Guerrin
+	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 "templatedeleter.h"
+#include "qetmessagebox.h"
+#include "qetproject.h"
+/**
+	Constructor
+	@param tbt_location Location of the title block template to be deleted
+	@param parent Parent QWidget
+*/
+TitleBlockTemplateDeleter::TitleBlockTemplateDeleter(const TitleBlockTemplateLocation &tbt_location, QWidget *parent) :
+	QWidget(parent),
+	template_location_(tbt_location)
+{
+}
+
+/**
+	Destructor
+*/
+TitleBlockTemplateDeleter::~TitleBlockTemplateDeleter() {
+}
+
+/**
+	Delete the title block template: check the provided location matches an
+	existing template, interactively require confirmationfrom the user before
+	actually proceeding to the deletion.
+	@return true if the deletion succeeded, false otherwise.
+*/
+bool TitleBlockTemplateDeleter::exec() {
+	if (!template_location_.isValid()) return(false);
+	QETProject *project = template_location_.project();
+	QString name = template_location_.name();
+	
+	if (!project -> embeddedTitleBlockTemplates().contains(name)) {
+		return(false);
+	}
+	
+	// require confirmation from the user
+	QMessageBox::StandardButton answer = QET::MessageBox::question(
+		this,
+		tr("Supprimer le mod\350le de cartouche ?", "message box title"),
+		QString(
+			tr(
+				"\312tes-vous s\373r de vouloir supprimer ce mod\350le de cartouche (%1) ?\n",
+				"message box content"
+			)
+		).arg(name),
+		QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel
+	);
+	if (answer != QMessageBox::Yes) return(false);
+	
+	// delete the title block template
+	project -> removeTemplateByName(name);
+	return(true);
+}

Added: branches/0.3/sources/titleblock/templatedeleter.h
===================================================================
--- branches/0.3/sources/titleblock/templatedeleter.h	                        (rev 0)
+++ branches/0.3/sources/titleblock/templatedeleter.h	2011-12-31 02:30:31 UTC (rev 1420)
@@ -0,0 +1,43 @@
+/*
+	Copyright 2006-2011 Xavier Guerrin
+	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 TITLEBLOCK_SLASH_TEMPLATE_DELETER_H
+#define TITLEBLOCK_SLASH_TEMPLATE_DELETER_H
+#include "templatelocation.h"
+#include <QtGui>
+/**
+	This class is an abstraction layer to delete an existing title block
+	template.
+*/
+class TitleBlockTemplateDeleter : public QWidget {
+	Q_OBJECT
+	// Constructors, destructor
+	public:
+	TitleBlockTemplateDeleter(const TitleBlockTemplateLocation &, QWidget * = 0);
+	virtual ~TitleBlockTemplateDeleter();
+	private:
+	TitleBlockTemplateDeleter(const TitleBlockTemplateDeleter &);
+	
+	// methods
+	public slots:
+	bool exec();
+	
+	// attributes
+	private:
+	TitleBlockTemplateLocation template_location_;
+};
+#endif


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