diff --git a/sources/elementspanelwidget.cpp b/sources/elementspanelwidget.cpp index d012cd43c..2c0f70d06 100644 --- a/sources/elementspanelwidget.cpp +++ b/sources/elementspanelwidget.cpp @@ -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 @@ void ElementsPanelWidget::removeTitleBlockTemplate() { 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(); } } diff --git a/sources/titleblock/templatedeleter.cpp b/sources/titleblock/templatedeleter.cpp new file mode 100644 index 000000000..9bda7c469 --- /dev/null +++ b/sources/titleblock/templatedeleter.cpp @@ -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 . +*/ +#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); +} diff --git a/sources/titleblock/templatedeleter.h b/sources/titleblock/templatedeleter.h new file mode 100644 index 000000000..f547c8bc4 --- /dev/null +++ b/sources/titleblock/templatedeleter.h @@ -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 . +*/ +#ifndef TITLEBLOCK_SLASH_TEMPLATE_DELETER_H +#define TITLEBLOCK_SLASH_TEMPLATE_DELETER_H +#include "templatelocation.h" +#include +/** + 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