[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